• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Tutorial]Guild War System 1 Parte

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1[Tutorial]Guild War System 1 Parte Empty [Tutorial]Guild War System 1 Parte Vie Mar 29, 2013 1:44 pm

    "♣Marre♣™"

    [Tutorial]Guild War System 1 Parte 462-68
    Miembro
    Miembro
    GUILD WAR SYSTEM FOR TFS 0.3.5 O TFS 0.3.6.
    CON GESIOR AAC

    Este Tutorial Esta Demaciado Facil, Es Como El De Carlos Morales [Dino], Pero En El De El
    No Venia Una Parte Y Yo Se La Agrege.....

    NOTE*= Si antes tubieron war system, pero no funciono de seguro
    tuviero la tabla deaths in war, Tenemos Que Borrarla...Nos Vamos A localhost/phpmyadmin Seleccionamos
    Nuestra Base Datos Luego En El Indice De Arriba Nos Da La Opcion De SQL, la seleccionamos- Ahi escriben (DROP TABLE `deaths_in_wars`) y Ponen Continuar

    Empezamos !!!!

    1)Nos Vamos A LaCarpetaDeTuServer/Mods, ahi habra una documento XML llamado guildWarSystem Borran Lo De Adentro y ponen :

    Código:
    <?xml version="1.0" encoding="UTF-8"?>
    <mod name="Guild War System" version="0.3.5+" author="Xampy and Nahruto" contact="otland.net" enabled="yes">
    <config name="function_config"><![CDATA[
    DelayToCancel = 24 -- HOURS <-> [max: 47 -- min: 24] --> default: 24 hours [1 day]

    Maps = {
            ["map1"] =
                    {
                            Guild1Pos = {x=238, y=442, z=12},
                            Guild2Pos = {x=244, y=442, z=12}
                    },
            ["map2"] =
                    {
                            Guild1Pos = {x=994, y=1004, z=6},
                            Guild2Pos = {x=1000, y=1003, z=6}                     
                    }
            }

    TimeToTeleport = 1 --minutes, when start a challenge
    StopBattle = TRUE --Stop battle after X time ? TRUE  /  FALSE
    TimeToStop = 60 --Minutes Time to Stop if StopBattle = TRUE.

    --Cancel messages~
    CancelMessagesWar = {
            --Message when player try accept/reject/cancel a war but there is no a invitation.
            [1] = "Not pending invitations.",
            --Message when the player is not the guild leader.
            [2] = "Only Guild Leader can execute this command.",
            --Message when try Cancel the invitation but the war is already accepted.
            [3] = "The war is already accepted.",
            --MEssage when the invited guild name is not correct or does not exist.
            [4] = "Not correct guild name.",
            --Message when try invite any guild to a war but his guild already have a war or a pending invitation.
            [5] = "Your guild is already in war or have a pending invitation.",
            --Same of the cancel message 5 but the the enemy guild.
            [6] = "This guild is already in war or have a pending invitation.",
            --Message when use invite command but not write guild name.
            [7] = "Command needs param.",
            --Message when try invite his guild.
            [8] = "You can\'t invite you guild.",
            --Message when the map name is not correct.
            [9] = "Please write a correct name.",
            --Message when try go to any map but the guild is have no received/sent any war invitation
            [10] = "Your guild is not in any war.",
            --When try to cancel a war before the delay
            [11] = "You should wait ".. DelayToCancel .." hours to cancel the war"
            }
         
    --Broadcast messages when invite/accept/reject/cancel ~ Remember the Spaces.
    BroadCast_Type = MESSAGE_EVENT_ADVANCE
    BroadCast = {
            --Message when inviting
            [1] =
                    {
                            "Guild ",
                            --Here will be the guild name
                            " have invited guild ",
                            --Here will be the invited guild name
                            " to have a war."
                    },
            --Message when accept.
            [2] =
                    {
                            "Guild ",
                            --Here will be the guild name
                            " have accepted the invitation of the guild " ,
                            --Here will be the name of the guild who have invited em.
                            " to have a war."
                    },
            --Message when reject.
            [3] =
                    {
                            "Guild ",
                            --Here will be the guild name
                            " have rejected the invitation of the guild " ,
                            --Here will be the name of the guild who have invited em.
                            " to have a war."
                    },
            --Message when cancel.
            [4] =
                    {
                            "Guild ",
                            --Here will be the guild name
                            " have canceled the invitation to the guild " ,
                            --Here will be the name of the guild who have invited em.
                            " to have a war."
                    },
            --Message whenstar a battle..
            [5] =
                    {
                            "Guild ",
                            --Here will be the guild name
                            " and guild " ,
                            --Here will be the name of the guild who have invited em.
                            " will have a battle in the map :"
                    },
            --message when a battle ends.
            [6] =
                    {
                            "The battle betwen guild ",
                            --Here will be the guild name
                            " and guild " ,
                            --Here will be the name of the guild who have invited em.
                            " its over."
                    },
            }

    --Functions ~.

    function getShowInfo(id)
            local Info = db.getResult("SELECT `show` FROM `guilds` WHERE `id` = " .. id .. "")
            if Info:getID() ~= -1 then
                    local showy = Info:getDataInt("show")
                    Info:free()
                    return showy
            end
            return -1
    end

    function getKills(name)
            local Info = db.getResult("SELECT `kills` FROM `guilds` WHERE `name` = '"..name.."'")
            if Info:getID() ~= -1 then
                    local killy = Info:getDataInt("kills")
                    Info:free()
                    return killy
            end
            return -1
    end

    function getGuildWarInfo(id)
            local Info = db.getResult("SELECT `invited_to`, `invited_by`, `in_war_with`,`war_time` FROM `guilds` WHERE `id` = " .. id .. "")
            if Info:getID() ~= -1 then
                    local invTo, invBy, warWith, Time = Info:getDataInt("invited_to"), Info:getDataInt("invited_by"), Info:getDataInt("in_war_with"), Info:getDataInt("war_time")
                    Info:free()
                    return {To = invTo, By = invBy, With = warWith, T = Time}
            end
            return -1
    end

    function getGuildNameById(id)
            local Info = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. id .. "")
                    if Info:getID() ~= -1 then
                    local Name = Info:getDataString("name")
                    Info:free()
                    return Name
            end
            return -1
    end

    function GuildIsInPEace(id)
            local Info = getGuildWarInfo(id)
            return (Info.To == 0 and Info.By == 0 and Info.With == 0)
    end

    function doInviteToWar(myGuild, enemyGuild)
            local StartTime = os.time()
            db.executeQuery("UPDATE `guilds` SET `invited_to` = ".. enemyGuild ..", `war_time` = ".. StartTime .." WHERE `id` = ".. myGuild .."")
            db.executeQuery("UPDATE `guilds` SET `invited_by` = ".. myGuild .." WHERE `id` = ".. enemyGuild .."")
    end

    function WarAccept(myGuild, enemyGuild)
            local StartTime = os.time()
            db.executeQuery("UPDATE `guilds` SET `invited_to` = 0, `invited_by` = 0, `in_war_with`  =  ".. myGuild ..", `kills` = 0, `show` = 1 WHERE `id` = ".. enemyGuild .."")
            db.executeQuery("UPDATE `guilds` SET `invited_to` = 0, `invited_by` = 0, `war_time` = ".. StartTime ..", `in_war_with`  =  ".. enemyGuild ..", `kills` = 0, `show` = 0 WHERE `id` = ".. myGuild .."")
    end

    function cleanInfo(myGuild)
            db.executeQuery("UPDATE `guilds` SET `invited_to` = 0, `invited_by` = 0, `war_time` = 0, `in_war_with`  =  0, `kills` = 0, `show` = 0 WHERE `id` = ".. myGuild .."")
    end

    function registerDeathOne(myGuild, enemyGuild, cid, target)
            db.executeQuery("INSERT INTO `deaths_in_wars` (`guild_id`, `player_id`, `killer_guild`, `killer`, `date`, `result1`, `result2`) VALUES ("..enemyGuild..", "..getPlayerGUID(target)..", "..myGuild..", "..getPlayerGUID(cid)..", " .. os.time() ..", 1, 0);")     
            db.executeQuery("UPDATE `guilds` SET `kills` = `kills` + 1 WHERE `id` = ".. myGuild .."")
    end

    function registerDeathTwo(myGuild, enemyGuild, cid, target)
            db.executeQuery("INSERT INTO `deaths_in_wars` (`guild_id`, `player_id`, `killer_guild`, `killer`, `date`, `result1`, `result2`) VALUES ("..enemyGuild..", "..getPlayerGUID(target)..", "..myGuild..", "..getPlayerGUID(cid)..", " .. os.time() ..", 0, 1);")     
            db.executeQuery("UPDATE `guilds` SET `kills` = `kills` + 1 WHERE `id` = ".. myGuild .."")
    end

    function removeDeaths(id)
            db.executeQuery("DELETE FROM `deaths_in_wars` WHERE `guild_id` = " ..id .. ";")
    end

    function StopWar(myGuild, enemyGuild)
            cleanInfo(myGuild)
            cleanInfo(enemyGuild)
            removeDeaths(myGuild)
            removeDeaths(enemyGuild)
    end

    function WeAreInWar(myGuild, enemyGuild)
            local myGuildInfo = getGuildWarInfo(myGuild)
            local enemyGuildInfo = getGuildWarInfo(enemyGuild)
            if myGuild == enemyGuildInfo.With and enemyGuild ==  myGuildInfo.With then
                    if enemyGuildInfo.ON == 1 and myGuildInfo.ON == 1 then
                            return TRUE
                    end           
            end
            return FALSE
    end

    function getOnlineMembers(id)
            local PlayersOnline = getPlayersOnline()
            local MembersOnline = {}
            for i, pid in ipairs(PlayersOnline) do
                    if id == getPlayerGuildId(PlayersOnline[i]) then
                            table.insert(MembersOnline, PlayersOnline[i])
                    end
            end
            return MembersOnline
    end

    function teleportGuild(id, pos)
            local Members = getOnlineMembers(id)
            if #Members > 0 then
            for i = 1, #Members do
                    if #Members > 1 then
                            if getTilePzInfo(getCreaturePosition(Members[i])) == TRUE then
                                    doTeleportThing(Members[i], pos, FALSE)
                                    doSendMagicEffect(pos, CONST_ME_TELEPORT)
                                    doSendMagicEffect(getCreaturePosition(Members[i]), CONST_ME_POFF)
                                    doPlayerSendTextMessage(Members[i], 22, 'Prepare to fight!')
                            else
                                    doPlayerPopupFYI(Members[i], 'GuildWar challenge error:\n\nBoth guild members must stay in Protection Zone.')
                            end
                    else
                            doPlayerPopupFYI(Members[i], 'GuildWar challenge error:\n\nBoth guilds must have more than one player online (leader & any member, at least).')
                    end
            end
            end
    end

    function getGuildsWithWar()
            local res = db.getResult("SELECT `id` FROM `guilds` WHERE `in_war_with` > 0")
            local GuildW = {}
            if res:getID() ~= -1 then
                    while true do
                            table.insert(GuildW, res:getDataInt "id")
                            if not res:next() then
                                    break
                            end
                    end
                    res:free()
            end
            return GuildW
    end

    function guildExist(nom)
            local Get = db.getResult("SELECT `id` FROM `guilds` WHERE `name` = " .. db.escapeString(nom) .. ";")
            if Get:getID() ~= -1 then
                    local ret = Get:getDataInt("id")
                    Get:free()
                    return ret
            end
            return -1
    end

    function StartWar(x)
            teleportGuild(x.myGuild, Maps[x.map].Guild1Pos)
            teleportGuild(x.enemyGuild, Maps[x.map].Guild2Pos)

            if StopBattle == TRUE then
                    addEvent(StopWarNow, 60 * 1000, {myGuild = x.myGuild, enemyGuild = x.enemyGuild})
            end
    end   

    function StopWarNow(c)
            StopWar(c.myGuild, c.enemyGuild)
            doBroadcastMessage(BroadCast[6][1] ..getGuildNameById(c.myGuild).. BroadCast[6][2] ..getGuildNameById(c.enemyGuild).. BroadCast[6][3], BroadCast_Type)
    end

    function putWarOn(myGuild, enemyGuild)
            db.executeQuery("UPDATE `guilds` SET `war_time`  = 1 WHERE `id` = ".. myGuild .."")
            db.executeQuery("UPDATE `guilds` SET `war_time`  = 1 WHERE `id` = ".. enemyGuild .."")
    end]]></config>


    <talkaction words="!disband; /war-invite; /war-accept; /war-reject; /war-cancel-invite; /war-cancel" event="script"><![CDATA[
    domodlib('function_config')
    function onSay(cid, words, param, channel)
            if getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER then
                    local myGuild = getPlayerGuildId(cid)
                    if words == "/war-invite" then
                            if GuildIsInPEace(myGuild) == true then
                                    if param ~= "" then
                                            if guildExist(param) ~= -1 then
                                                    local invitedGuild = getGuildId(param)
                                                    if invitedGuild ~= -1 then
                                                            if invitedGuild ~= myGuild then
                                                                    if GuildIsInPEace(invitedGuild) == true then
                                        if getPlayerStorageValue(cid, 65570) <= os.time() then
                                                                                doInviteToWar(myGuild, invitedGuild)
                                                                                doBroadcastMessage(BroadCast[1][1] ..getPlayerGuildName(cid).. BroadCast[1][2] ..getGuildNameById(invitedGuild).. BroadCast[1][3], BroadCast_Type)
                                            setPlayerStorageValue(cid, 65570, os.time()+(20*60))
                                        else
                                            local waitTime = (getPlayerStorageValue(cid, 65570) - os.time())
                                            doPlayerSendCancel(cid, "You must wait " .. os.date("%M", waitTime) .. " minutes and " .. os.date("%S", waitTime) .. " seconds until declare another war.")
                                        end
                                                                    else
                                                                            doPlayerSendCancel(cid, CancelMessagesWar[6])
                                                                    end
                                                            else
                                                                    doPlayerSendCancel(cid, CancelMessagesWar[8])
                                                            end
                                                    else
                                                            doPlayerSendCancel(cid, CancelMessagesWar[4])
                                                    end
                                            else
                                                    doPlayerSendCancel(cid, CancelMessagesWar[4])
                                            end
                                    else
                                            doPlayerSendCancel(cid, CancelMessagesWar[7])
                                    end
                            else
                                    doPlayerSendCancel(cid, CancelMessagesWar[5])
                            end
                    elseif words == "/war-accept" then
                            if getGuildWarInfo(myGuild).By ~= 0 then
                                    local enemyGuild = getGuildWarInfo(myGuild).By
                                    doBroadcastMessage(BroadCast[2][1] ..getPlayerGuildName(cid).. BroadCast[2][2] ..getGuildNameById(enemyGuild).. BroadCast[2][3], BroadCast_Type)
                                    WarAccept(myGuild, enemyGuild)
                            else
                                    doPlayerSendCancel(cid, CancelMessagesWar[1])
                            end
                    elseif words == "/war-reject" then
                            if getGuildWarInfo(myGuild).By ~= 0 then
                                    doBroadcastMessage(BroadCast[3][1] ..getPlayerGuildName(cid).. BroadCast[3][2] ..getGuildNameById(getGuildWarInfo(myGuild).By).. BroadCast[3][3], BroadCast_Type)
                                    cleanInfo(getGuildWarInfo(myGuild).By)
                                    cleanInfo(myGuild)
                            else
                                    doPlayerSendCancel(cid, CancelMessagesWar[1]) 
                            end
                    elseif words == "/war-cancel-invite" then
                            if getGuildWarInfo(myGuild).To ~= 0 then
                                    if getGuildWarInfo(myGuild).With == 0 then
                                            doBroadcastMessage(BroadCast[4][1] ..getPlayerGuildName(cid).. BroadCast[4][2] ..getGuildNameById(getGuildWarInfo(myGuild).To).. BroadCast[4][3], BroadCast_Type)
                                            cleanInfo(getGuildWarInfo(myGuild).To)
                                            cleanInfo(myGuild)
                                    else
                                            doPlayerSendCancel(cid, CancelMessagesWar[3])
                                    end
                            else
                                    doPlayerSendCancel(cid, CancelMessagesWar[1]) 
                            end
                    elseif words == "/war-challenge" then
                            local map = Maps[param]
                            if map then
                                    if enemy ~= 0 then
                                            local enemyGuild = getGuildWarInfo(myGuild).With
                                            addEvent(StartWar, 15000, {myGuild = myGuild, enemyGuild = enemyGuild, map = param})
                                            doBroadcastMessage(BroadCast[5][1] ..getPlayerGuildName(cid).. BroadCast[5][2] ..getGuildNameById(enemyGuild).. BroadCast[5][3] .. param ..".", BroadCast_Type)
                                    else
                                            doPlayerSendCancel(cid, CancelMessagesWar[10])
                                    end
                            else
                                    doPlayerSendCancel(cid, CancelMessagesWar[9])
                            end
                    elseif words == "/war-cancel" then
                            local enemy = getGuildWarInfo(myGuild).With
                            if enemy ~= 0 then
                                    if (os.time() - getGuildWarInfo(myGuild).T) >= (60 * 60 * DelayToCancel) then
                                            StopWar(myGuild, enemy)
                                            doBroadcastMessage(BroadCast[6][1] ..getGuildNameById(myGuild).. BroadCast[6][2] ..getGuildNameById(enemy).. BroadCast[6][3], BroadCast_Type)
                                    else
                        local timeEnd = getGuildWarInfo(myGuild).T + (60 * 60 * DelayToCancel)
                        local timeLeft = timeEnd - os.time()
                        local hours = (os.date("%H", timeLeft) + 23)
                                            doPlayerSendCancel(cid, "Time remaining: "..hours.." hours, " .. os.date("%M", timeLeft) .. " minutes and " .. os.date("%S", timeLeft) .. " seconds.")
                                    end
                            else
                                    doPlayerSendCancel(cid, CancelMessagesWar[10])
                            end
                    elseif words == "!disband" then
                            local enemy = getGuildWarInfo(myGuild).With
                            if enemy > 0 then
                    if channel == CHANNEL_GUILD then
                        if (os.time() - getGuildWarInfo(myGuild).T) >= (60 * 60 * DelayToCancel) then
                                                StopWar(myGuild, enemy)
                                                doBroadcastMessage(BroadCast[6][1] ..getGuildNameById(myGuild).. BroadCast[6][2] ..getGuildNameById(enemy).. BroadCast[6][3], BroadCast_Type)
                                        else
                        local timeEnd = getGuildWarInfo(myGuild).T + (60 * 60 * DelayToCancel)
                        local timeLeft = timeEnd - os.time()
                        local hours = (os.date("%H", timeLeft) + 23)
                                            doPlayerSendCancel(cid, "Time remaining: "..hours.." hours, " .. os.date("%M", timeLeft) .. " minutes and " .. os.date("%S", timeLeft) .. " seconds.")
                                        end
                                else
                        doPlayerSendCancel(cid, "You have to say this command in your guild channel.")
                                end
                else
                                    return FALSE
                end
                                    return FALSE
                    end
            else
                    doPlayerSendCancel(cid, CancelMessagesWar[2])
            end
            local file = io.open("data/logs/Wars.txt", "a")
            file:write("".. os.date("%d %B %Y %X ", os.time()) .." -->  "..getCreatureName(cid)..": "..words.." "..param.."\n")
            file:close()
            return TRUE
    end]]></talkaction>

    <event type="login" name="WarLogin" event="script"><![CDATA[
    domodlib('function_config')
    function onLogin(cid)
            registerCreatureEvent(cid, "WarKill")
            return true
    end]]></event>

    <event type="kill" name="WarKill" event="script"><![CDATA[
    domodlib('function_config')
                 
    local PZ = createConditionObject(CONDITION_INFIGHT)
    setConditionParam(PZ, CONDITION_PARAM_TICKS, getConfigInfo('whiteSkullTime'))

    function onKill(cid, target, lastHit)

            if isPlayer(cid) == TRUE and isPlayer(target) == TRUE then

    local config = {
                    removeFrags = true -- If 'true' player won't gain frags from a player that is versus him; else, player will gain frags as normal.
                    }

            local GUID = getPlayerGUID(cid)
            local namec = getPlayerName(cid)
            local namet = getPlayerName(target)
            local skull = getCreatureSkullType(cid)
            local skullend = getPlayerSkullEnd(cid)
        local playerPos = getPlayerPosition(cid)
        local targetPos = getPlayerPosition(target)
            local cidd = cid

            local timeA = os.time()
            local timesA = {today = (timeA - 86400), week = (timeA - (7 * 86400))}

            local contentsA, resultA = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (timeA - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
            if(resultA:getID() ~= -1) then
                    repeat
                            local contentA = {
                                    name = resultA:getDataString("name"),
                                    level = resultA:getDataInt("level"),
                                    date = resultA:getDataInt("date")
                            }
                            if(contentA.date > timesA.today) then
                                    table.insert(contentsA.day, contentA)
                            elseif(contentA.date > timesA.week) then
                                    table.insert(contentsA.week, contentA)
                            else
                                    table.insert(contentsA.month, contentA)
                            end
                    until not resultA:next()
                    resultA:free()
            end

            local sizeA = {
                    day = table.maxn(contentsA.day),
                    week = table.maxn(contentsA.week),
                    month = table.maxn(contentsA.month)
            }
    local function removeFrag(cid)

            local timeB = os.time()
            local timesB = {today = (timeB - 86400), week = (timeB - (7 * 86400))}

            local contentsB, resultB = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. GUID .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (timeB - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
            if(resultB:getID() ~= -1) then
                    repeat
                            local contentB = {
                                    name = resultB:getDataString("name"),
                                    level = resultB:getDataInt("level"),
                                    date = resultB:getDataInt("date")
                            }
                            if(contentB.date > timesB.today) then
                                    table.insert(contentsB.day, contentB)
                            elseif(contentB.date > timesB.week) then
                                    table.insert(contentsB.week, contentB)
                            else
                                    table.insert(contentsB.month, contentB)
                            end
                    until not resultB:next()
                    resultB:free()
            end

            local sizeB = {
                    day = table.maxn(contentsB.day),
                    week = table.maxn(contentsB.week),
                    month = table.maxn(contentsB.month)
            }


    if sizeB.day > sizeA.day or sizeB.week > sizeA.week or sizeB.month > sizeA.month then
            db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = "..GUID..") ORDER BY `death_id` DESC LIMIT 1;")
            doPlayerSendTextMessage(cidd, 21, "Frag from "..namet.." wasn't counted.")
    end

    if skull == SKULL_RED then
            if getCreatureSkullType(cidd) == SKULL_BLACK then
                    doPlayerSetSkullEnd(cidd, skullend, SKULL_RED)
                    doCreatureSetSkullType(cidd, SKULL_RED)
            end
    elseif skull == SKULL_WHITE then
            if getCreatureSkullType(cidd) == SKULL_RED then
                    doPlayerSetSkullEnd(cidd, timeB, SKULL_RED)
                    doCreatureSetSkullType(cidd, SKULL_WHITE)
            end
    end

    end

                    local myGuild = getPlayerGuildId(cid)
                    local enemyGuild = getPlayerGuildId(target)

                    if myGuild ~= 0 and enemyGuild ~= 0 then
                            if enemyGuild == getGuildWarInfo(myGuild).With then
    local guildc = getPlayerGuildName(cid)
    local guildt = getPlayerGuildName(target)
                                    doAddCondition(cid, PZ)

                                    if lastHit == TRUE then
                        if getTileZoneInfo(playerPos) == 0 and getTileZoneInfo(targetPos) == 0 then
                                                if getShowInfo(myGuild) == 1 then
                                                        registerDeathOne(myGuild, enemyGuild, cid, target)
                                                else
                                                        registerDeathTwo(myGuild, enemyGuild, cid, target)
                                                end   
                        else
                            doPlayerSendTextMessage(cid, 19, "Remember: in PvP zone the system doesn't register the frag.")
                        end
                                    end

                                    if config.removeFrags == true then
                                            addEvent(removeFrag, 150)
                                    end

    local gsim = getShowInfo(myGuild)
    local gsie = getShowInfo(enemyGuild)

    if gsim > gsie then
        resulta = getKills(guildc)
        resultb = getKills(guildt)
    else
        resulta = getKills(guildt)
        resultb = getKills(guildc)
    end

    local players = getOnlinePlayers()
        for i,playerName in ipairs(players) do
            local player = getPlayerByName(playerName);
            if getPlayerGuildId(player) == myGuild then
        if getTileZoneInfo(playerPos) == 0 and getTileZoneInfo(targetPos) == 0 then
                doPlayerSendChannelMessage(player, "", "Opponent "..namet.." of the "..guildt.." was killed by "..namec..". The new score is "..resulta..":"..resultb.." frags.", TALKTYPE_CHANNEL_W, CHANNEL_GUILD)
        end
            end
        end
                            end
                    end
            end
            return TRUE
    end]]></event>
    </mod>

    Eso Es Todo Lo Que Hay Que Configurar En Su Ot.... Ahora

    2)Ahora Se Van a localhost/phpmyadmin seleccionan su base de datos, de nuevo selecionams SQL y escribimos:

    Código:
    ALTER TABLE `guilds`
    ADD `invited_to` INT( 11 ) NOT NULL ,
    ADD `invited_by` INT( 11 ) NOT NULL ,
    ADD `in_war_with` INT( 11 ) NOT NULL ,
    ADD `kills` INT( 11 ) NOT NULL ,
    ADD `show` SMALLINT( 1 ) NOT NULL ,
    ADD `war_time` INT( 11 ) NOT NULL ;

    Y Dan Continuar...

    Ahora Ahi Mismo Otravez Escribimos :

    Código:
     CREATE TABLE `deaths_in_wars` (
    `guild_id` INT( 11 ) NOT NULL ,
    `player_id` INT( 11 ) NOT NULL ,
    `killer_guild` INT( 11 ) NOT NULL ,
    `killer` INT( 11 ) NOT NULL ,
    `date` INT( 11 ) NOT NULL ,
    `result1` INT( 11 ) NOT NULL ,
    `result2` INT( 11 ) NOT NULL
    ) ENGINE = MYISAM ;

    Y Dan Continuar

    Ahora Ahi Mismo Otravez, Escribimos:

    Código:
    UPDATE `guilds` SET `invited_to` = 0, `invited_by` = 0, `in_war_with` = 0, `kills` = 0, `show` = 0, `war_time` = 0 WHERE `id` > 0;

    Y Dan Continuar

    Aqui Ya Terminamos Con PHPMYADMIN

    Craditos:
    TibiasOtxserver 70%
    Yuniormarre 30% por Arreglar el bug y traerlo

    +4
    [Admin] God Maya
    djvins2015
    salinas27
    "♣Marre♣™"
    8 participantes

    2[Tutorial]Guild War System 1 Parte Empty Re: [Tutorial]Guild War System 1 Parte Jue Oct 23, 2014 4:42 pm

    salinas27

    salinas27
    Nuevo Miembro
    Nuevo Miembro
    Amigo Eso Es Para 8.6 Y Tambien Es El de El Escudito?

    +4
    [Admin] God Maya
    djvins2015
    salinas27
    "♣Marre♣™"
    8 participantes
    http://Cartanalot.foroblog.net

    djvins2015

    djvins2015
    Miembro
    Miembro
    Hola bueno el sistema de war sin funciona al 100% pero cuando 2 guild quieren guerra al inivtar.

    /war-invite (la guild]
    cuando se envia la invitacion todo corre perfectamente ahora aseptamos

    /war-accept (la guild invitada)
    Ahora al aseptar si lo asepta y todo pero nunca aparese el escudo azul de las guild en guerra.

    bueno eso quiero yo por que no aparese me podrian ayudar con este codigo posteado que aparesca el escudito azul de guild que esta en guerra porfavor.
    espero que me ayuden saludos. doy + Megusta.
    Saludos. [GOD][Maya]

    +4
    [Admin] God Maya
    djvins2015
    salinas27
    "♣Marre♣™"
    8 participantes
    http://tibianeca.com

    4[Tutorial]Guild War System 1 Parte Empty Re: [Tutorial]Guild War System 1 Parte Vie Dic 12, 2014 5:35 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    djvins2015 escribió:Hola bueno el sistema de war sin funciona al 100% pero cuando 2 guild quieren guerra al inivtar.

    /war-invite (la guild]
    cuando se envia la invitacion todo corre perfectamente ahora aseptamos

    /war-accept (la guild invitada)
    Ahora al aseptar si lo asepta y todo pero nunca aparese el escudo azul de las guild en guerra.

    bueno eso quiero yo por que no aparese me podrian ayudar con este codigo posteado que aparesca el escudito azul de guild que esta en guerra porfavor.
    espero que me ayuden saludos. doy + Megusta.
    Saludos. [GOD][Maya]


    eso depende de que servidor estas usando otx te soporta los escuditos de 9.x enadelante pero si es 8.60 no tfs no se en que version soporta los escuditos. puede ser qu tengas un distrubucion antigua



    [Tutorial]Guild War System 1 Parte YNU5B25
    +4
    [Admin] God Maya
    djvins2015
    salinas27
    "♣Marre♣™"
    8 participantes
    http://www.tibiaface.com

    5[Tutorial]Guild War System 1 Parte Empty Re: [Tutorial]Guild War System 1 Parte Miér Abr 08, 2015 1:59 am

    Invitado

    Anonymous
    Invitado
    sirve para gesior 0.3.8? uso uniServ

    +4
    [Admin] God Maya
    djvins2015
    salinas27
    "♣Marre♣™"
    8 participantes

    6[Tutorial]Guild War System 1 Parte Empty Re: [Tutorial]Guild War System 1 Parte Vie Mar 30, 2018 1:14 am

    diegoaaron

    diegoaaron
    Nuevo Miembro
    Nuevo Miembro
    COMO HAGO PARA AGREGARLO A SQL

    +4
    [Admin] God Maya
    djvins2015
    salinas27
    "♣Marre♣™"
    8 participantes

    7[Tutorial]Guild War System 1 Parte Empty Re: [Tutorial]Guild War System 1 Parte Miér Dic 12, 2018 12:52 am

    Felipe93

    Felipe93
    Miembro
    Miembro
    [Admin] God Maya escribió:
    djvins2015 escribió:Hola bueno el sistema de war sin funciona al 100% pero cuando 2 guild quieren guerra al inivtar.

    /war-invite (la guild]
    cuando se envia la invitacion todo corre perfectamente ahora aseptamos

    /war-accept (la guild invitada)
    Ahora al aseptar si lo asepta y todo pero nunca aparese el escudo azul de las guild en guerra.

    bueno eso quiero yo por que no aparese me podrian ayudar con este codigo posteado que aparesca el escudito azul de guild que esta en guerra porfavor.
    espero que me ayuden saludos. doy + Megusta.
    Saludos. [GOD][Maya]


    eso depende de que servidor estas usando otx te soporta los escuditos de 9.x enadelante pero si es 8.60 no tfs no se en que version soporta los escuditos. puede ser qu tengas un distrubucion antigua



    pero debe haber la posibilidad de cambiar ejemplo los scudos por skulls por ejemplo yellow, orange etc

    +4
    [Admin] God Maya
    djvins2015
    salinas27
    "♣Marre♣™"
    8 participantes

    8[Tutorial]Guild War System 1 Parte Empty Re: [Tutorial]Guild War System 1 Parte Vie Nov 29, 2019 1:10 pm

    Morgue

    Morgue
    Nuevo Miembro
    Nuevo Miembro
    Ola muy buen aporte pero tengo 1 problema...k nose pork no tengo la carpeta MODS en mi server ni tengo war system...como puedo poner este sistema en mi OT desde 0? lo nesesito urjente pero no hay modo war en las carpetas, grasias

    +4
    [Admin] God Maya
    djvins2015
    salinas27
    "♣Marre♣™"
    8 participantes

    9[Tutorial]Guild War System 1 Parte Empty Re: [Tutorial]Guild War System 1 Parte Sáb Nov 30, 2019 9:18 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Morgue escribió:Ola muy buen aporte pero tengo 1 problema...k nose pork no tengo la carpeta MODS en mi server ni tengo war system...como puedo poner este sistema en mi OT desde 0? lo nesesito urjente pero no hay modo war en las carpetas, grasias

    lo que sucede que su distriucion no trae la extencion mods tendria que trabajar con otra distribucion que soporte la extencion mods



    [Tutorial]Guild War System 1 Parte YNU5B25
    +4
    [Admin] God Maya
    djvins2015
    salinas27
    "♣Marre♣™"
    8 participantes
    http://www.tibiaface.com

    10[Tutorial]Guild War System 1 Parte Empty Re: [Tutorial]Guild War System 1 Parte Miér Feb 05, 2020 2:57 pm

    3zequi3l

    3zequi3l
    Miembro
    Miembro
    HOla maya, cuando creo una guild con un player no me aparece el escudo ni el nombre de la guild en el player.... como puedo hacer?

    +4
    [Admin] God Maya
    djvins2015
    salinas27
    "♣Marre♣™"
    8 participantes

    Contenido patrocinado


    +4
    [Admin] God Maya
    djvins2015
    salinas27
    "♣Marre♣™"
    8 participantes

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).