Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Seguinte to com 2 probleminhas que gostaria da ajuda de vocês para resolver, não sei colocar imagem aqui então upei as imagens pelo light shot.

 

 

 

Primeiro problema:

 

Eu peguei as scripts da cd bar de meu servidor antigo (PDA) dei uma adaptada para funcionar no servidor e ela esta funcionando, porém tem que dar um click para atualizar.

 

 

Prints:

http://prntscr.com/7ai5hw

 

Depois do click: 

http://prntscr.com/7ai61f

 

Scripts envolvidas:

 

CD BAR:

 

 useOTClient = true

function getNewMoveTable(table, n)
if table == nil or not n then return false end
 
local moves = {table.move1, table.move2, table.move3, table.move4, table.move5, table.move6, table.move7, table.move8, table.move9,
table.move10, table.move11, table.move12}
 
return moves[n] or false
end
 
 
function doUpdateMoves(cid)
if not isCreature(cid) then return true end
local summon = getCreatureSummons(cid)[1]
local ret = {}
table.insert(ret, "12&,")
if not summon then
   for a = 1, 12 do
       table.insert(ret, "n/n,")
   end
   doPlayerSendCancel(cid, table.concat(ret))
   addEvent(doUpdateCooldowns, 100, cid)
return true
end
if isTransformed(summon) then  --alterado v1.9
   moves = movestable[getPlayerStorageValue(summon, 1010)]
else                                                       
   moves = movestable[getCreatureName(summon)]
end
for a = 1, 12 do
    local b = getNewMoveTable(moves, a)
    if b then
       table.insert(ret, b.name..",")
    else
       table.insert(ret, "n/n,")
    end
end
doPlayerSendCancel(cid, table.concat(ret))
addEvent(doUpdateCooldowns, 100, cid)
end
 
function doUpdateCooldowns(cid)
if not isCreature(cid) then return true end
local a = getPlayerSlotItem(cid, 8)
local ret = {}
table.insert(ret, "12|,")
if a.uid <= 0 or #getCreatureSummons(cid) <= 0 then
   for cds = 1, 12 do
       if useOTClient then table.insert(ret, "-1|0,") else table.insert(ret, "-1,") end  
   end
   doPlayerSendCancel(cid, table.concat(ret))
return true
end
for cds = 1, 12 do                                                         
    ----
    local summon = getCreatureSummons(cid)[1]
    if summon and getPlayerStorageValue(summon, 212123) >= 1 then
       cdzin = "cm_move"..cds
    else                       
       cdzin = "move"..cds
    end
    ----
    if isTransformed(summon) then  --alterado v1.9
       moves = movestable[getPlayerStorageValue(summon, 1010)]
    else                                                       
       moves = movestable[getCreatureName(summon)]
    end
    local b = getNewMoveTable(moves, cds)
    if not b then
       for cds = 1, 12 do
           if useOTClient then table.insert(ret, "-1|0,") else table.insert(ret, "-1,") end   --alterado v1.9
       end
       doPlayerSendCancel(cid, table.concat(ret))
    return true
    end
    ----
    if getCD(a.uid, cdzin) > 0 then
       if (useOTClient and b) then table.insert(ret, (getCD(a.uid, cdzin)).."|"..b.level..",") else table.insert(ret, (getCD(a.uid, cdzin))..",") end
    else
       if (useOTClient and b) then table.insert(ret, "0|"..b.level..",") else table.insert(ret, "0,") end  
    end
end
doPlayerSendCancel(cid, table.concat(ret))                                             
end
 
function getBallsAttributes(item)
local t = {"poke", "gender", "nick", "boost", "happy", "hp", "description", "transBegin", "hunger", "transLeft", "transTurn", "transOutfit", "transName", 
"trans", "light", "blink", "move1", "move2", "move3", "move4", "move5", "move6", "move7", "move8", "move9", "move10", "move11", "move12", "ballorder", 
"hands", "aura", "burn", "burndmg", "poison", "poisondmg", "confuse", "sleep", "miss", "missSpell", "missEff", "fear", "fearSkill", "silence", 
"silenceEff", "stun", "stunEff", "stunSpell", "paralyze", "paralyzeEff", "slow", "slowEff", "leech", "leechdmg", "Buff1", "Buff2", "Buff3", "Buff1skill",
"Buff2skill", "Buff3skill", "control", "unique", "task", "lock"} 
local ret = {}
for a = 1, #t do
if getItemAttribute(item, t[a]) == "hands" then
return
end
ret[t[a]] = getItemAttribute(item, t[a]) or false
end
return ret
end
 
function doChangeBalls(cid, item1, item2)
if not isCreature(cid) then return true end
if item1.uid == item2.uid then
   if #getCreatureSummons(cid) <= 0 then
      doGoPokemon(cid, getPlayerSlotItem(cid, 8))
   else
      doReturnPokemon(cid, getCreatureSummons(cid)[1], getPlayerSlotItem(cid, 8), pokeballs[getPokeballType(getPlayerSlotItem(cid, 8).itemid)].effect)
   end
return true
end
 
if item1.uid > 0 and item2.uid > 0 then
   local io = getBallsAttributes(item1.uid)
   local it = getBallsAttributes(item2.uid)
   for a, b in pairs (io) do
       if b then
          doItemSetAttribute(item2.uid, a, b)
       else
          doItemEraseAttribute(item2.uid, a)
       end
   end
   for a, b in pairs (it) do
       if b then
          doItemSetAttribute(item1.uid, a, b)
       else
          doItemEraseAttribute(item1.uid, a)
       end
   end
   local id = item2.itemid
   doTransformItem(item2.uid, item1.itemid)
   doTransformItem(item1.uid, id)
   doGoPokemon(cid, getPlayerSlotItem(cid, 8))
else
   local id = item2.itemid
   local b = getBallsAttributes(item2.uid)
   local a = doPlayerAddItem(cid, 2643, false)
   for c, d in pairs (b) do
       if d then
          doItemSetAttribute(a, c, d)
       else
          doItemEraseAttribute(a, c)
       end
   end
   doRemoveItem(item2.uid, 1)
   doTransformItem(a, id)
   doGoPokemon(cid, getPlayerSlotItem(cid, 8))
end

end 

 

Cd Do OT Cliente:

 

 -- Privates variables

local cdBarWin = nil
local isIn = 'H' --[[ 'H' = horizontal; 'V' = vertical ]]--
local namesAtks = ''
local icons = {}
-- End privates variables
 
-- Public functions
function init()
   cdBarWin = g_ui.displayUI('cdBar', modules.game_interface.getRootPanel())
   cdBarWin:setVisible(false)  
   cdBarWin:move(250,50)
   
   connect(g_game, 'onTextMessage', getParams)
   connect(g_game, { onGameEnd = hide } )
   connect(LocalPlayer, { onLevelChange = onLevelChange })
  
   g_mouse.bindPress(cdBarWin, function() createMenu() end, MouseRightButton) 
   
   createIcons()
end
 
function terminate()
   disconnect(g_game, { onGameEnd = hide })
   disconnect(g_game, 'onTextMessage', getParams)
   disconnect(LocalPlayer, { onLevelChange = onLevelChange })
   
   destroyIcons()
   cdBarWin:destroy()
end
 
function onLevelChange(localPlayer, value, percent)
   g_game.talk("/reloadCDs")
end
 
function getParams(mode, text)
if not g_game.isOnline() then return end
   if mode == MessageModes.Failure then 
      if string.find(text, '12//,') then
         if string.find(text, 'hide') then hide() else show() end
      elseif string.find(text, '12|,') then
         atualizarCDs(text)
      elseif string.find(text, '12&,') then
         FixTooltip(text)
      end
   end
end
 
function atualizarCDs(text)
if not g_game.isOnline() then return end
if not cdBarWin:isVisible() then return end 
   local t = text:explode(",")
   table.remove(t, 1)   
   for i = 1, 12 do
       local t2 = t:explode("|")
       barChange(i, tonumber(t2[1]), tonumber(t2[2]), tonumber(t2[3]))
   end 
end
 
function changePercent(progress, icon, perc, num, init)
   if not cdBarWin:isVisible() then return end      
   if init then
      progress:setPercent(0)
   else
      progress:setPercent(progress:getPercent()+perc)
   end
   if progress:getPercent() >= 100 then 
      progress:setText("")
      return
   end
   progress:setText(num)
   icons[icon:getId()].event = scheduleEvent(function() changePercent(progress, icon, perc, num-1) end, 1000)
end
 
function barChange(ic, num, lvl, lvlPoke)
if not g_game.isOnline() then return end
if not cdBarWin:isVisible() then return end 
   local icon = icons['Icon'..ic].icon
   local progress = icons['Icon'..ic].progress
   
   if not progress:getTooltip() then return end
   local player = g_game.getLocalPlayer()
   local pathOn = "moves_icon/"..progress:getTooltip().."_on.png"
   
   icon:setImageSource(pathOn)
   
   if num and num >= 1 then   
      cleanEvents('Icon'..ic)
      changePercent(progress, icon, 100/num, num, true)      
   else   
      if (lvlPoke and lvlPoke < lvl) or player:getLevel() < lvl then
         progress:setPercent(0)
         progress:setText('L.'.. lvl)
         progress:setColor('#FF0000')
      else
         progress:setPercent(100)
         progress:setText("") 
      end
   end    
end
 
function FixTooltip(text)
   cdBarWin:setHeight(isIn == 'H' and 416 or 40) 
   cdBarWin:setWidth(isIn == 'H' and 40 or 416)
   if not text then text = namesAtks else namesAtks = text end 
   
   local t2 = text:explode(",")
   local count = 0
   for j = 2, 13 do
       local ic = icons['Icon'..(j-1)]
       ic.icon:setMarginLeft(isIn == 'H' and 4 or ic.dist)
       ic.icon:setMarginTop(isIn == 'H' and ic.dist or 4)
       if t2[j] == 'n/n' then    
          ic.icon:hide()      
          count = count+1
       else
          ic.icon:show()
          ic.progress:setTooltip(t2[j]) 
          ic.progress:setVisible(true)
       end
   end
   if count > 0 and count ~= 13 then
      if isIn == "H" then
         cdBarWin:setHeight(416 - (count*34))
      else
         cdBarWin:setWidth(416 - (count*34))
      end
   elseif count == 13 then
      cdBarWin:setHeight(40)
      cdBarWin:setWidth(40)
      local p = icons['Icon1'].progress
      p:setTooltip(false)
      p:setVisible(false)
   end                
end
 
function createIcons()
   local d = 38
   for i = 1, 12 do
      local icon = g_ui.createWidget('SpellIcon', cdBarWin)
      local progress = g_ui.createWidget('SpellProgress', cdBarWin) 
      icon:setId('Icon'..i)  
      progress:setId('Progress' ..i)
      icons['Icon'..i] = {icon = icon, progress = progress, dist = (i == 1 and 5 or i == 2 and 38 or d + ((i-2)*34)), event = nil}
      icon:setMarginTop(icons['Icon'..i].dist)
      icon:setMarginLeft(4)
      progress:fill(icon:getId())
      progress.onClick = function() g_game.talk('m'..i) g_game.talk("/reloadCDs") end
   end
end
 
function destroyIcons()
   for i = 1, 12 do
       icons['Icon'..i].icon:destroy()
       icons['Icon'..i].progress:destroy()
   end                                
   cleanEvents()
   icons = {}
end
 
function cleanEvents(icon)
local e = icons[icon] 
if icon then
   if e and e.event ~= nil then
      removeEvent(e.event)
      e.event = nil
   end
else
   for i = 1, 12 do
       e = icons['Icon'..i]
       cleanEvents('Icon'..i)
       e.progress:setPercent(100)
       e.progress:setText("")
   end
end
end
 
function createMenu()
   local menu = g_ui.createWidget('PopupMenu')
   menu:addOption("Set "..(isIn == 'H' and 'Vertical' or 'Horizontal'), function() toggle() end)
   menu:display()
end
 
function toggle()
if not cdBarWin:isVisible() then return end 
   cdBarWin:setVisible(false)
   if isIn == 'H' then
      isIn = 'V'
   else 
      isIn = 'H'
   end
   FixTooltip()
   show()
end
 
function hide()
   cleanEvents()
   cdBarWin:setVisible(false)
end
 
function show()
   cdBarWin:setVisible(true)
end

-- End public functions 

 

 

 

Grato desde já!

Editado por babyloiz (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Seguinte to com 2 probleminhas que gostaria da ajuda de vocês para resolver, não sei colocar imagem aqui então upei as imagens pelo light shot.

 

 

 

Primeiro problema:

 

Eu peguei as scripts da cd bar de meu servidor antigo (PDA) dei uma adaptada para funcionar no servidor e ela esta funcionando perfeitamente porém tem que dar um click para atualizar, e um erro pior é ser for um ditto que não tem moves, a barra para de funcionar e precisa ser reiniciado o modulo, a minha alternativa foi adicionar um botão a mais como se foce o move 13 apenas para atualizar clicando ali. prints:

(o botão 13 fica invisível, só faz diferença quando ditto)

 

Prints:

http://prntscr.com/7ai5hw

 

Depois do click: 

http://prntscr.com/7ai61f

 

 

Script: 

 

obs: por não entender muito da parte de compilação eu ainda não tentei tacar na pasta de da source e compilar, se talvez for isso, alguém poderia confirmar?

 

 

 

Segundo problema:

 

Tentei adicionar o sistema de ditto poder dar fly etc, ocorreu tudo bem, porém conflitou com o sistema de memoria também ja adicionado, pois muda o nick do ditto, alguém poderia me ajudar ao invés de reconhecer o nome ditto, ele reconheça alguma storage value do item 

 

segue abaixo as scripts usadas:

 

http://www.tibiaking.com/forum/topic/56685-ditto-memory-system-por-talkaction/

 

http://www.tibiaking.com/forum/topic/35599-pda-ditto-system-igual-pxg/

 

 

Grato desde já!

- O Primeiro eu nao sei, A Base do Servidor Ultilizado nao tinha (OTC) (Pgalaxy Zombie TR) , nao trabalho com OTclient 

 

- O Segundo o ditto system do meu server esta super bugado pega um (Scyther) e solta aquele move de Teams é um ditto com outfit (Scyther) e outros 3 com outfit de Ditto

 

- Scyther = O Move teams Bugado; Parece que cada vez faz o move "Teams" Fica com o Dobro de "HP"   menos o "Scyther - Original"

 

- Antes de começar a adicionar coisas novas no Server tente primeiro Arrumar oque esta Bugado ai depois sim voce adicionar coisas do PDA (Quando eu Abri o meu Server nem tinha Ditto no Jogo)

 

- Nao tem Nick system no Server (Qualquer coisa que envolver Nick system vai bugar o Pokemon)

Editado por Nextbr (veja o histórico de edições)

 

 

Link para o post
Compartilhar em outros sites

- O Primeiro eu nao sei, A Base do Servidor Ultilizado nao tinha (OTC) (Pgalaxy Zombie TR) , nao trabalho com OTclient 

 

- O Segundo o ditto system do meu server esta super bugado pega um (Scyther) e solta aquele move de Teams é um ditto com outfit (Scyther) e outros 3 com outfit de Ditto

 

- Scyther = O Move teams Bugado; Parece que cada vez faz o move "Teams" Fica com o Dobro de "HP"   menos o "Scyther - Original"

 

- Antes de começar a adicionar coisas novas no Server tente primeiro Arrumar oque esta Bugado ai depois sim voce adicionar coisas do PDA (Quando eu Abri o meu Server nem tinha Ditto no Jogo)

 

- Nao tem Nick system no Server (Qualquer coisa que envolver Nick system vai bugar o Pokemon)

 

 

primeiro que oque você argumentou para me julgar não tem nada haver com meu problema desculpe a demora eu estava sem acessar o tibiaking

 

sobre o defeito do ditto obrigado por me dizer mais um defeito, mas não tem nada haver mesmo.

 

http://prntscr.com/7boyce

 

para bons entendedores irei explicar melhor o ditto ta puxando o nome da criatura junto e o script de memoria esta para reconhecer o nome, alguém poderia me dar uma aulinha basica de como adicionar storage value em items e salvalos nele? por que dai assim ao invés de reconhecer pelo nome sim pela storage value, bjs para quem puder me ajudar <3

Editado por babyloiz (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por zipter98
      OK, isto não é exatamente um sistema, visto que é composto por um único arquivo com um único callback, mas enfim.
      Antes de começar a desenvolver o tópico, digo-lhes: o código é para poketibia, não outros derivados ou Tibia comum.
      Introdução:
       
      A pedidos de um amigo, resolvi escrever este script. Por não programar em OTClient, optei por escrevê-lo em uma talkaction. Para aqueles que não conhecem o sistema, consiste em praticidade para as transformações do Ditto: ao invés de repetir o cansativo processo de procurar o pokémon que deseja-se copiar, você pode simplesmente salvá-lo na memória do Ditto para, sempre que quiser, transformá-lo em um único comando. 
      Você pode configurar quantos slots de "memória" quiser.
      Para usar os comandos, você deve colocar uma pokebola com um Ditto no slot 8/feet (a.k.a "pokeball slot"). Alguns, no entanto, necessitam também que o pokémon esteja "solto".
      Comandos:
      /memory check Use este comando para verificar os atuais slots de seu Ditto. /memory forget [slot] Use este comando para deletar uma memória salva, respectiva ao slot indicado. Ex.: /memory forget 1 /memory save [slot] Use este comando para salvar uma memória, respectiva ao slot indicado. A memória salva será do pokémon que seu Ditto estará transformado no momento. Ex.: /memory save 3 /memory [slot] Use este comando para transformar seu Ditto no pokémon que estiver armazenado no slot indicado. Ex.: /memory 2 PS: Você também pode usar !memory.
      Instalação:
       
      Em data/talkactions/scripts, crie um arquivo com extensão .lua, nomeie-o dittomemory e coloque o seguinte conteúdo:



      Em data/talkactions, abra o arquivo talkactions.xml e coloque a seguinte tag: <talkaction words="/memory;!memory" event="script" value="dittomemory.lua"/> Versão testada: 8.54 Servidor testado: PDA by Slicer, versão 1.9 É um código bem simples, escrito em poucos minutos. Resolvi postá-lo pois gostei do resultado apresentado.  Para alguns, pode não ser tão útil; para outros, espero que sim. É isso aí, até mais.
    • Por olaia
      Eu coloquei o Ditto System = PxG de um cara ai que eu esqueci o nome, funciona direitinho porem, tem um bug muito zuado nele e queria saber se tem como resolver.
      Se você transforma o Ditto em um Shiny Cubone e joga uma Earth Stone no Ditto transformado em Shiny Cubone, 
      o Pokemon evolui e a Ball que era de Ditto vira do Shiny Marowak, ou seja, um cara poderia catar vários Ditto's e fazer isso até ficar com um Team TOP, queria saber se alguem saber de algum script para que não possa evoluir o Ditto transformado em outro poke?
      Se não tiver como, então desativárei o Ditto do meu server, axo ele muito dahora, pena que tem esses bugs.
      Agradeço a atenção, obrigado.
    • Por Bagastalgia
      Se estiver errado por favor moverem para area correta.

      Estou criando uma interface para as listas de pokes dque a mairia usa.

      Porem estou com dificuldade em setar o HP do poke na PokeBar.

      Preciso de uma ajuda com isso pois nao encontrei em sites.
       
      Distro: TFS 0.3.6
       
      Otclient: 08.6
       
      Como podem ver no print i Ivy esta com menos da metade da vida, porem na pokebar continua 100%.




    • Por rafanasser
      eae galera, estou com um problema chato demais, meu comando !revert só funciona quando o ditto está dentro da ball, estou precisando de uma talkaction que funcione com ele fora da ball. Se alguém puder me ajudar eu agradeço muito e REP+
      procurei no fórum inteiro e não achei
    • Por Tungsx
      Eai PokeTibianos  !
       
      Trago aqui o pfield com cd bar um servidor com sources! bom adicionei a cdbar no pfield! a alguns sistemas nada mais!
       
       
      Systems do PFIELD!
         
        Observações         PRINTS:    
        DOWNLOAD:   http://bit.ly/1OdS1Ii   Sources GitHub:
      https://github.com/K...d-cdbar-source/
       
      SCAN: https://www.virustotal.com/pt-br/file/601a2bc99eff53a1c7a2bb231218209331b0aad511d24c8359d7977b09eb0349/analysis/1454742556/ 
       
      CREDITOS:
       
      Kevick (CDBAR-FUNCIONAL)
      Aberos (Otclient)
      Avronex
      CipSoft - Sem ela isso tudo nao existiria
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo