Segue esse tutorial
Se ajudei da rep+
Por josegremista, 27 de jan. de 2013 em Tópicos Sem Resposta
info
Grupo: Artesão
Registrado: 20/11/12
Posts: 112
Reputação: +4

Segue esse tutorial
Se ajudei da rep+
Editado Janeiro 27 por pobredobrega
info
Grupo: Visconde
Registrado: 10/09/12
Posts: 476
Reputação: +2
Char no Tibia: Esqueci

@pobredobrega, essa tutor não explica direito não mais eu vou tomar base os outros portraits pra eu fazer
Agora minha dúvida é como colocar o portraits na Coownd bar
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

lib/cooldown bar.lua
lembrando q o id q vai ali n eh o id do items.xml e sim o id do portrait no .DAT!
lembrando² q soh vao aparecer os portraits com ids menores q 11700...
e se vc começase a usar a barra de pesquisa veria q ja tem varios topicos com esse ms assunto --' procurar n mata amigo
info
Grupo: Visconde
Registrado: 10/09/12
Posts: 476
Reputação: +2
Char no Tibia: Esqueci

@Slicer
Em que parte da scripter eu adiciono os id dos portraits ?
function getPlayerPokeballs(cid)
local ret = {}
local container = 0
if isCreature(cid) then
container = getPlayerSlotItem(cid, 3).uid
local myball = getPlayerSlotItem(cid, 8)
if myball.uid > 0 then
table.insert(ret, myball)
end
else
container = cid
end
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 = getPlayerPokeballs(item.uid)
if itemsbag and #itemsbag > 0 then
for i = 0, #itemsbag do
table.insert(ret, itemsbag)
end
end
elseif isPokeball(item.itemid) then
table.insert(ret, item)
end
end
end
return ret
end
function doUpdatePokemonsBar(cid)
if not isCreature(cid) then return true end
if getPlayerStorageValue(cid, 656494) > 0 then
return true
end
setPlayerStorageValue(cid, 656494, 1000)
addEvent(setPlayerStorageValue, 100, cid, 656494, -1)
local ret = "p#,"
local balls = getPlayerPokeballs(cid)
local times = 0
for a = 1, #balls do
local item = balls[a]
local hp = math.ceil(getItemAttribute(item.uid, "hp") * 100)
local name = getItemAttribute(item.uid, "poke")
local port = getPlayerSlotItem(cid, CONST_SLOT_LEGS)
if fotos[name] >= 11137 and fotos[name] <= 11387 then
times = times + 1
local foto = fotos[name] - 911
doItemSetAttribute(item.uid, "ballorder", times)
ret = ret..""..foto..","..name..""..times..","..hp.."," --alterado v1.4
elseif fotos[name] >= 12577 then --tem q ver isso aki ainda --'
times = times + 1
local foto = 11916
doItemSetAttribute(item.uid, "ballorder", times)
ret = ret..""..foto..","..name..""..times..","..hp..","
else
times = times + 1
local foto = fotos[name] - 928
doItemSetAttribute(item.uid, "ballorder", times)
ret = ret..""..foto..","..name..""..times..","..hp..","
end
end
doPlayerSendCancel(cid, ret)
end
function getNewMoveTable(table, n)
if table == nil or not n then return false end
if n == 1 and table.move1 then
return table.move1
elseif n == 2 and table.move2 then
return table.move2
elseif n == 3 and table.move3 then
return table.move3
elseif n == 4 and table.move4 then
return table.move4
elseif n == 5 and table.move5 then
return table.move5
elseif n == 6 and table.move6 then
return table.move6
elseif n == 7 and table.move7 then
return table.move7
elseif n == 8 and table.move8 then
return table.move8
elseif n == 9 and table.move9 then
return table.move9
elseif n == 10 and table.move10 then
return table.move10
elseif n == 11 and table.move11 then
return table.move11
elseif n == 12 and table.move12 then
return table.move12
else
return false
end
end
function doUpdateMoves(cid)
if not isCreature(cid) then return true end
local summon = getCreatureSummons(cid)[1]
local ret = "12&,"
if not summon then
for a = 1, 12 do
ret = ret.."n/n,"
end
doPlayerSendCancel(cid, ret)
addEvent(doUpdateCooldowns, 100, cid)
return true
end
local ret = "12&,"
if getCreatureName(summon) == "Ditto" and pokes[getPlayerStorageValue(summon, 1010)] and getPlayerStorageValue(summon, 1010) ~= "Ditto" then
moves = movestable[getPlayerStorageValue(summon, 1010)]
else --alterado v1.6
moves = movestable[getCreatureName(summon)]
end
for a = 1, 12 do
local b = getNewMoveTable(moves, a)
if b then
ret = ret..""..b.name..","
else
ret = ret.."n/n,"
end
end
doPlayerSendCancel(cid, ret)
addEvent(doUpdateCooldowns, 100, cid)
end
function doUpdateCooldowns(cid)
if not isCreature(cid) then return true end
local a = getPlayerSlotItem(cid, 8)
local ret = "12|,"
if a.uid <= 0 or #getCreatureSummons(cid) <= 0 then
for cds = 1, 12 do
ret = useOTClient and ret.."-1|0," or ret.."-1," --alterado v1.7
end
doPlayerSendCancel(cid, ret)
return true
end
for cds = 1, 12 do --alterado v1.7 \/\/
----
local summon = getCreatureSummons(cid)[1]
if summon and getPlayerStorageValue(summon, 212123) >= 1 then
cdzin = "cm_move"..cds
else --alterado v1.5
cdzin = "move"..cds
end
----
if getCreatureName(summon) == "Ditto" and pokes[getPlayerStorageValue(summon, 1010)] and getPlayerStorageValue(summon, 1010) ~= "Ditto" then
moves = movestable[getPlayerStorageValue(summon, 1010)]
else
moves = movestable[getCreatureName(summon)]
end
local b = getNewMoveTable(moves, cds)
----
if getCD(a.uid, cdzin) > 0 then
ret = useOTClient and ret..""..(getCD(a.uid, cdzin)).."|"..b.level.."," or ret..""..(getCD(a.uid, cdzin) -1)..","
else
ret = (useOTClient and b) and ret.."0|"..b.level.."," or ret.."0,"
end
end
doPlayerSendCancel(cid, ret) -- alterado v1.7 /\/\
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"} --alterado v1.7
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
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

por essa parte..
if fotos[name] >= 11137 and fotos[name] <= 11387 then
times = times + 1
local foto = fotos[name] - 911
doItemSetAttribute(item.uid, "ballorder", times)
ret = ret..""..foto..","..name..""..times..","..hp.."," --alterado v1.4
elseif fotos[name] >= 12577 then --tem q ver isso aki ainda --'
times = times + 1
local foto = 11916
doItemSetAttribute(item.uid, "ballorder", times)
ret = ret..""..foto..","..name..""..times..","..hp..","
else
times = times + 1
local foto = fotos[name] - 928
doItemSetAttribute(item.uid, "ballorder", times)
ret = ret..""..foto..","..name..""..times..","..hp..","
end
info
Grupo: Visconde
Registrado: 10/09/12
Posts: 476
Reputação: +2
Char no Tibia: Esqueci

@Slicer porque só tem que ser até 11700? Tem haver com as soucers né ?
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

sei la mano... pode ver ae o shiny hitmontop, o id do portrait dele no .dat eh 12k+ e nao aparece na barra.. soh q o corpse do shiny charizard aparece, q eh id 11700, entao.... acredito q seja limitaçao da propria barra mas... ;x
info
Grupo: Visconde
Registrado: 10/09/12
Posts: 476
Reputação: +2
Char no Tibia: Esqueci

@Hmm, eu num tinha verificado o shiny top ainda vou ver aki. vei o raiva o brun123 não quer vender as soucers ,mandei pm pra ele dizendo que queria comprar as soucers ele nem me respondeu, vou mandar uma oferta gorda por pm pra ver se ele vende,
Já que pra fazer o que eu preciso tem que ter as soucers
info
Grupo: Cavaleiro
Registrado: 10/11/12
Posts: 173
Reputação: +9
Char no Tibia: Albert Einstein

@Slicer porque só tem que ser até 11700? Tem haver com as soucers né ?
Isso não tem haver com as sources do servidor, e sim da dll
Editado Janeiro 28 por AlbertEinstein
info
Grupo: Visconde
Registrado: 10/09/12
Posts: 476
Reputação: +2
Char no Tibia: Esqueci

@Albert vc sabe como faz para aumentar esse id? de 117000 ir para maior que esse id?
@Albert será se eu pegar a nova dll do kpdo, agora que eles ja tem a 3°geração e a coonwld bar funfa certinho, ai eu hookar a dll no meu client irá aparecer ?
info
Grupo: Infante
Registrado: 25/01/12
Posts: 1.6k
Reputação: +330

Não cara, DLL ja é outra coisa de c++ não é tão facil assim, Poucas pessoas consegue fazer isso ;/ roukar a dll; abrçs
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

ate agora n vi mais ngm conseguindo hookar a .dll no client mas... podes tentar.. ;/
info
Grupo: Visconde
Registrado: 10/09/12
Posts: 476
Reputação: +2
Char no Tibia: Esqueci

@Slicer Irei Hookar a dll aki quando eu tiver mais tempo, porque hookar a dll demora pra por**. A e man eu já consegui hookar a dll mais era a dll que vem no seu client, ai eu criei um client pelo vapus. ai o client não tinha o a barra, ai como eu queria eu hookei e fiz o teste e pegou.
Quando eu hookar a dll eu edito o post e digo se consegui ou não
Editado Fevereiro 2 por josegremista
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

ja aproveita e diz como conseguiu kkk em tese eh soh hookar a DLLREADY... dai a barra aparece e atualiza... mas n da pra clicar nele e pah.. parece q ela n ta ali.. '-' muito loko...
info
Grupo: Visconde
Registrado: 10/09/12
Posts: 476
Reputação: +2
Char no Tibia: Esqueci
Como diz o titulo é minha dúvida é o seguinte quero sabe como adicionar novos portraits no serv e também adicionar na coownd bar .
Quero adicionar os portraits no serv de todos os shinys da 1° e 2° geração mais eu num sei como faço pra adicionar, tenho na spr e dat e também tenho os id's criados no item editor, teria como alguém me ajudar?
Rep++ pra que me ajudar com isso