Ir para conteúdo
  • 0

[ Action ] Sistema De Captura De Pokemon


xXxPhexXx

Pergunta

 local notAllowed = {"Ferumbras", "Demon"}
local storage = {
status = 15244,
pokeName = 15212
}
local actionid_used = 7510

function onUse(cid, item, fromPos, item2, toPos)
local pokeballStatus = getPlayerStorageValue(cid, storage.status)
local pokeName = getPlayerStorageString(cid, storage.pokeName)
pos = getPlayerPosition(cid) pos.stackpos = 0
if pokeballStatus <= 0 then
toPos.stackpos = 253
local pokeThing = getThingfromPos(toPos)
if isCreature(pokeThing.uid) == TRUE then
if isPlayer(pokeThing.uid) == FALSE then
local pokename_ = getCreatureName(pokeThing.uid)
if item.actionid ~= actionid_used then
-- local maxHealth = 400
-- local creatureHealth = getCreatureHealth(pokeThing.uid)
-- local divNum = (string.len(maxHealth)-1)^2
-- local result = math.floor((creatureHealth/divNum)/10)
-- local chance = math.random(1, math.random(4, math.random(7, math.max(result, 7))))
-- if chance == result then
if isInTable(notAllowed, pokename_) == TRUE then
doPlayerSendCancel(cid, "You cannot catch this creature")
else
setPlayerStorageString(cid, storage.pokeName, pokename_)
doRemoveCreature(pokeThing.uid)
doSendDistanceShoot(fromPos, toPos, 37)
setPlayerStorageValue(cid, storage.status, 1)
doSetItemSpecialDescription(item.uid, "Essa pokebola Contem um" .. pokename_ .. ".")
doSetItemActionId(item.uid, actionid_used)
end
-- else
-- doSendMagicEffect(fromPos, 9086)
-- doPlayerSendCancel(cid, "The Pokemom Escaped")
-- end
elseif item.actionid == actionid_used and pokename_ == pokeName then
doCreatureSay(cid, pokeName .. " Back!!", TALKTYPE_SAY)
doRemoveCreature(pokeThing.uid)
doSetItemSpecialDescription(item.uid, "Essa Poke Bola Tem Um " .. pokename_ .. ".")
setPlayerStorageValue(cid, storage.status, 1)
doSendDistanceShoot(fromPos, toPos, 37)
else
doSendMagicEffect(fromPos, 9087)
doPlayerSendCancel(cid, "Essa Pokebola Ja Tem Um Pokemon")
end
else
doPlayerSendCancel(cid, "You cannot catch this creature")
end
else
doPlayerSendCancel(cid, "Creature not found")
end
elseif pokeballStatus == 1 then
-- summons = doCreatureSummons(cid)
-- if #summons >= 2 then
-- doPlayerSendCancel(cid, "You cannot call more pokemons")
-- else
doConvinceSummon(cid, pokeName, 0, toPos)
doSendDistanceShoot(fromPos, toPos, 37)
doCreatureSay(cid, pokeName .. " Go!!", TALKTYPE_SAY)
setPlayerStorageValue(cid, storage.status, 0)
doSetItemSpecialDescription(item.uid, "Nao Ha Pokemons.")
-- end
end

return 1
end

function isInTable(t, val)
for _, v in pairs(t) do
if v == val then
return TRUE
end
end
return LUA_ERROR
end 

 

 

 

 

/\ essa script ai eu queru que alguem ponha uma chance de capturar o pokemon por favor eu estou precisnaod mt disso eu do adm no meu server de pokemon falta poucos sistemas

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

11 respostass a esta questão

Posts Recomendados

  • 0

Acho que eu sei o problema. Tenta ae:

 

local notAllowed = {"Ferumbras", "Demon"}

local storage = {

status = 15244,

pokeName = 15212

}

local actionid_used = 7510

 

function onUse(cid, item, fromPos, item2, toPos)

local pokeballStatus = getPlayerStorageValue(cid, storage.status)

local pokeName = getPlayerStorageString(cid, storage.pokeName)

pos = getPlayerPosition(cid) pos.stackpos = 0

if pokeballStatus <= 0 then

toPos.stackpos = 253

local pokeThing = getThingfromPos(toPos)

if isCreature(pokeThing.uid) == TRUE then

if isPlayer(pokeThing.uid) == FALSE then

local pokename_ = getCreatureName(pokeThing.uid)

if item.actionid ~= actionid_used then

local maxHealth = 400

local creatureHealth = getCreatureHealth(pokeThing.uid)

local divNum = (string.len(maxHealth)-1)^2

local result = math.floor((creatureHealth/divNum)/10)

local chance = math.random(1, math.random(4, math.random(7, math.max(result, 7))))

if chance == result then

if isInTable(notAllowed, pokename_) == TRUE then

doPlayerSendCancel(cid, "You cannot catch this creature")

else

setPlayerStorageString(cid, storage.pokeName, pokename_)

doRemoveCreature(pokeThing.uid)

doSendDistanceShoot(fromPos, toPos, 37)

setPlayerStorageValue(cid, storage.status, 1)

doSetItemSpecialDescription(item.uid, "Essa pokebola Contem um" .. pokename_ .. ".")

doSetItemActionId(item.uid, actionid_used)

end

else

doSendMagicEffect(fromPos, 9086)

doPlayerSendCancel(cid, "The Pokemom Escaped")

end

elseif item.actionid == actionid_used and pokename_ == pokeName then

doCreatureSay(cid, pokeName .. " Back!!", TALKTYPE_SAY)

doRemoveCreature(pokeThing.uid)

doSetItemSpecialDescription(item.uid, "Essa Poke Bola Tem Um " .. pokename_ .. ".")

setPlayerStorageValue(cid, storage.status, 1)

doSendDistanceShoot(fromPos, toPos, 37)

else

doSendMagicEffect(fromPos, 9087)

doPlayerSendCancel(cid, "Essa Pokebola Ja Tem Um Pokemon")

end

else

doPlayerSendCancel(cid, "You cannot catch this creature")

end

else

doPlayerSendCancel(cid, "Creature not found")

end

elseif pokeballStatus == 1 then

summons = doCreatureSummons(cid)

if #summons >= 2 then

doPlayerSendCancel(cid, "You cannot call more pokemons")

else

doConvinceSummon(cid, pokeName, 0, toPos)

doSendDistanceShoot(fromPos, toPos, 37)

doCreatureSay(cid, pokeName .. " Go!!", TALKTYPE_SAY)

setPlayerStorageValue(cid, storage.status, 0)

doSetItemSpecialDescription(item.uid, "Nao Ha Pokemons.")

end

end

 

return 1

end

 

function isInTable(t, val)

for _, v in pairs(t) do

if v == val then

return TRUE

end

end

return LUA_ERROR

end

Link para o comentário
Compartilhar em outros sites

  • 0

Hmmm,

 

você adicionou isto:

 

_warpzone = 2147483648 -- start storing strings here (THIS IS THE ABSOLUTE MAXIMUM VALUE FOR THIS)

_maxlength = 1024 -- multiply by 3 to get the true length.

 

setPlayerStorageInteger = setPlayerStorageValue

getPlayerStorageInteger = getPlayerStorageValue

 

function setPlayerStorageString(cid, key, value)

if #value > (_maxlength-1) * 3 - 1 then -- Last word is reserved for 0 termination of the string.

error("Storage string is too long")

end

if key > _warpzone / _maxlength then

error("Storage string key is too large (" .. key .. ")")

end

key = _warpzone + key * _maxlength

 

local word = 0

local wordwrap = 0

local wordcount = 0

local i = 1

while i <= #value do

local byte = string.byte(string.sub(value, i, i))

word = bit.bor(word, bit.lshift(byte, wordwrap))

wordwrap = wordwrap + 8

if wordwrap == 24 then

--[[

In the ideal world we would be able to store 4 characters per word,

however, as the default return value for getPlayerStorageValue is

-1, we cant use the last bit.

]]--

setPlayerStorageInteger(cid, key + wordcount, word)

word = 0

wordwrap = 0

wordcount = wordcount + 1

end

i = i + 1

end

-- store the last word

setPlayerStorageInteger(cid, key + wordcount, word)

end

 

function getPlayerStorageString(cid, key)

if key > _warpzone / _maxlength then

error("Storage string key is too large (" .. key .. ")")

end

key = _warpzone + key * _maxlength

 

local wordcount = 0

local str = ""

while true do

if wordcount >= _maxlength then

break

end

local word = getPlayerStorageInteger(cid, key + wordcount)

if word == -1 then

-- end of string

break

else

-- Extract the 3 characters from the value

byte = bit.band(word, 255)

if byte == 0 then break else str = str .. string.char(byte) end

byte = bit.rshift(bit.band(word, 65280), 8)

if byte == 0 then break else str = str .. string.char(byte) end

byte = bit.rshift(bit.band(word, 16711680), 16)

if byte == 0 then break else str = str .. string.char(byte) end

end

wordcount = wordcount + 1

end

return str

end

 

e isso:

 

function doConvinceSummon(cid, creature, amount, pos)

summonplayerpos = {x=pos.x, y=pos.y, z=pos.z, stackpos=253}

summonplayer = getThingfromPos(summonplayerpos)

 

 

if(summonplayer ~= nil and summonplayer.itemid > 0) then

doPlayerSendCancel(cid,"There is not enough room to summon here.")

ret = 0

else

convince = doSummonCreature(creature, pos)

doConvinceCreature(cid, convince)

ret = 1

end

 

return ret

end

 

na GlobalFunctions?

Link para o comentário
Compartilhar em outros sites

  • 0

OI GALERA VCS PODEM ME AJUDAR EU TOU COM UM PROBLEMA NO MEU SERVER DE POKEMON NA HORA DO SURF TIPO QUANDO EU COLOCO PRA SURFAR ELE ENTRA NA AGUA MONTADO NO POKEMON SO QUE FICA TRAVADO ALI NAQUELE LOCAL OU AS VEZES ACABA INDO PRA UM LUGAR BEM LONGE DE ONDE EU BOTEI E AINDA SIM NO SE MEXE ALGUEM PODERIA ME AJUDAR COM ESSE ERRO E TBM QUERO CORRIGIR UM ERRO DE QUE QUANDO EU VOU CURAR OS POKEMONS NA ENFERMEIRA JOY LAH NO PC POKEMON CENTER ELA SO CURA UM DE CADA VEZ DAI TEM QUE SAIR DANDO HI HI HI HI ATE CURAR TODOS QUERO SABER SE TEM ALGUMA MANEIRA DE CURAR TODOS NUM 'HI' SOH.

Link para o comentário
Compartilhar em outros sites

  • 0

Alguem por favor sabe algum sistema de catch de pokemon por favor coloque bem explicativo, pois ja vi muitos tutorias porém não funcionam, meu ot server é o Dash v.6 versão do tibia 8.54

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

×
×
  • Criar Novo...