WarSystem para TFS 0.3.5 ou TFS 0.3.6.
Precisa de Gesior.
Para quem usa TFS 0.4 , veja o tópico :Warsystem Para TFS 0.4 [apenas o arquivo MOD]
Bom , chega de enrolar , vamos começar o "tutorial":
*Nota : é extremamente recomendavel que você limpe a tabela 'deaths_in_wars' antes de usar o sistema.
1) Adicione o arquivo a seguir , a pasta mods (OTServer/data/mod) basta criar um arquivo XML ou copiar algum outro e apagar tudo que tiver dentro , coloque o nome do arquivo de: guildWarSystem.xml:
<?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) Adicione isso a database (no phpMyAdmin):
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 ;
e isso:
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 ;
e finalmente isso:
UPDATE `guilds` SET `invited_to` = 0, `invited_by` = 0, `in_war_with` = 0, `kills` = 0, `show` = 0, `war_time` = 0 WHERE `id` > 0;
não sabe como adicionar ? basta abrir o bloco de notas , copiar o conteudo acima e colar e salvar como "nome.sql" apos isso va a http://localhost/phpmyadmin , loga-se escolha a database clique em importar e selecione o arquivo que você salvou.
3) Va até xampp/htdocs. Crie um arquivo chamado wars.php: [copie um arquivo php e apague tudo que tiver dentro ou abra o bloco de notas coloque o conteudo e salve como "wars.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;'>
Created by <a target='blank' href='http://otland.net/members/xampy/'>Xampy</a></div></td></tr></tbody></table>";
?>
4) Abra o arquivo guilds.php [da pasta htdocs] e DEPOIS de (linha 1740~):
if($guild_leader) {
if($_POST['todo'] == 'save') {
delete_guild($guild->getId());
$saved = TRUE;
}
adicione isso:
$war = $guild->getCustomField("in_war_with");
if($war == 0) {
e depois de :
else
{
$guild_errors[] = 'You are not a leader of guild!';
}
}
adicione:
else
{
$guild_errors[] = 'You are in war with with some other guild!';
}
}
5) Abra o arquivo index.php [na pasta htdocs] e depois ou antes de:(não faz diferença):
case "buypoints";
$subtopic = "buypoints";
$topic = "Buy Points";
include("buypoints.php");
break;
coloque:
case "wars";
$subtopic = "wars";
$topic = "Wars";
include("wars.php");
break;
6) Abra xampp/htdocs/layouts/tibiacom/ e depois layout.php. Depois de:
<a href='?subtopic=guilds'> <div id='submenu_guilds' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_guilds' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Guilds</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a>
coloque isso:
<a href='index.php?subtopic=wars'> <div id='submenu_wars' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_wars' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color="red">Wars</font></div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a>
7) Agora entre na seção Wars do seu Site -> Localhost - Wars



Por favor , rep +
Creditos:
Xampy [Por criar]
Heartbreak [Por trazer ao Xtibia]
Recuso Imitações , Proibido Copia [Peço a um moderador que arrume o Topico se possivel]















