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:

Hidden Content

    Give reaction to this post to see the hidden content.

 

Depois do click: 

Hidden Content

    Give reaction to this post to see the hidden content.

 

Scripts envolvidas:

 

CD BAR:

 

  Mostrar conteúdo oculto

 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:

 

  Mostrar conteúdo oculto

 -- 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
  Em 28/05/2015 em 20:22, babyloiz disse:

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:

Hidden Content

    Give reaction to this post to see the hidden content.

 

Depois do click: 

Hidden Content

    Give reaction to this post to see the hidden content.

 

 

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á!

Mostrar mais  

- 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
  Em 29/05/2015 em 14:46, Nextbr disse:

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

Expand   Mostrar mais  

 

 

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.

 

Hidden Content

    Give reaction to this post to see the hidden content.

 

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:   Hidden Content
      Give reaction to this post to see the hidden content.   Sources GitHub:
      Hidden Content
      Give reaction to this post to see the hidden content.
       
      SCAN:  Hidden Content
      Give reaction to this post to see the hidden content.  
       
      CREDITOS:
       
      Kevick (CDBAR-FUNCIONAL)
      Aberos (Otclient)
      Avronex
      CipSoft - Sem ela isso tudo nao existiria
  • Estatísticas dos Fóruns

    96843
    Tópicos
    519604
    Posts
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo