Ir para conteúdo

Catch System ' Svke + Go/back


brunin86

Posts Recomendados

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 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

 

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.

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

o Catch eu tenho...

Quero só ver se o go back funfa bem. foi você quem fez?

Bote os créditos...

 

Tenho quase certeza que o catch se pego aqui do fórum mesmo.

tava na equipe do cara queria posto, ele só queria REP.

e go back é baseado no sistema de pet do josejunior, não? ou do fade?

 

então coloque os créditos...

estou baixando

Já já edito.

edit

ta faltando o arquivo petconfig.lua e explica-lo como funciona...

no download tb não tem ele.

 

Falta funciona tb...xD

ao menos aqui não funfo...tenho o petconfig de algum petsystem, não lembro de quem ele é.

 

Espero, que arrume.

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

o Catch eu tenho...

Quero só ver se o go back funfa bem. foi você quem fez?

Bote os créditos...

 

Tenho quase certeza que o catch se pego aqui do fórum mesmo.

tava na equipe do cara queria posto, ele só queria REP.

e go back é baseado no sistema de pet do josejunior, não? ou do fade?

 

então coloque os créditos...

estou baixando

Já já edito.

edit

ta faltando o arquivo petconfig.lua e explica-lo como funciona...

no download tb não tem ele.

 

Falta funciona tb...xD

ao menos aqui não funfo...tenho o petconfig de algum petsystem, não lembro de quem ele é.

 

Espero, que arrume.

 

Nossa, q foda '--'. seguinte, eu n peguei esse script no fórum, eu consegui com um colega, e postei, eu vi que ja tinha, refiz um tópico e adicione Go/Back. O Pet config vc acha nos tópicos de Pet System aqui no fórum .

Mais como sou deboa vou postá-lo

 

 

Petconfig.lua

petSystemExhaustion = 0 --in secods, 0 = no exhausted. 
frases = {"Men, im still exhausted!", "Ok, in one momment", "afff, again?!", "meh, one second"}
lenght = 39 -- maximun lenght the !petsay can have...
manaGainTicks = 3000 -- 
--how fast the pet gains mana
manaGainAmmount = 20 --//
manaGainPerLevel = 30 -- mana that gains the pet for each level the player gain
magicLevelRate = 10 -- how faster the pet will gain mlvl compared to real tibia,,
base = 2000 --base storage. All storages will depend of this number
storages = {
petMag = base,
petUid = base+1,
petExha = base+2,
petDamage = base+3,
petManaSpent = base+4,
petIsOnline = base+5,
petMana = base+6,
petIsHealing = base+7,
petCap = base+8,
petSystemExhaustion = base+9
}

petItems = {}
maxItems = 10 --Max items the pet can carry
--lol V
x = 0 y = function() x = x + 1 end table.foreach(storages, y)
for i = 1, maxItems do
petItems[i] = base+x+i
end
--Pets, dependiong on the level
pets = 
{
{vocations = {4, 8}, pets =
{{level = 350, name = "Juggernaut"}, {level = 255, name = "Dark Torturer"}, {level = 190, name = "Hellfire Fighter"}, {level = 120, name = "Hydra"}, {level = 80, name = "Quara Hydromancer"}, {level = 50, name = "Cyclops Smith"}, {level = 40, name = "Demon Skeleton"}, {level = 30, name = "Barbarian Skullhunter"}, {level = 20, name = "Monk"}, {level = 10, name = "Bear"}, {level = 0, name = "Wolf"}}
},
{vocations = {1, 5}, pets =
{{level = 7, name = "Ferumbras"}, {level = 260, name = "Demon"}, {level = 180, name = "Betrayed Wraith"}, {level = 120, name = "Diabolic Imp"}, {level = 80, name = "Braindeath"}, {level = 50, name = "Ice Golem"}, {level = 40, name = "Acolyte Of The Cult"}, {level = 30, name = "Barbarian Headsplitter"}, {level = 20, name = "Dark Monk"}, {level = 10, name = "Polar Bear"}, {level = 0, name = "Cave Rat"}}
},
{vocations = {2, 6}, pets =
{{level = 7, name = "Ferumbras"}, {level = 260, name = "Hand of Cursed Fate"}, {level = 175, name = "Phantasm"}, {level = 120, name = "Frost Dragon"}, {level = 80, name = "Massive Water Elemental"}, {level = 50, name = "Water Elemental"}, {level = 40, name = "Dwarf Geomancer"}, {level = 30, name = "Barbarian Brutetamer"}, {level = 20, name = "Assassin"}, {level = 10, name = "Lion"}, {level = 0, name = "Rat"}}
},
{vocations = {3, 7}, pets =
{{level = 350, name = "Orshabaal"}, {level = 260, name = "Plaguesmith"}, {level = 185, name = "Destroyer"}, {level = 120, name = "Dragon Lord"}, {level = 80, name = "Quara Hydromancer Scout"}, {level = 50, name = "Orc Leader"}, {level = 40, name = "Elf Arcanist"}, {level = 30, name = "Barbarian Bloodwalker"}, {level = 20, name = "Hunter"}, {level = 10, name = "Panda"}, {level = 0, name = "Bat"}}
}
}
--attacks of the pet. !petattack "param
--It's pretty easy how to config, I think it doesn't need an extra explanation.
attacks = {{param = "a1", theFunction = false, offensive = 1, needLevel = 1, self = 0, needMag = 0, manaSpent = 1, exhausted = 1, range = 6, combatType = COMBAT_ENERGYDAMAGE, combatAni = CONST_ME_ENERGYAREA, area = 2, 
formula = {maxb = 0.4, maxa = 30, minb = 0.2, mina = 0},
},
{param = "a2", theFunction = false, offensive = 1, needLevel = 1, self = 0, needMag = 0, manaSpent = 1, exhausted = 1, range = 0, combatType = COMBAT_PHYSICALDAMAGE, combatAni = CONST_ME_HITAREA, area = 2, 
formula = {maxb = 0.6, maxa = 30, minb = 1.2, mina = 0},
},
{param = "a3", theFunction = false, offensive = 1, needLevel = 1, self = 0, needMag = 0, manaSpent = 100, exhausted = 1, range = 3, combatType = COMBAT_FIREDAMAGE, combatAni = CONST_ME_FIREAREA, area = 1, 
formula = {maxb = 0.6, maxa = 30, minb = 1.2, mina = 0}
},
{param = "a4", theFunction = false, offensive = 1, needLevel = 0, self = 0, needMag = 0, manaSpent = 1, exhausted = 1, range = 1, combatType = COMBAT_ENERGYDAMAGE, combatAni = CONST_ME_ENERGYAREA, area = 1, 
formula = {maxb = 0.13, maxa = 0, minb = 0.262, mina = 0}
},
{param = "a5", theFunction = false, offensive = -1, needLevel = 1, self = 1, needMag = 0, manaSpent = 1, exhausted = 2, range = 0, combatType = COMBAT_HEALING, combatAni = CONST_ME_MAGIC_BLUE, area = 1, 
formula = {maxb = 0.4, maxa = 20, minb = 0.7, mina = 0}
},
{param = "a6", theFunction = false, offensive = 1, needLevel = 1, self = 0, needMag = 0, manaSpent = 1, exhausted = 2, range = 0, combatType = COMBAT_ICEDAMAGE, combatAni = CONST_ANI_FIRE, area = 8, 
formula = {maxb = 1.0, maxa = 50, minb = 1.7, mina = 0}
},
{param = "paralize", needLevel = 1, needMag = 0, manaSpent = 300, exhausted = 2,
theFunction = function (parameters)
daPet = getPlayerStorageValue(parameters.cid, storages.petUid)
if getCreatureTarget(daPet) ~= 0 then
doAddCondition(getCreatureTarget(parameters.cid), 4)
end
end
},
{param = "speed", needLevel = 10, needMag = 4, manaSpent = 60, exhausted = 2,
theFunction = function (parameters) 
doAddCondition(getPlayerStorageValue(parameters.cid, storages.petUid), 11)
end
},
{param = "double fire", needLevel = 1, needMag = 0, manaSpent = 220, exhausted = 2,
theFunction = function (parameters)


local myAttack = formulaAttack(getPlayerLevel(parameters.cid), getPlayerStorageValue(parameters.cid, storages.petMag), 0.7, 0, 1.0, 0)
function doAreaCombatHealthEx(params)
local randoms = {[1] = math.random(-2, 2),
[2] = math.random(-2, 2) 
}

local attackCreature = getPlayerStorageValue(parameters.cid, storages.petUid)
if getCreatureTarget(getPlayerStorageValue(parameters.cid, storages.petUid)) ~= 0 then
attackCreature = getCreatureTarget(getPlayerStorageValue(parameters.cid, storages.petUid))
end 
local posa = getCreaturePosition(attackCreature)
doAreaCombatHealth(getPlayerStorageValue(parameters.cid, storages.petUid), COMBAT_FIREDAMAGE, {x = posa.x + randoms[1], y = posa.y + randoms[2], z = posa.z}, 1, -params.myAttack.minD, -params.myAttack.maxD, CONST_ME_FIREAREA)
doSendDistanceShoot(getCreaturePosition(getPlayerStorageValue(parameters.cid, storages.petUid)), {x = posa.x + randoms[1], y = posa.y + randoms[2], z = posa.z}, CONST_ANI_FIRE)

end
doAreaCombatHealthEx({cid = parameters.cid, target = getCreaturePosition(attackCreature), myAttack = myAttack})
for i = 1, 7 do
addEvent(doAreaCombatHealthEx, 200*i, {cid = parameters.cid, target = getCreaturePosition(attackCreature), myAttack = myAttack})
end
end
}
}
function setExhausted(cid)
setPlayerStorageValue(cid, storages.petSystemExhaustion, os.clock()+1)
end
function formulaAttack(magicLevel, level, maxb, maxa, minb, mina)
return {minD = (level * 2 + magicLevel * 3) * (1 + mina) + minb,
maxD = (level * 2 + magicLevel * 3) * (1 + maxb) + maxa
}
end

function isExhausted(cid)
if isPlayer(cid) == 1 then 
local CRONOMETRO = getPlayerStorageValue(cid, storages.petSystemExhaustion)
local CRONOMETRO2 = os.clock()
local TIEMPO = os.difftime(CRONOMETRO2, CRONOMETRO)
if petSystemExhaustion - TIEMPO > petSystemExhaustion or CRONOMETRO == -1 then
setPlayerStorageValue(cid, storages.petSystemExhaustion, CRONOMETRO2+1)
return 0
end
if petSystemExhaustion - TIEMPO <= 0 then
return 0
end
end
return 1
end

function addMana(a)
local cid = a.cid
local petManaMax = getPlayerLevel(cid)*manaGainPerLevel
if getPlayerStorageValue(cid, storages.petMana) < petManaMax then
if petManaMax - getPlayerStorageValue(cid, storages.petMana) < 10 then
setPlayerStorageValue(cid, storages.petMana, getPlayerStorageValue(cid, storages.petMana) + petManaMax - getPlayerStorageValue(cid, storages.petMana))
else
setPlayerStorageValue(cid, storages.petMana, getPlayerStorageValue(cid, storages.petMana) + 10)
end
addEvent(addMana, manaGainTicks, {cid = cid})
else
setPlayerStorageValue(cid, storages.petIsHealing, 0)
end
end

 

Se continuar não dando certo, me avise !

Link para o comentário
Compartilhar em outros sites

Ainda não funciono. estou usando um id diferente(2150) e ele não é usado por nenhum outro script e mesmo assim e bixo não é sumonado...

Acho que o bixo é sumonado só se eu tenho um pet, coisa que não tenho, pois o script não fornece isso, e sim o npc fornese isso.

se alguem conseguir, eu revejo...

Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...

FEXEM

Deveria haver alguma forma de punir atitudes como esta.

 

EDIT:

Já que o dono do tópico voltou atrás e postou os scripts, eu reavaliei meu post e aqui segue:

 

Scripts bons, complicados à primeira vista mas se seguir o que se pede ele funciona de boa.

 

flw

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

Aqui não está funcionando!

o catch funciona! captura o pokemon beleza e vira o item indicado no pokeball.lua!

Mas o go/back nao! quando clica na pokeball fala q nao pode usar o item!

obs.: O item continua com o nome original!

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

 

petSystemExhaustion = 0 --in secods, 0 = no exhausted. 
frases = {"Men, im still exhausted!", "Ok, in one momment", "afff, again?!", "meh, one second"}
lenght = 39 -- maximun lenght the !petsay can have...
manaGainTicks = 3000 -- 
--how fast the pet gains mana
manaGainAmmount = 20 --//
manaGainPerLevel = 30 -- mana that gains the pet for each level the player gain
magicLevelRate = 10 -- how faster the pet will gain mlvl compared to real tibia,,
base = 2000 --base storage. All storages will depend of this number
storages = {
petMag = base,
petUid = base+1,
petExha = base+2,
petDamage = base+3,
petManaSpent = base+4,
petIsOnline = base+5,
petMana = base+6,
petIsHealing = base+7,
petCap = base+8,
petSystemExhaustion = base+9
}

petItems = {}
maxItems = 10 --Max items the pet can carry
--lol V
x = 0 y = function() x = x + 1 end table.foreach(storages, y)
for i = 1, maxItems do
petItems[i] = base+x+i
end
--Pets, dependiong on the level
pets = 
{
{vocations = {4, 8}, pets =
{{level = 350, name = "Juggernaut"}, {level = 255, name = "Dark Torturer"}, {level = 190, name = "Hellfire Fighter"}, {level = 120, name = "Hydra"}, {level = 80, name = "Quara Hydromancer"}, {level = 50, name = "Cyclops Smith"}, {level = 40, name = "Demon Skeleton"}, {level = 30, name = "Barbarian Skullhunter"}, {level = 20, name = "Monk"}, {level = 10, name = "Bear"}, {level = 0, name = "Wolf"}}
},
{vocations = {1, 5}, pets =
{{level = 7, name = "Ferumbras"}, {level = 260, name = "Demon"}, {level = 180, name = "Betrayed Wraith"}, {level = 120, name = "Diabolic Imp"}, {level = 80, name = "Braindeath"}, {level = 50, name = "Ice Golem"}, {level = 40, name = "Acolyte Of The Cult"}, {level = 30, name = "Barbarian Headsplitter"}, {level = 20, name = "Dark Monk"}, {level = 10, name = "Polar Bear"}, {level = 0, name = "Cave Rat"}}
},
{vocations = {2, 6}, pets =
{{level = 7, name = "Ferumbras"}, {level = 260, name = "Hand of Cursed Fate"}, {level = 175, name = "Phantasm"}, {level = 120, name = "Frost Dragon"}, {level = 80, name = "Massive Water Elemental"}, {level = 50, name = "Water Elemental"}, {level = 40, name = "Dwarf Geomancer"}, {level = 30, name = "Barbarian Brutetamer"}, {level = 20, name = "Assassin"}, {level = 10, name = "Lion"}, {level = 0, name = "Rat"}}
},
{vocations = {3, 7}, pets =
{{level = 350, name = "Orshabaal"}, {level = 260, name = "Plaguesmith"}, {level = 185, name = "Destroyer"}, {level = 120, name = "Dragon Lord"}, {level = 80, name = "Quara Hydromancer Scout"}, {level = 50, name = "Orc Leader"}, {level = 40, name = "Elf Arcanist"}, {level = 30, name = "Barbarian Bloodwalker"}, {level = 20, name = "Hunter"}, {level = 10, name = "Panda"}, {level = 0, name = "Bat"}}
}
}
--attacks of the pet. !petattack "param
--It's pretty easy how to config, I think it doesn't need an extra explanation.
attacks = {{param = "a1", theFunction = false, offensive = 1, needLevel = 1, self = 0, needMag = 0, manaSpent = 1, exhausted = 1, range = 6, combatType = COMBAT_ENERGYDAMAGE, combatAni = CONST_ME_ENERGYAREA, area = 2, 
formula = {maxb = 0.4, maxa = 30, minb = 0.2, mina = 0},
},
{param = "a2", theFunction = false, offensive = 1, needLevel = 1, self = 0, needMag = 0, manaSpent = 1, exhausted = 1, range = 0, combatType = COMBAT_PHYSICALDAMAGE, combatAni = CONST_ME_HITAREA, area = 2, 
formula = {maxb = 0.6, maxa = 30, minb = 1.2, mina = 0},
},
{param = "a3", theFunction = false, offensive = 1, needLevel = 1, self = 0, needMag = 0, manaSpent = 100, exhausted = 1, range = 3, combatType = COMBAT_FIREDAMAGE, combatAni = CONST_ME_FIREAREA, area = 1, 
formula = {maxb = 0.6, maxa = 30, minb = 1.2, mina = 0}
},
{param = "a4", theFunction = false, offensive = 1, needLevel = 0, self = 0, needMag = 0, manaSpent = 1, exhausted = 1, range = 1, combatType = COMBAT_ENERGYDAMAGE, combatAni = CONST_ME_ENERGYAREA, area = 1, 
formula = {maxb = 0.13, maxa = 0, minb = 0.262, mina = 0}
},
{param = "a5", theFunction = false, offensive = -1, needLevel = 1, self = 1, needMag = 0, manaSpent = 1, exhausted = 2, range = 0, combatType = COMBAT_HEALING, combatAni = CONST_ME_MAGIC_BLUE, area = 1, 
formula = {maxb = 0.4, maxa = 20, minb = 0.7, mina = 0}
},
{param = "a6", theFunction = false, offensive = 1, needLevel = 1, self = 0, needMag = 0, manaSpent = 1, exhausted = 2, range = 0, combatType = COMBAT_ICEDAMAGE, combatAni = CONST_ANI_FIRE, area = 8, 
formula = {maxb = 1.0, maxa = 50, minb = 1.7, mina = 0}
},
{param = "paralize", needLevel = 1, needMag = 0, manaSpent = 300, exhausted = 2,
theFunction = function (parameters)
daPet = getPlayerStorageValue(parameters.cid, storages.petUid)
if getCreatureTarget(daPet) ~= 0 then
doAddCondition(getCreatureTarget(parameters.cid), 4)
end
end
},
{param = "speed", needLevel = 10, needMag = 4, manaSpent = 60, exhausted = 2,
theFunction = function (parameters) 
doAddCondition(getPlayerStorageValue(parameters.cid, storages.petUid), 11)
end
},
{param = "double fire", needLevel = 1, needMag = 0, manaSpent = 220, exhausted = 2,
theFunction = function (parameters)


local myAttack = formulaAttack(getPlayerLevel(parameters.cid), getPlayerStorageValue(parameters.cid, storages.petMag), 0.7, 0, 1.0, 0)
function doAreaCombatHealthEx(params)
local randoms = {[1] = math.random(-2, 2),
[2] = math.random(-2, 2) 
}

local attackCreature = getPlayerStorageValue(parameters.cid, storages.petUid)
if getCreatureTarget(getPlayerStorageValue(parameters.cid, storages.petUid)) ~= 0 then
attackCreature = getCreatureTarget(getPlayerStorageValue(parameters.cid, storages.petUid))
end 
local posa = getCreaturePosition(attackCreature)
doAreaCombatHealth(getPlayerStorageValue(parameters.cid, storages.petUid), COMBAT_FIREDAMAGE, {x = posa.x + randoms[1], y = posa.y + randoms[2], z = posa.z}, 1, -params.myAttack.minD, -params.myAttack.maxD, CONST_ME_FIREAREA)
doSendDistanceShoot(getCreaturePosition(getPlayerStorageValue(parameters.cid, storages.petUid)), {x = posa.x + randoms[1], y = posa.y + randoms[2], z = posa.z}, CONST_ANI_FIRE)

end
doAreaCombatHealthEx({cid = parameters.cid, target = getCreaturePosition(attackCreature), myAttack = myAttack})
for i = 1, 7 do
addEvent(doAreaCombatHealthEx, 200*i, {cid = parameters.cid, target = getCreaturePosition(attackCreature), myAttack = myAttack})
end
end
}
}
function setExhausted(cid)
setPlayerStorageValue(cid, storages.petSystemExhaustion, os.clock()+1)
end
function formulaAttack(magicLevel, level, maxb, maxa, minb, mina)
return {minD = (level * 2 + magicLevel * 3) * (1 + mina) + minb,
maxD = (level * 2 + magicLevel * 3) * (1 + maxb) + maxa
}
end

function isExhausted(cid)
if isPlayer(cid) == 1 then 
local CRONOMETRO = getPlayerStorageValue(cid, storages.petSystemExhaustion)
local CRONOMETRO2 = os.clock()
local TIEMPO = os.difftime(CRONOMETRO2, CRONOMETRO)
if petSystemExhaustion - TIEMPO > petSystemExhaustion or CRONOMETRO == -1 then
setPlayerStorageValue(cid, storages.petSystemExhaustion, CRONOMETRO2+1)
return 0
end
if petSystemExhaustion - TIEMPO <= 0 then
return 0
end
end
return 1
end

function addMana(a)
local cid = a.cid
local petManaMax = getPlayerLevel(cid)*manaGainPerLevel
if getPlayerStorageValue(cid, storages.petMana) < petManaMax then
if petManaMax - getPlayerStorageValue(cid, storages.petMana) < 10 then
setPlayerStorageValue(cid, storages.petMana, getPlayerStorageValue(cid, storages.petMana) + petManaMax - getPlayerStorageValue(cid, storages.petMana))
else
setPlayerStorageValue(cid, storages.petMana, getPlayerStorageValue(cid, storages.petMana) + 10)
end
addEvent(addMana, manaGainTicks, {cid = cid})
else
setPlayerStorageValue(cid, storages.petIsHealing, 0)
end
end

 

Como funciona isto/\?

Link para o comentário
Compartilhar em outros sites

@Mestereod

 

Isso funciona como pet system, nesse script mostra os poderes dos pets e os pets por level, por exemplo:

 

pets =

{

{vocations = {4, 8}, pets =

{{level = 350, name = "Juggernaut"}, {level = 255, name = "Dark Torturer"}, {level = 190, name = "Hellfire Fighter"}, {level = 120, name = "Hydra"}, {level = 80, name = "Quara Hydromancer"}, {level = 50, name = "Cyclops Smith"}, {level = 40, name = "Demon Skeleton"}, {level = 30, name = "Barbarian Skullhunter"}, {level = 20, name = "Monk"}, {level = 10, name = "Bear"}, {level = 0, name = "Wolf"}}

},

{vocations = {1, 5}, pets =

{{level = 7, name = "Ferumbras"}, {level = 260, name = "Demon"}, {level = 180, name = "Betrayed Wraith"}, {level = 120, name = "Diabolic Imp"}, {level = 80, name = "Braindeath"}, {level = 50, name = "Ice Golem"}, {level = 40, name = "Acolyte Of The Cult"}, {level = 30, name = "Barbarian Headsplitter"}, {level = 20, name = "Dark Monk"}, {level = 10, name = "Polar Bear"}, {level = 0, name = "Cave Rat"}}

},

{vocations = {2, 6}, pets =

{{level = 7, name = "Ferumbras"}, {level = 260, name = "Hand of Cursed Fate"}, {level = 175, name = "Phantasm"}, {level = 120, name = "Frost Dragon"}, {level = 80, name = "Massive Water Elemental"}, {level = 50, name = "Water Elemental"}, {level = 40, name = "Dwarf Geomancer"}, {level = 30, name = "Barbarian Brutetamer"}, {level = 20, name = "Assassin"}, {level = 10, name = "Lion"}, {level = 0, name = "Rat"}}

},

{vocations = {3, 7}, pets =

{{level = 350, name = "Orshabaal"}, {level = 260, name = "Plaguesmith"}, {level = 185, name = "Destroyer"}, {level = 120, name = "Dragon Lord"}, {level = 80, name = "Quara Hydromancer Scout"}, {level = 50, name = "Orc Leader"}, {level = 40, name = "Elf Arcanist"}, {level = 30, name = "Barbarian Bloodwalker"}, {level = 20, name = "Hunter"}, {level = 10, name = "Panda"}, {level = 0, name = "Bat"}}

}

}

 

Isso é os pets por level de cada vocation.

 

--attacks of the pet. !petattack "param

--It's pretty easy how to config, I think it doesn't need an extra explanation.

attacks = {{param = "a1", theFunction = false, offensive = 1, needLevel = 1, self = 0, needMag = 0, manaSpent = 1, exhausted = 1, range = 6, combatType = COMBAT_ENERGYDAMAGE, combatAni = CONST_ME_ENERGYAREA, area = 2,

formula = {maxb = 0.4, maxa = 30, minb = 0.2, mina = 0},

},

{param = "a2", theFunction = false, offensive = 1, needLevel = 1, self = 0, needMag = 0, manaSpent = 1, exhausted = 1, range = 0, combatType = COMBAT_PHYSICALDAMAGE, combatAni = CONST_ME_HITAREA, area = 2,

formula = {maxb = 0.6, maxa = 30, minb = 1.2, mina = 0},

},

{param = "a3", theFunction = false, offensive = 1, needLevel = 1, self = 0, needMag = 0, manaSpent = 100, exhausted = 1, range = 3, combatType = COMBAT_FIREDAMAGE, combatAni = CONST_ME_FIREAREA, area = 1,

formula = {maxb = 0.6, maxa = 30, minb = 1.2, mina = 0}

},

{param = "a4", theFunction = false, offensive = 1, needLevel = 0, self = 0, needMag = 0, manaSpent = 1, exhausted = 1, range = 1, combatType = COMBAT_ENERGYDAMAGE, combatAni = CONST_ME_ENERGYAREA, area = 1,

formula = {maxb = 0.13, maxa = 0, minb = 0.262, mina = 0}

},

{param = "a5", theFunction = false, offensive = -1, needLevel = 1, self = 1, needMag = 0, manaSpent = 1, exhausted = 2, range = 0, combatType = COMBAT_HEALING, combatAni = CONST_ME_MAGIC_BLUE, area = 1,

formula = {maxb = 0.4, maxa = 20, minb = 0.7, mina = 0}

},

{param = "a6", theFunction = false, offensive = 1, needLevel = 1, self = 0, needMag = 0, manaSpent = 1, exhausted = 2, range = 0, combatType = COMBAT_ICEDAMAGE, combatAni = CONST_ANI_FIRE, area = 8,

formula = {maxb = 1.0, maxa = 50, minb = 1.7, mina = 0}

},

{param = "paralize", needLevel = 1, needMag = 0, manaSpent = 300, exhausted = 2,

theFunction = function (parameters)

daPet = getPlayerStorageValue(parameters.cid, storages.petUid)

if getCreatureTarget(daPet) ~= 0 then

doAddCondition(getCreatureTarget(parameters.cid), 4)

end

end

},

{param = "speed", needLevel = 10, needMag = 4, manaSpent = 60, exhausted = 2,

theFunction = function (parameters)

doAddCondition(getPlayerStorageValue(parameters.cid, storages.petUid), 11)

end

},

{param = "double fire", needLevel = 1, needMag = 0, manaSpent = 220, exhausted = 2,

theFunction = function (parameters)

 

 

E isso os poderes do pet, !petattack "param

Link para o comentário
Compartilhar em outros sites

meu go/back tambem nao funciona eu usei os mesmo item q vc usou no tutorial (baixei)coloquei nos luigares certinhos!a pokeball só esta com uma funçao

eu consigo captura mais nao consigo jogar o poke!

 

alguem me ajuda!!ow alguem sabe outro go/back q pega?

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

@twoup

 

Acho que o problema é na versão que vocês usam, acho não tem as mesmas funções dos que eu testei. testei em 8.11, 8.40 e 8.50 .

 

 

@edit

-- SalomaoLoko

 

alguem me ajuda!!ow alguem sabe outro go/back q pega?

 

Pior que eu nem sei, mas vou dar uma procurada aqui no fórum, qualquer coisa edito aqui

 

@edit²

-- SalomaoLoko

 

achei.

 

local config = {
monsterName = "Moltres",
maxSummon = 1,
storageHealth = 1000,
level = 100
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
local summon = getCreatureSummons(cid)
if getPlayerLevel(cid) < config.level then
return doPlayerSendCancel(cid,"Você precisa de level "..config.level.." para invocar esse pokémon.")
end
if(table.maxn(summon) < config.maxSummon) then
local p = doCreateMonster(config.monsterName, getThingPosition(cid))
doConvinceCreature(cid, p)
doCreatureAddHealth(p, -(getCreatureMaxHealth(p)-getPlayerStorageValue(cid, config.storageHealth)))
doCreatureSay(cid, "Go, ".. config.monsterName .."", TALKTYPE_SAY)
doSendMagicEffect(getThingPosition(cid), 10)
else
for _, pid in pairs(summon) do
doRemoveCreature(pid)
setPlayerStorageValue(cid, config.storageHealth, getCreatureHealth(pid))
doCreatureSay(cid, "Back, ".. config.monsterName .."", TALKTYPE_SAY)
end
end
return TRUE
end

 

aí vc muda o nome do pokemon que no lugar tah "monsterName = Moltres" e se preferir, o level para ser usado mudando o "level = 100".

 

Ainda não testei, testa primeiro que se não der certo vou TENTAR arrumar

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

aqui continua sem funcionar...

nao tem q editar o item de alguma forma nao?

pq pelo q percebi esta usando armors como pb!

n tem q editar eles para funcionar como o go/back nao?

tipo poder dar use neles?

Link para o comentário
Compartilhar em outros sites

Eu capturo e tals, mas na hora de dar look na ball, ao invéz de por exemplo estar falando "Contém um Bulbasaur" sei que não é em português, mais é um exemplo.. invéz de está assim, fica uma pokebola como se tive-se um monstro dentro mais quando da look tem o nome de algum item e não sai nada de dentro..

 

acho que é na parte

 

"doPlayerAddItem(cid, 2147,1)"

 

não consigo fazer com que fique um pokemon.. só fica itens

 

 

 

------------EDIT-------------

 

Ja sei oq é, eu to sem o pet system :X

 

Alguém pode passar um pet system que pegue com esse script?

Editado por Thi@go
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...