1. Execute the sql below in your fluxcp database
ALTER TABLE `ragsrvinfo`
ADD `agit_status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `drop`;
2. Download agit_status.txt. Place the file in rAthena/npc/custom/ and install it or copy below and create a new file named agit_status.txt and install
//===== eAthena Script =======================================
//= Agit Status Checker
//===== By: ==================================================
//= Entwined
//===== Current Version: =====================================
//= 1.1
//===== Compatible With: =====================================
//= eAthena SVN (SQL only)
//===== Description: =========================================
//= Updates WoE status, so CeresCP can display
//= if WoE is on or off in real time.
//===== Additional Comments: =================================
//= Run this SQL query:
//= ALTER TABLE `ragsrvinfo` ADD `agit_status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `drop`;
//============================================================
- script AGIT_STATUS -1,{
OnInit:
// check if `agit_status` column exists
if (query_sql("SHOW COLUMNS FROM ragsrvinfo LIKE 'agit_status'", .@dummy$,.@dummy$,.@dummy$,.@dummy$,.@dummy$,.@dummy$) == 0) {
// Or... if we have the ALTER privilege, try to add the column
query_sql "SELECT DATABASE()", .@rag_db$;
query_sql "SHOW GRANTS", .@grants$;
for (set .@i,0; .@i<getarraysize(.@grants$); set .@i,.@i+1)
if (compare(.@grants$[.@i], "`"+.@rag_db$+"`")) {
if (compare(.@grants$[.@i], "ALTER,") || compare(.@grants$[.@i], "ALTER ON"))
query_sql "ALTER TABLE `ragsrvinfo` ADD `agit_status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `drop`;";
break;
}
// verify
if (query_sql("SHOW COLUMNS FROM ragsrvinfo LIKE 'agit_status'", .@dummy$,.@dummy$,.@dummy$,.@dummy$,.@dummy$,.@dummy$) == 0) {
debugmes strnpcinfo(3)+" : unable to modify SQL table (needs ALTER privilege)";
atcommand "@unloadnpc " + strnpcinfo(3);
end;
}
}
OnAgitStart:
OnAgitStart2:
OnAgitEnd:
OnAgitEnd2:
query_sql "UPDATE ragsrvinfo SET agit_status = " + (agitcheck() || agitcheck2());
end;
}
3. Open fluxcp/modules/server/status.php
Copy below code and paste before ?>
// Name : WoE Status
// Email :
[email protected]
// Author : Jupeto
// NOTE : Uncomment all commented lines below if you want to cache the checking of status
// and add a line in your fluxcp/config/application.php
/*
find : ServerStatusTimeout
add after :
'WoEStatusCache' => 2, // Store a cached woe status and refresh every X minutes. Default: 2 minutes (value is measured in minutes).
'WoEStatusTimeout' => 2, // For each server, spend X amount of seconds to determine whether it's up or not.
*/
// if (file_exists($cache_woe_status) && (time() - filemtime($cache_woe_status)) < (Flux::config('WoEStatusCache') * 60)) {
// $woeStatus = unserialize(file_get_contents($cache_woe_status));
// }
// else {
$woeStatus = array();
foreach (Flux::$loginAthenaGroupRegistry as $groupsName => $loginAthenaGroup) {
if (!array_key_exists($groupsName, $woeStatus)) {
$woeStatus[$groupsName] = array();
}
foreach ($loginAthenaGroup->athenaServers as $athenaServer) {
$serverName = $athenaServer->serverName;
$sql = "SELECT agit_status AS woe_status FROM {$athenaServer->charMapDatabase}.ragsrvinfo WHERE `name` = '" . $serverName . "'";
$sth = $loginAthenaGroup->connection->getStatement($sql);
$sth->execute();
$woe_status = $sth->fetch();
$woeStatus[$groupsName][$serverName] = array(
'woe_status' => $woe_status->woe_status
);
}
}
// $fp = fopen($cache_woe_status, 'w');
// if (is_resource($fp)) {
// fwrite($fp, serialize($woeStatus));
// fclose($fp);
// }
// }
Save and exit.
4. Open fluxcp/themes/your_theme/server/status.php
Copy below code and paste it after the end of file
<?php foreach ($woeStatus as $privServerName => $gameServers): ?>
<h3>War Of Emperium Status for <?php echo htmlspecialchars($privServerName) ?></h3>
<table id="server_status">
<tr>
<td class="status"><?php echo htmlspecialchars(Flux::message('ServerStatusServerLabel')) ?></td>
<td class="status">Status</td>
</tr>
<?php foreach ($gameServers as $serverName => $gameServer): ?>
<tr>
<th class="server"><?php echo htmlspecialchars($serverName) ?></th>
<td class="status"><?php echo $this->serverUpDown($gameServer['woe_status']) ?></td>
</tr>
<?php endforeach ?>
</table>
<?php endforeach ?>
Save and exit.