Se formos simplesmente alterar pra buscar primeiro nessa table aí, todo Pokémon com addons teria seu fly/ride como se fosse o addon. Manda o sistema de addon q tu ta usando aí
info
Grupo: Barão
Registrado: 04/07/16
Posts: 242
Reputação: +100
Gênero: Masculino

info
Grupo: Herói
Registrado: 14/02/14
Posts: 341
Reputação: +285
Gênero: Masculino
Char no Tibia: Night Wolf

não entendi direito oque vc queria mas acho q é isso aqui
function getPokemonOutfitToSkill(pokeName) local index = 1 for i, v in pairs (addons) do if v.pokemon == pokeName then index = i end end if addons[i] and addons[i].fly == 0 then if flys[pokeName] then return flys[pokeName][1] end elseif addons[i] and addons[i].ride == 0 then if rides[pokeName] then return rides[pokeName][1] end elseif addons[i] and addons[i].surf == 0 then if surfs[pokeName].lookType then return rides[pokeName][1] end endend
info
Grupo: Visconde
Registrado: 07/02/12
Posts: 427
Reputação: +112

1 hora atrás, Gabriel Netto disse:Se formos simplesmente alterar pra buscar primeiro nessa table aí, todo Pokémon com addons teria seu fly/ride como se fosse o addon. Manda o sistema de addon q tu ta usando aí
Ah intenção é essa!
Adaptei o addon do PDE
1 hora atrás, Night Wolf disse:não entendi direito oque vc queria mas acho q é isso aqui
function getPokemonOutfitToSkill(pokeName) local index = 1 for i, v in pairs (addons) do if v.pokemon == pokeName then index = i end end if addons[i] and addons[i].fly == 0 then if flys[pokeName] then return flys[pokeName][1] end elseif addons[i] and addons[i].ride == 0 then if rides[pokeName] then return rides[pokeName][1] end elseif addons[i] and addons[i].surf == 0 then if surfs[pokeName].lookType then return rides[pokeName][1] end endend
O mito night wolf novamente, sou fã desse cara.
O pokémon tá morrendo e ta dando esse erro na distro
[25/08/2016 08:15:58] [Error - Action Interface]
[25/08/2016 08:15:58] data/actions/scripts/Basic/order.lua:onUse
[25/08/2016 08:15:58] Description:
[25/08/2016 08:15:58] data/lib/106-main functions.lua:1571: attempt to perform arithmetic on local 'outfit' (a nil value)
[25/08/2016 08:15:58] stack traceback:
[25/08/2016 08:15:58] data/lib/106-main functions.lua:1571: in function 'doUp'
[25/08/2016 08:15:58] data/actions/scripts/Basic/order.lua:71: in function <data/actions/scripts/Basic/order.lua:1>
[25/08/2016 08:16:07] Arcanine ball has been created by Admin.
[25/08/2016 08:16:12] [Error - CreatureScript Interface]
[25/08/2016 08:16:12] data/creaturescripts/scripts/player/pokeWalk.lua:onMove
[25/08/2016 08:16:12] Description:
[25/08/2016 08:16:12] data/lib/106-main functions.lua:1571: attempt to perform arithmetic on local 'outfit' (a nil value)
[25/08/2016 08:16:12] stack traceback:
[25/08/2016 08:16:12] data/lib/106-main functions.lua:1571: in function 'doUp'
[25/08/2016 08:16:12] data/creaturescripts/scripts/player/pokeWalk.lua:80: in function <data/creaturescripts/scripts/player/pokeWalk.lua:1>
vou te mandar as 2 funções completa pra você entender melhor:
Citar
function doUp(cid, summon, move)
local pokeName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke")
local ditto = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "copyName")
if ditto and ditto ~= "" then
pokeName = ditto
end
local outfit = getPokemonOutfitToSkill(pokeName)
local speed = getPokemonSpeedToSkill(pokeName)
addEvent(doRemoveCreature, 10, summon)
doSetCreatureOutfit(cid, {lookType = outfit + 351}, -1)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doChangeSpeed(cid, speed)
if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6
if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then
BackTeam(cid)
end
end
if move == "ride" then
setPlayerStorageValue(cid, orderTalks["ride"].storage, 1)
elseif move == "fly" then
setPlayerStorageValue(cid, orderTalks["fly"].storage, 1)
end
setPokemonGhost(cid)
doPlayerSendCancel(cid, '12//,hide') --alterado v1.7
end
Citar
function getPokemonOutfitToSkill(pokeName)
if flys[pokeName] then
return flys[pokeName][1]
elseif rides[pokeName] then
return rides[pokeName][1]
else
return surfs[pokeName].lookType
end
end
function getPokemonSpeedToSkill(pokeName)
if flys[pokeName] then
return flys[pokeName][2]
elseif rides[pokeName] then
return rides[pokeName][2] * 4.5
else
return surfs[pokeName].speed
end
end
Agora essa é a tabela flys/rides e surfs no configuration.lua
Citar
flys = {
["Moltres"] = {229, 3000}, -- moltres
["Articuno"] = {230, 3000}, -- artic
rides = {
["Tauros"] = {128, 110}, -- tauros
["Ninetales"] = {129, 130}, -- kyuubi
surfs = {
["Poliwag"] = {lookType=278, speed = 10},
["Poliwhirl"] = {lookType=137, speed = 40},
E essa é a tabela que eu quero checar, vou postar o script do addon acho que vai te ajudar night porque o script ta trabalhando com attributos acho que se fizesse um check de attributos também daria não? tipo como o addons tá add attributos de fly/rides/surfs e por na função se o poke tiver tal attributo então setar a tabela addons se ele não tiver setar a tabela comun de fly/rides
Citar
addons = {
[17232] = {pokemon= "Arcanine" , looktype = 2160, fly = 0, ride = 2161, surf = 0},
[17233] = {pokemon= "Electabuzz" , looktype = 2204, fly = 0, ride = 0, surf = 0},
}
SCRIPT
Citar
function onUse(cid, item, fromPosition, itemEx, toPosition)
if #getCreatureSummons(cid) > 0 then
doPlayerSendCancel(cid, "Please back your pokemon.")
return false
end
local addon = addons[item.itemid].looktype
local fly = addons[item.itemid].fly
local ride = addons[item.itemid].ride
local surf = addons[item.itemid].surf
local pb = getPlayerSlotItem(cid, 8).uid
local pk = addons[item.itemid].pokemon
if getItemAttribute(pb,"poke") ~= pk then
doPlayerSendCancel(cid, "Sorry, you can't use this addon on this poke.")
return false
end
if getItemAttribute(pb,"addon") < 1 then
doRemoveItem(item.uid, 1)
doPlayerSendTextMessage(cid, 27, "Congratulations! Now your pokemon will use the addon.")
doSetItemAttribute(pb,"addon",addon)
doSetItemAttribute(pb,"addonfly",fly)
doSetItemAttribute(pb,"addonride",ride)
doSetItemAttribute(pb,"addonsurf",surf)
return true
end
return true
end
Editado Agosto 25 por KarlKalvin
info
Grupo: Campones
Registrado: 26/04/16
Posts: 90
Reputação: +28
Gênero: Masculino

info
Grupo: Visconde
Registrado: 07/02/12
Posts: 427
Reputação: +112

10 minutos atrás, Bodak Reborn disse:
O seu não vai funcionar no meu porque a base é diferente você fez em um cyan os arquivos são diferentes do dxp que é a minha!
Editado Agosto 25 por KarlKalvin
info
Grupo: Campones
Registrado: 26/04/16
Posts: 90
Reputação: +28
Gênero: Masculino

Agora, KarlKalvin disse:
Funciona na base dxp?
Eu fiz um script de preço no look e um cara com a base DxP disse que funcionou, então presumo que sim.
Sei que é broxante ver o tanto de linhas que tem que adicionar para "instalar" o sistema que eu fiz para TALVEZ funcionar, mas eu acho que funciona sim. ![]()
info
Grupo: Visconde
Registrado: 07/02/12
Posts: 427
Reputação: +112

Eu já li os códigos que você utilizou, é um bom conteúdo mas pra minha base funciona diferente o sistema de Price é uma linha checando uma tabela.. já oque eu preciso já é mais complexo é uma função checando uma tabela antes de checar outra.
Não me ajuda, mas é um bom conteúdo. Rep+ pela iniciativa!
info
Grupo: Herói
Registrado: 14/02/14
Posts: 341
Reputação: +285
Gênero: Masculino
Char no Tibia: Night Wolf

eu não manjo de poketibia, dsculpa.. precisaria refazer toda essa base, o tempo todo ele pede informações q tabelas q possam ser nil, isso gera erros.
exemplo:
local outfit = getCreatureOutfit(cid)
local look = outfit.looktype
vc percebe que se nao tiver cid, a função getCreatureOutfit(cid) vai retornar falso e outfit vai ser falso e aí eu vou tar tentando pegar falso.looktype (oque é um erro já que falso nao é uma tabela.)
É esse erro q tá acontecendo contigo, vc precisa ir na lib e procurar as funções q tão dando erro e verificar se existe a tabela antes de vc pedir as informações dela.
info
Grupo: Visconde
Registrado: 07/02/12
Posts: 427
Reputação: +112

13 minutos atrás, Night Wolf disse:eu não manjo de poketibia, dsculpa.. precisaria refazer toda essa base, o tempo todo ele pede informações q tabelas q possam ser nil, isso gera erros.
exemplo:
local outfit = getCreatureOutfit(cid)
local look = outfit.looktype
vc percebe que se nao tiver cid, a função getCreatureOutfit(cid) vai retornar falso e outfit vai ser falso e aí eu vou tar tentando pegar falso.looktype (oque é um erro já que falso nao é uma tabela.)
É esse erro q tá acontecendo contigo, vc precisa ir na lib e procurar as funções q tão dando erro e verificar se existe a tabela antes de vc pedir as informações dela.
Night... você que não entendeu eu postei as 2 funções do local outfit = getPokemonOutfitToSkill e local speed = getPokemonSpeedToSkill , estão nos 2 primeiros quote toda a função do sistema.
E a tabela não é cid é pokeName
local pokeName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke")
Editado Agosto 26 por KarlKalvin
info
Grupo: Herói
Registrado: 14/02/14
Posts: 341
Reputação: +285
Gênero: Masculino
Char no Tibia: Night Wolf

50 minutos atrás, KarlKalvin disse:
Night... você que não entendeu eu postei as 2 funções do local outfit = getPokemonOutfitToSkill e local speed = getPokemonSpeedToSkill , estão nos 2 primeiros quote toda a função do sistema.
E a tabela não é cid é pokeName
local pokeName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke")
vc que não entendeu amigo, o erro não é nesses scripts, é na lib (lê o erro do console, ele diz em ql arquivo e em ql linha), ele tá falando q foi um erro numa função da lib que ocorreu por causa que vc utilizou essa função de forma inválida no script X (e bota o nome do script). Você postar o script não ajuda em nada, o erro é na função. O restante foi só um exemplo pra tentar te ensinar oque causa o erro, eu sei que é pokename e não cid, foi só um exemplo ![]()
info
Grupo: Visconde
Registrado: 07/02/12
Posts: 427
Reputação: +112

1 minuto atrás, Night Wolf disse:vc que não entendeu amigo, o erro não é nesses scripts, é na lib (lê o erro do console, ele diz em ql arquivo e em ql linha), ele tá falando q foi um erro numa função da lib que ocorreu por causa que vc utilizou essa função de forma inválida no script X (e bota o nome do script). Você postar o script não ajuda em nada, o erro é na função. O restante foi só um exemplo pra tentar te ensinar oque causa o erro, eu sei que é pokename e não cid, foi só um exemplo
Lhe dando essa função, não ajudarei-me a solucionar esse imenso problema? ![]()




info
Grupo: Visconde
Registrado: 07/02/12
Posts: 427
Reputação: +112
Oi
... eu to terminando de add uma parada no meu server mas "empacotei" em uma coisa...
To tentando por addon no meu server mas falta um ultimo passo... que é o fly/ride/surf.
Descobri que essa função tá sendo realizada aqui:
Essa tabela:
Está no configuration.lua ( vou postar só um pedaço dela )
e ela está trabalhando com:
Oque eu quero fazer: porém não tenho um grande conhecimento para editar, só consigo ler
Eu adicionei uma nova tabela no configuration.lua que é essa:
Eu queria que essa função abaixo ela checa-se primeiro a tabela de "addons" antes da tabela flys/rides e se a ordem fly ou ride for numa "0" ela desse continuidade para a outra tabela que no caso é a do flys[pokeName] ou rides[pokeName]...
Estou tentando fazendo essa parada a dias mas eu não consigo programar, só ler
Editado Agosto 25 por KarlKalvin