mirror of
https://github.com/slawkens/myaac.git
synced 2025-09-15 13:03:34 +02:00
Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4fcc71e127 | ||
![]() |
403b4aa89b | ||
![]() |
613bcf379b | ||
![]() |
8f2cc2ca38 | ||
![]() |
cdae11226d | ||
![]() |
79fd97ad78 | ||
![]() |
b477d4c821 | ||
![]() |
289f82ad23 | ||
![]() |
92569b7965 | ||
![]() |
c03b041f40 | ||
![]() |
2ac8ed7411 | ||
![]() |
3280b3b9df | ||
![]() |
05c37b94bb | ||
![]() |
a91e7226dc | ||
![]() |
a39600efe2 | ||
![]() |
4fd5922784 |
19
CHANGELOG.md
19
CHANGELOG.md
@@ -1,5 +1,24 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [0.8.9 - 16.03.2023]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
* You can now disable server status checking for testing purposes, useful for local testing when there is no server running
|
||||||
|
* with this, the page won't need 2 seconds to load
|
||||||
|
* set status_enabled to false in config.php
|
||||||
|
* new buttons code for tibiacom template, can create button with any text
|
||||||
|
* patched some small changes from develop branch
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
* add .git to denied folders in nginx-sample.conf
|
||||||
|
* plugins folder is now accessible from outside
|
||||||
|
* add plugins folder to twig search paths
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
* player save on tfs 1.5 with new ipv6
|
||||||
|
* more php 8.x compatibility
|
||||||
|
* rel path for exception message, causing message to be not in red background
|
||||||
|
|
||||||
## [0.8.8 - 18.02.2023]
|
## [0.8.8 - 18.02.2023]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
14
CONTRIBUTORS.txt
Normal file
14
CONTRIBUTORS.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# automatically exported using this script:
|
||||||
|
# git log --all --format='%cN <%cE>' | sort -u > contributors
|
||||||
|
# in no particular order
|
||||||
|
# cleaned for readability
|
||||||
|
|
||||||
|
Evil Puncker <EPuncker@users.noreply.github.com>
|
||||||
|
Fernando Matos <fernando@pixele.com.br>
|
||||||
|
Lee <42119604+Leesneaks@users.noreply.github.com>
|
||||||
|
caio <caio.zucoli@gmail.com>
|
||||||
|
slawkens <slawkens@gmail.com>
|
||||||
|
tobi132 <52947952+tobi132@users.noreply.github.com>
|
||||||
|
vankk <nwtr.otland@hotmail.com>
|
||||||
|
whiteblXK <krzys16001@gmail.com>
|
||||||
|
xitobuh <jonas.hockert92@gmail.com>
|
3
CREDITS
3
CREDITS
@@ -1,2 +1,3 @@
|
|||||||
* Gesior.pl (2007 - 2008)
|
* Gesior.pl (2007 - 2008)
|
||||||
* Slawkens (2009 - 2020)
|
* Slawkens (2009 - 2023)
|
||||||
|
* Contributors listed in CONTRIBUTORS.txt
|
||||||
|
@@ -9,6 +9,8 @@
|
|||||||
|
|
||||||
MyAAC is a free and open-source Automatic Account Creator (AAC) written in PHP. It is a fork of the [Gesior](https://github.com/gesior/Gesior2012) project. It supports only MySQL databases.
|
MyAAC is a free and open-source Automatic Account Creator (AAC) written in PHP. It is a fork of the [Gesior](https://github.com/gesior/Gesior2012) project. It supports only MySQL databases.
|
||||||
|
|
||||||
|
Official website: https://my-aac.org
|
||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
|
|
||||||
- PHP 5.6 or later
|
- PHP 5.6 or later
|
||||||
@@ -57,12 +59,13 @@ That means, we use:
|
|||||||
|
|
||||||
- Some compatibility issues with some exotical distibutions.
|
- Some compatibility issues with some exotical distibutions.
|
||||||
|
|
||||||
|
|
||||||
### Contributing
|
### Contributing
|
||||||
|
|
||||||
Contributions are more than welcome.
|
Contributions are more than welcome.
|
||||||
|
|
||||||
Pull requests should be made to the Dev branch as that is the working branch, master is for release code.
|
Pull requests should be made to the *develop* branch as that is the working branch, master is for release code.
|
||||||
|
|
||||||
|
Bug fixes to current release should be done to master branch.
|
||||||
|
|
||||||
Look: [Contributing](https://github.com/otsoft/myaac/wiki/Contributing) in our wiki.
|
Look: [Contributing](https://github.com/otsoft/myaac/wiki/Contributing) in our wiki.
|
||||||
|
|
||||||
|
@@ -2,6 +2,9 @@
|
|||||||
// few things we'll need
|
// few things we'll need
|
||||||
require '../common.php';
|
require '../common.php';
|
||||||
|
|
||||||
|
define('ADMIN_PANEL', true);
|
||||||
|
define('MYAAC_ADMIN', true);
|
||||||
|
|
||||||
if(file_exists(BASE . 'config.local.php')) {
|
if(file_exists(BASE . 'config.local.php')) {
|
||||||
require_once BASE . 'config.local.php';
|
require_once BASE . 'config.local.php';
|
||||||
}
|
}
|
||||||
@@ -12,8 +15,6 @@ if(file_exists(BASE . 'install') && (!isset($config['installed']) || !$config['i
|
|||||||
throw new RuntimeException('Setup detected that <b>install/</b> directory exists. Please visit <a href="' . BASE_URL . 'install">this</a> url to start MyAAC Installation.<br/>Delete <b>install/</b> directory if you already installed MyAAC.<br/>Remember to REFRESH this page when you\'re done!');
|
throw new RuntimeException('Setup detected that <b>install/</b> directory exists. Please visit <a href="' . BASE_URL . 'install">this</a> url to start MyAAC Installation.<br/>Delete <b>install/</b> directory if you already installed MyAAC.<br/>Remember to REFRESH this page when you\'re done!');
|
||||||
}
|
}
|
||||||
|
|
||||||
define('ADMIN_PANEL', true);
|
|
||||||
|
|
||||||
$content = '';
|
$content = '';
|
||||||
|
|
||||||
// validate page
|
// validate page
|
||||||
|
@@ -1,4 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
define('MYAAC_ADMIN', true);
|
||||||
|
|
||||||
require '../../common.php';
|
require '../../common.php';
|
||||||
require SYSTEM . 'functions.php';
|
require SYSTEM . 'functions.php';
|
||||||
require SYSTEM . 'init.php';
|
require SYSTEM . 'init.php';
|
||||||
|
@@ -1,4 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
define('MYAAC_ADMIN', true);
|
||||||
|
|
||||||
require '../../common.php';
|
require '../../common.php';
|
||||||
require SYSTEM . 'init.php';
|
require SYSTEM . 'init.php';
|
||||||
require SYSTEM . 'functions.php';
|
require SYSTEM . 'functions.php';
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
if (version_compare(phpversion(), '5.6', '<')) die('PHP version 5.6 or higher is required.');
|
if (version_compare(phpversion(), '5.6', '<')) die('PHP version 5.6 or higher is required.');
|
||||||
|
|
||||||
define('MYAAC', true);
|
define('MYAAC', true);
|
||||||
define('MYAAC_VERSION', '0.8.8');
|
define('MYAAC_VERSION', '0.8.9');
|
||||||
define('DATABASE_VERSION', 33);
|
define('DATABASE_VERSION', 33);
|
||||||
define('TABLE_PREFIX', 'myaac_');
|
define('TABLE_PREFIX', 'myaac_');
|
||||||
define('START_TIME', microtime(true));
|
define('START_TIME', microtime(true));
|
||||||
|
@@ -267,6 +267,7 @@ $config = array(
|
|||||||
'last_kills_limit' => 50, // max. number of deaths shown on the last kills page
|
'last_kills_limit' => 50, // max. number of deaths shown on the last kills page
|
||||||
|
|
||||||
// status, took automatically from config file if empty
|
// status, took automatically from config file if empty
|
||||||
|
'status_enabled' => true, // you can disable status checking by settings this to "false"
|
||||||
'status_ip' => '',
|
'status_ip' => '',
|
||||||
'status_port' => '',
|
'status_port' => '',
|
||||||
'status_timeout' => 2, // how long to wait for the initial response from the server (default: 2 seconds)
|
'status_timeout' => 2, // how long to wait for the initial response from the server (default: 2 seconds)
|
||||||
|
@@ -2,10 +2,10 @@ We have detected that you don't have access to write to the system/cache directo
|
|||||||
|
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
.console {
|
.console {
|
||||||
font-family:Courier;
|
font-family: Courier,serif;
|
||||||
color: #CCCCCC;
|
color: #CCCCCC;
|
||||||
background: #000000;
|
background: #000000;
|
||||||
border: 3px double #CCCCCC;
|
border: 3px double #CCCCCC;
|
||||||
padding: 0px;
|
padding: 0;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@@ -82,6 +82,7 @@ if(!$error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if($saved) {
|
if($saved) {
|
||||||
|
success($locale['step_database_config_saved']);
|
||||||
if(!$error) {
|
if(!$error) {
|
||||||
$_SESSION['saved'] = true;
|
$_SESSION['saved'] = true;
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
define('MYAAC_INSTALL', true);
|
||||||
|
|
||||||
require_once '../../common.php';
|
require_once '../../common.php';
|
||||||
|
|
||||||
require SYSTEM . 'functions.php';
|
require SYSTEM . 'functions.php';
|
||||||
|
@@ -1,4 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
define('MYAAC_INSTALL', true);
|
||||||
|
|
||||||
require_once '../../common.php';
|
require_once '../../common.php';
|
||||||
|
|
||||||
require SYSTEM . 'functions.php';
|
require SYSTEM . 'functions.php';
|
||||||
|
@@ -4,15 +4,26 @@ server {
|
|||||||
index index.php;
|
index index.php;
|
||||||
server_name your-domain.com;
|
server_name your-domain.com;
|
||||||
|
|
||||||
|
# increase max file upload
|
||||||
|
client_max_body_size 10M;
|
||||||
|
|
||||||
|
# this is very important, be sure its in your nginx conf - it prevents access to logs etc.
|
||||||
location ~ /system {
|
location ~ /system {
|
||||||
deny all;
|
deny all;
|
||||||
return 404;
|
return 404;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# block .htaccess
|
||||||
location ~ /\.ht {
|
location ~ /\.ht {
|
||||||
deny all;
|
deny all;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# block git files and folders
|
||||||
|
location ~ /\.git {
|
||||||
|
return 404;
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
try_files $uri $uri/ /index.php;
|
try_files $uri $uri/ /index.php;
|
||||||
}
|
}
|
||||||
@@ -20,6 +31,7 @@ server {
|
|||||||
location ~ \.php$ {
|
location ~ \.php$ {
|
||||||
include snippets/fastcgi-php.conf;
|
include snippets/fastcgi-php.conf;
|
||||||
fastcgi_read_timeout 240;
|
fastcgi_read_timeout 240;
|
||||||
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
|
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
|
||||||
|
# for ubuntu 22.04+ it will be php8.1-fpm.-sock
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -1,11 +1,3 @@
|
|||||||
<IfModule mod_autoindex.c>
|
<IfModule mod_autoindex.c>
|
||||||
Options -Indexes
|
Options -Indexes
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
<IfVersion < 2.4>
|
|
||||||
order allow,deny
|
|
||||||
deny from all
|
|
||||||
</IfVersion>
|
|
||||||
<IfVersion >= 2.4>
|
|
||||||
Require all denied
|
|
||||||
</IfVersion>
|
|
||||||
|
@@ -61,8 +61,8 @@ class OTS_MonstersList implements Iterator, Countable, ArrayAccess
|
|||||||
|
|
||||||
// check if monsters.xml exist
|
// check if monsters.xml exist
|
||||||
if(!@file_exists($this->monstersPath . 'monsters.xml')) {
|
if(!@file_exists($this->monstersPath . 'monsters.xml')) {
|
||||||
log_append('error.log', '[OTS_MonstersList.php] Fatal error: Cannot load monsters.xml. File does not exist. (' . $this->monstersPath . 'monsters.xml' . '). Error: ' . print_r(error_get_last(), true));
|
log_append('error.log', '[OTS_MonstersList.php] Fatal error: Cannot load monsters.xml. File does not exist. (' . $this->monstersPath . 'monsters.xml' . ').');
|
||||||
throw new Exception('Error: Cannot load monsters.xml. File not found. More info in system/logs/error.log file.');
|
throw new Exception('Error: Cannot load monsters.xml. File not found.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// loads monsters mapping file
|
// loads monsters mapping file
|
||||||
@@ -174,6 +174,7 @@ class OTS_MonstersList implements Iterator, Countable, ArrayAccess
|
|||||||
* @return OTS_Monster Monster.
|
* @return OTS_Monster Monster.
|
||||||
* @throws DOMException On DOM operation error.
|
* @throws DOMException On DOM operation error.
|
||||||
*/
|
*/
|
||||||
|
#[\ReturnTypeWillChange]
|
||||||
public function current()
|
public function current()
|
||||||
{
|
{
|
||||||
return $this->getMonster( key($this->monsters) );
|
return $this->getMonster( key($this->monsters) );
|
||||||
@@ -187,7 +188,7 @@ class OTS_MonstersList implements Iterator, Countable, ArrayAccess
|
|||||||
/**
|
/**
|
||||||
* Moves to next iterator monster.
|
* Moves to next iterator monster.
|
||||||
*/
|
*/
|
||||||
public function next()
|
public function next(): void
|
||||||
{
|
{
|
||||||
next($this->monsters);
|
next($this->monsters);
|
||||||
}
|
}
|
||||||
@@ -197,6 +198,7 @@ class OTS_MonstersList implements Iterator, Countable, ArrayAccess
|
|||||||
*
|
*
|
||||||
* @return string Current position key.
|
* @return string Current position key.
|
||||||
*/
|
*/
|
||||||
|
#[\ReturnTypeWillChange]
|
||||||
public function key()
|
public function key()
|
||||||
{
|
{
|
||||||
return key($this->monsters);
|
return key($this->monsters);
|
||||||
@@ -207,7 +209,7 @@ class OTS_MonstersList implements Iterator, Countable, ArrayAccess
|
|||||||
*
|
*
|
||||||
* @return bool If iterator has anything more.
|
* @return bool If iterator has anything more.
|
||||||
*/
|
*/
|
||||||
public function valid()
|
public function valid(): bool
|
||||||
{
|
{
|
||||||
return key($this->monsters) !== null;
|
return key($this->monsters) !== null;
|
||||||
}
|
}
|
||||||
@@ -215,7 +217,7 @@ class OTS_MonstersList implements Iterator, Countable, ArrayAccess
|
|||||||
/**
|
/**
|
||||||
* Resets iterator index.
|
* Resets iterator index.
|
||||||
*/
|
*/
|
||||||
public function rewind()
|
public function rewind(): void
|
||||||
{
|
{
|
||||||
reset($this->monsters);
|
reset($this->monsters);
|
||||||
}
|
}
|
||||||
@@ -226,6 +228,7 @@ class OTS_MonstersList implements Iterator, Countable, ArrayAccess
|
|||||||
* @param string $offset Array key.
|
* @param string $offset Array key.
|
||||||
* @return bool True if it's set.
|
* @return bool True if it's set.
|
||||||
*/
|
*/
|
||||||
|
#[\ReturnTypeWillChange]
|
||||||
public function offsetExists($offset)
|
public function offsetExists($offset)
|
||||||
{
|
{
|
||||||
return isset($this->monsters[$offset]);
|
return isset($this->monsters[$offset]);
|
||||||
@@ -239,6 +242,7 @@ class OTS_MonstersList implements Iterator, Countable, ArrayAccess
|
|||||||
* @return OTS_Monster Monster instance.
|
* @return OTS_Monster Monster instance.
|
||||||
* @throws DOMException On DOM operation error.
|
* @throws DOMException On DOM operation error.
|
||||||
*/
|
*/
|
||||||
|
#[\ReturnTypeWillChange]
|
||||||
public function offsetGet($offset)
|
public function offsetGet($offset)
|
||||||
{
|
{
|
||||||
return $this->getMonster($offset);
|
return $this->getMonster($offset);
|
||||||
@@ -251,6 +255,7 @@ class OTS_MonstersList implements Iterator, Countable, ArrayAccess
|
|||||||
* @param mixed $value Field value.
|
* @param mixed $value Field value.
|
||||||
* @throws E_OTS_ReadOnly Always - this class is read-only.
|
* @throws E_OTS_ReadOnly Always - this class is read-only.
|
||||||
*/
|
*/
|
||||||
|
#[\ReturnTypeWillChange]
|
||||||
public function offsetSet($offset, $value)
|
public function offsetSet($offset, $value)
|
||||||
{
|
{
|
||||||
throw new E_OTS_ReadOnly();
|
throw new E_OTS_ReadOnly();
|
||||||
@@ -262,6 +267,7 @@ class OTS_MonstersList implements Iterator, Countable, ArrayAccess
|
|||||||
* @param string|int $offset Array key.
|
* @param string|int $offset Array key.
|
||||||
* @throws E_OTS_ReadOnly Always - this class is read-only.
|
* @throws E_OTS_ReadOnly Always - this class is read-only.
|
||||||
*/
|
*/
|
||||||
|
#[\ReturnTypeWillChange]
|
||||||
public function offsetUnset($offset)
|
public function offsetUnset($offset)
|
||||||
{
|
{
|
||||||
throw new E_OTS_ReadOnly();
|
throw new E_OTS_ReadOnly();
|
||||||
|
@@ -398,7 +398,7 @@ class OTS_Player extends OTS_Row_DAO
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 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'] . $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']);
|
$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->db->quote($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
|
||||||
|
@@ -95,8 +95,8 @@ class OTS_SpellsList implements IteratorAggregate, Countable
|
|||||||
{
|
{
|
||||||
// check if spells.xml exist
|
// check if spells.xml exist
|
||||||
if(!@file_exists($file)) {
|
if(!@file_exists($file)) {
|
||||||
log_append('error.log', '[OTS_SpellsList.php] Fatal error: Cannot load spells.xml. File does not exist. (' . $file . '). Error: ' . print_r(error_get_last(), true));
|
log_append('error.log', '[OTS_SpellsList.php] Fatal error: Cannot load spells.xml. File does not exist. (' . $file . ').');
|
||||||
throw new Exception('Error: Cannot load spells.xml. File not found. More info in system/logs/error.log file.');
|
throw new Exception('Error: Cannot load spells.xml. File not found.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// loads monsters mapping file
|
// loads monsters mapping file
|
||||||
@@ -308,7 +308,7 @@ class OTS_SpellsList implements IteratorAggregate, Countable
|
|||||||
* @since 0.1.5
|
* @since 0.1.5
|
||||||
* @return AppendIterator Iterator for all spells.
|
* @return AppendIterator Iterator for all spells.
|
||||||
*/
|
*/
|
||||||
public function getIterator()
|
public function getIterator(): Traversable
|
||||||
{
|
{
|
||||||
$iterator = new AppendIterator();
|
$iterator = new AppendIterator();
|
||||||
$iterator->append( new ArrayIterator($this->runes) );
|
$iterator->append( new ArrayIterator($this->runes) );
|
||||||
|
@@ -20,7 +20,7 @@ $locale['not_loaded'] = 'Not loaded';
|
|||||||
$locale['loading_spinner'] = 'Please wait, installing...';
|
$locale['loading_spinner'] = 'Please wait, installing...';
|
||||||
$locale['importing_spinner'] = 'Please wait, importing data...';
|
$locale['importing_spinner'] = 'Please wait, importing data...';
|
||||||
$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. If you want to reinstall MyAAC - please delete <strong>config.local.php</strong> file from the main directory and refresh the page.';
|
$locale['already_installed'] = 'MyAAC has been already installed. Please delete <b>install/</b> directory. If you want to reinstall MyAAC - please delete <strong>config.local.php</strong> file from the main directory and refresh the page.';
|
||||||
|
|
||||||
// welcome
|
// welcome
|
||||||
$locale['step_welcome'] = 'Welcome';
|
$locale['step_welcome'] = 'Welcome';
|
||||||
@@ -63,6 +63,7 @@ $locale['step_config_usage_desc'] = 'Allow MyAAC to report anonymous usage stati
|
|||||||
$locale['step_database'] = 'Import schema';
|
$locale['step_database'] = 'Import schema';
|
||||||
$locale['step_database_title'] = 'Import MySQL schema';
|
$locale['step_database_title'] = 'Import MySQL schema';
|
||||||
$locale['step_database_importing'] = 'Your database is MySQL. Database name is: "$DATABASE_NAME$". Importing schema now...';
|
$locale['step_database_importing'] = 'Your database is MySQL. Database name is: "$DATABASE_NAME$". Importing schema now...';
|
||||||
|
$locale['step_database_config_saved'] = 'Local configuration has been saved into file: config.local.php';
|
||||||
$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.lua file. Is your server path correct? Go back and check again.';
|
$locale['step_database_error_config'] = 'Cannot find config.lua 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_database_empty'] = 'Cannot determine database type from config.lua. Your OTS is unsupported by this AAC.';
|
||||||
|
@@ -59,6 +59,7 @@ $locale['step_config_usage_desc'] = 'Zezwalaj MyAAC na raportowanie anonimowych
|
|||||||
$locale['step_database'] = 'Baza Danych';
|
$locale['step_database'] = 'Baza Danych';
|
||||||
$locale['step_database_title'] = 'Baza MySQL';
|
$locale['step_database_title'] = 'Baza MySQL';
|
||||||
$locale['step_database_importing'] = 'Twoja baza to MySQL. Nazwa bazy danych to: "$DATABASE_NAME$". Importowanie schematu...';
|
$locale['step_database_importing'] = 'Twoja baza to MySQL. Nazwa bazy danych to: "$DATABASE_NAME$". Importowanie schematu...';
|
||||||
|
$locale['step_database_config_saved'] = 'Lokalna konfiguracja została zapisana do pliku: config.local.php';
|
||||||
$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.lua. Czy ścieżka do katalogu serwera jest poprawna? Wróć się i sprawdź ponownie.';
|
$locale['step_database_error_config'] = 'Nie można znaleźć pliku config.lua. Czy ścieżka do katalogu serwera jest poprawna? Wróć się i sprawdź ponownie.';
|
||||||
$locale['step_database_error_database_empty'] = 'Nie można wykryć typu bazy danych z pliku config.lua. Prawdopodobnie Twój OTS nie jest wspierany przez ten AAC.';
|
$locale['step_database_error_database_empty'] = 'Nie można wykryć typu bazy danych z pliku config.lua. Prawdopodobnie Twój OTS nie jest wspierany przez ten AAC.';
|
||||||
|
@@ -42,13 +42,12 @@ $locale['step_config'] = 'Konfiguration';
|
|||||||
$locale['step_config_title'] = 'Grundläggande konfiguration';
|
$locale['step_config_title'] = 'Grundläggande konfiguration';
|
||||||
$locale['step_config_server_path'] = 'Server mapp';
|
$locale['step_config_server_path'] = 'Server mapp';
|
||||||
$locale['step_config_server_path_desc'] = 'Mappen som innhåller exe filen till The Forgotten Server, där du har din config.lua.';
|
$locale['step_config_server_path_desc'] = 'Mappen som innhåller exe filen till The Forgotten Server, där du har din config.lua.';
|
||||||
|
|
||||||
$locale['step_config_mail_admin'] = 'Admin E-Post';
|
$locale['step_config_mail_admin'] = 'Admin E-Post';
|
||||||
$locale['step_config_mail_admin_desc'] = 'Adress där E-Post från kontaktförmolär kommer att leveraras, till exempel admin@gmail.com';
|
$locale['step_config_mail_admin_desc'] = 'Adress där E-Post från kontaktförmolär kommer att leveraras, till exempel admin@gmail.com';
|
||||||
|
|
||||||
$locale['step_config_mail_admin_error'] = 'Admin E-Post är inte korrekt.';
|
$locale['step_config_mail_admin_error'] = 'Admin E-Post är inte korrekt.';
|
||||||
$locale['step_config_mail_address'] = 'Server E-Post';
|
$locale['step_config_mail_address'] = 'Server E-Post';
|
||||||
$locale['step_config_mail_address_desc'] = 'Adress som kommer att användas för utgående email (från:), till exempel no-reply@your-server.org';
|
$locale['step_config_mail_address_desc'] = 'Adress som kommer att användas för utgående email (från:), till exempel no-reply@your-server.org';
|
||||||
|
|
||||||
$locale['step_config_mail_address_error'] = 'Server E-Post är inte korrekt.';
|
$locale['step_config_mail_address_error'] = 'Server E-Post är inte korrekt.';
|
||||||
$locale['step_config_client'] = 'Klientversion';
|
$locale['step_config_client'] = 'Klientversion';
|
||||||
$locale['step_config_client_desc'] = 'Används för nerladdningssidan och teman.';
|
$locale['step_config_client_desc'] = 'Används för nerladdningssidan och teman.';
|
||||||
|
@@ -147,9 +147,10 @@ if($player->isLoaded() && !$player->isDeleted())
|
|||||||
if($config['characters']['skills'])
|
if($config['characters']['skills'])
|
||||||
{
|
{
|
||||||
if($db->hasColumn('players', 'skill_fist')) {// tfs 1.0+
|
if($db->hasColumn('players', 'skill_fist')) {// tfs 1.0+
|
||||||
$skills_db = $db->query('SELECT `skill_fist`, `skill_club`, `skill_sword`, `skill_axe`, `skill_dist`, `skill_shielding`, `skill_fishing` FROM `players` WHERE `id` = ' . $player->getId())->fetch();
|
$skills_db = $db->query('SELECT `maglevel`, `skill_fist`, `skill_club`, `skill_sword`, `skill_axe`, `skill_dist`, `skill_shielding`, `skill_fishing` FROM `players` WHERE `id` = ' . $player->getId())->fetch();
|
||||||
|
|
||||||
$skill_ids = array(
|
$skill_ids = array(
|
||||||
|
POT::SKILL_MAGIC => 'maglevel',
|
||||||
POT::SKILL_FIST => 'skill_fist',
|
POT::SKILL_FIST => 'skill_fist',
|
||||||
POT::SKILL_CLUB => 'skill_club',
|
POT::SKILL_CLUB => 'skill_club',
|
||||||
POT::SKILL_SWORD => 'skill_sword',
|
POT::SKILL_SWORD => 'skill_sword',
|
||||||
|
@@ -17,6 +17,10 @@ $status['lastCheck'] = 0;
|
|||||||
$status['uptime'] = '0h 0m';
|
$status['uptime'] = '0h 0m';
|
||||||
$status['monsters'] = 0;
|
$status['monsters'] = 0;
|
||||||
|
|
||||||
|
if(config('status_enabled') === false) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$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'];
|
||||||
|
6
system/templates/account.back_button.html.twig
Normal file
6
system/templates/account.back_button.html.twig
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{% if new_line is defined and new_line %}
|
||||||
|
<br/>
|
||||||
|
{% endif %}
|
||||||
|
<form action="{% if action is not defined %}{{ getLink('account/manage') }}{% else %}{{ action }}{% endif %}" method="post">
|
||||||
|
{{ include('buttons.back.html.twig') }}
|
||||||
|
</form>
|
@@ -8,8 +8,8 @@
|
|||||||
<meta name="description" content="myaac">
|
<meta name="description" content="myaac">
|
||||||
<meta name="generator" content="MyAAC">
|
<meta name="generator" content="MyAAC">
|
||||||
|
|
||||||
<link rel="stylesheet" href="/tools/css/messages.css">
|
<link rel="stylesheet" href="tools/css/messages.css">
|
||||||
<link rel="shortcut icon" href="/images/error.ico">
|
<link rel="shortcut icon" href="images/error.ico">
|
||||||
<base href="{{ BASE_URL }}" />
|
<base href="{{ BASE_URL }}" />
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="/tools/js/html5shiv.js"></script>
|
<script src="tools/js/html5shiv.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
<img src="{{ constant('BASE_URL') }}images/loading_spinner.gif" height="32" width="32"/>
|
<img src="{{ constant('BASE_URL') }}images/loading_spinner.gif" height="32" width="32"/>
|
||||||
{{ message }}
|
{{ message }}
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript" src="tools/installer.js"></script>
|
<script type="text/javascript" src="{{ constant('BASE_URL') }}install/tools/installer.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(function() {
|
$(function() {
|
||||||
performInstall('{{ url }}');
|
performInstall('{{ url }}');
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
<tr bgcolor="{{ getStyle(i) }}">
|
<tr bgcolor="{{ getStyle(i) }}">
|
||||||
<td width=4%>
|
<td width=4%>
|
||||||
<div style="text-align:center">
|
<div style="text-align:center">
|
||||||
<img src="{{ template_path }}/images/news/icon_{{ news.icon_id }}_small.gif"/>
|
<img src="{{ constant('BASE_URL') }}images/news/icon_{{ news.icon_id }}_small.gif"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ news.date|date('j.n.Y') }}</td>
|
<td>{{ news.date|date('j.n.Y') }}</td>
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
|
<span class="CaptionEdgeRightBottom" style="background-image:url({{ template_path }}/images/content/box-frame-edge.gif);"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<table class="Table1" cellpadding="0" cellspacing="0" style="background-color: {{ config.lightborder }}">
|
<table class="Table5" cellpadding="0" cellspacing="0" style="background-color: {{ config.lightborder }}">
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div class="InnerTableContainer">
|
<div class="InnerTableContainer">
|
||||||
|
@@ -14,6 +14,8 @@ $twig = new Twig_Environment($twig_loader, array(
|
|||||||
'debug' => $dev_mode
|
'debug' => $dev_mode
|
||||||
));
|
));
|
||||||
|
|
||||||
|
$twig_loader->addPath(PLUGINS);
|
||||||
|
|
||||||
if($dev_mode) {
|
if($dev_mode) {
|
||||||
$twig->addExtension(new Twig_DebugExtension());
|
$twig->addExtension(new Twig_DebugExtension());
|
||||||
}
|
}
|
||||||
|
@@ -1486,6 +1486,25 @@ img {
|
|||||||
width: 135px;
|
width: 135px;
|
||||||
z-index: 20;
|
z-index: 20;
|
||||||
}
|
}
|
||||||
|
.BigButtonText {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 135px;
|
||||||
|
height: 25px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
background: 0 0;
|
||||||
|
border: none;
|
||||||
|
text-align: center;
|
||||||
|
color: #ffd18c;
|
||||||
|
font-family: Verdana,Arial,Times New Roman,sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 400;
|
||||||
|
z-index: 20;
|
||||||
|
text-shadow: -1px -1px 0 #000,0 -1px 0 #000,1px -1px 0 #000,1px 0 0 #000,1px 1px 0 #000,0 1px 0 #000,-1px 1px 0 #000,-1px 0 0 #000
|
||||||
|
}
|
||||||
.TopButtonContainer {
|
.TopButtonContainer {
|
||||||
position: relative;
|
position: relative;
|
||||||
right: 4px;
|
right: 4px;
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
{% spaceless %}
|
{% spaceless %}
|
||||||
<div class="BigButton" style="background-image:url({{ template_path }}/images/global/buttons/sbutton.gif)">
|
<div class="BigButton" style="background-image:url({{ template_path }}/images/global/buttons/button_blue.gif)">
|
||||||
<div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);">
|
<div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);">
|
||||||
<div class="BigButtonOver" style="background-image:url({{ template_path }}/images/global/buttons/sbutton_over.gif);" ></div>
|
<div class="BigButtonOver" style="background-image:url({{ template_path }}/images/global/buttons/{% if button_color is defined and button_color == 'green' %}button_green{% else %}button_blue_over{% endif %}.gif);" ></div>
|
||||||
<input class="ButtonText" type="image" name="{{ button_name }}" alt="{{ button_name }}" src="{{ template_path }}/images/global/buttons/{{ button_image }}.gif" />
|
<input class="BigButtonText" type="submit" value="{{ button_name }}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endspaceless %}
|
{% endspaceless %}
|
BIN
templates/tibiacom/images/global/buttons/button_blue.gif
Normal file
BIN
templates/tibiacom/images/global/buttons/button_blue.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
BIN
templates/tibiacom/images/global/buttons/button_blue_over.gif
Normal file
BIN
templates/tibiacom/images/global/buttons/button_blue_over.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 443 B |
Reference in New Issue
Block a user