Postado Janeiro 20, 2017 8 anos 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. Discord: vankk #7765 Precisando de ajuda? Entre em contato comigo via Discord. Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.
Postado Janeiro 20, 2017 8 anos Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP. Mostrar conteúdo oculto Congratulations, your content has been approved! Thank you for your contribution, we of Tibia King we are grateful. Your content will help many other users, you received +1 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.