• 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!
  • New resources must be posted under Resources tab. A discussion thread will be created automatically, you can't open threads manually anymore.

Fixed Guild War System for Website [include all]-[will not count frags] (TFS 0.3+)

Status
Not open for further replies.
Using mod system say this error:


Using script system talkactions,global,creaturescripts etc say:


I'm using lastet version of TFS, 0.3.5 ;x
Well. I never used mods, I don't understand them, so I cannot say you what's the problem. About using normal scripts, you maybe failed in something, I use it on TFS 0.3.5 and it works perfect.


Nope ain't working. People still get several frags.
It must work (I said that it won't count more than 1 frag per killed player in WEBSITE). Do you mean ingame?


I have even the movie in that I have all the files and does not count but war_attack old but also does not count and is one bug with what you see on the screenshot
17:59 This frag will not count!
17:59 Warning! The murder of Asba was not justified.



Link
clip0030.rar --Video
http://i36.tinypic.com/2w6as80.jpg - Screen
Virustotal. MD5: 744eff2fb17649bf022041d4ddd6ca04 -Skan


I use translate.google.com
Okey, give me a moment to see what happens.
 
@PATrar:
Test this war_kill.lua:

Lua:
dofile("./GuildWar.lua")

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 myGuild = getPlayerGuildId(cid)
		local enemyGuild = getPlayerGuildId(target)
		if myGuild ~= 0 and enemyGuild ~= 0 then
			if enemyGuild == getGuildWarInfo(myGuild).With then
				doAddCondition(cid, PZ)
				doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "This frag will not count!")
                                if lastHit == TRUE then
			        	registerDeath(myGuild, enemyGuild, cid, target)
                                end
			end
		end
        end
	return TRUE
end
 
heya xampy, I notice that
dofile("./GuildWar.lua"
is very repeated on your scripts
you can reduce those loops by adding a single line of it in
data/lib/data.lua

then delete dofile function from all scripts :D
(i haven't tested it but ought to work)
 
Ain't working for me the script. The problem in console is that he got problem with onkill i think.
 
Ain't working for me the script. The problem in console is that he got problem with onkill i think.
it works well for me :D post your error here and check your scripts
 
I receive this message :
Code:
[Warning - Event::loadScript] Event onAttack not found (data/creaturescripts/scripts/war_attack.lua)
 
I receive this message :
Code:
[Warning - Event::loadScript] Event onAttack not found (data/creaturescripts/scripts/war_attack.lua)

did you register the event in login.lua?
 
Hi it works fine with tfs 0.3.5 ?
I used it and script didnt count frags. Frags still were 0-0. wtf?

now it is OK sorry;)
 
Last edited:
Edited, now is working, sry, my mistake ;x
 
Last edited:
i cant make it work :S.. i get no errors but kills does not count :S:S:S
using TFS 0.3.4pl2 :S:S
anyone help plz :S
 
@PATrar:
Test this war_kill.lua:

Lua:
dofile("./GuildWar.lua")

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 myGuild = getPlayerGuildId(cid)
		local enemyGuild = getPlayerGuildId(target)
		if myGuild ~= 0 and enemyGuild ~= 0 then
			if enemyGuild == getGuildWarInfo(myGuild).With then
				doAddCondition(cid, PZ)
				doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "This frag will not count!")
                                if lastHit == TRUE then
			        	registerDeath(myGuild, enemyGuild, cid, target)
                                end
			end
		end
        end
	return TRUE
end

Yeah!!! works great thanks rep + +

@edit
Now just remove the frags are not counted in the game because you have given white skull and there are not counted by the
 
converted to mobs again with xampy's last changes...( I just dont like to add that many files ;x )
if u already added those files.. or u delete them or ignore my post ;x
go to your mods folder create a file called guild_war_system.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Guild War System" version="1.0" author="Nahruto/christiandb/GeKirAh/Xampy/Babalow" contact="dunno.com" enabled="yes">
    <description>
        Guild War System.
    </description>

    <config name="guild_war_lib"><![CDATA[
        DelayToCancel = 24 * 60 * 7 --minutes

        Maps = {
            ["map 1"] =
                {
                    Guild1Pos = {x=998, y=1006, z=7},
                    Guild2Pos = {x=1002, y=1006, z=7}
                },
            ["map 2"] =
                {
                    Guild1Pos = {x=994, y=1004, z=6},
                    Guild2Pos = {x=1000, y=1003, z=6}
                }
            }

        TimeToTeleport = 1 --minutes, when star 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 your 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 .." minutes 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.
                    " is over."
                },
            }

        --Functions ~.
        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 LUA_ERROR
        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 LUA_ERROR
        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)
            db.executeQuery("UPDATE `guilds` SET `invited_to` = ".. enemyGuild .." 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, `war_time` = ".. StartTime ..", `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 registerDeath(myGuild, enemyGuild, cid, target)
            db.executeQuery("INSERT INTO `deaths_in_wars` (`guild_id`, `player_id`, `killer_guild`, `killer`, `date`) VALUES ("..enemyGuild..", "..getPlayerGUID(target)..", "..myGuild..", "..getPlayerGUID(cid)..", " .. os.time() ..");")
            db.executeQuery("UPDATE `guilds` SET `kills` = `kills` + 1 WHERE `id` = ".. myGuild .."")
        end

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

        function removeDeaths(id)
            db.executeQuery("DELETE FROM `deaths_in_wars` WHERE `guild_id` = " ..id .. ";")
        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 getTilePzInfo(getCreaturePosition(Members[i])) == TRUE then
                        doTeleportThing(Members[i], pos, FALSE)
                        doSendMagicEffect(pos, CONST_ME_TELEPORT)
                        doSendMagicEffect(getCreaturePosition(Members[i]), CONST_ME_POFF)
                    end
                end
            end
        end

        function removeFrag(cid)
            local FragTime = getConfigInfo('timeToDecreaseFrags')
            local myFragTime = getPlayerRedSkullTicks(cid)
            local Remo = (myFragTime - FragTime)
            if Remo < 0 then
                Remo = 0
            end
            doPlayerSetRedSkullTicks(cid, Remo)
        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 LUA_ERROR
        end

        function StarWar(x)
            teleportGuild(x.myGuild, Maps[x.map].Guild1Pos)
            teleportGuild(x.enemyGuild, Maps[x.map].Guild2Pos)
        --[[
            putWarOn(x.myGuild, x.enemyGuild)
            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="/war-help;/war-invite;/war-accept;/war-reject;/war-cancel;/war-cancel-invite;/war-challenge" event="script"><![CDATA[
        domodlib('guild_war_lib')
        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) ~= LUA_ERROR then
                                local invitedGuild = getGuildId(param)
                                if invitedGuild ~= LUA_ERROR then
                                    if invitedGuild ~= myGuild then
                                        if GuildIsInPEace(invitedGuild) == true then
                                            doInviteToWar(myGuild, invitedGuild)
                                            doBroadcastMessage(BroadCast[1][1] ..getPlayerGuildName(cid).. BroadCast[1][2] ..getGuildNameById(invitedGuild).. BroadCast[1][3], BroadCast_Type)
                                        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 getGuildWarInfo(myGuild).With ~= 0 and getGuildWarInfo(myGuild).ON == 0 then
                            local enemyGuild = getGuildWarInfo(myGuild).With
                            addEvent(StarWar, 15 * 1000, {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 * DelayToCancel) then
                            StopWar(myGuild, enemy)
                            doBroadcastMessage(BroadCast[6][1] ..getGuildNameById(myGuild).. BroadCast[6][2] ..getGuildNameById(enemy).. BroadCast[6][3], BroadCast_Type)
                        else
                            doPlayerSendCancel(cid, CancelMessagesWar[11])
                        end
                    else
                        doPlayerSendCancel(cid, CancelMessagesWar[10])
                    end
                elseif words == "/war-help" then
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Use: /war-invite guildname; /war-accept; /war-reject; /war-cancel; /war-challenge; /war-cancel-invite.")
                end
            else
                doPlayerSendCancel(cid, CancelMessagesWar[2])
            end
            if words ~= "/war-help" then
                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()
            end
            return true
        end
    ]]></talkaction>

    <globalevent name="wars" interval="1810" event="buffer"><![CDATA[
        domodlib('guild_war_lib')
        for _, id in ipairs(getGuildsWithWar()) do
            local Check = db.getResult("SELECT `name` FROM `guilds` WHERE id = ".. getGuildWarInfo(id).With .."")
            if Check:getID() == LUA_ERROR then
                cleanInfo(id)
            end
        end
        _result = true
    ]]></globalevent>

    <event type="login" name="WarLogin" event="buffer"><![CDATA[
        registerCreatureEvent(cid, "WarAttack")
        registerCreatureEvent(cid, "WarKill")
        _result = true
    ]]></event>

    <event type="combat" name="WarAttack" event="script"><![CDATA[
        domodlib('guild_war_lib')
        function onCombat(cid, target)
            if isPlayer(cid) and isPlayer(target) then
                local myGuild = getPlayerGuildId(cid)
                local enemyGuild = getPlayerGuildId(target)
                if myGuild ~= 0 and enemyGuild ~= 0 then
                    if enemyGuild == getGuildWarInfo(myGuild).With then
                        if getPlayerSkullType(target) == 0 then
                            doCreatureSetSkullType(target, 1)
                        end
                    end
                end
            end
            return true
        end
    ]]></event>

    <event type="kill" name="WarKill" event="script"><![CDATA[
        domodlib('guild_war_lib')

        local PZ = createConditionObject(CONDITION_INFIGHT)
        setConditionParam(PZ, CONDITION_PARAM_TICKS, getConfigInfo('whiteSkullTime'))

        function onKill(cid, target, lastHit)
            if isPlayer(cid) and isPlayer(target) then
                local myGuild = getPlayerGuildId(cid)
                local enemyGuild = getPlayerGuildId(target)
                if myGuild ~= 0 and enemyGuild ~= 0 then
                    if enemyGuild == getGuildWarInfo(myGuild).With then
                        doAddCondition(cid, PZ)
                        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "This frag will not count!")
                        if lastHit == TRUE then
                            registerDeath(myGuild, enemyGuild, cid, target)
                        end
                    end
                end
            end
            return true
        end
    ]]></event>
</mod>
after it go back to -> 5.0Add this to database (phpMyAdmin normally): <- at xampy's post
 
Yeah!!! works great thanks rep + +

@edit
Now just remove the frags are not counted in the game because you have given white skull and there are not counted by the

Thanks for rep. I don't understand the edit part, that English is malformed XD.

converted to mobs again with xampy's last changes...( I just dont like to add that many files ;x )
if u already added those files.. or u delete them or ignore my post ;x
go to your mods folder create a file called guild_war_system.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Guild War System" version="1.0" author="Nahruto/christiandb/GeKirAh/Xampy/Babalow" contact="dunno.com" enabled="yes">
    <description>
        Guild War System.
    </description>

    <config name="guild_war_lib"><![CDATA[
        DelayToCancel = 24 * 60 * 7 --minutes

        Maps = {
            ["map 1"] =
                {
                    Guild1Pos = {x=998, y=1006, z=7},
                    Guild2Pos = {x=1002, y=1006, z=7}
                },
            ["map 2"] =
                {
                    Guild1Pos = {x=994, y=1004, z=6},
                    Guild2Pos = {x=1000, y=1003, z=6}
                }
            }

        TimeToTeleport = 1 --minutes, when star 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 your 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 .." minutes 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.
                    " is over."
                },
            }

        --Functions ~.
        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 LUA_ERROR
        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 LUA_ERROR
        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)
            db.executeQuery("UPDATE `guilds` SET `invited_to` = ".. enemyGuild .." 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, `war_time` = ".. StartTime ..", `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 registerDeath(myGuild, enemyGuild, cid, target)
            db.executeQuery("INSERT INTO `deaths_in_wars` (`guild_id`, `player_id`, `killer_guild`, `killer`, `date`) VALUES ("..enemyGuild..", "..getPlayerGUID(target)..", "..myGuild..", "..getPlayerGUID(cid)..", " .. os.time() ..");")
            db.executeQuery("UPDATE `guilds` SET `kills` = `kills` + 1 WHERE `id` = ".. myGuild .."")
        end

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

        function removeDeaths(id)
            db.executeQuery("DELETE FROM `deaths_in_wars` WHERE `guild_id` = " ..id .. ";")
        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 getTilePzInfo(getCreaturePosition(Members[i])) == TRUE then
                        doTeleportThing(Members[i], pos, FALSE)
                        doSendMagicEffect(pos, CONST_ME_TELEPORT)
                        doSendMagicEffect(getCreaturePosition(Members[i]), CONST_ME_POFF)
                    end
                end
            end
        end

        function removeFrag(cid)
            local FragTime = getConfigInfo('timeToDecreaseFrags')
            local myFragTime = getPlayerRedSkullTicks(cid)
            local Remo = (myFragTime - FragTime)
            if Remo < 0 then
                Remo = 0
            end
            doPlayerSetRedSkullTicks(cid, Remo)
        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 LUA_ERROR
        end

        function StarWar(x)
            teleportGuild(x.myGuild, Maps[x.map].Guild1Pos)
            teleportGuild(x.enemyGuild, Maps[x.map].Guild2Pos)
        --[[
            putWarOn(x.myGuild, x.enemyGuild)
            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="/war-help;/war-invite;/war-accept;/war-reject;/war-cancel;/war-cancel-invite;/war-challenge" event="script"><![CDATA[
        domodlib('guild_war_lib')
        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) ~= LUA_ERROR then
                                local invitedGuild = getGuildId(param)
                                if invitedGuild ~= LUA_ERROR then
                                    if invitedGuild ~= myGuild then
                                        if GuildIsInPEace(invitedGuild) == true then
                                            doInviteToWar(myGuild, invitedGuild)
                                            doBroadcastMessage(BroadCast[1][1] ..getPlayerGuildName(cid).. BroadCast[1][2] ..getGuildNameById(invitedGuild).. BroadCast[1][3], BroadCast_Type)
                                        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 getGuildWarInfo(myGuild).With ~= 0 and getGuildWarInfo(myGuild).ON == 0 then
                            local enemyGuild = getGuildWarInfo(myGuild).With
                            addEvent(StarWar, 15 * 1000, {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 * DelayToCancel) then
                            StopWar(myGuild, enemy)
                            doBroadcastMessage(BroadCast[6][1] ..getGuildNameById(myGuild).. BroadCast[6][2] ..getGuildNameById(enemy).. BroadCast[6][3], BroadCast_Type)
                        else
                            doPlayerSendCancel(cid, CancelMessagesWar[11])
                        end
                    else
                        doPlayerSendCancel(cid, CancelMessagesWar[10])
                    end
                elseif words == "/war-help" then
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Use: /war-invite guildname; /war-accept; /war-reject; /war-cancel; /war-challenge; /war-cancel-invite.")
                end
            else
                doPlayerSendCancel(cid, CancelMessagesWar[2])
            end
            if words ~= "/war-help" then
                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()
            end
            return true
        end
    ]]></talkaction>

    <globalevent name="wars" interval="1810" event="buffer"><![CDATA[
        domodlib('guild_war_lib')
        for _, id in ipairs(getGuildsWithWar()) do
            local Check = db.getResult("SELECT `name` FROM `guilds` WHERE id = ".. getGuildWarInfo(id).With .."")
            if Check:getID() == LUA_ERROR then
                cleanInfo(id)
            end
        end
        _result = true
    ]]></globalevent>

    <event type="login" name="WarLogin" event="buffer"><![CDATA[
        registerCreatureEvent(cid, "WarAttack")
        registerCreatureEvent(cid, "WarKill")
        _result = true
    ]]></event>

    <event type="combat" name="WarAttack" event="script"><![CDATA[
        domodlib('guild_war_lib')
        function onCombat(cid, target)
            if isPlayer(cid) and isPlayer(target) then
                local myGuild = getPlayerGuildId(cid)
                local enemyGuild = getPlayerGuildId(target)
                if myGuild ~= 0 and enemyGuild ~= 0 then
                    if enemyGuild == getGuildWarInfo(myGuild).With then
                        if getPlayerSkullType(target) == 0 then
                            doCreatureSetSkullType(target, 1)
                        end
                    end
                end
            end
            return true
        end
    ]]></event>

    <event type="kill" name="WarKill" event="script"><![CDATA[
        domodlib('guild_war_lib')

        local PZ = createConditionObject(CONDITION_INFIGHT)
        setConditionParam(PZ, CONDITION_PARAM_TICKS, getConfigInfo('whiteSkullTime'))

        function onKill(cid, target, lastHit)
            if isPlayer(cid) and isPlayer(target) then
                local myGuild = getPlayerGuildId(cid)
                local enemyGuild = getPlayerGuildId(target)
                if myGuild ~= 0 and enemyGuild ~= 0 then
                    if enemyGuild == getGuildWarInfo(myGuild).With then
                        doAddCondition(cid, PZ)
                        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "This frag will not count!")
                        if lastHit == TRUE then
                            registerDeath(myGuild, enemyGuild, cid, target)
                        end
                    end
                end
            end
            return true
        end
    ]]></event>
</mod>
after it go back to -> 5.0Add this to database (phpMyAdmin normally): <- at xampy's post

Thanks babalow, I'll change all those scripts by your mod when I have time.
 
I still dont get kills to be counted :S.... are you sure that war_kill.lua is working fine???, please help ;)
 
converted to mobs again with xampy's last changes...( I just dont like to add that many files ;x )
if u already added those files.. or u delete them or ignore my post ;x
go to your mods folder create a file called guild_war_system.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Guild War System" version="1.0" author="Nahruto/christiandb/GeKirAh/Xampy/Babalow" contact="dunno.com" enabled="yes">
    <description>
        Guild War System.
    </description>

    <config name="guild_war_lib"><![CDATA[
        DelayToCancel = 24 * 60 * 7 --minutes

        Maps = {
            ["map 1"] =
                {
                    Guild1Pos = {x=998, y=1006, z=7},
                    Guild2Pos = {x=1002, y=1006, z=7}
                },
            ["map 2"] =
                {
                    Guild1Pos = {x=994, y=1004, z=6},
                    Guild2Pos = {x=1000, y=1003, z=6}
                }
            }

        TimeToTeleport = 1 --minutes, when star 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 your 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 .." minutes 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.
                    " is over."
                },
            }

        --Functions ~.
        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 LUA_ERROR
        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 LUA_ERROR
        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)
            db.executeQuery("UPDATE `guilds` SET `invited_to` = ".. enemyGuild .." 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, `war_time` = ".. StartTime ..", `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 registerDeath(myGuild, enemyGuild, cid, target)
            db.executeQuery("INSERT INTO `deaths_in_wars` (`guild_id`, `player_id`, `killer_guild`, `killer`, `date`) VALUES ("..enemyGuild..", "..getPlayerGUID(target)..", "..myGuild..", "..getPlayerGUID(cid)..", " .. os.time() ..");")
            db.executeQuery("UPDATE `guilds` SET `kills` = `kills` + 1 WHERE `id` = ".. myGuild .."")
        end

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

        function removeDeaths(id)
            db.executeQuery("DELETE FROM `deaths_in_wars` WHERE `guild_id` = " ..id .. ";")
        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 getTilePzInfo(getCreaturePosition(Members[i])) == TRUE then
                        doTeleportThing(Members[i], pos, FALSE)
                        doSendMagicEffect(pos, CONST_ME_TELEPORT)
                        doSendMagicEffect(getCreaturePosition(Members[i]), CONST_ME_POFF)
                    end
                end
            end
        end

        function removeFrag(cid)
            local FragTime = getConfigInfo('timeToDecreaseFrags')
            local myFragTime = getPlayerRedSkullTicks(cid)
            local Remo = (myFragTime - FragTime)
            if Remo < 0 then
                Remo = 0
            end
            doPlayerSetRedSkullTicks(cid, Remo)
        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 LUA_ERROR
        end

        function StarWar(x)
            teleportGuild(x.myGuild, Maps[x.map].Guild1Pos)
            teleportGuild(x.enemyGuild, Maps[x.map].Guild2Pos)
        --[[
            putWarOn(x.myGuild, x.enemyGuild)
            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="/war-help;/war-invite;/war-accept;/war-reject;/war-cancel;/war-cancel-invite;/war-challenge" event="script"><![CDATA[
        domodlib('guild_war_lib')
        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) ~= LUA_ERROR then
                                local invitedGuild = getGuildId(param)
                                if invitedGuild ~= LUA_ERROR then
                                    if invitedGuild ~= myGuild then
                                        if GuildIsInPEace(invitedGuild) == true then
                                            doInviteToWar(myGuild, invitedGuild)
                                            doBroadcastMessage(BroadCast[1][1] ..getPlayerGuildName(cid).. BroadCast[1][2] ..getGuildNameById(invitedGuild).. BroadCast[1][3], BroadCast_Type)
                                        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 getGuildWarInfo(myGuild).With ~= 0 and getGuildWarInfo(myGuild).ON == 0 then
                            local enemyGuild = getGuildWarInfo(myGuild).With
                            addEvent(StarWar, 15 * 1000, {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 * DelayToCancel) then
                            StopWar(myGuild, enemy)
                            doBroadcastMessage(BroadCast[6][1] ..getGuildNameById(myGuild).. BroadCast[6][2] ..getGuildNameById(enemy).. BroadCast[6][3], BroadCast_Type)
                        else
                            doPlayerSendCancel(cid, CancelMessagesWar[11])
                        end
                    else
                        doPlayerSendCancel(cid, CancelMessagesWar[10])
                    end
                elseif words == "/war-help" then
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Use: /war-invite guildname; /war-accept; /war-reject; /war-cancel; /war-challenge; /war-cancel-invite.")
                end
            else
                doPlayerSendCancel(cid, CancelMessagesWar[2])
            end
            if words ~= "/war-help" then
                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()
            end
            return true
        end
    ]]></talkaction>

    <globalevent name="wars" interval="1810" event="buffer"><![CDATA[
        domodlib('guild_war_lib')
        for _, id in ipairs(getGuildsWithWar()) do
            local Check = db.getResult("SELECT `name` FROM `guilds` WHERE id = ".. getGuildWarInfo(id).With .."")
            if Check:getID() == LUA_ERROR then
                cleanInfo(id)
            end
        end
        _result = true
    ]]></globalevent>

    <event type="login" name="WarLogin" event="buffer"><![CDATA[
        registerCreatureEvent(cid, "WarAttack")
        registerCreatureEvent(cid, "WarKill")
        _result = true
    ]]></event>

    <event type="combat" name="WarAttack" event="script"><![CDATA[
        domodlib('guild_war_lib')
        function onCombat(cid, target)
            if isPlayer(cid) and isPlayer(target) then
                local myGuild = getPlayerGuildId(cid)
                local enemyGuild = getPlayerGuildId(target)
                if myGuild ~= 0 and enemyGuild ~= 0 then
                    if enemyGuild == getGuildWarInfo(myGuild).With then
                        if getPlayerSkullType(target) == 0 then
                            doCreatureSetSkullType(target, 1)
                        end
                    end
                end
            end
            return true
        end
    ]]></event>

    <event type="kill" name="WarKill" event="script"><![CDATA[
        domodlib('guild_war_lib')

        local PZ = createConditionObject(CONDITION_INFIGHT)
        setConditionParam(PZ, CONDITION_PARAM_TICKS, getConfigInfo('whiteSkullTime'))

        function onKill(cid, target, lastHit)
            if isPlayer(cid) and isPlayer(target) then
                local myGuild = getPlayerGuildId(cid)
                local enemyGuild = getPlayerGuildId(target)
                if myGuild ~= 0 and enemyGuild ~= 0 then
                    if enemyGuild == getGuildWarInfo(myGuild).With then
                        doAddCondition(cid, PZ)
                        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "This frag will not count!")
                        if lastHit == TRUE then
                            registerDeath(myGuild, enemyGuild, cid, target)
                        end
                    end
                end
            end
            return true
        end
    ]]></event>
</mod>
after it go back to -> 5.0Add this to database (phpMyAdmin normally): <- at xampy's post

where this file is supposed to be saved?
 
I still dont get kills to be counted :S.... are you sure that war_kill.lua is working fine???, please help ;)

Yes, it works fine, it must count frags...

where this file is supposed to be saved?

<distro>/mods/

Example:
C:\Documents and Settings\Administrator\Desktop\OTServer\mods\war_mod.xml
 
Status
Not open for further replies.
Back
Top