Postado Junho 19, 2012 12 anos Este é um post popular. Olá galera do tibiaking , eu estava sem fazer nada (como sempre) E Resolvi criar uma questzinha que da um Ars mais de RPG no servidor é uma quest simples . Funciona da segunte maneira Eu chego para um NPC e falo Player : Hi NPC : Olá |PlayerName|, Eu Tenho uma missãozinha para voce! Player : Mission NPC: Entregue X Items para Marlon e Ganhe Uma X Recompensa! Player: Yes NPC: Obrigado , Boa sorte com sua jornada Ai o player ganha um item. Ai ele vai no Marlon e fala Player: Hi NPC: Olá |PlayerName|, Está terminando de fazer Uma Missao? Player: Mission NPC: Frederic Mandou Voce me Entregar Esse X Item? Player : Yes NPC: Obrigado Por me trazer esses items ---------------------------------------------- Então galera , maos a Obra Primeiro , Abra a Pasta do OT/Data/NPC/ Copie um arquivo qualquer XML , Renomeie para frederic , e lá coloque <?xml version="1.0" encoding="UTF-8"?> <npc name="Frederic" script="frederic.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="302" head="0" body="112" legs="93" feet="95"/> </npc> Depois abra a pasta Scripts do NPC. copie um arquivo qualquer lua, e renomeie para frederic e edntro dele coloque STORAGE = 100010 -- Não Mecha ITEM = 2160 -- Item a ser adicionado para completar a quest QUANT = 100 -- Quantidade de items a ser adicionado 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) end function onThink() npcHandler:onThink() end function santaNPC(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if (parameters.present == true) then if (getPlayerStorageValue(cid, STORAGE) < 1) then doPlayerAddItem(cid, ITEM, QUANT) setPlayerStorageValue(cid, STORAGE, 1) npcHandler:say('Obrigado e Boa Sorte na sua jornada', cid) else npcHandler:say('Eu ja te dei sua missao.', cid) end end npcHandler:resetNpc() return true end npcHandler:setMessage(MESSAGE_GREET, "Olá |PLAYERNAME|. Eu Tenho uma {mission} para voce.") local noNode = KeywordNode:new({'no'}, santaNPC, {present = false}) local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true}) local node = keywordHandler:addKeyword({'mission'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Menssagem de Missao Entregue'}) node:addChildKeywordNode(yesNode) node:addChildKeywordNode(noNode) npcHandler:addModule(FocusModule:new()) Pronto , o NPC para voce pegar a missao está pronto agora vamos criar o NPC para voce entregar o item e receber seu premio Volte a pasta NPC , copie outro arquivo xml e renomeie para marlon , e dentro dele voce coloca <?xml version="1.0" encoding="UTF-8"?> <npc name="Marlon" script="marlon.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="160" head="0" body="112" legs="93" feet="95"/> </npc> Agora vá de novo a pasta Scripts do NPC e dentro dele , voce copia outro arquivo lua , renomeia para marlon e dentro dele voce coloca STORAGE = 100010 -- Não Mecha ITEM = 2160 -- Item a ser Removido , dado pelo primeiro NPC QUANT = 100 -- Quantidade de item a ser removido dado pelo primeiro npc PREMIO = 2110 -- Premio do NPC PQUANT = 100 -- Quantidade de premio 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) end function onThink() npcHandler:onThink() end function santaNPC(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if (parameters.present == true) then if getPlayerStorageValue(cid,STORAGE) == 1 and getPlayerItemCount(cid,2330) >= 1 then doPlayerRemoveItem(cid,ITEM,QUANT) doPlayerAddItem(cid,PREMIO,PQUANT) setPlayerStorageValue(cid, STORAGE, 2) npcHandler:say('Obrigado', cid) elseif getPlayerStorageValue(cid,STORAGE) >= 2 then npcHandler:say('Voce ja completou essa missao.', cid) elseif getPlayerStorageValue(cid,STORAGE) < 1 then npcHandler:say('Voce nao falou com frederic.', cid) elseif getPlayerItemCount(cid,2330) <= 0 then npcHandler:say('Voce nao tem o item que frederic te deu.', cid) end end npcHandler:resetNpc() return true end npcHandler:setMessage(MESSAGE_GREET, "Olá |PLAYERNAME|. Diga {mission} para prosseguir essa missao.") local noNode = KeywordNode:new({'no'}, santaNPC, {present = false}) local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true}) local node = keywordHandler:addKeyword({'mission'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Frederic mandou voce me entregar as cartas? {yes}'}) node:addChildKeywordNode(yesNode) node:addChildKeywordNode(noNode) npcHandler:addModule(FocusModule:new()) Se voce quizer adicionar para o player dar como premio , EXP , basta voce adicionar doPlayerAddExp(cid,30000) No lugar de 30000 , voce edita a quantidade de exp a ser adiiconada e para voce poe dentro da script voce procura a funçao doPlayerAddItem(cid,PREMIO,PQUANT) e debaixo dele voce adiciona a função de adicionar a exp Qualquer duvida sobre a script só perguntar REP+ se ajudei REP+ , se voce aprovou REP+ , se voce usar em seu servidor Editado Junho 19, 2012 12 anos por tonyplyson (veja o histórico de edições) Clique na imagem e veja nosso TOPICO OFFICIAL
Postado Junho 19, 2012 12 anos Parabens cara, continue assim, rep Ot Design: https://discord.gg/VgtVRNmCD7
Postado Junho 21, 2012 12 anos Olá tony tudo bem? estamos gostando bastante dos seus conteúdos aqui na comunidade, esses npc de missão ficaram excelente, bastante gente faz pedidos sobre npc, e é bom ver alguém começando nesse área. REP+ [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Junho 21, 2012 12 anos Autor Nossa ki grande honra , ser elogiado pelo mestre em lua /o fiquei mt feliz com o seu elogio quase xorei flw hein Clique na imagem e veja nosso TOPICO OFFICIAL
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.