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
local price = 1
local vocations = {5,6,7,8}
local level = 100
if(msgcontains(msg, 'promote dois') or msgcontains(msg, 'second promotion')) then
selfSay('Você quer ser promovido por '..price..' gps? {yes} ', cid)
talkState[talkUser] = 1
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
if isInArray(vocations, getPlayerVocation(cid)) then
if getPlayerLevel(cid) >= level then
if doPlayerRemoveMoney(cid,price) == TRUE then
setPlayerPromotionLevel(cid, 2)
selfSay('Parabens! Voce tem sua segunda promocao. ', cid)
talkState[talkUser] = 0
else
selfSay('Você não tem ' .. price .. ' gps para ser promovido', cid)
talkState[talkUser] = 0
end
else
selfSay('Desculpe, você precisa ter level '.. level .. ' ou mais para se promover!', cid)
talkState[talkUser] = 0
end
else
selfSay('Desculpe, mais você não possui a primeira promotion.', cid)
talkState[talkUser] = 0
end
elseif msg == "no" and talkState[talkUser] >= 1 then
selfSay("Then not", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
- Fórum
- OTServ
- Recursos
- Scripting
- NPCs, monsters e raids
- Npc Segunda Promotion (Ajuda)
RA
3
2k
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

02 de fevereiro de 2012 às 20:40
info
Grupo: Campones
Registrado: 01/07/11
Posts: 7
Reputação: 0
Char no Tibia: Kepler

02 de fevereiro de 2012 às 23:45
Resolveu meu problema, cara.
Muito obrigado mesmo!
![]()


info
Grupo: Campones
Registrado: 01/07/11
Posts: 7
Reputação: 0
Char no Tibia: Kepler
Primeiramente, boa tarde a todos.
Meu dilema é o seguinte: Tenho um NPC que da segunda promotion, porém sem restrição de level.
Gostaria de saber o que devo editar nesse script para ele dar a promotion apenas se o personagem tiver no level 100.
Aqui vai o Script:
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 local price = 1 local vocations = {5,6,7,8} if(msgcontains(msg, 'promote dois') or msgcontains(msg, 'second promotion')) then selfSay('Você quer ser promovido por '..price..' gps? {yes} ', cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then if isInArray(vocations, getPlayerVocation(cid)) then if doPlayerRemoveMoney(cid,price) == TRUE then setPlayerPromotionLevel(cid, 2) selfSay('Parabens! Voce tem sua segunda promocao. ', cid) talkState[talkUser] = 0 else selfSay('Você não tem ' .. price .. ' gps para ser promovido', cid) talkState[talkUser] = 0 end else selfSay('Desculpe, mais você não possui a primeira promotion.', cid) talkState[talkUser] = 0 end elseif msg == "no" and talkState[talkUser] >= 1 then selfSay("Then not", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())Desde já agradeço a atenção.