Ir para conteúdo

Sistema de Pet V1.0 By PsyMcKenzie


Posts Recomendados

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

Editado por PsyMcKenzie
Link para o comentário
Compartilhar em outros sites

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.

Editado por Gears
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...