Postado Junho 18, 2016 8 anos olá galera boa noite gostaria de pedir a vocês se possível , um npc que compre os itens das quest que tem no meu server e que venda outros itens, só que a moeda de compra e venha e diferente e 6527 -- envent coins , moeda que ganha nos eventos. eu gostaria que o npc tivesse o shop , quando o player falar 'trade' aparecesse o shop do lado > da tela como aparece com os outros npc. Agradecido desde ja
Postado Junho 18, 2016 8 anos local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:eek:nCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:eek:nCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:eek:nCreatureSay(cid, type, msg) end function onThink() npcHandler:eek:nThink() 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 shopWindow = {} local moeda = 6527 -- ID certain item local t = { [2195] = {price = 15}, -- [ITEMID TO SELL] = {HOW TO COST} [2493] = {price = 25}, [2361] = {price = 30}, [8851] = {price = 20}, [8925] = {price = 30}, [2640] = {price = 50}, [2494] = {price = 100}, [9932] = {price = 50}, [2472] = {price = 70}, [8931] = {price = 100} } local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks) if t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then selfSay("you dont have"..t[item].price.." "..getItemNameById(moeda), cid) else doPlayerAddItem(cid, item) selfSay("Here your item!", cid) end return true end if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then for var, ret in pairs(t) do table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)}) end openShopWindow(cid, shopWindow, onBuy, onSell) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Junho 18, 2016 8 anos Autor Boa noite mano o npc nao estar comprando os itens nao aparece o shop mas ela nao compra. como faço pra ele vender tbm? mano deu esse erro aki, vc teria como me mandar a outra parte do npc? [18/06/2016 00:56:01] [Error - LuaScriptInterface::loadFile] data/npc/scripts/runes.lua:5: function arguments expected near ':' [18/06/2016 00:56:01] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/runes.lua [18/06/2016 00:56:01] data/npc/scripts/runes.lua:5: function arguments expected near ':' Editado Junho 18, 2016 8 anos por churupetinha (veja o histórico de edições)
Postado Junho 19, 2016 8 anos quak versão do seu server? eu testei e funcionou aqui, me mostra como editou seu npc tem razão, uma code tinha bugado a função. gerando um 'ekk:' duplicado!! aqui está: tradecoins.lua 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 shopWindow = {} local moeda = 6527 -- ID certain item local t = { [2195] = {price = 15}, -- [ITEMID TO SELL] = {HOW TO COST} [2493] = {price = 25}, [2361] = {price = 30}, [8851] = {price = 20}, [8925] = {price = 30}, [2640] = {price = 50}, [2494] = {price = 100}, [9932] = {price = 50}, [2472] = {price = 70}, [8931] = {price = 100} } local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks) if t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then selfSay("you dont have"..t[item].price.." "..getItemNameById(moeda), cid) else doPlayerAddItem(cid, item) selfSay("Here your item!", cid) end return true end if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then for var, ret in pairs(t) do table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)}) end openShopWindow(cid, shopWindow, onBuy, onSell) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Npc Coins.xml <?xml version="1.0" encoding="ISO-8859-1"?> <npc name="Npc Coins" script="data/npc/scripts/tradecoins.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look type="325" head="0" body="114" legs="0" feet="0" addons="3"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|. Eu vendo alguns itens! {trade}"/> </parameters> </npc> Editado Junho 19, 2016 8 anos por Vodkart (veja o histórico de edições) [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
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.