Ir para conteúdo
  • Cadastre-se

(Resolvido)[NPC] Vende itens por pontos depositado


Ir para solução Resolvido por Lyu,

Posts Recomendados

  • Moderador

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 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:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites
  • 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 por Lyu (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Moderador

@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:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo