Tibia Neca | Foro Oficial
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Tibia Neca | Foro Oficial

Tibianeca un foro de open tibia y un server online version 8.6 [TibiaNeca.Com] por el [The Neca]
 
ÍndiceÚltimas imágenesBuscarRegistrarseConectarse
Welcome to The Tibia Neca Global Total [RL] v.8.6 Welcome to our server we give a warm greeting from Chiapas, Mexico. we have a server we vercion 8.6. New City 2015.: - Gengia. - Cormaya - Pyre - Ciudad Perdida Features: - This server is based on 8.6 server. - RL Tibia war system - PvP protecion till level 80 Events/Games: - Dog Event! - War Event! - War Event 4x4! - Event Futball! - Event House! - Even! Map Information: - RL Tibia map customized - Full Zao with full Razachai - DHQ, POI, Demon Oak, Annihi, Azerus and a lot of quests working, also we have made 10 custom quests! - Custom islands: VIP Island, City Lost VIP Island.
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Mejores posteadores
The Neca
Guild War System 1 Parte I_vote_lcapGuild War System 1 Parte I_voting_barGuild War System 1 Parte I_vote_rcap 
damasi
Guild War System 1 Parte I_vote_lcapGuild War System 1 Parte I_voting_barGuild War System 1 Parte I_vote_rcap 
Spartan Black
Guild War System 1 Parte I_vote_lcapGuild War System 1 Parte I_voting_barGuild War System 1 Parte I_vote_rcap 
labonita
Guild War System 1 Parte I_vote_lcapGuild War System 1 Parte I_voting_barGuild War System 1 Parte I_vote_rcap 
Últimos temas
» [NPC] NPC Dicer (casino)
Guild War System 1 Parte I_icon_minitimeJue Oct 08, 2015 10:11 pm por The Neca

» [8.6] Masiyah.se Datapack | Tibia Neca
Guild War System 1 Parte I_icon_minitimeVie Ago 28, 2015 11:00 am por The Neca

» [8.6] Real Server Map 2015
Guild War System 1 Parte I_icon_minitimeJue Ago 27, 2015 6:36 pm por damasi

» Kalima War System (8.60)
Guild War System 1 Parte I_icon_minitimeJue Ago 27, 2015 4:03 pm por The Neca

» Medalla al Matar a Player!
Guild War System 1 Parte I_icon_minitimeMiér Ago 26, 2015 10:19 pm por labonita

» [Aporte] AOL Infinito
Guild War System 1 Parte I_icon_minitimeMiér Ago 26, 2015 10:18 am por The Neca

» [Aorte]AOL Infinito
Guild War System 1 Parte I_icon_minitimeMiér Ago 26, 2015 9:15 am por The Neca

» [Aporte] Nuevo Baiak War 2015
Guild War System 1 Parte I_icon_minitimeMar Ago 25, 2015 6:08 pm por The Neca

» Super Botas de Guerra
Guild War System 1 Parte I_icon_minitimeMar Ago 25, 2015 5:56 pm por The Neca


 

 Guild War System 1 Parte

Ir abajo 
AutorMensaje
The Neca
Admin
Admin
The Neca


Sorcerer
Titulo : Ing. Sistemas Computacionales
Experiencia : Mapper
Level : 3278
Edad : 33
Mensajes : 33
VIPS

Guild War System 1 Parte Empty
MensajeTema: Guild War System 1 Parte   Guild War System 1 Parte I_icon_minitimeJue Ago 13, 2015 2:50 pm

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%
The Neca 30% por Arreglar el bug y traerlo
Volver arriba Ir abajo
https://tibianeca.activo.mx
 
Guild War System 1 Parte
Volver arriba 
Página 1 de 1.

Permisos de este foro:No puedes responder a temas en este foro.
Tibia Neca | Foro Oficial :: Open Tibia :: Tutoriales-
Cambiar a: