Ir para conteúdo
  • 0

Como fazer um bau de donate?


Sugismundo

Pergunta

Olá, gostaria de um sistema de baú donate, onde a pessoa faz o donate, e eu como adm entro no game e coloco os pontos(itens) nesse bau, e somente essa pessoa que eu determinei que vai poder retirar esses itens.
Esse baú vai funcionar para todos os player mas somente os que eu determinar os itens que poderão retirar. Desde já agradeço

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0
Agora, Yan18 disse:

Você não entendeu, não estou falando da box, estou falando dos itens que o player tira ao clicar na box, igual eu fiz no script.

Então, os pontos são moedas que vão vir ao clicar na box, apenas 1 tipo de item. Igual golds ou diamantes de outros servers

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, Sugismundo disse:

Então, os pontos são moedas que vão vir ao clicar na box, apenas 1 tipo de item. Igual golds ou diamantes de outros servers

Entendi, então por exemplo, se o player donatar 20 reais ele ganha pontos, que no caso vem 20 moedas ou diamantes, é isso? Então é um item só que muda a quantidade apenas?

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, Yan18 disse:

Entendi, então por exemplo, se o player donatar 20 reais ele ganha pontos, que no caso vem 20 moedas ou diamantes, é isso? Então é um item só que muda a quantidade apenas?

Exato.

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, Sugismundo disse:

Exato.

Se tivesse explicado isso desde o começo, teria sido mais fácil rsrs. Pois, não precisaria de todos esses scripts. Do jeito que você quer é mais fácil do que eu pensei.

 

Eu pensei em falar para você excluir os scripts que tinha feito, mas deixa caso queira usar em outra coisa, como loteria, quests ou recompensa por exemplo.

 

Vá em Data/Talkactions/Scripts e crie o arquivo chamado add_points.lua e adicione o código:

 

local item_id = 2160 -- ID DOS POINTS
local effect = false -- SE QUISER COM EFEITO AO RECEBER O ITEM MUDE PARA TRUE
local effect_id = 27 -- EFEITO DO ID AO RECEBER O ITEM
local level_acess = 4 -- ACESSO DO PLAYER (PLAYER - TUTOR - GM - CM - ADM), DEIXE 4 OU MAIS PARA STAFF E 6 PARA ADM

function onSay(cid, words, param)
local command = string.explode(param, ",")
local name = string.lower(command[1])

	-- SCRIPT SOMENTE PARA STAFF --
	if getPlayerAccess(cid) < level_acess then
		return true
	end	

    if param == nil or param == "" then
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa informar o nome do player para receber os pontos.")
    
	elseif string.len(param) < 3 then
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa informar um nome válido do player para receber os pontos.")
		
	elseif tonumber(command[2]) == nil or tonumber(command[2]) <= 0 then
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa informar uma quantia válida de pontos.")
	
    else
        if #getPlayersOnline() > 1 then
            for index, player in pairs(getPlayersOnline()) do
			local player_name = string.lower(getCreatureName(player))
		   
				if name == player_name then
					local points = tonumber(command[2])
					local message = ""
					
					if points > 1 then
						message = "Obrigado por ter donatado! Como recompensa, você recebeu " .. points .. " points." -- MENSAGEM QUE O PLAYER VAI RECEBER NO CHAT
					
					elseif points == 1	then
						message = "Obrigado por ter donatado! Como recompensa, você recebeu " .. points .. " point." -- MENSAGEM QUE O PLAYER VAI RECEBER NO CHAT
					end
				
					doPlayerAddItem(player, item_id, points)
					doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE, message)

					-- VERIFICA SE VAI RECEBER EFEITO --
					if effect then
						doSendMagicEffect(getThingPos(player), effect_id)
					end								
					
				return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "O player " .. command[1] .. " recebeu a recompensa.")
				end

				if index == #getPlayersOnline() and name ~= player_name then
					return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O player " .. command[1] .. " não está online.")
				end	
                 
            end
			
        else
           return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Não há jogadores online!")
        end
    end
     
end

 

Agora abra o talkactions.xml e adicione a tag:

<talkaction words="!addpoints" acess="6" event="script" value="add_points.lua"/>

 

Continua via comando (talkaction), e para utilizar, funciona assim, você precisa digitar o comando !addpoints nome do player, quantidade de points:

 

!addpoints Administrador, 50

 

E todas as variáveis estão comentadas, e segue o mesmo padrão do script antigo, porém a mensagem do player está dentro do for, então se quiser mudar está lá. Só mudar o id do item na primeira variável e lembrando que coloquei restrição de acesso, ou seja, somente membros da staff pode usar, no caso deixei nível de acesso 4, então GM, CM e ADM conseguiram usar o comando, se quiser só ADM, mude para 6 a variável level_acess.

 

Eu testei aqui e está funcionando certinho, só não esqueça de comentar a tag xml da talkaction antiga se não for usar, pois esqueci de fazer verificação de acesso nela e qualquer player consegue usar. E fica seu critério excluir o script da box na pasta Actions também.

Link para o comentário
Compartilhar em outros sites

  • 0
6 minutos atrás, Yan18 disse:

Se tivesse explicado isso desde o começo, teria sido mais fácil rsrs. Pois, não precisaria de todos esses scripts. Do jeito que você quer é mais fácil do que eu pensei.

 

Eu pensei em falar para você excluir os scripts que tinha feito, mas deixa caso queira usar em outra coisa, como loteria, quests ou recompensa por exemplo.

 

Vá em Data/Talkactions/Scripts e crie o arquivo chamado add_points.lua e adicione o código:

 


local item_id = 2160 -- ID DOS POINTS
local effect = false -- SE QUISER COM EFEITO AO RECEBER O ITEM MUDE PARA TRUE
local effect_id = 27 -- EFEITO DO ID AO RECEBER O ITEM
local level_acess = 4 -- ACESSO DO PLAYER (PLAYER - TUTOR - GM - CM - ADM), DEIXE 4 OU MAIS PARA STAFF E 6 PARA ADM

function onSay(cid, words, param)
local command = string.explode(param, ",")
local name = string.lower(command[1])

	-- SCRIPT SOMENTE PARA STAFF --
	if getPlayerAccess(cid) < level_acess then
		return true
	end	

    if param == nil or param == "" then
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa informar o nome do player para receber os pontos.")
    
	elseif string.len(param) < 3 then
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa informar um nome válido do player para receber os pontos.")
		
	elseif tonumber(command[2]) == nil or tonumber(command[2]) <= 0 then
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa informar uma quantia válida de pontos.")
	
    else
        if #getPlayersOnline() > 1 then
            for index, player in pairs(getPlayersOnline()) do
			local player_name = string.lower(getCreatureName(player))
		   
				if name == player_name then
					local points = tonumber(command[2])
					local message = ""
					
					if points > 1 then
						message = "Obrigado por ter donatado! Como recompensa, você recebeu " .. points .. " points." -- MENSAGEM QUE O PLAYER VAI RECEBER NO CHAT
					
					elseif points == 1	then
						message = "Obrigado por ter donatado! Como recompensa, você recebeu " .. points .. " point." -- MENSAGEM QUE O PLAYER VAI RECEBER NO CHAT
					end
				
					doPlayerAddItem(player, item_id, points)
					doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE, message)

					-- VERIFICA SE VAI RECEBER EFEITO --
					if effect then
						doSendMagicEffect(getThingPos(player), effect_id)
					end								
					
				return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "O player " .. command[1] .. " recebeu a recompensa.")
				end

				if index == #getPlayersOnline() and name ~= player_name then
					return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O player " .. command[1] .. " não está online.")
				end	
                 
            end
			
        else
           return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Não há jogadores online!")
        end
    end
     
end

 

Agora abra o talkactions.xml e adicione a tag:


<talkaction words="!addpoints" acess="6" event="script" value="add_points.lua"/>

 

Continua via comando (talkaction), e para utilizar, funciona assim, você precisa digitar o comando !addpoints nome do player, quantidade de points:

 


!addpoints Administrador, 50

 

E todas as variáveis estão comentadas, e segue o mesmo padrão do script antigo, porém a mensagem do player está dentro do for, então se quiser mudar está lá. Só mudar o id do item na primeira variável e lembrando que coloquei restrição de acesso, ou seja, somente membros da staff pode usar, no caso deixei nível de acesso 4, então GM, CM e ADM conseguiram usar o comando, se quiser só ADM, mude para 6 a variável level_acess.

 

Eu testei aqui e está funcionando certinho, só não esqueça de comentar a tag xml da talkaction antiga se não for usar, pois esqueci de fazer verificação de acesso nela e qualquer player consegue usar. E fica seu critério excluir o script da box na pasta Actions também.

Certinho mano, obrigado :D agora deu certo!

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...