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
local vocation = 1 -- Vocação que precisa ter
-- Primeira Vocação local vocationnome1 = 'Master sorcerer' -- Nome da primeira vocação que ira se torna local vocationid1 = 5 -- id da vocação que vai ganha local item1 = 2033 -- primeiro items da primeira vocação local item2 = 5882 -- Segundo items da primeira vocação local qnt1 = 1 -- quantidade do primeiro items local qnt2 = 5 -- quantidade do segundo items -- Segunda Vocação local vocationnome2 = 'Dark wizard' -- Nome da segunda vocação que ira se torna local vocationid2 = 11 -- id da vocação que vai ganha local item1 = 4852 -- primeiro items da segunda vocação local item2 = 2144 -- Segundo items da segunda vocação local qnt1 = 1 -- quantidade do primeiro items local qnt2 = 15 -- quantidade do segundo items -- Terceira Vocação local vocationnome3 = 'Blood Mage' -- Nome da terceira vocação que ira se torna local vocationid3 = 12 -- id da vocação que vai ganha local items1 = 10601 -- primeiro items da terceira vocação local items2 = 5905 -- Segundo items da terceira vocação local qnts1 = 10 -- quantidade do primeiro items local qnts2 = 2 -- quantidade do segundo items
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, 'yes') then if getPlayerVocation(cid) == vocation then selfSay('Você quer ['..vocationnome1..'] ou ['..vocationnome2..'] ou ['..vocationnome3..'].', cid) talkState[talkUser] = 1 else selfSay('Sua vocaçao nao e digna destas promotions, ou voce ja recebeu sua promotion..', cid) end end
if talkState[talkUser] == 1 and msgcontains(msg, ''..vocationnome1..'') then if getPlayerItemCount(cid, item1) >= qnt1 and getPlayerItemCount(cid, item2) >= qnt2 then selfSay('Parabêns você acaba de se tornar '..vocationnome1..'', cid) doPlayerSetVocation(cid, vocationid1) doPlayerRemoveItem(cid, item1, qnt1) doPlayerRemoveItem(cid, item2, qnt2) else selfSay('Você precisa de 1 golden mug e 5 red dragon scales para ganhar a promotion.', cid) end end
if talkState[talkUser] == 1 and msgcontains(msg, ''..vocationnome2..'') then if getPlayerItemCount(cid, item1) >= qnt1 and getPlayerItemCount(cid, item2) >= qnt2 then selfSay('Parabêns você acaba de se tornar '..vocationnome2..'', cid) doPlayerSetVocation(cid, vocationid2) doPlayerRemoveItem(cid, item1, qnt1) doPlayerRemoveItem(cid, item2, qnt2) else selfSay('Você precisa de 1 black stone (loot de black knight), e 15 black pearl para ganhar a promotion.', cid) end end
if talkState[talkUser] == 1 and msgcontains(msg, ''..vocationnome3..'') then if getPlayerItemCount(cid, items1) >= qnts1 and getPlayerItemCount(cid, items2) >= qnts2 then selfSay('Parabêns você acaba de ser torna '..vocationnome3..'', cid) doPlayerSetVocation(cid, vocationid3) doPlayerRemoveItem(cid, items1, qnts1) doPlayerRemoveItem(cid, items2, qnts2) else selfSay('Você precisa de 10 vampire teeth e 2 vampire dust para ganhar a promotion.', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Esse é o script de um npc que muda a vocaçao com 3 opçoes, preciso que façam alguns ajustes nela:
Adicionar uma storage para que só possa escolher uma vocaçao e depois nao possa mudar de volta.
Arrumar a primeira vocaçao que nao esta funcionando (nao da nenhum erro), mesmo tendo os itens ele diz que ainda precisa dos itens em questao, ps: as outras duas estao funcionando normal.
E quando desloga, perde a vocaçao ganha. Conto com a ajuda de voces, Obrigado!
Pergunta
Duuhzinhow 30
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
local vocation = 1 -- Vocação que precisa ter
-- Primeira Vocação
local vocationnome1 = 'Master sorcerer' -- Nome da primeira vocação que ira se torna
local vocationid1 = 5 -- id da vocação que vai ganha
local item1 = 2033 -- primeiro items da primeira vocação
local item2 = 5882 -- Segundo items da primeira vocação
local qnt1 = 1 -- quantidade do primeiro items
local qnt2 = 5 -- quantidade do segundo items
-- Segunda Vocação
local vocationnome2 = 'Dark wizard' -- Nome da segunda vocação que ira se torna
local vocationid2 = 11 -- id da vocação que vai ganha
local item1 = 4852 -- primeiro items da segunda vocação
local item2 = 2144 -- Segundo items da segunda vocação
local qnt1 = 1 -- quantidade do primeiro items
local qnt2 = 15 -- quantidade do segundo items
-- Terceira Vocação
local vocationnome3 = 'Blood Mage' -- Nome da terceira vocação que ira se torna
local vocationid3 = 12 -- id da vocação que vai ganha
local items1 = 10601 -- primeiro items da terceira vocação
local items2 = 5905 -- Segundo items da terceira vocação
local qnts1 = 10 -- quantidade do primeiro items
local qnts2 = 2 -- quantidade do segundo items
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, 'yes') then
if getPlayerVocation(cid) == vocation then
selfSay('Você quer ['..vocationnome1..'] ou ['..vocationnome2..'] ou ['..vocationnome3..'].', cid)
talkState[talkUser] = 1
else
selfSay('Sua vocaçao nao e digna destas promotions, ou voce ja recebeu sua promotion..', cid)
end
end
if talkState[talkUser] == 1 and msgcontains(msg, ''..vocationnome1..'') then
if getPlayerItemCount(cid, item1) >= qnt1 and getPlayerItemCount(cid, item2) >= qnt2 then
selfSay('Parabêns você acaba de se tornar '..vocationnome1..'', cid)
doPlayerSetVocation(cid, vocationid1)
doPlayerRemoveItem(cid, item1, qnt1)
doPlayerRemoveItem(cid, item2, qnt2)
else
selfSay('Você precisa de 1 golden mug e 5 red dragon scales para ganhar a promotion.', cid)
end
end
if talkState[talkUser] == 1 and msgcontains(msg, ''..vocationnome2..'') then
if getPlayerItemCount(cid, item1) >= qnt1 and getPlayerItemCount(cid, item2) >= qnt2 then
selfSay('Parabêns você acaba de se tornar '..vocationnome2..'', cid)
doPlayerSetVocation(cid, vocationid2)
doPlayerRemoveItem(cid, item1, qnt1)
doPlayerRemoveItem(cid, item2, qnt2)
else
selfSay('Você precisa de 1 black stone (loot de black knight), e 15 black pearl para ganhar a promotion.', cid)
end
end
if talkState[talkUser] == 1 and msgcontains(msg, ''..vocationnome3..'') then
if getPlayerItemCount(cid, items1) >= qnts1 and getPlayerItemCount(cid, items2) >= qnts2 then
selfSay('Parabêns você acaba de ser torna '..vocationnome3..'', cid)
doPlayerSetVocation(cid, vocationid3)
doPlayerRemoveItem(cid, items1, qnts1)
doPlayerRemoveItem(cid, items2, qnts2)
else
selfSay('Você precisa de 10 vampire teeth e 2 vampire dust para ganhar a promotion.', cid)
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Esse é o script de um npc que muda a vocaçao com 3 opçoes, preciso que façam alguns ajustes nela:
Adicionar uma storage para que só possa escolher uma vocaçao e depois nao possa mudar de volta.
Arrumar a primeira vocaçao que nao esta funcionando (nao da nenhum erro), mesmo tendo os itens ele diz que ainda precisa dos itens em questao, ps: as outras duas estao funcionando normal.
E quando desloga, perde a vocaçao ganha. Conto com a ajuda de voces, Obrigado!
Editado por DuuhzinhowLink para o comentário
https://xtibia.com/forum/topic/235185-script-e-npc/Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados