Postado Janeiro 24, 2015 10 anos O problema é o seguinte, esse npc ai deveria comprar cada ovo por 10k e ele até faz isso, só que quando da trade nele ele compra em dobro, por exemplo se eu coloco pra vender 25 eggs ele vai lá e compra 50, pagando 250k em cada slot da bp. <?xml version="1.0" encoding="UTF-8"?> <npc name="Pet Seller" script="data/npc/scripts/runes.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="80" head="0" body="0" legs="0" feet="0" addons="0"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="shop_sellable" value="Fire pet egg,6542,10000"/> <parameter key="shop_sellable" value="Ice pet egg,6543,10000"/> <parameter key="shop_sellable" value="Energy pet egg,6545,10000"/> <parameter key="shop_sellable" value="Holy pet egg,6541,10000"/> <parameter key="shop_sellable" value="Physical pet egg,2695,10000"/> <parameter key="shop_sellable" value="Terra pet egg,6544,10000"/> </parameters> </npc> runes.xml 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 local shopModule = ShopModule:new() npcHandler:addModule(shopModule) shopModule:addSellableItem({'colloured egg', 'pet egg'}, 6541, 10000, 'colloured egg') shopModule:addSellableItem({'colloured egg', 'pet egg'}, 6542, 10000, 'colloured egg') shopModule:addSellableItem({'colloured egg', 'pet egg'}, 6543, 10000, 'colloured egg') shopModule:addSellableItem({'colloured egg', 'pet egg'}, 6544, 10000, 'colloured egg') shopModule:addSellableItem({'colloured egg', 'pet egg'}, 6545, 10000, 'colloured egg') shopModule:addSellableItem({'colloured egg', 'pet egg'}, 2695, 10000, 'colloured egg') local items = {[1] = 2190, [2] = 2182, [5] = 2190, [6] = 2182} 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, 'first rod') or msgcontains(msg, 'first wand')) then if(isSorcerer(cid) or isDruid(cid)) then if(getPlayerStorageValue(cid, 30002) <= 0) then selfSay('So you ask me for a {' .. getItemNameById(items[getPlayerVocation(cid)]) .. '} to begin your advanture?', cid) talkState[talkUser] = 1 else selfSay('What? I have already gave you one {' .. getItemNameById(items[getPlayerVocation(cid)]) .. '}!', cid) end else selfSay('Sorry, you aren\'t a druid either a sorcerer.', cid) end elseif(msgcontains(msg, 'yes')) then if(talkState[talkUser] == 1) then doPlayerAddItem(cid, items[getPlayerVocation(cid)], 1) selfSay('Here you are young adept, take care yourself.', cid) setPlayerStorageValue(cid, 30002, 1) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser])) then selfSay('Ok then.', cid) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Sim, eu usei um ex-Dark Rodo porque eu não consigo criar um npc do 0.. e talvez até seja esse o motivo de dar esse erro.. alguém por favor poderia me ajudar? obrigado desde já.
Postado Janeiro 24, 2015 10 anos Solução Primeiro você deve criar um arquivo XML em data>npc. Dentro desse aquivo você coloca: <?xml version="1.0" encoding="UTF-8"?> <npc name="Nome do seu NPC" script="data/npc/scripts/default.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> -- Hp do npc <look type="268" head="114" body="101" legs="0" feet="115" addons="1"/> -- Ropa do Npc <parameters> <parameter key="module_shop" value="1"/> <parameter key="message_greet" value="Hello |PLAYERNAME|. I buy eggs. Talk {trade}."/> -- Mensagem do Npc <parameter key="shop_sellable" value="nome do item,id do item,preço do item;nome do item2,id do item2,preço do item2;" /> -- Aqui o npc compra item <parameter key="shop_buyable" value="Aqui"/> -- Aqui é caso você queira que o Npc venda algo para o player. </parameters> </npc> Obs: em "Shop_sellable" eu coloquei até 2 item, mas caso queira por mais é so sair adicionando "nome do item,id do item,preço do item;" Lembre-se de alterar para item que você quer,id do item que vai ser vendido e o preço que será vendido. Agora vá em data>npc>script. Crie um arquivo.lua com o nome de default e coloque dentro dele: 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:addModule(FocusModule:new()) ! Eu te Ajudei? Então solta aquele REP+ !! Meus Tutoriais: [Tutorial] Bug "Temple position is wrong" (MySql) Outros: [Meu Show OFF | Mapa próprio 8.6]
Postado Janeiro 24, 2015 10 anos Autor Arrumei, muito obrigado. Editado Janeiro 24, 2015 10 anos por Murilosky (veja o histórico de edições)
Postado Janeiro 24, 2015 10 anos De nada . Escolha como melhor resposta, para o tópico ficar Resolvido. At+ Eu te Ajudei? Então solta aquele REP+ !! Meus Tutoriais: [Tutorial] Bug "Temple position is wrong" (MySql) Outros: [Meu Show OFF | Mapa próprio 8.6]
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.