Olá pessoal do XTibia. A algum tempo atrás, eu estava com um problema clássico de segunda promoção; felizmente consegui arrumar, e posto agora para quem tinha duvidas.
Este bug acontece quando o jogador tem sua vocação mudada para segunda (ou mais) promoção e então ao sair do jogo e entrar mais uma vez, ele fica sem vocação.
Entao eu achei um jeito de resolver esse bug. Vou mostrar o jeito q eu fiz para trocar o vocação, eu fiz por talkaction mas voces podem fazer pelo que vcs quiserem:
function onSay(cid,words,params)
local vocstatus = getPlayerStorageValue(cid, 1593)
if vocstatus == -1 then
if doPlayerRemoveMoney(cid, 10000) == TRUE then
if getPlayerVocation(cid) >= 5 and getPlayerVocation(cid) <= 8 then
if getPlayerLevel(cid) >= 8 then
doPlayerSetVocation(cid, getPlayerVocation(cid) + 4)
setPlayerStorageValue(cid, 1593, 1)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Congratulations, now you are second promoted.")
else
return doPlayerSendCancel(cid,"You are not strong enought to become a second promoted.")
end
else
return doPlayerSendCancel(cid,"Only first promoteds can become second promoteds.")
end
else
return doPlayerSendCancel(cid,"You dont't have money to promote yourself.")
end
else
return doPlayerSendCancel(cid,"You have already used this talkaction.")
end
end
Agora va em data/creaturescripts/scripts, crie um arquivo lua, nomeie para loginvoc e cole isto nele:
function onLogin(cid)local vocstatus = getPlayerStorageValue(cid, 1593)
if vocstatus == 1 then
doPlayerSetVocation(cid, getPlayerVocation(cid) + 4)
return TRUE
else
return TRUE
end
end
Azul: Selecione o Storage que você quiser (um que ainda não tenha sido usado).
Vermelho: Selecione a quantidade de moedas necessárias.
Laranja: Escolha o level mínimo para executar a talkaction.
Rosa: Selecione a mensagem de sucesso.
Verde: Escolha as mensagens de erro (siga a ordem que eu usei).
Entao é isso, até a próxima.
Edit: Reformulação do script, e melhoramento do mesmo. Script funcionando se os ids das vocações da segunda promoção forem 9,10,11,12.