• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

TalkAction war system

PAPACU

Intermediate OT User
Joined
Oct 10, 2019
Messages
52
Reaction score
118
Code:
local minPlayersOnline = 1
local minLevel = 100

local function hasMinimumMembersInGuild(guild)
    local membersOnline = guild:getMembersOnline()
    local total = 0
    for _, member in ipairs(membersOnline) do
        if member:getLevel() >= minLevel then
            total = total + 1
        end
    end

    if total >= minPlayersOnline then
        return true
    end

    return false
end

function onSay(player, words, param)
    local guild = player:getGuild()
    if not guild then
        player:sendCancelMessage("Voce precisa estar em uma Guild para usar esse comando.")
        return false
    end

    if player:getGuildLevel() ~= 3 then
        player:sendCancelMessage("Voce precisa ser leader de uma Guild para usar esse comando.")
        return false
    end

    local p = param:split(',')
    local action, targetGuildName = p[1], p[2]
    if not action or not targetGuildName then
        player:popupFYI('Utilize o comando corretamente:' .. '\n\n' .. '\n\n AVISO\n\n O NOME DA GUILD DEVER ESTÁ IGUAL AO SITE \n\nPara invitar warmode contra a guild Undead por 30 frags:\n' .. '--> !war invite,Undead,30' .. '\n\n' .. 'Para aceitar o pedido de warmode contra a guild Undead:\n' .. '--> !war accept,Undead' .. '\n\n' .. 'Para rejeitar o pedido de warmode da guild Undead:\n' .. '--> !war reject,Undead' .. '\n\n' .. 'Para cancelar o pedido de warmode da guild Undead:\n' .. '--> !war cancel,Undead' .. '\n\n' .. 'Para terminar a warmode contra a guild Undead:\n' .. '--> !war end,Undead')
        return true
    end

    local resultName = db.storeQuery(string.format('SELECT `id` FROM `guilds` WHERE `name` = %s', db.escapeString(targetGuildName)))
    if not resultName then
        player:sendCancelMessage(string.format("A guild %s nao existe.", targetGuildName))
        return false
    end

    local targetGuildId = result.getNumber(resultName, "id")
    result.free(resultName)

    local guildId, guildName = guild:getId(), guild:getName()
    if action:lower() == "invite" then
        if not hasMinimumMembersInGuild(guild) then
            player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Voce precisa ter no mínimo %d player%s online na sua Guild que sejam maior que o level %d para usar esse comando.', minPlayersOnline, minPlayersOnline ~= 1 and 's', minLevel))
            return false
        end

        if #p ~= 3 then
            player:sendTextMessage(MESSAGE_INFO_DESCR, 'Por favor utilize o comando corretamente:\n!war invite, nome_da_guild_inimiga, frags\n\nPor exemplo:\n!war invite,Blackout,100')
            return false
        end

        local frags = p[3]
        if targetGuildName:lower() == guildName:lower() or guildId == targetGuildId then
            player:sendTextMessage(MESSAGE_INFO_DESCR, "Voce nao pode invitar a sua propria guild para warmode.")
            return false
        end

        local resultInvite = db.storeQuery(string.format("SELECT `id` FROM `guild_wars` WHERE (((guild1 = %d AND guild2 = %d) OR (guild1 = %d AND guild2 = %d)) AND (status = 0 OR status = 1))", guildId, targetGuildId, targetGuildId, guildId))
        if resultInvite then
            player:sendCancelMessage("Voce ja enviou um convite de warmode para essa guild.")
            result.free(resultInvite)
            return false
        end
       
        local fragsLimit = tonumber(frags)
        if not fragsLimit then
            player:sendCancelMessage("Por favor utilize so numeros nos frags.")
            return false
        end

        if fragsLimit < 20 or fragsLimit > 999 then
            player:sendCancelMessage("A quantidade minima eh de 20 frags e 999 a maxima.")
            return false
        end
       
        db.query(string.format('INSERT INTO `guild_wars`(`guild1`, `guild2`, `name1`, `name2`, `status`, `started`, `ended`, `fraglimit`) VALUES (%d, %d, %s, %s, %d, %d, %d, %d)', guildId, targetGuildId, db.escapeString(guildName), db.escapeString(targetGuildName), 0, 0, 0, fragsLimit))
        Game.broadcastMessage(string.format('[WARMODE] %s invitou a guild %s para warmode de %d frags!', guild:getName(), targetGuildName, fragsLimit), MESSAGE_EVENT_ADVANCE)
    elseif action:lower() == "accept" then
        if not hasMinimumMembersInGuild(guild) then
            player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Voce precisa ter no minimo %d player%s online na sua Guild que sejam maior que o level %d para usar esse comando.', minPlayersOnline, minPlayersOnline ~= 1 and 's', minLevel))
            return false
        end

        local acceptResult = db.storeQuery(string.format("SELECT `id`, `guild1`, `guild2` FROM `guild_wars` WHERE (`status` = 0 AND (name1 = %s AND name2 = %s) OR (name2 = %s AND name1 = %s))", db.escapeString(targetGuildName), db.escapeString(guildName), db.escapeString(guildName), db.escapeString(targetGuildName)))
        if not acceptResult then
            player:sendCancelMessage('Nao tem nenhum convite pendente de warmode contra essa guild.')
            return false
        end
       
        local invitationId = result.getNumber(acceptResult, "id")
        local guildInvited = result.getNumber(acceptResult, "guild1")
        local guildReceived = result.getNumber(acceptResult, "guild2")
        result.free(acceptResult)
        if guildInvited == guildId then
            player:sendCancelMessage('Voce nao pode aceitar uma Warmode que foi voce que invitou.')
            return false
        end

        db.query(string.format('UPDATE `guild_wars` SET `status` = 1, `started` = %d WHERE `id` = %d', os.time(), invitationId))
        Game.broadcastMessage(string.format('[WARMODE] A guild %s aceitou o pedido de warmode da guild %s.', guildName, targetGuildName), MESSAGE_EVENT_ADVANCE)
    elseif action:lower() == "reject" then   
        if not hasMinimumMembersInGuild(guild) then
            player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Voce precisa ter no minimo %d player%s online na sua Guild que sejam maior que o level %d para usar esse comando.', minPlayersOnline, minPlayersOnline ~= 1 and 's', minLevel))
            return false
        end

        local rejectId = db.storeQuery(string.format("SELECT `id`, `guild1`, `guild2` FROM `guild_wars` WHERE (`status` = 0 AND (name1 = %s AND name2 = %s) OR (name2 = %s AND name1 = %s))", db.escapeString(targetGuildName), db.escapeString(guildName), db.escapeString(guildName), db.escapeString(targetGuildName)))
        if not rejectId then
            player:sendCancelMessage('Nao tem nenhum convite pendente de warmode contra essa guild.')
            return false
        end

        local invitationId = result.getNumber(rejectId, "id")
        local guildInvited = result.getNumber(rejectId, "guild2")
        result.free(rejectId)
        if guildInvited == guildId then
            player:sendCancelMessage('Voce nao pode rejeitar uma Warmode que foi voce que invitou.')
            return false
        end
       
        db.query(string.format('UPDATE `guild_wars` SET `status` = 2 WHERE `id` = %d', invitationId))
        Game.broadcastMessage(string.format('A guild %s rejeitou o pedido de warmode da guild %s.', guildName, targetGuildName), MESSAGE_EVENT_ADVANCE)
    elseif action:lower() == "end" then       
        local endResult = db.storeQuery(string.format("SELECT `id`, `guild1`, `guild2` FROM `guild_wars` WHERE (`status` = 1 AND (name1 = %s AND name2 = %s) OR (name2 = %s AND name1 = %s))", db.escapeString(targetGuildName), db.escapeString(guildName), db.escapeString(guildName), db.escapeString(targetGuildName)))
        if not endResult then
            player:sendCancelMessage('Atualmente a sua Guild nao esta em nenhuma warmode ativa com essa guild.')
            return false
        end

        local warId = result.getNumber(endResult, "id")   
        local guildInvited = result.getNumber(endResult, "guild1")
        local guildReceived = result.getNumber(endResult, "guild2")
        result.free(endResult)

        db.query(string.format('UPDATE `guild_wars` SET `status` = 4, `ended` = %d WHERE `id` = %d', os.time(), warId))
        Game.broadcastMessage(string.format('A guild %s encerrou a warmode contra a guild %s.', guildName, targetGuildName), MESSAGE_EVENT_ADVANCE)
    elseif action:lower() == "cancel" then   
        if not hasMinimumMembersInGuild(guild) then
            player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Voce precisa ter no minimo %d player%s online na sua Guild que sejam maior que o level %d para usar esse comando.', minPlayersOnline, minPlayersOnline ~= 1 and 's', minLevel))
            return false
        end

        local resultCancel = db.storeQuery(string.format("SELECT `id`, `guild1` FROM `guild_wars` WHERE (`status` = 0 AND (name1 = %s AND name2 = %s) OR (name2 = %s AND name1 = %s))", db.escapeString(targetGuildName), db.escapeString(guildName), db.escapeString(guildName), db.escapeString(targetGuildName)))
        if not resultCancel then
            player:sendCancelMessage('Nao tem nenhum convite pendente de warmode contra essa guild.')
            return false
        end

        local invitationId = result.getNumber(resultCancel, "id")
        local guildInvited = result.getNumber(resultCancel, "guild1")
        result.free(resultCancel)
        if guildInvited ~= guildId then
            player:sendCancelMessage('Voce nao pode cancelar uma War que nao foi voce que invitou.')
            return false
        end
       
        db.query(string.format('UPDATE `guild_wars` SET `status` = 3 WHERE `id` = %d', invitationId))
        Game.broadcastMessage(string.format('A guild %s cancelou o pedido de warmode a guild %s.', guildName, targetGuildName), MESSAGE_EVENT_ADVANCE)
    end
   
    return false
end


Code:
ALTER TABLE `guild_wars` ADD `fraglimit` int(4) NOT NULL DEFAULT '100';


+ npc NPC - Private war NPC system(War Anti Entrosa) (https://otland.net/threads/private-war-npc-system-war-anti-entrosa.270935/)
 

Code:
local deathListEnabled = true

function onDeath(player, corpse, killer, mostDamageKiller, unjustified, mostDamageUnjustified)

local playerId = player:getId()
AutoLootList:onLogout(playerId)


if player:getStorageValue(STORAGE_PLAYER_IN_ARENA) == 1 then
        local playerGuildId = player:getGuild():getId()
        local resultId = db.storeQuery(string.format("SELECT * FROM `guildwar_arenas` WHERE `guild1` = %d or `guild2` = %d AND `inuse` = 1", playerGuildId, playerGuildId))
        if resultId then
            local guild1 = result.getNumber(resultId, "guild1")
            local guild2 = result.getNumber(resultId, "guild2")
            local arena_mapname = result.getString(resultId, "name")
            local numberOfPlayersOnTeamA = result.getNumber(resultId, "playersOnTeamA")
            local numberOfPlayersOnTeamB = result.getNumber(resultId, "playersOnTeamB")
            result.free(resultId)
            if (guild1 == playerGuildId) then
                db.query(string.format('UPDATE `guildwar_arenas` SET `playersOnTeamA` = %d WHERE `name` = %s', tonumber(numberOfPlayersOnTeamA - 1), db.escapeString(arena_mapname)))
            else
                db.query(string.format('UPDATE `guildwar_arenas` SET `playersOnTeamB` = %d WHERE `name` = %s', tonumber(numberOfPlayersOnTeamB - 1), db.escapeString(arena_mapname)))
            end
        end

        player:setStorageValue(STORAGE_PLAYER_IN_ARENA, 0)
        player:setStorageValue(STORAGE_PLAYER_WAR_TYPE, 0)
    end
    local playerId = player:getId()
    if nextUseStaminaTime[playerId] ~= nil then
        nextUseStaminaTime[playerId] = nil
    end

    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You are dead.')
    if player:getStorageValue(Storage.SvargrondArena.Pit) > 0 then
        player:setStorageValue(Storage.SvargrondArena.Pit, 0)
    end
ExperienceOnline_time:onDeath(playerId, player:getGuid())
    if not deathListEnabled then
        return
    end

    local byPlayer = 0
    local killerName
    if killer ~= nil then
        if killer:isPlayer() then
            byPlayer = 1
        else
            local master = killer:getMaster()
            if master and master ~= killer and master:isPlayer() then
                killer = master
                byPlayer = 1
            end
        end
        killerName = killer:isMonster() and killer:getType():getNameDescription() or killer:getName()
    else
        killerName = 'field item'
    end

    local byPlayerMostDamage = 0
    local mostDamageKillerName
    if mostDamageKiller ~= nil then
        if mostDamageKiller:isPlayer() then
            byPlayerMostDamage = 1
        else
            local master = mostDamageKiller:getMaster()
            if master and master ~= mostDamageKiller and master:isPlayer() then
                mostDamageKiller = master
                byPlayerMostDamage = 1
            end
        end
        mostDamageName = mostDamageKiller:isMonster() and mostDamageKiller:getType():getNameDescription() or mostDamageKiller:getName()
    else
        mostDamageName = 'field item'
    end

    local playerGuid = player:getGuid()
    db.query('INSERT INTO `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `is_player`, `mostdamage_by`, `mostdamage_is_player`, `unjustified`, `mostdamage_unjustified`) VALUES (' .. playerGuid .. ', ' .. os.time() .. ', ' .. player:getLevel() .. ', ' .. db.escapeString(killerName) .. ', ' .. byPlayer .. ', ' .. db.escapeString(mostDamageName) .. ', ' .. byPlayerMostDamage .. ', ' .. (unjustified and 1 or 0) .. ', ' .. (mostDamageUnjustified and 1 or 0) .. ')')
    local resultId = db.storeQuery('SELECT `player_id` FROM `player_deaths` WHERE `player_id` = ' .. playerGuid)

    local deathRecords = 0
    local tmpResultId = resultId
    while tmpResultId ~= false do
        tmpResultId = result.next(resultId)
        deathRecords = deathRecords + 1
    end

    if resultId ~= false then
        result.free(resultId)
    end

    if byPlayer == 1 then
        local targetGuild = player:getGuild()
        targetGuild = targetGuild and targetGuild:getId() or 0
        if targetGuild ~= 0 then
            local killerGuild = killer:getGuild()
            killerGuild = killerGuild and killerGuild:getId() or 0
            if killerGuild ~= 0 and targetGuild ~= killerGuild and isInWar(playerId, killer.uid) then
                local warId = false
                resultId = db.storeQuery('SELECT `id` FROM `guild_wars` WHERE `status` = 1 AND ((`guild1` = ' .. killerGuild .. ' AND `guild2` = ' .. targetGuild .. ') OR (`guild1` = ' .. targetGuild .. ' AND `guild2` = ' .. killerGuild .. '))')
                if resultId ~= false then
                    warId = result.getNumber(resultId, 'id')
                    result.free(resultId)
                end

                if warId ~= false then
                    db.asyncQuery('INSERT INTO `guildwar_kills` (`killer`, `target`, `killerguild`, `targetguild`, `time`, `warid`) VALUES (' .. db.escapeString(killerName) .. ', ' .. db.escapeString(player:getName()) .. ', ' .. killerGuild .. ', ' .. targetGuild .. ', ' .. os.time() .. ', ' .. warId .. ')')
                end
            end
        end
    end
    
    onBountyHunterKill(killer, player)
    return true
end
 
Last edited by a moderator:
Code:
local minPlayersOnline = 1
local minLevel = 100

local function hasMinimumMembersInGuild(guild)
    local membersOnline = guild:getMembersOnline()
    local total = 0
    for _, member in ipairs(membersOnline) do
        if member:getLevel() >= minLevel then
            total = total + 1
        end
    end

    if total >= minPlayersOnline then
        return true
    end

    return false
end

function onSay(player, words, param)
    local guild = player:getGuild()
    if not guild then
        player:sendCancelMessage("Voce precisa estar em uma Guild para usar esse comando.")
        return false
    end

    if player:getGuildLevel() ~= 3 then
        player:sendCancelMessage("Voce precisa ser leader de uma Guild para usar esse comando.")
        return false
    end

    local p = param:split(',')
    local action, targetGuildName = p[1], p[2]
    if not action or not targetGuildName then
        player:popupFYI('Utilize o comando corretamente:' .. '\n\n' .. '\n\n AVISO\n\n O NOME DA GUILD DEVER ESTÁ IGUAL AO SITE \n\nPara invitar warmode contra a guild Undead por 30 frags:\n' .. '--> !war invite,Undead,30' .. '\n\n' .. 'Para aceitar o pedido de warmode contra a guild Undead:\n' .. '--> !war accept,Undead' .. '\n\n' .. 'Para rejeitar o pedido de warmode da guild Undead:\n' .. '--> !war reject,Undead' .. '\n\n' .. 'Para cancelar o pedido de warmode da guild Undead:\n' .. '--> !war cancel,Undead' .. '\n\n' .. 'Para terminar a warmode contra a guild Undead:\n' .. '--> !war end,Undead')
        return true
    end

    local resultName = db.storeQuery(string.format('SELECT `id` FROM `guilds` WHERE `name` = %s', db.escapeString(targetGuildName)))
    if not resultName then
        player:sendCancelMessage(string.format("A guild %s nao existe.", targetGuildName))
        return false
    end

    local targetGuildId = result.getNumber(resultName, "id")
    result.free(resultName)

    local guildId, guildName = guild:getId(), guild:getName()
    if action:lower() == "invite" then
        if not hasMinimumMembersInGuild(guild) then
            player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Voce precisa ter no mínimo %d player%s online na sua Guild que sejam maior que o level %d para usar esse comando.', minPlayersOnline, minPlayersOnline ~= 1 and 's', minLevel))
            return false
        end

        if #p ~= 3 then
            player:sendTextMessage(MESSAGE_INFO_DESCR, 'Por favor utilize o comando corretamente:\n!war invite, nome_da_guild_inimiga, frags\n\nPor exemplo:\n!war invite,Blackout,100')
            return false
        end

        local frags = p[3]
        if targetGuildName:lower() == guildName:lower() or guildId == targetGuildId then
            player:sendTextMessage(MESSAGE_INFO_DESCR, "Voce nao pode invitar a sua propria guild para warmode.")
            return false
        end

        local resultInvite = db.storeQuery(string.format("SELECT `id` FROM `guild_wars` WHERE (((guild1 = %d AND guild2 = %d) OR (guild1 = %d AND guild2 = %d)) AND (status = 0 OR status = 1))", guildId, targetGuildId, targetGuildId, guildId))
        if resultInvite then
            player:sendCancelMessage("Voce ja enviou um convite de warmode para essa guild.")
            result.free(resultInvite)
            return false
        end
      
        local fragsLimit = tonumber(frags)
        if not fragsLimit then
            player:sendCancelMessage("Por favor utilize so numeros nos frags.")
            return false
        end

        if fragsLimit < 20 or fragsLimit > 999 then
            player:sendCancelMessage("A quantidade minima eh de 20 frags e 999 a maxima.")
            return false
        end
      
        db.query(string.format('INSERT INTO `guild_wars`(`guild1`, `guild2`, `name1`, `name2`, `status`, `started`, `ended`, `fraglimit`) VALUES (%d, %d, %s, %s, %d, %d, %d, %d)', guildId, targetGuildId, db.escapeString(guildName), db.escapeString(targetGuildName), 0, 0, 0, fragsLimit))
        Game.broadcastMessage(string.format('[WARMODE] %s invitou a guild %s para warmode de %d frags!', guild:getName(), targetGuildName, fragsLimit), MESSAGE_EVENT_ADVANCE)
    elseif action:lower() == "accept" then
        if not hasMinimumMembersInGuild(guild) then
            player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Voce precisa ter no minimo %d player%s online na sua Guild que sejam maior que o level %d para usar esse comando.', minPlayersOnline, minPlayersOnline ~= 1 and 's', minLevel))
            return false
        end

        local acceptResult = db.storeQuery(string.format("SELECT `id`, `guild1`, `guild2` FROM `guild_wars` WHERE (`status` = 0 AND (name1 = %s AND name2 = %s) OR (name2 = %s AND name1 = %s))", db.escapeString(targetGuildName), db.escapeString(guildName), db.escapeString(guildName), db.escapeString(targetGuildName)))
        if not acceptResult then
            player:sendCancelMessage('Nao tem nenhum convite pendente de warmode contra essa guild.')
            return false
        end
      
        local invitationId = result.getNumber(acceptResult, "id")
        local guildInvited = result.getNumber(acceptResult, "guild1")
        local guildReceived = result.getNumber(acceptResult, "guild2")
        result.free(acceptResult)
        if guildInvited == guildId then
            player:sendCancelMessage('Voce nao pode aceitar uma Warmode que foi voce que invitou.')
            return false
        end

        db.query(string.format('UPDATE `guild_wars` SET `status` = 1, `started` = %d WHERE `id` = %d', os.time(), invitationId))
        Game.broadcastMessage(string.format('[WARMODE] A guild %s aceitou o pedido de warmode da guild %s.', guildName, targetGuildName), MESSAGE_EVENT_ADVANCE)
    elseif action:lower() == "reject" then  
        if not hasMinimumMembersInGuild(guild) then
            player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Voce precisa ter no minimo %d player%s online na sua Guild que sejam maior que o level %d para usar esse comando.', minPlayersOnline, minPlayersOnline ~= 1 and 's', minLevel))
            return false
        end

        local rejectId = db.storeQuery(string.format("SELECT `id`, `guild1`, `guild2` FROM `guild_wars` WHERE (`status` = 0 AND (name1 = %s AND name2 = %s) OR (name2 = %s AND name1 = %s))", db.escapeString(targetGuildName), db.escapeString(guildName), db.escapeString(guildName), db.escapeString(targetGuildName)))
        if not rejectId then
            player:sendCancelMessage('Nao tem nenhum convite pendente de warmode contra essa guild.')
            return false
        end

        local invitationId = result.getNumber(rejectId, "id")
        local guildInvited = result.getNumber(rejectId, "guild2")
        result.free(rejectId)
        if guildInvited == guildId then
            player:sendCancelMessage('Voce nao pode rejeitar uma Warmode que foi voce que invitou.')
            return false
        end
      
        db.query(string.format('UPDATE `guild_wars` SET `status` = 2 WHERE `id` = %d', invitationId))
        Game.broadcastMessage(string.format('A guild %s rejeitou o pedido de warmode da guild %s.', guildName, targetGuildName), MESSAGE_EVENT_ADVANCE)
    elseif action:lower() == "end" then      
        local endResult = db.storeQuery(string.format("SELECT `id`, `guild1`, `guild2` FROM `guild_wars` WHERE (`status` = 1 AND (name1 = %s AND name2 = %s) OR (name2 = %s AND name1 = %s))", db.escapeString(targetGuildName), db.escapeString(guildName), db.escapeString(guildName), db.escapeString(targetGuildName)))
        if not endResult then
            player:sendCancelMessage('Atualmente a sua Guild nao esta em nenhuma warmode ativa com essa guild.')
            return false
        end

        local warId = result.getNumber(endResult, "id")  
        local guildInvited = result.getNumber(endResult, "guild1")
        local guildReceived = result.getNumber(endResult, "guild2")
        result.free(endResult)

        db.query(string.format('UPDATE `guild_wars` SET `status` = 4, `ended` = %d WHERE `id` = %d', os.time(), warId))
        Game.broadcastMessage(string.format('A guild %s encerrou a warmode contra a guild %s.', guildName, targetGuildName), MESSAGE_EVENT_ADVANCE)
    elseif action:lower() == "cancel" then  
        if not hasMinimumMembersInGuild(guild) then
            player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Voce precisa ter no minimo %d player%s online na sua Guild que sejam maior que o level %d para usar esse comando.', minPlayersOnline, minPlayersOnline ~= 1 and 's', minLevel))
            return false
        end

        local resultCancel = db.storeQuery(string.format("SELECT `id`, `guild1` FROM `guild_wars` WHERE (`status` = 0 AND (name1 = %s AND name2 = %s) OR (name2 = %s AND name1 = %s))", db.escapeString(targetGuildName), db.escapeString(guildName), db.escapeString(guildName), db.escapeString(targetGuildName)))
        if not resultCancel then
            player:sendCancelMessage('Nao tem nenhum convite pendente de warmode contra essa guild.')
            return false
        end

        local invitationId = result.getNumber(resultCancel, "id")
        local guildInvited = result.getNumber(resultCancel, "guild1")
        result.free(resultCancel)
        if guildInvited ~= guildId then
            player:sendCancelMessage('Voce nao pode cancelar uma War que nao foi voce que invitou.')
            return false
        end
      
        db.query(string.format('UPDATE `guild_wars` SET `status` = 3 WHERE `id` = %d', invitationId))
        Game.broadcastMessage(string.format('A guild %s cancelou o pedido de warmode a guild %s.', guildName, targetGuildName), MESSAGE_EVENT_ADVANCE)
    end
  
    return false
end


Code:
ALTER TABLE `guild_wars` ADD `fraglimit` int(4) NOT NULL DEFAULT '100';


+ npc NPC - Private war NPC system(War Anti Entrosa) (https://otland.net/threads/private-war-npc-system-war-anti-entrosa.270935/)
War is not end after frag limit
 
none of those war scripts work as it would be. If your guild has 2 names on it it will never find the guild
 
Back
Top