SkyDarkyes 104 Postado Outubro 4, 2013 Share Postado Outubro 4, 2013 Um npc que ao dar X items e X quantidade daquele item,o player ganha x item Link para o comentário Compartilhar em outros sites More sharing options...
0 markindoot 46 Postado Outubro 4, 2013 Share Postado Outubro 4, 2013 (editado) 11366 Id do item que o npc pede15407 Id da recompensa Em npc copie um arquivo e cole issu. Renomeie como: Questitem <?xml version="1.0" encoding="UTF-8"?> <npc name="Questitem" script="data/npc/scripts/questitem.lua" walkinterval="5000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="20" body="100" legs="50" feet="99" corpse="2212"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Bem vindo a minha casa. Em que posso ajudar?"/> <parameter key="message_farewell" value="Volte quando quiser, |PLAYERNAME|!"/> <parameter key="module_keywords" value="1" /> </parameters> </npc> ---------------------------------------------------------------------------------------------------------------------------------------- Crie um arquivo .lua em npc/scripts com nome de questitem 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 talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'kevnan')) and getPlayerStorageValue(cid, 3987) >= 1 then selfSay('Voc\ê j\á vingou a morte de meu filho.', cid) talkState[talkUser] = 0 end if(msgcontains(msg, 'kevnan')) and getPlayerStorageValue(cid, 3987) <= 0 then selfSay('Ah você conhece meu filho Kevnan? Que ótimo conhecer você. A vários dias ele saiu em uma jornada perigosa e até então não tenho notícias dele, você sabe algo a respeito?', cid) elseif(msgcontains(msg, 'botas')) then selfSay('Voc\ê falou botas? Diga {yes} ou {no}', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'mais')) then selfSay('Acredito que quem matou meu filho foi um poderoso monstro que anda aterrorizando a região, há boatos que é um dragão jamais visto antes, se você vingar a morte do meu filho vou te dar algo que pertencia a Kevnan, algo que ele gostava muito, volte aqui quando cumprir sua {missao}.', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if (getPlayerItemCount(cid, 6530) >= 1) then selfSay('Ma.. Mas que triste notícia..... Meu filho querido, mamãe também te ama, que esteja bem onde quer que esteja..Quer saber {mais}?', cid) talkState[talkUser] = 0 else selfSay('De quais botas você está falando?', cid) talkState[talkUser] = 0 end elseif(msgcontains(msg, 'missao') and talkState[talkUser] == 2) then if(getPlayerStorageValue(cid, 3987) <= 0) then if(getPlayerItemCount(cid, 11366) >= 1) then selfSay('Muito obrigado por ter vingado a morte de meu filho Kevnan. Como prometido aqui está a sua recompensa.', cid) doPlayerRemoveItem(cid, 11366, 1) doPlayerAddItem(cid, 15407, 1) setPlayerStorageValue(cid, 3987, 1) talkState[talkUser] = 0 else selfSay('Ainda n\ão vingou a morte do meu filho Kevnan? Lembre-se que eh um dragão jamais visto antes que esta pelas regioes geladas. Voc\ê precisa trazer algo que prove que foi este monstro que matou meu filho', cid) talkState[talkUser] = 0 end else selfSay('Voc\ê j\á vingou a morte do meu filho', cid) talkState[talkUser] = 0 end return TRUE end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Editado Outubro 5, 2013 por omega blueheaven Código formatado em code e spoiler para melhorar a organização Link para o comentário Compartilhar em outros sites More sharing options...
0 SkyDarkyes 104 Postado Outubro 4, 2013 Autor Share Postado Outubro 4, 2013 Tem ctz que funfa? Link para o comentário Compartilhar em outros sites More sharing options...
0 markindoot 46 Postado Outubro 4, 2013 Share Postado Outubro 4, 2013 nao testei se aquiser eu testo assim que voltar da aula, 20:00 ou 20:30 =D Link para o comentário Compartilhar em outros sites More sharing options...
0 SkyDarkyes 104 Postado Outubro 5, 2013 Autor Share Postado Outubro 5, 2013 @up Link para o comentário Compartilhar em outros sites More sharing options...
0 kttallan 318 Postado Outubro 5, 2013 Share Postado Outubro 5, 2013 Ta funfando direitinho esse npc... Link para o comentário Compartilhar em outros sites More sharing options...
0 SkyDarkyes 104 Postado Outubro 5, 2013 Autor Share Postado Outubro 5, 2013 (editado) Man,isso ai nem serve,tem muitas falas desnecessarias Queria uma apenas 19:46 Silvera'th [19]: hi NPC: Hey Silvera'th! Want to have the pride of serving your village?mission 19:46 Silvera'th [19]: mission NPC: The Mission Securiry Seal Quest mission involves the safety of the village, I need you to retrieve the seals that akatsuki stole the village I'll reciprocate with a Madara Legs.. 19:46 Silvera'th [19]: Securiry Seal Quest Np: These stamps 500 security seal you'll find in Akatsuki Bandits, go get it, ok? 19:46 Silvera'th [19]: yes NPC: You dont have any items to this mission. Editado Outubro 5, 2013 por SkyDarkyes Link para o comentário Compartilhar em outros sites More sharing options...
0 Roksas 846 Postado Outubro 5, 2013 Share Postado Outubro 5, 2013 (editado) #SkyDarkyes, pelo amor de deus né, sem dar UP rsrs. ~~ Vamos tentar assim: Vá em data/npc, crie um arquivo chamado Roksas.xml e adicione dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Roksas" script="mission_r.lua" walkinterval="0" floorchange="0"> <health now="2000" max="2000"/> <look type="264" head="114" body="119" legs="0" feet="0" corpse="2212"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. I can make some change to it, say {change} or {mission}."/> </parameters> </npc> Em data/npc/scripts, crie outro arquivo, mas com o nome de mission_r.lua e adicione dentro: 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 talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local item_gain = 2424 -- reward id local item_need = 1199 -- need item id local item_qnt = 5222 -- item_need amount if(msgcontains(msg, 'mission') or msgcontains(msg, 'change')) then selfSay('Mission {Securiry Seal Quest} mission involves the safety of the village, I need you to retrieve the seals that akatsuki stole the village I will reciprocate with a Madara Legs...', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'security seal quest') and talkState[talkUser] == 1) then if getPlayerStorageValue(cid, 20069) >= 1 then selfSay('Please do not insist, you have done this quest recently.', cid) talkState[talkUser] = 0 return true end selfSay('These stamps 500 security seal you will find in Akatsuki Bandits, go get it, ok?', cid) talkState[talkUser] = 2 return true end if(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if getPlayerItemCount(cid, item_need) < 500 then selfSay('You are trying to trick me young man? You do not have the '..getItemNameById(item_need)..'.', cid) talkState[talkUser] = 0 return true end selfSay('Congratulations young warrior, you managed to finish this mission, go in peace.', cid) talkState[talkUser] = 0 setPlayerStorageValue(cid, 20069, 1) doPlayerAddItem(cid, item_gain, item_qnt) return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) #GoodLuck. Editado Outubro 5, 2013 por Roksas Link para o comentário Compartilhar em outros sites More sharing options...
0 SkyDarkyes 104 Postado Outubro 5, 2013 Autor Share Postado Outubro 5, 2013 Erro : 'end' expected (to close 'function' at line 11) near '(eof)' Link para o comentário Compartilhar em outros sites More sharing options...
0 Roksas 846 Postado Outubro 5, 2013 Share Postado Outubro 5, 2013 Perdão rsrs, #editado. Link para o comentário Compartilhar em outros sites More sharing options...
0 Zaruss 17 Postado Outubro 5, 2013 Share Postado Outubro 5, 2013 (editado) Retirado roksas arrumou ja. Editado Outubro 5, 2013 por Zaruss Link para o comentário Compartilhar em outros sites More sharing options...
0 SkyDarkyes 104 Postado Outubro 5, 2013 Autor Share Postado Outubro 5, 2013 Eu falo Securiry Seal Quest e faz nada Link para o comentário Compartilhar em outros sites More sharing options...
0 Zaruss 17 Postado Outubro 5, 2013 Share Postado Outubro 5, 2013 (editado) 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 talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local item_gain = 2424 -- reward id local item_need = 1199 -- need item id local item_qnt = 5222 -- item_need amount if(msgcontains(msg, 'mission') or msgcontains(msg, 'change')) then selfSay('Mission {Securiry Seal Quest} mission involves the safety of the village, I need you to retrieve the seals that akatsuki stole the village I will reciprocate with a Madara Legs...', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'securiry seal quest') and talkState[talkUser] == 1) then if getPlayerStorageValue(cid, 20069) >= 1 then selfSay('Please do not insist, you have done this quest recently.', cid) talkState[talkUser] = 0 return true end selfSay('These stamps 500 security seal you will find in Akatsuki Bandits, go get it, ok?', cid) talkState[talkUser] = 2 return true end if(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if getPlayerItemCount(cid, item_need) < 500 then selfSay('You are trying to trick me young man? You do not have the '..getItemNameById(item_need)..'.', cid) talkState[talkUser] = 0 return true end selfSay('Congratulations young warrior, you managed to finish this mission, go in peace.', cid) talkState[talkUser] = 0 setPlayerStorageValue(cid, 20069, 1) doPlayerAddItem(cid, item_gain, item_qnt) return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Editado Outubro 5, 2013 por Zaruss Link para o comentário Compartilhar em outros sites More sharing options...
0 SkyDarkyes 104 Postado Outubro 5, 2013 Autor Share Postado Outubro 5, 2013 Mesmo eu tendo os items,o npc fala que eu n tenho Link para o comentário Compartilhar em outros sites More sharing options...
0 Zaruss 17 Postado Outubro 6, 2013 Share Postado Outubro 6, 2013 (editado) vc modificou isso? local item_gain = 2424 -- id do item que ira ganhar local item_need = 1199 -- id do item que precisa local item_qnt = 5222 -- quantidade que ira ganha eu acho e quando vc testou vc tinha 500 do item 1199??? Editado Outubro 6, 2013 por Zaruss Link para o comentário Compartilhar em outros sites More sharing options...
0 SkyDarkyes 104 Postado Outubro 6, 2013 Autor Share Postado Outubro 6, 2013 Sim local item_gain = 2432 -- reward id local item_need = 2155 -- need item id local item_qnt = 2 -- item_need amount Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
SkyDarkyes 104
Um npc que ao dar X items e X quantidade daquele item,o player ganha x item
Link para o comentário
Compartilhar em outros sites
22 respostass a esta questão
Posts Recomendados