Xampy
PHP | SQL | LUA | C++
- Joined
- Jun 22, 2008
- Messages
- 1,109
- Reaction score
- 17
Guild-War System for TFS 0.3.5 & TFS 0.3.6 [include PHP file and MOD file]
Guild-War System for TFS 0.3.4 <----------|||----------> Guild-War System for TFS 0.4
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Guild-War System for TFS 0.3.5 or TFS 0.3.6.
It needs Gesior AAC too.
Let's begin with the "tutorial":
*Note 1: it's highly recommended to erase `deaths_in_wars` table before using this new system, else some functions will not works properly (DROP TABLE `deaths_in_wars`).
*Note 2: to make it work, it will delete all current wars (the wars that were working with previous release.
*Note 3: it works fine with Mozilla Firefox; it works buggy with Internet Explorer, Opera, etc. (I don't know how to repair it by the moment.).
1)Add this file to mods folder (mods folder is inside otserver folder) and call it guildWarSystem.xml:
2)Add this to database (phpMyAdmin normally):
If you have this error:
3a)Go to your xampp/htdocs folder. Copy this into a file called wars.php:
Next step (3b) continues hereeeee.
(The text that you have entered is too long (75765 characters). Please shorten it to 75000 characters long.)
Guild-War System for TFS 0.3.4 <----------|||----------> Guild-War System for TFS 0.4
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Guild-War System for TFS 0.3.5 or TFS 0.3.6.
It needs Gesior AAC too.
Let's begin with the "tutorial":
*Note 1: it's highly recommended to erase `deaths_in_wars` table before using this new system, else some functions will not works properly (DROP TABLE `deaths_in_wars`).
*Note 2: to make it work, it will delete all current wars (the wars that were working with previous release.
*Note 3: it works fine with Mozilla Firefox; it works buggy with Internet Explorer, Opera, etc. (I don't know how to repair it by the moment.).
1)Add this file to mods folder (mods folder is inside otserver folder) and call it guildWarSystem.xml:
PHP:
<?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>
2)Add this to database (phpMyAdmin normally):
PHP:
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 ;
PHP:
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 ;
PHP:
UPDATE `guilds` SET `invited_to` = 0, `invited_by` = 0, `in_war_with` = 0, `kills` = 0, `show` = 0, `war_time` = 0 WHERE `id` > 0;
If you have this error:
Elseif you have this other error:The Following Errors Have Occurred:
# Invalid guild name format.
///// Use PHP file from 3a step.
The Following Errors Have Occurred:
# Guild with ID 0 doesn't exist.
///// Use PHP file from 3b step.
3a)Go to your xampp/htdocs folder. Copy this into a file called wars.php:
PHP:
<?PHP
//Litle Config
$MaxShow = 100;
//END
if($action == '')
{
$main_content .= '
<P ALIGN=CENTER>
<br>
<FONT SIZE=4 COLOR=#8A0808>
How to use...
</FONT>
<br>
<br>
<FONT SIZE=2 COLOR=#DF0101>
* <b>/war-invite</b> :
<FONT SIZE=1 COLOR=green>
Send an invitation to start a war.<br>
<u>Example</u>: /war-invite Death Hard
</FONT><br>
* <b>/war-accept</b> :
<FONT SIZE=1 COLOR=green>
Accept the invitation to start a war.
</FONT><br>
* <b>/war-reject</b> :
<FONT SIZE=1 COLOR=green>
Reject the invitation to start a war.
</FONT><br>
* <b>/war-cancel-invite</b> :
<FONT SIZE=1 COLOR=green>
Cancel the invitation already sent to start a war.
</FONT><br>
* <b>/war-cancel</b> :
<FONT SIZE=1 COLOR=green>
Finish the current war: it can only be used after 1 day of war.
</FONT><br>
</FONT>
<br>
<FONT SIZE=2 COLOR=#8A0808>
Those commands can only be executed by guild leaders.<br><br>
<table border="1"><tr border="1"><td border="1"><h3>Remember:</h3>
<ul>
<li>You won\'t get any frag if you kill someone that is VERSUS you.</li>
<li>If you kill someone that is in your guild, you will get a frag.</li>
</ul></td></tr></table>
</FONT>
</P>
';
$wars = $SQL->query("
SELECT g.name AS gname, wg.name AS wgname, g.war_time AS gtime, wg.war_time AS wgtime, g.kills AS kills, wg.kills AS ekills, g.show AS s, g.id AS gid, wg.id AS wgid, g.logo_gfx_name AS glogo, wg.logo_gfx_name AS wglogo
FROM guilds AS g
INNER JOIN guilds AS wg
ON wg.id = g.in_war_with
ORDER BY s DESC LIMIT 50;
");
foreach ($wars as $k=>$v) {
if ($v[s] == 1)
{
$glogo = "default_logo.gif";
$wglogo = "default_logo.gif";
if(!empty($v[glogo]))
$glogo = $v[glogo];
if(!empty($v[wglogo]))
$wglogo = $v[wglogo];
if(is_int($number_of_rows / 2)) { $bgcolor = '#D4C0A1'; } else { $bgcolor = '#D5E1A2'; } $number_of_rows++;
$stats .="
<TR BGCOLOR=".$bgcolor.">
<TD WIDTH=30%><center><a href='index.php?subtopic=guilds&action=show&guild=" . $v[gname] . "'><font color='#5A2800'>$v[gname]</font></a></center></TD>
<TD WIDTH=40%><center><a href='index.php?subtopic=wars&action=show&war=" . $v[gid] . "'><font color='#5A2800'>{$v[kills]} - {$v[ekills]}</font></a></center></TD>
<TD WIDTH=30%><center><a href='index.php?subtopic=guilds&action=show&guild=" . $v[wgname] . "'><font color='#5A2800'>$v[wgname]</font></a></center></TD>
</TR>
<TR BGCOLOR=".$bgcolor.">
<TD><center><img border=1 src='guilds/".$glogo."' width='64px' height='64px'/></center></TD>
<TD><center><b>Declared at:</b><br />" . date("d/m/y H:i:s", $v[gtime]) . "<p><b>Started at:</b><br />" . date("d/m/y H:i:s", $v[wgtime]) . "</center></TD>
<TD><center><img border=1 src='guilds/".$wglogo."' width='64px' height='64px'/></center></TD>
</TR>
";
}
}
$main_content .= '
<table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody> <TR BGCOLOR="'.$config['site']['vdarkborder'].'"><td><font color="white" size=4><b><blink>Active Wars</blink></b></font></td></tr></tbody></table>
';
if(!$stats) {
$main_content .= '
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR='.$config['site']['darkborder'].'>
<TD>
No active wars in '.$config['server']['serverName'].' yet.
</TD>
</TR>
</TABLE>
';
} else {
$main_content .= "
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
$stats
</TABLE>
";
}
?>
<?PHP
$invitations = $SQL->query("
SELECT ig.name AS igname, i.name AS iname, i.id AS iid, ig.id AS igid, i.war_time AS itime, i.logo_gfx_name AS ilogo, ig.logo_gfx_name AS iglogo
FROM guilds AS i
INNER JOIN guilds AS ig
ON ig.id = i.invited_to
ORDER BY itime ASC LIMIT 50;
");
foreach ($invitations as $k=>$v) {
$ilogo = "default_logo.gif";
$iglogo = "default_logo.gif";
if(!empty($v[ilogo]))
$ilogo = $v[ilogo];
if(!empty($v[iglogo]))
$iglogo = $v[iglogo];
if(is_int($number_of_rows / 2)) { $bgcolor = '#D4C0A1'; } else { $bgcolor = '#D5E1A2'; } $number_of_rows++;
$invi .="
<TR BGCOLOR=".$bgcolor.">
<TD width=30%>
<center>
<b>
<a href='index.php?subtopic=guilds&action=show&guild=" . $v[iname] . "'><font color='#5A2800'>$v[iname]</font></a>
</b>
</center>
</TD>
<TD width=40%><center>0-0</center></TD>
<TD width=30%>
<center>
<b>
<a href='index.php?subtopic=guilds&action=show&guild=" . $v[igname] . "'><font color='#5A2800'>$v[igname]</font></a>
</b>
</center>
</TD>
</TR>
<TR BGCOLOR=".$bgcolor.">
<TD>
<center>
<img border=1 src='guilds/".$ilogo."' width='64px' height='64px'/>
</center>
</TD>
<TD><center><b>Declared on:</b><br />" . date("d/m/y H:i:s", $v[itime]) . "</center></TD>
<TD>
<center>
<img border=1 src='guilds/".$iglogo."' width='64px' height='64px'/>
</center>
</TD>
</TR>
";
}
$main_content .= '<br><br><br>
<table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody> <TR BGCOLOR="'.$config['site']['vdarkborder'].'"><td><font color="white" size=4><b><blink>Declared Wars</blink></b></font></td></tr></tbody></table>';
if(!$invi) {
$main_content .= '
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR='.$config['site']['darkborder'].'>
<TD>
No declared wars in '.$config['server']['serverName'].' yet.
</TD>
</TR>
</TABLE>
<br>
';
} else {
$main_content .= "
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
$invi
</TABLE>
";
}
}
//SHOW FRAGS ~~
if($action == 'show')
{
$guild = $ots->createObject('Guild');
$guild->load($_REQUEST['war']);
$ranks = $SQL->query("
SELECT
*
FROM
guild_ranks
WHERE
guild_id = ". $guild->getId() ."
ORDER BY
level DESC;
");
foreach ($ranks as $y)
{
$Players = $SQL->query("
SELECT
*
FROM
players
WHERE
rank_id = ". $y[id] ."
ORDER BY
name
ASC;");
foreach ($Players as $v)
{
$totDeaths = 0;
$deaths = $SQL->query("
SELECT
COUNT(player_id) AS n
FROM
deaths_in_wars
WHERE
player_id = ". $v[id] ."
GROUP BY
player_id
DESC LIMIT 1;");
foreach ($deaths as $q)
{
$totDeaths = $q[n];
}
if($totDeaths > 1 || $totDeaths == 0){
$deathL = "deaths";
}
else{
$deathL = "death";
}
$membersDeaths1 .="<tr bgcolor=#D4C0A1>
<td width=70%><a href=index.php?subtopic=characters&name=" . $v[name] . "><u>$v[name]</u></a></td>
<td width=30%>$totDeaths $deathL</td>
</tr>
";
$totFrags = 0;
$frags = $SQL->query("
SELECT
COUNT(killer) AS m
FROM
deaths_in_wars
WHERE
killer = ". $v[id] ."
GROUP BY
killer
DESC LIMIT 1;");
foreach ($frags as $p)
{
$totFrags = $p[m];
}
if($totFrags > 1 || $totFrags == 0){
$fragL = "frags";
}
else{
$fragL = "frag";
}
$membersFrags1 .= "<tr bgcolor=#D4C0A1>
<td width=70%><a href=index.php?subtopic=characters&name=" . $v[name] . "><u>$v[name]</u></a></td>
<td width=30%>$totFrags $fragL</td>
</tr>
";
}
}
$guild2 = $ots->createObject('Guild');
$guild2->load($guild->getCustomField(in_war_with));
$ranks2 = $SQL->query("
SELECT
*
FROM
guild_ranks
WHERE
guild_id = ". $guild2->getId() ."
ORDER BY
level DESC;
");
foreach ($ranks2 as $y)
{
$Players = $SQL->query("
SELECT
*
FROM
players
WHERE
rank_id = ". $y[id] ."
ORDER BY
name
ASC;");
foreach ($Players as $v)
{
$totDeaths2 = 0;
$deaths = $SQL->query("
SELECT
COUNT(player_id) AS n
FROM
deaths_in_wars
WHERE
player_id = ". $v[id] ."
GROUP BY
player_id
DESC LIMIT 1;");
foreach ($deaths as $q)
{
$totDeaths2 = $q[n];
}
if($totDeaths2 > 1 || $totDeaths2 == 0){
$deathL = "deaths";
}
else{
$deathL = "death";
}
$membersDeaths2 .= "<tr bgcolor=#D4C0A1>
<td width=70%><a href=index.php?subtopic=characters&name=" . $v[name] . "><u>$v[name]</u></a></td>
<td width=30%>$totDeaths2 $deathL</td>
</tr>
";
$totFrags2 = 0;
$frags = $SQL->query("
SELECT
COUNT(killer) AS m
FROM
deaths_in_wars
WHERE
killer = ". $v[id] ."
GROUP BY
killer
DESC LIMIT 1;");
foreach ($frags as $p)
{
$totFrags2 = $p[m];
}
if($totFrags2 > 1 || $totFrags2 == 0){
$fragL = "frags";
}
else{
$fragL = "frag";
}
$membersFrags2 .= "<tr bgcolor=#D4C0A1>
<td width=70%><a href=index.php?subtopic=characters&name=" . $v[name] . "><u>$v[name]</u></a></td>
<td width=30%>$totFrags2 $fragL</td>
</tr>
";
}
}
$deaths3 = $SQL->query("
SELECT
*
FROM
deaths_in_wars
WHERE
(killer_guild = ". $guild->getId() ." OR killer_guild = ". $guild2->getId() .")
ORDER BY
date
DESC LIMIT ". $MaxShow .";");
$deathsG1 = $SQL->query("
SELECT
*
FROM
deaths_in_wars
WHERE
killer_guild = ". $guild->getId() ."
ORDER BY
date
DESC LIMIT ". $MaxShow .";");
$deathsG2 = $SQL->query("
SELECT
*
FROM
deaths_in_wars
WHERE
killer_guild = ". $guild2->getId() ."
ORDER BY
date
DESC LIMIT ". $MaxShow .";");
$Topfragger1 = $SQL->query("
SELECT
killer, COUNT(killer) maximo
FROM
deaths_in_wars
WHERE
killer_guild = ". $guild->getId() ."
GROUP BY
killer
ORDER BY
maximo
DESC LIMIT 1;");
foreach ($Topfragger1 as $y)
{
$name = $ots->createObject('Player');
$name->load($y[killer]);
$TopFraggerName = $name->getName();
$numTop1 = $y[maximo];
}
$Topfragger2 = $SQL->query("
SELECT
killer, COUNT(killer) maximo
FROM
deaths_in_wars
WHERE
killer_guild = ". $guild2->getId() ."
GROUP BY
killer
ORDER BY
maximo
DESC LIMIT 1;");
foreach ($Topfragger2 as $y)
{
$name = $ots->createObject('Player');
$name->load($y[killer]);
$TopFraggerName2 = $name->getName();
$numTop2 = $y[maximo];
}
$mostDead = $SQL->query("
SELECT
player_id, COUNT(player_id) maximo
FROM
deaths_in_wars
WHERE
killer_guild = ". $guild->getId() ."
GROUP BY
player_id
ORDER BY
maximo
DESC LIMIT 1;");
foreach ($mostDead as $y)
{
$name = $ots->createObject('Player');
$name->load($y[player_id]);
$mostDeadName = $name->getName();
$mostDeadNum = $y[maximo];
}
$mostDead2= $SQL->query("
SELECT
player_id, COUNT(player_id) maximo
FROM
deaths_in_wars
WHERE
killer_guild = ". $guild2->getId() ."
GROUP BY
player_id
ORDER BY
maximo
DESC LIMIT 1;");
foreach ($mostDead2 as $y)
{
$name = $ots->createObject('Player');
$name->load($y[player_id]);
$mostDeadName2 = $name->getName();
$mostDeadNum2= $y[maximo];
}
foreach ($deaths3 as $a=>$b) {
$killed3 = $ots->createObject('Player');
$killed3->load($b[player_id]);
$killedName3 = $killed3->getName();
$killer3 = $ots->createObject('Player');
$killer3->load($b[killer]);
$killerName3 = $killer3->getName();
$guild3 = $ots->createObject('Guild');
$guild3->load($b[killer_guild]);
$guildName3 = $guild3->getName();
$totKills1 = 0;
$killss1 = $SQL->query("
SELECT
COUNT(result1) AS m
FROM
deaths_in_wars
WHERE
(killer_guild = ". $guild->getId() ." AND date <= ". $b[date] .")
GROUP BY
result1
DESC LIMIT 1;");
foreach ($killss1 as $p)
{
$totKills1 = $p[m];
}
$totKills2 = 0;
$killss2 = $SQL->query("
SELECT
COUNT(result2) AS n
FROM
deaths_in_wars
WHERE
(killer_guild = ". $guild2->getId() ." AND date <= ". $b[date] .")
GROUP BY
result2
DESC LIMIT 1;");
foreach ($killss2 as $q)
{
$totKills2 = $q[n];
}
$kills3 .="
<TR BGCOLOR=#D4C0A1>
<TD>
<a href='index.php?subtopic=characters&name=" . $killerName3 . "'><u>$killerName3</u></a>
</TD>
<TD>
<a href='index.php?subtopic=characters&name=" . $killedName3 . "'><u>$killedName3</u></a>
</TD>
<TD>
$guildName3
</TD>
<TD>
$totKills1:$totKills2
</TD>
<TD>
" . date("d/m/y H:i:s", $b[date]) . "
</TD>
</TR>
";
}
if(!empty($mostDeadNum)){$mostDeadNum = $mostDeadNum;}else{$mostDeadNum = 0 + $mostDeadNum;}
if(!empty($mostDeadNum2)){$mostDeadNum2 = $mostDeadNum2;}else{$mostDeadNum2 = 0 + $mostDeadNum2;}
if(!empty($numTop1)){$numTop1 = $numTop1;}else{$numTop1 = 0 + $numTop1;}
if(!empty($numTop2)){$numTop2 = $numTop2;}else{$numTop2 = 0 + $numTop2;}
foreach ($deathsG1 as $k=>$v) {
$killed = $ots->createObject('Player');
$killed->load($v[player_id]);
$killedName = $killed->getName();
$killer = $ots->createObject('Player');
$killer->load($v[killer]);
$killerName = $killer->getName();
$kills .="
<TR BGCOLOR=\"".$config['site'][($k % 2 == 1 ? 'light' : 'dark').'border']."\">
<TD>
<center>
<b>
<a href='index.php?subtopic=characters&name=" . $killedName . "'>$killedName</a>
</b>
</center>
</TD>
<TD>
<center>
<b>
<a href='index.php?subtopic=characters&name=" . $killerName . "'>$killerName</a>
</b>
</center>
</TD>
<TD>
<center>
" . date("d/m/y H:i:s", $v[date]) . "
</center>
</TD>
</TR>
";
}
foreach ($deathsG2 as $k=>$v) {
$killed = $ots->createObject('Player');
$killed->load($v[player_id]);
$killedName = $killed->getName();
$killer = $ots->createObject('Player');
$killer->load($v[killer]);
$killerName = $killer->getName();
$kills2 .="
<TR BGCOLOR=\"".$config['site'][($k % 2 == 1 ? 'light' : 'dark').'border']."\">
<TD>
<center>
<b>
<a href='index.php?subtopic=characters&name=" . $killedName . "'>$killedName</a>
</b>
</center>
</TD>
<TD>
<center>
<b>
<a href='index.php?subtopic=characters&name=" . $killerName . "'>$killerName</a>
</b>
</center>
</TD>
<TD>
<center>
" . date("d/m/y H:i:s", $v[date]) . "
</center>
</TD>
</TR>
";
}
if($numTop1 > 1 || $numTop1 == 0){$fragl1 = "frags";}else{$fragl1 = "frag";}
if($numTop2 > 1 || $numTop2 == 0){$fragl2 = "frags";}else{$fragl2= "frag";}
if($mostDeadNum > 1 || $mostDeadNum == 0){$deathl1 = "deaths";}else{$deathl1 = "death";}
if($mostDeadNum2 > 1 || $mostDeadNum2 == 0){$deathl2 = "deaths";}else{$deathl2 = "death";}
$main_content .= '
<table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody> <TR BGCOLOR="'.$config['site']['vdarkborder'].'"><td><font color="white" size=4><b>War Information</b></font></td></tr></tbody></table>
';
$logo = "default_logo.gif";
$logo2 = "default_logo.gif";
$a = $guild->getCustomField(logo_gfx_name);
$b = $guild2->getCustomField(logo_gfx_name);
if(!empty($a))
$logo = $a;
if(!empty($b))
$logo2 = $b;
$main_content .= "
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR='#D4C0A1'>
<TD WIDTH='35%'><center><a href='index.php?subtopic=guilds&action=show&guild=".$guild->getName()."'><font color='#5A2800'>".$guild->getName()."</font></a></center></TD>
<TD WIDTH='30%'><center><font color='#5A2800'><b>".$guild->getCustomField(kills)." - ".$guild2->getCustomField(kills)."</b></font></center></TD>
<TD WIDTH='35%'><center><a href='index.php?subtopic=guilds&action=show&guild=".$guild2->getName()."'><font color='#5A2800'>".$guild2->getName()."</font></a></center></TD>
</TR>
<TR BGCOLOR='#D4C0A1'>
<TD><center><img border=1 src='guilds/".$logo."' width='64px' height='64px'/><p><b><u>Top fragger:</b></u><br /><a href='index.php?subtopic=characters&name=".$TopFraggerName."'>".$TopFraggerName."</a> (".$numTop1." ".$fragl1.")<p><b><u>Most dead:</b></u><br /><a href='index.php?subtopic=characters&name=".$mostDeadName2."'>".$mostDeadName2."</a> (".$mostDeadNum2." ".$deathl2.")</center></TD>
<TD><center><b>Declared at:</b><br />" . date("d/m/y H:i:s", $guild->getCustomField(war_time)) . "<p><b>Started at:</b><br />" . date("d/m/y H:i:s", $guild2->getCustomField(war_time)) . "</center></TD>
<TD><center><img border=1 src='guilds/".$logo2."' width='64px' height='64px'/><p><b><u>Top fragger:</u></b><br /><a href='index.php?subtopic=characters&name=".$TopFraggerName2."'>".$TopFraggerName2."</a> (".$numTop2." ".$fragl2.")<p><b><u>Most dead:</u></b><br /><a href='index.php?subtopic=characters&name=".$mostDeadName."'>".$mostDeadName."</a> (".$mostDeadNum." ".$deathl1.")</center></TD>
</TR>
</TABLE>
";
$main_content .= '
<br><br><table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><td><font color="white" size=4><b>Kills - '.$guild->getName().' vs '.$guild2->getName().'</b></font></td></tr></tbody></table>
';
$main_content .= "
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR=#D4C0A1>
<TD><b>Killer</b></TD>
<TD><b>Victim</b></TD>
<TD><b>Fragging Guild</b></TD>
<TD><b>Result</b></TD>
<TD><b>Date</b></TD>
</TR>
$kills3
</TABLE>";
$main_content .= '
<br><br><table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><td><font color="white" size=4><b>Most Frags</b></font></td></tr></tbody></table>';
$main_content .= "
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR=#D4C0A1>
<TD width=50%>
<div align='right'>
<B>
". $guild->getName() ."
</B>
</div>
</TD>
<TD width=50%>
<div align='left'>
<B>
". $guild2->getName() ."
</B>
</div>
</TD>
</TR>
<TR BGCOLOR=#D4C0A1>
<TD>
<div align='right'>
<img src=guilds/".$logo." width='64px' height='64px' border=1/>
</div>
</TD>
<TD>
<div align='left'>
<img src=guilds/".$logo2." width='64px' height='64px'border=1/>
</div>
</TD>
</TR>
</TABLE>
<TABLE ALIGN=LEFT BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=50%>
$membersFrags1
</TABLE>
<TABLE ALIGN=RIGHT BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=50%>
$membersFrags2
</TABLE>
";
$main_content .= '
<table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody><TR><td><font color="white" size=1>.</font></td></tr></tbody></table>';
$main_content .= '
<table border="0" CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><td><font color="white" size=4><b>Most Deaths</b></font></td></tr></tbody></table>';
$main_content .= "
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR=#D4C0A1>
<TD width=50%>
<div align='right'>
<B>
". $guild->getName() ."
</B>
</div>
</TD>
<TD width=50%>
<div align='left'>
<B>
". $guild2->getName() ."
</B>
</div>
</TD>
</TR>
<TR BGCOLOR=#D4C0A1>
<TD>
<div align='right'>
<img src=guilds/".$logo." width='64px' height='64px' border=1 />
</div>
</TD>
<TD>
<div align='left'>
<img src=guilds/".$logo2." width='64px' height='64px'border=1 />
</div>
</TD>
</TR>
</TABLE>
<TABLE ALIGN=LEFT BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=50%>
$membersDeaths1
</TABLE>
<TABLE ALIGN=RIGHT BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=50%>
$membersDeaths2
</TABLE>
";
}
$main_content .= "
<table border='0' CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tbody><TR><td><div style='text-align: right; margin: 20px auto; font-size: 10px;'>
Coded by <a target='blank' href='http://otland.net/members/nahruto/'>Nahruto</a> and <a target='blank' href='http://otland.net/members/xampy/'>Xampy</a> | Fixed & Edited by <a target='blank' href='http://otland.net/members/xampy/'>Xampy</a></div></td></tr></tbody></table>";
?>
Next step (3b) continues hereeeee.
(The text that you have entered is too long (75765 characters). Please shorten it to 75000 characters long.)
Last edited: