theu1995 12 Postado Abril 12, 2012 Share Postado Abril 12, 2012 alguém poderia postar um NPC de missão em que ele me manda ir buscar 3 itens para ele e ele me retribua com 'Experience'. e a partir dele eu vou fazendo s meus outros. Link para o comentário Compartilhar em outros sites More sharing options...
beddy 118 Postado Abril 12, 2012 Share Postado Abril 12, 2012 NPC XML: <?xml version="1.0" encoding="UTF-8"?> <npc name="Death" script="data/npc/scripts/death.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look type="9" head="114" body="114" legs="91" feet="91" addons="3"/> <parameters> <parameter key="message_greet" value="Irei precisar de voce para uma {quest}. Posso te {pagar} muito bem." /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="hi;pagar" /> <parameter key="keyword_reply1" value="Irei precisar de voce para uma {quest}. Posso te {pagar} muito bem." /> <parameter key="keyword_reply2" value="Nao irei te dizer o que vou lhe dar em troca, mas posso garantir que eh coisa boa. Voce so precisa confiar em mim." /> <parameter key="module_shop" value="1"/> <parameter key="shop_buyable" value="aol,2173,10000"/> <parameter key="shop_sellable" value="aol,2173,5000"/> </parameters> </npc> SCRIPT NPC: 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local crystalid = 9980 local storage = 9980 local getstorage = getPlayerStorageValue(cid, storage) local sorrymessage = "Desculpe, voce nao tem todos os Crystal Of Power necessarios para completar as missoes..." local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'crystal of power') then if getstorage == 6 then npcHandler:say("Voce jah completou a quest", cid) elseif getstorage < 6 then npcHandler:say("Voce tem todos os Crystal of power necessarios?", cid) talkState[talkUser] = 1 end elseif msgcontains(msg, 'quest') then if getstorage < 1 then npcHandler:say("Voce precisa de 1 {crystal of power} para comecar.", cid) elseif getstorage == 1 then npcHandler:say("Voce esta na segunda missao e precisa de mais 5 Crystal of power para continuar.", cid) elseif getstorage == 2 then npcHandler:say("Voce esta na terceira missao e precisa de mais 7 Crystal of power para continuar.", cid) elseif getstorage == 3 then npcHandler:say("Voce esta na quarta missao e precisa de mais 10 Crystal of power para continuar.", cid) elseif getstorage == 4 then npcHandler:say("Voce esta na quinta missao e precisa de mais 15 Crystal of power para continuar.", cid) elseif getstorage == 5 then npcHandler:say("Voce esta na sexta e ultima missao e precisa de mais 50 Crystal of power para continuar.", cid) elseif getstorage == 6 then npcHandler:say("Voce completou todas as missoes.", cid) end elseif msgcontains(msg, 'yes') then if talkState[talkUser] == 1 then if getstorage < 0 then if doPlayerRemoveItem(cid, crystalid, 1) == TRUE then npcHandler:say("Voce jah me deu 1 crystal of power. Agora irei precisar de mais {5}.", cid) setPlayerStorageValue(cid, storage, 1) doPlayerAddExp(cid, 1000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 1) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 1 then if doPlayerRemoveItem(cid, crystalid, 5) == TRUE then npcHandler:say("Voce jah me deu 5 crystal of power. Agora irei precisar de mais {7}.", cid) setPlayerStorageValue(cid, storage, 2) doPlayerAddExp(cid, 5000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 5) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 2 then if doPlayerRemoveItem(cid, crystalid, 7) == TRUE then npcHandler:say("Voce jah me deu 7 crystal of power. Agora irei precisar de mais {10}.", cid) setPlayerStorageValue(cid, storage, 3) doPlayerAddExp(cid, 7000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 7) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 3 then if doPlayerRemoveItem(cid, crystalid, 10) == TRUE then npcHandler:say("Voce jah me deu 10 crystal of power. Agora irei precisar de mais {15}.", cid) setPlayerStorageValue(cid, storage, 4) doPlayerAddExp(cid, 10000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 10) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 4 then if doPlayerRemoveItem(cid, crystalid, 15) == TRUE then npcHandler:say("Voce jah me deu 15 crystal of power. E por ultimo, irei precisar de mais {50}.", cid) setPlayerStorageValue(cid, storage, 5) doPlayerAddExp(cid, 15000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 15) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 5 then if doPlayerRemoveItem(cid, crystalid, 50) == TRUE then npcHandler:say("Parabens HehEhehehehe, voce completou todas as missoes. Irei te dar um {Golden Falcon} e alguma experiencia.", cid) setPlayerStorageValue(cid, storage, 6) doPlayerAddExp(cid, 900000) doPlayerAddItem(cid, 8976, 1) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 50) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end end end elseif(msgcontains(msg, 'no') and talkState[talkUser] == 1) then npcHandler:say("OK, Volte quando estiver pronto.", cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) é um que eu tenho aqui, ve se serve pra tu... Link para o comentário Compartilhar em outros sites More sharing options...
theu1995 12 Postado Abril 12, 2012 Autor Share Postado Abril 12, 2012 (editado) NPC XML: <?xml version="1.0" encoding="UTF-8"?> <npc name="Death" script="data/npc/scripts/death.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look type="9" head="114" body="114" legs="91" feet="91" addons="3"/> <parameters> <parameter key="message_greet" value="Irei precisar de voce para uma {quest}. Posso te {pagar} muito bem." /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="hi;pagar" /> <parameter key="keyword_reply1" value="Irei precisar de voce para uma {quest}. Posso te {pagar} muito bem." /> <parameter key="keyword_reply2" value="Nao irei te dizer o que vou lhe dar em troca, mas posso garantir que eh coisa boa. Voce so precisa confiar em mim." /> <parameter key="module_shop" value="1"/> <parameter key="shop_buyable" value="aol,2173,10000"/> <parameter key="shop_sellable" value="aol,2173,5000"/> </parameters> </npc> SCRIPT NPC: 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local crystalid = 9980 local storage = 9980 local getstorage = getPlayerStorageValue(cid, storage) local sorrymessage = "Desculpe, voce nao tem todos os Crystal Of Power necessarios para completar as missoes..." local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'crystal of power') then if getstorage == 6 then npcHandler:say("Voce jah completou a quest", cid) elseif getstorage < 6 then npcHandler:say("Voce tem todos os Crystal of power necessarios?", cid) talkState[talkUser] = 1 end elseif msgcontains(msg, 'quest') then if getstorage < 1 then npcHandler:say("Voce precisa de 1 {crystal of power} para comecar.", cid) elseif getstorage == 1 then npcHandler:say("Voce esta na segunda missao e precisa de mais 5 Crystal of power para continuar.", cid) elseif getstorage == 2 then npcHandler:say("Voce esta na terceira missao e precisa de mais 7 Crystal of power para continuar.", cid) elseif getstorage == 3 then npcHandler:say("Voce esta na quarta missao e precisa de mais 10 Crystal of power para continuar.", cid) elseif getstorage == 4 then npcHandler:say("Voce esta na quinta missao e precisa de mais 15 Crystal of power para continuar.", cid) elseif getstorage == 5 then npcHandler:say("Voce esta na sexta e ultima missao e precisa de mais 50 Crystal of power para continuar.", cid) elseif getstorage == 6 then npcHandler:say("Voce completou todas as missoes.", cid) end elseif msgcontains(msg, 'yes') then if talkState[talkUser] == 1 then if getstorage < 0 then if doPlayerRemoveItem(cid, crystalid, 1) == TRUE then npcHandler:say("Voce jah me deu 1 crystal of power. Agora irei precisar de mais {5}.", cid) setPlayerStorageValue(cid, storage, 1) doPlayerAddExp(cid, 1000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 1) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 1 then if doPlayerRemoveItem(cid, crystalid, 5) == TRUE then npcHandler:say("Voce jah me deu 5 crystal of power. Agora irei precisar de mais {7}.", cid) setPlayerStorageValue(cid, storage, 2) doPlayerAddExp(cid, 5000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 5) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 2 then if doPlayerRemoveItem(cid, crystalid, 7) == TRUE then npcHandler:say("Voce jah me deu 7 crystal of power. Agora irei precisar de mais {10}.", cid) setPlayerStorageValue(cid, storage, 3) doPlayerAddExp(cid, 7000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 7) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 3 then if doPlayerRemoveItem(cid, crystalid, 10) == TRUE then npcHandler:say("Voce jah me deu 10 crystal of power. Agora irei precisar de mais {15}.", cid) setPlayerStorageValue(cid, storage, 4) doPlayerAddExp(cid, 10000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 10) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 4 then if doPlayerRemoveItem(cid, crystalid, 15) == TRUE then npcHandler:say("Voce jah me deu 15 crystal of power. E por ultimo, irei precisar de mais {50}.", cid) setPlayerStorageValue(cid, storage, 5) doPlayerAddExp(cid, 15000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 15) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 5 then if doPlayerRemoveItem(cid, crystalid, 50) == TRUE then npcHandler:say("Parabens HehEhehehehe, voce completou todas as missoes. Irei te dar um {Golden Falcon} e alguma experiencia.", cid) setPlayerStorageValue(cid, storage, 6) doPlayerAddExp(cid, 900000) doPlayerAddItem(cid, 8976, 1) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 50) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end end end elseif(msgcontains(msg, 'no') and talkState[talkUser] == 1) then npcHandler:say("OK, Volte quando estiver pronto.", cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) é um que eu tenho aqui, ve se serve pra tu... esse nem me server man, tem que ser um de quest bem simples mesmo, em que ele só te manda ir pegar 3 itens e te da uma recompensa e acaba nisso. :x se tiver um assim me manda ae ou alguem que ler o post e tiver, que a partir desse eu vou fazendo outros. (: . Vou procurar direito na seção de NPC etc... , se eu achar qualquer coisa posto aqui e mando fechar tópico. Editado Abril 12, 2012 por MaatheeuusYuurii Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados