No Kick Cheats
a No Kick Cheats agora tem novo forum http://rotavirtual.com.br/nkcheats/
No Kick Cheats

Cheats for World
 
InícioInício  CalendárioCalendário  FAQFAQ  BuscarBuscar  MembrosMembros  Registrar-seRegistrar-se  LoginLogin  

Compartilhe | 
 

 Presente para LuckinhaSan!

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
up-varial
Designer
Designer


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

MensagemAssunto: Presente para LuckinhaSan!   Sex 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:










_____________________________________________________






Placa mãe queimada ... OverClock feito ... Sem pc !
Voltar ao Topo Ir em baixo
luckinhaSan
Gold Member
Gold Member


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

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

Vlw Cara ^^
Mais Ja Tenho Esses Sistemas =/
Voltar ao Topo Ir em baixo
http://nkcheats.forumeiros.com/
 
Presente para LuckinhaSan!
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
No Kick Cheats :: Tibia :: OtServ-
Ir para: