Postado Outubro 15, 2012 12 anos Cara, tu nao sabe o quanto rodei a net atraz de algo assim, achei coisas meio vagas, sua explicação ta otima, valeu
Postado Agosto 27, 2013 11 anos 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 man me ensina uma coisa ?
Postado Agosto 27, 2013 11 anos Horktons, você reviveu o tópico amigão, o último post é de 2012, preste mais atenção =x Ot Design: https://discord.gg/VgtVRNmCD7
Postado Setembro 22, 2013 11 anos Reviveu e me ajudou. Topico show vou testar agora. Pega no 8.60 não é?
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.