Bom galerinha, todo mundo que pretende criar um otserver de pokemon, com certeza procura muito pelo script do catch exatamente igual ao do server da SvkE. vi um colega que postou o mesmo script só que não postou o Go/Back, só o Catch. Agora vou disponibiliza-lo para vcs
Testei com o .spr e o .dat do pokemon que eu achei aqui no fórum
-----------------------------.
Para contato : brunin.1420@hotmail.com
Obs.: Adicione se ouver erros.
-----------------------------.
Primeiramente, para facilitar, download : Catch System ' bY: PnO ' TeaM
Guia de Instalação:
• Extraia na pasta onde o arquivo foi salvado, copie tudo que a dentro da pasta data\actions\SCRIPTS e cole na pasta data\actions\scripts do seu ot.
• Depois abra o arquivo actions.xml, copie tudo que a dentro e cole la na actions.xml do seu ot.
-----------------------------.
Vamo lá .
Catch System .
Primeiramente, vá em
PastaDoOt\data\actions\scripts
Copie um arquivo .lua, renomeie-o para pokeball.lua
Abra este arquivo e apague tudo que a dentro dele.
E coloque isso:
function onUse(cid, item, fromPosition, itemEx, toPosition)if itemEx.itemid == 6008 then
if math.random(1,100) >= 1 then
doRemoveItem(itemEx.uid)
doDecayItem(itemEx.uid)
doSendMagicEffect(toPosition, 24)
doRemoveItem(item.uid, 1)
doPlayerAddItem(cid, 2147,1)
else
doRemoveItem(itemEx.uid)
doRemoveItem(item.uid, 1)
doSendMagicEffect(toPosition, 23)
end
Legenda:
Vermelho - ID do Corpse do monster
Rosa - ID do item que vai adicionar ao player quando capturar
Azul - Número do magiceffect que vai ser enviado quando falhar na captura
Laranja - Número do magiceffect que vai ser enviado quando capturar o monster
Verde - Chance de captura
E para adicionar para poder capturar mais monsters, pule uma linha e adicione isso:
elseif itemEx.itemid == 3013 thenif math.random(1,100) >= 99 then
doRemoveItem(itemEx.uid)
doDecayItem(itemEx.uid)
doSendMagicEffect(toPosition, 24)
doRemoveItem(item.uid, 1)
doPlayerAddItem(cid, 2487,1)
else
doRemoveItem(itemEx.uid)
doRemoveItem(item.uid, 1)
doSendMagicEffect(toPosition, 23)
end
Legenda:
Vermelho - ID do Corpse do monster
Rosa - ID do item que vai adicionar ao player quando capturar
Azul - Número do magiceffect que vai ser enviado quando falhar na captura
Laranja - Número do magiceffect que vai ser enviado quando capturar o monster
Verde - Chance de captura
Adicione isso para todos os monsters que poderão ser possíveis de capturar.
Lembrando que tem sempre de mudar o ID do Corpse, o ID do Item que será adicionado ao player e de preferência, a Chance de Capturar.
Quando terminar, adicione no final:
end return TRUE end
Ficando assim:
function onUse(cid, item, fromPosition, itemEx, toPosition) if itemEx.itemid == 6008 then if math.random(1,100) >= 1 then doRemoveItem(itemEx.uid) doDecayItem(itemEx.uid) doSendMagicEffect(toPosition, 24) doRemoveItem(item.uid, 1) doPlayerAddItem(cid, 2147,1) else doRemoveItem(itemEx.uid) doRemoveItem(item.uid, 1) doSendMagicEffect(toPosition, 23) end elseif itemEx.itemid == 3013 then if math.random(1,100) >= 99 then doRemoveItem(itemEx.uid) doDecayItem(itemEx.uid) doSendMagicEffect(toPosition, 24) doRemoveItem(item.uid, 1) doPlayerAddItem(cid, 2487,1) else doRemoveItem(itemEx.uid) doRemoveItem(item.uid, 1) doSendMagicEffect(toPosition, 23) end end return TRUE end
Depois de feito, fexe e salve.
Volte a pasta:
PastaDoOt\data\actions
Clique com o direito no arquivo actions.xml > Abrir com... > Bloco de Notas, Adicione essa linha:
<action itemid="ID da Pokeball" script="pokeball.lua" allowfaruse="1" blockwalls="1" />
Legenda:
Vermelho - ID da Pokeball. ( Se vc estiver usando o .dat e o .spr do pokemon, aconselho colocar 2149 [Pokeball] )
Fexe e Salve.
-----------------------.
Go/Back
Bom, Agora o Go/Back
Vá em
PastaDoOt\data\actions\scripts
e crie uma pasta chamada : pokes
dentro dela, crie um arquivo .lua com o nome do pokemon e adicione isso dentro:
function onUse(cid, item, frompos, item2, topos)
dofile("./petconfig.lua")
function doPlayerAddSummon(cid, name, pos)
local MyCreature = doSummonCreature("silver rabbit", pos)
doConvinceCreature(cid, MyCreature)
return MyCreature
end
local myPet = ""
local myPetUid = 0
if isExhausted(cid) == 1 then
return 0
end
if getPlayerStorageValue(cid, storages.petMag) == -1 then
setPlayerStorageValue(cid, storages.petMag, 0)
end
if isCreature(getPlayerStorageValue(cid, storages.petUid)) == 0 then
if getTilePzInfo(getCreaturePosition(cid)) == 0 then
if getPlayerStorageValue(cid, storages.petIsOnline) == 1 or getPlayerStorageValue(cid, storages.petIsOnline) == -1 then
for i = 1, #pets do
if isInArray(pets.vocations, getPlayerVocation(cid)) == 1 then
for k = 1, #pets.pets do
if pets.pets[k].level <= getPlayerLevel(cid) then
myPet = pets.pets[k].name
break
end
end
break
end
end
myPetUid = doPlayerAddSummon(cid, myPet, getCreaturePosition(cid))
if myPetUid ~= -1 then
setPlayerStorageValue(cid, storages.petUid, myPetUid)
if getPlayerStorageValue(cid, storages.petDamage) ~= 0 and getPlayerStorageValue(cid, storages.petDamage) ~= -1 then
if getPlayerStorageValue(cid, storages.petDamage) < getCreatureMaxHealth(getPlayerStorageValue(cid, storages.petUid)) then
doCreatureAddHealth(getPlayerStorageValue(cid, storages.petUid), getPlayerStorageValue(cid, storages.petDamage)*-1)
end
end
doChangeSpeed(myPetUid, getCreatureBaseSpeed(cid) - getCreatureBaseSpeed(myPetUid))
doCreatureSay(cid, "Go, Abra", TALKTYPE_SAY)
addMana({cid = cid})
setPlayerStorageValue(cid, storages.petIsOnline, 2)
doSendMagicEffect(getCreaturePosition(myPetUid), 37)
else
doPlayerSendCancel(cid, 'Not enought room.')
end
else
doPlayerSendCancel(cid, 'Your <span class="highlight">pet</span> died! You have to revive it.')
end
else
doPlayerSendCancel(cid, 'You cannot summon your <span class="highlight">pet</span> in PZ.')
end
else
local daPet = getPlayerStorageValue(cid, storages.petUid)
setPlayerStorageValue(cid, storages.petDamage, getCreatureMaxHealth(daPet) - getCreatureHealth(daPet))
doCreatureSay(cid, "Back, Abra", TALKTYPE_SAY)
setPlayerStorageValue(cid, storages.petIsOnline, 1)
doSendMagicEffect(getCreaturePosition(daPet), 37)
doRemoveCreature(daPet)
end
return setExhausted(cid)
end
Legenda:
Vermelho - Nome do monster ( original )Laranja - Nome do monster ( pokemon )
Azul - Número do magiceffect que vai aparecer ao lançar o monster
Depois volte a pasta actions abra o actions.xml como bloco de notas e adicione esta linha:
<action itemid="2463" script="pokes/kadabra.lua" />
Legenda:
Vermelho - ID do item correspondente ao que você colocou no pokeball.lua como AddItem ( no caso, o id da pokeball que vai conter o pokemon.Azul - Nome do arquivo .lua
Adicione para quantos monsters vc quiser.
Bom Galera, aconselho baixar o data pronto, porq se não vai demorar pra adicionar todos.
------------------------.
Demorou para eu fazer este tutorial, então espero que tenham gostado !
Obs.: Não reclame que está mal arrumado, desorganizado, etc. pq era pra ser ' code ' e ' quote ', e com ' code ' não tem jeito de colorir, então coloquei só ' quote '.
É isso ai, obrigado pela visualização.
------------------------.
Credits :]
brunin86 (eu) -> Catch System e Post
Luiz (msn) -> Go/Back
------------------------.
EnjoY.
Att,
Bruno.