Poste a vocation 32
info
Grupo: Visconde
Registrado: 23/02/08
Posts: 273
Reputação: +101
Char no Tibia: Foxx Rookslayer

Você deve setar a promotion ao player ou editar pela database. São as únicas duas formas de mudar a vocation de alguém.
doPlayerSetPromotionLevel(cid, level) getPlayerPromotionLevel(cid)
Tente usar estas funções.
info
Grupo: Lenda
Registrado: 03/10/06
Posts: 2.6k
Reputação: +309
Gênero: Masculino
Char no Tibia: Knight Orion

Coloque, após cada linha onde o NPC muda a vocação, a seguinte linha:
db.executeQuery("UPDATE `players` SET `vocation`= [color=#ff0000][b]NÚMERO[/b][/color] WHERE `id`= " .. getPlayerGUID(cid) .. "; ")
Coloque, após cada linha onde o NPC muda a vocação, a seguinte linha:
db.executeQuery("UPDATE `players` SET `vocation`= [color=#ff0000][b]NÚMERO[/b][/color] WHERE `id`= " .. getPlayerGUID(cid) .. "; ")
To com esse problema no meu servidor tambem, essa linha tem que editala?
ficando assim ? :
db.executeQuery("UPDATE `players` SET `vocation`= aqui a vocation que eu vo alterar WHERE `id`= " .. getPlayerGUID(cid) .. "; ")
assim ?
info
Grupo: Visconde
Registrado: 23/02/08
Posts: 273
Reputação: +101
Char no Tibia: Foxx Rookslayer

Na verdade a vocation sempre vai ser a mesma, oque muda nos OTs mais novos é a promotion level.
Druid = promotion level 0
Elder Druid = promotion level 1
? Druid = promotion level 2
doPlayerSetPromotionLevel(cid, 2)
Na verdade a vocation sempre vai ser a mesma, oque muda nos OTs mais novos é a promotion level.
Druid = promotion level 0
Elder Druid = promotion level 1
? Druid = promotion level 2
doPlayerSetPromotionLevel(cid, 2)
Hum ... e colocando isso em pratica como ficaria esse npc?? nao sei como adcionar
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'vagabundo') or msgcontains(msg, 'vagabundo')) then
selfSay('Deseja virar {Vagabundo} por 10 especial coins?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerItemCount(cid, 11443) >= 1) then
doPlayerRemoveItem(cid, 11443, 1)
doPlayerSetVocation(cid,32)
selfSay('Parabens , Agora você é um Vagabundo.', cid)
else
selfSay('Você não tem {Especial Coins} Suficientes.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'druid') or msgcontains(msg, 'druida')) then
selfSay('Deseja virar {druid} por 10 especial coins?', cid)
talkState[talkUser] = 2
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
if(getPlayerItemCount(cid, 2159) >= 10) then
doPlayerRemoveItem(cid, 2159, 10)
doPlayerSetVocation(cid,2)
selfSay('Vocação trocada com sucesso , Agora você é um Druid.', cid)
else
selfSay('Você não tem {Especial Coins} Suficientes.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'knight') or msgcontains(msg, 'kina')) then
selfSay('Deseja virar {knight} por 10 especial coins?', cid)
talkState[talkUser] = 3
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
if(getPlayerItemCount(cid, 2159) >= 10) then
doPlayerRemoveItem(cid, 2159, 10)
doPlayerSetVocation(cid,4)
selfSay('Vocação trocada com sucesso , Agora você é um Knight.', cid)
else
selfSay('Você não tem {Especial Coins} Suficientes.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'paladin') or msgcontains(msg, 'pala')) then
selfSay('Deseja virar {paladin} por 10 especial coins?', cid)
talkState[talkUser] = 4
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then
if(getPlayerItemCount(cid, 2159) >= 10) then
doPlayerRemoveItem(cid, 2159, 10)
doPlayerSetVocation(cid,3)
selfSay('Vocação trocada com sucesso , Agora você é um Paladin.', cid)
else
selfSay('Você não tem {Especial Coins} Suficientes.', cid)
end
talkState[talkUser] = 0
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
info
Grupo: Visconde
Registrado: 23/02/08
Posts: 273
Reputação: +101
Char no Tibia: Foxx Rookslayer

Voce troca setPlayerVocation por doPlayerSetPromotionLevel
`
Voce troca setPlayerVocation por doPlayerSetPromotionLevel
`
nao deu certo vei troquei e nem siquer alterou a vocacao antes allterava so que quando eu relogava voltava a vocacao inicial
Como eu add issoColoque, após cada linha onde o NPC muda a vocação, a seguinte linha:
db.executeQuery("UPDATE `players` SET `vocation`= [color=#ff0000][b]NÚMERO[/b][/color] WHERE `id`= " .. getPlayerGUID(cid) .. "; ")
Editado Fevereiro 13 por sfdsduhfsuifh
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

faz oque eu sempre fiz,junto com a vocação dá uma storage...
ai quando o player logar checa a storage e dá a voc para o player ![]()
cada vocação com a sua storage claro






info
Grupo: Campones
Registrado: 24/08/09
Posts: 24
Reputação: 0
To com esse problema no npc ele altera a vocação do player mais quando o player desloga e loga novamente volta a vocação inicial... o que devo fazer para resolver isso ??
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'vagabundo') or msgcontains(msg, 'vagabundo')) then
selfSay('Deseja virar {Vagabundo} por 10 especial coins?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerItemCount(cid, 11443) >= 1) then -- item necessario pra mudar de vocação
doPlayerRemoveItem(cid, 11443, 1)
doPlayerSetVocation(cid,32) -- adcionei a vocaçao 32 la nas minhas vocacoes
selfSay('Parabens , Agora você é um Vagabundo.', cid)
else
selfSay('Você não tem {Especial Coins} Suficientes.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'druid') or msgcontains(msg, 'druida')) then
selfSay('Deseja virar {druid} por 10 especial coins?', cid)
talkState[talkUser] = 2
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
if(getPlayerItemCount(cid, 2159) >= 10) then
doPlayerRemoveItem(cid, 2159, 10)
doPlayerSetVocation(cid,2)
selfSay('Vocação trocada com sucesso , Agora você é um Druid.', cid)
else
selfSay('Você não tem {Especial Coins} Suficientes.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'knight') or msgcontains(msg, 'kina')) then
selfSay('Deseja virar {knight} por 10 especial coins?', cid)
talkState[talkUser] = 3
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
if(getPlayerItemCount(cid, 2159) >= 10) then
doPlayerRemoveItem(cid, 2159, 10)
doPlayerSetVocation(cid,4)
selfSay('Vocação trocada com sucesso , Agora você é um Knight.', cid)
else
selfSay('Você não tem {Especial Coins} Suficientes.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'paladin') or msgcontains(msg, 'pala')) then
selfSay('Deseja virar {paladin} por 10 especial coins?', cid)
talkState[talkUser] = 4
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then
if(getPlayerItemCount(cid, 2159) >= 10) then
doPlayerRemoveItem(cid, 2159, 10)
doPlayerSetVocation(cid,3)
selfSay('Vocação trocada com sucesso , Agora você é um Paladin.', cid)
else
selfSay('Você não tem {Especial Coins} Suficientes.', cid)
end
talkState[talkUser] = 0
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Msm eu dando /save quando reloga volta a vocacao de antes ...