Postado Janeiro 21, 2015 10 anos Olá Galera, quero um Script que o NPC troca tal item por vocaçoes!! Exemplo: >> Hi > Olá PLAYER, se voce quer uma vocação VIP, tu precisa do "Pergaminho"!! >> Pergaminho > Ora ora, voce tem o pergaminho, então escolha sua vocaçao vip: VOCAÇÂO1, VOCAÇÂO2, VOCAÇÂO3, VOCAÇÂO4, VOCAÇÂO5. !! >> VOCAÇÂO3 > Otima escolha, agora voce é VOCAÇÂO3, Ate mais!! ID DO ITEM: 11392 NPC Natsu "O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Postado Janeiro 21, 2015 10 anos Solução local pergaminhoid = 2154 -- Itemid do pergaminho local vocations = { [5] = {9, 10, 11}, [6] = {12, 13, 14}, [7] = {15, 16, 17}, [8] = {17, 15, 10} } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg:lower()) end function onThink() npcHandler:onThink() end local talkState = {} function creatureSayCallback(cid, typeb, msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if(not npcHandler:isFocused(cid)) then if msgcontains(msg, "hi") then talkState[talkUser] = 0 end return true end local voc = vocations[getPlayerVocation(cid)] if voc then if msgcontains(msg, "pergaminho") then if getPlayerItemCount(cid, pergaminhid) > 0 then local str = "" local ret = {} for _, v in pairs(voc) do str = str .. "{".. getVocationInfo(v).name .. "}, " table.insert(ret, getVocationInfo(v).name:lower()) end npcHandler:say("Ora ora, voce tem o pergaminho, então escolha sua vocaçao vip: ".. str:sub(1, #str - 2) .. ".", cid) talkState[talkUser] = ret else npcHandler:say("Você não tem o pergaminho.", cid) end elseif type(talkState[talkUser]) == "table" and isInArray(talkState[talkUser], msg:lower()) then if doPlayerRemoveItem(cid, pergaminhoid, 1) then for _, v in pairs(voc) do if getVocationInfo(v).name:lower() == msg:lower() then doPlayerSetVocation(cid, voc) break end end npcHandler:say("Ótima escolha, agora voce é {".. msg:lower() .. "}, até mais!", cid) talkState[talkUser] = 0 else npcHandler:say("Você não tem o pergaminho.", cid) end end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Editado Janeiro 21, 2015 10 anos por MaXwEllDeN (veja o histórico de edições) -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Postado Janeiro 21, 2015 10 anos Autor Ond coloco isso ai msm? "O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Postado Janeiro 21, 2015 10 anos Ond coloco isso ai msm? Cria um arquivo em data/npc/scripts -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Postado Janeiro 21, 2015 10 anos Autor Ja fiz isso, diz um tutorial ai. Como eu faço um NPC pra falar isso ai. Editado Janeiro 21, 2015 10 anos por Storm Night (veja o histórico de edições) "O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.