Ir para conteúdo

Guimmd2

Campones
  • Total de itens

    9
  • Registro em

  • Última visita

Histórico de Reputação

  1. Upvote
    Guimmd2 deu reputação a pecktovit em [Encerrado] Duvida Sobre O Ot Subwat V14.   
    Boa sugestão mais eu também tenho um ot nessa versão, sei que essa postagem foi bem depois da data de criação mais achei a solução numero 1 para todas.
     
    Primeiro, eu recomendo usar o SQLStudio, para remover todos que tiverem de god, pois como ele disse, já tem na data alguns do teste do ot.
     
    Segundo, olha a imagem:
     

     
    Uploaded with ImageShack.us
     
    99% dos ot [até o meu tinha], tem esse lugarzinho, ta vendo onde meu char tá, o canto do tapete, tem um Action ID, se que clicar lá vira god. no meu ot, eu removi isso, eu tirei o id no mapa editor. [Procure como usar o mapa editor para remover isso].
    Bota o Unique id e o action id 0 no map editor.
     
     
    [Dizem que tem outro lugar que faz isso, mas eu não sei ainda...]
     
     
     
     
  2. Upvote
    Guimmd2 deu reputação a italomfr em [Talkaction] System Moves V2 147/151 - Xotservx   
    Bom galera, eu tinha postado esse script como resposta no Topico do xOtservx
    então um Usuario me pediu para criar um topico pra melhorar a visualização.
     
    Bom, o Script é o mesmo que o do xotservx entao qualquer Erro reporte no Topico dele. Link disponivel no Final do Topico
    Sobre os creditos vão 100% ao xOtservx eu só adicionei + pokemons.
     

    Então vo explicar o que fiz: Adicionei os Pokemons seguindo a Pokedex e o Nome das magias apartir de um arquivo chamado " AA - svke pokedex " Encontrado na pasta Pokedex do servidor Pokemon Dash Arquivo Anexado pra quem quiser.
     
    Aqui vai o Script agora com 147/151 Pokes:
     
     
     
    OBS - Não configurei, Cd, Atkmin, Atkmax, Damage nem nada. Só adicionei as magias aos Pokemons.
    Caso achen inutil ignoren o Topico
    Pois eu cresci sabendo que são pequenas atitudes que mudan as coisas ^^
     
    V2 Do Script Galera
    Agora com 147/151 Pokes com Todos Ataques na Tabela.
    Agora falta adicionar as Magias restantes os Lvs, Cds, St, Atkmin e Atkmax fora o Damagetype
     
    Topico para duvidas quanto a instalação do script: Aqui
    AA - svke pokedex.txt
  3. Upvote
    Guimmd2 deu reputação a peewee em [Talkaction]Sistema M1 Até M6 + Tutorial De Edições.   
    [Talkaction]Sistema M1 até M6 + Tutorial de Edições.
     
     
    Créditos:
     
    Apocarai
    PeeWee
     
     
     
    Olá, antes eu já havia postado o sistema até m3, agora venho traze-lo até m6.
    Do m4 até m6 decidir fazer diferente, dessa vez quem irá colocar as magias , combat e level necessário será vocês.
     
    Estou fazendo isso para que vocês entendam melhor o comando, e caso precisarem editar que não precisem e ajuda.
     
    No final do Tópico estará os tutoriais.
     
     
    M1
     
     
     
     
    M2
     
     
     
     
    M3
     
     
     
     
    ----//----//----//----//----//----//----//----//----//----//----//----//----//----
     
    M4
     
     
     
     
    M5
     
     
     
     
    M6
     
     
     
     
    Tags
     
     
     
     
     
    Obs. QUANDO SALVAR OS COMANDOS COLOQUE O NOME DE SistemaM... [Nos pontos bote numero da magia.
     
    Tutorial Como Adicionar Magia , Combat e Level.
     
     
     
     
    Como adicionar novos M.
     
    Na parte após os pokemon adicionados com suas magias procure essas partes das linhas.
     
     
     
     
     
    Tempo das Magias
     
    Logo abaixo após as linhas que citei acima , se tem o tempo usado das magias.
     
     
     
     
     
    Bom é isso, caso falei alguma besteira me falem que irei arrumar, qualquer duvida me adicione no msn ou poste no tópico.
     
    Não esqueça do REP +
  4. Upvote
    Guimmd2 deu reputação a MatheusGlad em [Systems] Pokemon Systems   
    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:

    --[[ This file is part of Pokemon Systems by Mkalo. Pokemon Systems by Mkalo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Pokemon System By Mkalo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Pokemon System By Mkalo. If not, see <http://www.gnu.org/licenses/>. ]]-- 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:

    --[[ This file is part of Pokemon Systems by Mkalo. Pokemon Systems by Mkalo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Pokemon System By Mkalo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Pokemon System By Mkalo. If not, see <http://www.gnu.org/licenses/>. ]]-- 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:

    --[[ This file is part of Pokemon Systems by Mkalo. Pokemon Systems by Mkalo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Pokemon System By Mkalo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Pokemon System By Mkalo. If not, see <http://www.gnu.org/licenses/>. ]]-- 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:

    --[[ This file is part of Pokemon Systems by Mkalo. Pokemon Systems by Mkalo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Pokemon System By Mkalo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Pokemon System By Mkalo. If not, see <http://www.gnu.org/licenses/>. ]]-- 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:

    --[[ This file is part of Pokemon Systems by Mkalo. Pokemon Systems by Mkalo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Pokemon System By Mkalo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Pokemon System By Mkalo. If not, see <http://www.gnu.org/licenses/>. ]]-- 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:

    --[[ This file is part of Pokemon Systems by Mkalo. Pokemon Systems by Mkalo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Pokemon System By Mkalo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Pokemon System By Mkalo. If not, see <http://www.gnu.org/licenses/>. ]]-- 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:

    --[[ This file is part of Pokemon Systems by Mkalo. Pokemon Systems by Mkalo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Pokemon System By Mkalo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Pokemon System By Mkalo. If not, see <http://www.gnu.org/licenses/>. ]]-- 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:

    --[[ This file is part of Pokemon Systems by Mkalo. Pokemon Systems by Mkalo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Pokemon System By Mkalo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Pokemon System By Mkalo. If not, see <http://www.gnu.org/licenses/>. ]]-- 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:

    --[[ This file is part of Pokemon Systems by Mkalo. Pokemon Systems by Mkalo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Pokemon Systems by Mkalo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Pokemon Systems by Mkalo. If not, see <http://www.gnu.org/licenses/>. ]]-- 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:

    --[[ This file is part of Pokemon Systems by Mkalo. Pokemon Systems by Mkalo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Pokemon Systems by Mkalo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Pokemon Systems by Mkalo. If not, see <http://www.gnu.org/licenses/>. ]]-- 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:

    --[[ This file is part of Pokemon Systems by Mkalo. Pokemon Systems by Mkalo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Pokemon Systems by Mkalo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Pokemon Systems by Mkalo. If not, see <http://www.gnu.org/licenses/>. ]]-- 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:
     
    Copie a ultima linha (vermelha) e cole logo abaixo, editando os nomes e as mensagens ficando assim:
     
    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:
    Faça o mesmo processo do acima de copiar e colar embaixo e editar:
     
    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)
     
    Depois va no script surf.lua em actions e repare nessa parte:
     
    Copie todas as 4 bordas e cole abaixo ficando:
     
    Depois mude os ids das bordas do lado << conforme as informaçoes do lado >>, ficando:
     
     
    Como adicionar mais pokes ao surf:
    Va no script surf.lua em actions e repare nessa parte:
    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:
     
    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:
     
     
     
    Como adicionar mais pokes no evolution:
    Repare nessa parte do script evolution.lua em actions:
     
    Bem voce deve copiar o primeiro monstro da tabela "pokes", e adicionar no final e mudar as configuraçoes:
     
    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:
     
    Como adicionar mais pokes no fly:
    Repare nas partes iguais no fly.lua (talkaction) e no goback.lua(creaturescripts):
     
    fly.lua:
     
    goback.lua:
     
    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:
    Se estiver convinceable="0", mude para convinceable="1" ficando:
     
    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]
  5. Upvote
    Guimmd2 deu reputação a meubk em 76 Spells Pokemon   
    Venho trazer á vcs 76 spells, editada por min , baseada em outras spells, todas spells estão com falas (pokemon fala nome da spell).


     

    Screenshot's

     

    #Download :

    Megaupload

     

    4Shared

     

    #Scan :

     

    Aki

     



    Para não Causar Bugs use essas seguintes Tags :
     

    <instant name="Shadow Ball" words="shadow attack" lvl="999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/shadowball.lua"> </instant> <instant name="Egg Bomb" words="egg attack" lvl="999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/eggbomb.lua"> </instant> <instant name="Lick" words="lick attack" lvl="999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/lick.lua"> </instant> <instant name="Shadow Punch" words="shadowpunch attack" lvl="999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/shadowpunch.lua"> </instant> <instant name="Dream Eater" words="dream attack" lvl="999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/dreameater.lua"> </instant> <instant name="Leech Seed" words="leech" lvl="10" mana="10" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/leech.lua"> </instant> <instant name="Supersonic" words="sonic attack" lvl="10" mana="10" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/supersonic.lua"> </instant> <instant name="Poisonpowder" words="powder attack" lvl="10" mana="10" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/poisonpowder.lua"> </instant> <instant name="Sludge Bomb" words="sludge attack" lvl="10" mana="10" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/sludgebomb.lua"> </instant> <instant name="Fire Spin" words="spin attack" lvl="10" mana="10" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/firespin.lua"> </instant> <instant name="Pin Missile" words="pin attack" lvl="10" mana="10" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/pinmissile.lua"> </instant> <instant name="Tackle" words="tackle attack" lvl="10" mana="10" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/tackle.lua"> </instant> <instant name="Double Kick" words="kick attack" lvl="10" mana="10" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/doublekick.lua"> </instant> <instant name="Dynamicpunch" words="dynamicpunch attack" lvl="10" mana="10" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/dynamicpunch.lua"> </instant> <instant name="Scratch" words="Scratch attack" lvl="10" mana="10" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/scratch.lua"> </instant> <instant name="Rage" words="rage attack" lvl="10" mana="10" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/rage.lua"> </instant> <instant name="Thundershock" words="shock attack" lvl="10" mana="10" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/thundershock.lua"> </instant> <instant name="Icy Wind" words="icy attack" lvl="999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/icywind.lua"> </instant> <instant name="Dragon Rage" words="dragon attack" lvl="9999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/dragonrage.lua"> </instant> <instant name="Ember" words="ember attack" lvl="9999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/ember.lua"> </instant> <instant name="String Shot" words="string attack" lvl="9999" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/stringshot.lua"> </instant> <instant name="Swift" words="swift attack" lvl="9999" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/swift.lua"> </instant> <instant name="Horn Attack" words="chifre attack" lvl="9999" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/hornattack.lua"> </instant> <instant name="Poison Sting" words="sting attack" lvl="9999" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/poisonsting.lua"> </instant> <instant name="Gust" words="gust attack" lvl="999" mana="100" selftarget="1" prem="1" exhaustion="2000" needlearn="0" event="script" value="poke/gust.lua"> </instant> <instant name="Earthquake" words="earthquake attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/earthquake.lua"> </instant> <instant name="Karate Chop" words="karate attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/karatechop.lua"> </instant> <instant name="Thrash" words="thrash attack" lvl="9999" mana="20000" prem="1" range="1" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/thrash.lua"> </instant> <instant name="Teleport" words="teleport attack" lvl="100" mana="800" needtarget="1" prem="0" range="5" exhaustion="2000" blockwalls="1" needlearn="0" script="poke/teleport.lua"> </instant> <instant name="Cross Chop" words="cross attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/crosschop.lua"> </instant> <instant name="Tri Attack" words="tres attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/triattack.lua"> </instant> <instant name="Tail Whip" words="tail attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/tail.lua"> </instant> <instant name="Sonicboom" words="sonicb attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/sonicboom.lua"> </instant> <instant name="Bite" words="bite attack" lvl="999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/bite.lua"> </instant> <instant name="Peck" words="peck attack" lvl="999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/peck.lua"> </instant> <instant name="Splash" words="splash attack" lvl="999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/splash.lua"> </instant> <instant name="Hyper Fang" words="fang attack" lvl="999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/hyperfang.lua"> </instant> <instant name="Drill Peck" words="drill attack" lvl="999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/drillpeck.lua"> </instant> <instant name="Mirror Move" words="mirror attack" lvl="9999" mana="20000" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/mirrormove.lua"> </instant> <instant name="Waterfall" words="waterfall attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/waterfall.lua"> </instant> <instant name="Night Shade" words="nightshade attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/nightshade.lua"> </instant> <instant name="Ice Shard" words="shard attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/iceshard.lua"> </instant> <instant name="Stun Spore" words="stun attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/stunspore.lua"> </instant> <instant name="Sand Tomb" words="tomb attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/sandtomb.lua"> </instant> <instant name="Wing Attack" words="asa attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/wingattack.lua"> </instant> <instant name="Whirlwind" words="whirlwind attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/whirlwind.lua"> </instant> <instant name="Smokescreen" words="smoke attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/smokescreen.lua"> </instant> <instant name="Thunder" words="thunder attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/thunder.lua"> </instant> <instant name="Solarbeam" words="solar attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/solar.lua"> </instant> <instant name="Flamethrower" words="flamethrower attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/flamethrower.lua"> </instant> <instant name="Hyper Beam" words="hyper attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/hyperbeam.lua"> </instant> <instant name="Quick Attack" words="rapido attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/quickattack.lua"> </instant> <instant name="Ice Beam" words="icebeam attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/icebeam.lua"> </instant> <instant name="Acid" words="acid attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/acid.lua"> </instant> <instant name="Confuse Ray" words="ray attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/confuseray.lua"> </instant> <instant name="Hydro Pump" words="hydro attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/hydropump.lua"> </instant> <instant name="Rain Dance" words="rain attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/raindance.lua"> </instant> <instant name="Future Sight" words="future attack" lvl="999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/futuresight.lua"> </instant> <instant name="Psybeam" words="psybeam attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/psybeam.lua"> </instant> <instant name="Psychic" words="psychic attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/psychic.lua"> </instant> <instant name="Confusion" words="confusion attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/confusion.lua"> </instant> <instant name="Bone Rush" words="rush attack" lvl="9999" mana="160" prem="1" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="poke/bonerush.lua"> </instant> <instant name="Bubble" words="bubble attack" lvl="9999" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/bubble.lua"> </instant> <instant name="Fury Attack" words="furia attack" lvl="9999" mana="20" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/furyattack.lua"> </instant> <instant name="Razor Leaf" words="razor" lvl="9999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/razor.lua"> </instant> <instant name="Petal Dance" words="petal attack" lvl="9999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/petaldance.lua"> </instant> <instant name="Bone Club" words="bone attack" lvl="9999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/boneclub.lua"> </instant> <instant name="Rock Polish" words="polish attack" lvl="9999" mana="20" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="poke/rockpolish.lua"> </instant> <instant name="Berserk" words="exori1" lvl="3005" mana="115" prem="1" needweapon="1" exhaustion="2000" needlearn="0" event="script" value="poke/berserk.lua"> </instant> <instant name="Stone Edge" words="edge attack" lvl="3005" mana="115" prem="1" needweapon="1" exhaustion="2000" needlearn="0" event="script" value="poke/stoneedge.lua"> </instant> <instant name="Thunderbolt" words="bolt attack" lvl="3005" mana="115" prem="1" needweapon="1" exhaustion="2000" needlearn="0" event="script" value="poke/thunderbolt.lua"> </instant> <instant name="Sandstorm" words="sandstorm attack" lvl="3005" mana="115" prem="1" needweapon="1" exhaustion="2000" needlearn="0" event="script" value="poke/sandstorm.lua"> </instant> <instant name="Vine Whip" words="vine attack" lvl="3800" mana="210" direction="1" exhaustion="2000" needlearn="0" event="script" value="poke/vinewhip.lua"> </instant>
     
    -- Adicionando a Spell no pokemon --
     
    Abra o xml do pokemon e depois de Attacks adc :
     
     
    <attack name="Confusion" interval="4000" chance="100" min="-352" max="-535">
    </attack>
     
    Vermelho : Nome da Spell configurada na Tag
     
    Laranja : Tempo que demorara para usar a spell 1000 = 1s
     
    Verde : Chance do attack funcionar
     
    Roxo : Dano que a Spell Causará
     
    Se a Spell for de distancia adc : range="5" target="1"
     
    range : distancia para usar a spell
     
    target : se precisa target.
    --
     
    Não Esqueça REP+
  6. Upvote
    Guimmd2 deu reputação a junior2b em Sistema De Gps   
    Galera, esse é o meu primeiro system!


    Revisado pelo @MateusMkalo.

    Funciona assim: Você da use no GPS (item que você terá editado a spr e o itens.xml) e ele te diz suas coordenadas (X ; Y ; Z).

    Digamos que você quer se encontrar com um amigo, ele te diz as coordenadas dele e você vai procurando ;D


    Testado em TFS 0.3.6 (8.54)

    Primeiro, vá ta pasta data/actions/actions.xml e coloque isso:


     

     

    Agora vá em data/actions/scripts e copie algum arquivo que tem lá dentro e renomeie-o para gps.lua e coloque isso dentro:


       

    Se gostou da rep+

    Lembrando que é meu primeiro script!

     

    SS



     




  7. Upvote
    Guimmd2 deu reputação a DevilMoon em [Action]-[Talkaction] Fly System   
    Ola Eks Tibianos, Vim postar um Script de Fly System dando Use em Um Item!!!
    Voce esta se Perguntando!! Nummm Item????
    Isso Mesmo!!
     
    Talkaction Explicaçao:
     
    /flyup = Verifica se tem o Piso itemid= 260 que é o Tile Invisivel e ve se nao tem nada acima para voce subir!!
     
    /flydown = Verifica se tem tem algo que voce nao pode descer como arvores paredes e etc....
     
    -------------
     
    Action Explicaçao: Voce da Use no Item e Sobe a Cima no Tile! ou Descee!!
     
    vá em Data>Actions>Scripts crie uma pasta.lua chamada actionfly e coloque isso:
     

    local t = { [150] = {outfit='dragon', text='Fly, dragon!', dtext='Go down, dragon!'} -- Falas } local thisCondition = createConditionObject(CONDITION_OUTFIT) setConditionParam(thisCondition, CONDITION_PARAM_TICKS, -1) addOutfitCondition(thisCondition, {lookType = 32, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0}) -- Outfit function onUse(cid, item, fromPosition, itemEx, toPosition) local v, r, s = getCreaturePosition(cid), t[item.itemid], 100 local pos = {x = v.x, y = v.y, z = 6} ----- Onde ele Precisa para dar Down -- Pode Modificar do 0 ao 7 local posd = {x = v.x, y = v.y, z = 7} ---- Onde ele Precisa para Dar Up -- Pode Modificar do 7 ao 0 if r then if v.z == 7 then if getTileItemById(pos, 460).uid > 0 then -- id do tile if doTeleportThing(cid, pos, false) then doSendMagicEffect(pos, 10) -- efeito doCreatureSay(cid, r.text, 19) return doAddCondition(cid, thisCondition) else return doPlayerSendCancel(cid, 'You can\'t fly here.') end else return doPlayerSendCancel(cid, 'You can\'t fly here.') end elseif v.z == 6 then if doTeleportThing(cid, posd, false) then doSendMagicEffect(posd, 10) -- efeito doCreatureSay(cid, r.dtext, 19) return doRemoveCondition(cid, CONDITION_OUTFIT) else return doPlayerSendCancel(cid, 'You can\'t land here.') end else return doPlayerSendCancel(cid, 'You can\'t fly here.') end else return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'There has been some error, try contacting a staff member.') end end
     
    Ok Acabamos... Uffa agora vamos ao Action.xml Adicione Isso:
     

    <action itemid="SEU ITEM" event="script" value="actionfly.lua"/>
     
    Ok Agora vamos em Talkaction...
     
    Vá em Data>Talkactions>Scripts crie uma pasta.lua chamada flyinfo e Adicione isso:
     

    local s = { {100} } local water = {4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4664,4665,4666,5757,5756,5755,5759,5760,5758,5761} function onSay(cid,words,param) for _,i in ipairs(s) do local r = i[1] local v = getThingPos(cid) local up,down = {x=v.x,y=v.y,z=v.z-1},{x=v.x,y=v.y,z=v.z+1} if words == '/flyup' then if getPlayerStorageValue(cid,r) > 0 then if getTileItemById(up,460).uid > 0 then doPlayerSendTextMessage(cid,20,'[Flying] You have flown up.') doSendMagicEffect(up,10) doCreatureSay(cid,'Up!',19) doTeleportThing(cid,up) return doSendMagicEffect(up,10) else doPlayerSendTextMessage(cid,20,'[Flying] You can\'t fly here.') end else doPlayerSendTextMessage(cid,20,'[Flying] You aren\'t mounted.') return true end elseif words == '/flydown' then if getPlayerStorageValue(cid,r) > 0 then if v.z >= 7 == false then if getHouseFromPos(down) == false then if(getTileItemById(down,(isInArray(water,itemid)),false).uid) then if getTileItemById(v,460).uid > 0 then doPlayerSendTextMessage(cid,20,'[Flying] You have flown down.') doSendMagicEffect(down,10) doCreatureSay(cid,'Down!',19) doTeleportThing(cid,down) return doSendMagicEffect(down,10) else doPlayerSendTextMessage(cid,20,'[Flying] You can\'t fly into ground.') end else doPlayerSendTextMessage(cid,20,'[Flying] You can\'t fly on water.') end else doPlayerSendTextMessage(cid,20,'[Flying] This is a house!') end else doPlayerSendTextMessage(cid,20,'[Flying] You can\'t fly into ground.') end else doPlayerSendTextMessage(cid,20,'[Flying] You aren\'t mounted!') return true end end return true end end
     
    Ufa, Agora vamos a Data>Talkactions.xml e Adicione Isso!!
     

    <talkaction words="/flyup;/flydown" event="script" value="flyinfo.lua"/>
     
    Creditos:
     
    Google Tradutor
    unknown666
     
    Gostou do Script? Rep+
     
    Duvidas, Elogios neste Topico!!
     
    Abraços..
  8. Upvote
    Guimmd2 deu reputação a thalia em [Go/back / Catch System / Npc Heal]   
    Bom galera, é um sistema de go/back, catch , NPC heal
    Meu sistema de ride funciona 100% com esse script do go/back...
     
     
     
     
    -- GO/BACK--
    ~~> Crie um arquivo goback.lua em action/scripts e cole isso dentro:
     

    function onUse(cid, item, fromPosition, itemEx, toPosition) function getPokemonMaxLife(name) local file = io.open('data/monster/monsters.xml','r') local arquivo = file:read(-1):lower():match('<monster name="'..name:lower()..'" file="(.-)"/>') file:close() local data = io.open('data/monster/'..(arquivo or ''),'r') if not data then return 100 end local maximo = data:read(-1):match('max%s*=%s*"(%d+)"') data:close() return maximo end ----- Config ----- local MaximoSummon = 1 local nome1 = getItemName(item.uid) local nome = nome1:match('(.-) Pokeball') local summons = getCreatureSummons(cid) local action_id = getItemAttribute(item.uid, "aid") ------ Config ----- local summons = getCreatureSummons(cid) if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then doPlayerSendCancel(cid, "Coloque no slot certo!.") return TRUE end if getItemAttribute(item.uid,"level") >= getPlayerLevel(cid) then doPlayerSendCancel(cid, "You dont have level to use.") return TRUE end if(table.maxn(summons) < MaximoSummon) then -- no summons creature = doSummonCreature(nome, getCreaturePosition(cid)) doConvinceCreature(cid, creature) local hp = getCreatureHealth(getCreatureSummons(cid)[1]) doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"aid",hp) doPlayerSay(cid, "Go,"..nome.."", TALKTYPE_SAY) registerCreatureEvent(cid, "PlayerPokeDeath") registerCreatureEvent(creature, "DiePoke") doSendMagicEffect(getCreaturePosition(creature), 188) doTransformItem(getPlayerSlotItem(cid,8).uid, 2531, 1) doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"name",""..nome.." Pokeball") if action_id ~= 0 then doCreatureAddHealth(creature, -(tonumber(getPokemonMaxLife(nome) - action_id))) else doCreatureAddHealth(creature, getPokemonMaxLife(nome)) end else for _, pid in ipairs(summons) do if (table.maxn(summons) >= 1) then doItemSetAttribute(item.uid, "aid", getCreatureHealth(summons[1])) doSendMagicEffect(getCreaturePosition(creature), 188) doPlayerSay(cid, "Back,"..nome.."", TALKTYPE_SAY) doRemoveCreature(pid) doTransformItem(getPlayerSlotItem(cid,8).uid, 2532, 1) doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"name", nome .." Pokeball") end end end return true end
     
    ~~> Em actions.xml add:

    <action itemid="2520" event="script" value="goback.lua"/> <action itemid="2531" event="script" value="goback.lua"/> <action itemid="2532" event="script" value="goback.lua"/>
     
    ~~> Em itens.xml procure por:

    <item id="2531" article="a" name="viking shield"> <attribute key="weight" value="6600"/> <attribute key="defense" value="22"/> <attribute key="weaponType" value="shield"/> </item>
    E substitui por :

    <item id="2531" article="a" name="Pokeball 1"> <attribute key="slotType" value="feet" /> </item>
     
    Agora procure por :

    <item id="2532" article="an" name="ancient shield"> <attribute key="weight" value="6100"/> <attribute key="defense" value="27"/> <attribute key="weaponType" value="shield"/> </item>
    E substitui por:

    <item id="2532" article="a" name="Pokeball 2"> <attribute key="slotType" value="feet" /> </item>
    Agora procure por :

    <item id="2520" article="a" name="demon shield"> <attribute key="description" value="This powerful shield seems to be as light as air."/> <attribute key="weight" value="2600"/> <attribute key="defense" value="35"/> <attribute key="weaponType" value="shield"/> </item>
    E substitui por :

    <item id="2520" article="a" name="Pokeball Goback"> <attribute key="slotType" value="feet" /> </item>
    Agora procure por :

    <item id="2535" article="a" name="castle shield"> <attribute key="weight" value="4900"/> <attribute key="defense" value="28"/> <attribute key="weaponType" value="shield"/> </item>
    E substitiu por:

    <item id="2535" article="a" name="Die Pokeball"> <attribute key="slotType" value="feet" /> </item>
     
    -- CATCH SYSTEM --
     
    ~~>Em actions/script crie um arquivo catch.lua e cole dentro:

    local function capturou(params) doSendMagicEffect(getCreaturePosition(params.cid), 173) doPlayerSendTextMessage(params.cid, 25, 'Você capturou um pokemon! ('..params.monster..').') item = doCreateItemEx(2520) doItemSetAttribute(item, "name", ""..params.monster.." Pokeball") doItemSetAttribute(item, "aid", params.hp) doItemSetAttribute(item, "level", params.level) doPlayerAddItemEx(params.cid, item, true) end local level = { ['chansey'] = 15, -- level minimo para usar o pokemon ['squirtle'] = 15, -- level minimo para usar o pokemon ['charmander'] = 15, -- level minimo para usar o pokemon } function onUse(cid, item, fromPosition, itemEx, toPosition) local monster = getItemName(itemEx.uid):match("dead (.*)") if not monster then return doPlayerSendCancel(cid, 'Sorry, use only pokemon dead') and doSendMagicEffect(fromPosition, 2) end ball = 2520 local hpmax = 0 if itemEx.itemid == 6008 then if math.random(1,100) >= 1 then doRemoveItem(itemEx.uid) doSendMagicEffect(toPosition, 24) doRemoveItem(item.uid, 1) addEvent(capturou, 4000, {cid = cid, monster = monster, level = level[monster], ball = ball, hp = hpmax}) else doRemoveItem(itemEx.uid) doRemoveItem(item.uid, 1) doSendMagicEffect(toPosition, 23) end elseif itemEx.itemid == 6010 then if math.random(1,100) >= 1 then doRemoveItem(itemEx.uid) doSendMagicEffect(toPosition, 24) doRemoveItem(item.uid, 1) addEvent(capturou, 4000, {cid = cid, monster = monster, level = level[monster], ball = ball, hp = hpmax}) else doRemoveItem(itemEx.uid) doRemoveItem(item.uid, 1) doSendMagicEffect(toPosition, 23) end end return TRUE end
    ~~Editando o Catch ~~
    elseif itemEx.itemid == 6010 then
    ~>6010 é o id do corpo do pokemon que o script ira tentar capturar.
    if math.random(1,100) >= 1 then
    ~>o 1 siginifica que ele tem 1% de chance de não capturar , que tem 99% de chance de captura, se for 10 tem 90%,se 20 tem 80%....
     
    <~~~~~~~~~~> <~~~~~~~~~~>
    E em actions.xml add isto:

    <action itemid="xxxx" event="script" allowfaruse="10" value="catch.lua"/>
    Em xxxx é o numero da pokeball que captura.
     
    -- CREATURE SCRIPTS --
     
    ~~> Em creaturescripts/scripts crie um arquivo chamado goback.lua e cole isso dentro:
     

    local pokein, pokeout = 2535,2531 function onDeath(cid, deathList) local owner = getCreatureMaster(cid) doPlayerSendTextMessage(owner, 21, "You pokemon died.") local item = getPlayerItemById(owner, TRUE, pokeout) doTransformItem(item.uid, pokein) doRemoveCreature(cid) return FALSE end
     
    ~~> Agora na mesma pasta crie outro arquivo chamado morrer.lua e cole isso dentro:

    local pokein, pokeout = 2532,2531 function getSummonLifes(cid) for _,x in pairs(getCreatureSummons(cid)) do return getCreatureHealth(x), getCreatureMaxHealth(x) end end 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, 61207, 1) end return TRUE end
     
    Em creaturescripts.xml add isto:

    <event type="death" name="PlayerPokeDeath" event="script" value="morrer.lua"/> <event type="death" name="DiePoke" event="script" value="goback.lua"/>
     
    --NPC HEALER--
     
    Em npc/scripts crie um arquivo chamado heal.lua e cole isso:
     

    local focus = 0 local talk_start = 0 local target = 0 local following = false local attacking = false dofile("data/actions/scripts/reviver.lua") function onThingMove(creature, thing, oldpos, oldstackpos, item, itemEx) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Good bye then.') focus = 0 talk_start = 0 end end function getPokemonMaxLife(name) local file = io.open('data/monster/monsters.xml','r') local arquivo = file:read(-1):lower():match('<monster name="'..name:lower()..'" file="(.-)"/>') file:close() local data = io.open('data/monster/'..(arquivo or ''),'r') if not data then return 100 end local maximo = data:read(-1):match('max%s*=%s*"(%d+)"') data:close() return maximo end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) if (msgcontains(msg, 'hi') and focus == 0) and getDistanceToCreature(cid) < 4 then local idballs = { [2535] = {"Pokeball"}, [2531] = {"Pokeball"}, [2532] = {"Pokeball"}, } local balls = idballs[getPlayerSlotItem(cid,8).itemid] if #getCreatureSummons(cid) >= 1 then return selfSay('Voce precisa botar seus pokemons dentro da pokebola.', cid) end if balls == nill then return selfSay('Coloque seu pokemon slot da Pokeball para ele ser curado!!') end if balls ~= nill then local nome = getItemName(getPlayerSlotItem(cid,8).uid) local poke_name = nome:match('(.-) Pokeball') doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getPokemonMaxLife(poke_name)) if getPlayerStorageValue(cid, 5555) == 0 then setPlayerStorageValue(cid, 5555, 1) end local hp = getCreatureMaxHealth(cid) doCreatureAddHealth(cid, hp) selfSay('Você e seu pokemon estão curados!!') elseif focus == cid then talk_start = os.clock() if msgcontains(msg, 'healing') then end elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then selfSay('Volte Sempre,') focus = 0 talk_start = 0 end end end function onCreatureChangeOutfit(creature) end function onThink() if (os.clock() - talk_start) > 20 then if focus > 0 then end focus = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('Bye.') focus = 0 end end end
     
    E no em npc crie um arquivo chamado heal.xml e cole isto dentro:
     

    <?xml version="1.0" encoding="UTF-8"?> <npc name="Heal" script="data/npc/scripts/heal.lua" access="3" floorchange="0" walkinterval="0"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="180" head="78" body="113" legs="114" feet="0"/> </npc>
     
    AAh, já ia me esquecendo, volte em actions/scripts crie um arquivo chamado reviver.lua e cole isso dentro:

    function onUse(cid, item, fromPosition, itemEx, toPosition) function getPokemonMaxLife(name) local file = io.open('data/monster/monsters.xml','r') local arquivo = file:read(-1):lower():match('<monster name="'..name:lower()..'" file="(.-)"/>') file:close() local data = io.open('data/monster/'..(arquivo or ''),'r') if not data then return 100 end local maximo = data:read(-1):match('max%s*=%s*"(%d+)"') data:close() return maximo end ----- Config ----- local MaximoSummon = 1 local nome = getItemName(item.uid) local poke_name = nome:match('(.-) Pokeball') local summons = getCreatureSummons(cid) local action_id = getItemAttribute(item.uid, "aid") ----- Config ----- local summons = getCreatureSummons(cid) if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then doPlayerSendCancel(cid, "Sorry, you must put your pokeball in the right place.") return TRUE end if getPlayerStorageValue(cid, 5555) == 1 then setPlayerStorageValue(cid, 5555, 0) doTransformItem(item.uid, 2531) doItemSetAttribute(item.uid, "aid", getPokemonMaxLife(poke_name)) else doPlayerSendCancel(cid, "You poke are Dead.") end return true end
     
    E no actions.xml add isto:

    <action itemid="2535" event="script" value="reviver.lua"/>
    -------> FIM <-------
     
    Dúvidas ? Poste Aqui =D
  9. Upvote
    Guimmd2 deu reputação a Doidin em [Oficial] We Do Ots 0.1.1 (Beta Version)   
    A partir de agora não é mais Real Server e sim We Do OTS, para você conferir mais clique aqui.
     
    Até mais,
    Doidin.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...