ExonSeren 0 Postado Julho 6, 2009 Share Postado Julho 6, 2009 (editado) Bem eu queria criar um npc pra cada addon por exemplo: um npc chamado "Adolfo" para o addon do citizen (full, ou seja o first e o second). eu tentei so q da erro, tentei pegar de um OT e monta + n sei mecher e talz, alguem poderia me ensinar como eu fasso pra criar os NPC's (de todas as addons)? Edit:Aproveitando o topico eu tenho outra duvida, como eu mudo os iten que o acc manager começa? tipo se for sork começar com wand of vortex e talz, pq no meu OT o cara começa com uma pá e um machadim... vlw Abraços Editado Julho 6, 2009 por ExonSeren Link para o comentário Compartilhar em outros sites More sharing options...
netflat11 0 Postado Julho 6, 2009 Share Postado Julho 6, 2009 (editado) Npc de addon por item: Crie um arquivo em: data/npcs/scripts que chame addoneritem.lua local focus = 0local talk_start = 0 local target = 0 local following = false local attacking = false function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Good bye then.') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) if (msgcontains(msg, 'hi') and focus == 0) and getDistanceToCreature(cid) < 4 then selfSay('Ola ' .. creatureGetName(cid) .. '! Eu tenho todos os addons é só falar o nome da roupa e primeiro pro addon 1 e segundo pro addon 2 exemplo: warrior primeiro...Aviso: Nao vendo addon de summoner Female por ela nao ter a roupa!!!') focus = cid talk_start = os.clock() elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then selfSay('Desculpe-me, ' .. creatureGetName(cid) .. '! Falo com voce em um minuto.') -- Citizen elseif msgcontains(msg, 'citizen primeiro') then selfSay('Voce tem as 100 Chiken Feathers necessarias para conseguir o addon?') talk_state = 1 talk_start = os.clock() elseif talk_state == 1 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5890) == 100 then doPlayerRemoveItem(cid,5890,100) doPlayerAddAddon(cid, 136, 1) doPlayerAddAddon(cid, 128, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'citizen segundo') then selfSay('Você tem os 100 minotaur leather necessarios para conseguir o addon?') talk_state = 2 talk_start = os.clock() elseif talk_state == 1 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5878) == 100 then doPlayerRemoveItem(cid,5878,100) doPlayerAddAddon(cid, 136, 2) doPlayerAddAddon(cid, 128, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Mage elseif msgcontains(msg, 'mage primeiro') then selfSay('Você tem as 100 Holy Orchid necessarias para conseguir o addon?') talk_state = 3 talk_start = os.clock() elseif talk_state == 3 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5922) == 100 then doPlayerRemoveItem(cid,5922,100) doPlayerAddAddon(cid, 130, 1) doPlayerAddAddon(cid, 138, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'mage segundo') then selfSay('Você tem os 100 ape fur necessario para conseguir o addon?') talk_state = 4 talk_start = os.clock() elseif talk_state == 4 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5883) == 100 then doPlayerRemoveItem(cid,5883,100) doPlayerAddAddon(cid, 130, 2) doPlayerAddAddon(cid, 138, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Hunter elseif msgcontains(msg, 'hunter primeiro') then selfSay('Você tem as 100 honeycombs necessarias para conseguir o addon?') talk_state = 5 talk_start = os.clock() elseif talk_state == 5 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5902) == 100 then doPlayerRemoveItem(cid,5902,100) doPlayerAddAddon(cid, 129, 1) doPlayerAddAddon(cid, 137, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'hunter segundo') then selfSay('Você tem a Sniper Gloves necessaria para conseguir o addon?') talk_state = 6 talk_start = os.clock() elseif talk_state == 6 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5875) == 1 then doPlayerRemoveItem(cid,5875,1) doPlayerAddAddon(cid, 129, 2) doPlayerAddAddon(cid, 137, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Knight elseif msgcontains(msg, 'knight primeiro') then selfSay('Você tem os 100 Iron Ores necessarios para conseguir o addon?') talk_state = 7 talk_start = os.clock() elseif talk_state == 7 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5880) == 100 then doPlayerRemoveItem(cid,5880,100) doPlayerAddAddon(cid, 131, 1) doPlayerAddAddon(cid, 139, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'knight segundo') then selfSay('Você tem os 100 demon horn necessarios para conseguir o addon?') talk_state = 8 talk_start = os.clock() elseif talk_state == 8 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5954) == 100 then doPlayerRemoveItem(cid,5954,100) doPlayerAddAddon(cid, 131, 2) doPlayerAddAddon(cid, 139, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Wizard elseif msgcontains(msg, 'wizard primeiro') then selfSay('Você tem os 100 Green Dragon Scale necessario para conseguir o addon?') talk_state = 9 talk_start = os.clock() elseif talk_state == 9 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5920) == 100 then doPlayerRemoveItem(cid,5920,100) doPlayerAddAddon(cid, 145, 1) doPlayerAddAddon(cid, 149, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'wizard segundo') then selfSay('Você tem os 50 Holy Orchids necessarios para conseguir o addon?') talk_state = 10 talk_start = os.clock() elseif talk_state == 10 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5922) == 50 then doPlayerRemoveItem(cid,5922,50) doPlayerAddAddon(cid, 145, 2) doPlayerAddAddon(cid, 149, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Warrior elseif msgcontains(msg, 'warrior primeiro') then selfSay('Você tem as 50 Turtle Shells necessarias para conseguir o addon?') talk_state = 11 talk_start = os.clock() elseif talk_state == 11 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5899) == 50 then doPlayerRemoveItem(cid,5899,50) doPlayerAddAddon(cid, 134, 1) doPlayerAddAddon(cid, 142, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'warrior segundo') then selfSay('Você tem os 50 Ape Fur necessarios para conseguir o addon?') talk_state = 12 talk_start = os.clock() elseif talk_state == 12 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5877) == 50 then doPlayerRemoveItem(cid,5877,50) doPlayerAddAddon(cid, 134, 2) doPlayerAddAddon(cid, 142, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Summoner elseif msgcontains(msg, 'summoner primeiro') then selfSay('Você tem os 50 Green Dragon Leather necessarios para conseguir o addon?') talk_state = 13 talk_start = os.clock() elseif talk_state == 13 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5877) == 50 then doPlayerRemoveItem(cid,5877,50) doPlayerAddAddon(cid, 133, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'summoner segundo') then selfSay('Você tem os 200 bat wings necessarios para conseguir o addon?') talk_state = 14 talk_start = os.clock() elseif talk_state == 14 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5894) == 200 then doPlayerRemoveItem(cid,5894,200) doPlayerAddAddon(cid, 133, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Oriental elseif msgcontains(msg, 'oriental primeiro') then selfSay('Você tem os 100 Giant Spider Silk para conseguir o addon?') talk_state = 15 talk_start = os.clock() elseif talk_state == 15 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5879) == 100 then doPlayerRemoveItem(cid,5879,100) doPlayerAddAddon(cid, 146, 1) doPlayerAddAddon(cid, 150, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'oriental segundo') then selfSay('Você tem os 100 Blue Piece Of Cloth necessarios para conseguir o addon?') talk_state = 16 talk_start = os.clock() elseif talk_state == 16 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5912) == 100 then doPlayerRemoveItem(cid,5912,100) doPlayerAddAddon(cid, 146, 2) doPlayerAddAddon(cid, 150, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Druid elseif msgcontains(msg, 'druid primeiro') then selfSay('Você tem as 100 Wolf Paws necessarias para conseguir o addon?') talk_state = 17 talk_start = os.clock() elseif talk_state == 17 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5897) == 100 then doPlayerRemoveItem(cid,5897,100) doPlayerAddAddon(cid, 144, 1) doPlayerAddAddon(cid, 148, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'druid segundo') then selfSay('Você tem os 100 Demon Dust necessarios para conseguir o addon?') talk_state = 18 talk_start = os.clock() elseif talk_state == 18 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5906) == 100 then doPlayerRemoveItem(cid,5906,100) doPlayerAddAddon(cid, 144, 2) doPlayerAddAddon(cid, 148, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Barbarian elseif msgcontains(msg, 'barbarian primeiro') then selfSay('Você tem os 100 Giant Spider Silks necessarios para conseguir o addon?') talk_state = 19 talk_start = os.clock() elseif talk_state == 19 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5879) == 100 then doPlayerRemoveItem(cid,5879,100) doPlayerAddAddon(cid, 143, 1) doPlayerAddAddon(cid, 147, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'druid segundo') then selfSay('Você tem os 50 Green Piece of Cloth necessarios para conseguir o addon?') talk_state = 20 talk_start = os.clock() elseif talk_state == 20 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5910) == 50 then doPlayerRemoveItem(cid,5910,50) doPlayerAddAddon(cid, 143, 2) doPlayerAddAddon(cid, 147, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Nobleman elseif msgcontains(msg, 'nobleman primeiro') then selfSay('Você tem os 100 brown piece of cloth necessarios para conseguir o addon?') talk_state = 21 talk_start = os.clock() elseif talk_state == 21 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5913) == 100 then doPlayerRemoveItem(cid,5913,100) doPlayerAddAddon(cid, 132, 1) doPlayerAddAddon(cid, 140, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'nobleman segundo') then selfSay('Você tem os 100 demonic essence necessarios para conseguir o addon?') talk_state = 22 talk_start = os.clock() elseif talk_state == 22 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,6500) == 100 then doPlayerRemoveItem(cid,6500,100) doPlayerAddAddon(cid, 132, 2) doPlayerAddAddon(cid, 140, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Assassin elseif msgcontains(msg, 'assassin primeiro') then selfSay('Você tem os 100 Red Dragon Leather necessarios para conseguir o addon?') talk_state = 23 talk_start = os.clock() elseif talk_state == 23 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5948) == 100 then doPlayerRemoveItem(cid,5948,100) doPlayerAddAddon(cid, 152, 1) doPlayerAddAddon(cid, 156, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'assassin segundo') then selfSay('Você tem os 100 White Pieces of Cloth necessarios para conseguir o addon?') talk_state = 24 talk_start = os.clock() elseif talk_state == 24 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5909) == 100 then doPlayerRemoveItem(cid,5909,100) doPlayerAddAddon(cid, 152, 2) doPlayerAddAddon(cid, 156, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end --Beggar elseif msgcontains(msg, 'beggar primeiro') then selfSay('Você tem as 100 Minotaur Leather necessarias para conseguir o addon?') talk_state = 25 talk_start = os.clock() elseif talk_state == 25 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5878) == 100 then doPlayerRemoveItem(cid,5878,100) doPlayerAddAddon(cid, 153, 1) doPlayerAddAddon(cid, 157, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'beggar segundo') then selfSay('Você tem os 2000k necessarios para conseguir o addon?') talk_state = 26 talk_start = os.clock() elseif talk_state == 26 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,2160) == 200 then doPlayerRemoveItem(cid,2160,200) doPlayerAddAddon(cid, 153, 2) doPlayerAddAddon(cid, 157, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end --Norseman elseif msgcontains(msg, 'norseman primeiro') then selfSay('Você tem os 100 Red Dragon Scale necessarios para conseguir o addon?') talk_state = 27 talk_start = os.clock() elseif talk_state == 27 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5882) == 100 then doPlayerRemoveItem(cid,5882,100) doPlayerAddAddon(cid, 251, 1) doPlayerAddAddon(cid, 252, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'norseman segundo') then selfSay('Você tem as 100 iron ore necessarias para conseguir o addon?') talk_state = 28 talk_start = os.clock() elseif talk_state == 28 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5880) == 100 then doPlayerRemoveItem(cid,5880,100) doPlayerAddAddon(cid, 251, 2) doPlayerAddAddon(cid, 252, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end --Pirate elseif msgcontains(msg, 'pirate primeiro') then selfSay('Você tem os 100 vampire dust necessarios para conseguir o addon?') talk_state = 29 talk_start = os.clock() elseif talk_state == 29 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,6551) == 100 then doPlayerRemoveItem(cid,6551,100) doPlayerAddAddon(cid, 151, 1) doPlayerAddAddon(cid, 155, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'pirate segundo') then selfSay('Você tem as 100 demon dust necessarias para conseguir o addon?') talk_state = 30 talk_start = os.clock() elseif talk_state == 30 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5906) == 100 then doPlayerRemoveItem(cid,5906,100) doPlayerAddAddon(cid, 151, 2) doPlayerAddAddon(cid, 155, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end --Shaman elseif msgcontains(msg, 'shaman primeiro') then selfSay('Você tem as 50 Behemonth Claw necessarias para conseguir o addon?') talk_state = 31 talk_start = os.clock() elseif talk_state == 31 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5930) == 50 then doPlayerRemoveItem(cid,5930,50) doPlayerAddAddon(cid, 154, 1) doPlayerAddAddon(cid, 158, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'shaman segundo') then selfSay('Você tem as 50 Staffs necessarias para conseguir o addon?') talk_state = 32 talk_start = os.clock() elseif talk_state == 32 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,2401) == 50 then doPlayerRemoveItem(cid,2401,50) doPlayerAddAddon(cid, 154, 2) doPlayerAddAddon(cid, 158, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Nightmare elseif msgcontains(msg, 'nightmare primeiro') then selfSay('Você tem os 50 Demoniac Essences necessarios para conseguir o addon?') talk_state = 33 talk_start = os.clock() elseif talk_state == 33 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,6500) == 50 then doPlayerRemoveItem(cid,6500,50) doPlayerAddAddon(cid, 268, 1) doPlayerAddAddon(cid, 269, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'nightmare segundo') then selfSay('Você tem o 10000k necessario para conseguir o addon?') talk_state = 34 talk_start = os.clock() elseif talk_state == 34 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,2160) == 1000 then doPlayerRemoveItem(cid,2160,1000) doPlayerAddAddon(cid, 268, 2) doPlayerAddAddon(cid, 269, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Brotherwood elseif msgcontains(msg, 'brotherwood primeiro') then selfSay('Você tem os 200 Red Dragon Leather necessarios para conseguir o addon?') talk_state = 35 talk_start = os.clock() elseif talk_state == 35 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5948) == 200 then doPlayerRemoveItem(cid,5948,200) doPlayerAddAddon(cid, 278, 1) doPlayerAddAddon(cid, 279, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'brotherwood segundo') then selfSay('Você tem as 500 chicken feather necessarias para conseguir o addon?') talk_state = 36 talk_start = os.clock() elseif talk_state == 36 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5890) == 500 then doPlayerRemoveItem(cid,5890,500) doPlayerAddAddon(cid, 278, 2) doPlayerAddAddon(cid, 279, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end -- Jesker elseif msgcontains(msg, 'jesker primeiro') then selfSay('Você tem os 100 Yellow Piece of Cloth necessarios para conseguir o addon?') talk_state = 37 talk_start = os.clock() elseif talk_state == 37 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5914) == 100 then doPlayerRemoveItem(cid,5914,100) doPlayerAddAddon(cid, 273, 1) doPlayerAddAddon(cid, 270, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'jesker segundo') then selfSay('Você tem os 100 Green Piece of Cloth necessarios para conseguir o addon?') talk_state = 38 talk_start = os.clock() elseif talk_state == 38 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5910) == 100 then doPlayerRemoveItem(cid,5910,100) doPlayerAddAddon(cid, 273, 2) doPlayerAddAddon(cid, 270, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 5 then selfSay('Ate mais, ' .. creatureGetName(cid) .. '!') focus = 0 talk_start = 0 elseif msgcontains(msg, 'nao') and getDistanceToCreature(cid) < 5 then selfSay('Desculpe, ' .. creatureGetName(cid) .. '! Volte aqui quando tiver os itens nescessarios.') talk_start = os.clock() talk_state = 0 end end function onCreatureChangeOutfit(creature) end function onThink() doNpcSetCreatureFocus(focus) if (os.clock() - talk_start) > 30 then if focus > 0 then selfSay('Proximo...') end focus = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('Ate mais.') focus = 0 end end end Agora vá em data/npcs e crie nomedonpc.lua <?xml version="1.0"?> <npc name="Nome do npc" script="data/npc/scripts/addoneritem.lua" access="5" lookdir="2"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="133" head="114" body="114" legs="114" feet="123" addons="3"/> </npc> NPC addon por dinheiro: Crie no mesmo local no de cima só que com o nome de addongold.lua 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 buyAddons(cid, message, keywords, parameters, node) --TODO: buyAddons function in modules.lua if(not npcHandler:isFocused(cid)) then return false end local addon = parameters.addon local cost = parameters.cost local premium = (parameters.premium ~= nil and parameters.premium) if isPlayerPremiumCallback == nil or (isPlayerPremiumCallback(cid) and premium) then if doPlayerRemoveMoney(cid, cost) == TRUE then doPlayerAddAddons(cid, addon) npcHandler:say('There, you are now able to use all addons!', cid) else npcHandler:say('Sorry, you do not have enough money.', cid) end else npcHandler:say('I only serve customers with premium accounts.', cid) end keywordHandler:moveUp(1) return true end local node1 = keywordHandler:addKeyword({'first addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Do you want to buy the first addons set for 5000 gold coins?'}) node1:addChildKeyword({'yes'}, buyAddons, {addon = 1, cost = 5000, premium = true}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, moveup = 1, text = 'Too expensive, eh?'}) local node2 = keywordHandler:addKeyword({'second addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Would you like to buy the second addons set for 10000 gold coins?'}) node2:addChildKeyword({'yes'}, buyAddons, {addon = 2, cost = 10000, premium = true}) node2:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, moveup = 1, text = 'Too expensive, eh?'}) keywordHandler:addKeyword({'addon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I sell the first addons set for 5000 gold coins and the second addons set for 10000 gold coins.'}) npcHandler:addModule(FocusModule:new()) Agora vá em data/npcs e crie nomedonpc.lua <?xml version="1.0" encoding="UTF-8"?><npc name="Nome do npc" script="data/npc/scripts/addongold.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="134" head="78" body="88" legs="0" feet="88" addons="3"/> </npc> Editado Julho 6, 2009 por Fluffy Link para o comentário Compartilhar em outros sites More sharing options...
ExonSeren 0 Postado Julho 6, 2009 Autor Share Postado Julho 6, 2009 Nuss vlw, mais tipo, acho que vc nao intendeu direito... eu queria era tipo:RUFUS(NOME DO NPC) venda o citizen 1 e o 2 <<<>>> e o RIGK(NOME DO NPC) venda o shaman 1 e o 2 <<>> com iten. Vlw Abraços Link para o comentário Compartilhar em outros sites More sharing options...
lucasjockey 1 Postado Julho 6, 2009 Share Postado Julho 6, 2009 (editado) Você vai ter que dividir o script que o Fluffy te passou entre vários NPC's. Segue ai um exemplo: NPC RUFUS (vendedor de warrior addon): Crie um script na pasta data/npcs/scripts com o nome warradd.lua, dentro do arquivo coloque isso: local focus = 0 local talk_start = 0 local target = 0 local following = false local attacking = false function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Good bye then.') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) if (msgcontains(msg, 'hi') and focus == 0) and getDistanceToCreature(cid) < 4 then selfSay('Ola ' .. creatureGetName(cid) .. '! Eu tenho os addons de warrior, eh soh falar o nome da roupa e primeiro pro addon 1 e segundo pro addon 2, exemplo: warrior primeiro...') focus = cid talk_start = os.clock() elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then selfSay('Desculpe-me, ' .. creatureGetName(cid) .. '! Falo com voce em um minuto.') elseif msgcontains(msg, 'warrior primeiro') then selfSay('Você tem as 50 Turtle Shells necessarias para conseguir o addon?') talk_state = 11 talk_start = os.clock() elseif talk_state == 11 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5899) == 50 then doPlayerRemoveItem(cid,5899,50) doPlayerAddAddon(cid, 134, 1) doPlayerAddAddon(cid, 142, 1) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'warrior segundo') then selfSay('Você tem os 50 Ape Fur necessarios para conseguir o addon?') talk_state = 12 talk_start = os.clock() elseif talk_state == 12 and msgcontains(msg, 'yes') then if getPlayerItemCount(cid,5877) == 50 then doPlayerRemoveItem(cid,5877,50) doPlayerAddAddon(cid, 134, 2) doPlayerAddAddon(cid, 142, 2) selfSay('Parabens !!! Voce Adiquiriu um novo addon.') talk_state = 0 talk_start = os.clock() else selfSay('Desculpe Você nao tem o necessario para esse addon.') talk_state = 0 talk_start = os.clock() end elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 5 then selfSay('Ate mais, ' .. creatureGetName(cid) .. '!') focus = 0 talk_start = 0 elseif msgcontains(msg, 'nao') and getDistanceToCreature(cid) < 5 then selfSay('Desculpe, ' .. creatureGetName(cid) .. '! Volte aqui quando tiver os itens nescessarios.') talk_start = os.clock() talk_state = 0 end end function onCreatureChangeOutfit(creature) end function onThink() doNpcSetCreatureFocus(focus) if (os.clock() - talk_start) > 30 then if focus > 0 then selfSay('Proximo...') end focus = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('Ate mais.') focus = 0 end end end Agora crie um arquivo na pasta data/npcs, chamado rufus.xml, com o seguinte: <?xml version="1.0"?> <npc name="Rufus" script="data/npc/scripts/warradd.lua" access="5" lookdir="2"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="133" head="114" body="114" legs="114" feet="123" addons="3"/> </npc> Agora é só colocar ele no mapa ou sumonar ele com o GM. Editado Julho 6, 2009 por lucasjockey Link para o comentário Compartilhar em outros sites More sharing options...
netflat11 0 Postado Julho 6, 2009 Share Postado Julho 6, 2009 (editado) lucasjockey ja disse tudo Do account manager vá na pasta do seu ot, segue aqui: otserv/data/creaturescript/first items. Dai se edita os ids de female e male. Caso não sabia por, me fale o nome do set por pm que eu passo o script. Por um item para uma vocação sozinha nunca tentei, mais acho que é bem facíl. Editado Julho 6, 2009 por Fluffy Link para o comentário Compartilhar em outros sites More sharing options...
satan666 12 Postado Julho 7, 2009 Share Postado Julho 7, 2009 (editado) lucasjockey ja disse tudo Do account manager vá na pasta do seu ot, segue aqui: otserv/data/creaturescript/first items. Dai se edita os ids de female e male. Caso não sabia por, me fale o nome do set por pm que eu passo o script. Por um item para uma vocação sozinha nunca tentei, mais acho que é bem facíl. o que isso tem a ver com o pedido do cara? tem um aqui acho que e mais facil de editar. 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 npcHandler:setMessage(MESSAGE_GREET, "Greetings |PLAYERNAME|. Will you help me? If you do, I'll reward you with nice addons! Just say {addons} or {help} if you don't know what to do.") function playerBuyAddonNPC(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if (parameters.confirm ~= true) and (parameters.decline ~= true) then if(getPlayerPremiumDays(cid) == 0) and (parameters.premium == true) then npcHandler:say('Sorry, but this addon is only for premium players!', cid) npcHandler:resetNpc() return true end if (getPlayerStorageValue(cid, parameters.storageID) ~= -1) then npcHandler:say('You already have this addon!', cid) npcHandler:resetNpc() return true end local itemsTable = parameters.items local items_list = '' if table.maxn(itemsTable) > 0 then for i = 1, table.maxn(itemsTable) do local item = itemsTable items_list = items_list .. item[2] .. ' ' .. getItemNameById(item[1]) if i ~= table.maxn(itemsTable) then items_list = items_list .. ', ' end end end local text = '' if (parameters.cost > 0) and table.maxn(parameters.items) then text = items_list .. ' and ' .. parameters.cost .. ' gp' elseif (parameters.cost > 0) then text = parameters.cost .. ' gp' elseif table.maxn(parameters.items) then text = items_list end npcHandler:say('Did you bring me ' .. text .. ' for hunting addon?', cid) return true elseif (parameters.confirm == true) then local addonNode = node:getParent() local addoninfo = addonNode:getParameters() local items_number = 0 if table.maxn(addoninfo.items) > 0 then for i = 1, table.maxn(addoninfo.items) do local item = addoninfo.items if (getPlayerItemCount(cid,item[1]) >= item[2]) then items_number = items_number + 1 end end end if(getPlayerMoney(cid) >= addoninfo.cost) and (items_number == table.maxn(addoninfo.items)) then doPlayerRemoveMoney(cid, addoninfo.cost) if table.maxn(addoninfo.items) > 0 then for i = 1, table.maxn(addoninfo.items) do local item = addoninfo.items doPlayerRemoveItem(cid,item[1],item[2]) end end doPlayerAddOutfit(cid, addoninfo.outfit_male, addoninfo.addon) doPlayerAddOutfit(cid, addoninfo.outfit_female, addoninfo.addon) setPlayerStorageValue(cid,addoninfo.storageID,1) npcHandler:say('Here you are.', cid) else npcHandler:say('You do not have needed items or cash!', cid) end npcHandler:resetNpc() return true elseif (parameters.decline == true) then npcHandler:say('Not interested? Maybe other addon?', cid) npcHandler:resetNpc() return true end return false end local noNode = KeywordNode:new({'no'}, playerBuyAddonNPC, {decline = true}) local yesNode = KeywordNode:new({'yes'}, playerBuyAddonNPC, {confirm = true}) -- hunter (done) local outfit_node = keywordHandler:addKeyword({'hunter addon'}, playerBuyAddonNPC, {premium = true, cost = 0, items = {{5947,1}, {5876,100}, {5948,100}, {5891,5}, {5887,1}, {5889,1}, {5888,1}}, outfit_female = 137, addon = 2, outfit_male = 129, addon = 1, storageID = 20048}) outfit_node:addChildKeywordNode(yesNode) outfit_node:addChildKeywordNode(noNode) local outfit_node = keywordHandler:addKeyword({'sniper gloves'}, playerBuyAddonNPC, {premium = true, cost = 0, items = {{5875,1}}, outfit_female = 137, addon = 1, outfit_male = 129, addon = 2, storageID = 20049}) outfit_node:addChildKeywordNode(yesNode) outfit_node:addChildKeywordNode(noNode) keywordHandler:addKeyword({'addons'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can give you hunters addons for items.'}) keywordHandler:addKeyword({'help'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'for you to have that outfit huntings addons you say me hunter addon or sniper gloves what you want?.'}) npcHandler:addModule(FocusModule:new()) e so modificar o que esta em negrito. Editado Julho 7, 2009 por Marcryzius Link para o comentário Compartilhar em outros sites More sharing options...
Fir3element 185 Postado Julho 7, 2009 Share Postado Julho 7, 2009 Marcryzius, O Fluffy respondeu a outra pergunta do cara, Edit:Aproveitando o topico eu tenho outra duvida, como eu mudo os iten que o acc manager começa? tipo se for sork começar com wand of vortex e talz, pq no meu OT o cara começa com uma pá e um machadim... Vou usar esse script Muito mais facíl de editar mesmo. Link para o comentário Compartilhar em outros sites More sharing options...
ExonSeren 0 Postado Julho 7, 2009 Autor Share Postado Julho 7, 2009 (editado) Vlw vlw , funfo tudinho + ta faltando o ADDON DO DEMONHUNTER vlw vlw flw Abraços Editado Julho 10, 2009 por ExonSeren Link para o comentário Compartilhar em outros sites More sharing options...
Khost 0 Postado Julho 14, 2009 Share Postado Julho 14, 2009 Dúvida Sanada??? bota ae para o Moderador poder fexar... Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados