XX

[ Action ] Sistema De Captura De Pokemon

Por xXxPhexXx, 18 de mai. de 2010 em Scripts

script
12
5.3k
xXxPhexXxX
18 de maio de 2010 às 19:25

 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 Maio 18 por Phezinho

matheus1000M
18 de maio de 2010 às 20:25

Oque? Não intendi explica melhor.

xXxPhexXxX
18 de maio de 2010 às 21:12

Tipo Essa script vc clicka na poke bola depois no pokemon e ja captura eu queria que tivesse um chance de capturar o pokemon ou a pokebola falha

matheus1000M
18 de maio de 2010 às 21:30

Acho que já tem isso.

xXxPhexXxX
18 de maio de 2010 às 21:43

me adiciona no msn phellippe_gatao@hotmail.com

 

 

e n tem a chance n vc clicka na pokebola e no poke e ja captura direto n tem chance de falha eu queria que vc fisseze isso

matheus1000M
19 de maio de 2010 às 08:23

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

xXxPhexXxX
19 de maio de 2010 às 16:06

n funciono agora nem tenta captura ja n captura de kra e quando captura n solta

matheus1000M
19 de maio de 2010 às 19:39

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?

xXxPhexXxX
19 de maio de 2010 às 21:15

sim adicionei sim

 

e nao vai

Editado Maio 19 por Phezinho

matheus1000M
19 de maio de 2010 às 21:17

Não sei qual é o problema.

8 meses depois...
zorzinanoZ
17 de janeiro de 2011 às 10:59

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.

3 meses depois...
lukinhas95L
21 de abril de 2011 às 17:39

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 Abril 21 por LukBolado