Sistema de Pet V1.0 By PsyMcKenzie

  • 1
  • 2

PsyMcKenzie

Grounder
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 18/05/11Posts: 1106Gênero: Masculino

Sistema de Pet V1.0

 

 



E ai Galera, suave?

:D

 

Hoje venho trazer pra vocês, meu sistema de pet.

É bem do tipo pokemon, mas tenho certeza que irão gostar.

Vou liberá-lo porque gosto de compartilhar as coisas, e sei que alguém esta querendo



um sistema desses. Assim como eu quis um dia e nunca encontrei um que funcionasse.

O sistema está na versão 1.0, mas em em breve trarei um npc para healar o pet e algumas talks para o pet soltar spells. ;)

 

Vamos lá!

 

 

Primeiramente, vá em data/action/scripts, crie um arquivo com o nome de CatchPet.lua e adicione:

local mtrs = {

	["Rat"] = {hp = 1000, maxhp = 1000, corpse = 2813, chance = 100},
	["Rotworm"] = {hp = 1000, maxhp = 1000, corpse = 5967, chance = 100},
	["Skeleton"] = {hp = 1000, maxhp = 1000, corpse = 5972, chance = 100},
	["Dragon"] = {hp = 1000, maxhp = 1000, corpse = 3104, chance = 100},
	["Dragon Lord"] = {hp = 1000, maxhp = 1000, corpse = 5984, chance = 100},
}

function onUse(cid, item, frompos, item2, topos)
	for pet_name, v in pairs(mtrs) do
			if item2.itemid == v.corpse then
				if math.random(0,100) <= v.chance then
					doPlayerSendTextMessage(cid, 27, "Você capturou um ".. pet_name .. ".")
					doRemoveItem(item2.uid, 1)
					doRemoveItem(item.uid, 1)
					local itemcatch = doPlayerAddItem(cid, 7632, 1)
					doItemSetAttribute(itemcatch, "namepet", pet_name)
					doItemSetAttribute(itemcatch, "description", "Contém um ".. pet_name ..".")
					doItemSetAttribute(itemcatch, "lifepet", v.hp)
					doItemSetAttribute(itemcatch, "maxlifepet", v.maxhp)
				else
					doPlayerSendTextMessage(cid, 27, "Falhou.")
				end
			end
	end
	return true
end

 

Em seguida, duplique o arquivo, renomeie para VaiVolta e adicione:

 

function onUse(cid, item, frompos, item2, topos)

   local health = tonumber(getItemAttribute(item.uid, "lifepet"))
   local mhp = tonumber(getItemAttribute(item.uid, "maxlifepet"))

   if health <= 0 then
       return doPlayerSendCancel(cid, "Esse pet esta morto.")
   end

   local pet_name = getItemAttribute(item.uid, "namepet")

   if item.itemid == 7632 then
       if not getTilePzInfo(getPlayerPosition(cid)) then
           if #getCreatureSummons(cid) < 1 then
               doTransformItem(item.uid, 7633)
               local summon = doSummonCreature(pet_name, getThingPos(cid))
               doConvinceCreature(cid, summon)
               setCreatureMaxHealth(summon, mhp)
               doCreatureAddHealth(summon, mhp)
               doCreatureAddHealth(summon, health - mhp)
               doSendMagicEffect(getCreaturePosition(summon), 67)
               doCreatureSay(cid, "Vai, ".. pet_name .. "!", TALKTYPE_SAY)
           else
               doPlayerSendCancel(cid, "Você já sumonou um Pet.")
           end
       else
           doPlayerSendCancel(cid, "Você não pode estar em Protection Zone para sumonar seu Pet.")
       end

   elseif item.itemid == 7633 then
local hp, maxhp = getCreatureHealth(getCreatureSummons(cid)[1]), getCreatureMaxHealth(getCreatureSummons(cid)[1])
       if #getCreatureSummons(cid) >= 1 then
           doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 67)
           doRemoveCreature(getCreatureSummons(cid)[1])
           doTransformItem(item.uid, 7632)
           doItemSetAttribute(item.uid, "lifepet", hp)
           doItemSetAttribute(item.uid, "maxlifepet", maxhp)
           doCreatureSay(cid, "Volta, " .. pet_name .. ".", TALKTYPE_SAY)
       end
   end

   return true
end

 

Agora em Actions.xml, adicione as tags:

 

	<action itemid="2149" event="script" value="CatchPet.lua"/>
	<action itemid="7632;7633" event="script" value="VaiVolta.lua"/>

 

 

 

 

 

 

 

 

 

 

 

 

Configurando

 

 

 

Nesta parte você irá editar:

 

 

 

["Rat"] = {hp = 1000, maxhp = 1000, corpse = 2813, chance = 100},

["Rotworm"] = {hp = 1000, maxhp = 1000, corpse = 5967, chance = 100},

["Skeleton"] = {hp = 1000, maxhp = 1000, corpse = 5972, chance = 100},

["Dragon"] = {hp = 1000, maxhp = 1000, corpse = 3104, chance = 100},

["Dragon Lord"] = {hp = 1000, maxhp = 1000, corpse = 5984, chance = 100},

 

 

NOME DO PET / HP / HP MÁXIMO / CORPSE ID ( AQUELE QUE FICA QUANDO O MONSTRO MORRE) / CHANCE DE CAPTURA DO PET.

 

 

Esse são os id's das "pokeballs":

 

if item.itemid == 7632 then

elseif item.itemid == 7633 then

 

 

Caso queira mudar, troque no script e na tag no actions.xml.

 

Este é o item de captura:

		<action itemid="2149" event="script" value="CatchPet.lua"/>

 

 

 

 

 

 

 

 

 

 

Bom, é isso galera, espero que gostem e que façam um bom uso do sistema!



Aproveitem!

 

Dúvidas? Sugestões? Criticas?

Comentem!!

Créditos/Agradecimentos:

 

BananaFight

LuckOake

MaXwElldEn

Gears

Atenciosamente,

PsyMcKenzie.

 

 

Meus Trabalhos.

 

 

liliangutierry2

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/04/13Posts: 2

Legal rep+ bom esse sistema

PsyMcKenzie

Grounder
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 18/05/11Posts: 1106Gênero: Masculino

Muito obrigado! :)

Atenciosamente,

PsyMcKenzie.

 

 

Meus Trabalhos.

 

 

BananaFight

Allahu Akbar
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 14/02/13Posts: 702Gênero: Masculino

Agora é terminar o sistema né, com as funções na morte do summon, deslogar etc.

PsyMcKenzie

Grounder
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 18/05/11Posts: 1106Gênero: Masculino

Pode crer mano, vou começar a trabalhar essa parte.

Obrigado!

Atenciosamente,

PsyMcKenzie.

 

 

Meus Trabalhos.

 

 

Gears

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 11/01/13Posts: 576Char no Tibia: Darashia del Shee

local mtrs = {

["Rat"] = {hp = 1000, maxhp = 1000, corpse = 2813, chance = 100},
["Rotworm"] = {hp = 1000, maxhp = 1000, corpse = 5967, chance = 100},
["Skeleton"] = {hp = 1000, maxhp = 1000, corpse = 5972, chance = 100},
["Dragon"] = {hp = 1000, maxhp = 1000, corpse = 3104, chance = 100},
["Dragon Lord"] = {hp = 1000, maxhp = 1000, corpse = 5984, chance = 100},
}

function onUse(cid, item, frompos, item2, topos)
for pet_name, v in pairs(mtrs) do
	if item2.itemid == v.corpse then
		if math.random(0,100) <= v.chance then
			doPlayerSendTextMessage(cid, 27, "Você capturou um ".. pet_name .. ".")
			doRemoveItem(item2.uid, 1)
			doRemoveItem(item.uid, 1)
			local itemcatch = doPlayerAddItem(cid, 7632, 1)
			doItemSetAttribute(itemcatch, "namepet", pet_name)
			doItemSetAttribute(itemcatch, "description", "Contém um ".. pet_name ..".")
			doItemSetAttribute(itemcatch, "lifepet", v.hp)
			doItemSetAttribute(itemcatch, "maxlifepet", v.maxhp)
			else
			doPlayerSendTextMessage(cid, 27, "Falhou.")
		end
	end
end
return true
end

 

2.

 

 

 


function onUse(cid, item, frompos, item2, topos)

local health = tonumber(getItemAttribute(item.uid, "lifepet"))
local mhp = tonumber(getItemAttribute(item.uid, "maxlifepet"))

if health <= 0 then
	return doPlayerSendCancel(cid, "Esse pet esta morto.")
end

local pet_name = getItemAttribute(item.uid, "namepet")

if item.itemid == 7632 then
	if not getTilePzInfo(getPlayerPosition(cid)) then
		if #getCreatureSummons(cid) < 1 then
			doTransformItem(item.uid, 7633)
			local summon = doSummonCreature(pet_name, getThingPos(cid))
			doConvinceCreature(cid, summon)
			setCreatureMaxHealth(summon, mhp)
			doCreatureAddHealth(summon, mhp)
			doCreatureAddHealth(summon, health - mhp)
			doSendMagicEffect(getCreaturePosition(summon), 67)

			doCreatureSay(cid, "Vai, ".. pet_name .. "!", TALKTYPE_SAY)
			else
			doPlayerSendCancel(cid, "Você já sumonou um Pet.")
		end
		else
		doPlayerSendCancel(cid, "Você não pode estar em Protection Zone para sumonar seu Pet.")
	end

	elseif item.itemid == 7633 then
	local hp, maxhp = getCreatureHealth(getCreatureSummons(cid)[1]), getCreatureMaxHealth(getCreatureSummons(cid)[1])
	if #getCreatureSummons(cid) >= 1 then
		doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 67)
		doRemoveCreature(getCreatureSummons(cid)[1])
		doTransformItem(item.uid, 7632)
		doItemSetAttribute(item.uid, "lifepet", hp)
		doItemSetAttribute(item.uid, "maxlifepet", maxhp)
		doCreatureSay(cid, "Volta, " .. pet_name .. ".", TALKTYPE_SAY)
	end
end

return true
end


 

 

Ps: no ultimo script da pra remover essa linha aqui:

print(tonumber(getItemAttribute(item.uid, "lifepet")),tonumber(getItemAttribute(item.uid, "maxlifepet")))

Isso ai vai ficar printando a life do pet no distro, oque seria desnecessário.

Estagiário 24/01/2013

pedido para sair : 23/02/2013

Volta como estagiário: 11/04/2013

Pedido para sair: 10/05/2013

MaXwEllDeN

string.reverse("adiV a arohaD")
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 18/10/10Posts: 246Char no Tibia: Elite Pamcadaum

Sistema legal cara, mas, é como o Banana falou, ainda tem umas coisas que você tem adicionar pro sistema ficar melhor e se diferenciar dos outros.

eq9qh0.png

PsyMcKenzie

Grounder
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 18/05/11Posts: 1106Gênero: Masculino

Obrigado MaXwEllDeN, vou procurar melhorar o código.

Abraços!

Atenciosamente,

PsyMcKenzie.

 

 

Meus Trabalhos.

 

 

LucasVinia

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/04/13Posts: 26

Cara, muito foda....

6946_358284080961798_1986681089_n.jpg

PsyMcKenzie

Grounder
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 18/05/11Posts: 1106Gênero: Masculino

Obrigado brow. ^^

Atenciosamente,

PsyMcKenzie.

 

 

Meus Trabalhos.

 

 

gmstrikker

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/04/13Posts: 89Char no Tibia: GM Strikker

Muito bom cara! Parabéns!

gabyzinho1

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/08/11Posts: 83Char no Tibia: Che Mc

Esse Sistema esta perfeito parabéns rep+ ;)

PsyMcKenzie

Grounder
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 18/05/11Posts: 1106Gênero: Masculino

Obrigado galera!

Em breve V2.0

Atenciosamente,

PsyMcKenzie.

 

 

Meus Trabalhos.

 

 

Caslu15

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 05/11/12Posts: 11Char no Tibia: Permaganato

Aee Dahora xD

PsyMcKenzie

Grounder
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 18/05/11Posts: 1106Gênero: Masculino

Valew man! =)

Atenciosamente,

PsyMcKenzie.

 

 

Meus Trabalhos.

 

 

  • 1
  • 2