Postado Maio 28, 2015 9 anos 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 Junho 2, 2015 9 anos por babyloiz (veja o histórico de edições)
Postado Maio 29, 2015 9 anos 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 Maio 29, 2015 9 anos por Nextbr (veja o histórico de edições)
Postado Junho 1, 2015 9 anos Autor - 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 Junho 1, 2015 9 anos por babyloiz (veja o histórico de edições)
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.