Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

to com um error aqui no guildpoints.lua ..

se alguem poder me ajudar

 

MuC6XW.png

 

Script :

 

  Citar

local config = {


        executeInterval = 24,


        minimumLevel = 20,


        membersNeeded = 1,


        minimumDifferentIps = 1,


        pointAmount = 1


}



local function getValidAccounts(guild)


        local resultId = db.storeQuery('SELECT a.`id` FROM `accounts` a, `guild_membership` m, `players` p WHERE m.`guild_id` = ' ..guild:getId() .. ' AND p.`id` = m.`player_id` AND p.`level` > ' ..  config.minimumLevel .. ' and a.`id` = p.`account_id` AND a.`guild_points_stats` = 0 GROUP BY a.`id`;')


        if resultId == false then


                return {}


        end



        local accounts = {}


        repeat


                table.insert(accounts, result.getDataInt(resultId, 'id'))


        until not result.next(resultId)


        result.free(resultId)



        return accounts


end



function onSay(cid, words, param, channel)


        local player = Player(cid)


        local guild = player:getGuild()


        if not guild or player:getGuildLevel() ~= GUILDLEVEL_LEADER then


                player:getPosition():sendMagicEffect(CONST_ME_POFF)


                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Only guild leader can request points.')


                return false


        end



        local resultId = db.storeQuery('SELECT `last_execute_points` FROM `guilds` WHERE id = ' .. guild:getId())


        if resultId == false then


                player:getPosition():sendMagicEffect(CONST_ME_POFF)


                player:sendCancelMessage('Error while running database query.')


                return false


        end



        local lastExecution = result.getDataInt(resultId, 'last_execute_points')


        result.free(resultId)


        if lastExecution >= os.time() then


                player:getPosition():sendMagicEffect(CONST_ME_POFF)


                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'The command can only be run once every ' ..config.executeInterval .. ' hours.')


                return false


        end



        local members = guild:getMembersOnline()


        for i = #members, 1, -1 do


                if members[i]:getLevel() < config.minimumLevel then


                        table.remove(members, i)


                end


        end



        if #members < config.membersNeeded then


                player:getPosition():sendMagicEffect(CONST_ME_POFF)


                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Only ' .. #members .. ' guild members online, you need ' ..config.membersNeeded .. ' guild members with level ' .. config.minimumLevel .. ' or higher.')


                return false


        end



        local ipDictionary, ipCount = {}, 0


        for i = 1, #members do


                local ip = members[i]:getIp()


                if not ipDictionary[ip] then


                        ipDictionary[ip] = true


                        ipCount = ipCount + 1


                end


        end



        if ipCount < config.minimumDifferentIps then


                player:getPosition():sendMagicEffect(CONST_ME_POFF)


                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Only ' .. ipCount .. ' members are valid, you need ' ..config.minimumDifferentIps .. ' players with different ip addresses.')


                return false


        end



        local validAccounts = getValidAccounts(guild)


        db.query('UPDATE `guilds` SET `last_execute_points` = ' .. (os.time() + config.executeInterval * 3600) .. ' WHERE `guilds`.`id` = ' .. guild:getId() .. ';')


        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, #validAccounts .. ' guild members received points.')


        if #validAccounts > 0 then


                db.query('UPDATE `accounts` SET `guild_points` = `guild_points` + ' .. config.pointAmount .. ', `guild_points_stats` = ' .. os.time() .. ' WHERE `id` IN (' .. table.concat(validAccounts, ',') .. ');')


                for i = 1, #members do


                        local member = members[i]


                        if isInArray(validAccounts, member:getAccountId()) then


                                member:sendTextMessage(MESSAGE_INFO_DESCR, 'You received ' .. config.pointAmount .. ' guild points.')


                        end


                end


        end


        return false


end

Postado

Sem saber a versão do TFS que você usa é impossível te ajudar.

discord.pngDiscord: 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.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo