Ir para conteúdo

New Balls Pod


Posts Recomendados

Apenas para pokemon dash.



Ola galera, vim aki fazer um tutorial que acredito que muitos estão atras.

Aki eu irei por como voce pode add novas balls no Pokemon Dash.

Bem primeiro de tudo ira precisar de otitemeditor 0.3.7,map editor e conheçimento em mexer

nesses arquivos citados alem de saber mexer em script.Bem Vamos la:

 

Abra o remeres com o client que voce quer.Apos isso procure item por item

Ate achar as pokebolas juntaveis acesa e apagada.

Feito isso abra o otitemeditor 0.3.7 e procure os itens que voce achou no map editor

Note que tera opçoes e tera uma sequencia numerica embaixo da foto do item e do lado

Do CID Anote o numero e veja qual item é

Apos ter feito isso com as pokebolas que irao dar catch,soltar poke,puxar o poke e a que sera

Usada para reviver na nurse, va no menu tools ainda no itemeditor e add 4 novos items.

Va no 1 item dai va no item em CID e ponha o numero que voce add para a pokebola que

Dara catch, e marque Useable e Pickupable.

Agora va no 2 item que você add ponha em CID o numero que voce anotou para pokebola acesa

E marque a opção Pickupable

Agora o 3 item que sera a ball apagada que puxara o poke va em CID e ponha o numero da pokebola apagada

Que voce anotou e marque a opção Pickupable e Not Moveable

Agora 4 e ultimo item o que sera usado na Nurse Joy Add em CID o mesmo numero que add no 3 item, mas nas opções

Marque apenas Pickupable.

1 Parte Foi Feita agora 2 parte.Envolve Script agora.

Va na pasta do seu server e em data\actions\scripts Abra seu catch e add o seguinte

elseif item.itemid == XXX then--Id da pokebola que sera usada para capturar

catchrate = 2--Chance ao usar essa pokebola

oncatch = 198--Effect da pokebola rodando pra la e praca e fikando verde

onfail = 197--Effect da pokebola rodando pra la e praca e falhando

bolabola = 2652--pokebola que sera usada para liberar o poke ou seja a ball acesa

 

Pronto agora salve e feche e abra o seu goback.

e add isso:

elseif item.itemid == AC or item.itemid == AP then--AC Pokebola Acesa, AP pokebola apagada

gobackeff = 193--Effect da hora que ira puxar o poke pra fora ou pra dentro da ball

 

Agora desca um poco ira achar essa linha

if item.itemid == 2223 or item.itemid == 2221 then

Antes de then add

or item.itemid == XXX --XXX id da pokebola apagada

Fikando Assim:

if item.itemid == 2223 or item.itemid == 2221 or item.itemid == XXX then--XXX id da ball apagada

Agora desca mais um poco ira ter outro do decima mais com outros ids das pokebolas acesas assim

elseif item.itemid == 2222 or item.itemid == 2220 then

ADD or item.itemid == XXXAntes de then fikando assim

elseif item.itemid == 2222 or item.itemid == 2220 or item.itemid == XXX then--XXX id da ball acesa

 

Pronto Salve e feche.

Va na pasta do seu server\Data\Actions e abra Actions.xml E procure por goback

e add o seguinte codigo depois do ultimo numero ;XXXAC;XXXAP ---XXXAC é id da ball acesa e XXXAP o id da ball apagada

Agora procure por catch e add o seguinte depois do ultimo numero:

;XXXCA---XXXCA id da ball que sera para dar catch

E procure por fainted e add

;XXXDE ---XXXDE o id da ball que é a que sera usada para reviver.

Agora salve e feche e va na pasta do seu server data\creaturescripts\scripts

E abra login.lua

E procure por

 

if getPlayerItemCount(cid, ultrapokeout) >= 1 and getPlayerStorageValue(cid, 61207) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 63215) <= 0 then

local item = getPlayerItemById(cid, TRUE, ultrapokeout)

doTransformItem(item.uid, ultrapokein)

doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke") .. " HP = ["..getPlayerStorageValue(cid, 61205).."/"..getPlayerStorageValue(cid, 61206).."]")

end

 

E add abaixo disso isso

 

if getPlayerItemCount(cid, greatpokeout) >= 1 and getPlayerStorageValue(cid, 61207) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 63215) <= 0 then

local item = getPlayerItemById(cid, TRUE, greatpokeout)

doTransformItem(item.uid, greatpokein)

doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke") .. " HP = ["..getPlayerStorageValue(cid, 61205).."/"..getPlayerStorageValue(cid, 61206).."]")

end

 

Expilação Greatpokeout e Greatpokein sao nomes na lib que depois irei mostrar como add no proximo passo.

Bem mude apenas o que esta em verde greatpokeout é ball apagada e greatpokein ball acesa

Mude o great para outro nome por exemplo super ou great ou master ou safari ou outro qualquer.

 

Pronto feito isso salve e feche.

 

Agora va na pasta do seu server\data\lib e abra pokelib logo ao abrir ira apareçer isso:

pokein, pokeout = 2222,2223

ultrapokein, ultrapokeout = 2220, 2221

se voce estiver usando pokemon dash com apenas duas balls

Add embaixo de ultrapokein, ultrapokeout = 2220, 2221

isso NOMEpokein, NOMEpokeout = 2652, 2653---NOMEpokein é o id da ball acesa e NOMEpokeout o id da ball apagada para voce nao bugar com o pokemon para fora é necessario seguir o passo do creaturescripts

ai emcima e eu disse que era pra mudar o GREAT para outro nome e bem agora no NOME voce poem o nome que escolheu

no login.lua

Feito isso salve e feche.

 

Agora volte na pasta creaturescripts/scripts e abra o goback.lua

Feito isso procure por

 

if getPlayerSlotItem(owner, 8).itemid == 2220 or getPlayerSlotItem(owner, 8).itemid == 2221 then

doSendMagicEffect(getCreaturePosition(cid), 191)

E add embaixo

elseif getPlayerSlotItem(owner, 8).itemid == 2222 or getPlayerSlotItem(owner, 8).itemid == 2223 then

doSendMagicEffect(getCreaturePosition(cid), 10)

Explicação:2222 é o id da ball acesa 2223 apagada e dai no 10 é o effect do poke voltando pra pokebola.Agora desca um poco voce ira achar isso:

if getPlayerSlotItem(owner, 8).itemid == 2220 or getPlayerSlotItem(owner, 8).itemid == 2221 then

doTransformItem(getPlayerSlotItem(owner, 8).uid, 2227)

Add embaixo

elseif getPlayerSlotItem(owner, 8).itemid == 2222 or getPlayerSlotItem(owner, 8).itemid == 2223 then

doTransformItem(getPlayerSlotItem(owner, 8).uid, 2224)

Explicação mesma coisa do de cima mas em 2224 é o id da ball

que sera transformada na que sera o pokemon morto.

 

Ultimo passo Para curar as pokebolas.

Va na pasta do seu server\data\npc\script e abra o script da sua nurse joy que cura seus pokemons

E logo ira apareçer

local pokeballs = {'2222', '2224'}

local ultraballs = {'2220', '2227'}

Add embaixo local testballs = {'AC', 'RE'} ---Explicação, AC é o id da pokebola acesa e RE o id da pokebola com pokemon morto

Apos feito isso procure por isso

 

if isInArray(pokeballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)

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

doItemSetAttribute(feet.uid, "poke", getItemAttribute(feet.uid, "poke"):sub(1, findLetter(getItemAttribute(feet.uid, "poke"), "[")) .. maxh .. getItemAttribute(feet.uid, "poke"):sub(findLetter(getItemAttribute(feet.uid, "poke"), "/")))

doTransformItem(feet.uid, 2222)

end

 

Apos achar isso add embaixo

 

if isInArray(testballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)

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

doItemSetAttribute(feet.uid, "poke", getItemAttribute(feet.uid, "poke"):sub(1, findLetter(getItemAttribute(feet.uid, "poke"), "[")) .. maxh .. getItemAttribute(feet.uid, "poke"):sub(findLetter(getItemAttribute(feet.uid, "poke"), "/")))

doTransformItem(feet.uid, XXX)---Id da ball acesa

end

 

Obs:Os ids da balls devem ser seguidos

EX:

Acesa:1689

Apagada:1690

Ja a que é usada para ser usada na nurse

Pode variar o id:1735

Pronto salve e feche e Nao esqueça do REP+ em :D

Creditos apenas meu e nao poste em outro forum sem minha permissao.

Editado por TheDevilZ
Link para o comentário
Compartilhar em outros sites

ou pode me dizer o que há de errado aqui??? olha só

 

 

data/Actions.xml

 

 

 

 

<action itemid="3777" event="script" value="roupas.lua"/>
<action itemid="2220;2221;2222;2223;105;107" event="script" value="goback.lua"/>
<action itemid="2224;2227;110" event="script" value="fainted.lua"/>
<action itemid="2147;2146;102" event="script" value="catch.lua"/>
<action itemid="2550" event="script" value="order.lua" allowfaruse="1"/>
<action itemid="3896;3897;3867;3868" event="script" value="roupas.lua"/>
<action itemid="2276;2277;2278;2279;2280;2281;2283;2284;2285;2286;2287;2288;2289;2290" event="script" value="evolution.lua" allowfaruse="1"/>

 

 

data/actions/catch.lua

 

 

 

elseif item.itemid == 102 then
catchrate = 20
oncatch = 198
onfail = 197
bolabola = 105

 

 

 

data/actions/goback.xml

 

 

 

 



if item.itemid == 2222 or item.itemid == 2223 then
gobackeff = 10
elseif item.itemid == 2220 or item.itemid == 2221 then
gobackeff = 191
elseif item.itemid == 105 or item.itemid == 107 then
gobackeff = 193
end
local effect = gobackeff

if item.itemid == 2223 or item.itemid == 2221 or item.itemid == 107 then


elseif item.itemid == 2222 or item.itemid == 2220 or item.itemid == 105 then

 

 

 

data/creaturescript/login.lua

 

 

 

if getPlayerItemCount(cid, greatpokeout) >= 1 and getPlayerStorageValue(cid, 61207) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 63215) <= 0 then
local item = getPlayerItemById(cid, TRUE, greatpokeout)
doTransformItem(item.uid, greatpokein)
doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke") .. " HP = ["..getPlayerStorageValue(cid, 61205).."/"..getPlayerStorageValue(cid, 61206).."]")
end

 

 

 

data/creaturescript/goback.lua

 


if getPlayerSlotItem(owner, 8).itemid == 2220 or getPlayerSlotItem(owner, 8).itemid == 2221 then
doSendMagicEffect(getCreaturePosition(cid), 191)
elseif getPlayerSlotItem(owner, 8).itemid == 2222 or getPlayerSlotItem(owner, 8).itemid == 2223 then
doSendMagicEffect(getCreaturePosition(cid), 10)
elseif getPlayerSlotItem(owner, 8).itemid == 105 or getPlayerSlotItem(owner, 8).itemid == 107 then
doSendMagicEffect(getCreaturePosition(cid), 193)
end
doPlayerSendTextMessage(owner, 22, "Your pokemon fainted.")
if getPlayerSlotItem(owner, 8).itemid == 2220 or getPlayerSlotItem(owner, 8).itemid == 2221 then
doTransformItem(getPlayerSlotItem(owner, 8).uid, 2227)
elseif getPlayerSlotItem(owner, 8).itemid == 2222 or getPlayerSlotItem(owner, 8).itemid == 2223 then
doTransformItem(getPlayerSlotItem(owner, 8).uid, 2224)
elseif getPlayerSlotItem(owner, 8).itemid == 105 or getPlayerSlotItem(owner, 8).itemid == 107 then
doTransformItem(getPlayerSlotItem(owner, 8).uid, 110)
end

 

 

 

data/lib/poklib.lua

 

 

 

pokein, pokeout = 2222,2223
pokeinultra, pokeoutultra = 2220, 2221
pokeingreat, pokeoutgreat = 105, 107



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)
   local s = doPlayerAddItem(cid, pokeinultra)
   local s = doPlayerAddItem(cid, pokeingreat)
   doItemSetAttribute(s, "poke", "This is "..pokename.."'s pokeball. HP = ["..maxh.."/"..maxh.."]") 
   doItemSetAttribute(s, "name", "" .. pokename .. " Poke Ball") 
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)
           local items = getItemsInContainerById(item.uid, pokeoutgreat)
           local items = getItemsInContainerById(item.uid, pokeoutultra)
           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

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

 

 

ta ai só faltou a nuser mais nela n tem como ta errado :D

 

 

 

 

Link para o comentário
Compartilhar em outros sites

Malz nao tava podendo entra agora to de volta '-'

Galea me add no msn quem nao consegui que tento ajuda e @BielLokS valeu ja vo por

Axei que tinha posto '-' e se nao po la o script nem funfa porcausa na hora do poke morrer.

Ja estarei atualizando.

Link para o comentário
Compartilhar em outros sites

po fiz tudo que vc fez...na hora de soltar o pokemon da nova ball,ao invez de sair o pokemon,sai um efeito de como se fosse tacando uma pokebola!!! uso pokemon dash tb...como arrumo isso?

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...