Para quem não conheçe o War System é aquele sistema onde duas guild se declaram em guerra onde então os frags nao sera contados como "Unjusted kills"
É preciso TFS 0.3+ & Gesior AAC
Bom vamos la então !
1.0 - Crie um arquivo com o nome GuildWar.lua dentro da pasta do seu ot , aonde fica o distro, as dll's , etc... e copie este codigo:
DelayToCancel = 24 * 60 * 60 --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 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 .." 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.
" its 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() ~= LUA_ERROR 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() ~= LUA_ERROR 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() ~= LUA_ERROR 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() ~= LUA_ERROR 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©
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
]]
2.0 - Crie um novo arquivo em: data\creaturescripts\scripts\ com o nome de: war_attack.lua e copie esse codigo:
dofile("./GuildWar.lua")
function onAttack(cid, target)
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
if getPlayerSkullType(cid) == 3 or getPlayerSkullType(cid) == 4 then
if getPlayerSkullType(target) == 0 then
doCreatureSetSkullType(cid, 1)
doCreatureSetSkullType(target, 1)
end
end
end
end
end
return TRUE
end
2.1 - Crie um novo arquivo em: data\creaturescripts\scripts\ com o nome de: war_kill.lua e copie esse codigo:
dofile("./GuildWar.lua")
local PZ = createConditionObject(CONDITION_INFIGHT)
setConditionParam(PZ, CONDITION_PARAM_TICKS, getConfigInfo('whiteSkullTime'))
function onKill(cid, target)
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)
registerDeath(myGuild, enemyGuild, cid, target)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "This frag will not count!")
end
end
end
return TRUE
end
2.2 - Abra login.lua (data/creaturescripts/scripts/):
Após:
dofile("./GuildWar.lua")
function onSay(cid, words, param)
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
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
4.1 - Adicione isto em: talkactions.xml
<?PHP
//Litle Config
$MaxShow = 20;
//END
if($action == '')
{
$main_content .= '
<P ALIGN=CENTER>
<br>
<FONT SIZE=4 COLOR=#8A0808>
Como usar...
</FONT>
<br>
<br>
<FONT SIZE=2 COLOR=#DF0101>
* <b>/war-invite</b> :
<FONT SIZE=1 COLOR=green>
Enviar um convite para iniciar uma War.<br>
<u>Exemplo</u>: /war-invite Feel the Power
</FONT><br>
* <b>/war-accept</b> :
<FONT SIZE=1 COLOR=green>
Aceitar o convite para iniciar a War.
</FONT><br>
* <b>/war-reject</b> :
<FONT SIZE=1 COLOR=green>
Rejeitar o convite.
</FONT><br>
* <b>/war-cancel-invite</b> :
<FONT SIZE=1 COLOR=green>
Cancelar o convite.
</FONT><br>
* <b>/war-cancel</b> :
<FONT SIZE=1 COLOR=green>
Terminar a War, so pode ser usado apos 5 dias.
</FONT><br>
</FONT>
<br>
<FONT SIZE=2 COLOR=#8A0808>
Esses comandos podem somente ser executados por lideres da guild.<br><br>
<table border="1"><tr border="1"><td border="1"><h3>Obs:</h3>
<ul>
<li>Seu time so ganhara frag se matar quem esta na guild inimiga.</li>
<li>Se alguen do mesmo time se matar sera descontado um frag da guild.</li>
<li>Todos os frag da war nao sera contados como "Unjusted kills".</li>
<li>Quando iniciada uma War so podera ser encerrada apos 5 dias.</li>
</ul></td></tr></table>
</FONT>
</P>
';
$wars = $SQL->query("
SELECT g.name AS gname, wg.name AS wgname, g.war_time AS gtime, g.kills AS kills, wg.kills AS ekills, g.show AS s, g.id AS gid, wg.id AS wgid
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)
{
$stats .="
<TR BGCOLOR=\"".$config['site'][($k % 2 == 1 ? 'light' : 'dark').'border']."\">
<TD>
<center>
<b>
<a href='index.php?subtopic=guilds&action=show&guild=" . $v[gid] . "'>$v[gname]</a>
</b>
</center>
</TD>
<TD>V/s</TD>
<TD>
<center>
<b>
<a href='index.php?subtopic=guilds&action=show&guild=" . $v[wgid] . "'>$v[wgname]</a>
</b>
</center>
</TD>
<TD>
<center>
" . data("d/m/y H:i:s", $v[gtime]) . "
</center>
</TD>
<TD>
<center>
<a href='index.php?subtopic=wars&action=show&war=" . $v[gid] . "'>{$v[kills]} - {$v[ekills]}</a>
</center>
</TD>
</TR>
";
}
}
$main_content .= '
<center>
<h1>
Guilds Wars
</h1>
</center>
';
if(!$stats) {
$main_content .= '
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR="'.$config['site']['vdarkborder'].'">
<TD CLASS=white>
</TD>
</TR>
<TR BGCOLOR='.$config['site']['darkborder'].'>
<TD>
Nenhuma guild em War no '.$config['server']['serverName'].'.
</TD>
</TR>
</TABLE>
';
} else {
$main_content .= "
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR=\"{$config['site']['vdarkborder']}\">
<TD CLASS=white width=25%>
<center><B>Guild</B></center>
</TD>
<TD CLASS=white width=5%>
<B>V/s</B>
</TD>
<TD CLASS=white width=25%>
<center><B>Guild</B></center>
</TD>
<TD CLASS=white width=25%>
<center><B>Started at</B></center>
</TD>
<TD CLASS=white width=20%>
<center><B>Kills</B></center>
</TD>
</TR>
$stats
</TABLE>
";
}
?>
<?PHP
$invitations = $SQL->query("
SELECT ig.name AS igname, i.name AS iname, i.id AS iid, ig.id AS igid
FROM guilds AS i
INNER JOIN guilds AS ig
ON ig.id = i.invited_to
ORDER BY iname ASC LIMIT 50;
");
foreach ($invitations as $k=>$v) {
$invi .="
<TR BGCOLOR=\"".$config['site'][($k % 2 == 1 ? 'light' : 'dark').'border']."\">
<TD>
<center>
<b>
<a href='index.php?subtopic=guilds&action=show&guild=" . $v[iid] . "'>$v[iname]</a>
</b>
</center>
</TD>
<TD>
<center>
<b>
<a href='index.php?subtopic=guilds&action=show&guild=" . $v[igid] . "'>$v[igname]</a>
</b>
</center>
</TD>
<TD></TD>
</TR>
";
}
$main_content .= '
<center>
<h1>
Invitacoes Pendentes
</h1>
</center>
';
if(!$invi) {
$main_content .= '
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR="'.$config['site']['vdarkborder'].'">
<TD CLASS=white>
</TD>
</TR>
<TR BGCOLOR='.$config['site']['darkborder'].'>
<TD>
Nenhuma invitacao pendente no '.$config['server']['serverName'].'.
</TD>
</TR>
</TABLE>
<br>
<div style="text-align: right; margin: 20px auto; font-size: 10px;">
Script by <a target="blank" href="http://otland.net/members/xampy/">Xampy</a> edited by <a href="http://www.xtibia.com/forum/allan1001-m205633.html">Allan</a></div>
';
} else {
$main_content .= "
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR=\"{$config['site']['vdarkborder']}\">
<TD CLASS=white width=50%>
<center><B>Guild</B></center>
</TD>
<TD CLASS=white width=50%>
<center><B>Invited guild</B></center>
</TD>
</TD>
</TR>
$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() .";
");
foreach ($ranks as $y)
{
$Players = $SQL->query("
SELECT
*
FROM
players
WHERE
rank_id = ". $y[id] ."
ORDER BY
name
DESC;");
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];
}
$membersDeaths .="
<center>
<b>
<a href='index.php?subtopic=characters&name=" . $v[name] . "'>$v[name]</a> ($totDeaths)
</b>
</center>
";
}
}
$guild2 = $ots->createObject('Guild');
$guild2->load($guild->getCustomField(in_war_with));
$ranks2 = $SQL->query("
SELECT
*
FROM
guild_ranks
WHERE
guild_id = ". $guild2->getId() .";
");
foreach ($ranks2 as $y)
{
$Players = $SQL->query("
SELECT
*
FROM
players
WHERE
rank_id = ". $y[id] ."
ORDER BY
name
DESC;");
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];
}
$membersDeaths2 .="
<center>
<b>
<a href='index.php?subtopic=characters&name=" . $v[name] . "'>$v[name]</a> ($totDeaths2)
</b>
</center>
";
}
}
$deathsG1 = $SQL->query("
SELECT
*
FROM
deaths_in_wars
WHERE
killer_guild = ". $guild->getId() ."
ORDER BY
data
DESC LIMIT ". $MaxShow .";");
$deathsG2 = $SQL->query("
SELECT
*
FROM
deaths_in_wars
WHERE
killer_guild = ". $guild2->getId() ."
ORDER BY
data
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 ($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>
" . data("d/m/y H:i:s", $v[data]) . "
</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>
" . data("d/m/y H:i:s", $v[data]) . "
</center>
</TD>
</TR>
";
}
$main_content .= "
<center>
<b>
<h2>
Guilds em War
<a href='index.php?subtopic=guilds&action=show&guild=" . $guild->getId() . "'>
" . $guild->getName() . "</a>
Versus
<a href='index.php?subtopic=guilds&action=show&guild=" . $guild2->getId() . "'>
" . $guild2->getName() . "</a>
.
</h2>
<br>
Iniciada em : </b>" . data("d/m/y H:i:s", $guild->getCustomField(war_time)) . "
<br>
<br>
<b>
Total Frags da " . $guild->getName() . " = " . $guild->getCustomField(kills) . "
<br>
<br>
Total Frags da " . $guild2->getName() . " = " . $guild2->getCustomField(kills) . "
<br>
<br>
Top fragger da " . $guild->getName() . " = <a href='index.php?subtopic=characters&name=" . $TopFraggerName . "'>" . $TopFraggerName . "</a> ($numTop1)
<br>
<br>
Top fragger da " . $guild2->getName() . " = <a href='index.php?subtopic=characters&name=" . $TopFraggerName2 . "'>" . $TopFraggerName2 . "</a> ($numTop2)
<br>
<br>
O mais noob da " . $guild->getName() . " = <a href='index.php?subtopic=characters&name=" . $mostDeadName . "'>" . $mostDeadName2 . "</a> ($mostDeadNum2)
<br>
<br>
O mais noob da " . $guild2->getName() . " = <a href='index.php?subtopic=characters&name=" . $mostDeadName2 . "'>" . $mostDeadName . "</a> ($mostDeadNum)
</b>
</center>
<br>
<br>
<br>
";
$main_content .= "
<center>
<h1>
Mortes dos Membros
</h1>
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR=\"{$config['site']['vdarkborder']}\">
<TD CLASS=white width=50%>
<center>
<B>
". $guild->getName() ."
</B>
</center>
</TD>
<TD CLASS=white width=50%>
<center>
<B>
". $guild2->getName() ."
</B>
</center>
</TD>
</TR>
<TR BGCOLOR=\"".$config['site']['darkborder']."\">
<TD>
$membersDeaths
</TD>
<TD>
$membersDeaths2
</TD>
</TR>
</TABLE>
</center>
<br>
<br>
<br>
<center>
<h1>
Latest frags by ". $guild->getName() ."
</h1>
</center>
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR=\"{$config['site']['vdarkborder']}\">
<TD CLASS=white width=35%>
<center>
<B>
Player
</B>
</center>
</TD>
<TD CLASS=white width=35%>
<center>
<B>
Killed by
</B>
</center>
</TD>
<TD CLASS=white width=30%>
<center>
<B>
Data
</B>
</center>
</TD>
</TR>
$kills
</TABLE>
<center>
<h1>
Ultimo frag da ". $guild2->getName() ."
</h1>
</center>
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>
<TR BGCOLOR=\"{$config['site']['vdarkborder']}\">
<TD CLASS=white width=35%>
<center>
<B>
Player
</B>
</center>
</TD>
<TD CLASS=white width=35%>
<center>
<B>
Killed by
</B>
</center>
</TD>
<TD CLASS=white width=30%>
<center>
<B>
Data
</B>
</center>
</TD>
</TR>
$kills2
</TABLE>
";
}
?>
6.01 Abra o index.php em: (C:/xampp/htdocs/)
Antes de:
case "buypoints";
$subtopic = "buypoints";
$topic = Buy Points";
include("buypoints.php");
break;
Adicione:
case "wars";
$subtopic = "wars";
$topic = "Wars";
include("wars.php");
break;
7.0 - Agora para ver a suas guerras entre em: http://localhost/index.php?subtopic=wars
Se você encontra qualquer erro, post-it aqui .
Se isso o ajudou, comente por favor.
Aproveitem! :smile_positivo:
Creditos:
· GeKirAh
·Nahruto
·christiandb
· Xampy









