Postado Dezembro 30, 2020 4 anos Olá, no meu server eu tenho um NPC que vende 3 items chamados de, "refiner", "great refiner" e "ultra refiner". Como o próprio nome diz ele é usado para refinar armas. Enfim, esse NPC vende os refiner por gold's mas queria que ele vendesse por esmeraldas. (que é obtida no sistema de minério que eu coloquei no server) Vou deixar aqui os preços e o ID de cada item. Refiner ID 8301, Gostaria que o NPC cobrasse o valor de 100 esmeraldas ID 9970 Great Refiner ID 8303, Gostaria que o NPC cobrasse o valor de 125 esmeraldas ID 2147 Ultra Refiner ID 8299, Gostaria que o NPC cobrasse o valor de 150 esmeraldas ID 2144 AGRADEÇO DESDE JÁ
Postado Dezembro 30, 2020 4 anos Autor 13 minutos atrás, So volto tarde disse: Manda o script do npc ai Ele não tem um script! está como default. Spoiler <?xml version="1.0" encoding="UTF-8"?> <npc name="Ferreiro" script="default.lua" walkinterval="0"> <health now="100" max="100"/> <look type="833"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="message_greet" value="Olá, |PLAYERNAME|! Eu vendo Refiner. Diga {Trade}."/> <parameter key="shop_buyable" value="Refiner,8301,5000000;Great Refiner,8303,10000000;Ultra Refiner,8299,15000000"/> </parameters> </npc>
Postado Dezembro 30, 2020 4 anos Spoiler local temple = {x=44,y=151,z=8} 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 storage = 23254 local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local shopWindow = {} local moeda = 2145 local t = { [11499] = {price = 10}, -- [ID DO ITEM QUE SERÁ VENDIDO] = {QUANTO IRÁ CUSTAR} [2495] = {price = 100}, } local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks) if t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then selfSay("você não tem "..t[item].price.." "..getItemNameById(moeda), cid) else doPlayerAddItem(cid, item) selfSay("aqui está seu item!", cid) setPlayerStorageValue(cid, 23254,0) 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()) Encontrei este shopwindow aqui pelo fórum. não sei se é funcional mas vale a pena tentar, caso queira, dá para fazer de outra forma sem ser pelo shopwindow, diretamente pela fala do npc.
Postado Dezembro 30, 2020 4 anos Autor 3 horas atrás, So volto tarde disse: Mostrar conteúdo oculto local temple = {x=44,y=151,z=8} 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 storage = 23254 local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local shopWindow = {} local moeda = 2145 local t = { [11499] = {price = 10}, -- [ID DO ITEM QUE SERÁ VENDIDO] = {QUANTO IRÁ CUSTAR} [2495] = {price = 100}, } local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks) if t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then selfSay("você não tem "..t[item].price.." "..getItemNameById(moeda), cid) else doPlayerAddItem(cid, item) selfSay("aqui está seu item!", cid) setPlayerStorageValue(cid, 23254,0) 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()) Encontrei este shopwindow aqui pelo fórum. não sei se é funcional mas vale a pena tentar, caso queira, dá para fazer de outra forma sem ser pelo shopwindow, diretamente pela fala do npc. testei mas não funcionou ;x
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.