No Kick Cheats
a No Kick Cheats agora tem novo forum http://rotavirtual.com.br/nkcheats/
No Kick Cheats
a No Kick Cheats agora tem novo forum http://rotavirtual.com.br/nkcheats/
No Kick Cheats
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
No Kick Cheats

Cheats for World
 
InícioInício  Últimas imagensÚltimas imagens  ProcurarProcurar  RegistarRegistar  EntrarEntrar  

 

 Presente para LuckinhaSan!

Ir para baixo 
2 participantes
AutorMensagem
up-varial
Designer
Designer
up-varial


Mensagens : 51
Data de inscrição : 17/04/2011

Presente  para LuckinhaSan! Empty
MensagemAssunto: Presente para LuckinhaSan!   Presente  para LuckinhaSan! Icon_minitimeSex 29 Abr 2011 - 23:09

Olá meus amigos tibianos, vim trazer para vocês o Poke System (Sistema do poketibia) Olhem, vejam e desfrutem:


Antes de tudo, va na pasta data/lib e adicione um script.lua com o nome de pokeLib e adicione isso:






Citação:

pokein, pokeout = 2222,2223

function doRemoveTile(pos)-- Script by mock


pos.stackpos = 0
local sqm = getTileThingByPos(pos)
doRemoveItem(sqm.uid,1)
end


function doCreateTile(id,pos) -- By mock


doAreaCombatHealth(0,0,pos,0,0,0,CONST_ME_NONE)
doCreateItem(id,1,pos)
end

function getPosDirs(p, dir) -- By MatheusMkalo


return dir == 1 and {x=p.x-1, y=p.y, z=p.z} or dir == 2 and
{x=p.x-1, y=p.y+1, z=p.z} or dir == 3 and {x=p.x, y=p.y+1, z=p.z} or dir
== 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x+1, y=p.y,
z=p.z} or dir == 6 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 7 and {x=p.x,
y=p.y-1, z=p.z} or dir == 8 and {x=p.x-1, y=p.y-1, z=p.z}
end

function doItem(pos,a,d)-- Script by mock


doCreateTile(460,pos)
pos.stackpos = 0
local c = getTileThingByPos(pos)
doItemSetAttribute(c.uid, "aid", a)
end

function getDescription(uid)


for i,x in pairs(getItemDescriptions(uid)) do
if i == "special" then
return x
end
end
end

function findLetter(string, letter)


for i = 1, #string do
if string:sub(i, i) == letter then
return i
end
end
end

function isWalkable(pos, creature, proj, pz)-- by Nord


if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
if getTopCreature(pos).uid > 0 and creature then return false end
if getTileInfo(pos).protection and pz then return false, true end
local n = not proj and 3 or 2
for i = 0, 255 do
pos.stackpos = i
local tile = getTileThingByPos(pos)
if tile.itemid ~= 0 and not isCreature(tile.uid) then
if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
return false
end
end
end
return true
end

function getPosDirs(p, dir)


return dir == 1 and {x=p.x-1, y=p.y, z=p.z} or dir == 2 and
{x=p.x-1, y=p.y+1, z=p.z} or dir == 3 and {x=p.x, y=p.y+1, z=p.z} or dir
== 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x+1, y=p.y,
z=p.z} or dir == 6 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 7 and {x=p.x,
y=p.y-1, z=p.z} or dir == 8 and {x=p.x-1, y=p.y-1, z=p.z}
end

function canSummon(cid)


local pos = getCreaturePosition(cid)
local state = false
for i = 1, 8 do
if isWalkable(getPosDirs(getCreaturePosition(cid), i)) then
state = true
end
end
return state
end

function isPlayerSummon(cid, uid)


if getCreatureMaster(uid) == cid then
return TRUE
end
return FALSE
end

function getSummonLifes(cid)


for _,x in pairs(getCreatureSummons(cid)) do
return getCreatureHealth(x), getCreatureMaxHealth(x)
end
end

function getItemsInContainerById(container, itemid) -- Function By Kydrai


local items = {}
if isContainer(container) and getContainerSize(container) > 0 then
for slot=0, (getContainerSize(container)-1) do
local item = getContainerItem(container, slot)
if isContainer(item.uid) then
local itemsbag = getItemsInContainerById(item.uid, itemid)
for i=0, #itemsbag do
table.insert(items, itemsbag)
end
else
if itemid == item.itemid then
table.insert(items, item.uid)
end
end
end
end
return items
end

function addPokeball(cid, pokename, maxh)


local s = doPlayerAddItem(cid, pokein)
doItemSetAttribute(s, "poke", "This is "..pokename.."'s pokeball. HP = ["..maxh.."/"..maxh.."]")
doItemSetAttribute(s, "description", "Contains a " .. pokename)
end

function getPokeOutLive(cid)


dat = {}
for slot = CONST_SLOT_FIRST, CONST_SLOT_LAST do
local item = getPlayerSlotItem(cid, slot)
if isContainer(item.uid) then
local items = getItemsInContainerById(item.uid, pokeout)
for _, ui in pairs(items) do
if getItemAttribute(ui, "poke"):sub(#getItemAttribute(ui, "poke")) == "." then
table.insert(dat, ui)
end
end
end

if item.itemid == pokeout then


if getItemAttribute(item.uid, "poke"):sub(#getItemAttribute(item.uid, "poke")) == "." then
table.insert(dat, item.uid)
end
end
end
return dat
end



[size=12]
Go/Back Pokeball System

By: MatheusMkalo

Vá em data/actions/scripts
e adicione um arquivo.lua com o nome de goback.lua

Depois de ter feito isso, adicione o seguinte script no arquivo goback.lua:






Citação:

local pokes = {
["Dragon"] = {level = 1, go = "Vai Dragon", back = "Volte Dragon."},
["Demon"] = {level = 8, go = "Vai Demon", back = "Volte Demon."},
["Dragon Lord"] = {level = 8, go = "Vai Dragon Lord", back = "Volte Dragon Lord."},
["Rat"] = {level = 8, go = "Vai Rat", back = "Volte Rat."},
}

local msgunica = false



function onUse(cid, item, frompos, item2, topos)



local maxh = tonumber(getItemAttribute(item.uid, "poke"):match("/(.+)]"))


local health = tonumber(getItemAttribute(item.uid, "poke"):match("%[(.-)/"))

if item.itemid == pokeout then



if health ~= nil and health <= 0 then


return doPlayerSendCancel(cid, "This pokemon is dead.")
end

if #getCreatureSummons(cid) >= 1 then


for _,z in pairs(getCreatureSummons(cid)) do
if getItemAttribute(item.uid, "poke"):find(getCreatureName(z)) then
doTransformItem(item.uid, pokein)
if msgunica then
doCreatureSay(cid, "Back, " .. getCreatureName(z), TALKTYPE_SAY)
else
doCreatureSay(cid, pokes[getCreatureName(z)].back, TALKTYPE_SAY)
end
doItemSetAttribute(item.uid, "poke",
getItemAttribute(item.uid, "poke"):sub(1,
findLetter(getItemAttribute(item.uid, "poke"), ".")) .. " HP =
["..getCreatureHealth(z).."/"..getCreatureMaxHealth(z).."]")
setPlayerStorageValue(cid, 61204, 0)
doSendMagicEffect(getCreaturePosition(z), 10)
return doRemoveCreature(z)
end
end
end

elseif item.itemid == pokein then



if getTilePzInfo(getCreaturePosition(cid)) then


return doPlayerSendCancel(cid, "You can't use pokeball in Protection Zones.")
end

if not canSummon(cid) then


return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHROOM)
end

if getPlayerStorageValue(cid, 63215) >= 1 then


return doPlayerSendCancel(cid, "You can't use pokeball while surfing.")
end

if getPlayerStorageValue(cid, 62314) >= 1 then


return doPlayerSendCancel(cid, "You can't use pokeball while flying.")
end

if getPlayerStorageValue(cid, 59987) >= 1 then


return doPlayerSendCancel(cid, "You can't use pokeball while riding.")
end

for i,x in pairs(pokes) do


if #getCreatureSummons(cid) >= 1 then
return doPlayerSendCancel(cid, "You already summoned a pokemon.")
end

if i == getItemAttribute(item.uid, "poke"):sub(9, findLetter(getItemAttribute(item.uid, "poke"), "'")-1) then


if getPlayerLevel(cid) >= x.level then
pk = doSummonCreature(i, getThingPosition(cid))
doConvinceCreature(cid, pk)
setCreatureMaxHealth(pk, tonumber(getItemAttribute(item.uid, "poke"):match("/(.+)]")))
doCreatureAddHealth(pk, maxh)
doCreatureAddHealth(pk, health-maxh)
doTransformItem(item.uid, pokeout)
if msgunica then
doCreatureSay(cid, "Go, " .. i, TALKTYPE_SAY)
else
doCreatureSay(cid, x.go, TALKTYPE_SAY)
end
doItemSetAttribute(item.uid, "poke",
getItemAttribute(item.uid, "poke"):sub(1,
findLetter(getItemAttribute(item.uid, "poke"), ".")))
doSendMagicEffect(getCreaturePosition(pk), 10)
setPlayerStorageValue(cid, 61204, 1)
registerCreatureEvent(pk, "DiePoke")
registerCreatureEvent(cid, "PlayerPokeDeath")
registerCreatureEvent(cid, "LogoutPoke")
break
else
doPlayerSendCancel(cid, "Only players level "..x.level.." or higher can use this pokemon.")
end
end
end
end
return TRUE
end



Depois, va em actions.xml e adicione a seguinte tag:






Citação:





Sendo que 2222 e 2223
são, respectivamente, o id da pokeball que ira "chamar" o pokemon, e o
outro o id da pokeball que ira retirar o pokemon. (Seriam as pokebolas
acesas e apagadas do PO)

Agora, para evitar alguns bugs, va em data/creaturescripts/scripts e crie um arquivo.lua com o nome goback.lua e bote o seguinte script dentro:






Citação:

function onLogout(cid)
local health,maxhealth = getSummonLifes(cid)
if getPlayerStorageValue(cid, 61204) >= 1 and
getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid,
62314) <= 0 and getPlayerStorageValue(cid, 59987) <= 0 then
setPlayerStorageValue(cid, 61205, health)
setPlayerStorageValue(cid, 61206, maxhealth)
setPlayerStorageValue(cid, 61204, 0)
setPlayerStorageValue(cid, 61207, 1)
end

if getPlayerStorageValue(cid, 62314) >= 1 then


pos = getCreaturePosition(cid)
for i = 1,8 do
doRemoveTile(getPosDirs(getCreaturePosition(cid), i))
end
doRemoveTile(getCreaturePosition(cid))
setPlayerStorageValue(cid, 61941, pos.x)
setPlayerStorageValue(cid, 61942, pos.y)
setPlayerStorageValue(cid, 61943, pos.z)
end
return TRUE
end

function onLogin(cid)


local pokes = {
["Dragon"] = {lookType=267, speed = 1500},
["Rat"] = {lookType=267, speed = 500},
}

local pokesfly = {


["Dragon"] = {lookType = 216, speed = 500},
}

local pokesride = {


["Dragon Lord"] = {lookType=4, speed = 3000},
["Dragon"] = {lookType=4, speed = 500},
}

if getPlayerStorageValue(cid, 62314) >= 1 then


doCreateTile(460, {x=getPlayerStorageValue(cid, 61941),
y=getPlayerStorageValue(cid, 61942), z=getPlayerStorageValue(cid,
61943)})
doTeleportThing(cid, {x=getPlayerStorageValue(cid, 61941),
y=getPlayerStorageValue(cid, 61942), z=getPlayerStorageValue(cid,
61943)})
for i = 1,8 do
doItem(getPosDirs(getCreaturePosition(cid), i), 65119+i)
end
local item = getPokeOutLive(cid)[1]
local a = getItemAttribute(item, "poke"):match("This is (.-)'s pokeball.")
doSetCreatureOutfit(cid, pokesfly[tostring(a)], -1)
doChangeSpeed(cid, pokesfly[tostring(a)].speed)
registerCreatureEvent(cid, "PlayerPokeDeath")
end

if getPlayerStorageValue(cid, 63215) >= 1 then


local item = getPokeOutLive(cid)[1]
local a = getItemAttribute(item, "poke"):match("This is (.-)'s pokeball.")
doSetCreatureOutfit(cid, pokes[tostring(a)], -1)
doChangeSpeed(cid, pokes[tostring(a)].speed)
registerCreatureEvent(cid, "PlayerPokeDeath")
end

if getPlayerStorageValue(cid, 59987) >= 1 then


local item = getPokeOutLive(cid)[1]
local a = getItemAttribute(item, "poke"):match("This is (.-)'s pokeball.")
doSetCreatureOutfit(cid, pokesride[tostring(a)], -1)
doChangeSpeed(cid, pokesride[tostring(a)].speed)
registerCreatureEvent(cid, "PlayerPokeDeath")
end

if getPlayerStorageValue(cid, 61207) >= 1 then


local item = getPokeOutLive(cid)[1]
doTransformItem(item, pokein)
doRemoveCondition(cid, CONDITION_OUTFIT)
doItemSetAttribute(item, "poke", getItemAttribute(item,
"poke"):sub(#getItemAttribute(item, "poke")) ~= "]" and
getItemAttribute(item, "poke") .. " HP = ["..getPlayerStorageValue(cid,
61205).."/"..getPlayerStorageValue(cid, 61206).."]" or
getItemAttribute(item, "poke"))
setPlayerStorageValue(cid, 61207, 0)
end

return TRUE


end

function onDeath(cid, deathList)


local owner = getCreatureMaster(cid)
doPlayerSendTextMessage(owner, 22, "Your pokemon died.")

for slot = CONST_SLOT_FIRST, CONST_SLOT_LAST do


local item = getPlayerSlotItem(owner, slot)
if isContainer(item.uid) then
local items = getItemsInContainerById(item.uid, pokeout)
for _, ui in pairs(items) do
if getItemAttribute(ui, "poke"):sub(#getItemAttribute(ui, "poke")) == "." then
local maxh = tonumber(getItemAttribute(ui, "poke"):match("/(.+)]"))
doItemSetAttribute(ui, "poke", getItemAttribute(ui,
"poke"):sub(1, findLetter(getItemAttribute(ui, "poke"), ".")) .. " HP =
[0/"..getCreatureMaxHealth(cid).."]")
end
end
end

if item.itemid == pokeout then


if getItemAttribute(item.uid, "poke"):sub(#getItemAttribute(item.uid, "poke")) == "." then
local maxh = tonumber(getItemAttribute(item.uid, "poke"):match("/(.+)]"))
doItemSetAttribute(item.uid, "poke",
getItemAttribute(item.uid, "poke"):sub(1,
findLetter(getItemAttribute(item.uid, "poke"), ".")) .. " HP =
[0/"..getCreatureMaxHealth(cid).."]")
end
end
end
doRemoveCreature(cid)
setPlayerStorageValue(owner, 61207, 0)
setPlayerStorageValue(owner, 61204, 0)
return FALSE
end



Agora adicione outro
arquivo.lua na pasta data/creaturescripts/scripts com o nome de playerpdeath e bote esse script:

function onDeath(cid)


local health,maxhealth = getSummonLifes(cid)
if #getCreatureSummons(cid) >= 1 then
setPlayerStorageValue(cid, 61205, health)
setPlayerStorageValue(cid, 61206, maxhealth)
setPlayerStorageValue(cid, 61204, 0)
setPlayerStorageValue(cid, 61207, 1)
end

if getPlayerStorageValue(cid, 63215) >= 1 then


setPlayerStorageValue(cid, 61205, getPlayerStorageValue(cid, 61210))
setPlayerStorageValue(cid, 61206, getPlayerStorageValue(cid, 61209))
setPlayerStorageValue(cid, 61204, 0)
setPlayerStorageValue(cid, 63215, 0)
setPlayerStorageValue(cid, 61207, 1)
end

if getPlayerStorageValue(cid, 62314) >= 1 then


setPlayerStorageValue(cid, 61205, getPlayerStorageValue(cid, 61262))
setPlayerStorageValue(cid, 61206, getPlayerStorageValue(cid, 61263))
setPlayerStorageValue(cid, 61204, 0)
setPlayerStorageValue(cid, 62314, 0)
setPlayerStorageValue(cid, 61207, 1)
end

if getPlayerStorageValue(cid, 59987) >=1 then


setPlayerStorageValue(cid, 61205, getPlayerStorageValue(cid, 59988))
setPlayerStorageValue(cid, 61206, getPlayerStorageValue(cid, 59989))
setPlayerStorageValue(cid, 61204, 0)
setPlayerStorageValue(cid, 59987, 0)
setPlayerStorageValue(cid, 61207, 1)
end
return TRUE
end



Depois va em
creaturescripts.xml e adicione as seguintes TAGS:










Catch Pokemon System


By: MatheusMkalo

Vá em
data/actions/scripts e adicione um arquivo.lua com o nome de catch.lua
Depois adicione o seguinte script dentro dele:

local pokes = {


["Dragon"] = {corpseid = 5973, chance = 100, health = 12200, maxhealth = 12200},
["Dragon Lord"] = {corpseid = 5984, chance = 100, health = 12200, maxhealth = 12200},
["Demon"] = {corpseid = 5995, chance = 100, health = 12200, maxhealth = 12200},
}

local time = 4 -- Tempo para mandar as mensagens e adiciona item



function onUse(cid, item, frompos, item2, topos)


for i,x in pairs(pokes) do
if item2.itemid == x.corpseid then
doRemoveItem(item.uid, 1)
doRemoveItem(item2.uid, 1)
if math.random(1,100) <= x.chance then
function add()
local s = doPlayerAddItem(cid, pokein)
doItemSetAttribute(s, "poke", "This is "..i.."'s pokeball. HP = ["..x.health.."/"..x.maxhealth.."]")
doItemSetAttribute(s, "description", "Contains a " .. i)
end
doSendMagicEffect(topos, 24)
addEvent(add, time*1000)
return addEvent(doPlayerSendTextMessage, time*1000, cid, 27, "You catch a " .. i .. ".")
else
addEvent(doPlayerSendTextMessage, time*1000, cid, 27, "Your pokeball broke.")
return doSendMagicEffect(topos, 23)
end
end
end
return TRUE
end














Depois adicione a seguinte TAG no actions.xml:






Citação:


Citação:












Sendo 2147, o id da sua pokebola para capturar pokemons (NAO A DE CHAMAR O POKEMON)


Npc Healler
By: MatheusMkalo

Vá em data/npc/scripts e adicione um arquivo.lua com o seguinte script:





Citação:

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid) npcHandler onCreatureAppear(cid) end


function onCreatureDisappear(cid) npcHandler onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler onCreatureSay(cid, type, msg) end
function onThink() npcHandler onThink() end

function creatureSayCallback(cid, type, msg)



if(not npcHandler:isFocused(cid)) then


return false
end

if msgcontains(msg, 'heal') then


if #getCreatureSummons(cid) >= 1 then
return selfSay('Voce precisa botar seus pokemons dentro da pokebola.', cid)
end

for slo = CONST_SLOT_FIRST, CONST_SLOT_LAST do


local item = getPlayerSlotItem(cid, slo)
if isContainer(item.uid) then
local items = getItemsInContainerById(item.uid, pokeout)
for i,x in pairs(items) do
local maxh = tonumber(getItemAttribute(x, "poke"):match("/(.+)]"))
doItemSetAttribute(x, "poke",
getItemAttribute(x, "poke"):sub(1, findLetter(getItemAttribute(x,
"poke"), ".")) .. " HP = ["..maxh.."/"..maxh.."]")
doTransformItem(x, pokein)
end
local items2 = getItemsInContainerById(item.uid, pokein)
for i,x in pairs(items2) do
local maxh = tonumber(getItemAttribute(x, "poke"):match("/(.+)]"))
doItemSetAttribute(x, "poke",
getItemAttribute(x, "poke"):sub(1, findLetter(getItemAttribute(x,
"poke"), ".")) .. " HP = ["..maxh.."/"..maxh.."]")
end

elseif item.itemid == pokeout or item.itemid == pokein then


local maxh = tonumber(getItemAttribute(item.uid, "poke"):match("/(.+)]"))
doItemSetAttribute(item.uid, "poke",
getItemAttribute(item.uid, "poke"):sub(1,
findLetter(getItemAttribute(item.uid, "poke"), ".")) .. " HP =
["..maxh.."/"..maxh.."]")
doTransformItem(item.uid, pokein)
end
end

selfSay('Pronto, voce e seus pokemons estao com a life maxima.', cid)

end
return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)


npcHandler:addModule(FocusModule:new())



Depois va ate a pasta data/npc e adicione um arquivo.xml e bote isso dentro:










Surf System
By: MatheusMkalo

Vá em data/actions/scripts e crie um [i]arquivo.lua
com o nome de surf e bote esse script dentro:






Citação:


Citação:

function onUse(cid, item, frompos, item2, topos)
local configs = {
[4647] = {x = -2, y = 0}, -- 4647 é o id da borda oeste (lado esquerdo do player)
[4645] = {x = 2, y = 0}, -- 4645 é o id da borda leste (lado direito do player)
[4646] = {x = 0, y = 2}, -- 4646 é o id da borda sul (abaixo do player)
[4644] = {x = 0, y = -2}, -- 4644 é o id da borda norte (acima do player)
}

local playerpos = getCreaturePosition(cid)




local pokes = {
["Dragon"] = {lookType=267, speed = 1500},
["Rat"] = {lookType=267, speed = 500},
}

if #getCreatureSummons(cid) <= 0 and getPlayerStorageValue(cid, 63215) <= 0 then


return doPlayerSendCancel(cid, "You need a pokemon to surf.")
end

l = false


for i,x in pairs(pokes) do
if getPlayerStorageValue(cid, 63215) <= 0 and i:lower() == getCreatureName(getCreatureSummons(cid)[1]):lower() then
l = true
end
end

if not l and getPlayerStorageValue(cid, 63215) <= 0 then


return doPlayerSendCancel(cid, "This pokemon can't surf.")
end

if getPlayerStorageValue(cid, 63215) <= 0 then


doTeleportThing(cid, {x=playerpos.x+configs[item2.itemid].x, y=playerpos.y+configs[item2.itemid].y, z=playerpos.z})
setPlayerStorageValue(cid, 63215, 1)
doSetCreatureOutfit(cid, pokes[getCreatureName(getCreatureSummons(cid)[1])], -1)
doCreatureSay(cid, "Let's surf, "..getCreatureName(getCreatureSummons(cid)[1]), 1)
setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))
setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))
doChangeSpeed(cid, pokes[getCreatureName(getCreatureSummons(cid)[1])].speed)
doRemoveCreature(getCreatureSummons(cid)[1])
else
doTeleportThing(cid, {x=playerpos.x-configs[item2.itemid].x, y=playerpos.y-configs[item2.itemid].y, z=playerpos.z})
setPlayerStorageValue(cid, 63215, 0)
doRemoveCondition(cid, CONDITION_OUTFIT)
local item = getPokeOutLive(cid)[1]
doCreatureSay(cid, "Im tired of surf, " .. getItemAttribute(item, "poke"):match("This is (.-)'s pokeball."), 1)
pk = doSummonCreature(getItemAttribute(item, "poke"):match("This is (.-)'s pokeball."), getThingPosition(cid))
doConvinceCreature(cid, pk)
registerCreatureEvent(pk, "DiePoke")
registerCreatureEvent(cid, "PlayerPokeDeath")
registerCreatureEvent(cid, "LogoutPoke")
setCreatureMaxHealth(pk, getPlayerStorageValue(cid, 61209))
doCreatureAddHealth(pk, getPlayerStorageValue(cid, 61209))
doCreatureAddHealth(pk, getPlayerStorageValue(cid, 61210)-getPlayerStorageValue(cid, 61209))
doChangeSpeed(cid, getCreatureBaseSpeed(cid)-getCreatureSpeed(cid))
end
return TRUE
end








Depois va em actions.xml e adicione essa tag:






Citação:


Citação:











OBS:Todos os scripts mudaram para implementar o surf, atualize-os
OBS2: Para funcionar o id da agua tem que ser 4820.

Para usar basta clicar na borda da agua.

Evolution System
By: MatheusMkalo

Vá em data/actions/scripts e adicione um script.lua com o nome de evolution.lua e bote esse script:






Citação:

local pokes = {
["Dragon"] = {level = 1, evolution = "Dragon Lord", maxh = 2000},
}

local types = {


["Water"] = {itemid = 2277, "Horsea", "Goldeen", "Magikarp"},
["Venom"] = {itemid = 2278, "Zubat", "Ekans"},
["*******"] = {itemid = 2279, "Magnemite", "Pikachu"},
["Rock"] = {itemid = 2280, "Geodude", "Graveler"},
["Punch"] = {itemid = 2281, "Machop", "Machoke"},
["Leaf"] = {itemid = 2276, "Ivysaur"},
["Fire"] = {itemid = 2283, "Charmander", "Charmeleon", "Dragon"},
["Coccon"] = {itemid = 2284, "Caterpie", "Metapod"},
["Crystal"] = {itemid = 2285, "Dratini", "Dragonair"},
["Darkness"] = {itemid = 2286, "Gastly", "Haunter"},
["Earth"] = {itemid = 2287, "Cubone"},
["Enigma"] = {itemid = 2288, "Abra", "Kadabra"},
["Heart"] = {itemid = 2289, "Rattata", "Pidgey"},
["Ice"] = {itemid = 2290, "Seel"},
}


function onUse(cid, item, frompos, item2, topos)


for i,x in pairs(types) do
if item.itemid == x.itemid then
if isCreature(item2.uid) then
if isPlayerSummon(cid, item2.uid) then
if table.find(x, getCreatureName(item2.uid)) then
if getPlayerLevel(cid) >= pokes[getCreatureName(item2.uid)].level then
local pokeball = getPokeOutLive(cid)[1]
local slo = pokes[getCreatureName(item2.uid)].maxh
local sle = pokes[getCreatureName(item2.uid)].evolution
doItemSetAttribute(pokeball, "description",
"Contains a " .. pokes[getCreatureName(item2.uid)].evolution)
doPlayerSendTextMessage(cid, 27, "Your
"..getCreatureName(item2.uid).." evolued to a
"..pokes[getCreatureName(item2.uid)].evolution)
doSendMagicEffect(topos, 18)
doItemSetAttribute(pokeball, "poke", "")
doItemSetAttribute(pokeball, "poke", "This
is "..pokes[getCreatureName(item2.uid)].evolution.."'s pokeball. HP =
["..pokes[getCreatureName(item2.uid)].maxh.."/"..pokes[getCreatureName(item2.uid)].maxh.."]")
doRemoveCreature(item2.uid)
local pk = doSummonCreature(sle, topos)
registerCreatureEvent(pk, "DiePoke")
registerCreatureEvent(cid, "PlayerPokeDeath")
registerCreatureEvent(cid, "LogoutPoke")
doConvinceCreature(cid, pk)
setCreatureMaxHealth(pk, slo)
setPlayerStorageValue(cid, 61204, 1)
doCreatureAddHealth(pk, slo)
doRemoveItem(item.uid, 1)
break
else
return doPlayerSendCancel(cid, "You need to
be level "..pokes[getCreatureName(item2.uid)].level.." or higher to use
this stone in this pokemon.")
end
end
end
end
end
end
return TRUE
end




Depois vá em actions.xml e adicione esta tag:






Citação:

itemid="2276;2277;2278;2279;2280;2281;2283;2284;22
85;2286;2287;2288;2289;2290" event="script" value="evolution.lua"
allowfaruse="1"/>





Fly System
By: MatheusMkalo, Credits: Mock

Vá em data/talkactions/scripts e adicione um arquivo.lua com o nome de fly e bote esse script:






Citação:

function onSay(cid, words, param)
local pokes = {
["Dragon"] = {lookType = 216, speed = 500},
}

if #getCreatureSummons(cid) <= 0 and getPlayerStorageValue(cid, 62314) <= 0 then


doPlayerSendCancel(cid, "You need a pokemon to fly.")
end

if getPlayerStorageValue(cid, 62314) <= 0 and not pokes[getCreatureName(getCreatureSummons(cid)[1])] then


return doPlayerSendCancel(cid, "This pokemon can't fly.")
end

if getPlayerStorageValue(cid, 62314) <= 0 then

doSetCreatureOutfit(cid, pokes[getCreatureName(getCreatureSummons(cid)[1])], -1)
doChangeSpeed(cid, pokes[getCreatureName(getCreatureSummons(cid)[1])].speed)
setPlayerStorageValue(cid, 61263, getCreatureMaxHealth(getCreatureSummons(cid)[1]))
setPlayerStorageValue(cid, 61262, getCreatureHealth(getCreatureSummons(cid)[1]))
setPlayerStorageValue(cid, 62314, 1)
registerCreatureEvent(cid, "LogoutPoke")
doCreatureSay(cid, "Let's fly, "..getCreatureName(getCreatureSummons(cid)[1]), 1)
doRemoveCreature(getCreatureSummons(cid)[1])
local ppos = getCreaturePos(cid)
local newpos = {x=ppos.x, y=ppos.y, z = 0}
doCreateTile(460, newpos)
doTeleportThing(cid, newpos)
for i = 1,8 do
doItem(getPosDirs(getCreaturePosition(cid), i), 65119+i)
end
elseif getPlayerStorageValue(cid, 62314) >= 1 then
local ppos = getCreaturePosition(cid)

p = true


for i = 1,17 do

if getTileThingByPos({x=ppos.x, y=ppos.y,
z=ppos.z+i}).itemid ~= 0 and not isWalkable({x=ppos.x, y=ppos.y,
z=ppos.z+i}) then


p = false
break
end

if isWalkable({x=ppos.x, y=ppos.y, z=ppos.z+i}) then


l = ppos.z + i
break
end
end

if not p or getTileThingByPos({x=ppos.x, y=ppos.y, z=l}).itemid == 4820 then


return doPlayerSendCancel(cid, "You can't down in there.")
end

for i = 1,8 do


doRemoveTile(getPosDirs(getCreaturePosition(cid), i))
end

setPlayerStorageValue(cid, 62314, 0)


doTeleportThing(cid, {x=ppos.x, y=ppos.y, z=l})
doRemoveTile(ppos)
local item = getPokeOutLive(cid)[1]
pk = doSummonCreature(getItemAttribute(item, "poke"):match("This is (.-)'s pokeball."), getThingPosition(cid))
doConvinceCreature(cid, pk)
doCreatureSay(cid, "I'm tired of fly, "..getItemAttribute(item, "poke"):match("This is (.-)'s pokeball."), 1)
registerCreatureEvent(pk, "DiePoke")
registerCreatureEvent(cid, "PlayerPokeDeath")
setCreatureMaxHealth(pk, getPlayerStorageValue(cid, 61263))
doCreatureAddHealth(pk, getPlayerStorageValue(cid, 61263))
doCreatureAddHealth(pk, getPlayerStorageValue(cid, 61262)-getPlayerStorageValue(cid, 61263))
doChangeSpeed(cid, getCreatureBaseSpeed(cid)-getCreatureSpeed(cid))
doRemoveCondition(cid, CONDITION_OUTFIT)
end
return TRUE
end





Depois bote essa tag no talkaction.xml:





Citação:






Va em data/movements/scripts e crie um arquivo.lua com o nome de fly.lua e bote:






Citação:

function onStepIn(cid, item, position, fromPosition)
local actions = {
[65120] = {del = {4,5,6}, add = {1,2,8}},
[65121] = {del = {8,7,6,5,4}, add = {8,1,2,3,4}},
[65122] = {del = {8,7,6}, add = {2,3,4}},
[65123] = {del = {2,1,8,7,6}, add = {6,5,4,3,2}},
[65124] = {del = {2,1,8}, add = {4,5,6}},
[65125] = {del = {8,1,2,3,4}, add = {8,7,6,5,4}},
[65126] = {del = {2,3,4}, add = {8,7,6}},
[65127] = {del = {6,5,4,3,2}, add = {6,7,8,1,2}},
}
local configs = actions[item.actionid]

for i = 1,8 do


if table.find(configs.del, i) then
doRemoveTile(getPosDirs(fromPosition, i))
end
doItem(getPosDirs(getCreaturePosition(cid), i), 65119+i)
end
return TRUE
end




Depois va em movements.xml e adicione essa tag:






Citação:






Para usar o fly diga !fly para descer e subir


Ride System
By: MatheusMkalo

Vá em talkactions/scripts e crie um arquivo.lua com o nome de ride e bote esse script:






Citação:

function onSay(cid, words)
local pokesride = {
["Dragon Lord"] = {lookType=4, speed = 3000},
["Dragon"] = {lookType=4, speed = 500},
}

if #getCreatureSummons(cid) <= 0 and getPlayerStorageValue(cid, 59987) <= 0 then


return doPlayerSendCancel(cid, "You need a pokemon to ride.")
end

if not canSummon(cid) and getPlayerStorageValue(cid, 59987) >= 1 then


return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHROOM)
end

local sname = #getCreatureSummons(cid) >= 1 and getCreatureName(getCreatureSummons(cid)[1]) or nil


if sname ~= nil and pokesride[sname] and getPlayerStorageValue(cid, 59987) <= 0 then
doSetCreatureOutfit(cid, pokesride[sname], -1)
doChangeSpeed(cid, pokesride[sname].speed)
doCreatureSay(cid, "Let's ride, " .. sname, 1)
setPlayerStorageValue(cid, 59987, 1)
setPlayerStorageValue(cid, 59988, getCreatureHealth(getCreatureSummons(cid)[1]))
setPlayerStorageValue(cid, 59989, getCreatureMaxHealth(getCreatureSummons(cid)[1]))
doRemoveCreature(getCreatureSummons(cid)[1])
elseif getPlayerStorageValue(cid, 59987) >= 1 then
setPlayerStorageValue(cid, 59987, 0)
doRemoveCondition(cid, CONDITION_OUTFIT)
local item = getPokeOutLive(cid)[1]
doCreatureSay(cid, "Im tired of ride, " .. getItemAttribute(item, "poke"):match("This is (.-)'s pokeball."), 1)
pk = doSummonCreature(getItemAttribute(item, "poke"):match("This is (.-)'s pokeball."), getThingPosition(cid))
doConvinceCreature(cid, pk)
registerCreatureEvent(pk, "DiePoke")
registerCreatureEvent(cid, "PlayerPokeDeath")
registerCreatureEvent(cid, "LogoutPoke")
setCreatureMaxHealth(pk, getPlayerStorageValue(cid, 59989))
doCreatureAddHealth(pk, getPlayerStorageValue(cid, 59989))
doCreatureAddHealth(pk, getPlayerStorageValue(cid, 59988)-getPlayerStorageValue(cid, 59989))
doChangeSpeed(cid, getCreatureBaseSpeed(cid)-getCreatureSpeed(cid))
end
return TRUE
end




Agora bote essa tag em talkactions.xml:






Citação:






Pra usar o ride é so falar !ride. Para configurar os pokemons é praticamente igual ao surf.


Configurando os scripts


Como adicionar mais pokemons no go/back:

No inicio do script, tem essa tabela com as informaçoes:







Citação:

local pokes = {
["Dragon"] = {level = 150, msgs = {"Essa mensagem pode ser sortiada 1", "Essa mensagem pode ser sortiada 2"}},
["Demon"] = {level = 500, msgs = {"Essa mensagem pode ser sortiada 1", "Essa mensagem pode ser sortiada 2"}},
["Dragon Lord"] = {level = 300, msgs = {"Essa mensagem pode ser sortiada 1", "Essa mensagem pode ser sortiada 2"}},
}



Copie a ultima linha (vermelha) e cole logo abaixo, editando os nomes e as mensagens ficando assim:







Citação:

local pokes = {
["Dragon"] = {level = 150, msgs = {"Essa mensagem pode ser sortiada 1", "Essa mensagem pode ser sortiada 2"}},
["Demon"] = {level = 500, msgs = {"Essa mensagem pode ser sortiada 1", "Essa mensagem pode ser sortiada 2"}},
["Dragon Lord"] = {level = 300, msgs = {"Essa mensagem pode ser sortiada 1", "Essa mensagem pode ser sortiada 2"}},
["Dragon Lord"] = {level = 300, msgs = {"Essa mensagem pode ser sortiada 1", "Essa mensagem pode ser sortiada 2"}},
}



Voce pode configurar o level para usar o poke mudando o valor de level.

Configurando pokemons para o catch:

Olhe a tabela no inicio do script:







Citação:

local pokes = {
["Dragon"] = {corpseid = 5973, chance = 100, health = 12200, maxhealth = 12200},
["Dragon Lord"] = {corpseid = 2881, chance = 100, health = 12200, maxhealth = 12200},
["Demon"] = {corpseid = 5995, chance = 100, health = 12200, maxhealth = 12200},
}



Faça o mesmo processo do acima de copiar e colar embaixo e editar:







Citação:

local pokes = {
["Dragon"] = {corpseid = 5973, chance = 100, health = 12200, maxhealth = 12200},
["Dragon Lord"] = {corpseid = 2881, chance = 100, health = 12200, maxhealth = 12200},
["Demon"] = {corpseid = 5995, chance = 100, health = 12200, maxhealth = 12200},
["Demon"] = {corpseid = 5995, chance = 100, health = 12200, maxhealth = 12200},
}



Aonde as informaçoes corpseid, chance, health, maxhealth serao,
respectivamente: Id do corpo do monstro, Chance de capturar em %, health
que o pokemon iria ir pro player, e health maxima que o poke iria ir
para o player.


Como trocar os ids das pokebolas, acesas e apagadas.
Para trocar o id da pokebola "acesa" e "apagada" basta mudar os ids 2222,2223 na lib sendo que 2222 eh o da acesa e o 2223 eh o id da apagada

Mude tambem na tag do action.xml que seu script ira funcionar perfeitamente.

Como adicionar mais bordas ao surf.
Primeiramente va em actions.xml e adicione os ids das bordas na tag do surf: (Eu fiz com a borda de areia)







Citação:





Depois va no script surf.lua em actions e repare nessa parte:











Copie todas as 4 bordas e cole abaixo ficando:








Citação:




















Depois mude os ids das bordas do lado << conforme as informaçoes do lado >>, ficando:









Citação:






















Como adicionar mais pokes ao surf:


Va no script surf.lua em actions e repare nessa parte:








Citação:

local pokes = {
["Dragon"] = {lookType=267, speed = 1500},
["Rat"] = {lookType=267, speed = 300},
}






Ai voce pode adicionar o pokemon pra surf e o outfit que ele vai
te dar na agua copiando o de cima e colando logo abaixo e editando
algumas coisas:

Quote






Citação:

local pokes = {
["Dragon"] = {lookType=267, speed = 1500},
["Rat"] = {lookType=267, speed = 300},
["Demon"] = {lookType=268, speed = 600},
}







Lembre-se de depois que acabar de editar toda a tabela no surf.lua, va
no goback.lua em creaturescripts e substitua a tabela pokes, pela que
esta na actions surf.lua:








Citação:

...
function onLogin(cid)
local pokes = {
["Dragon"] = {lookType=267, speed = 1500},
["Rat"] = {lookType=267, speed = 300},
["Demon"] = {lookType=268, speed = 600},
}










Citação:

if getPlayerStorageValue(cid, 63215) >= 1 then
local item = getPlayerItemById(cid, TRUE, pokeout)
local a = getDescription(item.uid):match("This is (.-)'s pokeball.")
doSetCreatureOutfit(cid, pokes[tostring(a)], -1)
end...







Como adicionar mais pokes no evolution:
Repare nessa parte do script evolution.lua em actions:








Citação:

local pokes = {
["Dragon"] = {level = 1, evolution = "Dragon Lord", maxh = 2000},
}










Citação:

local types = {
["Water"] = {itemid = 2277, "Horsea", "Goldeen", "Magikarp"},
["Venom"] = {itemid = 2278, "Zubat", "Ekans"},
["*******"] = {itemid = 2279, "Magnemite", "Pikachu"},
["Rock"] = {itemid = 2280, "Geodude", "Graveler"},
["Punch"] = {itemid = 2281, "Machop", "Machoke"},
["Leaf"] = {itemid = 2276, "Ivysaur"},
["Fire"] = {itemid = 2283, "Charmander", "Charmeleon", "Dragon"},
["Coccon"] = {itemid = 2284, "Caterpie", "Metapod"},
["Crystal"] = {itemid = 2285, "Dratini", "Dragonair"},
["Darkness"] = {itemid = 2286, "Gastly", "Haunter"},
["Earth"] = {itemid = 2287, "Cubone"},
["Enigma"] = {itemid = 2288, "Abra", "Kadabra"},
["Heart"] = {itemid = 2289, "Rattata", "Pidgey"},
["Ice"] = {itemid = 2290, "Seel"},
}








Bem voce deve copiar o primeiro monstro da tabela "pokes", e adicionar no final e mudar as configuraçoes:



Quote






Citação:

local pokes = {
["Dragon"] = {level = 1, evolution = "Dragon Lord", maxh = 2000},
["Bulbasaur"] = {level = 30, evolution = "Ivysaur", maxh = 4000},
}






Sendo level,evolution,maxh respectivamente, o level pra evoluir o
poke, o nome da evoluçao, e a health maxima do pokemon evoluido.

Depois eh so adicionar o Nome do monstro que foi adicionado a tabela "pokes" na tabela "types", no lugar do type dele:






Citação:

local types = {
["Water"] = {itemid = 2277, "Horsea", "Goldeen", "Magikarp"},
["Venom"] = {itemid = 2278, "Zubat", "Ekans"},
["*******"] = {itemid = 2279, "Magnemite", "Pikachu"},
["Rock"] = {itemid = 2280, "Geodude", "Graveler"},
["Punch"] = {itemid = 2281, "Machop", "Machoke"},
["Leaf"] = {itemid = 2276, "Ivysaur", "Bulbasaur"},
["Fire"] = {itemid = 2283, "Charmander", "Charmeleon", "Dragon"},
["Coccon"] = {itemid = 2284, "Caterpie", "Metapod"},
["Crystal"] = {itemid = 2285, "Dratini", "Dragonair"},
["Darkness"] = {itemid = 2286, "Gastly", "Haunter"},
["Earth"] = {itemid = 2287, "Cubone"},
["Enigma"] = {itemid = 2288, "Abra", "Kadabra"},
["Heart"] = {itemid = 2289, "Rattata", "Pidgey"},
["Ice"] = {itemid = 2290, "Seel"},
}







Como adicionar mais pokes no fly:
Repare nas partes iguais no fly.lua (talkaction) e no goback.lua(creaturescripts):

fly.lua:[/COLOR]





Citação:

local pokein, pokeout = 2222,2223
function onSay(cid, words, param)
local pokes = {
["Dragon"] = {lookType = 216, speed = 500},
}







[i]goback.lua:






Citação:

function onLogin(cid)
local pokes = {
["Dragon"] = {lookType=267, speed = 1500},
["Rat"] = {lookType=267, speed = 500},
}

local pokesfly = {


["Dragon"] = {lookType = 216, speed = 500},
}






A unica coisa que mudou foi o nome da tabela, "pokes" e
"pokesfly", para adicionar mais pokes no fly basta adicionar no fly.lua e
botar igual no goback.lua.


Informaçoes Importantes!!!

Para testar o script de catch que esta no topico, voce deve deletar as tags de encantamento de armas.



Para poder summonar os pokemons com o go/back, voce precisa ir no
arquivo.xml do monstro e editar essa linha:











Citação:







Se estiver convinceable="0", mude para convinceable="1" ficando:






Citação:

Ir para o topo Ir para baixo
luckinhaSan
Gold Member
Gold Member
luckinhaSan


Mensagens : 281
Data de inscrição : 08/04/2011
Idade : 26
Localização : Só Deus Sabe

Presente  para LuckinhaSan! Empty
MensagemAssunto: Re: Presente para LuckinhaSan!   Presente  para LuckinhaSan! Icon_minitimeSex 29 Abr 2011 - 23:47

Vlw Cara ^^
Mais Ja Tenho Esses Sistemas =/
Ir para o topo Ir para baixo
https://nkcheats.forumeiros.com/
 
Presente para LuckinhaSan!
Ir para o topo 
Página 1 de 1
 Tópicos semelhantes
-
» Pedido Set Completo LuckinhaSan
» Manhas para GTA SA
» [Pedido] Pokemons Para Ot 4° Geração!
» Area para Piadas
» Anúncio para Moderadores

Permissões neste sub-fórumNão podes responder a tópicos
No Kick Cheats :: Tibia :: OtServ-
Ir para: