A funçao é:
doPlayerSetVocation(cid,voc)
Ai o NPC é so faze direitiho.
Bom, testa esse aqui:
--marcryziuslocal 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, 'gladiador')) then
selfSay('voce gostaria de ser promovido a essa vocaçao por 10000 moedas de ouro?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerMoney(cid) >= 10000 and getPlayerVocation(cid) == 4 ) then
if(doPlayerRemoveMoney(cid, 10000) == TRUE) then
doPlayerSetVocation(cid,8)
selfSay('agora voce e um gladiador.', cid)
else
selfSay('Sorry, you don\'t have enough gold.', cid)
end
else
selfSay('Descupe, voce nao e guerreiro ou nao tem dinheiro sulficiente!', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('ate mais.', cid)
end
if(msgcontains(msg, 'elfo')) then
selfSay('voce gostaria de ser promovido a essa vocaçao por 10000 moedas de ouro?', cid)
talkState[talkUser] = 2
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
if(getPlayerMoney(cid) >= 10000 and getPlayerVocation(cid) == 3 ) then
if(doPlayerRemoveMoney(cid, 10000) == TRUE) then
doPlayerSetVocation(cid,7)
selfSay('agora voce e um elfo.', cid)
else
selfSay('Sorry, you don\'t have enough gold.', cid)
end
else
selfSay('Descupe, voce nao e arqueiro ou nao tem dinheiro sulficiente!', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('ate mais.', cid)
end
if(msgcontains(msg, 'mago')) then
selfSay('voce gostaria de ser promovido a essa vocaçao por 10000 moedas de ouro?', cid)
talkState[talkUser] = 3
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
if(getPlayerMoney(cid) >= 10000 and getPlayerVocation(cid) == 2 ) then
if(doPlayerRemoveMoney(cid, 10000) == TRUE) then
doPlayerSetVocation(cid,6)
selfSay('agora voce e um mago.', cid)
else
selfSay('Sorry, you don\'t have enough gold.', cid)
end
else
selfSay('Descupe, voce nao e alquimista ou nao tem dinheiro sulficiente!', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('ate mais.', cid)
end
if(msgcontains(msg, 'bruxo')) then
selfSay('voce gostaria de ser promovido a essa vocaçao por 10000 moedas de ouro?', cid)
talkState[talkUser] = 4
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then
if(getPlayerMoney(cid) >= 10000 and getPlayerVocation(cid) == 1 ) then
if(doPlayerRemoveMoney(cid, 10000) == TRUE) then
doPlayerSetVocation(cid,5)
selfSay('agora voce e um Bruxo.', cid)
else
selfSay('Sorry, you don\'t have enough gold.', cid)
end
else
selfSay('Descupe, voce nao e feiticeiro ou nao tem dinheiro sulficiente!', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('ate mais.', cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
N fui eu quem fez o script, mas axo q eh esse q c qé.


info
Grupo: Campones
Registrado: 30/11/06
Posts: 7
Reputação: 0
Venho aqui mais uma vez pedir a ajuda de vocês pra poder criar um npc q venda uma nova voc no caso a voc vip mas nao tenho nem ideia de como seja eu vi alguns de second promote mas nao funciona.
Me ajudem ai plx !