Compare commits

...

19 Commits

Author SHA1 Message Date
slawkens1
956e551872 Update to 0.0.6 2017-05-06 02:08:13 +02:00
slawkens1
3270caf870 Update to version 0.0.6 2017-05-06 02:05:37 +02:00
slawkens1
4465da67e9 Fixes
* fixed support for TFS 0.2 series
* added FAQ link
2017-05-05 19:55:25 +02:00
slawkens1
187b70761c fixed https://otland.net/threads/myaac-v0-0-1.251454/page-3#post-2440424 2017-05-05 14:11:55 +02:00
Sławek
729944006e Update schema.sql 2017-05-05 07:41:52 +02:00
slawkens1
aa90a74145 Update to version 0.0.5 2017-05-05 04:08:20 +02:00
slawkens1
194d08f593 Fixes
* fixed bug with status info utf8 encoding
(https://otland.net/threads/myaac-v0-0-1.251454/page-2#post-2440259)
* fixed when ip in log_action is NULL
(https://otland.net/threads/myaac-v0-0-1.251454/page-2#post-2440357)
* added CHANGELOG
2017-05-05 04:02:01 +02:00
slawkens1
870cc8f98b Fix character loading with invalid names
Fixed characters loading with names that has been created with other AAC
2017-05-04 18:47:52 +02:00
slawkens1
8d7c694c61 * fixed in kathrine template 2017-05-04 18:35:00 +02:00
slawkens1
a93bd4a0fc Fixed some warning in PHP 7.1
Warning: Cannot assign an empty string to a string offset
* fixed Notice with tempnam()
2017-05-04 18:32:34 +02:00
slawkens1
636a54c70d Fixed https://otland.net/threads/myaac-v0-0-1.251454/page-2#post-2440320 2017-05-04 17:36:08 +02:00
slawkens1
ef9d5127a2 disabled friendly_urls by default
* as some users have reported problems with it
* fixes when $config['database_*'] is set
2017-05-04 16:57:46 +02:00
slawkens1
f35a24b35b Fixed config loading with comments 2017-05-04 00:18:38 +02:00
slawkens1
82b60f78da Updated to 0.0.3 2017-05-04 00:10:00 +02:00
slawkens1
6e7a82b425 Fixed https://otland.net/threads/myaac-v0-0-1.251454/#post-2440110 2017-05-03 23:55:17 +02:00
slawkens1
08fce2ade4 * Fixed
* full support for OTHire 0.0.3
* added support for otservers that doesn't use account.name field,
instead just account number will be used
* (install) moved admin account creation to new step
* fixed encryption detection on 0.3
* fixed bug when server_config table doesn't exist
* other fixes
2017-05-03 23:48:04 +02:00
slawkens1
94b44a8d37 Forgot locale files 2017-05-02 21:38:04 +02:00
slawkens1
769c2942a4 Some fixes
* more info displayed when cannot connect to database
* added Cache:delete($key) function
* added support for OTHire 0.0.3
* deleted unused ODBC and PostgreSQL files
* fixed support for Gesior layouts
2017-05-02 21:34:52 +02:00
Sławek
d3395e2eaf Added some requirements needed by AAC to README.md 2017-05-02 19:31:54 +02:00
104 changed files with 1594 additions and 1247 deletions

View File

@@ -13,6 +13,7 @@ RewriteRule ^guilds/([A-Za-z0-9-_+']+)$ index.php?subtopic=guilds&action=show&gu
RewriteRule ^forum/board/([0-9]+)$ index.php?subtopic=forum&action=show_board&id=$1 RewriteRule ^forum/board/([0-9]+)$ index.php?subtopic=forum&action=show_board&id=$1
RewriteRule ^forum/board/([0-9]+)/([0-9]+)$ index.php?subtopic=forum&action=show_board&id=$1&page=$2 RewriteRule ^forum/board/([0-9]+)/([0-9]+)$ index.php?subtopic=forum&action=show_board&id=$1&page=$2
RewriteRule ^forum/thread/([0-9]+)$ index.php?subtopic=forum&action=show_thread&id=$1 RewriteRule ^forum/thread/([0-9]+)$ index.php?subtopic=forum&action=show_thread&id=$1
RewriteRule ^forum/thread/([0-9]+)/([0-9]+)$ index.php?subtopic=forum&action=show_thread&id=$1&page=$2
RewriteRule ^forum/board/([0-9]+)/([0-9]+)$ index.php?subtopic=forum&action=show_thread&id=$1&page=$2 RewriteRule ^forum/board/([0-9]+)/([0-9]+)$ index.php?subtopic=forum&action=show_thread&id=$1&page=$2
RewriteRule ^account/manage$ index.php?subtopic=accountmanagement RewriteRule ^account/manage$ index.php?subtopic=accountmanagement
RewriteRule ^account/create$ index.php?subtopic=createaccount RewriteRule ^account/create$ index.php?subtopic=createaccount

46
CHANGELOG Normal file
View File

@@ -0,0 +1,46 @@
[0.0.6 - 06.05.2017]
- fixed bug while installing (https://otland.net/threads/myaac-v0-0-1.251454/page-3#post-2440543)
- fixed bug when creating character (not showing errors) (one more time)
- fixed support for TFS 0.2 series
- added FAQ link
[0.0.5 - 05.05.2017]
- fixed bug when creating character (not showing errors)
- Fixed characters loading with names that has been created with other AAC
- fixed links to shop in default template
- fixed some weird PHP 7.1 warnings/notices
- Fixed config loading with some weird comments
- fixed bug with status info utf8 encoding (https://otland.net/threads/myaac-v0-0-1.251454/page-2#post-2440259)
- fixed when ip in log_action is NULL (https://otland.net/threads/myaac-v0-0-1.251454/page-2#post-2440357)
- fixed bug when guild doesn't exist on characters page (https://otland.net/threads/myaac-v0-0-1.251454/page-2#post-2440320)
- disabled friendly_urls by default
- fixes when $config['database_*'] is set
- added CHANGELOG
[0.0.3 - 03.05.2017]
- Full support for OTHire 0.0.3
- added support for otservers that doesn't use account.name field, instead just account number will be used
- fixed encryption detection on TFS 0.3
- fixed bug when server_config table doesn't exist
- (install) moved admin account creation to new step
- fixed news comment link
- by default, the installer creates now the Admin player, for admin account
- fixed installation errors
- fixed config.lua loading with some weird comments
[0.0.2 - 02.05.2017]
- updated forum links to use friendly_urls
- some more info will be shown when cannot connect to database
- show more error infos when creating character
- fixed forum link on newses
- fixed spells loading when there's vocation name instead of id
- fixed bug when you have changed template but it doesn't exist anymore
- fixed vocations with promotion loading
- fixed support for gesior pages and templates
- added function OTS_Acount:getGroupId()
[0.0.1 - 01.05.2017]
This is first official release of MyAAC.
Features are listed here
For more information, see the release announcement on OTLand: https://otland.net/threads/myaac-v0-0-1.251454/

41
README
View File

@@ -1,41 +0,0 @@
MyAAC 0.0.1 - http://www.my-aac.org
REQUIREMENTS
=====================================
- PHP 5.1.0 or later
- MySQL database
- (optional) mod_rewrite to use friendly_urls
INSTALLATION AND CONFIGURATION
=====================================
Just decompress and untar the source (which you should have done by now,
if you're reading this), into your webserver's document root.
MyAAC needs proper permissions to handle files correctly.
If you're using apache2, then your directory needs to have owner set to: www-data, you can do it by using following command:
chown -R www-data.www-data /var/www/*
(or any other path your MyAAC installation is located at..)
--------------------------
Note: Linux only
If you're under linux use these commands to set proper permissions:
chmod 660 config.local.php
chmod 660 images/guilds
chmod 660 images/houses
chmod 660 images/screenshots
--------------------------
Visit http://your_domain/install (http://localhost/install) and follow instructions in the browser.
KNOWN PROBLEMS
=====================================
- none -
OTHER NOTES
=====================================
If you have a great idea or want contribute to the project - visit our website at http://www.my-aac.org
LICENSING
=====================================
This program and all associated files are released under the GNU Public
License, see LICENSE for details.

View File

@@ -7,6 +7,9 @@ Official website: http://my-aac.org
- PHP 5.1.0 or later - PHP 5.1.0 or later
- MySQL database - MySQL database
- PDO PHP Extension
- XML PHP Extension
- ZIP PHP Extension
- (optional) mod_rewrite to use friendly_urls - (optional) mod_rewrite to use friendly_urls
### INSTALLATION AND CONFIGURATION ### INSTALLATION AND CONFIGURATION

View File

@@ -22,7 +22,7 @@
<?php endif; ?> <?php endif; ?>
</div> </div>
<div id="version">Version: <?php echo MYAAC_VERSION; ?> (<a id="update" href="?p=version">Check for updates</a>)<br/> <div id="version">Version: <?php echo MYAAC_VERSION; ?> (<a id="update" href="?p=version">Check for updates</a>)<br/>
Logged in as: <b><?php echo $account_logged->getName(); ?></b><br/> Logged in as: <b><?php echo (USE_ACCOUNT_NAME ? $account_logged->getName() : $account_logged->getId()); ?></b><br/>
<a href="<?php echo BASE_URL; ?>" target="_blank">Preview</a> <span class="separator">|</span> <a href="?action=logout">Log out<img src="<?php echo BASE_URL; ?>images/icons/logout.png" alt="" title="Log out" /></a> <a href="<?php echo BASE_URL; ?>" target="_blank">Preview</a> <span class="separator">|</span> <a href="?action=logout">Log out<img src="<?php echo BASE_URL; ?>images/icons/logout.png" alt="" title="Log out" /></a>
</div> </div>
<?php endif; ?> <?php endif; ?>

View File

@@ -21,13 +21,13 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
session_start(); session_start();
define('MYAAC', true); define('MYAAC', true);
define('MYAAC_VERSION', '0.0.2'); define('MYAAC_VERSION', '0.0.6');
define('TABLE_PREFIX', 'myaac_'); define('TABLE_PREFIX', 'myaac_');
define('START_TIME', microtime(true)); define('START_TIME', microtime(true));
define('MYAAC_OS', (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? 'WINDOWS' : 'LINUX'); define('MYAAC_OS', (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? 'WINDOWS' : 'LINUX');

View File

@@ -13,7 +13,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
@@ -28,7 +28,7 @@ $config = array(
// used for the Downloads page and some templates aswell // used for the Downloads page and some templates aswell
'client' => 1098, // 954 = client 9.54 'client' => 1098, // 954 = client 9.54
'friendly_urls' => false, // mod_rewrite is required for this, it makes links looks more elegant to eye, and also are SEO friendly (example: http://my-aac.org/guilds/Testing instead of http://my-aac.org/?subtopic=guilds&name=Testing) 'friendly_urls' => false, // mod_rewrite is required for this, it makes links looks more elegant to eye, and also are SEO friendly (example: http://my-aac.org/guilds/Testing instead of http://my-aac.org/?subtopic=guilds&name=Testing). Remember to rename .htaccess.dist to .htaccess
'gzip_output' => false, // gzip page content before sending it to the browser, uses less bandwidth but more cpu cycles 'gzip_output' => false, // gzip page content before sending it to the browser, uses less bandwidth but more cpu cycles
// gesior backward support (templates & pages) // gesior backward support (templates & pages)
@@ -59,7 +59,7 @@ $config = array(
// cache system. by default file cache is used // cache system. by default file cache is used
'cache_engine' => 'auto', // apc, eaccelerator, xcache, file, auto, or blank to disable. 'cache_engine' => 'auto', // apc, eaccelerator, xcache, file, auto, or blank to disable.
'cache_prefix' => 'myaac_', // have to be unique if running more MyAAC instances on the same server, ignored when using file cache. 'cache_prefix' => 'myaac_', // have to be unique if running more MyAAC instances on the same server
// database details (leave blank for auto detect from config.lua) // database details (leave blank for auto detect from config.lua)
'database_host' => '', 'database_host' => '',
@@ -90,8 +90,8 @@ $config = array(
'mail_address' => 'no-reply@your-server.org', // server e-mail address (from:) 'mail_address' => 'no-reply@your-server.org', // server e-mail address (from:)
'mail_admin' => 'your-address@your-server.org', // admin email address, where mails from contact form will be sent 'mail_admin' => 'your-address@your-server.org', // admin email address, where mails from contact form will be sent
'mail_signature' => array( // signature that will be included at the end of every message sent using _mail function 'mail_signature' => array( // signature that will be included at the end of every message sent using _mail function
'plain' => "--\nMy Server,\nhttp://www.myserver.com", 'plain' => ''/*'--\nMy Server,\nhttp://www.myserver.com'*/,
'html' => '<br/>My Server,\n<a href="http://www.myserver.com">myserver.com</a>' 'html' => ''/*'<br/>My Server,\n<a href="http://www.myserver.com">myserver.com</a>'*/
), ),
'smtp_enabled' => false, // send by smtp or mail function (set false if use mail function) 'smtp_enabled' => false, // send by smtp or mail function (set false if use mail function)
'smtp_host' => '', // mail host 'smtp_host' => '', // mail host

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,36 @@
<?php
defined('MYAAC') or die('Direct access not allowed!');
$config['server_path'] = $_SESSION['var_server_path'];
// take care of trailing slash at the end
if($config['server_path'][strlen($config['server_path']) - 1] != '/')
$config['server_path'] .= '/';
if(!file_exists($config['server_path'] . 'config.lua')) {
error($locale['step_database_error_config']);
$error = true;
}
if(!isset($error) || !$error) {
$config['lua'] = load_config_lua($config['server_path'] . 'config.lua');
if(isset($config['lua']['sqlType'])) // tfs 0.3
$config['database_type'] = $config['lua']['sqlType'];
else if(isset($config['lua']['mysqlHost'])) // tfs 0.2/1.0
$config['database_type'] = 'mysql';
else if(isset($config['lua']['database_type'])) // otserv
$config['database_type'] = $config['lua']['database_type'];
else if(isset($config['lua']['sql_type'])) // otserv
$config['database_type'] = $config['lua']['sql_type'];
$config['database_type'] = strtolower($config['database_type']);
if(empty($config['database_type'])) {
error($locale['step_database_error_database_empty']);
$error = true;
}
else if($config['database_type'] != 'mysql') {
$locale['step_database_error_only_mysql'] = str_replace('$DATABASE_TYPE$', '<b>' . $config['database_type'] . '</b>', $locale['step_database_error_only_mysql']);
error($locale['step_database_error_only_mysql']);
$error = true;
}
}
?>

View File

@@ -1,5 +1,12 @@
<?php <?php
defined('MYAAC') or die('Direct access not allowed!');
require(SYSTEM . 'libs/pot/OTS.php'); require(SYSTEM . 'libs/pot/OTS.php');
$ots = POT::getInstance(); $ots = POT::getInstance();
require(SYSTEM . 'database.php'); require(SYSTEM . 'database.php');
if(tableExist('accounts'))
define('USE_ACCOUNT_NAME', fieldExist('name', 'accounts'));
else
define('USE_ACCOUNT_NAME', false);
?> ?>

View File

@@ -1,4 +1,5 @@
<?php <?php
defined('MYAAC') or die('Direct access not allowed!');
function query($query) function query($query)
{ {
global $db, $error; global $db, $error;

View File

@@ -1,4 +1,5 @@
<?php <?php
defined('MYAAC') or die('Direct access not allowed!');
if(isset($_POST['lang'])) if(isset($_POST['lang']))
{ {
setcookie('locale', $_POST['lang']); setcookie('locale', $_POST['lang']);
@@ -17,7 +18,7 @@ else
// detect locale // detect locale
$locale_s = get_browser_languages(); $locale_s = get_browser_languages();
if(!sizeof($locale_s)) if(!sizeof($locale_s))
$locale__ = 'en'; $locale_ = 'en';
else else
{ {
foreach($locale_s as $id => $tmp) foreach($locale_s as $id => $tmp)

View File

@@ -1,9 +1,9 @@
CREATE TABLE `myaac_account_actions` CREATE TABLE `myaac_account_actions`
( (
`account_id` INT(11) NOT NULL, `account_id` INT(11) NOT NULL,
`ip` INT(11) NOT NULL, `ip` INT(11) NOT NULL DEFAULT 0,
`date` INT(11) NOT NULL, `date` INT(11) NOT NULL DEFAULT 0,
`action` VARCHAR(255) NOT NULL, `action` VARCHAR(255) NOT NULL DEFAULT '',
KEY (`account_id`) KEY (`account_id`)
) ENGINE = MyISAM; ) ENGINE = MyISAM;

View File

@@ -16,7 +16,7 @@ if(isset($_POST['vars']))
$_SESSION['var_' . $key] = $value; $_SESSION['var_' . $key] = $value;
} }
$steps = array(1 => 'welcome', 2 => 'license', 3 => 'requirements', 4 => 'config', 5 => 'database', 6 => 'finish'); $steps = array(1 => 'welcome', 2 => 'license', 3 => 'requirements', 4 => 'config', 5 => 'database', 6 => 'admin', 7 => 'finish');
if(!in_array($step, $steps)) // check if step is valid if(!in_array($step, $steps)) // check if step is valid
die('ERROR: Unknown step.'); die('ERROR: Unknown step.');
@@ -33,6 +33,8 @@ if($step == 'database')
} }
} }
$error = false;
// step include // step include
ob_start(); ob_start();
require('steps/' . $step . '.php'); require('steps/' . $step . '.php');

32
install/steps/admin.php Normal file
View File

@@ -0,0 +1,32 @@
<?php
defined('MYAAC') or die('Direct access not allowed!');
?>
<form action="<?php echo BASE_URL; ?>install/" method="post" autocomplete="off">
<input type="hidden" name="step" id="step" value="finish" />
<table>
<?php
require(BASE . 'install/includes/config.php');
if(!$error) {
require(BASE . 'install/includes/database.php');
foreach(array(USE_ACCOUNT_NAME ? 'account' : 'account_id', 'password') as $value)
echo '
<tr>
<td>
<label for="vars_' . $value . '">
<span>' . $locale['step_admin_' . $value] . '</span>
</label>
<br>
<input type="text" name="vars[' . $value . ']" id="vars_' . $value . '"' . (isset($_SESSION['var_' . $value]) ? ' value="' . $_SESSION['var_' . $value] . '"' : '') . '/>
</td>
<td>
<em>' . $locale['step_admin_' . $value . '_desc'] . '</em>
</td>
</tr>';
}
?>
</table>
<?php echo next_buttons(true, $error ? false : true);
?>
</form>

View File

@@ -1,4 +1,6 @@
<?php <?php
defined('MYAAC') or die('Direct access not allowed!');
$clients = array( $clients = array(
710, 710,
740, 740,
@@ -68,7 +70,7 @@ $clients = array(
<input type="hidden" name="step" id="step" value="database" /> <input type="hidden" name="step" id="step" value="database" />
<table> <table>
<?php <?php
foreach(array('server_path', 'account', 'password', 'mail_admin', 'mail_address') as $value) foreach(array('server_path', 'mail_admin', 'mail_address') as $value)
echo ' echo '
<tr> <tr>
<td> <td>

View File

@@ -1,5 +1,7 @@
<?php <?php
defined('MYAAC') or die('Direct access not allowed!');
//ini_set('display_errors', false); //ini_set('display_errors', false);
ini_set('max_execution_time', 300);
$error = false; $error = false;
if(!isset($_SESSION['var_server_path'])) { if(!isset($_SESSION['var_server_path'])) {
@@ -20,70 +22,56 @@ if(!$error) {
$value .= "/"; $value .= "/";
} }
if($key != 'var_account' && $key != 'var_password') { if($key != 'var_account' && $key != 'var_account_id' && $key != 'var_password') {
$content .= '$config[\'' . str_replace('var_', '', $key) . '\'] = \'' . $value . '\';'; $content .= '$config[\'' . str_replace('var_', '', $key) . '\'] = \'' . $value . '\';';
$content .= PHP_EOL; $content .= PHP_EOL;
} }
} }
} }
$config['server_path'] = $_SESSION['var_server_path']; require(BASE . 'install/includes/config.php');
// take care of trailing slash at the end
if($config['server_path'][strlen($config['server_path']) - 1] != '/')
$config['server_path'] .= '/';
if(!file_exists($config['server_path'] . 'config.lua')) {
error($locale['step_database_error_config']);
$error = true;
}
if(!$error) {
$config['lua'] = load_config_lua($config['server_path'] . 'config.lua');
if(isset($config['lua']['sqlType'])) // tfs 0.3
$config['database_type'] = $config['lua']['sqlType'];
else if(isset($config['lua']['mysqlHost'])) // tfs 0.2/1.0
$config['database_type'] = 'mysql';
else if(isset($config['lua']['database_type'])) // otserv
$config['database_type'] = $config['lua']['database_type'];
else if(isset($config['lua']['sql_type'])) // otserv
$config['database_type'] = $config['lua']['sql_type'];
$config['database_type'] = strtolower($config['database_type']); if(!$error) {
if($config['database_type'] != 'mysql') { success($locale['step_database_importing']);
$locale['step_database_error_only_mysql'] = str_replace('$DATABASE_TYPE$', '<b>' . $config['database_type'] . '</b>', $locale['step_database_error_only_mysql']); require(BASE . 'install/includes/database.php');
error($locale['step_database_error_only_mysql']);
if(!tableExist('accounts')) {
$locale['step_database_error_table'] = str_replace('$TABLE$', 'accounts', $locale['step_database_error_table']);
error($locale['step_database_error_table']);
$error = true; $error = true;
} }
else { else if(!tableExist('players')) {
success($locale['step_database_importing']); $locale['step_database_error_table'] = str_replace('$TABLE$', 'players', $locale['step_database_error_table']);
require(BASE . 'install/includes/database.php'); error($locale['step_database_error_table']);
$error = true;
if(!tableExist('accounts')) { }
$locale['step_database_error_table'] = str_replace('$TABLE$', 'accounts', $locale['step_database_error_table']); else if(!tableExist('guilds')) {
error($locale['step_database_error_table']); $locale['step_database_error_table'] = str_replace('$TABLE$', 'guilds', $locale['step_database_error_table']);
error($locale['step_database_error_table']);
$error = true;
}
if(tableExist(TABLE_PREFIX . 'account_actions')) {
$locale['step_database_error_table_exist'] = str_replace('$TABLE$', TABLE_PREFIX . 'account_actions', $locale['step_database_error_table_exist']);
warning($locale['step_database_error_table_exist']);
}
else if(!$error) {
// import schema
try {
$db->query(file_get_contents(BASE . 'install/includes/schema.sql'));
}
catch(PDOException $error_) {
error($locale['step_database_error_schema'] . ' ' . $error_);
$error = true; $error = true;
} }
if(tableExist(TABLE_PREFIX . 'account_actions')) {
$locale['step_database_error_table_exist'] = str_replace('$TABLE$', TABLE_PREFIX . 'account_actions', $locale['step_database_error_table_exist']);
warning($locale['step_database_error_table_exist']);
}
else if(!$error) {
// import schema
try {
$db->query(file_get_contents(BASE . 'install/includes/schema.sql'));
}
catch(PDOException $error_) {
error($locale['step_database_error_schema'] . ' ' . $error_);
$error = true;
}
if(!$error) {
$locale['step_database_success_schema'] = str_replace('$PREFIX$', TABLE_PREFIX, $locale['step_database_success_schema']);
success($locale['step_database_success_schema']);
}
}
if(!$error) {
$locale['step_database_success_schema'] = str_replace('$PREFIX$', TABLE_PREFIX, $locale['step_database_success_schema']);
success($locale['step_database_success_schema']);
}
}
if(!$error) {
if(fieldExist('key', 'accounts')) { if(fieldExist('key', 'accounts')) {
if(query("ALTER TABLE `accounts` MODIFY `key` VARCHAR(64) NOT NULL DEFAULT '';")) if(query("ALTER TABLE `accounts` MODIFY `key` VARCHAR(64) NOT NULL DEFAULT '';"))
success($locale['step_database_modifying_field'] . ' accounts.key...'); success($locale['step_database_modifying_field'] . ' accounts.key...');
@@ -127,12 +115,12 @@ if(!$error) {
} }
else if(!fieldExist('web_lastlogin', 'accounts')) { else if(!fieldExist('web_lastlogin', 'accounts')) {
if(query("ALTER TABLE `accounts` ADD `web_lastlogin` INT(11) NOT NULL DEFAULT 0 AFTER `country`;")) if(query("ALTER TABLE `accounts` ADD `web_lastlogin` INT(11) NOT NULL DEFAULT 0 AFTER `country`;"))
success($locale['step_database_adding_field'] . ' accounts.created...'); success($locale['step_database_adding_field'] . ' accounts.web_lastlogin...');
} }
if(!fieldExist('web_flags', 'accounts')) { if(!fieldExist('web_flags', 'accounts')) {
if(query("ALTER TABLE `accounts` ADD `web_flags` INT(11) NOT NULL DEFAULT 0 AFTER `web_lastlogin`;")) if(query("ALTER TABLE `accounts` ADD `web_flags` INT(11) NOT NULL DEFAULT 0 AFTER `web_lastlogin`;"))
success($locale['step_database_adding_field'] . ' accounts.country...'); success($locale['step_database_adding_field'] . ' accounts.web_flags...');
} }
if(!fieldExist('email_hash', 'accounts')) { if(!fieldExist('email_hash', 'accounts')) {
@@ -176,7 +164,7 @@ if(!$error) {
if(query("ALTER TABLE `accounts` ADD `premium_points` INT(11) NOT NULL DEFAULT 0 AFTER `email_next`;")) if(query("ALTER TABLE `accounts` ADD `premium_points` INT(11) NOT NULL DEFAULT 0 AFTER `email_next`;"))
success($locale['step_database_adding_field'] . ' accounts.premium_points...'); success($locale['step_database_adding_field'] . ' accounts.premium_points...');
} }
if(!fieldExist('description', 'guilds')) { if(!fieldExist('description', 'guilds')) {
if(query("ALTER TABLE `guilds` ADD `description` TEXT NOT NULL DEFAULT '';")) if(query("ALTER TABLE `guilds` ADD `description` TEXT NOT NULL DEFAULT '';"))
success($locale['step_database_adding_field'] . ' guilds.description...'); success($locale['step_database_adding_field'] . ' guilds.description...');
@@ -193,12 +181,17 @@ if(!$error) {
if(query("ALTER TABLE `guilds` ADD `logo_name` VARCHAR( 255 ) NOT NULL DEFAULT 'default.gif';")) if(query("ALTER TABLE `guilds` ADD `logo_name` VARCHAR( 255 ) NOT NULL DEFAULT 'default.gif';"))
success($locale['step_database_adding_field'] . ' guilds.logo_name...'); success($locale['step_database_adding_field'] . ' guilds.logo_name...');
} }
if(!fieldExist('created', 'players')) { if(!fieldExist('created', 'players')) {
if(query("ALTER TABLE `players` ADD `created` INT(11) NOT NULL DEFAULT 0;")) if(query("ALTER TABLE `players` ADD `created` INT(11) NOT NULL DEFAULT 0;"))
success($locale['step_database_adding_field'] . ' players.created...'); success($locale['step_database_adding_field'] . ' players.created...');
} }
if(!fieldExist('deleted', 'players') && !fieldExist('deletion', 'players')) {
if(query("ALTER TABLE `players` ADD `deleted` TINYINT(1) NOT NULL DEFAULT 0;"))
success($locale['step_database_adding_field'] . ' players.comment...');
}
if(fieldExist('hide_char', 'players')) { if(fieldExist('hide_char', 'players')) {
if(query("ALTER TABLE `players` CHANGE `hide_char` `hidden` TINYINT(1) NOT NULL DEFAULT 0;")) { if(query("ALTER TABLE `players` CHANGE `hide_char` `hidden` TINYINT(1) NOT NULL DEFAULT 0;")) {
$tmp = str_replace('$FIELD$', 'players.hide_char', $locale['step_database_changing_field']); $tmp = str_replace('$FIELD$', 'players.hide_char', $locale['step_database_changing_field']);
@@ -207,7 +200,7 @@ if(!$error) {
} }
} }
else if(!fieldExist('hidden', 'players')) { else if(!fieldExist('hidden', 'players')) {
if(query("ALTER TABLE `players` ADD `hidden` VARCHAR( 255 ) TINYINT(1) NOT NULL DEFAULT 0;")) if(query("ALTER TABLE `players` ADD `hidden` TINYINT(1) NOT NULL DEFAULT 0;"))
success($locale['step_database_adding_field'] . ' players.hidden...'); success($locale['step_database_adding_field'] . ' players.hidden...');
} }
@@ -215,120 +208,45 @@ if(!$error) {
if(query("ALTER TABLE `players` ADD `comment` TEXT NOT NULL DEFAULT '';")) if(query("ALTER TABLE `players` ADD `comment` TEXT NOT NULL DEFAULT '';"))
success($locale['step_database_adding_field'] . ' players.comment...'); success($locale['step_database_adding_field'] . ' players.comment...');
} }
}
$account = $_SESSION['var_account'];
$password = $_SESSION['var_password']; if(!$error && (!isset($_SESSION['saved']))) {
$content .= '$config[\'installed\'] = true;';
$config_salt_enabled = fieldExist('salt', 'accounts'); $content .= PHP_EOL;
if($config_salt_enabled) // if(strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false) {
{ // $content .= '$config[\'friendly_urls\'] = true;';
$salt = generateRandomString(10, false, true, true); // $content .= PHP_EOL;
$password = $salt . $password; // }
$content .= '$config[\'mail_enabled\'] = true;';
$content .= PHP_EOL;
if(!check_mail($_SESSION['var_mail_admin'])) {
error($locale['step_config_mail_admin_error']);
$error = true;
} }
if(!check_mail($_SESSION['var_mail_address'])) {
$account_db = new OTS_Account(); error($locale['step_config_mail_address_error']);
$account_db->load(1); $error = true;
if($account_db->isLoaded()) { }
$account_db->setName('dummy_account');
$account_db->setPassword('for sample characters. ' . generateRandomString(10)); $content .= '$config[\'client_download\'] = \'http://clients.halfaway.net/windows.php?tibia=\'. $config[\'client\'];';
$account_db->save(); $content .= PHP_EOL;
$content .= '$config[\'client_download_linux\'] = \'http://clients.halfaway.net/linux.php?tibia=\'. $config[\'client\'];';
$content .= PHP_EOL;
$content .= '// place for your configuration directives, so you can later easily update myaac';
$content .= PHP_EOL;
$content .= "?>";
$file = fopen(BASE . 'config.local.php', 'a+');
if($file) {
if(!$error) {
fwrite($file, $content);
$_SESSION['saved'] = true;
}
} }
else { else {
$new_account = $ots->createObject('Account'); $locale['step_database_error_file'] = str_replace('$FILE$', '<b>' . BASE . 'config.local.php</b>', $locale['step_database_error_file']);
$new_account->create('dummy_account', 1); warning($locale['step_database_error_file'] . '<br/>
$account_db->setPassword('for sample characters. ' . generateRandomString(10)); <textarea cols="70" rows="10">' . $content . '</textarea>');
}
$account_db = new OTS_Account();
$account_db->find($account);
if($account_db->isLoaded()) {
if($config_salt_enabled)
$account_db->setSalt($salt);
$account_db->setPassword(encrypt($password));
$account_db->setEMail($_SESSION['var_mail_admin']);
$account_db->save();
$account_db->setCustomField('web_flags', 3);
$account_db->setCustomField('country', 'us');
$_SESSION['account'] = $account_db->getId();
}
else {
$new_account = $ots->createObject('Account');
$new_account->create($account);
if($config_salt_enabled)
$new_account->setSalt($salt);
$new_account->setPassword(encrypt($password));
$new_account->setEMail($_SESSION['var_mail_admin']);
$new_account->unblock();
$new_account->save();
$new_account->setCustomField('created', time());
$new_account->setCustomField('web_flags', 3);
$new_account->setCustomField('country', 'us');
$new_account->logAction('Account created.');
$_SESSION['account'] = $new_account->getId();
}
success($locale['step_database_created_account']);
$_SESSION['password'] = encrypt($password);
$_SESSION['remember_me'] = true;
$deleted = 'deleted';
if(fieldExist('deletion', 'players'))
$deleted = 'deletion';
$query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Rook Sample') . ' OR `name` = ' . $db->quote('Sorcerer Sample') . ' OR `name` = ' . $db->quote('Druid Sample') . ' OR `name` = ' . $db->quote('Paladin Sample') . ' OR `name` = ' . $db->quote('Knight Sample'));
if($query->rowCount() == 0) {
if(query("INSERT INTO `players` (`id`, `name`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `lastlogout`, `blessings`, `balance`, `stamina`, `$deleted`, `created`, `hidden`, `comment`) VALUES
(null, 'Rook Sample', 1, 1, 8, 0, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179613, 2453925456, 1, 0, 0, 1255179614, 0, 0, 151200000, 1, UNIX_TIMESTAMP(), 1, ''),
(null, 'Sorcerer Sample', 1, 1, 8, 1, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179571, 2453925456, 1, 0, 0, 1255179612, 0, 0, 151200000, 1, UNIX_TIMESTAMP(), 1, ''),
(null, 'Druid Sample', 1, 1, 8, 2, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179655, 2453925456, 1, 0, 0, 1255179658, 0, 0, 151200000, 1, UNIX_TIMESTAMP(), 1, ''),
(null, 'Paladin Sample', 1, 1, 8, 3, 185, 185, 4200, 118, 114, 38, 57, 129, 0, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179854, 2453925456, 1, 0, 0, 1255179858, 0, 0, 151200000, 1, UNIX_TIMESTAMP(), 1, ''),
(null, 'Knight Sample', 1, 1, 8, 4, 185, 185, 4200, 118, 114, 38, 57, 131, 0, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179620, 2453925456, 1, 0, 0, 1255179654, 0, 0, 151200000, 1, UNIX_TIMESTAMP(), 1, '');"))
success($locale['step_database_imported_players']);
}
if(!$error && !isset($_SESSION['saved'])) {
$content .= '$config[\'installed\'] = true;';
$content .= PHP_EOL;
if(strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false) {
$content .= '$config[\'friendly_urls\'] = true;';
$content .= PHP_EOL;
}
$content .= '$config[\'mail_enabled\'] = true;';
$content .= PHP_EOL;
if(!check_mail($_SESSION['var_mail_admin'])) {
error($locale['step_config_mail_admin_error']);
$error = true;
}
if(!check_mail($_SESSION['var_mail_address'])) {
error($locale['step_config_mail_address_error']);
$error = true;
}
$content .= '$config[\'client_download\'] = \'http://clients.halfaway.net/windows.php?tibia=\'. $config[\'client\'];';
$content .= PHP_EOL;
$content .= '$config[\'client_download_linux\'] = \'http://clients.halfaway.net/linux.php?tibia=\'. $config[\'client\'];';
$content .= PHP_EOL;
$content .= "?>";
$file = fopen(BASE . 'config.local.php', 'a+');
if($file) {
if(!$error) {
fwrite($file, $content);
$_SESSION['saved'] = true;
}
}
else {
$locale['step_database_error_file'] = str_replace('$FILE$', '<b>' . BASE . 'config.local.php</b>', $locale['step_database_error_file']);
warning($locale['step_database_error_file'] . '<br/>
<textarea cols="70" rows="10">' . $content . '</textarea>');
}
} }
} }
} }
@@ -336,7 +254,7 @@ if(!$error) {
?> ?>
<form action="<?php echo BASE_URL; ?>install/" method="post"> <form action="<?php echo BASE_URL; ?>install/" method="post">
<input type="hidden" name="step" id="step" value="finish" /> <input type="hidden" name="step" id="step" value="admin" />
<?php echo next_buttons(true, $error ? false : true); <?php echo next_buttons(true, $error ? false : true);
?> ?>
</form> </form>

View File

@@ -1,20 +1,152 @@
<?php <?php
$locale['step_finish_desc'] = str_replace('$ADMIN_PANEL$', generateLink(ADMIN_URL, $locale['step_finish_admin_panel'], true), $locale['step_finish_desc']); defined('MYAAC') or die('Direct access not allowed!');
$locale['step_finish_desc'] = str_replace('$HOMEPAGE$', generateLink(BASE_URL, $locale['step_finish_homepage'], true), $locale['step_finish_desc']);
$locale['step_finish_desc'] = str_replace('$LINK$', generateLink('http://my-aac.org', 'http://my-aac.org', true), $locale['step_finish_desc']);
?>
<p class="success"><?php echo $locale['step_finish_desc']; ?></p>
<?php if(isset($config['installed']) && $config['installed'] && !isset($_SESSION['saved'])) {
echo '<p class="warning">' . $locale['already_installed'] . '</p>';
if(!isset($_SESSION['installed'])) {
file_get_contents('http://my-aac.org/report_install.php?v=' . MYAAC_VERSION);
$_SESSION['installed'] = false;
} }
else {
require(SYSTEM . 'init.php');
//require(BASE . 'install/includes/config.php');
if(!$error) {
//require(BASE . 'install/includes/database.php');
foreach($_SESSION as $key => $value) { if(USE_ACCOUNT_NAME)
if(strpos($key, 'var_') !== false) $account = isset($_SESSION['var_account']) ? $_SESSION['var_account'] : NULL;
unset($_SESSION[$key]); else
$account_id = isset($_SESSION['var_account_id']) ? $_SESSION['var_account_id'] : NULL;
$password = $_SESSION['var_password'];
$config_salt_enabled = fieldExist('salt', 'accounts');
if($config_salt_enabled)
{
$salt = generateRandomString(10, false, true, true);
$password = $salt . $password;
}
$account_db = new OTS_Account();
$account_db->load(1);
if($account_db->isLoaded()) {
if(USE_ACCOUNT_NAME)
$account_db->setName('dummy_account');
$account_db->setPassword('for sample characters. ' . generateRandomString(10));
$account_db->save();
}
else {
$new_account = new OTS_Account();
if(USE_ACCOUNT_NAME)
$new_account->create('dummy_account', 1);
else
$new_account->create(NULL, 1);
$new_account->setPassword('for sample characters. ' . generateRandomString(10));
$new_account->save();
}
$account_db = new OTS_Account();
if(isset($account))
$account_db->find($account);
else
$account_db->load($account_id);
$player_db = $ots->createObject('Player');
$player_db->find('Admin');
$groups = new OTS_Groups_List();
if(!$player_db->isLoaded())
{
$player = $ots->createObject('Player');
$player->setName('Admin');
$player->setGroupId($groups->getHighestId());
}
if($account_db->isLoaded()) {
if($config_salt_enabled)
$account_db->setSalt($salt);
$account_db->setPassword(encrypt($password));
$account_db->setEMail($_SESSION['var_mail_admin']);
$account_db->save();
$account_db->setCustomField('web_flags', 3);
$account_db->setCustomField('country', 'us');
if(fieldExist('group_id', 'accounts'))
$account_db->setCustomField('group_id', $groups->getHighestId());
if(!$player_db->isLoaded())
$player->setAccountId($account_db->getId());
else
$player_db->setAccountId($account_db->getId());
$_SESSION['account'] = $account_db->getId();
}
else {
$new_account = $ots->createObject('Account');
$new_account->create($account);
if($config_salt_enabled)
$new_account->setSalt($salt);
$new_account->setPassword(encrypt($password));
$new_account->setEMail($_SESSION['var_mail_admin']);
$new_account->unblock();
$new_account->save();
$new_account->setCustomField('created', time());
$new_account->setCustomField('web_flags', 3);
$new_account->setCustomField('country', 'us');
if(fieldExist('group_id', 'accounts'))
$new_account->setCustomField('group_id', $groups->getHighestId());
$new_account->logAction('Account created.');
if(!$player_db->isLoaded())
$player->setAccountId($new_account->getId());
else
$player_db->setAccountId($new_account->getId());
$_SESSION['account'] = $new_account->getId();
}
if($player_db->isLoaded())
$player_db->save();
else
$player->save();
success($locale['step_database_created_account']);
$_SESSION['password'] = encrypt($password);
$_SESSION['remember_me'] = true;
$deleted = 'deleted';
if(fieldExist('deletion', 'players'))
$deleted = 'deletion';
$query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Rook Sample') . ' OR `name` = ' . $db->quote('Sorcerer Sample') . ' OR `name` = ' . $db->quote('Druid Sample') . ' OR `name` = ' . $db->quote('Paladin Sample') . ' OR `name` = ' . $db->quote('Knight Sample'));
if($query->rowCount() == 0) {
if(query("INSERT INTO `players` (`id`, `name`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `lastlogout`, `balance`, `$deleted`, `created`, `hidden`, `comment`) VALUES
(null, 'Rook Sample', 1, 1, 8, 0, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179613, 2453925456, 1, 1255179614, 0, 1, UNIX_TIMESTAMP(), 1, ''),
(null, 'Sorcerer Sample', 1, 1, 8, 1, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179571, 2453925456, 1, 1255179612, 0, 1, UNIX_TIMESTAMP(), 1, ''),
(null, 'Druid Sample', 1, 1, 8, 2, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179655, 2453925456, 1, 1255179658, 0, 1, UNIX_TIMESTAMP(), 1, ''),
(null, 'Paladin Sample', 1, 1, 8, 3, 185, 185, 4200, 118, 114, 38, 57, 129, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179854, 2453925456, 1, 1255179858, 0, 1, UNIX_TIMESTAMP(), 1, ''),
(null, 'Knight Sample', 1, 1, 8, 4, 185, 185, 4200, 118, 114, 38, 57, 131, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179620, 2453925456, 1, 1255179654, 0, 1, UNIX_TIMESTAMP(), 1, '');"))
success($locale['step_database_imported_players']);
}
$locale['step_finish_desc'] = str_replace('$ADMIN_PANEL$', generateLink(ADMIN_URL, $locale['step_finish_admin_panel'], true), $locale['step_finish_desc']);
$locale['step_finish_desc'] = str_replace('$HOMEPAGE$', generateLink(BASE_URL, $locale['step_finish_homepage'], true), $locale['step_finish_desc']);
$locale['step_finish_desc'] = str_replace('$LINK$', generateLink('http://my-aac.org', 'http://my-aac.org', true), $locale['step_finish_desc']);
?>
<p class="success"><?php echo $locale['step_finish_desc']; ?></p>
<?php
if(!isset($_SESSION['installed'])) {
file_get_contents('http://my-aac.org/report_install.php?v=' . MYAAC_VERSION);
$_SESSION['installed'] = false;
}
foreach($_SESSION as $key => $value) {
if(strpos($key, 'var_') !== false)
unset($_SESSION[$key]);
}
unset($_SESSION['saved']);
}
} }
unset($_SESSION['saved']);
?> ?>

View File

@@ -1,3 +1,6 @@
<?php
defined('MYAAC') or die('Direct access not allowed!');
?>
<form action="<?php echo BASE_URL; ?>install/" method="post"> <form action="<?php echo BASE_URL; ?>install/" method="post">
<input type="hidden" name="step" id="step" value="requirements" /> <input type="hidden" name="step" id="step" value="requirements" />
<textarea rows="10" cols="80" readonly="1"><?php echo file_get_contents(BASE . 'LICENSE'); ?></textarea> <textarea rows="10" cols="80" readonly="1"><?php echo file_get_contents(BASE . 'LICENSE'); ?></textarea>

View File

@@ -1,16 +1,18 @@
<?php <?php
defined('MYAAC') or die('Direct access not allowed!');
/* /*
* *
* @param string $name * @param string $name
* @param boolean $ok * @param boolean $ok
* @param mixed $version * @param mixed $info
*/ */
function version_check($name, $ok, $version = '', $warning = false) function version_check($name, $ok, $info = '', $warning = false)
{ {
global $failed; global $failed;
echo '<p class="' . ($ok ? 'success' : ($warning ? 'warning' : 'error')) . '">' . $name; echo '<p class="' . ($ok ? 'success' : ($warning ? 'warning' : 'error')) . '">' . $name;
if(!empty($version)) if(!empty($info))
echo ': <b>' . $version . '</b>'; echo ': <b>' . $info . '</b>';
echo '</p>'; echo '</p>';
if(!$ok && !$warning) if(!$ok && !$warning)
@@ -33,8 +35,9 @@ version_check('register_long_arrays', !$ini_register_globals, $ini_register_glob
$ini_safe_mode = ini_get_bool('safe_mode'); $ini_safe_mode = ini_get_bool('safe_mode');
version_check('safe_mode', !$ini_safe_mode, $ini_safe_mode ? $locale['on'] : $locale['off'], true); version_check('safe_mode', !$ini_safe_mode, $ini_safe_mode ? $locale['on'] : $locale['off'], true);
version_check('PDO extension loaded', extension_loaded('pdo'), '', false); version_check(str_replace('$EXTENSION$', 'PDO', $locale['step_requirements_extension']) , extension_loaded('pdo'), extension_loaded('pdo') ? $locale['loaded'] : $locale['not_loaded']);
version_check('zip extension loaded', extension_loaded('zip'), '', false); version_check(str_replace('$EXTENSION$', 'XML', $locale['step_requirements_extension']), extension_loaded('xml'), extension_loaded('xml') ? $locale['loaded'] : $locale['not_loaded']);
version_check(str_replace('$EXTENSION$', 'ZIP', $locale['step_requirements_extension']), extension_loaded('zip'), extension_loaded('zip') ? $locale['loaded'] : $locale['not_loaded']);
if($failed) if($failed)
{ {

View File

@@ -1,8 +1,10 @@
<?php <?php
if(isset($config['installed']) && $config['installed']) defined('MYAAC') or die('Direct access not allowed!');
if(isset($config['installed']) && $config['installed'] && !isset($_SESSION['saved'])) {
echo '<p class="warning">' . $locale['already_installed'] . '</p>'; echo '<p class="warning">' . $locale['already_installed'] . '</p>';
else }
{ else {
unset($_SESSION['saved']);
?> ?>
<form action="<?php echo BASE_URL; ?>install/" method="post"> <form action="<?php echo BASE_URL; ?>install/" method="post">
<input type="hidden" name="step" id="step" value="license" /> <input type="hidden" name="step" id="step" value="license" />

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

File diff suppressed because one or more lines are too long

View File

@@ -1,54 +1,68 @@
<?php <?php
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
if(isset($config['lua']['sqlType'])) // tfs 0.3 if(!isset($config['database_type'][0]) || !isset($config['database_user'][0]) || !isset($config['database_password'][0]) || !isset($config['database_name'][0]))
{ {
$config['otserv_version'] = TFS_03; if(isset($config['lua']['sqlType'])) {// tfs 0.3
$config['database_type'] = $config['lua']['sqlType']; if(isset($config['lua']['mysqlHost'])) {// tfs 0.2
$config['database_host'] = $config['lua']['sqlHost']; $config['otserv_version'] = TFS_02;
$config['database_port'] = $config['lua']['sqlPort']; $config['database_type'] = 'mysql';
$config['database_user'] = $config['lua']['sqlUser']; $config['database_host'] = $config['lua']['mysqlHost'];
$config['database_password'] = $config['lua']['sqlPass']; $config['database_port'] = $config['lua']['mysqlPort'];
$config['database_name'] = $config['lua']['sqlDatabase']; $config['database_user'] = $config['lua']['mysqlUser'];
$config['database_password'] = $config['lua']['mysqlPass'];
$config['database_name'] = $config['lua']['mysqlDatabase'];
$config['database_encryption'] = $config['lua']['passwordType'];
}
else {
$config['otserv_version'] = TFS_03;
$config['database_type'] = $config['lua']['sqlType'];
$config['database_host'] = $config['lua']['sqlHost'];
$config['database_port'] = $config['lua']['sqlPort'];
$config['database_user'] = $config['lua']['sqlUser'];
$config['database_password'] = $config['lua']['sqlPass'];
$config['database_name'] = $config['lua']['sqlDatabase'];
$config['database_encryption'] = $config['lua']['encryptionType']; $config['database_encryption'] = $config['lua']['encryptionType'];
if(!isset($encryptionType)/* || empty($encryptionType)*/) // before 0.3.6 if(!isset($config['database_encryption']) || empty($config['database_encryption'])) // before 0.3.6
$config['database_encryption'] = $config['lua']['passwordType']; $config['database_encryption'] = $config['lua']['passwordType'];
} }
else if(isset($config['lua']['mysqlHost'])) // tfs 0.2/1.0 }
{ else if(isset($config['lua']['mysqlHost'])) // tfs 1.0
$config['otserv_version'] = TFS_02; {
$config['database_type'] = 'mysql'; $config['otserv_version'] = TFS_02;
$config['database_host'] = $config['lua']['mysqlHost']; $config['database_type'] = 'mysql';
$config['database_port'] = $config['lua']['mysqlPort']; $config['database_host'] = $config['lua']['mysqlHost'];
$config['database_user'] = $config['lua']['mysqlUser']; $config['database_port'] = $config['lua']['mysqlPort'];
$config['database_password'] = $config['lua']['mysqlPass']; $config['database_user'] = $config['lua']['mysqlUser'];
$config['database_name'] = $config['lua']['mysqlDatabase']; $config['database_password'] = $config['lua']['mysqlPass'];
$config['database_encryption'] = 'sha1'; $config['database_name'] = $config['lua']['mysqlDatabase'];
} $config['database_encryption'] = 'sha1';
else if(isset($config['lua']['database_type'])) // otserv }
{ else if(isset($config['lua']['database_type'])) // otserv
$config['otserv_version'] = OTSERV; {
$config['database_type'] = $config['lua']['database_type']; $config['otserv_version'] = OTSERV;
$config['database_host'] = $config['lua']['database_host']; $config['database_type'] = $config['lua']['database_type'];
$config['database_port'] = $config['lua']['database_port']; $config['database_host'] = $config['lua']['database_host'];
$config['database_user'] = $config['lua']['database_username']; $config['database_port'] = $config['lua']['database_port'];
$config['database_password'] = $config['lua']['database_password']; $config['database_user'] = $config['lua']['database_username'];
$config['database_name'] = $config['lua']['database_schema']; $config['database_password'] = $config['lua']['database_password'];
$config['database_encryption'] = isset($config['lua']['passwordtype']) ? $config['lua']['passwordtype'] : $config['lua']['password_type']; $config['database_name'] = $config['lua']['database_schema'];
$config['database_salt'] = isset($config['lua']['passwordsalt']) ? $config['lua']['passwordsalt'] : $config['lua']['password_salt']; $config['database_encryption'] = isset($config['lua']['passwordtype']) ? $config['lua']['passwordtype'] : $config['lua']['password_type'];
} $config['database_salt'] = isset($config['lua']['passwordsalt']) ? $config['lua']['passwordsalt'] : $config['lua']['password_salt'];
else if(isset($config['lua']['sql_host'])) // otserv 0.6.3 / 0.6.4 }
{ else if(isset($config['lua']['sql_host'])) // otserv 0.6.3 / 0.6.4
$config['otserv_version'] = OTSERV_06; {
$config['database_type'] = $config['lua']['sql_type']; $config['otserv_version'] = OTSERV_06;
$config['database_host'] = $config['lua']['sql_host']; $config['database_type'] = $config['lua']['sql_type'];
$config['database_port'] = $config['lua']['sql_port']; $config['database_host'] = $config['lua']['sql_host'];
$config['database_user'] = $config['lua']['sql_user']; $config['database_port'] = $config['lua']['sql_port'];
$config['database_password'] = $config['lua']['sql_pass']; $config['database_user'] = $config['lua']['sql_user'];
$config['database_name'] = $config['lua']['sql_db']; $config['database_password'] = $config['lua']['sql_pass'];
$config['database_encryption'] = isset($config['lua']['passwordtype']) ? $config['lua']['passwordtype'] : $config['lua']['password_type']; $config['database_name'] = $config['lua']['sql_db'];
$config['database_salt'] = isset($config['lua']['passwordsalt']) ? $config['lua']['passwordsalt'] : $config['lua']['password_salt']; $config['database_encryption'] = isset($config['lua']['passwordtype']) ? $config['lua']['passwordtype'] : $config['lua']['password_type'];
$config['database_salt'] = isset($config['lua']['passwordsalt']) ? $config['lua']['passwordsalt'] : $config['lua']['password_salt'];
}
} }
if(isset($config['lua']['useMD5Passwords']) && getBoolean($config['lua']['useMD5Passwords'])) if(isset($config['lua']['useMD5Passwords']) && getBoolean($config['lua']['useMD5Passwords']))
@@ -65,12 +79,16 @@ defined('MYAAC') or die('Direct access not allowed!');
); );
} }
catch(PDOException $error) { catch(PDOException $error) {
if(isset($cache) && $cache->enabled()) {
$cache->delete('config_lua');
}
die('ERROR: Cannot connect to MySQL database.<br/>' . die('ERROR: Cannot connect to MySQL database.<br/>' .
'Possible reasons:' . 'Possible reasons:' .
'<ul>' . '<ul>' .
'<li>MySQL is not configured propertly in <i>config.lua</i>.</li>' . '<li>MySQL is not configured propertly in <i>config.lua</i>.</li>' .
'<li>MySQL server is not running.</li>' . '<li>MySQL server is not running.</li>' .
'</ul>'); '</ul>' . $error);
} }
$db = POT::getInstance()->getDBHandle(); $db = POT::getInstance()->getDBHandle();
?> ?>

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -381,6 +381,8 @@ function delete_guild($id)
foreach($rank_list as $rank_in_guild) { foreach($rank_list as $rank_in_guild) {
if(fieldExist('rank_id', 'players')) if(fieldExist('rank_id', 'players'))
$players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;');
else if(tableExist('guild_members'))
$players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_members`.`rank_id` as `rank_id` FROM `players`, `guild_members` WHERE `guild_members`.`rank_id` = ' . $rank_in_guild->getId() . ' AND `players`.`id` = `guild_members`.`player_id` ORDER BY `name`;');
else else
$players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_membership`.`rank_id` as `rank_id` FROM `players`, `guild_membership` WHERE `guild_membership`.`rank_id` = ' . $rank_in_guild->getId() . ' AND `players`.`id` = `guild_membership`.`player_id` ORDER BY `name`;'); $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_membership`.`rank_id` as `rank_id` FROM `players`, `guild_membership` WHERE `guild_membership`.`rank_id` = ' . $rank_in_guild->getId() . ' AND `players`.`id` = `guild_membership`.`player_id` ORDER BY `name`;');
@@ -442,6 +444,43 @@ function check_name($name, &$error = '')
return preg_match("/[A-z ']{1,25}/", $name); return preg_match("/[A-z ']{1,25}/", $name);
} }
/**
* Validate account id
* Id lenght must be 6-10 chars
*
* @param string $name Account name to check
* @param string $error Error description will be placed here
* @return bool Is account name valid?
*/
function check_account_id($id, &$error = '')
{
if(!isset($id[0]))
{
$error = 'Please enter an account.';
return false;
}
if(!check_number($id)) {
$error = 'Invalid account name format. Use only numbers 0-9.';
return false;
}
$length = strlen($id);
if($length < 6)
{
$error = 'Account is too short (min. 6 chars).';
return false;
}
if($length > 10)
{
$error = 'Account is too long (max. 10 chars).';
return false;
}
return true;
}
/** /**
* Validate account name * Validate account name
* Name lenght must be 3-32 chars * Name lenght must be 3-32 chars
@@ -1160,14 +1199,14 @@ function load_config_lua($filename)
if(!@file_exists($config_file)) if(!@file_exists($config_file))
die('ERROR: Cannot find ' . $filename . ' file.'); die('ERROR: Cannot find ' . $filename . ' file.');
$tempFile = tempnam('/tmp', 'lua'); $tempFile = @tempnam('/tmp', 'lua');
$file = fopen($tempFile, 'w'); $file = fopen($tempFile, 'w');
if(!$file) die('Cannot load server config!'); if(!$file) die('Cannot load server config!');
// TODO: new parser that will also load dofile() includes // TODO: new parser that will also load dofile() includes
// strip lua comments to prevent parsing errors // strip lua comments to prevent parsing errors
fwrite($file, preg_replace('/(-)(-) (.*)/', '', file_get_contents($config_file))); fwrite($file, preg_replace('/(-)(-)(.*)/', '', file_get_contents($config_file)));
fclose($file); fclose($file);
$result = array_merge(parse_ini_file($tempFile, true), isset($config['lua']) ? $config['lua'] : array()); $result = array_merge(parse_ini_file($tempFile, true), isset($config['lua']) ? $config['lua'] : array());

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -72,6 +72,10 @@ unset($tmp);
if(isset($config['lua']['servername'])) if(isset($config['lua']['servername']))
$config['lua']['serverName'] = $config['lua']['servername']; $config['lua']['serverName'] = $config['lua']['servername'];
if(isset($config['lua']['houserentperiod']))
$config['lua']['houseRentPeriod'] = $config['lua']['houserentperiod'];
// localize data/ directory // localize data/ directory
if(isset($config['lua']['dataDirectory'][0])) if(isset($config['lua']['dataDirectory'][0]))
{ {
@@ -91,6 +95,15 @@ else if(isset($config['lua']['data_directory'][0]))
if($tmp[strlen($tmp) - 1] != '/') // do not forget about trailing slash if($tmp[strlen($tmp) - 1] != '/') // do not forget about trailing slash
$tmp .= '/'; $tmp .= '/';
} }
else if(isset($config['lua']['datadir'][0]))
{
$tmp = $config['lua']['datadir'];
if($tmp[0] != '/')
$tmp = $config['server_path'] . $tmp;
if($tmp[strlen($tmp) - 1] != '/') // do not forget about trailing slash
$tmp .= '/';
}
else else
$tmp = $config['server_path'] . 'data/'; $tmp = $config['server_path'] . 'data/';
@@ -102,6 +115,7 @@ require_once(SYSTEM . 'libs/pot/OTS.php');
$ots = POT::getInstance(); $ots = POT::getInstance();
require_once(SYSTEM . 'database.php'); require_once(SYSTEM . 'database.php');
define('USE_ACCOUNT_NAME', fieldExist('name', 'accounts'));
// load vocation names // load vocation names
$tmp = ''; $tmp = '';
if($cache->enabled() && $cache->fetch('vocations', $tmp)) { if($cache->enabled() && $cache->fetch('vocations', $tmp)) {

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @author Mark Samman (Talaturen) <marksamman@gmail.com> * @author Mark Samman (Talaturen) <marksamman@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @author Mark Samman (Talaturen) <marksamman@gmail.com> * @author Mark Samman (Talaturen) <marksamman@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -42,6 +42,10 @@ class Cache_APC
return ($var = apc_fetch($this->prefix . $key)) !== false; return ($var = apc_fetch($this->prefix . $key)) !== false;
} }
public function delete($key) {
apc_delete($key);
}
public function enabled() { public function enabled() {
return $this->enabled; return $this->enabled;
} }

View File

@@ -6,7 +6,7 @@
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @author Mark Samman (Talaturen) <marksamman@gmail.com> * @author Mark Samman (Talaturen) <marksamman@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -41,6 +41,10 @@ class Cache_eAccelerator
return ($var = eaccelerator_get($this->prefix . $key)) !== null; return ($var = eaccelerator_get($this->prefix . $key)) !== null;
} }
public function delete($key) {
eaccelerator_rm($key);
}
public function enabled() { public function enabled() {
return $this->enabled; return $this->enabled;
} }

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -51,6 +51,13 @@ class Cache_File
return true; return true;
} }
public function delete($key)
{
$file = $this->_name($key);
if(file_exists($file))
unlink($file);
}
public function enabled() { public function enabled() {
return $this->enabled; return $this->enabled;
} }

View File

@@ -6,7 +6,7 @@
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @author Mark Samman (Talaturen) <marksamman@gmail.com> * @author Mark Samman (Talaturen) <marksamman@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -47,6 +47,10 @@ class Cache_XCache
return true; return true;
} }
public function delete($key) {
xcache_unset($key);
}
public function enabled() { public function enabled() {
return $this->enabled; return $this->enabled;
} }

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -134,10 +134,13 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable
* @throws PDOException On PDO operation error. * @throws PDOException On PDO operation error.
* @deprecated 0.1.5 Use createNamed(). * @deprecated 0.1.5 Use createNamed().
*/ */
public function create($name, $id = NULL) public function create($name = NULL, $id = NULL)
{ {
// saves blank account info // saves blank account info
$this->db->query('INSERT INTO `accounts` (' . (isset($id) ? '`id`,' : '') . '`name`, `password`, `email`, `created`) VALUES (' . (isset($id) ? $id . ',' : '') . $this->db->quote($name) . ', \'\', \'\',' . time() . ')'); $this->db->query('INSERT INTO `accounts` (' . (isset($id) ? '`id`,' : '') . (isset($name) ? '`name`,' : '') . '`password`, `email`, `created`) VALUES (' . (isset($id) ? $id . ',' : '') . (isset($name) ? $this->db->quote($name) . ',' : '') . ' \'\', \'\',' . time() . ')');
if(isset($name))
$this->data['name'] = $name;
$this->data['id'] = $this->db->lastInsertId(); $this->data['id'] = $this->db->lastInsertId();
return $this->data['id']; return $this->data['id'];
@@ -167,7 +170,7 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable
public function load($id) public function load($id)
{ {
// SELECT query on database // SELECT query on database
$this->data = $this->db->query('SELECT ' . $this->db->fieldName('id') . ', ' . $this->db->fieldName('name') . ', ' . $this->db->fieldName('password') . ', ' . $this->db->fieldName('email') . ', ' . $this->db->fieldName('blocked') . ', ' . $this->db->fieldName('rlname') . ', ' . $this->db->fieldName('location') . ', ' . $this->db->fieldName('web_flags') . ', ' . $this->db->fieldName('premdays') . ', ' . $this->db->fieldName('lastday') . ', ' . $this->db->fieldName('created') . ' FROM ' . $this->db->tableName('accounts') . ' WHERE ' . $this->db->fieldName('id') . ' = ' . (int) $id)->fetch(); $this->data = $this->db->query('SELECT `id`, ' . (fieldExist('name', 'accounts') ? '`name`,' : '') . '`password`, `email`, ' . $this->db->fieldName('blocked') . ', ' . $this->db->fieldName('rlname') . ', ' . $this->db->fieldName('location') . ', ' . $this->db->fieldName('web_flags') . ', ' . (fieldExist('premdays', 'accounts') ? $this->db->fieldName('premdays') . ',' : '') . (fieldExist('lastday', 'accounts') ? $this->db->fieldName('lastday') . ',' : (fieldExist('premend', 'accounts') ? $this->db->fieldName('premend') . ' as `lastday`,' : '')) . $this->db->fieldName('created') . ' FROM ' . $this->db->tableName('accounts') . ' WHERE ' . $this->db->fieldName('id') . ' = ' . (int) $id)->fetch();
} }
/** /**
@@ -184,6 +187,9 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable
*/ */
public function find($name) public function find($name)
{ {
if(check_number($name))
$this->load((int)$name);
// finds player's ID // finds player's ID
$id = $this->db->query('SELECT ' . $this->db->fieldName('id') . ' FROM ' . $this->db->tableName('accounts') . ' WHERE ' . $this->db->fieldName('name') . ' = ' . $this->db->quote($name) )->fetch(); $id = $this->db->query('SELECT ' . $this->db->fieldName('id') . ' FROM ' . $this->db->tableName('accounts') . ' WHERE ' . $this->db->fieldName('name') . ' = ' . $this->db->quote($name) )->fetch();
@@ -246,8 +252,12 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable
throw new E_OTS_NotLoaded(); throw new E_OTS_NotLoaded();
} }
$lastday = 'lastday';
if(fieldExist('premend', 'accounts'))
$lastday = 'premend';
// UPDATE query on database // UPDATE query on database
$this->db->query('UPDATE `accounts` SET `name` = ' . $this->db->quote($this->data['name']) . ', `password` = ' . $this->db->quote($this->data['password']) . ', `email` = ' . $this->db->quote($this->data['email']) . ', `blocked` = ' . (int) $this->data['blocked'] . ', `rlname` = ' . $this->db->quote($this->data['rlname']) . ', `location` = ' . $this->db->quote($this->data['location']) . ', `web_flags` = ' . (int) $this->data['web_flags'] . ', `premdays` = ' . (int) $this->data['premdays'] . ', `lastday` = ' . (int) $this->data['lastday'] . ' WHERE `id` = ' . $this->data['id']); $this->db->query('UPDATE `accounts` SET ' . (fieldExist('name', 'accounts') ? '`name` = ' . $this->db->quote($this->data['name']) . ',' : '') . '`password` = ' . $this->db->quote($this->data['password']) . ', `email` = ' . $this->db->quote($this->data['email']) . ', `blocked` = ' . (int) $this->data['blocked'] . ', `rlname` = ' . $this->db->quote($this->data['rlname']) . ', `location` = ' . $this->db->quote($this->data['location']) . ', `web_flags` = ' . (int) $this->data['web_flags'] . ', ' . (fieldExist('premdays', 'accounts') ? '`premdays` = ' . (int) $this->data['premdays'] . ',' : '') . '`' . $lastday . '` = ' . (int) $this->data['lastday'] . ' WHERE `id` = ' . $this->data['id']);
} }
/** /**
@@ -303,12 +313,13 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable
public function getPremDays() public function getPremDays()
{ {
if( !isset($this->data['premdays']) || !isset($this->data['lastday']) ) if( !isset($this->data['lastday']) )
{ {
throw new E_OTS_NotLoaded(); throw new E_OTS_NotLoaded();
} }
return $this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday'])); return round(($this->data['lastday'] - time()) / (24 * 60 * 60), 3);
//return $this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday']));
} }
public function getLastLogin() public function getLastLogin()
@@ -325,7 +336,8 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable
{ {
global $config; global $config;
if(isset($config['lua']['freePremium']) && getBoolean($config['lua']['freePremium'])) return true; if(isset($config['lua']['freePremium']) && getBoolean($config['lua']['freePremium'])) return true;
return ($this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday'])) > 0); return $this->data['lastday'] > time();
//return ($this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday'])) > 0);
} }
public function getCreated() public function getCreated()
@@ -744,10 +756,17 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable
$this->data['banned'] = isset($ban['expires_at']); $this->data['banned'] = isset($ban['expires_at']);
$this->data['banned_time'] = $ban['expires_at']; $this->data['banned_time'] = $ban['expires_at'];
} }
else { else if(tableExist('bans')) {
$ban = $this->db->query('SELECT `active`, `expires` FROM `bans` WHERE (`type` = 3 OR `type` = 5) AND `active` = 1 AND `value` = ' . $this->data['id'] . ' AND (`expires` > ' . time() .' OR `expires` = -1) ORDER BY `expires` DESC')->fetch(); if(fieldExist('active', 'bans')) {
$this->data['banned'] = $ban['active']; $ban = $this->db->query('SELECT `active`, `expires` FROM `bans` WHERE (`type` = 3 OR `type` = 5) AND `active` = 1 AND `value` = ' . $this->data['id'] . ' AND (`expires` > ' . time() .' OR `expires` = -1) ORDER BY `expires` DESC')->fetch();
$this->data['banned_time'] = $ban['expires']; $this->data['banned'] = $ban['active'];
$this->data['banned_time'] = $ban['expires'];
}
else { // tfs 0.2
$ban = $this->db->query('SELECT `time` FROM `bans` WHERE (`type` = 3 OR `type` = 5) AND `account` = ' . $this->data['id'] . ' AND (`time` > ' . time() .' OR `time` = -1) ORDER BY `time` DESC')->fetch();
$this->data['banned'] = $ban['time'] == -1 || $ban['time'] > 0;
$this->data['banned_time'] = $ban['time'];
}
} }
} }
@@ -873,7 +892,15 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable
public function logAction($action) public function logAction($action)
{ {
return $this->db->query('INSERT INTO ' . $this->db->tableName(TABLE_PREFIX . 'account_actions') . ' (' . $this->db->fieldName('account_id') . ', ' . $this->db->fieldName('ip') . ', ' . $this->db->fieldName('date') . ', ' . $this->db->fieldName('action') . ') VALUES (' . $this->db->quote($this->getId()).', INET_ATON(' . $this->db->quote($_SERVER['REMOTE_ADDR']) . '), UNIX_TIMESTAMP(NOW()), ' . $this->db->quote($action).')'); $ip = '127.0.0.1';
if(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR']))
$ip = $_SERVER['REMOTE_ADDR'];
else if(isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP']))
$ip = $_SERVER['HTTP_CLIENT_IP'];
else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']))
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
return $this->db->query('INSERT INTO ' . $this->db->tableName(TABLE_PREFIX . 'account_actions') . ' (' . $this->db->fieldName('account_id') . ', ' . $this->db->fieldName('ip') . ', ' . $this->db->fieldName('date') . ', ' . $this->db->fieldName('action') . ') VALUES (' . $this->db->quote($this->getId()).', INET_ATON(' . $this->db->quote($ip) . '), UNIX_TIMESTAMP(NOW()), ' . $this->db->quote($action).')');
} }
public function getActionsLog($limit1, $limit2) public function getActionsLog($limit1, $limit2)

View File

@@ -1,110 +0,0 @@
<?php
/**#@+
* @version 0.0.4
* @since 0.0.4
*/
/**
* @package POT
* @version 0.1.3
* @author Wrzasq <wrzasq@gmail.com>
* @copyright 2007 - 2008 (C) by Wrzasq
* @license http://www.gnu.org/licenses/lgpl-3.0.txt GNU Lesser General Public License, Version 3
*/
/**
* ODBC connection interface.
*
* <p>
* At all everything that you really need to read from this class documentation is list of parameters for driver's constructor.
* </p>
*
* @package POT
* @version 0.1.3
*/
class OTS_DB_ODBC extends OTS_Base_DB
{
/**
* Creates database connection.
*
* <p>
* Connects to ODBC data source on given arguments.
* </p>
*
* <p>
* List of parameters for this drivers:
* </p>
*
* <ul>
* <li><var>host</var> - database host.</li>
* <li><var>port</var> - ODBC driver.</li>
* <li><var>database</var> - database name.</li>
* <li><var>user</var> - user login.</li>
* <li><var>password</var> - user password.</li>
* <li><var>source</var> - ODBC data source.</li>
* </ul>
*
* <p>
* Note: Since 0.1.3 version <var>source</var> parameter was added.
* </p>
*
* @version 0.1.3
* @param array $params Connection parameters.
* @throws PDOException On PDO operation error.
*/
public function __construct($params)
{
$user = null;
$password = null;
$dns = array();
if( isset($params['host']) )
{
$dns[] = 'HOSTNAME={' . $params['host'] . '}';
}
if( isset($params['port']) )
{
$dns[] = 'DRIVER={' . $params['port'] . '}';
}
if( isset($params['database']) )
{
$dns[] = 'DATABASE={' . $params['database'] . '}';
}
if( isset($params['user']) )
{
$user = $params['user'];
$dns[] = 'UID={' . $user . '}';
}
if( isset($params['password']) )
{
$password = $params['password'];
$dns[] = 'PWD={' . $user . '}';
}
if( isset($params['prefix']) )
{
$this->prefix = $params['prefix'];
}
// composes DNS
$dns = implode(';', $dns);
// source parameter overwrites all other params
if( isset($params['source']) )
{
$dns = $params['source'];
}
// PDO constructor
parent::__construct('odbc:' . $dns, $user, $password);
}
}
/**#@-*/
?>

View File

@@ -1,103 +0,0 @@
<?php
/**#@+
* @version 0.0.4
* @since 0.0.4
*/
/**
* @package POT
* @version 0.1.3
* @author Wrzasq <wrzasq@gmail.com>
* @copyright 2007 (C) by Wrzasq
* @license http://www.gnu.org/licenses/lgpl-3.0.txt GNU Lesser General Public License, Version 3
*/
/**
* PostgreSQL connection interface.
*
* <p>
* At all everything that you really need to read from this class documentation is list of parameters for driver's constructor.
* </p>
*
* @package POT
* @version 0.1.3
*/
class OTS_DB_PostgreSQL extends OTS_Base_DB
{
/**
* Creates database connection.
*
* <p>
* Connects to PgSQL (PostgreSQL) database on given arguments.
* </p>
*
* <p>
* List of parameters for this drivers:
* </p>
*
* <ul>
* <li><var>host</var> - database server.</li>
* <li><var>port</var> - port (optional, also it is possible to use host:port in <var>host</var> parameter).</li>
* <li><var>database</var> - database name.</li>
* <li><var>user</var> - user login.</li>
* <li><var>password</var> - user password.</li>
* </ul>
*
* @version 0.0.6
* @param array $params Connection parameters.
* @throws PDOException On PDO operation error.
*/
public function __construct($params)
{
$user = null;
$password = null;
$dns = array();
// host:port support
if( strpos(':', $params['host']) !== false)
{
$host = explode(':', $params['host'], 2);
$params['host'] = $host[0];
$params['port'] = $host[1];
}
if( isset($params['host']) )
{
$dns[] = 'host=' . $params['host'];
}
if( isset($params['port']) )
{
$dns[] = 'port=' . $params['port'];
}
if( isset($params['database']) )
{
$dns[] = 'dbname=' . $params['database'];
}
if( isset($params['user']) )
{
$user = $params['user'];
}
if( isset($params['password']) )
{
$password = $params['password'];
}
if( isset($params['prefix']) )
{
$this->prefix = $params['prefix'];
}
// PDO constructor
parent::__construct('pgsql:' . implode(' ', $dns), $user, $password);
}
}
/**#@-*/
?>

View File

@@ -490,7 +490,10 @@ class OTS_Group extends OTS_Row_DAO implements IteratorAggregate, Countable
// creates filter // creates filter
$filter = new OTS_SQLFilter(); $filter = new OTS_SQLFilter();
$filter->compareField('group_id', (int) $this->data['id']); $filter->compareField('group_id', (int) $this->data['id']);
$filter->compareField('deleted', 0); if(fieldExist('deletion', 'players'))
$filter->compareField('deletion', 0);
else
$filter->compareField('deleted', 0);
// creates list object // creates list object
$list = new OTS_Players_List(); $list = new OTS_Players_List();

View File

@@ -31,9 +31,9 @@ class OTS_Groups_List implements IteratorAggregate, Countable
*/ */
public function __construct($file = '') public function __construct($file = '')
{ {
global $cache;
if(tableExist('groups')) { // read groups from database if(tableExist('groups')) { // read groups from database
global $db;
foreach($db->query('SELECT `id`, `name`, `access` FROM `groups`;') as $group) foreach($db->query('SELECT `id`, `name`, `access` FROM `groups`;') as $group)
{ {
$info = array(); $info = array();
@@ -52,6 +52,8 @@ class OTS_Groups_List implements IteratorAggregate, Countable
$file = $config['data_path'] . 'XML/groups.xml'; $file = $config['data_path'] . 'XML/groups.xml';
} }
global $cache;
$data = array(); $data = array();
if($cache->enabled()) if($cache->enabled())
{ {
@@ -135,6 +137,17 @@ class OTS_Groups_List implements IteratorAggregate, Countable
throw new OutOfBoundsException(); throw new OutOfBoundsException();
} }
public function getHighestId()
{
$group_id = 0;
foreach($this->groups as $id => $group) {
if($id > $group_id)
$group_id = $id;
}
return $group_id;
}
/** /**
* Returns string representation of object. * Returns string representation of object.
* *

View File

@@ -176,7 +176,7 @@ class OTS_GuildRank extends OTS_Row_DAO implements IteratorAggregate, Countable
{ {
if( !isset($this->data['guild_id']) ) if( !isset($this->data['guild_id']) )
{ {
throw new E_OTS_NotLoaded(); return new OTS_Guild();
} }
$guild = new OTS_Guild(); $guild = new OTS_Guild();

View File

@@ -117,16 +117,16 @@ class OTS_Player extends OTS_Row_DAO
{ {
$loss = ''; $loss = '';
if(fieldExist('loss_experience', 'players')) { if(fieldExist('loss_experience', 'players')) {
$loss = ', `loss_experience`, `loss_mana`, `loss_skills`, `loss_items`'; $loss = ', `loss_experience`, `loss_mana`, `loss_skills`';
}
$loss_items = '';
if(fieldExist('loss_items', 'players')) {
$loss_items = ', `loss_items`, `loss_containers`';
} }
$guild_info = ''; $guild_info = '';
if(fieldExist('guildnick', 'players')) { if(!tableExist('guild_members') && fieldExist('guildnick', 'players')) {
$guild_info = ', `guildnick`, `rank_id`';
}
$guild_info = '';
if(fieldExist('guildnick', 'players')) {
$guild_info = ', `guildnick`, `rank_id`'; $guild_info = ', `guildnick`, `rank_id`';
} }
@@ -141,7 +141,13 @@ class OTS_Player extends OTS_Row_DAO
} }
// SELECT query on database // SELECT query on database
$this->data = $this->db->query('SELECT `id`, `name`, `account_id`, `group_id`, `sex`, `vocation`, `experience`, `level`, `maglevel`, `health`, `healthmax`, `mana`, `manamax`, `manaspent`, `soul`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `posx`, `posy`, `posz`, `cap`, `lastlogin`, `lastlogout`, `lastip`, `save`, `conditions`, `' . $skull_time . '` as `skulltime`, `' . $skull_type . '` as `skull`' . $guild_info . ', `town_id`' . $loss . ', `balance`, `blessings`, `stamina`' . (fieldExist('world_id', 'players') ? ', `world_id`' : '') . (fieldExist('online', 'players') ? ', `online`, `' : '') . ', `' . (fieldExist('deletion', 'players') ? 'deletion' : 'deleted') . '`' . (fieldExist('promotion', 'players') ? ', `promotion`' : '') . (fieldExist('marriage', 'players') ? ', `marriage`' : '') . ', `comment`, `created`, `hidden` FROM `players` WHERE `id` = ' . (int) $id)->fetch(); $this->data = $this->db->query('SELECT `id`, `name`, `account_id`, `group_id`, `sex`, `vocation`, `experience`, `level`, `maglevel`, `health`, `healthmax`, `mana`, `manamax`, `manaspent`, `soul`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`' . (fieldExist('lookaddons', 'players') ? ', `lookaddons`' : '') . ', `posx`, `posy`, `posz`, `cap`, `lastlogin`, `lastlogout`, `lastip`, `save`, `conditions`, `' . $skull_time . '` as `skulltime`, `' . $skull_type . '` as `skull`' . $guild_info . ', `town_id`' . $loss . $loss_items . ', `balance`' . (fieldExist('blessings', 'players') ? ', `blessings`' : '') . (fieldExist('direction', 'players') ? ', `direction`' : '') . (fieldExist('stamina', 'players') ? ', `stamina`' : '') . (fieldExist('world_id', 'players') ? ', `world_id`' : '') . (fieldExist('online', 'players') ? ', `online`' : '') . ', `' . (fieldExist('deletion', 'players') ? 'deletion' : 'deleted') . '`' . (fieldExist('promotion', 'players') ? ', `promotion`' : '') . (fieldExist('marriage', 'players') ? ', `marriage`' : '') . ', `comment`, `created`, `hidden` FROM `players` WHERE `id` = ' . (int)$id)->fetch();
if(!isset($this->data['guildnick']) || $this->data['guildnick'])
$this->data['guildnick'] = '';
if(!isset($this->data['rank_id']) || $this->data['rank_id'] == NULL)
$this->data['rank_id'] = 0;
if(isset($this->data['promotion'])) { if(isset($this->data['promotion'])) {
if((int)$this->data['promotion'] > 0) if((int)$this->data['promotion'] > 0)
@@ -239,16 +245,54 @@ class OTS_Player extends OTS_Row_DAO
$skull_time = 'skull_time'; $skull_time = 'skull_time';
} }
if(!isset($this->data['loss_experience']))
$this->data['loss_experience'] = 100;
if(!isset($this->data['loss_mana']))
$this->data['loss_mana'] = 100;
if(!isset($this->data['loss_skills']))
$this->data['loss_skills'] = 100;
if(!isset($this->data['loss_items']))
$this->data['loss_items'] = 10;
if(!isset($this->data['loss_containers']))
$this->data['loss_containers'] = 100;
if(!isset($this->data['guildnick']))
$this->data['guildnick'] = '';
if(!isset($this->data['rank_id']))
$this->data['rank_id'] = 0;
if(!isset($this->data['promotion']))
$this->data['promotion'] = 0;
if(!isset($this->data['direction']))
$this->data['direction'] = 0;
if(!isset($this->data['conditions']))
$this->data['conditions'] = '';
if(!isset($this->data['town_id']))
$this->data['town_id'] = 1;
// updates existing player // updates existing player
if( isset($this->data['id']) ) if( isset($this->data['id']) )
{ {
$loss = ''; $loss = '';
if(fieldExist('loss_experience', 'players')) { if(fieldExist('loss_experience', 'players')) {
$loss = ', `loss_experience` = ' . $this->data['loss_experience'] . ', `loss_mana` = ' . $this->data['loss_mana'] . ', `loss_skills` = ' . $this->data['loss_skills'] . ', `loss_items` = ' . $this->data['loss_items']; $loss = ', `loss_experience` = ' . $this->data['loss_experience'] . ', `loss_mana` = ' . $this->data['loss_mana'] . ', `loss_skills` = ' . $this->data['loss_skills'];
}
$loss_items = '';
if(fieldExist('loss_items', 'players')) {
$loss_items = ', `loss_items` = ' . $this->data['loss_items'] . ', `loss_containers` = ' . $this->data['loss_containers'];
} }
$guild_info = ''; $guild_info = '';
if(fieldExist('guildnick', 'players')) { if(!tableExist('guild_members') && fieldExist('guildnick', 'players')) {
$guild_info = ', `guildnick` = ' . $this->db->quote($this->data['guildnick']) . ', ' . $this->db->fieldName('rank_id') . ' = ' . $this->data['rank_id']; $guild_info = ', `guildnick` = ' . $this->db->quote($this->data['guildnick']) . ', ' . $this->db->fieldName('rank_id') . ' = ' . $this->data['rank_id'];
} }
@@ -256,9 +300,24 @@ class OTS_Player extends OTS_Row_DAO
if(fieldExist('direction', 'players')) { if(fieldExist('direction', 'players')) {
$direction = ', `direction` = ' . $this->db->quote($this->data['direction']); $direction = ', `direction` = ' . $this->db->quote($this->data['direction']);
} }
$blessings = '';
if(fieldExist('blessings', 'players')) {
$blessings = ', `blessings` = ' . $this->db->quote($this->data['blessings']);
}
$stamina = '';
if(fieldExist('stamina', 'players')) {
$stamina = ', `stamina` = ' . $this->db->quote($this->data['stamina']);
}
$lookaddons = '';
if(fieldExist('lookaddons', 'players')) {
$lookaddons = ', `lookaddons` = ' . $this->db->quote($this->data['lookaddons']);
}
// UPDATE query on database // UPDATE query on database
$this->db->query('UPDATE ' . $this->db->tableName('players') . ' SET ' . $this->db->fieldName('name') . ' = ' . $this->db->quote($this->data['name']) . ', ' . $this->db->fieldName('account_id') . ' = ' . $this->data['account_id'] . ', ' . $this->db->fieldName('group_id') . ' = ' . $this->data['group_id'] . ', ' . $this->db->fieldName('sex') . ' = ' . $this->data['sex'] . ', ' . $this->db->fieldName('vocation') . ' = ' . $this->data['vocation'] . ', ' . $this->db->fieldName('experience') . ' = ' . $this->data['experience'] . ', ' . $this->db->fieldName('level') . ' = ' . $this->data['level'] . ', ' . $this->db->fieldName('maglevel') . ' = ' . $this->data['maglevel'] . ', ' . $this->db->fieldName('health') . ' = ' . $this->data['health'] . ', ' . $this->db->fieldName('healthmax') . ' = ' . $this->data['healthmax'] . ', ' . $this->db->fieldName('mana') . ' = ' . $this->data['mana'] . ', ' . $this->db->fieldName('manamax') . ' = ' . $this->data['manamax'] . ', ' . $this->db->fieldName('manaspent') . ' = ' . $this->data['manaspent'] . ', ' . $this->db->fieldName('soul') . ' = ' . $this->data['soul'] . ', ' . $this->db->fieldName('lookbody') . ' = ' . $this->data['lookbody'] . ', ' . $this->db->fieldName('lookfeet') . ' = ' . $this->data['lookfeet'] . ', ' . $this->db->fieldName('lookhead') . ' = ' . $this->data['lookhead'] . ', ' . $this->db->fieldName('looklegs') . ' = ' . $this->data['looklegs'] . ', ' . $this->db->fieldName('looktype') . ' = ' . $this->data['looktype'] . ', ' . $this->db->fieldName('lookaddons') . ' = ' . $this->data['lookaddons'] . ', ' . $this->db->fieldName('posx') . ' = ' . $this->data['posx'] . ', ' . $this->db->fieldName('posy') . ' = ' . $this->data['posy'] . ', ' . $this->db->fieldName('posz') . ' = ' . $this->data['posz'] . ', ' . $this->db->fieldName('cap') . ' = ' . $this->data['cap'] . ', ' . $this->db->fieldName('lastlogin') . ' = ' . $this->data['lastlogin'] . ', ' . $this->db->fieldName('lastlogout') . ' = ' . $this->data['lastlogout'] . ', ' . $this->db->fieldName('lastip') . ' = ' . $this->data['lastip'] . ', ' . $this->db->fieldName('save') . ' = ' . (int) $this->data['save'] . ', ' . $this->db->fieldName('conditions') . ' = ' . $this->db->quote($this->data['conditions']) . ', `' . $skull_time . '` = ' . $this->data['skulltime'] . ', `' . $skull_type . '` = ' . (int) $this->data['skull'] . $guild_info . ', ' . $this->db->fieldName('town_id') . ' = ' . $this->data['town_id'] . $loss . ', ' . $this->db->fieldName('balance') . ' = ' . $this->data['balance'] . ', ' . $this->db->fieldName('blessings') . ' = ' . $this->data['blessings'] . ', ' . $this->db->fieldName('stamina') . ' = ' . $this->data['stamina'] . $direction . ' WHERE ' . $this->db->fieldName('id') . ' = ' . $this->data['id']); $this->db->query('UPDATE ' . $this->db->tableName('players') . ' SET ' . $this->db->fieldName('name') . ' = ' . $this->db->quote($this->data['name']) . ', ' . $this->db->fieldName('account_id') . ' = ' . $this->data['account_id'] . ', ' . $this->db->fieldName('group_id') . ' = ' . $this->data['group_id'] . ', ' . $this->db->fieldName('sex') . ' = ' . $this->data['sex'] . ', ' . $this->db->fieldName('vocation') . ' = ' . $this->data['vocation'] . ', ' . $this->db->fieldName('experience') . ' = ' . $this->data['experience'] . ', ' . $this->db->fieldName('level') . ' = ' . $this->data['level'] . ', ' . $this->db->fieldName('maglevel') . ' = ' . $this->data['maglevel'] . ', ' . $this->db->fieldName('health') . ' = ' . $this->data['health'] . ', ' . $this->db->fieldName('healthmax') . ' = ' . $this->data['healthmax'] . ', ' . $this->db->fieldName('mana') . ' = ' . $this->data['mana'] . ', ' . $this->db->fieldName('manamax') . ' = ' . $this->data['manamax'] . ', ' . $this->db->fieldName('manaspent') . ' = ' . $this->data['manaspent'] . ', ' . $this->db->fieldName('soul') . ' = ' . $this->data['soul'] . ', ' . $this->db->fieldName('lookbody') . ' = ' . $this->data['lookbody'] . ', ' . $this->db->fieldName('lookfeet') . ' = ' . $this->data['lookfeet'] . ', ' . $this->db->fieldName('lookhead') . ' = ' . $this->data['lookhead'] . ', ' . $this->db->fieldName('looklegs') . ' = ' . $this->data['looklegs'] . ', ' . $this->db->fieldName('looktype') . ' = ' . $this->data['looktype'] . $lookaddons . ', ' . $this->db->fieldName('posx') . ' = ' . $this->data['posx'] . ', ' . $this->db->fieldName('posy') . ' = ' . $this->data['posy'] . ', ' . $this->db->fieldName('posz') . ' = ' . $this->data['posz'] . ', ' . $this->db->fieldName('cap') . ' = ' . $this->data['cap'] . ', ' . $this->db->fieldName('lastlogin') . ' = ' . $this->data['lastlogin'] . ', ' . $this->db->fieldName('lastlogout') . ' = ' . $this->data['lastlogout'] . ', ' . $this->db->fieldName('lastip') . ' = ' . $this->data['lastip'] . ', ' . $this->db->fieldName('save') . ' = ' . (int) $this->data['save'] . ', ' . $this->db->fieldName('conditions') . ' = ' . $this->db->quote($this->data['conditions']) . ', `' . $skull_time . '` = ' . $this->data['skulltime'] . ', `' . $skull_type . '` = ' . (int) $this->data['skull'] . $guild_info . ', ' . $this->db->fieldName('town_id') . ' = ' . $this->data['town_id'] . $loss . $loss_items . ', ' . $this->db->fieldName('balance') . ' = ' . $this->data['balance'] . $blessings . $stamina . $direction . ' WHERE ' . $this->db->fieldName('id') . ' = ' . $this->data['id']);
} }
// creates new player // creates new player
else else
@@ -266,13 +325,20 @@ class OTS_Player extends OTS_Row_DAO
$loss = ''; $loss = '';
$loss_data = ''; $loss_data = '';
if(fieldExist('loss_experience', 'players')) { if(fieldExist('loss_experience', 'players')) {
$loss = ', `loss_experience`, `loss_mana`, `loss_skills`, `loss_items`'; $loss = ', `loss_experience`, `loss_mana`, `loss_skills`';
$loss_data = ', ' . $this->data['loss_experience'] . ', ' . $this->data['loss_mana'] . ', ' . $this->data['loss_skills'] . ', ' . $this->data['loss_items']; $loss_data = ', ' . $this->data['loss_experience'] . ', ' . $this->data['loss_mana'] . ', ' . $this->data['loss_skills'];
}
$loss_items = '';
$loss_items_data = '';
if(fieldExist('loss_items', 'players')) {
$loss_items = ', `loss_items`, `loss_containers`';
$loss_items_data = ', ' . $this->data['loss_items'] . ', ' . $this->data['loss_containers'];
} }
$guild_info = ''; $guild_info = '';
$guild_info_data = ''; $guild_info_data = '';
if(fieldExist('guildnick', 'players')) { if(!tableExist('guild_members') && fieldExist('guildnick', 'players')) {
$guild_info = ', `guildnick`, `rank_id`'; $guild_info = ', `guildnick`, `rank_id`';
$guild_info_data = ', ' . $this->db->quote($this->data['guildnick']) . ', ' . $this->data['rank_id']; $guild_info_data = ', ' . $this->db->quote($this->data['guildnick']) . ', ' . $this->data['rank_id'];
} }
@@ -287,12 +353,33 @@ class OTS_Player extends OTS_Row_DAO
$direction = ''; $direction = '';
$direction_data = ''; $direction_data = '';
if(fieldExist('direction', 'players')) { if(fieldExist('direction', 'players')) {
$direction = ', `balance`'; $direction = ', `direction`';
$direction_data = ', ' . $this->data['balance']; $direction_data = ', ' . $this->data['direction'];
}
$blessings = '';
$blessings_data = '';
if(fieldExist('blessings', 'players')) {
$blessings = ', `blessings`';
$blessings_data = ', ' . $this->data['blessings'];
}
$stamina = '';
$stamina_data = '';
if(fieldExist('stamina', 'players')) {
$stamina = ', `stamina`';
$stamina_data = ', ' . $this->data['stamina'];
}
$lookaddons = '';
$lookaddons_data = '';
if(fieldExist('lookaddons', 'players')) {
$lookaddons = ', `lookaddons`';
$lookaddons_data = ', ' . $this->data['lookaddons'];
} }
// INSERT query on database // INSERT query on database
$this->db->query('INSERT INTO ' . $this->db->tableName('players') . ' (' . $this->db->fieldName('name') . ', ' . $this->db->fieldName('account_id') . ', ' . $this->db->fieldName('group_id') . ', ' . $this->db->fieldName('sex') . ', ' . $this->db->fieldName('vocation') . ', ' . $this->db->fieldName('experience') . ', ' . $this->db->fieldName('level') . ', ' . $this->db->fieldName('maglevel') . ', ' . $this->db->fieldName('health') . ', ' . $this->db->fieldName('healthmax') . ', ' . $this->db->fieldName('mana') . ', ' . $this->db->fieldName('manamax') . ', ' . $this->db->fieldName('manaspent') . ', ' . $this->db->fieldName('soul') . ', ' . $this->db->fieldName('lookbody') . ', ' . $this->db->fieldName('lookfeet') . ', ' . $this->db->fieldName('lookhead') . ', ' . $this->db->fieldName('looklegs') . ', ' . $this->db->fieldName('looktype') . ', ' . $this->db->fieldName('lookaddons') . ', ' . $this->db->fieldName('posx') . ', ' . $this->db->fieldName('posy') . ', ' . $this->db->fieldName('posz') . ', ' . $this->db->fieldName('cap') . ', `lastlogin`, `lastlogout`, ' . $this->db->fieldName('lastip') . ', ' . $this->db->fieldName('save') . ', ' . $this->db->fieldName('conditions') . ', `' . $skull_time . '`, `' . $skull_type . '`' . $guild_info . ', ' . $this->db->fieldName('town_id') . $loss . ', `balance`, `blessings`, `stamina`' . $direction . ', ' . $this->db->fieldName('created') . $promotion . ') VALUES (' . $this->db->quote($this->data['name']) . ', ' . $this->data['account_id'] . ', ' . $this->data['group_id'] . ', ' . $this->data['sex'] . ', ' . $this->data['vocation'] . ', ' . $this->data['experience'] . ', ' . $this->data['level'] . ', ' . $this->data['maglevel'] . ', ' . $this->data['health'] . ', ' . $this->data['healthmax'] . ', ' . $this->data['mana'] . ', ' . $this->data['manamax'] . ', ' . $this->data['manaspent'] . ', ' . $this->data['soul'] . ', ' . $this->data['lookbody'] . ', ' . $this->data['lookfeet'] . ', ' . $this->data['lookhead'] . ', ' . $this->data['looklegs'] . ', ' . $this->data['looktype'] . ', ' . $this->data['lookaddons'] . ', ' . $this->data['posx'] . ', ' . $this->data['posy'] . ', ' . $this->data['posz'] . ', ' . $this->data['cap'] . ', ' . $this->data['lastlogin'] . ', ' . $this->data['lastlogout'] . ', ' . $this->data['lastip'] . ', ' . (int) $this->data['save'] . ', ' . $this->db->quote($this->data['conditions']) . ', ' . $this->data['skulltime'] . ', ' . (int) $this->data['skull'] . $guild_info_data . ', ' . $this->data['town_id'] . $loss_data . ', ' . $this->data['balance'] . ', ' . $this->data['blessings'] . ', ' . $this->data['stamina'] . $direction_data . ', ' . time() . $promotion_data . ')'); $this->db->query('INSERT INTO ' . $this->db->tableName('players') . ' (' . $this->db->fieldName('name') . ', ' . $this->db->fieldName('account_id') . ', ' . $this->db->fieldName('group_id') . ', ' . $this->db->fieldName('sex') . ', ' . $this->db->fieldName('vocation') . ', ' . $this->db->fieldName('experience') . ', ' . $this->db->fieldName('level') . ', ' . $this->db->fieldName('maglevel') . ', ' . $this->db->fieldName('health') . ', ' . $this->db->fieldName('healthmax') . ', ' . $this->db->fieldName('mana') . ', ' . $this->db->fieldName('manamax') . ', ' . $this->db->fieldName('manaspent') . ', ' . $this->db->fieldName('soul') . ', ' . $this->db->fieldName('lookbody') . ', ' . $this->db->fieldName('lookfeet') . ', ' . $this->db->fieldName('lookhead') . ', ' . $this->db->fieldName('looklegs') . ', ' . $this->db->fieldName('looktype') . $lookaddons . ', ' . $this->db->fieldName('posx') . ', ' . $this->db->fieldName('posy') . ', ' . $this->db->fieldName('posz') . ', ' . $this->db->fieldName('cap') . ', `lastlogin`, `lastlogout`, ' . $this->db->fieldName('lastip') . ', ' . $this->db->fieldName('save') . ', ' . $this->db->fieldName('conditions') . ', `' . $skull_time . '`, `' . $skull_type . '`' . $guild_info . ', ' . $this->db->fieldName('town_id') . $loss . $loss_items . ', `balance`' . $blessings . $stamina . $direction . ', ' . $this->db->fieldName('created') . $promotion . ') VALUES (' . $this->db->quote($this->data['name']) . ', ' . $this->data['account_id'] . ', ' . $this->data['group_id'] . ', ' . $this->data['sex'] . ', ' . $this->data['vocation'] . ', ' . $this->data['experience'] . ', ' . $this->data['level'] . ', ' . $this->data['maglevel'] . ', ' . $this->data['health'] . ', ' . $this->data['healthmax'] . ', ' . $this->data['mana'] . ', ' . $this->data['manamax'] . ', ' . $this->data['manaspent'] . ', ' . $this->data['soul'] . ', ' . $this->data['lookbody'] . ', ' . $this->data['lookfeet'] . ', ' . $this->data['lookhead'] . ', ' . $this->data['looklegs'] . ', ' . $this->data['looktype'] . $lookaddons_data . ', ' . $this->data['posx'] . ', ' . $this->data['posy'] . ', ' . $this->data['posz'] . ', ' . $this->data['cap'] . ', ' . $this->data['lastlogin'] . ', ' . $this->data['lastlogout'] . ', ' . $this->data['lastip'] . ', ' . (int) $this->data['save'] . ', ' . $this->db->quote($this->data['conditions']) . ', ' . $this->data['skulltime'] . ', ' . (int) $this->data['skull'] . $guild_info_data . ', ' . $this->data['town_id'] . $loss_data . $loss_items_data . ', ' . $this->data['balance'] . $blessings_data . $stamina_data . $direction_data . ', ' . time() . $promotion_data . ')');
// ID of new group // ID of new group
$this->data['id'] = $this->db->lastInsertId(); $this->data['id'] = $this->db->lastInsertId();
} }
@@ -453,6 +540,11 @@ class OTS_Player extends OTS_Row_DAO
{ {
$this->data['account_id'] = $account->getId(); $this->data['account_id'] = $account->getId();
} }
public function setAccountId($account_id)
{
$this->data['account_id'] = (int)$account_id;
}
/** /**
* Returns group of this player. * Returns group of this player.
@@ -1672,7 +1764,11 @@ class OTS_Player extends OTS_Row_DAO
*/ */
public function loadRank() public function loadRank()
{ {
$ranks = $this->db->query('SELECT `rank_id`, `nick` FROM `guild_membership` WHERE `player_id` = ' . $this->db->quote($this->getID()))->fetch(); $table = 'guild_membership';
if(tableExist('guild_members'))
$table = 'guild_members';
$ranks = $this->db->query('SELECT `rank_id`, `nick` FROM `' . $table . '` WHERE `player_id` = ' . $this->db->quote($this->getID()))->fetch();
if($ranks) if($ranks)
{ {
$this->data['rank_id'] = new OTS_GuildRank($ranks['rank_id']); $this->data['rank_id'] = new OTS_GuildRank($ranks['rank_id']);
@@ -1707,6 +1803,8 @@ class OTS_Player extends OTS_Row_DAO
$this->data['guildnick'] = (string) $guildnick; $this->data['guildnick'] = (string) $guildnick;
if(fieldExist('guildnick', 'players')) if(fieldExist('guildnick', 'players'))
$this->db->query('UPDATE `players` SET `guildnick` = ' . $this->db->quote($this->data['guildnick']) . ' WHERE `id` = ' . $this->getId()); $this->db->query('UPDATE `players` SET `guildnick` = ' . $this->db->quote($this->data['guildnick']) . ' WHERE `id` = ' . $this->getId());
else if(tableExist('guild_members'))
$this->db->query('UPDATE `guild_members` SET `nick` = ' . $this->db->quote($this->data['guildnick']) . ' WHERE `player_id` = ' . $this->getId());
else else
$this->db->query('UPDATE `guild_membership` SET `nick` = ' . $this->db->quote($this->data['guildnick']) . ' WHERE `player_id` = ' . $this->getId()); $this->db->query('UPDATE `guild_membership` SET `nick` = ' . $this->db->quote($this->data['guildnick']) . ' WHERE `player_id` = ' . $this->getId());
} }
@@ -1746,7 +1844,11 @@ class OTS_Player extends OTS_Row_DAO
$query = $this->db->query('SELECT `rank_id` FROM `players` WHERE `id`= ' . $this->data['id'] . ';')->fetch(); $query = $this->db->query('SELECT `rank_id` FROM `players` WHERE `id`= ' . $this->data['id'] . ';')->fetch();
$rank_id = $query['rank_id']; $rank_id = $query['rank_id'];
} else { } else {
$query = $this->db->query('SELECT `rank_id` FROM `guild_membership` WHERE `player_id`= ' . $this->data['id'] . ' LIMIT 1;'); $table = 'guild_membership';
if(tableExist('guild_members'))
$table = 'guild_members';
$query = $this->db->query('SELECT `rank_id` FROM `' . $table . '` WHERE `player_id`= ' . $this->data['id'] . ' LIMIT 1;');
if($query->rowCount() == 1) { if($query->rowCount() == 1) {
$query = $query->fetch(); $query = $query->fetch();
$rank_id = $query['rank_id']; $rank_id = $query['rank_id'];
@@ -1768,7 +1870,16 @@ class OTS_Player extends OTS_Row_DAO
{ {
if( isset($rank_id) && isset($guild)) { if( isset($rank_id) && isset($guild)) {
if($rank_id == 0) { if($rank_id == 0) {
$this->db->query('DELETE FROM `guild_membership` WHERE `player_id` = ' . $this->getId()); if(tableExist('guild_membership')) {
$this->db->query('DELETE FROM `guild_membership` WHERE `player_id` = ' . $this->getId());
}
else if(tableExist('guild_members')) {
$this->db->query('DELETE FROM `guild_members` WHERE `player_id` = ' . $this->getId());
}
else {
$this->data['rank_id'] = 0;
$this->save();
}
} }
else { else {
if(tableExist('guild_membership')) { if(tableExist('guild_membership')) {
@@ -1779,6 +1890,14 @@ class OTS_Player extends OTS_Row_DAO
$this->db->query('INSERT INTO `guild_membership` (`player_id`, `guild_id`, `rank_id`, `nick`) VALUES (' . $this->db->quote($this->getId()) . ', ' . $this->db->quote($guild) . ', ' . $this->db->quote($rank_id) . ', ' . $this->db->quote('') . ')'); $this->db->query('INSERT INTO `guild_membership` (`player_id`, `guild_id`, `rank_id`, `nick`) VALUES (' . $this->db->quote($this->getId()) . ', ' . $this->db->quote($guild) . ', ' . $this->db->quote($rank_id) . ', ' . $this->db->quote('') . ')');
} }
} }
else if(tableExist('guild_members')) {
$query = $this->db->query('SELECT `player_id` FROM `guild_members` WHERE `player_id` = ' . $this->getId() . ' LIMIT 1;');
if($query->rowCount() == 1)
$this->db->query('UPDATE `guild_members` SET `rank_id` = ' . (int)$rank_id . ' WHERE `player_id` = ' . $this->getId());
else {
$this->db->query('INSERT INTO `guild_members` (`player_id`, `rank_id`, `nick`) VALUES (' . $this->db->quote($this->getId()) . ', ' . $this->db->quote($rank_id) . ', ' . $this->db->quote('') . ')');
}
}
else { else {
$this->data['rank_id'] = (int) $rank_id; $this->data['rank_id'] = (int) $rank_id;
$this->save(); $this->save();
@@ -1975,6 +2094,20 @@ class OTS_Player extends OTS_Row_DAO
$this->data['loss_items'] = (int) $loss_items; $this->data['loss_items'] = (int) $loss_items;
} }
public function getLossContainers()
{
if( !isset($this->data['loss_containers']) )
{
throw new E_OTS_NotLoaded();
}
return $this->data['loss_items'];
}
public function setLossContainers($loss_containers)
{
$this->data['loss_containers'] = (int) $loss_containers;
}
public function getBlessings() public function getBlessings()
{ {
if( !isset($this->data['blessings']) ) if( !isset($this->data['blessings']) )
@@ -3086,6 +3219,9 @@ class OTS_Player extends OTS_Row_DAO
case 'lossItems': case 'lossItems':
return $this->getLossItems(); return $this->getLossItems();
case 'lossContainers':
return $this->getLossContainers();
case 'balance': case 'balance':
return $this->getBalance(); return $this->getBalance();

View File

@@ -75,7 +75,10 @@ class OTS_ServerInfo
fwrite($socket, $packet); fwrite($socket, $packet);
// reads respond // reads respond
$data = stream_get_contents($socket); //$data = stream_get_contents($socket);
$data = '';
while (!feof($socket))
$data .= fgets($socket, 1024);
// closing connection to current server // closing connection to current server
fclose($socket); fclose($socket);
@@ -121,7 +124,9 @@ class OTS_ServerInfo
{ {
// loads respond XML // loads respond XML
$info = new OTS_InfoRespond(); $info = new OTS_InfoRespond();
$info->loadXML( $status->getBuffer() ); if(!$info->loadXML( utf8_encode($status->getBuffer())))
return false;
return $info; return $info;
} }

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -14,6 +14,9 @@ $locale['next'] = 'Next';
$locale['on'] = 'On'; $locale['on'] = 'On';
$locale['off'] = 'Off'; $locale['off'] = 'Off';
$locale['loaded'] = 'Loaded';
$locale['not_loaded'] = 'Not loaded';
$locale['please_fill_all'] = 'Please fill all inputs!'; $locale['please_fill_all'] = 'Please fill all inputs!';
$locale['already_installed'] = 'MyAAC has been already installed. Please delete <b>install/<b/> directory.'; $locale['already_installed'] = 'MyAAC has been already installed. Please delete <b>install/<b/> directory.';
@@ -32,16 +35,13 @@ $locale['step_requirements_title'] = 'Requirements check';
$locale['step_requirements_php_version'] = 'PHP Version'; $locale['step_requirements_php_version'] = 'PHP Version';
$locale['step_requirements_write_perms'] = 'Write permissions'; $locale['step_requirements_write_perms'] = 'Write permissions';
$locale['step_requirements_failed'] = 'Installation will be disabled until these requirements will be passed.</b><br/>For more informations see <b>README</b> file.'; $locale['step_requirements_failed'] = 'Installation will be disabled until these requirements will be passed.</b><br/>For more informations see <b>README</b> file.';
$locale['step_requirements_extension'] = '$EXTENSION$ PHP extension';
// config // config
$locale['step_config'] = 'Configuration'; $locale['step_config'] = 'Configuration';
$locale['step_config_title'] = 'Basic configuration'; $locale['step_config_title'] = 'Basic configuration';
$locale['step_config_server_path'] = 'Server path'; $locale['step_config_server_path'] = 'Server path';
$locale['step_config_server_path_desc'] = 'Path to your TFS main directory, where you have config.lua located.'; $locale['step_config_server_path_desc'] = 'Path to your TFS main directory, where you have config.lua located.';
$locale['step_config_account'] = 'Admin account name';
$locale['step_config_account_desc'] = 'Name of your admin account, which will be used to login to website and server.';
$locale['step_config_password'] = 'Admin account password';
$locale['step_config_password_desc'] = 'Password to your admin account.';
$locale['step_config_mail_admin'] = 'Admin E-Mail'; $locale['step_config_mail_admin'] = 'Admin E-Mail';
$locale['step_config_mail_admin_desc'] = 'Address where emails from contact form will be delivered, for example <i>admin@gmail.com</i>'; $locale['step_config_mail_admin_desc'] = 'Address where emails from contact form will be delivered, for example <i>admin@gmail.com</i>';
@@ -58,8 +58,9 @@ $locale['step_database_title'] = 'Import MySQL schema';
$locale['step_database_importing'] = 'Your database is MySQL. Importing schema now...'; $locale['step_database_importing'] = 'Your database is MySQL. Importing schema now...';
$locale['step_database_error_path'] = 'Please specify server path.'; $locale['step_database_error_path'] = 'Please specify server path.';
$locale['step_database_error_config'] = 'Cannot find config file. Is your server path correct? Go back and check again.'; $locale['step_database_error_config'] = 'Cannot find config file. Is your server path correct? Go back and check again.';
$locale['step_database_error_database_empty'] = 'Cannot determine database type from config.lua. Your OTS is unsupported by this AAC.';
$locale['step_database_error_only_mysql'] = 'This AAC supports only MySQL. From your config file it seems that your OTS is using: $DATABASE_TYPE$ database. Please change your database to MySQL and then follow the installation again.'; $locale['step_database_error_only_mysql'] = 'This AAC supports only MySQL. From your config file it seems that your OTS is using: $DATABASE_TYPE$ database. Please change your database to MySQL and then follow the installation again.';
$locale['step_database_error_table'] = 'Table $TABLE$ doesn\'t exist. Please import your OTS database first.'; $locale['step_database_error_table'] = 'Table $TABLE$ doesn\'t exist. Please import your OTS database schema first.';
$locale['step_database_error_table_exist'] = 'Table $TABLE$ already exist. Seems AAC is already installed. Skipping importing MySQL schema..'; $locale['step_database_error_table_exist'] = 'Table $TABLE$ already exist. Seems AAC is already installed. Skipping importing MySQL schema..';
$locale['step_database_error_schema'] = 'Error while importing schema:'; $locale['step_database_error_schema'] = 'Error while importing schema:';
$locale['step_database_success_schema'] = 'Succesfully installed $PREFIX$ tables.'; $locale['step_database_success_schema'] = 'Succesfully installed $PREFIX$ tables.';
@@ -70,6 +71,16 @@ $locale['step_database_changing_field'] = 'Changing $FIELD$ to $FIELD_NEW$...';
$locale['step_database_imported_players'] = 'Imported player samples...'; $locale['step_database_imported_players'] = 'Imported player samples...';
$locale['step_database_created_account'] = 'Created admin account...'; $locale['step_database_created_account'] = 'Created admin account...';
// admin account
$locale['step_admin'] = 'Admin Account';
$locale['step_admin_title'] = 'Create Admin Account';
$locale['step_admin_account'] = 'Admin account name';
$locale['step_admin_account_desc'] = 'Name of your admin account, which will be used to login to website and server.';
$locale['step_admin_account_id'] = 'Admin account id';
$locale['step_admin_account_id_desc'] = 'ID of your admin account, which will be used to login to website and server.';
$locale['step_admin_password'] = 'Admin account password';
$locale['step_admin_password_desc'] = 'Password to your admin account.';
// finish // finish
$locale['step_finish_admin_panel'] = 'Admin Panel'; $locale['step_finish_admin_panel'] = 'Admin Panel';
$locale['step_finish_homepage'] = 'homepage'; $locale['step_finish_homepage'] = 'homepage';

View File

@@ -14,6 +14,9 @@ $locale['next'] = 'Następny';
$locale['on'] = 'Włączone'; $locale['on'] = 'Włączone';
$locale['off'] = 'Wyłączone'; $locale['off'] = 'Wyłączone';
$locale['loaded'] = 'Załadowane';
$locale['not_loaded'] = 'Nie załadowane';
$locale['please_fill_all'] = 'Proszę wypełnić wszystkie pola!'; $locale['please_fill_all'] = 'Proszę wypełnić wszystkie pola!';
$locale['already_installed'] = 'MyAAC został już zainstalowany. Proszę usunąć katalog <b>install/</b>.'; $locale['already_installed'] = 'MyAAC został już zainstalowany. Proszę usunąć katalog <b>install/</b>.';
@@ -32,6 +35,7 @@ $locale['step_requirements_title'] = 'Sprawdzanie wymagań';
$locale['step_requirements_php_version'] = 'Wersja PHP'; $locale['step_requirements_php_version'] = 'Wersja PHP';
$locale['step_requirements_write_perms'] = 'Uprawnienia do zapisu'; $locale['step_requirements_write_perms'] = 'Uprawnienia do zapisu';
$locale['step_requirements_failed'] = 'Instalacja zostanie zablokowana dopóki te wymagania nie zostaną spełnione.</b><br/>Po więcej informacji zasięgnij do pliku <b>README</b>.'; $locale['step_requirements_failed'] = 'Instalacja zostanie zablokowana dopóki te wymagania nie zostaną spełnione.</b><br/>Po więcej informacji zasięgnij do pliku <b>README</b>.';
$locale['step_requirements_extension'] = 'Rozszerzenie PHP - $EXTENSION$';
// config // config
$locale['step_config'] = 'Konfiguracja'; $locale['step_config'] = 'Konfiguracja';
@@ -59,7 +63,7 @@ $locale['step_database_importing'] = 'Twoja baza to MySQL. Importowanie schematu
$locale['step_database_error_path'] = 'Proszę podać ścieżkę do serwera.'; $locale['step_database_error_path'] = 'Proszę podać ścieżkę do serwera.';
$locale['step_database_error_config'] = 'Nie można znaleźć pliku config. Jest Twoja ścieżka do katalogu serwera poprawna? Wróć się i sprawdź ponownie.'; $locale['step_database_error_config'] = 'Nie można znaleźć pliku config. Jest Twoja ścieżka do katalogu serwera poprawna? Wróć się i sprawdź ponownie.';
$locale['step_database_error_only_mysql'] = 'Ten AAC wspiera tylko bazy danych MySQL. Z Twojego pliku config wynika, że Twój serwera używa bazy: $DATABASE_TYPE$. Proszę zmienić typ bazy na MySQL i ponownie przystąpić do instalacji.'; $locale['step_database_error_only_mysql'] = 'Ten AAC wspiera tylko bazy danych MySQL. Z Twojego pliku config wynika, że Twój serwera używa bazy: $DATABASE_TYPE$. Proszę zmienić typ bazy na MySQL i ponownie przystąpić do instalacji.';
$locale['step_database_error_table'] = 'Tabela $TABLE$ nie istnieje. Proszę najpierw zaimportować bazę danych serwera OTS.'; $locale['step_database_error_table'] = 'Tabela $TABLE$ nie istnieje. Proszę najpierw zaimportować schemat bazy danych serwera OTS.';
$locale['step_database_error_table_exist'] = 'Tabela $TABLE$ już istnieje. Wygląda na to, że AAC został już zainstalowany. Schemat MySQL nie zostanie zaimportowany..'; $locale['step_database_error_table_exist'] = 'Tabela $TABLE$ już istnieje. Wygląda na to, że AAC został już zainstalowany. Schemat MySQL nie zostanie zaimportowany..';
$locale['step_database_error_schema'] = 'Błąd podczas importowania struktury bazy danych:'; $locale['step_database_error_schema'] = 'Błąd podczas importowania struktury bazy danych:';
$locale['step_database_success_schema'] = 'Pomyślnie zainstalowano tabele $PREFIX$.'; $locale['step_database_success_schema'] = 'Pomyślnie zainstalowano tabele $PREFIX$.';

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -58,7 +58,10 @@ else
} }
$account_logged = $ots->createObject('Account'); $account_logged = $ots->createObject('Account');
$account_logged->find($login_account); if(USE_ACCOUNT_NAME)
$account_logged->find($login_account);
else
$account_logged->load($login_account);
$config_salt_enabled = fieldExist('salt', 'accounts'); $config_salt_enabled = fieldExist('salt', 'accounts');
if($account_logged->isLoaded() && encrypt(($config_salt_enabled ? $account_logged->getCustomField('salt') : '') . $login_password) == $account_logged->getPassword() if($account_logged->isLoaded() && encrypt(($config_salt_enabled ? $account_logged->getCustomField('salt') : '') . $login_password) == $account_logged->getPassword()

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -80,7 +80,7 @@ Please enter your account name and your password.<br/><a href="?subtopic=createa
<table style="width:100%;" > <table style="width:100%;" >
<tr> <tr>
<td class="LabelV" > <td class="LabelV" >
<span<?php echo (isset($errors[0]) ? ' class="red"' : ''); ?>>Account Name:</span> <span<?php echo (isset($errors[0]) ? ' class="red"' : ''); ?>>Account <?php echo (USE_ACCOUNT_NAME ? 'Name' : 'Number'); ?>:</span>
</td> </td>
<td style="width:100%;" ><input type="password" name="account_login" id="account-name-input" size="30" maxlength="30" ></td> <td style="width:100%;" ><input type="password" name="account_login" id="account-name-input" size="30" maxlength="30" ></td>
</tr> </tr>
@@ -132,7 +132,7 @@ Please enter your account name and your password.<br/><a href="?subtopic=createa
if(isset($_REQUEST['redirect'])) if(isset($_REQUEST['redirect']))
{ {
$redirect = urldecode(trim($_REQUEST['redirect'])); $redirect = urldecode($_REQUEST['redirect']);
?> ?>
<div class="TableContainer"> <div class="TableContainer">
<table class="Table1" cellpadding="0" cellspacing="0"> <table class="Table1" cellpadding="0" cellspacing="0">
@@ -796,6 +796,8 @@ function checkName()
$newchar_vocation = isset($_POST['newcharvocation']) ? $_POST['newcharvocation'] : NULL; $newchar_vocation = isset($_POST['newcharvocation']) ? $_POST['newcharvocation'] : NULL;
$newchar_town = isset($_POST['newchartown']) ? $_POST['newchartown'] : NULL; $newchar_town = isset($_POST['newchartown']) ? $_POST['newchartown'] : NULL;
$newchar_errors = array(); $newchar_errors = array();
$newchar_created = false;
if(isset($_POST['savecharacter']) && $_POST['savecharacter'] == 1) { if(isset($_POST['savecharacter']) && $_POST['savecharacter'] == 1) {
if(empty($newchar_name)) if(empty($newchar_name))
$newchar_errors[] = 'Please enter a name for your character!'; $newchar_errors[] = 'Please enter a name for your character!';
@@ -887,10 +889,18 @@ function checkName()
if(fieldExist('promotion', 'players')) if(fieldExist('promotion', 'players'))
$player->setPromotion($char_to_copy->getPromotion()); $player->setPromotion($char_to_copy->getPromotion());
if(fieldExist('direction', 'players'))
$player->setDirection($char_to_copy->getDirection());
$player->setConditions($char_to_copy->getConditions()); $player->setConditions($char_to_copy->getConditions());
if(fieldExist('rank_id', 'players')) $rank = $char_to_copy->getRank();
if($rank->isLoaded()) {
$player->setRank($char_to_copy->getRank()); $player->setRank($char_to_copy->getRank());
$player->setLookAddons($char_to_copy->getLookAddons()); }
if(fieldExist('lookaddons', 'players'))
$player->setLookAddons($char_to_copy->getLookAddons());
$player->setTownId($newchar_town); $player->setTownId($newchar_town);
$player->setExperience($char_to_copy->getExperience()); $player->setExperience($char_to_copy->getExperience());
$player->setLevel($char_to_copy->getLevel()); $player->setLevel($char_to_copy->getLevel());
@@ -901,8 +911,6 @@ function checkName()
$player->setManaMax($char_to_copy->getManaMax()); $player->setManaMax($char_to_copy->getManaMax());
$player->setManaSpent($char_to_copy->getManaSpent()); $player->setManaSpent($char_to_copy->getManaSpent());
$player->setSoul($char_to_copy->getSoul()); $player->setSoul($char_to_copy->getSoul());
if(fieldExist('direction', 'players'))
$player->setDirection($char_to_copy->getDirection());
$player->setLookBody($char_to_copy->getLookBody()); $player->setLookBody($char_to_copy->getLookBody());
$player->setLookFeet($char_to_copy->getLookFeet()); $player->setLookFeet($char_to_copy->getLookFeet());
@@ -919,10 +927,16 @@ function checkName()
$player->setLossExperience($char_to_copy->getLossExperience()); $player->setLossExperience($char_to_copy->getLossExperience());
$player->setLossMana($char_to_copy->getLossMana()); $player->setLossMana($char_to_copy->getLossMana());
$player->setLossSkills($char_to_copy->getLossSkills()); $player->setLossSkills($char_to_copy->getLossSkills());
$player->setLossItems($char_to_copy->getLossItems());
} }
if(fieldExist('loss_items', 'players')) {
$player->setLossItems($char_to_copy->getLossItems());
$player->setLossContainerse($char_to_copy->getLossContainers());
}
$player->save(); $player->save();
$player->setCustomField("created", time()); $player->setCustomField("created", time());
$newchar_created = true;
$account_logged->logAction('Created character <b>' . $player->getName() . '</b>.'); $account_logged->logAction('Created character <b>' . $player->getName() . '</b>.');
unset($player); unset($player);
$player = $ots->createObject('Player'); $player = $ots->createObject('Player');
@@ -952,15 +966,16 @@ function checkName()
} }
} }
} }
else
{ if(count($newchar_errors) > 0) {
if(count($newchar_errors) > 0) { echo '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$template_path.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$template_path.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$template_path.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$template_path.'/images/content/attentionsign.gif);" /></div>';
echo '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$template_path.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$template_path.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$template_path.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$template_path.'/images/content/attentionsign.gif);" /></div>'; echo '<b>The Following Errors Have Occurred:</b><br/>';
echo '<b>The Following Errors Have Occurred:</b><br/>'; foreach($newchar_errors as $newchar_error)
foreach($newchar_errors as $newchar_error) echo '<li>'.$newchar_error . '</li>';
echo '<li>'.$newchar_error . '</li>'; echo '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$template_path.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>';
echo '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$template_path.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; }
}
if(!$newchar_created) {
echo 'Please choose a name'; echo 'Please choose a name';
if(count($config['character_samples']) > 1) if(count($config['character_samples']) > 1)
echo ', vocation'; echo ', vocation';

View File

@@ -1,27 +1,26 @@
<?php <?php
/** /**
* Changelog * CHANGELOG viewer
* *
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
$title = 'MyAAC - CHANGELOG'; $title = 'MyAAC Changelog';
$data = file_get_contents(SYSTEM . 'docs/CHANGELOG'); if(!file_exists(BASE . 'CHANGELOG')) {
echo 'File CHANGELOG doesn\'t exist.';
return;
}
// replace special characters with HTML entities $changelog = file_get_contents(BASE . 'CHANGELOG');
// replace line breaks with <br /> $changelog = nl2br(htmlspecialchars($changelog));
$data = nl2br(htmlspecialchars($data));
// replace multiple spaces with single spaces
$data = preg_replace('/\s\s+/', ' ', $data);
// replace URLs with <a href...> elements // replace URLs with <a href...> elements
$data = preg_replace('/\s(\w+:\/\/)(\S+)/', ' <a href="\\1\\2" target="_blank">\\1\\2</a>', $data); $changelog = preg_replace('/\s(\w+:\/\/)(\S+)/', ' <a href="\\1\\2" target="_blank">\\1\\2</a>', $changelog);
echo '<div>' . $data . '</div>'; echo '<div>' . $changelog . '</div>';
?> ?>

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -18,7 +18,8 @@ $myaac_version = file_get_contents('http://my-aac.org/VERSION');
// compare them // compare them
if(version_compare($myaac_version, MYAAC_VERSION) <= 0) if(version_compare($myaac_version, MYAAC_VERSION) <= 0)
echo '<p class="success">MyAAC latest version is ' . $myaac_version . '. You\'re using the latest version.</p>'; echo '<p class="success">MyAAC latest version is ' . $myaac_version . '. You\'re using the latest version.
<br/>View CHANGELOG ' . generateLink(ADMIN_URL . '?p=changelog', 'here') . '</p>';
else else
echo '<p class="warning">You\'re using outdated version.<br/> echo '<p class="warning">You\'re using outdated version.<br/>
Your version: <b>' . MYAAC_VERSION . '</b><br/> Your version: <b>' . MYAAC_VERSION . '</b><br/>

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -24,17 +24,28 @@ if($logged)
$step = isset($_POST['step']) ? $_POST['step'] : ''; $step = isset($_POST['step']) ? $_POST['step'] : '';
if($step == 'save') if($step == 'save')
{ {
$account_name = $_POST['account_name']; if(USE_ACCOUNT_NAME) {
$account_name_up = strtoupper($account_name); $account_name = $_POST['account'];
$account_name_up = strtoupper($account_name);
}
else
$account_id = $_POST['account'];
$email = $_POST['email']; $email = $_POST['email'];
$password = $_POST['password']; $password = $_POST['password'];
$password2 = $_POST['password2']; $password2 = $_POST['password2'];
// account // account
if(empty($account_name)) if(isset($account_id)) {
$errors['account_name'] = 'Please enter your account name!'; if(!check_number($account_id))
elseif(!check_account_name($account_name_up)) $errors['account'] = 'Invalid account number format. Please use only numbers 0-9.';
$errors['account_name'] = 'Invalid account name format. Please use only A-Z and numbers 0-9.'; }
else {
if(empty($account_name))
$errors['account'] = 'Please enter your account name!';
elseif(!check_account_name($account_name_up))
$errors['account'] = 'Invalid account name format. Please use only A-Z and numbers 0-9.';
}
// email // email
if(empty($email)) if(empty($email))
@@ -81,7 +92,7 @@ if($step == 'save')
} }
// check if account name is not equal to password // check if account name is not equal to password
if($account_name_up == strtoupper($password)) if(USE_ACCOUNT_NAME && $account_name_up == strtoupper($password))
{ {
$errors['password'] = 'Password may not be the same as account name.'; $errors['password'] = 'Password may not be the same as account name.';
} }
@@ -97,9 +108,17 @@ if($step == 'save')
} }
$account_db = new OTS_Account(); $account_db = new OTS_Account();
$account_db->find($account_name); if(USE_ACCOUNT_NAME)
if($account_db->isLoaded()) $account_db->find($account_name);
$errors['account_name'] = 'Account with this name already exist.'; else
$account_db->load($account_id);
if($account_db->isLoaded()) {
if(USE_ACCOUNT_NAME)
$errors['account'] = 'Account with this name already exist.';
else
$errors['account'] = 'Account with this id already exist.';
}
} }
if(!isset($_POST['accept_rules']) || $_POST['accept_rules'] != 'true') if(!isset($_POST['accept_rules']) || $_POST['accept_rules'] != 'true')
@@ -108,7 +127,10 @@ if($step == 'save')
if(empty($errors)) if(empty($errors))
{ {
$new_account = $ots->createObject('Account'); $new_account = $ots->createObject('Account');
$new_account->create($account_name); if(USE_ACCOUNT_NAME)
$new_account->create($account_name);
else
$new_account->create(NULL, $account_id);
$config_salt_enabled = fieldExist('salt', 'accounts'); $config_salt_enabled = fieldExist('salt', 'accounts');
if($config_salt_enabled) if($config_salt_enabled)
@@ -137,7 +159,8 @@ if($step == 'save')
if($config['account_premium_points']) { if($config['account_premium_points']) {
$new_account->setCustomField('premium_points', $config['account_premium_points']); $new_account->setCustomField('premium_points', $config['account_premium_points']);
} }
$tmp_account = (USE_ACCOUNT_NAME ? $account_name : $account_id);
if($config['mail_enabled'] && $config['account_mail_verify']) if($config['mail_enabled'] && $config['account_mail_verify'])
{ {
$hash = md5(generateRandomString(16, true, true) . $email); $hash = md5(generateRandomString(16, true, true) . $email);
@@ -145,12 +168,13 @@ if($step == 'save')
$verify_url = BASE_URL . '?p=account&action=confirm_email&v=' . $hash; $verify_url = BASE_URL . '?p=account&action=confirm_email&v=' . $hash;
$server_name = $config['lua']['serverName']; $server_name = $config['lua']['serverName'];
$body_plain = "Hello! $body_plain = "Hello!
Thank you for registering on $server_name! Thank you for registering on $server_name!
Here are the details of your account: Here are the details of your account:
Name: $account_name Account" . (USE_ACCOUNT_NAME ? ' Name' : '') . ": $tmp_account
Password: ************ (hidden for security reasons) Password: ************ (hidden for security reasons)
To verify your email address please click the link below: To verify your email address please click the link below:
@@ -162,7 +186,7 @@ If you haven't registered on $server_name please ignore this email.";
Thank you for registering on ' . $config['lua']['serverName'] . '!<br/> Thank you for registering on ' . $config['lua']['serverName'] . '!<br/>
<br/> <br/>
Here are the details of your account:<br/> Here are the details of your account:<br/>
Name: ' . $account_name . '<br/> Account' . (USE_ACCOUNT_NAME ? ' Name' : '') . ': ' . $tmp_account . '<br/>
Password: ************ (hidden for security reasons)<br/> Password: ************ (hidden for security reasons)<br/>
<br/> <br/>
To verify your email address please click the link below:<br/> To verify your email address please click the link below:<br/>
@@ -177,11 +201,11 @@ If you haven\'t registered on ' . $config['lua']['serverName'] . ' please ignore
<tr><td bgcolor="<?php echo $config['vdarkborder']; ?>" class="white"><b>Account Created</b></td></tr> <tr><td bgcolor="<?php echo $config['vdarkborder']; ?>" class="white"><b>Account Created</b></td></tr>
<tr><td bgcolor="<?php echo $config['darkborder']; ?>'"> <tr><td bgcolor="<?php echo $config['darkborder']; ?>'">
<table border="0" cellpadding="1"><tr><td> <table border="0" cellpadding="1"><tr><td>
<br/>Your account name is <b><?php echo $account_name; ?></b>. <br/>Your account<?php (USE_ACCOUNT_NAME ? 'name' : 'number'); ?> is <b><?php echo $tmp_account; ?></b>.
You will need the account name and your password to play on <?php echo $config['lua']['serverName']; ?>. You will need the account <?php echo (USE_ACCOUNT_NAME ? 'name' : 'number'); ?> and your password to play on <?php echo $config['lua']['serverName']; ?>.
Please keep your account name and password in a safe place and Please keep your account <?php echo (USE_ACCOUNT_NAME ? 'name' : 'number'); ?> and password in a safe place and
never give your account name or password to anybody.<br/><br/> never give your account <?php echo (USE_ACCOUNT_NAME ? 'name' : 'number'); ?> or password to anybody.<br/><br/>
<?php <?php
} }
else else
@@ -197,23 +221,23 @@ If you haven\'t registered on ' . $config['lua']['serverName'] . ' please ignore
<TR><TD BGCOLOR="'.$config['vdarkborder'].'" class="white"><B>Account Created</B></TD></TR> <TR><TD BGCOLOR="'.$config['vdarkborder'].'" class="white"><B>Account Created</B></TD></TR>
<TR><TD BGCOLOR="'.$config['darkborder'].'"> <TR><TD BGCOLOR="'.$config['darkborder'].'">
<TABLE BORDER=0 CELLPADDING=1><TR><TD> <TABLE BORDER=0 CELLPADDING=1><TR><TD>
<br/>Your account name is <b>'.$account_name.'</b><br/>You will need the account name and your password to play on '.$config['lua']['serverName'].'. <br/>Your account ' . (USE_ACCOUNT_NAME ? 'name' : 'number') . ' is <b>'.$tmp_account.'</b><br/>You will need the account ' . (USE_ACCOUNT_NAME ? 'name' : 'number') . ' and your password to play on '.$config['lua']['serverName'].'.
Please keep your account name and password in a safe place and Please keep your account ' . (USE_ACCOUNT_NAME ? 'name' : 'number') . ' and password in a safe place and
never give your account name or password to anybody.<br/><br/>'; never give your account ' . (USE_ACCOUNT_NAME ? 'name' : 'number') . ' or password to anybody.<br/><br/>';
if($config['mail_enabled'] && $config['account_welcome_mail']) if($config['mail_enabled'] && $config['account_welcome_mail'])
{ {
$mailBody = ' $mailBody = '
<h3>Dear player,</h3> <h3>Dear player,</h3>
<p>Thanks for your registration at <a href=" ' . BASE_URL . '"><b>'.$config['lua']['serverName'].'</b></a></p> <p>Thanks for your registration at <a href=" ' . BASE_URL . '"><b>' . $config['lua']['serverName'] . '</b></a></p>
<br/><br/> <br/><br/>
Your login details: Your login details:
<p>Account name: <b>' . $account_name . '</b></p> <p>Account' . (USE_ACCOUNT_NAME ? ' name' : '') . ': <b>' . $tmp_account . '</b></p>
<p>Password: <b>' . str_repeat('*', strlen(trim($password))) . '</b> (hidden for security reasons)</p> <p>Password: <b>' . str_repeat('*', strlen(trim($password))) . '</b> (hidden for security reasons)</p>
<p>Kind Regards,</p>'; <p>Kind Regards,</p>';
if(_mail($email, 'Your account on ' . $config['lua']['serverName'], $mailBody)) if(_mail($email, 'Your account on ' . $config['lua']['serverName'], $mailBody))
echo '<br /><small>These informations were send on email address <b>'.$email.'</b>.'; echo '<br /><small>These informations were send on email address <b>' . $email . '</b>.';
else else
echo '<br /><p class="error">An error occorred while sending email (<b>' . $email . '</b>)! Error:<br/>' . $mailer->ErrorInfo . '</p>'; echo '<br /><p class="error">An error occorred while sending email (<b>' . $email . '</b>)! Error:<br/>' . $mailer->ErrorInfo . '</p>';
} }
@@ -241,9 +265,9 @@ function checkAccount()
eventId = 0; eventId = 0;
} }
if(document.getElementById("account_name").value == "") if(document.getElementById("account_input").value == "")
{ {
document.getElementById("acc_name_check").innerHTML = '<b><font color="red">Please enter account name.</font></b>'; document.getElementById("acc_check").innerHTML = '<b><font color="red">Please enter account<?php echo (USE_ACCOUNT_NAME ? ' name' : ''); ?>.</font></b>';
return; return;
} }
@@ -260,10 +284,10 @@ function checkAccount()
} }
} }
account = document.getElementById("account_name").value; account = document.getElementById("account_input").value;
$.get("tools/validate.php", { account: account, uid: Math.random() }, $.get("tools/validate.php", { account: account, uid: Math.random() },
function(data){ function(data){
document.getElementById("acc_name_check").innerHTML = data; document.getElementById("acc_check").innerHTML = data;
lastSend = timeNow; lastSend = timeNow;
}); });
} }
@@ -296,7 +320,6 @@ function checkEmail()
} }
email = document.getElementById("email").value; email = document.getElementById("email").value;
account = document.getElementById("account_name").value;
$.get("tools/validate.php", { email: email, uid: Math.random() }, $.get("tools/validate.php", { email: email, uid: Math.random() },
function(data){ function(data){
document.getElementById("email_check").innerHTML = data; document.getElementById("email_check").innerHTML = data;
@@ -338,8 +361,8 @@ function validate_form(thisform)
{ {
with (thisform) with (thisform)
{ {
if (validate_required(account_name,"Please enter name of new account!")==false) if (validate_required(account_input,"Please enter name of new account!")==false)
{account_name.focus();return false;} {account_input.focus();return false;}
if (validate_required(email,"Please enter your e-mail!")==false) if (validate_required(email,"Please enter your e-mail!")==false)
{email.focus();return false;} {email.focus();return false;}
if (validate_email(email,"Invalid e-mail format!")==false) if (validate_email(email,"Invalid e-mail format!")==false)
@@ -362,11 +385,11 @@ function validate_form(thisform)
output_errors($errors); output_errors($errors);
?> ?>
To play on <?php echo $config['lua']['serverName']; ?> you need an account. To play on <?php echo $config['lua']['serverName']; ?> you need an account.
All you have to do to create your new account is to enter an account name, password<?php All you have to do to create your new account is to enter an account <?php echo (USE_ACCOUNT_NAME ? 'name' : 'number'); ?>, password<?php
if($config['recaptcha_enabled']) echo ', confirm reCAPTCHA'; if($config['recaptcha_enabled']) echo ', confirm reCAPTCHA';
if($config['account_country']) echo ', country'; if($config['account_country']) echo ', country';
?> and your email address. ?> and your email address.
Also you have to agree to the terms presented below. If you have done so, your account name will be shown on the following page and your account password will be sent to your email address along with further instructions. If you do not receive the email with your password, please check your spam filter.<br/><br/> Also you have to agree to the terms presented below. If you have done so, your account <?php echo (USE_ACCOUNT_NAME ? 'name' : 'number'); ?> will be shown on the following page and your account password will be sent to your email address along with further instructions. If you do not receive the email with your password, please check your spam filter.<br/><br/>
<form action="?subtopic=createaccount" method="post" > <form action="?subtopic=createaccount" method="post" >
<div class="TableContainer" > <div class="TableContainer" >
<table class="Table1" cellpadding="0" cellspacing="0" > <table class="Table1" cellpadding="0" cellspacing="0" >
@@ -389,14 +412,14 @@ Also you have to agree to the terms presented below. If you have done so, your a
<table style="width:100%;" > <table style="width:100%;" >
<tr> <tr>
<td class="LabelV" > <td class="LabelV" >
<span<?php echo (isset($errors['account_name'][0]) ? ' class="red"' : ''); ?>>Account Name:</span> <span<?php echo (isset($errors['account'][0]) ? ' class="red"' : ''); ?>>Account <?php echo (USE_ACCOUNT_NAME ? 'Name' : 'Number'); ?>:</span>
</td> </td>
<td> <td>
<input type="text" name="account_name" id="account_name" onkeyup="checkAccount();" id="account-name-input" size="30" maxlength="30" value="<?php echo (isset($_POST['account_name']) ? $_POST['account_name'] : ''); ?>" /> <input type="text" name="account" id="account_input" onkeyup="checkAccount();" size="30" maxlength="<?php echo (USE_ACCOUNT_NAME ? '30' : '10'); ?>" value="<?php echo (isset($_POST['account']) ? $_POST['account'] : ''); ?>" />
<small id="acc_name_check"></small> <small id="acc_check"></small>
</td> </td>
</tr> </tr>
<?php write_if_error('account_name'); ?> <?php write_if_error('account'); ?>
<tr> <tr>
<td class="LabelV" > <td class="LabelV" >
<span<?php echo (isset($errors['email'][0]) ? ' class="red"' : ''); ?>>Email Address:</span> <span<?php echo (isset($errors['email'][0]) ? ' class="red"' : ''); ?>>Email Address:</span>
@@ -522,7 +545,7 @@ Also you have to agree to the terms presented below. If you have done so, your a
</table> </table>
<script type="text/javascript"> <script type="text/javascript">
$(function() { $(function() {
$('#account-name-input').focus(); $('#account_input').focus();
}); });
</script> </script>
<?php <?php

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
$title = 'Downloads'; $title = 'Downloads';

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -16,11 +16,13 @@ if(!isset($config['lua']['experienceStages']) || !getBoolean($config['lua']['exp
{ {
$enabled = false; $enabled = false;
$stages = new DOMDocument(); if(file_exists($config['data_path'] . 'XML/stages.xml')) {
$stages->load($config['data_path'] . 'XML/stages.xml'); $stages = new DOMDocument();
foreach($stages->getElementsByTagName('config') as $node) { $stages->load($config['data_path'] . 'XML/stages.xml');
if($node->getAttribute('enabled')) foreach($stages->getElementsByTagName('config') as $node) {
$enabled = true; if($node->getAttribute('enabled'))
$enabled = true;
}
} }
if(!$enabled) { if(!$enabled) {

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,12 +6,17 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
$title = 'Guilds'; $title = 'Guilds';
if(tableExist('guild_members'))
define('GUILD_MEMBERS_TABLE', 'guild_members');
else
define('GUILD_MEMBERS_TABLE', 'guild_membership');
if($action == 'login') if($action == 'login')
{ {
if(check_guild_name($_REQUEST['guild'])) if(check_guild_name($_REQUEST['guild']))
@@ -98,10 +103,16 @@ if($action == '')
} }
else else
echo '<TR BGCOLOR='.$config['lightborder'].'><TD ALIGN="CENTER">-</TD><TD><IMG SRC="images/guilds/' . 'default.gif" WIDTH=64 HEIGHT=64></TD> echo '<TR BGCOLOR='.$config['lightborder'].'><TD ALIGN="CENTER">-</TD><TD><IMG SRC="images/guilds/' . 'default.gif" WIDTH=64 HEIGHT=64></TD>
<TD valign="top" align="center"><B>Create guild</B><BR/>Actually there is no guild on server. Create first! Press button "Create Guild".</TD> <TD valign="top" align="center"><B>Create guild</B><BR/>Actually there is no guild on server.' . ($logged ? ' Create first! Press button "Create Guild".' : '') . '</TD>
<TD colspan="4"><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=createguild" METHOD=post><TR><TD> <TD colspan="4">';
if($logged)
echo '
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=createguild" METHOD=post><TR><TD>
<INPUT TYPE=image NAME="Create Guild" ALT="Create Guild" SRC="'.$template_path.'/images/buttons/sbutton_createguild.png" BORDER=0 WIDTH=120 HEIGHT=18> <INPUT TYPE=image NAME="Create Guild" ALT="Create Guild" SRC="'.$template_path.'/images/buttons/sbutton_createguild.png" BORDER=0 WIDTH=120 HEIGHT=18>
</TD></TR></FORM></TABLE></TD></TR>'; </TD></TR></FORM></TABLE>';
echo '
</TD></TR>';
} }
else else
{ {
@@ -130,10 +141,14 @@ if($action == '')
} }
else else
echo '<TR BGCOLOR='.$config['lightborder'].'><TD><IMG SRC="images/guilds/' . 'default.gif" WIDTH=64 HEIGHT=64></TD> echo '<TR BGCOLOR='.$config['lightborder'].'><TD><IMG SRC="images/guilds/' . 'default.gif" WIDTH=64 HEIGHT=64></TD>
<TD valign="top"><B>Create guild</B><BR/>Actually there is no guild on server. Create first! Press button "Create Guild".</TD> <TD valign="top"><B>Create guild</B><BR/>Actually there is no guild on server.' . ($logged ? ' Create first! Press button "Create Guild".' : '') . '</TD>
<TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=createguild" METHOD=post><TR><TD> <TD>';
if($logged)
echo '<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=guilds&action=createguild" METHOD=post><TR><TD>
<INPUT TYPE=image NAME="Create Guild" ALT="Create Guild" SRC="'.$template_path.'/images/buttons/sbutton_createguild.png" BORDER=0 WIDTH=120 HEIGHT=18> <INPUT TYPE=image NAME="Create Guild" ALT="Create Guild" SRC="'.$template_path.'/images/buttons/sbutton_createguild.png" BORDER=0 WIDTH=120 HEIGHT=18>
</TD></TR></FORM></TABLE></TD></TR>'; </TD></TR></FORM></TABLE>';
echo '
</TD></TR>';
} }
@@ -146,7 +161,7 @@ if($action == '')
<BR /><a href="?subtopic=guilds&action=cleanup_players">Cleanup players</a> - can\'t join guild/be invited? Can\'t create guild? Try cleanup players. <BR /><a href="?subtopic=guilds&action=cleanup_players">Cleanup players</a> - can\'t join guild/be invited? Can\'t create guild? Try cleanup players.
<BR /><a href="?subtopic=guilds&action=cleanup_guilds">Cleanup guilds</a> - made guild, you are a leader, but you are not on players list? Cleanup guilds!'; <BR /><a href="?subtopic=guilds&action=cleanup_guilds">Cleanup guilds</a> - made guild, you are a leader, but you are not on players list? Cleanup guilds!';
else else
echo 'Before you can create guild you must login.<br><TABLE BORDER=0 WIDTH=100%><TR><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD><TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=accountmanagement&redirect=' . BASE_URL . urlencode(getPageLink('guilds')) . '" METHOD=post><TR><TD> echo 'Before you can create guild you must login.<br><TABLE BORDER=0 WIDTH=100%><TR><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD><TD ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=accountmanagement&redirect=' . getPageLink('guilds') . '" METHOD=post><TR><TD>
<INPUT TYPE=image NAME="Login" ALT="Login" SRC="'.$template_path.'/images/buttons/sbutton_login.gif" BORDER=0 WIDTH=120 HEIGHT=18> <INPUT TYPE=image NAME="Login" ALT="Login" SRC="'.$template_path.'/images/buttons/sbutton_login.gif" BORDER=0 WIDTH=120 HEIGHT=18>
</TD></TR></FORM></TABLE></TD><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD></TR></TABLE>'; </TD></TR></FORM></TABLE></TD><TD ALIGN=center><IMG SRC="'.$template_path.'/images/general/blank.gif" WIDTH=80 HEIGHT=1 BORDER=0<BR></TD></TR></TABLE>';
} }
@@ -258,11 +273,11 @@ if($action == 'show')
$showed_players = 1; $showed_players = 1;
foreach($rank_list as $rank) foreach($rank_list as $rank)
{ {
if(fieldExist('rank_id', 'players')) if(tableExist(GUILD_MEMBERS_TABLE))
$players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;');
else if(fieldExist('rank_id', 'players'))
$players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;');
else
$players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_membership`.`rank_id` as `rank_id` FROM `players`, `guild_membership` WHERE `guild_membership`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `guild_membership`.`player_id` ORDER BY `name`;');
$players_with_rank_number = $players_with_rank->rowCount(); $players_with_rank_number = $players_with_rank->rowCount();
if($players_with_rank_number > 0) if($players_with_rank_number > 0)
{ {
@@ -491,7 +506,7 @@ if($action == 'changerank')
if(fieldExist('rank_id', 'players')) if(fieldExist('rank_id', 'players'))
$players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;');
else else
$players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_membership`.`rank_id` as `rank_id` FROM `players`, `guild_membership` WHERE `guild_membership`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `guild_membership`.`player_id` ORDER BY `name`;'); $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;');
$players_with_rank_number = $players_with_rank->rowCount(); $players_with_rank_number = $players_with_rank->rowCount();
if(count($players_with_rank) > 0) if(count($players_with_rank) > 0)
@@ -573,7 +588,7 @@ if($action == 'changerank')
if(fieldExist('rank_id', 'players')) if(fieldExist('rank_id', 'players'))
$players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;');
else else
$players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_membership`.`rank_id` as `rank_id` FROM `players`, `guild_membership` WHERE `guild_membership`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `guild_membership`.`player_id` ORDER BY `name`;'); $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;');
$players_with_rank_number = $players_with_rank->rowCount(); $players_with_rank_number = $players_with_rank->rowCount();
if(count($players_with_rank) > 0) if(count($players_with_rank) > 0)
@@ -1011,7 +1026,7 @@ if($action == 'kickplayer') {
} }
else else
{ {
if($player->getRank()->isLoaded() && $player->getRank()->getGuild()->getName() != $guild->getName()) { if($player->getRank()->isLoaded() && $player->getRank()->getGuild()->isLoaded() && $player->getRank()->getGuild()->getName() != $guild->getName()) {
$guild_errors[] = 'Character <b>'.$name.'</b> isn\'t from your guild.'; $guild_errors[] = 'Character <b>'.$name.'</b> isn\'t from your guild.';
} }
} }
@@ -1598,7 +1613,7 @@ else
if(fieldExist('rank_id', 'players')) if(fieldExist('rank_id', 'players'))
$players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;');
else else
$players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_membership`.`rank_id` as `rank_id` FROM `players`, `guild_membership` WHERE `guild_membership`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `guild_membership`.`player_id` ORDER BY `name`;'); $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;');
$players_with_rank_number = $players_with_rank->rowCount(); $players_with_rank_number = $players_with_rank->rowCount();
if($players_with_rank_number > 0) { if($players_with_rank_number > 0) {

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,12 +6,16 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
$title = 'Houses'; $title = 'Houses';
if(!fieldExist('name', 'houses')) {
echo 'Houses list is not available on this server.';
return;
}
$rent = trim(strtolower($config['lua']['houseRentPeriod'])); $rent = trim(strtolower($config['lua']['houseRentPeriod']));
if($rent != 'yearly' && $rent != 'monthly' && $rent != 'weekly' && $rent != 'daily') if($rent != 'yearly' && $rent != 'monthly' && $rent != 'weekly' && $rent != 'daily')
$rent = 'never'; $rent = 'never';
@@ -29,7 +33,8 @@ $type = '';
{ {
$beds = array("", "one", "two", "three", "fourth", "fifth"); $beds = array("", "one", "two", "three", "fourth", "fifth");
$houseName = $_REQUEST['house']; $houseName = $_REQUEST['house'];
$house = $db->query('SELECT * FROM ' . $db->tableName('houses') . ' WHERE ' . $db->fieldName('name') . ' LIKE ' . $db->quote($houseName)); $houseId = (check_number($_REQUEST['house']) ? $_REQUEST['house'] : -1);
$house = $db->query('SELECT * FROM ' . $db->tableName('houses') . ' WHERE ' . $db->fieldName('name') . ' LIKE ' . $db->quote($houseName) . ' OR `id` = ' . $db->quote($houseId));
if($house->rowCount() > 0) if($house->rowCount() > 0)
{ {
@@ -180,7 +185,7 @@ $type = '';
echo '</TR>'; echo '</TR>';
$players_info = $db->query("SELECT `houses`.`id` AS `houseid` , `players`.`name` AS `ownername` , `accounts`.`premdays` AS `premdays` , `accounts`.`lastday` AS `lastlogin` FROM `houses` , `players` , `accounts` WHERE `players`.`id` = `houses`.`owner` AND `accounts`.`id` = `players`.`account_id`"); $players_info = $db->query("SELECT `houses`.`id` AS `houseid` , `players`.`name` AS `ownername` FROM `houses` , `players` , `accounts` WHERE `players`.`id` = `houses`.`owner` AND `accounts`.`id` = `players`.`account_id`");
$players = array(); $players = array();
foreach($players_info->fetchAll() as $player) foreach($players_info->fetchAll() as $player)
$players[$player['houseid']] = array('name' => $player['ownername']); $players[$player['houseid']] = array('name' => $player['ownername']);

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -16,7 +16,7 @@ $players_deaths_count = 0;
$players_rows = ''; $players_rows = '';
if(tableExist('player_killers')) // tfs 0.3 if(tableExist('player_killers')) // tfs 0.3
{ {
$players_deaths = $db->query('SELECT `player_deaths`.`id`, `player_deaths`.`date`, `player_deaths`.`level`, `players`.`name`, `players`.`world_id` FROM `player_deaths` LEFT JOIN `players` ON `player_deaths`.`player_id` = `players`.`id` ORDER BY `date` DESC LIMIT 0, ' . $config['last_kills_limit']); $players_deaths = $db->query('SELECT `player_deaths`.`id`, `player_deaths`.`date`, `player_deaths`.`level`, `players`.`name`' . (fieldExist('world_id', 'players') ? ', `players`.`world_id`' : '') . ' FROM `player_deaths` LEFT JOIN `players` ON `player_deaths`.`player_id` = `players`.`id` ORDER BY `date` DESC LIMIT 0, ' . $config['last_kills_limit']);
if(!empty($players_deaths)) if(!empty($players_deaths))
{ {
foreach($players_deaths as $death) foreach($players_deaths as $death)

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -48,7 +48,7 @@ if(isset($_GET['archive']))
$author = $query['name']; $author = $query['name'];
} }
echo news_parse($news['title'], $news['body'], $news['date'], $categories[$news['category']]['icon_id'], $config['news_author'] ? $author : '', getForumThreadLink($news['comments'])); echo news_parse($news['title'], $news['body'], $news['date'], $categories[$news['category']]['icon_id'], $config['news_author'] ? $author : '', $news['comments'] != 0 ? getForumThreadLink($news['comments']) : NULL);
} }
else else
echo 'This news doesn\'t exist or is hidden.<br>'; echo 'This news doesn\'t exist or is hidden.<br>';
@@ -444,7 +444,7 @@ if(!$news_cached)
</a>'; </a>';
} }
echo news_parse($news['title'], $news['body'] . $admin_options, $news['date'], $categories[$news['category']]['icon_id'], $config['news_author'] ? $author : '', getForumThreadLink($news['comments'])); echo news_parse($news['title'], $news['body'] . $admin_options, $news['date'], $categories[$news['category']]['icon_id'], $config['news_author'] ? $author : '', $news['comments'] != 0 ? getForumThreadLink($news['comments']) : NULL);
} }
} }

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
$_GET['archive'] = true; $_GET['archive'] = true;

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -21,13 +21,16 @@ if($config['account_country'])
<td class="white"><b>Server Status</b></td> <td class="white"><b>Server Status</b></td>
</tr> </tr>
<?php <?php
$promotion = '';
if(fieldExist('promotion', 'players'))
$promotion = '`promotion`,';
$order = isset($_GET['order']) ? $_GET['order'] : 'name'; $order = isset($_GET['order']) ? $_GET['order'] : 'name';
if(!in_array($order, array('country', 'name', 'level', 'vocation'))) if(!in_array($order, array('country', 'name', 'level', 'vocation')))
$order = $db->fieldName('name'); $order = $db->fieldName('name');
else if($order == 'country') else if($order == 'country')
$order = $db->tableName('accounts') . '.' . $db->fieldName('country'); $order = $db->tableName('accounts') . '.' . $db->fieldName('country');
else if($order == 'vocation') else if($order == 'vocation')
$order = 'promotion, vocation ASC'; $order = $promotion . 'vocation ASC';
$skull_type = 'skull'; $skull_type = 'skull';
if(fieldExist('skull_type', 'players')) { if(fieldExist('skull_type', 'players')) {
@@ -43,7 +46,7 @@ $vocs = array(0, 0, 0, 0, 0);
if(tableExist('players_online')) // tfs 1.0 if(tableExist('players_online')) // tfs 1.0
$playersOnline = $db->query('SELECT `accounts`.`country`, `players`.`name`, `level`, `vocation`, `' . $skull_time . '` as `skulltime`, `' . $skull_type . '` as `skull` FROM `accounts`, `players`, `players_online` WHERE `players`.`id` = `players_online`.`player_id` AND `accounts`.`id` = `players`.`account_id` ORDER BY ' . $order); $playersOnline = $db->query('SELECT `accounts`.`country`, `players`.`name`, `level`, `vocation`, `' . $skull_time . '` as `skulltime`, `' . $skull_type . '` as `skull` FROM `accounts`, `players`, `players_online` WHERE `players`.`id` = `players_online`.`player_id` AND `accounts`.`id` = `players`.`account_id` ORDER BY ' . $order);
else else
$playersOnline = $db->query('SELECT `accounts`.`country`, `players`.`name`, `level`, `vocation`, `promotion`, `' . $skull_time . '` as `skulltime`, `' . $skull_type . '` as `skull` FROM `accounts`, `players` WHERE `players`.`online` > 0 AND `accounts`.`id` = `players`.`account_id` ORDER BY ' . $order); $playersOnline = $db->query('SELECT `accounts`.`country`, `players`.`name`, `level`, `vocation`, ' . $promotion . ' `' . $skull_time . '` as `skulltime`, `' . $skull_type . '` as `skull` FROM `accounts`, `players` WHERE `players`.`online` > 0 AND `accounts`.`id` = `players`.`account_id` ORDER BY ' . $order);
$players = 0; $players = 0;
$data = ''; $data = '';
@@ -116,11 +119,11 @@ if(!$players): ?>
' ORDER BY ' . $db->fieldName('record') . ' DESC LIMIT 1'); ' ORDER BY ' . $db->fieldName('record') . ' DESC LIMIT 1');
$timestamp = true; $timestamp = true;
} }
else{ // tfs 1.0 else if(tableExist('server_config')) { // tfs 1.0
$query = $db->query('SELECT `value` as `record` FROM `server_config` WHERE `config` = ' . $db->quote('players_record')); $query = $db->query('SELECT `value` as `record` FROM `server_config` WHERE `config` = ' . $db->quote('players_record'));
} }
if($query->rowCount() > 0) if(isset($query) && $query->rowCount() > 0)
{ {
$result = $query->fetch(); $result = $query->fetch();
echo 'The maximum on this game world was ' . $result['record'] . ' players' . ($timestamp ? ' on ' . date("M d Y, H:i:s", $result['timestamp']) . '.' : '.'); echo 'The maximum on this game world was ' . $result['record'] . ' players' . ($timestamp ? ' on ' . date("M d Y, H:i:s", $result['timestamp']) . '.' : '.');

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,17 +6,22 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
$title = 'Server info'; $title = 'Server info';
if(isset($config['lua']['experience_stages']))
$config['lua']['experienceStages'] = $config['lua']['experience_stages'];
?> ?>
<center> <center>
<h1><?php echo $config['lua']['serverName']; ?></h1> <h1><?php echo $config['lua']['serverName']; ?></h1>
<h3> <h3>
<?php if(isset($config['lua']['experienceStages']) && getBoolean($config['lua']['experienceStages'])): ?>
Experience stages: <a href="<?php echo getPageLink('experienceStages'); ?>">Look here</a><br/> Experience stages: <a href="<?php echo getPageLink('experienceStages'); ?>">Look here</a><br/>
<?php endif; ?>
Commands: <a href="<?php echo getPageLink('commands'); ?>">Look here</a><br/> Commands: <a href="<?php echo getPageLink('commands'); ?>">Look here</a><br/>
Team: <a href="<?php echo getPageLink('team'); ?>">Look here</a><br/> Team: <a href="<?php echo getPageLink('team'); ?>">Look here</a><br/>
</h3> </h3>
@@ -34,9 +39,15 @@ $title = 'Server info';
if(isset($config['lua']['globalSaveEnabled']) && getBoolean($config['lua']['globalSaveEnabled'])) if(isset($config['lua']['globalSaveEnabled']) && getBoolean($config['lua']['globalSaveEnabled']))
echo '<li>Global save: <b>' . $config['lua']['globalSaveHour'] . ':00</b></li>'; echo '<li>Global save: <b>' . $config['lua']['globalSaveHour'] . ':00</b></li>';
if(isset($config['lua']['min_pvp_level'])){
$config['lua']['protectionLevel'] = $config['lua']['min_pvp_level'];
}
if(isset($config['lua']['protectionLevel'])):
?> ?>
<li>World type: <b>PVP <i>(Protection level: ><?php echo $config['lua']['protectionLevel']; ?>)</i></b></li> <li>World type: <b>PVP <i>(Protection level: ><?php echo $config['lua']['protectionLevel']; ?>)</i></b></li>
<?php <?php
endif;
$rent = trim(strtolower($config['lua']['houseRentPeriod'])); $rent = trim(strtolower($config['lua']['houseRentPeriod']));
if($rent != 'yearly' && $rent != 'monthly' && $rent != 'weekly' && $rent != 'daily') if($rent != 'yearly' && $rent != 'monthly' && $rent != 'weekly' && $rent != 'daily')
$rent = 'never'; $rent = 'never';
@@ -48,14 +59,31 @@ $title = 'Server info';
if($cleanOld > 0) if($cleanOld > 0)
echo '<li>Houses with inactive owners are cleaned after 30 days.</li>'; echo '<li>Houses with inactive owners are cleaned after 30 days.</li>';
} }
if(isset($config['lua']['rate_mag']))
$config['lua']['rateMagic'] = $config['lua']['rate_mag'];
if(isset($config['lua']['rate_skill']))
$config['lua']['rateSkill'] = $config['lua']['rate_skill'];
if(isset($config['lua']['rate_loot']))
$config['lua']['rateLoot'] = $config['lua']['rate_loot'];
if(isset($config['lua']['rate_spawn']))
$config['lua']['rateSpawn'] = $config['lua']['rate_spawn'];
?> ?>
<br/> <br/>
<h2>Rates</h2> <h2>Rates</h2>
<?php if(isset($config['lua']['rateMagic'])): ?>
<li>Magic Level: <b>x<?php echo $config['lua']['rateMagic']; ?></b></li> <li>Magic Level: <b>x<?php echo $config['lua']['rateMagic']; ?></b></li>
<?php endif;
if(isset($config['lua']['rateSkill'])): ?>
<li>Skills: <b>x<?php echo $config['lua']['rateSkill']; ?></b></li> <li>Skills: <b>x<?php echo $config['lua']['rateSkill']; ?></b></li>
<?php endif;
if(isset($config['lua']['rateLoot'])): ?>
<li>Loot: <b>x<?php echo $config['lua']['rateLoot']; ?></b></li> <li>Loot: <b>x<?php echo $config['lua']['rateLoot']; ?></b></li>
<?php endif;
if(isset($config['lua']['rateSpawn'])): ?>
<li>Spawn: <b>x<?php echo $config['lua']['rateSpawn']; ?></b></li> <li>Spawn: <b>x<?php echo $config['lua']['rateSpawn']; ?></b></li>
<?php endif; ?>
<?php <?php
$house_level = NULL; $house_level = NULL;
if(isset($config['lua']['levelToBuyHouse'])) if(isset($config['lua']['levelToBuyHouse']))
@@ -65,12 +93,15 @@ $title = 'Server info';
if(isset($house_level)): if(isset($house_level)):
?> ?>
<li>Houses: <b><?php echo $config['lua']['levelToBuyHouse']; ?> level</b></li> <li>Houses: <b><?php echo $house_level; ?> level</b></li>
<?php endif; ?> <?php endif; ?>
<li>Guilds: <b><?php echo $config['guild_need_level']; ?> level</b> (Create via website)</li> <li>Guilds: <b><?php echo $config['guild_need_level']; ?> level</b> (Create via website)</li>
<br> <br>
<?php <?php
if(isset($config['lua']['in_fight_duration']))
$config['lua']['pzLocked'] = $config['lua']['in_fight_duration'];
$pzLocked = eval('return ' . $config['lua']['pzLocked'] . ';'); $pzLocked = eval('return ' . $config['lua']['pzLocked'] . ';');
$whiteSkullTime = isset($config['lua']['whiteSkullTime']) ? $config['lua']['whiteSkullTime'] : NULL; $whiteSkullTime = isset($config['lua']['whiteSkullTime']) ? $config['lua']['whiteSkullTime'] : NULL;
if(!isset($whiteSkullTime) && isset($config['lua']['unjust_skull_duration'])) if(!isset($whiteSkullTime) && isset($config['lua']['unjust_skull_duration']))
@@ -138,13 +169,13 @@ $title = 'Server info';
<?php <?php
endif; endif;
if(isset($config['lua']['banishment_length'])): ?> if(isset($config['lua']['banishment_length'])): ?>
<li>Banishment length: <b><?php echo eval('return ' . $config['lua']['banishment_length'] / (24 * 60 * 60) . ';'); ?> days</b></li> <li>Banishment length: <b><?php echo eval('return (' . $config['lua']['banishment_length'] . ') / (24 * 60 * 60);'); ?> days</b></li>
<?php endif; <?php endif;
if(isset($config['lua']['final_banishment_length'])): ?> if(isset($config['lua']['final_banishment_length'])): ?>
<li>Final banishment length: <b><?php echo eval('return ' . $config['lua']['final_banishment_length'] / (24 * 60 * 60) . ';'); ?> days</b></li> <li>Final banishment length: <b><?php echo eval('return (' . $config['lua']['final_banishment_length'] . ') / (24 * 60 * 60);'); ?> days</b></li>
<?php endif; <?php endif;
if(isset($config['lua']['ip_banishment_length'])): ?> if(isset($config['lua']['ip_banishment_length'])): ?>
<li>IP banishment length: <b><?php echo eval('return ' . $config['lua']['ip_banishment_length'] / (24 * 60 * 60) . ';'); ?> days</b></li> <li>IP banishment length: <b><?php echo eval('return (' . $config['lua']['ip_banishment_length'] . ') / (24 * 60 * 60);'); ?> days</b></li>
<?php endif; ?> <?php endif; ?>
<br/> <br/>
<h2>Other</h2> <h2>Other</h2>

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -6,7 +6,7 @@
* @author Gesior <jerzyskalski@wp.pl> * @author Gesior <jerzyskalski@wp.pl>
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -21,9 +21,15 @@ $status['monsters'] = 0;
$status_ip = $config['lua']['ip']; $status_ip = $config['lua']['ip'];
if(isset($config['lua']['statusProtocolPort'])) { if(isset($config['lua']['statusProtocolPort'])) {
$config['lua']['loginPort'] = $config['lua']['statusProtocolPort']; $config['lua']['loginPort'] = $config['lua']['statusProtocolPort'];
$config['lua']['statusPort'] = $config['lua']['statusProtocolPort'];
$status_port = $config['lua']['statusProtocolPort']; $status_port = $config['lua']['statusProtocolPort'];
} }
else else if(isset($config['lua']['status_port'])) {
$config['lua']['loginPort'] = $config['lua']['status_port'];
$config['lua']['statusPort'] = $config['lua']['status_port'];
$status_port = $config['lua']['status_port'];
}
$status_port = $config['lua']['statusPort']; $status_port = $config['lua']['statusPort'];
if(isset($config['status_ip'][0])) if(isset($config['status_ip'][0]))
@@ -64,6 +70,9 @@ if($fetch_from_db)
} }
} }
if(isset($config['lua']['statustimeout']))
$config['lua']['statusTimeout'] = $config['lua']['statustimeout'];
// get status timeout from server config // get status timeout from server config
$status_timeout = eval('return ' . $config['lua']['statusTimeout'] . ';') / 1000 + 1; $status_timeout = eval('return ' . $config['lua']['statusTimeout'] . ';') / 1000 + 1;

View File

@@ -5,7 +5,7 @@
* @package MyAAC * @package MyAAC
* @author Slawkens <slawkens@gmail.com> * @author Slawkens <slawkens@gmail.com>
* @copyright 2017 MyAAC * @copyright 2017 MyAAC
* @version 0.0.2 * @version 0.0.6
* @link http://my-aac.org * @link http://my-aac.org
*/ */
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
@@ -36,7 +36,9 @@ if($config['template_allow_change'])
} }
$template_path = 'templates/' . $template_name; $template_path = 'templates/' . $template_name;
if(!file_exists($template_path . '/config.php')) if(!file_exists($template_path . '/index.php') &&
!file_exists($template_path . '/template.php') &&
!file_exists($template_path . '/layout.php'))
{ {
$template_name = 'kathrine'; $template_name = 'kathrine';
$template_path = 'templates/' . $template_name; $template_path = 'templates/' . $template_name;
@@ -66,7 +68,7 @@ if($exists || ($config['backward_support'] && file_exists($template_path . '/lay
foreach($template_ini as $key => $value) foreach($template_ini as $key => $value)
$config[$key] = $value; $config[$key] = $value;
} }
else else if(file_exists($template_path . '/config.php'))
require($template_path . '/config.php'); require($template_path . '/config.php');
$template = array(); $template = array();
@@ -76,7 +78,7 @@ $template['link_account_lost'] = internalLayoutLink(($config['friendly_urls'] ?
$template['link_account_logout'] = internalLayoutLink(($config['friendly_urls'] ? 'account' : 'accountmanagement'), 'logout'); $template['link_account_logout'] = internalLayoutLink(($config['friendly_urls'] ? 'account' : 'accountmanagement'), 'logout');
$template['link_news'] = internalLayoutLink('news'); $template['link_news'] = internalLayoutLink('news');
$template['link_news_archive'] = internalLayoutLink('news' . ($config['friendly_urls'] ? '' : '') . 'archive'); $template['link_news_archive'] = internalLayoutLink('news' . ($config['friendly_urls'] ? '/' : '') . 'archive');
$template['link_changelog'] = internalLayoutLink('changelog'); $template['link_changelog'] = internalLayoutLink('changelog');
$template['link_rules'] = internalLayoutLink('rules'); $template['link_rules'] = internalLayoutLink('rules');
$template['link_downloads'] = internalLayoutLink('downloads'); $template['link_downloads'] = internalLayoutLink('downloads');

View File

@@ -3,7 +3,7 @@ list[0] = 'news';
list[1] = 'account'; list[1] = 'account';
list[2] = 'community'; list[2] = 'community';
list[3] = 'library'; list[3] = 'library';
list[4] = 'about'; list[4] = 'shops';
function initMenu() function initMenu()
{ {

View File

@@ -9,7 +9,7 @@ function news_parse($title, $content, $date, $icon = 0, $author = '', $comments
$tmp = $template_path.'/images/letters/'.$content[0].'.gif'; $tmp = $template_path.'/images/letters/'.$content[0].'.gif';
if(file_exists($tmp)) { if(file_exists($tmp)) {
$firstLetter = '<img src="' . $tmp . '" alt="'.$content[0].'" BORDER=0 ALIGN=bottom>'; $firstLetter = '<img src="' . $tmp . '" alt="'.$content[0].'" BORDER=0 ALIGN=bottom>';
$content[0] = ''; $content = substr($content, 1);
} }
} }

Some files were not shown because too many files have changed in this diff Show More