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, 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
Em 27/02/2021 em 12:34, Yan18 disse:

Qual a maneira que você vai colocar os pontos no baú para determinado player poder resgatar?

Então, eu iria criar os pontos de acordo com a quantia de donate que o player fez, dai eu iria no bau e colocaria os pontos para ele poder retirar

Link para o comentário
Compartilhar em outros sites

  • 0
Em 01/03/2021 em 01:20, Sugismundo disse:

Então, eu iria criar os pontos de acordo com a quantia de donate que o player fez, dai eu iria no bau e colocaria os pontos para ele poder retirar

E como isso de atribuir os pontos será feito? Você tem um script pronto ou você irá atribuir pelo banco automaticamente? 

 

Você já jogou poketibia? No poketibia, tem as pokémon box, que é um item (como se fosse um presente) que o player ganha ao realizar alguma coisa (ou por sorteio dependendo do ot). Acho que seria interessante usar para essa funcionalidade que você quer, porque desse jeito que você pediu eu acho pior, você vai consumir espaço no mapa atoa para um baú que tem o uso circunstancial dos player e que nem é de quest. Mas se quiser com baú, vamos tentar, mas acho que seria interessante isso de usar box, pois o player já recebe na bag e ele clica no item, ganha o que tiver que ganhar e a box some, aí você poupa espaço no mapa e item na bag.

Link para o comentário
Compartilhar em outros sites

  • 0
3 horas atrás, Yan18 disse:

E como isso de atribuir os pontos será feito? Você tem um script pronto ou você irá atribuir pelo banco automaticamente? 

 

Você já jogou poketibia? No poketibia, tem as pokémon box, que é um item (como se fosse um presente) que o player ganha ao realizar alguma coisa (ou por sorteio dependendo do ot). Acho que seria interessante usar para essa funcionalidade que você quer, porque desse jeito que você pediu eu acho pior, você vai consumir espaço no mapa atoa para um baú que tem o uso circunstancial dos player e que nem é de quest. Mas se quiser com baú, vamos tentar, mas acho que seria interessante isso de usar box, pois o player já recebe na bag e ele clica no item, ganha o que tiver que ganhar e a box some, aí você poupa espaço no mapa e item na bag.

Então amigo, o problema da bag e que caso ela esteja cheia como o player iria receber o item estando off line? e se caso ele tivesse online não ia correr o risco do item cair no chão?

Link para o comentário
Compartilhar em outros sites

  • 0
43 minutos atrás, Sugismundo disse:

Então amigo, o problema da bag e que caso ela esteja cheia como o player iria receber o item estando off line? e se caso ele tivesse online não ia correr o risco do item cair no chão?

Minha resposta depende da pergunta que te fiz e você não respondeu, que é, como essa atribuição de pontos será feita? Manual no banco ou por script? Porque, se a bag do player estiver cheia, ele não vai conseguir receber item ao clicar no baú de qualquer forma. E o player receber item ao invés clicar no baú como falei, é até mais fácil nessa condição de ele estar offline, porque por script você envia diretamente no banco ou no onLogin ele recebe ao logar. Tem várias formas de fazer, mas preciso entender como é essa atribuição de pontos para mentalizar uma forma boa e eficaz para resolver seu problema.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 16/03/2021 em 12:52, Yan18 disse:

Minha resposta depende da pergunta que te fiz e você não respondeu, que é, como essa atribuição de pontos será feita? Manual no banco ou por script? Porque, se a bag do player estiver cheia, ele não vai conseguir receber item ao clicar no baú de qualquer forma. E o player receber item ao invés clicar no baú como falei, é até mais fácil nessa condição de ele estar offline, porque por script você envia diretamente no banco ou no onLogin ele recebe ao logar. Tem várias formas de fazer, mas preciso entender como é essa atribuição de pontos para mentalizar uma forma boa e eficaz para resolver seu problema.

Então, vai ser como um baú de Depot, que a pessoa abre e la dentro ficam os pontos, não vai ser apenas clicar e ja pegar os pontos, a pessoa vai abrir e vai decidir se quer ou não retirar os pontos para não ocorrer de os itens virem a cair no chão. E eu quando receber o donate irei manualmente colocar os pontos para a pessoa no depot dela. Não precisa ser em apenas um depot, pode ser em qualquer 1 da cidade principal.

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, brazvct disse:

Não acha melhor mandar os pontos do kra pro site ai ele decide se resgata ou não?

Não sei se é mais facil dessa forma, eu nunca fiz isso antes então a maneira mais facil que eu encontrei e da forma que estou pedindo. E eu tenho bastante problema para mecher com site.

Link para o comentário
Compartilhar em outros sites

  • 0
15 horas atrás, Sugismundo disse:

Então, vai ser como um baú de Depot, que a pessoa abre e la dentro ficam os pontos, não vai ser apenas clicar e ja pegar os pontos, a pessoa vai abrir e vai decidir se quer ou não retirar os pontos para não ocorrer de os itens virem a cair no chão. E eu quando receber o donate irei manualmente colocar os pontos para a pessoa no depot dela. Não precisa ser em apenas um depot, pode ser em qualquer 1 da cidade principal.

Não vale a pena fazer dessa forma, vai te dar trabalho demais e a chance de dar problema é grande, porque se você esquecer de entregar os pontos será problemático. 

 

Esses pontos são itens ou atributo?

Link para o comentário
Compartilhar em outros sites

  • 0
7 horas atrás, Yan18 disse:

Não vale a pena fazer dessa forma, vai te dar trabalho demais e a chance de dar problema é grande, porque se você esquecer de entregar os pontos será problemático. 

 

Esses pontos são itens ou atributo?

Serão itens, na parte de esquecer de entregar os pontos ta de boa, tenho uma pessoa especifica so para cuidar dessa parte.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 22/03/2021 em 09:20, Sugismundo disse:

Serão itens, na parte de esquecer de entregar os pontos ta de boa, tenho uma pessoa especifica so para cuidar dessa parte.

Se são itens, o melhor jeito é fazer por box igual eu te falei. Você vai gastar espaço no mapa para uma coisa muito específica que não é uma quest, task ou evento. Eu acho que vale a pena fazer por box igual poketibia como comentei. Mas, vai de você! Eu acho que seria bem legal o player receber uma box porque da sensação que ele sempre pode receber um item bom, já por baú da a sensação de receber sempre o mesmo item.

 

Mas, veja como quer e penso uma maneira de te ajudar.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 24/02/2021 em 21:42, Sugismundo disse:
Versão do Servidor: TFS - 0.4
Tipo de Script: actions
Código:
  Mostrar conteúdo oculto


 

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

É bem mais facil voce dar os pontos pro player pelo site, é só aumentar no banco de dados o valor
Ai voce coloca um shop por points e a pessoa pega o que ela quer, resgata quando quer

Ou então coloca um NPC de venda de itens por points dentro do jogo
Que puxa do banco de dados premium_points 

Link para o comentário
Compartilhar em outros sites

  • 0
9 horas atrás, brazvct disse:

É bem mais facil voce dar os pontos pro player pelo site, é só aumentar no banco de dados o valor
Ai voce coloca um shop por points e a pessoa pega o que ela quer, resgata quando quer

Ou então coloca um NPC de venda de itens por points dentro do jogo
Que puxa do banco de dados premium_points 

Então, talvez para entregar os pontos e vender os itens seja mais fácil mesmo mas para configurar para mim acho que e mais difícil, até para fazer as manutenções manuais no site. Só que achei interessante sobre o npc que vende os pontos puxando informação direto da database, teria como eu fazer um npc desse e adcionar 2 comandos? Um para a pessoa conseguir acessar uma janela e ver quantos pontos ela tem, e o outro comando seria que eu ao utilizar jogaria uma quantidade de pontos determinados para a database da accont do cara?

16 horas atrás, Yan18 disse:

Se são itens, o melhor jeito é fazer por box igual eu te falei. Você vai gastar espaço no mapa para uma coisa muito específica que não é uma quest, task ou evento. Eu acho que vale a pena fazer por box igual poketibia como comentei. Mas, vai de você! Eu acho que seria bem legal o player receber uma box porque da sensação que ele sempre pode receber um item bom, já por baú da a sensação de receber sempre o mesmo item.

 

Mas, veja como quer e penso uma maneira de te ajudar.

Achei a ideia do amigo interessante sobre a database amarzenar os pontos. Que a situação de cair os itens não seria mais um problema e ficaria fácil de mim controlar.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 24/03/2021 em 14:45, Sugismundo disse:

Então, talvez para entregar os pontos e vender os itens seja mais fácil mesmo mas para configurar para mim acho que e mais difícil, até para fazer as manutenções manuais no site. Só que achei interessante sobre o npc que vende os pontos puxando informação direto da database, teria como eu fazer um npc desse e adcionar 2 comandos? Um para a pessoa conseguir acessar uma janela e ver quantos pontos ela tem, e o outro comando seria que eu ao utilizar jogaria uma quantidade de pontos determinados para a database da accont do cara?

Achei a ideia do amigo interessante sobre a database amarzenar os pontos. Que a situação de cair os itens não seria mais um problema e ficaria fácil de mim controlar.

Amigo, independente se for por site ou por script via servidor, as informações do jogo e do player vão para o banco. Tudo no jogo é salvo no banco, então de qualquer forma você terá que fazer script. Eu acho mais fácil fazer como falei porque é muito fácil fazer esse script em lua, o player vai receber na bag e não vai ter trabalho de ter que clicar em baú, fora que por ser aleatório (no caso da box), da sempre a sensação do cara ganhar itens bons, por mais que seja itens fixo. E fora que por site você vai ter que mexer com PHP e os sites que já vem nas bases de Open Tibia foram mal feitos e mal estruturado.

 

Mas, veja como quer fazer e vemos um jeito de te ajudar.

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