Ir para conteúdo

[Systems] Pokemon Systems


MatheusGlad

Posts Recomendados

Vei tu é o melhor uahsuah, kra seus script ownam!

 

De boua sempre q der venhu aki dar rep++

 

Mais tipo unica coisa q da preguiça é fazer tds o pokes...

 

se alguem fez ai posta pra min por favor, e add msn: heitorpf97@hotmail.com

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

[21/12/2010 19:33:43] [Error - CreatureScript Interface]

[21/12/2010 19:33:43] data/creaturescripts/scripts/goback1.lua:onLogin

[21/12/2010 19:33:43] Description:

[21/12/2010 19:33:43] data/creaturescripts/scripts/goback1.lua:115: attempt to index a nil value

[21/12/2010 19:33:43] stack traceback:

[21/12/2010 19:33:43] data/creaturescripts/scripts/goback1.lua:115: in function <data/creaturescripts/scripts/goback1.lua:23>

[21/12/2010 19:33:44] [CM] Tom has logged out.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Vc Feis Eles Para 8.54 ??? ... Se Tiver Como Fassa ... Seria Uma Boa ... Eu Não Li O Topico ... Meu Pc Ta Um Lixo ... Então REP+ So Que Se Não For 8.54 Coloque Sera De Grande Ajuda ... E Se Souber Fassa System

Turn ( t1,t2,t3,t4 ) Que Muda Os Lados Do Pokemon & Tbm System Lvl Pokemon Axo Que Não é Muito Dificil Obrigado ... !

Desculpe Se Falei Algo Errad !

Link para o comentário
Compartilhar em outros sites

when you enter a teleport or go 40sqm from your pokemon, the pokemon dont get tp the pokeball get destroyed and dont work! pls fix it so we can enter teleports or go more than 40sqm!

Link para o comentário
Compartilhar em outros sites

Scripts para TFS 0.3.6pl1 NAO FOI TESTADO EM OUTRA!

Preview:

 

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

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[i])
               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

 

 

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:

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:

<action itemid="2222;2223" event="script" value="goback.lua"/>

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:

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:

<event type="death" name="PlayerPokeDeath" event="script" value="playerpdeath.lua"/>
<event type="death" name="DiePoke" event="script" value="goback.lua"/>
<event type="logout" name="LogoutPoke" event="script" value="goback.lua"/>
<event type="login" name="LoginPoke" event="script" value="goback.lua"/>

 

 

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:

<action itemid="2147" event="script" value="catch.lua"/>

 

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:

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:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Pokemon Healer" script="pokehealer.lua" walkinterval="2000" floorchange="0">
   <health now="100" max="100"/>
   <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/>
   <parameters>
       <parameter key="message_greet" value="Ola, diga {heal} para recuperar sua vida e a vida dos seus pokemons."/>
   </parameters>
</npc>

 

 

Surf System

By: MatheusMkalo

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

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:

<action itemid="4647;4645;4646;4644" event="script" value="surf.lua"/>

 

Ensinarei nos tutorias como adicionar novas bordas e botar cada pokemon com seu proprio outfit na agua.

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:

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

local types = {
["Water"] = {itemid = 2277, "Horsea", "Goldeen", "Magikarp"},
["Venom"] = {itemid = 2278, "Zubat", "Ekans"},
["Thunder"] = {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:

<action itemid="2276;2277;2278;2279;2280;2281;2283;2284;2285;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:

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:

<talkaction words="!fly" event="script" value="fly.lua"/>

 

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

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:

<movevent type="StepIn" actionid="65120;65121;65122;65123;65124;65125;65126;65127" event="script" value="fly.lua"/>

 

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:

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:

<talkaction words="!ride" event="script" value="ride.lua"/>

 

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:

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:

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:[/b]

 

Olhe a tabela no inicio do script:

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:

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)

<action itemid="4647;4645;4646;4644;4632;4633;4634;4635" event="script" value="surf.lua"/>

 

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

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)

}

 

Copie todas as 4 bordas e cole abaixo ficando:

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)

 

[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)

}

 

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

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)

 

[4633] = {x = -2, y = 0}, -- 4647 é o id da borda oeste (lado esquerdo do player)

[4635] = {x = 2, y = 0}, -- 4645 é o id da borda leste (lado direito do player)

[4634] = {x = 0, y = 2}, -- 4646 é o id da borda sul (abaixo do player)

[4632] = {x = 0, y = -2}, -- 4644 é o id da borda norte (acima do player)

}

 

 

Como adicionar mais pokes ao surf:

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

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:

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:

 

...

function onLogin(cid)

local pokes = {

["Dragon"] = {lookType=267, speed = 1500},

["Rat"] = {lookType=267, speed = 300},

["Demon"] = {lookType=268, speed = 600},

}

 

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:

local pokes = {

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

}

local types = {

["Water"] = {itemid = 2277, "Horsea", "Goldeen", "Magikarp"},

["Venom"] = {itemid = 2278, "Zubat", "Ekans"},

["Thunder"] = {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:

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:

local types = {

["Water"] = {itemid = 2277, "Horsea", "Goldeen", "Magikarp"},

["Venom"] = {itemid = 2278, "Zubat", "Ekans"},

["Thunder"] = {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:

local pokein, pokeout = 2222,2223

function onSay(cid, words, param)

local pokes = {

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

}

 

goback.lua:

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:

<flag convinceable="0"/>

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

<flag convinceable="1"/>

 

Creditos Especiais:

Kydrai pela funçao "getItemsInContainerById"

MarcelloMkez

Mock por algumas funçoes do fly system dele.

 

Agradecimentos:

D3rs00n (Me ajudou a fazer sumir o corpo do pokemon)

Julio Cezar (Ajudou reportando bugs e testando scripts)

Miih (Ajudou reportando bugs e testando scripts)

Arth3miS (Ajudou reportando bugs e testando scripts)

 

E para todos que reportaram bugs.

 

 

 

Bugs, erros, duvidas, elogios no topico[/b]

 

Muito bom ;D PARABENS!!!

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 2 weeks later...

Bom eu sei que isso faz vcs pensarem de mal de mim e dizerem "q cara folgado" mas eu acho melhor que ele poste o ot que ele usou e a versao do client, ja com td implantado...kkk malz ai mas ta complicado o negocio aki

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...