Postado Novembro 9, 2018 6 anos Alguém conseguiria fazer um NPC que venda alguns itens por Premium Points? Premium Points que eu digo são os pontos que você ganha quando faz uma determinada doação para o servidor, estou atrás desse NPC faz algumas semanas mais não encontrei. Se alguém puder fazer-lo para mim, não só para mim mais para todos que quiser esse NPC. Obrigado desde já, rep+ pra quem ajudar Editado Novembro 9, 2018 6 anos por Phineasz (veja o histórico de edições) Meu Curso sobre Programação para OTServer Programando OTServer Peça o seu script! Entre agora mesmo no grupo Developing Conteúdos: Spoiler • Cidade [8.60] • Cave de Boss • Widget Gesior • Autoloot 100% • [Old Client] Como Hookar Dll • Configurando VPS Windowns • [Solução] Código Caracteres Especiais Discord: Belmont#7352 Não esqueça do REP+
Postado Novembro 10, 2018 6 anos Solução @KotZletY Ele já conseguiu o conteúdo pelo Discord, @VitorSubhi ajudou ele, acho que já podes considerar o tópico como resolvido. Para os que veio aqui atrás do mesmo conteúdo, irei deixar uma versão minha abaixo para TFS 0.3.7/0.4. data/npc/Neil.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Neil" script="neil.lua" walkinterval="2000" skull="green" floorchange="0"> <health now="100" max="100"/> <look type="128" head="0" body="105" legs="105" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|. Eu vendo itens por pontos de doação, diga {trade}."/> </parameters> </npc> data/npc/scripts/neil.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 local items = { {id = 2352, subType = 0, buy = 50, sell = 0, name = 'crystal arrow'}, {id = 8858, subType = 0, buy = 35, sell = 0, name = 'crossbow'} } local onBuy = function(cid, item, subType, amount) local price = 0 for _, v in ipairs(items) do if item == v.id then price = v.buy end end if not doPlayerRemoveMoney(cid, price) then selfSay(('Você não possui {%d pontos}.'):format(price), cid) else doPlayerAddItem(cid, item, amount) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, ('Você recebeu %d %s.'):format(amount, getItemInfo(item).name)) closeShopWindow(cid) end return npcHandler:releaseFocus(cid) end function creatureSayCallback(cid, type, msg) if msg:lower() == 'trade' then openShopWindow(cid, items, onBuy, onSell) end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) para configurar os itens a serem negociados por pontos, é em neil.lua na tabela items : local items = { {id = 2352, subType = 0, buy = 50, sell = 0, name = 'crystal arroww'}, {id = 8858, subType = 0, buy = 35, sell = 0, name = 'ice crossbow'} } Para trocar o tipo de moeda (pontos), edite a linha 21 em : if not doPlayerRemoveMoney(cid, price) then Troque pela função de remover pontos. Abraços. Editado Novembro 10, 2018 6 anos por Lyu (veja o histórico de edições)
Postado Novembro 10, 2018 6 anos Autor @KotZletY obrigado por tentar ajudar, mais como @Lyu disse, o @VitorSubhi me ajudou pelo discord. @Lyu poderia explicar para que serve subType = 0, buy = 50, sell = 0, Meu Curso sobre Programação para OTServer Programando OTServer Peça o seu script! Entre agora mesmo no grupo Developing Conteúdos: Spoiler • Cidade [8.60] • Cave de Boss • Widget Gesior • Autoloot 100% • [Old Client] Como Hookar Dll • Configurando VPS Windowns • [Solução] Código Caracteres Especiais Discord: Belmont#7352 Não esqueça do REP+
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.