Ir para conteúdo

Featured Replies

Postado

 

---------------------

Muito obrigado mano :D

 

 

 

Vai em talkactions/scripts/guildpoints.lua apaga o que tem dentro e troca por isso pra ver:

GuildPointsConfigs =
{
        ExecuteIntervalHours = 24,
        NeedPlayersOnline = 7,
        NeedDiferentIps = 5,
        MinLevel = 70,
        AddPointsForAcc = 19
}


function getGuildPlayersValidAccIDS(GuildID, MinLevel)
        local RanksIDS = {}
        local AccsID = {}
        local ValidAccsID = {}
        Query1 = db.storeQuery("SELECT `id` FROM `guild_ranks` WHERE guild_id = '".. GuildID .."'")
        if(Query1:getID() == -1) then
                return ValidAccsID
        end
        for i = 1, Query1:getRows() do
                table.insert(RanksIDS, Query1:getDataInt("id"))
                Query1:next()
        end
        Query2 = db.storeQuery("SELECT `account_id` FROM `players` WHERE `rank_id` IN (".. table.concat(RanksIDS, ', ') ..") AND `level` >= ".. MinLevel .."")
        if(Query2:getID() == -1) then
                return ValidAccsID
        end
        for i = 1, Query2:getRows() do
                local AccID = Query2:getDataInt("account_id")
                if #AccsID > 0 then
                        for k = 1, #AccsID do
                                if AccID == AccsID[k] then
                                        AddAccList = false
                                        break
                                end
                                AddAccList = true
                        end
                        if AddAccList then
                                table.insert(AccsID, AccID)
                        end
                else
                        table.insert(AccsID, AccID)
                end
                Query2:next()
        end
        Query3 = db.storeQuery("SELECT `id` FROM `accounts` WHERE `guild_points_stats` = 0 AND `id` IN (".. table.concat(AccsID, ', ')..")")
        if(Query3:getID() == -1) then
                return ValidAccsID
        end
        for i = 1, Query3:getRows() do
                local AccID = Query3:getDataInt("id")
                if #ValidAccsID > 0 then
                        for k = 1, #ValidAccsID do
                                if AccID == ValidAccsID[k] then
                                        AddAccList = false
                                        break
                                end
                                AddAccList = true
                        end
                        if AddAccList then
                                table.insert(ValidAccsID, AccID)
                        end
                else
                        table.insert(ValidAccsID, AccID)
                end
                Query3:next()
        end
        return ValidAccsID
end


function onSay(cid, words, param, channel)
        if(getPlayerGuildLevel(cid) == 3) then
                local GuildID = getPlayerGuildId(cid)
                Query = db.storeQuery("SELECT `last_execute_points` FROM `guilds` WHERE id = '".. GuildID .."'")
                if(Query:getID() == -1) then
                        return true
                end
                if Query:getDataInt("last_execute_points") < os.time() then
                        local GuildMembers = {}
                        local GuildMembersOnline = {}
                        local PlayersOnline = getPlayersOnline()
                        for i, pid in ipairs(PlayersOnline) do
                                if getPlayerGuildId(pid) == GuildID then
                                        if getPlayerLevel(pid) >= GuildPointsConfigs.MinLevel then
                                                table.insert(GuildMembersOnline, pid)
                                        end
                                end
                        end
                        if #GuildMembersOnline >= GuildPointsConfigs.NeedPlayersOnline then
                                local IPS = {}
                                for i, pid in ipairs(GuildMembersOnline) do
                                        local PlayerIP = getPlayerIp(pid)
                                        if #IPS > 0 then
                                                for k = 1, #IPS do
                                                        if PlayerIP == IPS[k] then
                                                                AddIPList = false
                                                                break
                                                        end
                                                        AddIPList = true
                                                end
                                                if AddIPList then
                                                        table.insert(IPS, PlayerIP)
                                                end
                                        else
                                                table.insert(IPS, PlayerIP)
                                        end
                                end
                                if #IPS >= GuildPointsConfigs.NeedDiferentIps then
                                        local ValidAccounts = getGuildPlayersValidAccIDS(GuildID, GuildPointsConfigs.MinLevel)
                                        db.executeQuery("UPDATE `guilds` SET `last_execute_points` = ".. os.time() +(GuildPointsConfigs.ExecuteIntervalHours * 3600) .." WHERE `guilds`.`id` = ".. GuildID ..";")
                                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "".. #ValidAccounts .." Players received points")
                                        if #ValidAccounts > 0 then
                                                db.executeQuery("UPDATE `accounts` SET `guild_points` = `guild_points` + " ..GuildPointsConfigs.AddPointsForAcc .. ", `guild_points_stats` = ".. os.time() .." WHERE `id` IN (" .. table.concat(ValidAccounts, ',').. ");")
                                                for i, pid in ipairs(GuildMembersOnline) do
                                                        local PlayerMSGAccID = getPlayerAccountId(pid)
                                                        for k = 1, #ValidAccounts do
                                                                if PlayerMSGAccID == ValidAccounts[k] then
                                                                        doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, "You received ".. GuildPointsConfigs.AddPointsForAcc .." guild points.")
                                                                        break
                                                                end
                                                        end
                                                end
                                        end
                                else
                                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only ".. #IPS .." players are valid, you need ".. GuildPointsConfigs.NeedDiferentIps .." players with different ips.")
                                end
                        else
                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Has only ".. #GuildMembersOnline .." players online you need ".. GuildPointsConfigs.NeedPlayersOnline .." players online at least from level "..GuildPointsConfigs.MinLevel ..".")
                        end
                else
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "The command can only be run once every "..GuildPointsConfigs.ExecuteIntervalHours .." hours.")
                end
        else
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only guild leader can request points.")
        end
        return true
end

 

Opa Parceiro !

 

Deu esse erro agora:

 

 

Lua Script Error: [TalkAction Interface]
data/talkactions/scripts/guildpoints.lua:onSay
data/talkactions/scripts/guildpoints.lua:75: attempt to index global 'Query' (a number value)
stack traceback:
        [C]: in function '__index'
        data/talkactions/scripts/guildpoints.lua:75: in function <data/talkactions/scripts/guildpoints.lua:71>
  • Respostas 59
  • Visualizações 16.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • luanluciano93
    luanluciano93

    Onde ta new OTS_Player troque por new Player ...   Onde ta:  $check_name_in_database = $ots->createObject('Player'); $check_name_in_database->find($buy_from);   Por: $buy_player = new Playe

  • luanluciano93
    luanluciano93

    muito bom

  • luanluciano93
    luanluciano93

    Espero que dê certo ...  Substitua corretamente, ou senão terá erros!

Posted Images

Postado
  • Autor

 

Opa Parceiro !

 

Deu esse erro agora:

 

 

Lua Script Error: [TalkAction Interface]
data/talkactions/scripts/guildpoints.lua:onSay
data/talkactions/scripts/guildpoints.lua:75: attempt to index global 'Query' (a number value)
stack traceback:
        [C]: in function '__index'
        data/talkactions/scripts/guildpoints.lua:75: in function <data/talkactions/scripts/guildpoints.lua:71>

 

 

Tem que ver se sua database está certinha com todos as colunas que contém no tutorial...

Postado
  • Autor

Sim,

 

Certinho !

TESTA:

local GuildPointsConfigs = {
    ExecuteIntervalHours = 24,
    NeedPlayersOnline = 7,
    NeedDiferentIps = 5,
    MinLevel = 70,
    AddPointsForAcc = 19
}


function getGuildPlayersValidAccIDS(GuildID, MinLevel)  
    local RanksIDS, AccsID, ValidAccsID = {}, {}, {}
    local Query1 = db.storeQuery("SELECT `id` FROM `guild_ranks` WHERE guild_id = '" .. GuildID .. "'")
    if(Query1:getID() == -1) then
        return ValidAccsID
    end
   
    for i = 1, Query1:getRows() do
        table.insert(RanksIDS, Query1:getDataInt("id"))
        Query1:next()
    end
   
    local Query2 = db.storeQuery("SELECT `account_id` FROM `players` WHERE `rank_id` IN (".. table.concat(RanksIDS,', ')..") AND `level` >= "..MinLevel.."")
    if(Query2:getID() == -1) then
        return ValidAccsID
    end
   
    for i = 1, Query2:getRows() do
        local AccID = Query2:getDataInt("account_id")
        if(#AccsID > 0) then
            for k = 1, #AccsID do
                if(AccID == AccsID[k]) then
                    AddAccList=false
                    break
                end
               
                AddAccList=true
            end
           
            if(AddAccList) then
                table.insert(AccsID,AccID)
            end
        else
            table.insert(AccsID,AccID)
        end
       
        Query2:next()
    end
   
    local Query3 = db.storeQuery("SELECT `id` FROM `accounts` WHERE `guild_points_stats` = 0 AND `id` IN (".. table.concat(AccsID,', ')..")")
   
    if(Query3:getID() == -1) then
        return ValidAccsID
    end
   
    for i = 1, Query3:getRows() do
        local AccID=Query3:getDataInt("id")
        if(#ValidAccsID > 0) then
            for k = 1, #ValidAccsID do
                if(AccID == ValidAccsID[k]) then
                    AddAccList=false
                    break
                end
               
                AddAccList=true
            end
            if(AddAccList) then
                table.insert(ValidAccsID,AccID)
            end
        else
            table.insert(ValidAccsID,AccID)
        end
       
        Query3:next()
    end
return ValidAccsID
end


function onSay(cid, words, param, channel)
    local player = Player(cid)
    if(player:getGuildLevel == 3) then
        local GuildID = player:getGuild():getId()
        local Query = db.storeQuery("SELECT `last_execute_points` FROM `guilds` WHERE id = '" .. GuildID .. "'")
        if(Query:getID() == -1) then
            return true
        end
       
        if(Query:getDataInt("last_execute_points") < os.time()) then
            local GuildMembers = {}
            local GuildMembersOnline = {}
            for i, pid in ipairs(Game.getPlayers()) do
                local targetPlayer = Player(pid)
                if(targetPlayer:getGuild():getId() == GuildID)then
                    if(targetPlayer:getLevel() >= GuildPointsConfigs.MinLevel) then
                        table.insert(GuildMembersOnline, pid)
                    end
                end
            end
           
            if(#GuildMembersOnline >= GuildPointsConfigs.NeedPlayersOnline) then
                local IPS = {}
                for i, pid in ipairs(GuildMembersOnline)do
                    local PlayerIP = getPlayerIp(pid)
                    if(#IPS > 0) then
                        for k = 1, #IPS do
                            if(PlayerIP == IPS[k]) then
                                AddIPList = false
                                break
                            end
                            AddIPList = true
                        end
                        if(AddIPList) then
                            table.insert(IPS,PlayerIP)
                        end
                    else
                        table.insert(IPS,PlayerIP)
                    end
                end
               
                if(#IPS >= GuildPointsConfigs.NeedDiferentIps) then
                    local ValidAccounts = getGuildPlayersValidAccIDS(GuildID,GuildPointsConfigs.MinLevel)
                    db.query("UPDATE `guilds` SET `last_execute_points` = ".. os.time()+(GuildPointsConfigs.ExecuteIntervalHours*3600).." WHERE `guilds`.`id` = "..GuildID..";")
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE,"" .. #ValidAccounts .. " Players received points")
                   
                    if(#ValidAccounts > 0) then
                        db.query("UPDATE `accounts` SET `guild_points` = `guild_points` + "..GuildPointsConfigs.AddPointsForAcc..", `guild_points_stats` = ".. os.time().." WHERE `id` IN (".. table.concat(ValidAccounts,',')..");")
                        for i, pid in ipairs(GuildMembersOnline)do
                            local targetPlayer = Player(pid)
                            local PlayerMSGAccID = targetPlayer:getAccountId()
                            for k = 1, #ValidAccounts do
                                if(PlayerMSGAccID == ValidAccounts[k]) then
                                    targetPlayer:sendTextMessage(MESSAGE_INFO_DESCR,"You received "..GuildPointsConfigs.AddPointsForAcc.." guild points.")
                                    break
                                end
                            end
                        end
                    end
                else
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE,"Only " .. #IPS .. " players are valid, you need "..GuildPointsConfigs.NeedDiferentIps .." players with different ips.")
                end
            else
                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE,"Has only " .. #GuildMembersOnline .. " players online you need ".. GuildPointsConfigs.NeedPlayersOnline .." players online at least from level ".. GuildPointsConfigs.MinLevel .. ".")
            end
        else
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE,"The command can only be run once every " ..GuildPointsConfigs.ExecuteIntervalHours .. " hours.")
        end
    else
        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE,"Only guild leader can request points.")
    end
return true
end

 

Quero saber como eu adiciono items no shop guild? 

 

Mano tem o shopGUILDadmin no tutorial pra você adicionar os items.

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