Castle Control Script
Forum rules
READ NOW: L2j Forums Rules of Conduct
READ NOW: L2j Forums Rules of Conduct
-
- Posts: 1
- Joined: Thu May 08, 2008 11:25 am
Re: Castle Control Script
I have the same issue regarding downloading the file. Could you please upload again the file ?
Thank you
Thank you
- DareStrike
- Posts: 376
- Joined: Sun May 01, 2011 1:20 pm
Re: Castle Control Script
Code: Select all
<?php //---------------// Made by Daedalus email : daedalus at hotmail dot fr//--------------- $db_serv = 'x'; //the address of the database goes here $db_user = 'x'; //your sql username goes here$db_pass = 'x'; //your sql password goes here $db_name = 'l2jgs'; //your database name goes here $filename = './helios.js'; //generated javascript file you need to put attribute 777 in your folder
this problem :S
Code: Select all
$filename = './helios.js'; //generated javascript file you need to put attribute 777 in your folder$filename = '7777./helios.js'; //generated javascript file you need to put attribute 777 in your folder
-
- Posts: 196
- Joined: Mon Apr 26, 2010 11:00 pm
Re: Castle Control Script
hello,
i added this features for my website, but i needed to edit a little the generator:
here is my patch
what i edited?
'$castle[id]' in the sql request.
without this edit, i eat a Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given.....
Oh, and, ofc, i needed to reput the table etcitem in the database with a old backup, cuz now, l2jserver use xml.
i added this features for my website, but i needed to edit a little the generator:
here is my patch
Code: Select all
$req = @mysql_query("SELECT `name`, `seed_price` FROM `etcitem`, `castle_manor_production` WHERE `seed_id` = `item_id` AND `castle_id` = '$castle[id]' UNION (SELECT `name`, `c`.`price` FROM `etcitem` e, `castle_manor_procure` c WHERE `crop_id` = `item_id` AND `castle_id` = '$castle[id]') ORDER BY `name`"); $i = 1; while ($row = mysql_fetch_array($req, MYSQL_NUM)) { $gen .= '<tr>'; $gen .= '<td style="background-color: #'.( ($i % 2) ? 'EEE' : 'DDD' ).'">'.$row[0].'</td>'; $gen .= '<td style="background-color: #'.( ($i % 2) ? 'EEE' : 'DDD' ).'">'.$row[1].'</td>'; $gen .= '</tr>'; $i++; }
'$castle[id]' in the sql request.
without this edit, i eat a Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given.....
Oh, and, ofc, i needed to reput the table etcitem in the database with a old backup, cuz now, l2jserver use xml.
-
- Posts: 2
- Joined: Sun Sep 09, 2012 11:54 pm
Re: Castle Control Script
so i have 1 problem
i have my server on my PC and if i make this script on my pc with Xampp work fine
and if i add script on website host say this "Coudn't connect to host"
anyone can help me pls
i have my server on my PC and if i make this script on my pc with Xampp work fine
and if i add script on website host say this "Coudn't connect to host"
anyone can help me pls
- gmakhs
- Posts: 215
- Joined: Sat Apr 14, 2007 12:00 pm
Re: Castle Control Script
you have to give remote acces on your database
-
- Posts: 17
- Joined: Tue May 24, 2011 7:56 pm
Re: Castle Control Script
Does any php guru know why the script doesnt rewrite the helios.js again, after the sieges timestamp change in mysql table castle on column siegeDate ?
For example I have this problem:
the generator writen once the siege date and time first time, but after the time expire, it didnt rewrite with the new timestamp for the next siege. I think it doesnt check MySQL anymore.
2 castles which has not been sieged Gludio and Schuttgart get new timestamp same as all the rest in MySQL, but in the website I still see them with the same old date Feb 9, all others are Feb 23. All others were Feb 23 before too, only Gludio and Schuttgart were on Feb 9 for siege. Why is this happening?
For example I have this problem:
the generator writen once the siege date and time first time, but after the time expire, it didnt rewrite with the new timestamp for the next siege. I think it doesnt check MySQL anymore.
2 castles which has not been sieged Gludio and Schuttgart get new timestamp same as all the rest in MySQL, but in the website I still see them with the same old date Feb 9, all others are Feb 23. All others were Feb 23 before too, only Gludio and Schuttgart were on Feb 9 for siege. Why is this happening?
-
- L2j Veteran
- Posts: 1228
- Joined: Thu Jan 17, 2013 9:46 am
Re: Castle Control Script
Post the code that was "supposed to rewrite helios.js"
-
- Posts: 17
- Joined: Tue May 24, 2011 7:56 pm
Re: Castle Control Script
This is the script I use:
I believe the last 3 rows do the rewrite, but it seems that somehow they dont rewrite it.
./gen/ is the location of generator.php and helios.js in my site.
P.S. I try to make a cronjob on 1 hours for this castle manager, but I cant really make it work. Dont know how to setup it correctly.
Code: Select all
<?php //---------------// Made by Daedalus email : daedalus at hotmail dot fr//--------------- $db_serv = '****'; //the address of the database goes here $db_user = 'root'; //your sql username goes here$db_pass = '****'; //your sql password goes here $db_name = 'l2jgs'; //your database name goes here $filename = './gen/helios.js'; //generated javascript file you need to put attribute 777 in your folder //----------------------------------------------------------------------------------------------- mysql_connect ( $db_serv, $db_user, $db_pass ) or die ('Coudn\'t connect to host');mysql_select_db( $db_name ) or die ('Couldn\'t select database'); $sql = mysql_query('SELECT id,name,taxPercent,siegeDate FROM `castle`') or die('Query failed!'); $gen = "\n"; while ($castle = mysql_fetch_array($sql)){ $gen .= "\n".strtolower($castle['name']) . 'info = \'<div class="castleWrapper">'; $gen .= '<div class="castlePic" id="' . ucfirst(strtolower($castle['name'])) . 'Pic"></div>'; $gen .= '<div class="castleInfo">'; $gen .= '<div class="castleName"><strong>' . ucfirst(strtolower($castle['name'])) . ' Castle</strong></div>'; $clan = mysql_fetch_array(mysql_query('SELECT clan_name,hasCastle FROM `clan_data` WHERE hasCastle = ' . $castle['id'])); $clan_name = (isset($clan['clan_name'])) ? htmlspecialchars($clan['clan_name'], ENT_QUOTES) : '<font color="22FF22">Unclaimed</font>'; $gen .= '<div><strong>Controlled by:</strong> ' . $clan_name . '</div>'; if (isset($clan['clan_name'])) $gen .= '<div><strong>Tax Rate:</strong> ' . $castle['taxPercent'] . '%</div>'; $gen .= '<div><strong>Next Siege:</strong> ' . date('M d Y ',$castle['siegeDate']/1000) . '</div>'; $gen .= '</div></div>\';'."\n\n";} $handle = fopen($filename, 'w+');fwrite($handle, $gen);fclose($handle); ?>
Code: Select all
$handle = fopen($filename, 'w+');fwrite($handle, $gen);fclose($handle);
P.S. I try to make a cronjob on 1 hours for this castle manager, but I cant really make it work. Dont know how to setup it correctly.
-
- L2j Veteran
- Posts: 1228
- Joined: Thu Jan 17, 2013 9:46 am
Re: Castle Control Script
cron job on linux ?
Tell me which linux
Tell me which linux
-
- Posts: 17
- Joined: Tue May 24, 2011 7:56 pm
Re: Castle Control Script
I cant see from the cPanel which version is Linux.
How to define the cronjob command so to be able to refresh the content of helios.js?
P.S. Nevermind, I figured it out and it works.
Now I will explain where I was wrong.
First I have put a path for $filename which was wrong. My folder containing generator.php and helios.js is /gen just like I mention. So inside $filename must be writen this:
Second and very important just like deadalus said, you must put attribute to helios.js, but the attribute must be 755. You dont need to make it 777. This can be done by clicking in your cPannel on file helios.js and clicking the key icon "Change Permissions", or by right mouse click and again "Change Permissions". After this operation it will be opened a new window with many boxes:

Click on them so in row Permissions to be 755.
Now on the question how to automate the castle script, so to have regular update.
Go into your cPannel and find the Cronjob button. Its usually near MIME Types or Index Manager. Click on it. Sellect on what interval of time you wish the script generator.php to update helios.js. This can be made on Add New Cron Job table. Its enought to choose from Common Settings: sub-menu "Once an hour(0****)"
This choice will run the script and update it on every hour.
After that go to Command: field and write this for a php file(which generator.php is):
This is it!
Further more, the webhost will send to your main email of your site mail for each cronjob which has been done. If you dont want it to spam your mail simply add this after the command you previously put: >/dev/null 2>&1
It should look like this:
And there will be no more mails. Dont worry, cronjob will continue to run, this disable only the email notification.
If you wish to stop this cronjob you must delete it from the Cronjob manager.
I hope this little guide will help to someone!
How to define the cronjob command so to be able to refresh the content of helios.js?
P.S. Nevermind, I figured it out and it works.
Now I will explain where I was wrong.
First I have put a path for $filename which was wrong. My folder containing generator.php and helios.js is /gen just like I mention. So inside $filename must be writen this:
Code: Select all
$filename = 'helios.js';

Click on them so in row Permissions to be 755.
Now on the question how to automate the castle script, so to have regular update.
Go into your cPannel and find the Cronjob button. Its usually near MIME Types or Index Manager. Click on it. Sellect on what interval of time you wish the script generator.php to update helios.js. This can be made on Add New Cron Job table. Its enought to choose from Common Settings: sub-menu "Once an hour(0****)"
This choice will run the script and update it on every hour.
After that go to Command: field and write this for a php file(which generator.php is):
Code: Select all
php /home/[user name]/public_html/gen/generator.php
Further more, the webhost will send to your main email of your site mail for each cronjob which has been done. If you dont want it to spam your mail simply add this after the command you previously put: >/dev/null 2>&1
It should look like this:
Code: Select all
php /home/[user name]/public_html/gen/generator.php >/dev/null 2>&1
If you wish to stop this cronjob you must delete it from the Cronjob manager.
I hope this little guide will help to someone!
-
- Posts: 16
- Joined: Sun Feb 17, 2013 9:53 pm
Re: Castle Control Script
seems like a quite usefull thing. i will sure take a look
- OrcBubba
- Posts: 50
- Joined: Mon Mar 18, 2013 7:04 pm
Re: Castle Control Script
Hi guys. I am getting this error:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in generator.php on line 57
Any suggestions? Thanks
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in generator.php on line 57
Any suggestions? Thanks
- jurchiks
- Posts: 6769
- Joined: Sat Sep 19, 2009 4:16 pm
- Location: Eastern Europe
Re: Castle Control Script
Means the query failed to execute and returned FALSE on mysql_query(), possibly a typo somewhere.
Also, mysql_* is deprecated, time to switch to mysqli/PDO.
Also, mysql_* is deprecated, time to switch to mysqli/PDO.
If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!
Discussion breeds innovation.
Otherwise you will never learn anything if all you do is copy-paste!
Discussion breeds innovation.