Postado Agosto 31, 2014 10 anos Fala pessoal, eu estou com uma dúvida não sei o que está havendo.... Eu editei um item no Ot Item Editor, copiei a sprite e criei uma staff que eu vou mostrar, e criei outros items mas vou mostrar essa staff apenas como exemplo... acontece que quando eu boto para vender no npc... dá um bug e não vende de jeito nenhum!! O item é esse: Mas Vejam o que acontece no NPC, o item aparece com valor e nomes certos! porém quando eu dou um look no item pela caixinha do trade aparece a descrição e o ID do item original que foi usado para criar essa staff!! Viram? como é possivel o NPC reconhecer o item original apenas pela sprite?? porque o ID é outro! o ID do item era 12609 e o que foi editado com mesma sprite é 12626... mas na caixinha do trade aparece o item de id 12609 quando da look! no meu NPC tá assim : <parameter key="module_shop" value="1"/> <parameter key="shop_buyable" value="staff of baiak,12626,5000000;"/> Como que pode aparecer na caixinha do trade o item com ID 12609 ??? Me ajudem pessoal, eu preciso colocar itens editados à venda nesse NPC, e não queria ter que sacrificar items originais para criar os meus.. por isso estou duplicando as sprites... Ajudem ai! eu dou rep+ com certeza! @UP!! Criei o tópico de madrugada, tô dando esse UP pra ver se alguem responde... Me ajudem ai pessoal!! Editado Agosto 31, 2014 10 anos por eric77 (veja o histórico de edições) Gosto de ajudar, e se te ajudei manda aquele REP+ Valeu
Postado Agosto 31, 2014 10 anos Isso acontece porque o ID do iten duplicado vem antes do ID do item original. Pois como tem a mesma sprite, o NPC não detecta apenas o numero do ID, mas também da sprite, onde entra em conflito. Faça um comando por IDS, como: "sell staf original, yes" ou "sell 4 staff original. yes" Bem como este: Arquivo XML: <?xml version="1.0" encoding="UTF-8"?> <npc name="Mad" script="data/npc/scripts/loot.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150"/> <look type="141" head="78" body="86" legs="88" feet="0" addons="3"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="message_greet" value="Ola |PLAYERNAME|. Eu compro alguns loots. Caso não consiga vender algum iten, use o exemplo: {sell 3 tower shield}, {sell 2 warlord sword}, etc."/> <parameter key="shop_sellable" value="royal helmet,2498,20000;warrior helmet,2475,5000;crusader helmet,2497,9000;crown helmet,2491,3000;devil helmet,2462,2000;mystic turban,2663,500;chain helmet,2458,35;iron helmet,2459,30;steel boots,2645,30000;boots of haste,2195,30000;golden boots,2646,100000;magic plate armor,2472,120000;dragon scale mail,2492,60000;demon armor,2494,90000;golden armor,2466,20000;crown armor,2487,9000;knight armor,2476,5000;blue robe,2656,15000;lady armor,2500,2500;plate armor,2463,400;brass armor,2465,200;chain armor,2464,100;golden legs,2470,40000;crown legs,2488,10000;knight legs,2477,5000;plate legs,2647,500;brass legs,2487,100;mastermind shield,2514,40000;demon shield,2520,20000;blessed shield,2523,150000;great shield,2522,100000;vampire shield,2534,20000;medusa shield,2536,15000;amazon shield,2537,4000;crown shield,2519,5000;tower shield,2528,5000;guardian shield,2515,200;beholder shield,2518,1500;dwarven shield,2525,100;magic longsword,2390,200000;warlord sword,2408,140000;magic sword,2400,100000;giant sword,2393,10000;bright sword,2407,6000;ice rapier,2396,4000;fire sword,2392,3000;serpent sword,2409,1500;spike sword,2383,800;two handed sword,2377,400;broad sword,2413,70;short sword,2406,30;sword,2376,25;dragon lance,2414,8000;stonecutter axe,2431,90000;guardian halberd,2427,7500;fire axe,2432,10000;knight axe,2430,2000;double axe,2387,200;halberd,2381,200;battle axe,2378,100;hatchet,2388,20;war hammer,2391,6000;thunder hammer,2421,120000;skull staff,2436,10000;dragon hammer,2434,2000;clerical mace,2423,200;battle hammer,2417,60;mace,2398,30;"/> </parameters> </npc> royal helmet,2498,20000; = Nome que está no itens.xml, id que esta no itens.xml, valor em golds; No script 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 -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! keywordHandler:addKeyword({'helmets'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I buy royal (40k), warrior (6k), crusader (9k), crown (5k), devil (4k), chain (35gp) and iron helmets (30gp), also mystic turbans (500gp).'}) keywordHandler:addKeyword({'boots'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I buy golden boots (100k), steel boots (40k) and boots of haste (40k).'}) keywordHandler:addKeyword({'armors'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I buy golden (30k), crown (20k), knight (5k), lady (7,5k), plate (400gp), brass (200gp) and chain armors (100gp), also mpa (100k), dsm (60k) and blue robes (15k).'}) keywordHandler:addKeyword({'legs'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I buy golden (80k), crown (15k), knight (6k), plate (500gp) and brass legs (100gp).'}) keywordHandler:addKeyword({'shields'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I buy blessed (150k), great (100k), demon (40k), vampire (25k), medusa (8k), amazon (4k), crown (5k), tower (5k), dragon (3k), guardian (2k), beholder (1k), and dwarven shields (100gp), also mms (80k).'}) keywordHandler:addKeyword({'swords'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I buy giant (10k), bright (6k), fire (3k) serpent (1.5k), spike (800gp) and two handed swords (400gp), also ice rapiers (4k), magic longswords (150k), magic swords (90k), warlord swords (100k) broad swords (70gp), short swords (30gp), sabres (25gp) and swords (25gp).'}) keywordHandler:addKeyword({'axes'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I buy fire (10k), guardian halberds (7,5k) knight (2k), double (200gp) and battle axes (100gp), also dragon lances (10k), stonecutters axes (90k), halberds (200gp) and hatchets (20gp).'}) keywordHandler:addKeyword({'clubs'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I buy thunder hammers (90k), war (6k), dragon (2k) and battle hammers (60gp), also skull staffs (10k) and clerical maces (200gp).'}) npcHandler:addModule(FocusModule:new()) Com este script, basta dizer ''sell 'quantidade' 'nome', yes", que o NPC compra qualquer iten com a mesma sprite. É impossivel concertar este erro. Qualquer erro poste aqui que ajudo a resolver. Atenciosamente, Meu servidor: pbOT
Postado Setembro 1, 2014 10 anos Autor Putz... Triste é saber que não tem jeito pra isso, mas eu já estava esperando por isso mesmo pra falar a verdade... Bom já que está confirmado que não tem jeito, só me resta tentar partir para caminhos paralelos, eu não tenho certeza que vou usar teu modelo de npc, ele vende itens como antigamente no tibia, hehe , interessante voltar nos tempos... Enfim, de qualquer maneira tu me ajudou muito, apesar de não resolver meu problema esclareceu minha dúvida e me deu uma alternativa, levou meu Rep+ Obrigado amigo! Gosto de ajudar, e se te ajudei manda aquele REP+ Valeu
Postado Setembro 1, 2014 10 anos Vou fazer o script completo pra você então. no XML você coloca: <?xml version="1.0" encoding="UTF-8"?> <npc name="Mad" script="data/npc/scripts/loot.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150"/> <look type="141" head="78" body="86" legs="88" feet="0" addons="3"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="message_greet" value="Ola |PLAYERNAME|. Eu vendo alguns itens Caso não consiga comprar algum iten, diga {buy staff of baiak}, etc."/> <parameter key="shop_buyable" value="staff of baiak,12609,5000000;"/> </parameters> </npc> E no arquivo lua você cola isto: 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 -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! keywordHandler:addKeyword({'itens'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'COLOQUE OS ITENS QUE O NPC VENDE'}) npcHandler:addModule(FocusModule:new()) Sendo assim, se o player disser: "buy staff of baiak", o NPC vai perguntar "voce quer a staff of baiak por 5kk ?", e é só confirmar, que a compra é feita. Editado Setembro 1, 2014 10 anos por VictorTasquin (veja o histórico de edições) Atenciosamente, Meu servidor: pbOT
Postado Setembro 1, 2014 10 anos Autor Vou fazer o script completo pra você então. no XML você coloca: <?xml version="1.0" encoding="UTF-8"?> <npc name="Mad" script="data/npc/scripts/loot.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150"/> <look type="141" head="78" body="86" legs="88" feet="0" addons="3"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="message_greet" value="Ola |PLAYERNAME|. Eu vendo alguns itens Caso não consiga comprar algum iten, diga {buy staff of baiak}, etc."/> <parameter key="shop_buyable" value="staff of baiak,12609,5000000;"/> </parameters> </npc> E no arquivo lua você cola isto: 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 -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! keywordHandler:addKeyword({'itens'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'COLOQUE OS ITENS QUE O NPC VENDE'}) npcHandler:addModule(FocusModule:new()) Sendo assim, se o player disser: "buy staff of baiak", o NPC vai perguntar "voce quer a staff of baiak por 5kk ?", e é só confirmar, que a compra é feita. Valeu amigo! muito bom mesmo, já que você decidiu ajeitar o script todinho pra mim eu vou colocar no meu server... Só vou adicionar mais items e dar uma modificada na fala, nome e aparência. Meu Obrigado. rep+ Editado Setembro 1, 2014 10 anos por eric77 (veja o histórico de edições) Gosto de ajudar, e se te ajudei manda aquele REP+ Valeu
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.