Postado Maio 21, 2017 8 anos Galera alguem poderia mim ajudar com um NPC que venda voc, ID DO COIN: 2145, ID DA VOCAÇAO: 492 Obg.. pela atençao!
Postado Maio 21, 2017 8 anos Vai um npc ai. Cria um arquivo em data/npc/Nome do npc.xml e coloca isso dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Juca" script="juca.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|, se voce quer uma vocação VIP tu precisa do {pergaminho}."/> </parameters> </npc> ---------------------------- Crie um arquivo em data/npc/scripts/Nome do npc.lua e coloca isso dentro: 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()) -------------------------------------- Configurando o npc xml aqui nesse linha você edita a primeira fala do npc <parameter key="message_greet" value="Ola |PLAYERNAME|, se voce quer uma vocação VIP tu precisa do {pergaminho}."/> -------------------------------------- Configurando o npc.lua aqui e caso você mude no xml terá que mudar tbm. if msgcontains(msg, "pergaminho") then AQUI ID DO ITEM>> local pergaminhoid = 2154 AQUI O ID AS VOCAÇOES E O NUMERO DAS VOCAÇOES local vocations = { [5] = {9, 10, 11}, EX: SORCERER, MASTER SORCERER, EPIC SORCERER [6] = {12, 13, 14}, [7] = {15, 16, 17}, [8] = {17, 15, 10} } O NOME E O ID DAS VOCAÇOES VC EDITA NO SEU XML/VOCATIONS Editado Maio 21, 2017 8 anos por brufds (veja o histórico de edições)
Postado Maio 21, 2017 8 anos Autor 1 minuto atrás, brufds disse: Vai um npc ai. Cria um arquivo em data/npc/Nome do npc.xml e coloca isso dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Juca" script="juca.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|, se voce quer uma vocação VIP tu precisa do {pergaminho}."/> </parameters> </npc> Crie um arquivo em data/npc/scripts/Nome do npc.lua e coloca isso dentro: 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()) Configurando o npc xml aqui nesse linha você edita a primeira fala do npc <parameter key="message_greet" value="Ola |PLAYERNAME|, se voce quer uma vocação VIP tu precisa do {pergaminho}."/> Configurando o npc.lua aqui e caso você mude no xml terá que mudar tbm. if msgcontains(msg, "pergaminho") then AQUI ID DO ITEM>> local pergaminhoid = 2154 AQUI O ID AS VOCAÇOES E O NUMERO DAS VOCAÇOES local vocations = { [5] = {9, 10, 11}, EX: SORCERER, MASTER SORCERER, EPIC SORCERER [6] = {12, 13, 14}, [7] = {15, 16, 17}, [8] = {17, 15, 10} } O NOME E O ID DAS VOCAÇOES VC EDITA NO SEU XML/VOCATIONS mas queria um npc que trocasse um certo coin por uma vocaçao! que nesse n tem quantos moedas vip usar! para pega o pergaminho!
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.