Jupeto
-
Posts
225 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Jupeto
-
-
3548
-
Just wanna share what I've done/edited so far with flux cp
SNIPPETS
-
WOE STATUS -
1. Execute the sql below in your fluxcp database if `agit_status` field is not yet existed in your `ragsrvinfo` table, else skip this step
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. -
CASTLE PAGE PAGINATIONGot it working na without search function! final code below po,
in modules/castle/index.php copy below and replace your current castle index code<?php if (!defined('FLUX_ROOT')) exit; $title = 'Castles'; // $sql = "SELECT castles.castle_id, castles.guild_id, guild.name AS guild_name, guild.emblem_len FROM {$server->charMapDatabase}.guild_castle AS castles "; // $sql .= "LEFT JOIN guild ON guild.guild_id = castles.guild_id ORDER BY castles.castle_id ASC"; // $sth = $server->connection->getStatement($sql); // $sth->execute(); $sql = "SELECT COUNT(castle_id) AS total FROM {$server->charMapDatabase}.guild_castle"; $sth = $server->connection->getStatement($sql); $sth->execute(); $paginator = $this->getPaginator($sth->fetch()->total,array('perPage'=>(int)Flux::config('CastleLimit'))); $sql = "SELECT castles.castle_id, castles.guild_id, guild.name AS guild_name, guild.emblem_len FROM {$server->charMapDatabase}.guild_castle AS castles "; $sql .= "LEFT JOIN guild ON guild.guild_id = castles.guild_id ORDER BY castles.castle_id ASC"; $sql = $paginator->getSQL($sql); $sth = $server->connection->getStatement($sql); $sth->execute(); $castles = $sth->fetchAll(); $castleNames = Flux::config('CastleNames')->toArray(); ?>
save and exit.
in themes/your_theme_name/castle/index.php copy below and replace your current castle index code<?php if (!defined('FLUX_ROOT')) exit; ?> <h2>Castles</h2> <p>This page shows what castles are activated and which guilds own them.</p> <?php if ($castles): ?> <?php echo $paginator->infoText() ?> <table class="vertical-table"> <tr> <th>Castle ID</th> <th>Castle</th> <th colspan="2">Guild</th> </tr> <?php foreach ($castles as $castle): ?> <tr> <td align="right"><?php echo htmlspecialchars($castle->castle_id) ?></td> <td> <?php if (array_key_exists($castle->castle_id, $castleNames) && $castleNames[$castle->castle_id]): ?> <?php echo htmlspecialchars($castleNames[$castle->castle_id]) ?> <?php else: ?> <span class="not-applicable">Unknown<?php echo " (".$castle->castle_id.")" ?></span> <?php endif ?> </td> <?php if ($castle->guild_name): ?> <?php if ($castle->emblem_len): ?> <td width="24"><img src="<?php echo $this->emblem($castle->guild_id) ?>" /></td> <td> <?php if ($auth->actionAllowed('guild', 'view') && $auth->allowedToViewGuild): ?> <?php echo $this->linkToGuild($castle->guild_id, $castle->guild_name) ?> <?php else: ?> <?php echo htmlspecialchars($castle->guild_name) ?> <?php endif ?> </td> <?php else: ?> <td colspan="2"><?php echo htmlspecialchars($castle->guild_name) ?></td> <?php endif ?> <?php else: ?> <td colspan="2"><span class="not-applicable"><?php echo htmlspecialchars(Flux::message('NoneLabel')) ?></span></td> <?php endif ?> </tr> <?php endforeach ?> </table> <?php echo $paginator->getHTML() ?> <?php else: ?> <p>No castles found. <a href="javascript:history.go(-1)">Go back</a>.</p> <?php endif ?>
save and exit.
in lib/Flux/Paginator.php
findpublic function infoText() { $currPage = $this->currentPage; $results = Flux::config('ResultsPerPage'); $infoText = sprintf( Flux::message('FoundSearchResults'), $this->total, $this->numberOfPages, ($currPage*$results-($results - 1)), $currPage * $results < $this->total ? ($currPage*$results) : ($this->total) ); return sprintf('<p class="info-text">%s</p>', $infoText); }
change topublic function infoText() { $currPage = $this->currentPage; // $results = Flux::config('ResultsPerPage'); $results = $this->perPage; $infoText = sprintf( Flux::message('FoundSearchResults'), $this->total, $this->numberOfPages, ($currPage*$results-($results - 1)), $currPage * $results < $this->total ? ($currPage*$results) : ($this->total) ); return sprintf('<p class="info-text">%s</p>', $infoText); }
save and exit.
in config/application.php
find'CharRankingLimit' => 10, //
add above'CastleLimit' => 5, // Number of castle limit result per page
save and exit.
now try your castle list
ADD-ON / EXTENSIONS
-
CREATE CHARACTER ~ http://rathena.org/b...eate-character/
-
GIVEAWAY [initial Release 1.0.0] ~ http://rathena.org/b...addon-giveaway/ ~
-
DELETE ITEM EXTENSION ~ http://rathena.org/b...item-extension/
My Services
-
WOE STATUS -
-
Windows notepad/notepad++ is the one behind of all my web applications.
-
3540
-
3537
-
3529
-
3527
-
Click mo lang yung green up arrow icon sa baba ng post na to http://rathena.org/board/topic/69754-q-about-woe-status-like-server-status-for-flux-cp/#entry133060
- 3
-
3520
-
3518
-
3514
-
Please prompt us if you already solved this concern.
Thanks,
-
I believe this belongs to Tulong para sa Client
Topic moved.
-
You're welcome!
Rep please, Thanks
-
3505
-
Kindly read, http://rathena.org/wiki/Custom_Items
Thanks,
-
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.
- 6
-
-
Hi guys,
just a little update in create item and edit item pages. ( Finally I'm almost done with these pages )
Item editor has now the ability to populate item bonuses in dropdown select while you type in script, equip script and unequip script
to see it in action please do edit the item you see in this list
http://aisnippets.x1...tor/item/list/2
Username: demoPassword: demo
and click the 'Scripts' tab ( upper right coner of the editor )
Also I wanna know your opinion and suggestions for more approaches on how to make adding of item bonuses more friendly user
Note: only keywords from doc/item_bonus.txt will be shown, but you can still add conditional statements
- 1
-
3491
-
3486
-
3484
-
3482
-
3476
Count to a Million
in Forum Games
Posted
3550