Mande seu goback.lua, de data/actions.
- Fórum
- OTServ
- Suporte
- Tópicos Sem Resposta
- [Encerrado] [Pedido] Cooldown/Delay para chamar pokemon novamente.
DE
[Encerrado] [Pedido] Cooldown/Delay para chamar pokemon novamente.
Por Dextroy, 12 de fev. de 2014 em Tópicos Sem Resposta
resolvido
script
7
735
12 de fevereiro de 2014 às 21:29
12 de fevereiro de 2014 às 21:36
local EFFECTS = {--[OutfitID] = {Effect}["Magmar"] = 35,["Jynx"] = 17, --alterado v1.5["Shiny Jynx"] = 17,["Piloswine"] = 205, --alterado v1.8["Swinub"] = 205,}function onUse(cid, item, frompos, item2, topos)if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true endif getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 <<return trueendlocal ballName = getItemAttribute(item.uid, "poke")local btype = getPokeballType(item.itemid)local usando = pokeballs[btype].uselocal effect = pokeballs[btype].effectif not effect theneffect = 21endunLock(item.uid) --alterado v1.8if item.itemid == usando thenif getPlayerStorageValue(cid, 990) == 1 then -- GYMdoPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")return trueendif #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 thenBackTeam(cid)endendif #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 thendoPlayerSendCancel(cid, "You can't do that while is controling a mind")return true --alterado v1.5endif #getCreatureSummons(cid) <= 0 thenif isInArray(pokeballs[btype].all, item.itemid) thendoTransformItem(item.uid, pokeballs[btype].off)doItemSetAttribute(item.uid, "hp", 0)doPlayerSendCancel(cid, "This pokemon is fainted.")return trueendendlocal cd = getCD(item.uid, "blink", 30)if cd > 0 thensetCD(item.uid, "blink", 0)endlocal z = getCreatureSummons(cid)[1]if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) thenreturn trueenddoReturnPokemon(cid, z, item, effect)elseif item.itemid == pokeballs[btype].on thenif item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid thendoPlayerSendCancel(cid, "You must put your pokeball in the correct place!")return TRUEendlocal thishp = getItemAttribute(item.uid, "hp")if thishp <= 0 thenif isInArray(pokeballs[btype].all, item.itemid) thendoTransformItem(item.uid, pokeballs[btype].off)doItemSetAttribute(item.uid, "hp", 0)doPlayerSendCancel(cid, "This pokemon is fainted.")return trueendendlocal pokemon = getItemAttribute(item.uid, "poke")if not pokes[pokemon] thenreturn trueend----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto ---------------------------------if not isInArray({5, 6}, getPlayerGroupId(cid)) thenlocal balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)local low = {}local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"}if #balls >= 1 thenfor _, uid in ipairs(balls) dolocal nome = getItemAttribute(uid, "poke")if not isInArray(lowPokes, pokemon) and nome == pokemon thenreturn doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!")elseif nome == pokemon thentable.insert(low, nome)endendendendif #low >= 3 thenreturn doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!")endend---------------------------------------------------------------------------------------------------------------------------------------------------local x = pokes[pokemon]local boost = getItemAttribute(item.uid, "boost") or 0if getPlayerLevel(cid) < (x.level+boost) thendoPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.")return trueend---------------------------- Sistema pokes de clan --------------------------------------local shinysClan = {["Shiny Fearow"] = {4, "Wingeon"},["Shiny Flareon"] = {1, "Volcanic"},["Shiny Vaporeon"] = {2, "Seavel"},["Shiny Jolteon"] = {9, "Raibolt"},["Shiny Hypno"] = {7, "Psycraft"},["Shiny Golem"] = {3, "Orebound"},["Shiny Vileplume"] = {8, "Naturia"},["Shiny Nidoking"] = {5, "Malefic"},["Shiny Hitmontop"] = {6, "Gardestrike"}, --alterado v1.4}if shinysClan[pokemon] and (getPlayerGroupId(cid) < 4 or getPlayerGroupId(cid) > 6) then --alterado v1.9 \/if getPlayerClanNum(cid) ~= shinysClan[pokemon][1] thendoPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!")return trueelseif getPlayerClanRank(cid) ~= 5 thendoPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!")return trueendend--------------------------------------------------------------------------------------doSummonMonster(cid, pokemon)local pk = getCreatureSummons(cid)[1]if not isCreature(pk) then return true end------------------------passiva hitmonchan------------------------------if isSummon(pk) then --alterado v1.8 \/if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" thenif not getItemAttribute(item.uid, "hands") thendoSetItemAttribute(item.uid, "hands", 0)endlocal hands = getItemAttribute(item.uid, "hands")doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1)endend----------------------------------------------------------------------------------movement magmar, jynx-------------if EFFECTS[getCreatureName(pk)] thenmarkPosEff(pk, getThingPos(pk))sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk))end--------------------------------------------------------------------------if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --editedlocal left = getItemAttribute(item.uid, "transLeft")local name = getItemAttribute(item.uid, "transName")if left and left > 0 thensetPlayerStorageValue(pk, 1010, name)doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1)addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn"))doItemSetAttribute(item.uid, "transBegin", os.clock())elsesetPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto") --editedendendif isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) enddoCreatureSetLookDir(pk, 2)adjustStatus(pk, item.uid, true, true, true)doAddPokemonInOwnList(cid, pokemon)doTransformItem(item.uid, item.itemid+1)if icons[pokemon] thendoTransformItem(item.uid, icons[pokemon].use)enddoTransformItem(item.uid, item.itemid+1)local pokename = getPokeName(pk) --alterado v1.7local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)doCreatureSay(cid, mgo, TALKTYPE_SAY)doSendMagicEffect(getCreaturePosition(pk), effect)if useOTClient thendoPlayerSendCancel(cid, '12//,show') --alterado v1.7endlocal pk = getCreatureSummons(cid)[1]local pb = getPlayerSlotItem(cid, 8).uidlocal look = getItemAttribute(pb,"addon")if not look thendoSetItemAttribute(pb,"addon",0)return falseendif look > 0 thendoSetCreatureOutfit(pk, {lookType = look}, -1)return trueendelsedoPlayerSendCancel(cid, "This pokemon is fainted.")endif useKpdoDlls thendoUpdateMoves(cid)endreturn trueend
Ta aí '-'
12 de fevereiro de 2014 às 21:40
Configure na variável exausted.
local EFFECTS = {
--[OutfitID] = {Effect}
["Magmar"] = 35,
["Jynx"] = 17, --alterado v1.5
["Shiny Jynx"] = 17,
["Piloswine"] = 205, --alterado v1.8
["Swinub"] = 205,
}
local exausted = 3 --Exausted, em segundos.
local STORAGE_EXAUSTED = 918312
function onUse(cid, item, frompos, item2, topos)
if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end
if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1
or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 <<
return true
end
local ballName = getItemAttribute(item.uid, "poke")
local btype = getPokeballType(item.itemid)
local usando = pokeballs[btype].use
local effect = pokeballs[btype].effect
if not effect then
effect = 21
end
unLock(item.uid) --alterado v1.8
if item.itemid == usando then
if getPlayerStorageValue(cid, 990) == 1 then -- GYM
doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
return true
end
if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6
if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then
BackTeam(cid)
end
end
if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then
doPlayerSendCancel(cid, "You can't do that while is controling a mind")
return true --alterado v1.5
end
if #getCreatureSummons(cid) <= 0 then
if isInArray(pokeballs[btype].all, item.itemid) then
doTransformItem(item.uid, pokeballs[btype].off)
doItemSetAttribute(item.uid, "hp", 0)
doPlayerSendCancel(cid, "This pokemon is fainted.")
return true
end
end
local cd = getCD(item.uid, "blink", 30)
if cd > 0 then
setCD(item.uid, "blink", 0)
end
local z = getCreatureSummons(cid)[1]
if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then
return true
end
setPlayerStorageValue(cid, STORAGE_EXAUSTED, os.time() + exausted)
doReturnPokemon(cid, z, item, effect)
elseif item.itemid == pokeballs[btype].on then
if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
return TRUE
end
local thishp = getItemAttribute(item.uid, "hp")
if thishp <= 0 then
if isInArray(pokeballs[btype].all, item.itemid) then
doTransformItem(item.uid, pokeballs[btype].off)
doItemSetAttribute(item.uid, "hp", 0)
doPlayerSendCancel(cid, "This pokemon is fainted.")
return true
end
end
if getPlayerStorageValue(cid, STORAGE_EXAUSTED) > os.time() then
return doPlayerSendCancel(cid, string.format("Sorry, you're exausted. (%d second%s)", getPlayerStorageValue(cid, STORAGE_EXAUSTED) - os.time(), (getPlayerStorageValue(cid, STORAGE_EXAUSTED) - os.time()) > 1 and "s" or ""))
end
local pokemon = getItemAttribute(item.uid, "poke")
if not pokes[pokemon] then
return true
end
----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto ---------------------------------
if not isInArray({5, 6}, getPlayerGroupId(cid)) then
local balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)
local low = {}
local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"}
if #balls >= 1 then
for _, uid in ipairs(balls) do
local nome = getItemAttribute(uid, "poke")
if not isInArray(lowPokes, pokemon) and nome == pokemon then
return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!")
else
if nome == pokemon then
table.insert(low, nome)
end
end
end
end
if #low >= 3 then
return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!")
end
end
---------------------------------------------------------------------------------------------------------------------------------------------------
local x = pokes[pokemon]
local boost = getItemAttribute(item.uid, "boost") or 0
if getPlayerLevel(cid) < (x.level+boost) then
doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.")
return true
end
---------------------------- Sistema pokes de clan --------------------------------------
local shinysClan = {
["Shiny Fearow"] = {4, "Wingeon"},
["Shiny Flareon"] = {1, "Volcanic"},
["Shiny Vaporeon"] = {2, "Seavel"},
["Shiny Jolteon"] = {9, "Raibolt"},
["Shiny Hypno"] = {7, "Psycraft"},
["Shiny Golem"] = {3, "Orebound"},
["Shiny Vileplume"] = {8, "Naturia"},
["Shiny Nidoking"] = {5, "Malefic"},
["Shiny Hitmontop"] = {6, "Gardestrike"}, --alterado v1.4
}
if shinysClan[pokemon] and (getPlayerGroupId(cid) < 4 or getPlayerGroupId(cid) > 6) then --alterado v1.9 \/
if getPlayerClanNum(cid) ~= shinysClan[pokemon][1] then
doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!")
return true
elseif getPlayerClanRank(cid) ~= 5 then
doPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!")
return true
end
end
--------------------------------------------------------------------------------------
doSummonMonster(cid, pokemon)
local pk = getCreatureSummons(cid)[1]
if not isCreature(pk) then return true end
------------------------passiva hitmonchan------------------------------
if isSummon(pk) then --alterado v1.8 \/
if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then
if not getItemAttribute(item.uid, "hands") then
doSetItemAttribute(item.uid, "hands", 0)
end
local hands = getItemAttribute(item.uid, "hands")
doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1)
end
end
-------------------------------------------------------------------------
---------movement magmar, jynx-------------
if EFFECTS[getCreatureName(pk)] then
markPosEff(pk, getThingPos(pk))
sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk))
end
--------------------------------------------------------------------------
if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited
local left = getItemAttribute(item.uid, "transLeft")
local name = getItemAttribute(item.uid, "transName")
if left and left > 0 then
setPlayerStorageValue(pk, 1010, name)
doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1)
addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn"))
doItemSetAttribute(item.uid, "transBegin", os.clock())
else
setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto") --edited
end
end
if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end
doCreatureSetLookDir(pk, 2)
adjustStatus(pk, item.uid, true, true, true)
doAddPokemonInOwnList(cid, pokemon)
doTransformItem(item.uid, item.itemid+1)
if icons[pokemon] then
doTransformItem(item.uid, icons[pokemon].use)
end
doTransformItem(item.uid, item.itemid+1)
local pokename = getPokeName(pk) --alterado v1.7
local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)
doCreatureSay(cid, mgo, TALKTYPE_SAY)
doSendMagicEffect(getCreaturePosition(pk), effect)
if useOTClient then
doPlayerSendCancel(cid, '12//,show') --alterado v1.7
end
local pk = getCreatureSummons(cid)[1]
local pb = getPlayerSlotItem(cid, 8).uid
local look = getItemAttribute(pb,"addon")
if not look then
doSetItemAttribute(pb,"addon",0)
return false
end
if look > 0 then
doSetCreatureOutfit(pk, {lookType = look}, -1)
return true
end
else
doPlayerSendCancel(cid, "This pokemon is fainted.")
end
if useKpdoDlls then
doUpdateMoves(cid)
end
return true
end
12 de fevereiro de 2014 às 22:12
Muito obrigado mesmo! ![]()
12 de fevereiro de 2014 às 22:37
Tópico movido para a seção de dúvidas e pedidos resolvidos.
4 anos depois...
info
Grupo: Herói
Registrado: 28/11/10
Posts: 3.4k
Reputação: +585
Gênero: Masculino

21 de abril de 2018 às 03:24
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.
+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.




info
Grupo: Campones
Registrado: 22/02/08
Posts: 7
Reputação: 0
Gostaria de um script (ou saber em qual script modifico) para colocar um cooldown ao chamar um pokemon de uma pokebola.
Acontece que as vezes ao ficar clicando repetidamente na pokebola acontece de sumonar 2 pokemons ao mesmo tempo, então imagino que se pudesse colocar um cooldown de uns 3 segundos para poder chamar novamente esse bug seria evitado.
Imagino que esse script fique dentro do 'actions', mas não entendo muito de scripting, não achei em qual parte mudaria/colocaria isso.
Alguém ai pode ajudar?