Ir para conteúdo
Entre para seguir isso  
vankk

[TFS 1.x] Reedem Points

Recommended Posts

vankk    16
vankk

Reedem Points

by vankk

Basicamente esse script é você utilizar essa talkaction, e o jogador resgatar os pontos baseado no código de transação do PagSeguro. Irei explicar as configurações do script no final.

Vá em data/talkactions/scripts e crie um arquivo .lua e coloque o nome de reedem_points.lua após isso, adicione esse código dentro dele;

local config = {
	tableName = 'pagseguro_log', -- nome da tabela em sua database
	estructureTable = 'transacaoid', -- nome da estrutura da tabela
	tablePoints = 'pontos', -- nome da estrutura da tabela do pagseguro que mostra a qntidade de pontos que o jogador recebeu
	pointsEstructure = 'coins', -- nome da tabela de points do seu servidor
}

function onSay(player, words, param)
	local tables = {config.tableName, config.estructureTable, config.pointsEstructure, config.tablePoints}
	for i = 1, #tables do
		if not tables[i] then
			player:sendTextMessage(MESSAGE_EVENT_ORANGE, 'Por favor contate o Administrador do servidor, parece que ele configurou errado o script.')
			return false
		end
	end

	local tmpParam = param
	if not tmpParam then
		player:sendTextMessage(MESSAGE_EVENT_ORANGE, 'Por favor coloque o código de transação do PagSeguro.')
		return false
	end

	local resultId = db.storeQuery(string.format('SELECT * FROM `%s` WHERE `%s` = %s AND `reemded` = 0 ', config.tableName, config.estructureTable, db.escapeString(tmpParam)))
	if not resultId then
		player:sendTextMessage(MESSAGE_EVENT_ORANGE, 'Não existe esse código em nossa database ou então já foi resgatado.')
		return false
	end

	local amountPoints = result.getDataInt(resultId, config.tablePoints)
	result.free(resultId)

    db.query(string.format('UPDATE `%s` SET `reemded` = 1 WHERE `%s` = %s', config.tableName, config.estructureTable, db.escapeString(tmpParam)))
    db.query(string.format('UPDATE `accounts` SET `%s` = `%s` + %d WHERE `id` = %d', config.pointsEstructure, config.pointsEstructure, amountPoints, player:getAccountId()))
    player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Você resgatou com sucesso %d pontos utilizando o código %s.', amountPoints, tmpParam))
	return false
end

Agora vá em data/talkactions/talkactions.xml e adicione essa tag

<talkaction words="!points" separator=" " script="players/reedem_points.lua" />

Execute essa query em seu phpMyAdmin, mas antes de executar leia a explicação!

ALTER TABLE `pagseguro_log` ADD `reemded` INT(1) NOT NULL DEFAULT '1';

Então vamos lá para a explicação, é bem importante que você preste atenção nessa caralha se não vai dar merda.

No script eu adicionei a tabela config, no qual funciona da seguinte maneira:

  • tableName = É o nome da tabela que fica o seu log das transações do PagSeguro
  • estructureTable = É o nome da estrutura que fica dentro do log da transação do pagSeguro no qual guarda o código de transação
  • tablePoints = É o nome da estrutura que fica dentro do log da transaçÃo do pagSeguro no qual guarda quantos pontos o jogador recebeu
  • pointsEstructure = É o nome da estrutura que fica dentro da tabela accounts que guarda os pontos dos jogadores.

Agora que você já sabe o que é o tableName, na query na qual eu falei acima você precisará mudar para o nome da sua tabela do log do PagSeguro.

Por exemplo, caso o nome da sua tabela seja pagseguro_transactions, você muda para a parte pagseguro_log para pagseguro_transactions.

Lembrando que não dou suporte então, caso não entendeu, leia novamente o tópico até entender, porque está de uma maneira bem explicada.

Atenciosamente,

vankk.

Compartilhar este post


Link para o post
Majesty    1755
Majesty

Muito obrigado pela sua contribuição, seu tópico de conteúdo foi aprovado!
Nós do OTServ Brasil agradecemos, seu conteúdo com certeza ajudará a muitos outros. 
Você recebeu +1 REP!

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×