Script :Maker Nahruto
A litle Editted by : izaak
After edditing the script a bit these are the new functions.
1.the pokeball will capture a monster and release it as a wild creature [ not as a summon ]
2.the pokeball will be removed from your backpack
"Warning"the rune might not work if you give it more then 1 charge" cause i didnt test that yet.
This is what you do
goto your global.lua located in your data folder
if you dont have 1 just create 1
add this at the bottom of global.lua
then save the file and exit it
after youve done that go to your actions folder located inside of your data folder and open actions.xml
add this to actions.xml
then save the file and close it
now inside the actions folder open the script folder and create pokeball.lua
add this to pokeball.lua
Then save the file and exit
now goto your spell folder and open spells.xml
add this inside
now it should work for you xD ejoy
if you want it to say its a Poke Rune
open items.xml press Ctrl +F
type in 2263 then pres enter
change Spell Rune To Poke Rune
and save
A litle Editted by : izaak
After edditing the script a bit these are the new functions.
1.the pokeball will capture a monster and release it as a wild creature [ not as a summon ]
2.the pokeball will be removed from your backpack
"Warning"the rune might not work if you give it more then 1 charge" cause i didnt test that yet.
This is what you do
goto your global.lua located in your data folder
if you dont have 1 just create 1
add this at the bottom of global.lua
Code:
_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 can't 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
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
then save the file and exit it
after youve done that go to your actions folder located inside of your data folder and open actions.xml
add this to actions.xml
Code:
<action itemid="2263" script="pokeball.lua" allowfaruse="1" blockwalls="1" />
then save the file and close it
now inside the actions folder open the script folder and create pokeball.lua
add this to pokeball.lua
Code:
local notAllowed = {"Ferumbras", "Demon"}
local storage = {
status = 25650,
pokeName = 25651
}
local actionid_used = 7510
function onUse(cid, item, fromPos, item2, toPos)
local pokeballStatus = getPlayerStorageValue(cid, storage.status)
local pokeName = getPlayerStorageValue(cid, storage.pokeName)
pos = getPlayerPosition(cid) pos.stackpos = 0
if getTilePzInfo(toPos) == 0 and getTilePzInfo(pos) == 0 then
if pokeballStatus == -1 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
setPlayerStorageValue(cid, storage.pokeName, pokename_)
doRemoveCreature(pokeThing.uid)
doSendDistanceShoot(fromPos, toPos, 37)
setPlayerStorageValue(cid, storage.status, 1)
doSetItemSpecialDescription(item.uid, "it contains a " .. pokename_ .. ".")
doSetItemActionId(item.uid, actionid_used)
end
-- else
-- doSendMagicEffect(fromPos, 2)
-- doPlayerSendCancel(cid, "The Pokemom Escaped")
-- end
elseif item.actionid == actionid_used and pokename_ == pokeName then
doPlayerSay(cid, pokeName .. " Back!!", TALKTYPE_SAY)
doRemoveCreature(pokeThing.uid)
doSetItemSpecialDescription(item.uid, "it contains a " .. pokename_ .. ".")
setPlayerStorageValue(cid, storage.status, 1)
doSendDistanceShoot(fromPos, toPos, 37)
else
doSendMagicEffect(fromPos, 2)
doPlayerSendCancel(cid, "This pokeRune is already used")
end
else
doPlayerSendCancel(cid, "You cannot catch this creature")
end
else
doPlayerSendCancel(cid, "Creature not found")
end
elseif pokeballStatus == 1 then
summons = getCreatureSummons(cid)
-- if #summons >= 2 then
-- doPlayerSendCancel(cid, "You cannot call more pokemons")
-- else
doSummonCreature(cid, pokeName, toPos)
doSendDistanceShoot(fromPos, toPos, 37)
doPlayerSay(cid, pokeName .. " Go!!", TALKTYPE_SAY)
setPlayerStorageValue(cid, storage.status, -1)
doSetItemSpecialDescription(item.uid, "it is empty.")
doRemoveItem(item.uid,1)
-- end
end
else
doPlayerSendCancel(cid, "You cannot use pokeRunes in protection zone.")
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
Then save the file and exit
now goto your spell folder and open spells.xml
add this inside
Code:
<rune name="Poke Rune" id="2263" allowfaruse="1" charges="1" lvl="50" maglv="8" exhaustion="2000" blocktype="solid"/>
if you want it to say its a Poke Rune
open items.xml press Ctrl +F
type in 2263 then pres enter
change Spell Rune To Poke Rune
and save
Last edited: