Compare commits
92 Commits
feature/re
...
v0.7.11
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8af9186098 | ||
|
|
2d427601ee | ||
|
|
454d4b088d | ||
|
|
738bfbfa5c | ||
|
|
03223c1c30 | ||
|
|
3c6f44d6ee | ||
|
|
dacc5b9dab | ||
|
|
a4bccbaa34 | ||
|
|
174054237b | ||
|
|
bcc81fa34f | ||
|
|
ba1c5e9b2e | ||
|
|
0129c79580 | ||
|
|
c863ad460a | ||
|
|
cb08e53103 | ||
|
|
d5cc2a1090 | ||
|
|
6ba8d2c9cb | ||
|
|
668e4688c4 | ||
|
|
bd19b8665a | ||
|
|
c5980f2350 | ||
|
|
6c03984f53 | ||
|
|
ecd865f275 | ||
|
|
5f1392e9f4 | ||
|
|
d6c10d277d | ||
|
|
815b1f9b5b | ||
|
|
66568fbaf1 | ||
|
|
18b6404e75 | ||
|
|
17b1f9a391 | ||
|
|
14137221fd | ||
|
|
ed4a166d6c | ||
|
|
8df12e3d9c | ||
|
|
e2a625efd2 | ||
|
|
5b3237770b | ||
|
|
4ffb6cf8eb | ||
|
|
2c12ef93aa | ||
|
|
d17c18cabc | ||
|
|
eeb09ddce6 | ||
|
|
28683d66ee | ||
|
|
7d2e522d2b | ||
|
|
3fc2bef7c9 | ||
|
|
fade78efc1 | ||
|
|
d04f2b7965 | ||
|
|
a9f205f047 | ||
|
|
956f631750 | ||
|
|
f01428da48 | ||
|
|
7351ab4436 | ||
|
|
d9510b01ba | ||
|
|
79589ed1f4 | ||
|
|
67590e13a6 | ||
|
|
1e3aef211e | ||
|
|
cda8191f79 | ||
|
|
b91d3e70cc | ||
|
|
94e4ff313c | ||
|
|
2295d270f5 | ||
|
|
a4a829a7c2 | ||
|
|
f5aae3361f | ||
|
|
736ec61f85 | ||
|
|
1385189838 | ||
|
|
bfa563285a | ||
|
|
d0f6670e98 | ||
|
|
ac701696d3 | ||
|
|
702e29a5cb | ||
|
|
f26c334d47 | ||
|
|
75e55bfaee | ||
|
|
0d85b63d5d | ||
|
|
14920a7193 | ||
|
|
5547fd7895 | ||
|
|
34cb1b1ffa | ||
|
|
4ffe4ab9b7 | ||
|
|
bcf054104c | ||
|
|
9fafa110bb | ||
|
|
35acec1be5 | ||
|
|
f157402fa3 | ||
|
|
513e8f4b30 | ||
|
|
35a5aafbb5 | ||
|
|
73a5e13006 | ||
|
|
bcb0feea1a | ||
|
|
774e789c8a | ||
|
|
db25d38f4b | ||
|
|
4b81213662 | ||
|
|
a860c95975 | ||
|
|
e2de0b1440 | ||
|
|
8b2ad2cf2f | ||
|
|
88a320530c | ||
|
|
6e221fe469 | ||
|
|
679e08ec11 | ||
|
|
603495ca97 | ||
|
|
4c6af13574 | ||
|
|
3fcbd42445 | ||
|
|
e6d2e363d5 | ||
|
|
0a067577a3 | ||
|
|
a5b599088a | ||
|
|
51ba514d2a |
@@ -1,19 +0,0 @@
|
|||||||
# EditorConfig is awesome: https://EditorConfig.org
|
|
||||||
|
|
||||||
# top-most EditorConfig file
|
|
||||||
root = true
|
|
||||||
|
|
||||||
# with a newline ending every file
|
|
||||||
[*]
|
|
||||||
indent_style = tab
|
|
||||||
indent_size = 4
|
|
||||||
insert_final_newline = true
|
|
||||||
|
|
||||||
[*.md]
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
|
|
||||||
[{composer.json,package.json}]
|
|
||||||
indent_style = space
|
|
||||||
|
|
||||||
[package.json]
|
|
||||||
indent_size = 2
|
|
||||||
8
.gitattributes
vendored
@@ -1,10 +1,4 @@
|
|||||||
* text=auto
|
* text=auto
|
||||||
.gitattributes export-ignore
|
.gitattributes export-ignore
|
||||||
.gitignore export-ignore
|
.gitignore export-ignore
|
||||||
.github export-ignore
|
_config.yml export-ignore
|
||||||
.editorconfig export-ignore
|
|
||||||
.travis.yml export-ignore
|
|
||||||
_config.yml export-ignore
|
|
||||||
release.sh export-ignore
|
|
||||||
|
|
||||||
*.sh text eol=lf
|
|
||||||
12
.github/FUNDING.yml
vendored
@@ -1,12 +0,0 @@
|
|||||||
# These are supported funding model platforms
|
|
||||||
|
|
||||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
|
||||||
patreon: # Replace with a single Patreon username
|
|
||||||
open_collective: # Replace with a single Open Collective username
|
|
||||||
ko_fi: # Replace with a single Ko-fi username
|
|
||||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
|
||||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
|
||||||
liberapay: # Replace with a single Liberapay username
|
|
||||||
issuehunt: # Replace with a single IssueHunt username
|
|
||||||
otechie: # Replace with a single Otechie username
|
|
||||||
custom: paypal.me/slawkens # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
|
||||||
29
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,29 +0,0 @@
|
|||||||
<!--
|
|
||||||
Please use this issue tracker only for reporting MyAAC bugs.
|
|
||||||
|
|
||||||
If you need support, please use the discord server:
|
|
||||||
|
|
||||||
- https://discord.gg/2J39Wus (we have an own channel named #my-aac there)
|
|
||||||
|
|
||||||
or use otland support boards:
|
|
||||||
|
|
||||||
- https://otland.net/forums/support.16/
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
### Server configuration
|
|
||||||
- Operating System:
|
|
||||||
- Web Server (+ version):
|
|
||||||
- PHP Version:
|
|
||||||
- Server name and version (for example: TFS 0.3):
|
|
||||||
- MyAAC Version:
|
|
||||||
|
|
||||||
### Client configuration (Your Computer)
|
|
||||||
|
|
||||||
- Browser:
|
|
||||||
- Operating System:
|
|
||||||
|
|
||||||
### Description:
|
|
||||||
|
|
||||||
|
|
||||||
### Steps To Reproduce:
|
|
||||||
13
.github/workflows/phplint.yml
vendored
@@ -1,13 +0,0 @@
|
|||||||
name: PHP Linting
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
branches: [master, develop]
|
|
||||||
push:
|
|
||||||
branches: [master]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
phplint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- uses: michaelw90/PHP-Lint@master
|
|
||||||
57
.gitignore
vendored
@@ -1,58 +1,3 @@
|
|||||||
Thumbs.db
|
Thumbs.db
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.idea
|
.idea
|
||||||
|
|
||||||
# composer
|
|
||||||
composer.lock
|
|
||||||
vendor
|
|
||||||
|
|
||||||
# npm
|
|
||||||
node_modules
|
|
||||||
|
|
||||||
# created by release.sh
|
|
||||||
releases
|
|
||||||
tmp
|
|
||||||
|
|
||||||
config.local.php
|
|
||||||
|
|
||||||
# all custom templates
|
|
||||||
templates/*
|
|
||||||
!templates/tibiacom
|
|
||||||
!templates/kathrine
|
|
||||||
|
|
||||||
# guild images
|
|
||||||
images/guilds/*
|
|
||||||
!images/guilds/default.gif
|
|
||||||
|
|
||||||
# cache
|
|
||||||
system/cache/*
|
|
||||||
!system/cache/index.html
|
|
||||||
!system/cache/twig/index.html
|
|
||||||
!system/cache/signatures/index.html
|
|
||||||
!system/cache/plugins/index.html
|
|
||||||
|
|
||||||
# logs
|
|
||||||
system/logs/*
|
|
||||||
!system/logs/index.html
|
|
||||||
|
|
||||||
# data
|
|
||||||
system/data/*
|
|
||||||
!system/data/index.html
|
|
||||||
|
|
||||||
# php sessions
|
|
||||||
system/php_sessions/*
|
|
||||||
!system/php_sessions/index.html
|
|
||||||
|
|
||||||
# plugins
|
|
||||||
plugins/*
|
|
||||||
!plugins/.htaccess
|
|
||||||
!plugins/example.json
|
|
||||||
!plugins/account-create-hint.json
|
|
||||||
!plugins/account-create-hint
|
|
||||||
landing
|
|
||||||
|
|
||||||
# system
|
|
||||||
system/functions_custom.php
|
|
||||||
|
|
||||||
# others/rest
|
|
||||||
system/pages/downloads.php
|
|
||||||
19
.htaccess
@@ -1,19 +0,0 @@
|
|||||||
<IfModule mod_autoindex.c>
|
|
||||||
Options -Indexes
|
|
||||||
</IfModule>
|
|
||||||
|
|
||||||
<IfModule mod_negotiation.c>
|
|
||||||
Options -MultiViews
|
|
||||||
</IfModule>
|
|
||||||
|
|
||||||
<IfModule mod_rewrite.c>
|
|
||||||
RewriteEngine On
|
|
||||||
|
|
||||||
# you can put here your myaac root folder
|
|
||||||
# path relative to web root
|
|
||||||
#RewriteBase /myaac/
|
|
||||||
|
|
||||||
RewriteCond %{REQUEST_FILENAME} !-f
|
|
||||||
RewriteCond %{REQUEST_FILENAME} !-d
|
|
||||||
RewriteRule ^.*$ index.php [L]
|
|
||||||
</IfModule>
|
|
||||||
7
.htaccess.dist
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Options -Indexes -MultiViews
|
||||||
|
|
||||||
|
RewriteEngine On
|
||||||
|
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteRule ^.*$ index.php [L]
|
||||||
18
.travis.yml
@@ -1,18 +0,0 @@
|
|||||||
|
|
||||||
language: php
|
|
||||||
php:
|
|
||||||
- 7.1
|
|
||||||
- 7.2
|
|
||||||
- 7.3
|
|
||||||
- 7.4
|
|
||||||
- 8.0
|
|
||||||
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- $HOME/.composer/cache
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- composer require php-parallel-lint/php-parallel-lint --no-suggest --no-progress --no-interaction --no-ansi --quiet --optimize-autoloader
|
|
||||||
|
|
||||||
script:
|
|
||||||
- php vendor/bin/parallel-lint --no-progress --no-colors --exclude vendor --exclude "system/libs/pot/OTS_DB_PDOQuery.php" .
|
|
||||||
474
CHANGELOG.md
@@ -1,9 +1,475 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## [0.9.0 - x.x.2020]
|
## [0.7.11 - 04.05.2019]
|
||||||
|
### Added:
|
||||||
|
* support for some old servers, where arrays are used in config.lua
|
||||||
|
* an additional text to the install page informing that user can reinstall MyAAC by deleting config.local.php
|
||||||
|
|
||||||
### Added
|
### Fixed:
|
||||||
|
* XSS in forum show_thread
|
||||||
|
* guilds - "Add new rank" function
|
||||||
|
* multiple mail recipients when using admin mailer function
|
||||||
|
* Admin Panel - MyAAC logs not shown if servers logs directory doesn't exist (#47)
|
||||||
|
* missing prefix for cache get() and delete() functions
|
||||||
|
* add fatal error message when myaac tables in database do not exist
|
||||||
|
* the mystical defect where "Create Account" button was not highlighted (on the account/manage page)
|
||||||
|
* bug where server_config table does not exist (OTHire as an example)
|
||||||
|
* database_name in Usage_Statistics
|
||||||
|
* forgot to open <head> in install template
|
||||||
|
|
||||||
### Changed
|
### Changed:
|
||||||
|
* do not display software version
|
||||||
|
|
||||||
### Fixed
|
## [0.7.10 - 03.03.2018]
|
||||||
|
### Added:
|
||||||
|
* new configurable: smtp_secure
|
||||||
|
* robots.txt
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
* editing an existing page that had php enabled
|
||||||
|
* chrome bug on save (when editing page) ERR_BLOCKED_BY_XSS_AUDITOR
|
||||||
|
* showing IP and Port in admin panel (#44, by miqueiaspenha)
|
||||||
|
* deleting plugin showing "You don't have rights to delete"
|
||||||
|
* some bug with PHPMailer not finding its language file
|
||||||
|
* default accounts.vote value
|
||||||
|
* saving some really high long ip addresses
|
||||||
|
|
||||||
|
### Changed:
|
||||||
|
* update config.highscores_ids_hidden on install when there are samples already in database
|
||||||
|
* auto add z_polls table on install
|
||||||
|
|
||||||
|
### Internal:
|
||||||
|
* changed mb_strtolower functions to strtolower()
|
||||||
|
* added new function: $hooks->exist($type)
|
||||||
|
|
||||||
|
## [0.7.9 - 13.01.2018]
|
||||||
|
* removed 6mb of trash (some useless things)
|
||||||
|
* (fix) TFS 1.x not showing promoted vocations in highscores
|
||||||
|
* otserv 0.6.x: fixed some warning (on the characters page) and fatal mysql error (on the mango signature)
|
||||||
|
* fixed default stamina on otserv 0.6.x engine (and some others perhaps)
|
||||||
|
* install: change permission check to is_writable
|
||||||
|
* changed highscores_groups_hidden to 3 (for TFS 1.x)
|
||||||
|
* updated background-artwork (tibiacom template) to the latest version, removed other ones
|
||||||
|
|
||||||
|
## [0.7.8 - 12.01.2018]
|
||||||
|
* fixed installation error " call to undefined method OTS_DB_MySQL::hasColumn()"
|
||||||
|
* updated tinymce to the latest (4.7.4) version
|
||||||
|
* enabled emoticons plugin in tinymce :)
|
||||||
|
* some security fixes
|
||||||
|
|
||||||
|
## [0.7.7 - 08.01.2018]
|
||||||
|
* important fix for servers with promotion column (caused player.vocation to be resetted when saving player, for example: on change name, accept invite to guild, leave guild)
|
||||||
|
* immediately reload config.lua when there's change in config.server_path detected
|
||||||
|
* added new forum option: "Enable HTML" (only for moderators)
|
||||||
|
* fixed othire default column value (#26)
|
||||||
|
* fixed saving custom vocations in admin panel (#36)
|
||||||
|
* fixed warning in highscores when vocation doesn't exist
|
||||||
|
* fixed characters page - config.characters.frags "Notice: Use of undefined constant"
|
||||||
|
* fixed getBoolean function when boolean is passed
|
||||||
|
* fixed empty success message on leave guild
|
||||||
|
* fixed displaying premium account days
|
||||||
|
* function OTS_Account:getPremDays will now return -1 if there's freePremium configurable enabled on the server
|
||||||
|
* fixed tr bgcolor in characters view (Frags) (#38)
|
||||||
|
* fixed some warning in guild show
|
||||||
|
* fixed PHP warning about country not existing on online and characters pages
|
||||||
|
* fixed forum bbcode parsing
|
||||||
|
* don't add extra <br/> to the TinyMCE news forum posts
|
||||||
|
* (internal) using $player->getVocationName() where possible instead of older method
|
||||||
|
|
||||||
|
## [0.7.6 - 05.01.2017]
|
||||||
|
* fixed othire account creating/installation
|
||||||
|
* fixed table name players -> players_online
|
||||||
|
* fixed unexpected error logging about email fail
|
||||||
|
* added max_execution_time to the install finish step
|
||||||
|
* some small fix regarding highscores vocation box
|
||||||
|
|
||||||
|
## [0.7.5 - 04.01.2017]
|
||||||
|
* fixed bug on othire with config.account_premium_days
|
||||||
|
* fixed bug on TFS 1.x when online_afk is enabled
|
||||||
|
* warning about leaving news page with changes
|
||||||
|
* added player status to tibiacom top 5 highscores box
|
||||||
|
* save detected country on create account in session
|
||||||
|
* fixed getPremDays and isPremium functions (newest 11.x engines are bugged when it comes to PACC, its not fault of MyAAC)
|
||||||
|
* fix when there are no changelogs or highscores yet
|
||||||
|
* small fix regarding getTopPlayers function which was ignoring $limit variable
|
||||||
|
* fixed news adding when type != ARTICLE
|
||||||
|
* fixed template path finding
|
||||||
|
* fixed displaying article_text when it was empty saved
|
||||||
|
|
||||||
|
## [0.7.4 - 24.12.2017]
|
||||||
|
* fixed mysql fatal error on tibiacom template - top 5 box
|
||||||
|
* fixed displaying of level percent bar on tibian signature
|
||||||
|
* inform user about Twig cache failure on installation, instead of http 500 error
|
||||||
|
* when dir system/cache is not writable by the webserver, then show some nice notice to the user about it instead of http 500 error
|
||||||
|
* remember client version select and usage stats checkbox in session on install
|
||||||
|
* automatically update highscores_ids_hidden for users who installed myaac before (migration)
|
||||||
|
|
||||||
|
## [0.7.3 - 18.12.2017]
|
||||||
|
* auto generate myaac cache & session prefix on install to be unique across installations
|
||||||
|
* fixed hiding shop system menu on tibiacom template when disabled in config
|
||||||
|
* prevent adding duplicated newses with installation
|
||||||
|
* some changes to sample characters: chanced town_id to 1, posx: 1000, posy: 1000, posz: 1000 and default group_id to 1 so you can change in-game outfits and they will be used
|
||||||
|
* added version 772 constant to install client choose (OTHire)
|
||||||
|
* better solution for hidding samples (configurable) - highscores_ids_hidden
|
||||||
|
* fixed account.login redirect not working on tibiacom template
|
||||||
|
* installation: warn about wrong admin account name/id and password
|
||||||
|
* fixed last menu closing in tibiacom template
|
||||||
|
* updated polish locale (translation) on install
|
||||||
|
* (internal) removed some duplicated code on install finish
|
||||||
|
* (internal) renamed installation step files to be in correct order
|
||||||
|
* added TODO file
|
||||||
|
|
||||||
|
## [0.7.1 - 13.12.2017]
|
||||||
|
* added changelog menu item to kathrine template
|
||||||
|
* fixed some php short tag in changelogs page
|
||||||
|
* fixed guild change description back button
|
||||||
|
* removed duplicated "Support List" menu item from tibiacom template
|
||||||
|
* changed some notice when version check is failed
|
||||||
|
* (internal) moved changelog to twig
|
||||||
|
|
||||||
|
## [0.7.0 - 20.11.2017]
|
||||||
|
* moved template menus to database, they're now dynamically loaded
|
||||||
|
* added anonymous usage statistics reporting (only if user agrees, first usage report will be send after 7 days)
|
||||||
|
* you can edit them in Admin Panel under 'Menus' option
|
||||||
|
* you can also add custom links, like http://google.pl
|
||||||
|
* added networks (facebook and twitter) and highscores (top 5) boxes to tibiacom template, configurable in templates/tibiacom/config.php
|
||||||
|
* added news ticker for kathrine template
|
||||||
|
* added featured article to tibiacom template (you can add them with add news button)
|
||||||
|
* added tinymce editor to 'Pages' in admin panel
|
||||||
|
* added links to edit/delete/hide custom page directly from page
|
||||||
|
* update forum post after editing news (when forum post has been created)
|
||||||
|
* enabled code plugin for tinymce which enabled raw html code editing
|
||||||
|
* removed videos pages, as it can be easily added using custom Menus and Pages with insert Media
|
||||||
|
* removed bug_report configurable, its now enabled by default
|
||||||
|
* log some error info when mail cannot be send on account create
|
||||||
|
* twig getLink function will now return with full url (BASE_URL included)
|
||||||
|
* verify install post values directly on config page and display error
|
||||||
|
* updated tinymce to version 4.7.2 (from 4.7.0)
|
||||||
|
* updated phpmailer to version 5.2.26 (from 5.2.23)
|
||||||
|
* (#30) (fix) recovering account on servers that doesn't support salts
|
||||||
|
* (fix) account email confirm function
|
||||||
|
* (fix) showing changelog with urls in Admin Panel
|
||||||
|
* (fix) uninstalling plugin
|
||||||
|
* (fix) polls box in tibiacom template
|
||||||
|
* (fix) remove hooks from db on plugin deinstall
|
||||||
|
* (fix) some weird include possibilities with forum and account actions (verify action name)
|
||||||
|
* (fix) loading hooks from plugin installed from command line
|
||||||
|
* (fix) some changelog PHP Notice warning
|
||||||
|
* (internal) moved uninstall logic to Plugins class
|
||||||
|
* (internal) moved tibiacom boxes to separate directory
|
||||||
|
* (internal) moved news tickers to twig template
|
||||||
|
* (internal) moved Forum class to separate file
|
||||||
|
* (internal) moved deprecated functions to compat.php
|
||||||
|
* (internal) added some compat functions that are used by shop system
|
||||||
|
* (internal) renamed constant TICKET -> TICKER
|
||||||
|
* (internal) shortened message functions
|
||||||
|
|
||||||
|
## [0.6.6 - 22.10.2017]
|
||||||
|
* fixed some php fatal error on spells page
|
||||||
|
* changed spells.vocations field in db size to 300
|
||||||
|
* please reload your spells after this update!
|
||||||
|
|
||||||
|
## [0.6.5 - 21.10.2017]
|
||||||
|
* fixed displaying custom pages
|
||||||
|
* fixed adding new group forum board
|
||||||
|
|
||||||
|
## [0.6.4 - 20.10.2017]
|
||||||
|
* reverted OTS_Account::getLastLogin() cause its used by tibia11-login plugin
|
||||||
|
|
||||||
|
## [0.6.3 - 20.10.2017]
|
||||||
|
* fixed creating account
|
||||||
|
* fixed viewing thread without being logged
|
||||||
|
* fixed showing premium account status
|
||||||
|
|
||||||
|
## [0.6.2 - 20.10.2017]
|
||||||
|
* added forums for guilds and groups
|
||||||
|
* added nice looking menu for my account page in default template
|
||||||
|
* new command line tool: install_plugin.php - can be used to install plugins from command line. Usage: "php install_plugin.php path_to_file"
|
||||||
|
* added new tooltip to view characters equipment item name and monster loot
|
||||||
|
* added items.xml loader class and weapons.xml loader class
|
||||||
|
* minimum PHP version to install AAC is now 5.3.0 cause of Anonymous functions used by Twig
|
||||||
|
* Added 'Are you sure?' popup when uninstalling plugin
|
||||||
|
* added some warnings when plugin json file is incomplete
|
||||||
|
* fixed showing in characters ban expires when is unlimited
|
||||||
|
* fixed displaying monster loot when item.name in loot is used instead of item.id
|
||||||
|
* load also runes into spells table
|
||||||
|
* display plugin uninstall option only if its possible
|
||||||
|
* after changing template you will be redirected to latest viewed page
|
||||||
|
* display gallery add image form only on main gallery page
|
||||||
|
* (internal) moved most of guilds html-in-php code to twig
|
||||||
|
* (internal) moved spells page to twig template
|
||||||
|
* (internal) removed useless spells.spell column that was duplicate of spells.words
|
||||||
|
* (internal) save monster loot in database in json format instead loading it every time from xml file
|
||||||
|
* (internal) store monster voices and immunities in json format
|
||||||
|
* (internal) moved buttons to separate template
|
||||||
|
* (internal) moved online search form to twig
|
||||||
|
* (internal) added new function getItemNameById($id)
|
||||||
|
* (internal) Moved plugin install logic to a new class: Plugins
|
||||||
|
* (internal) changed spells.vocations database field to store json data instead of comma separated
|
||||||
|
* (internal) removed $hook_types array, using defined() and constant() functions now
|
||||||
|
* (internal) removed useless monsters.gfx_name field from database
|
||||||
|
* (internal) renamed database field monsters.hide_creature to hidden
|
||||||
|
* (internal) renamed existing Items class to Items_Images
|
||||||
|
* (internal) optimized Spells class
|
||||||
|
* (internal) new function: OTS_Guild::hasMember(OTS_Player $player)
|
||||||
|
* (internal) new function: Forum::hasAccess($board_id)
|
||||||
|
|
||||||
|
## [0.6.1 - 17.10.2017]
|
||||||
|
* fixed signatures loading
|
||||||
|
* new configurable: session_prefix, to allow more websites on one machine (must be unique for every website on your dedicated server!)
|
||||||
|
* better error handling for monsters and spells loader (save errors to system/logs/error.log)
|
||||||
|
* check if file exist before loading (monsters and spells)
|
||||||
|
* (internal) Account::getAccess() = Account::getGroupId()
|
||||||
|
* (internal) moved account actions (pages) to account/ directory
|
||||||
|
* (internal) moved forum actions (pages) to forum/ directory
|
||||||
|
* (internal) moved forum.edit_post to twig templates
|
||||||
|
|
||||||
|
## [0.6.0 - 16.10.2017]
|
||||||
|
* added faq management - add/edit/move/hide/delete from website
|
||||||
|
* new account.login view for tibiacom template
|
||||||
|
* monsters and spells are now being loaded at the installation of the AAC
|
||||||
|
* fix for php versions under 5.5 where empty() function supported only variables
|
||||||
|
* added missing change email and change info buttons to account.management default template
|
||||||
|
* added new indicator icons for create account, create character and change character name
|
||||||
|
* fixed config loader when some inline comments are present
|
||||||
|
* fixed editing page in admin panel that contains some html code
|
||||||
|
* fixed forum new post on mac os and some specific mysql versions
|
||||||
|
* attempt to fix incorrect views counter behavior (its resetting to 0 in some cases)
|
||||||
|
* enabled cache http headers for signatures
|
||||||
|
* check if monster file exist before loading it
|
||||||
|
* fixed if plugin zip file name contains dot (.)
|
||||||
|
* renamed screenshots to gallery and movies to videos
|
||||||
|
* moved install pages to twig
|
||||||
|
* fixed Account::getGuildAccess function
|
||||||
|
* removed never used library from sources - dwoo
|
||||||
|
* moved check_* functions to class Validator
|
||||||
|
* from now all validators ajax requests will fire onblur instead of onkeyup
|
||||||
|
* ajax requests returns now json instead of xml
|
||||||
|
* added 404 response when file is not found
|
||||||
|
|
||||||
|
## [0.5.1 - 11.10.2017]
|
||||||
|
* fixed forum add/edit board
|
||||||
|
* new configurable: highscores_length, how much highscores to display
|
||||||
|
* fixed highscores links (ALL, previous and next page)
|
||||||
|
* update templates cache when installing/uninstalling plugin
|
||||||
|
* moved character deaths and frags table generation to twig
|
||||||
|
* fixed some bug when you uninstall plugin and then try to install again on the same page
|
||||||
|
* check if plugin exist before uninstalling
|
||||||
|
* fixed some warning in OTS_Base_DB
|
||||||
|
|
||||||
|
## [0.5.0 - 10.10.2017]
|
||||||
|
* moved .htaccess rules to plain php (index.php)
|
||||||
|
* updated tinymce to the latest (4.7.0) version, you can now embed code, for example youtube videos
|
||||||
|
* added option to uninstall plugin
|
||||||
|
* added option to require specified myaac, php or database version for plugins, without that plugin won't be installed
|
||||||
|
* change accountmanagement links to use friendly_urls
|
||||||
|
* fixed creating new forum thread
|
||||||
|
* sample characters are now assigned to admin account and have group_id 4 to not be shown on highscores
|
||||||
|
* added links loaded from database to admin panel - for future plugins
|
||||||
|
* print some info to error.log when can't find config.lua
|
||||||
|
* some fixes in account changecomment action
|
||||||
|
* show info when account name/number or password is empty on login
|
||||||
|
* fixed showing account login errors
|
||||||
|
* added few characters hooks
|
||||||
|
* fixed some kathrine template js bug when shop is disabled
|
||||||
|
* you can now use slash '/' in custom pages loaded from database
|
||||||
|
* added new twig function getLink that convert link taking into account config.friendly_urls
|
||||||
|
* internalLayoutLink -> getLink
|
||||||
|
|
||||||
|
## [0.4.3 - 05.10.2017]
|
||||||
|
* better config loader taken from latest gesior, you can now include files in your config by doing dofile('config.local.lua')
|
||||||
|
* fixed country detection in create account
|
||||||
|
* fixed showing of character deaths and frags
|
||||||
|
* fixed https://otland.net/threads/myaac-v0-0-1.251454/page-13#post-2466303
|
||||||
|
* fixed https://otland.net/threads/myaac-v0-0-1.251454/page-13#post-2466313
|
||||||
|
* fixed rook sample, which will now have level 1, 150 health, 0 mana, and 400 cap.
|
||||||
|
* fixed samples being deleted by tfs 1.0+ cause of 'deletion' field set to 1
|
||||||
|
* pages loaded from database have higher priority than normal .php pages, so they will be loaded first if they exist
|
||||||
|
* moved many pages to twig templates
|
||||||
|
* change download client links from clients.halfaway.net to tibia-clients.com
|
||||||
|
* added bugtracker to kathrine template
|
||||||
|
* added CREDITS file
|
||||||
|
|
||||||
|
## [0.4.2 - 14.09.2017]
|
||||||
|
* updated version number
|
||||||
|
|
||||||
|
## [0.4.1 - 13.09.2017]
|
||||||
|
* fixed log in to admin panel
|
||||||
|
* fixed File is not .zip plugin upload error
|
||||||
|
|
||||||
|
## [0.4.0 - 13.09.2017
|
||||||
|
* added option to add/edit/delete/hide/move forum boards
|
||||||
|
* moved some of HTML-in-PHP code to Twig templates
|
||||||
|
* added bug_report configurable which can enable/disable bug tracker
|
||||||
|
* log errors instead of showing them to users with system directories
|
||||||
|
* fix when $_SERVER['HTTP_ACCEPT_ENCODING'] is not set
|
||||||
|
* when it fails to load config.lua it will output error also to error.log
|
||||||
|
* automatically detect json file in .zip instead of basing on filename (admin panel - plugins)
|
||||||
|
* hopefully fixed the error with "The file you are trying to upload is not a .zip file. Please try again."
|
||||||
|
* fixed wrong name of table in bugtracker
|
||||||
|
* fixed some bugs in bugtracker
|
||||||
|
* added report bug link in templates
|
||||||
|
* fixed some rare error when user is logged in for longer than 15 minutes and tries to login again
|
||||||
|
* fixed some grammar errors
|
||||||
|
* some small improvements
|
||||||
|
* fixed some separators in kathrine template
|
||||||
|
|
||||||
|
## [0.3.0 - 28.08.2017]
|
||||||
|
* added administration panel for screenshots management with auto thumbnail generator and image auto-resizing
|
||||||
|
* added Twig template engine and moved some html-in-php code to it
|
||||||
|
* automatically detect player country based on user location (IP) on create account
|
||||||
|
* player sex (gender) is now configurable at $config['genders']
|
||||||
|
* fixed recovering account and changing password when salt is enabled
|
||||||
|
* fixed installing samples when for example Rook Sample already exist and other samples not
|
||||||
|
* fixed some mysql error when character you trying to create already exist
|
||||||
|
* fixed some warning when you select nonexistent country
|
||||||
|
* password change minimal/maximal length notice is now more precise
|
||||||
|
* added 'enabled' field in myaac_hooks table, which can enable or disable specified hook
|
||||||
|
* removed DEFAULT '' for TEXT field. It didn't worked under some systems like MAC OS X.
|
||||||
|
* minimum PHP version to install the MyAAC is now 5.2.0 cause of pathinfo (extension) function
|
||||||
|
* removed unused admin stylish template
|
||||||
|
* removed some unused cities field from myaac_spells table
|
||||||
|
* moved news adding at installation from schema.sql to finish.php
|
||||||
|
* some optimizations
|
||||||
|
|
||||||
|
## [0.2.4 - 09.06.2017]
|
||||||
|
* fixed invite to guild
|
||||||
|
* added id field on monsters, so you can delete them in phpmyadmin
|
||||||
|
* fixed adding some creatures with ' and "
|
||||||
|
* fixed when there are spaces at beginning of the file (creatures)
|
||||||
|
* fixed when file is unable to parse (creatures)
|
||||||
|
* fixed typo loss_items => loss_containers
|
||||||
|
* more elegant way of showing message on reload creatures and spells
|
||||||
|
|
||||||
|
## [0.2.3 - 31.05.2017]
|
||||||
|
* fixed guild management on OTHire 0.0.3
|
||||||
|
* set default skills to 10 when creating new character
|
||||||
|
* fixed displaying of "Create forum thread" in newses
|
||||||
|
* fixed deleting guild on servers that use players.rank_id field
|
||||||
|
* fixed phpmailer class loading (https://otland.net/threads/myaac-v0-0-1.251454/page-8#post-2445222)
|
||||||
|
* fixed displaying vocation amount on online page
|
||||||
|
* better support for custom vocations, you just need to set in config vocations_amount to yours.
|
||||||
|
* fixed huge space in player name (https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2444328)
|
||||||
|
* fixed Undefined variable (https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2444034)
|
||||||
|
* fixed Undefined offset (https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2444035)
|
||||||
|
|
||||||
|
## [0.2.2 - 22.05.2017]
|
||||||
|
* added missing cache/signature directory
|
||||||
|
* fixed https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2443868
|
||||||
|
|
||||||
|
## [0.2.1 - 21.05.2017]
|
||||||
|
* added Swedish translation by Sizaro
|
||||||
|
* fixed some bugs with installlation & characters & houses
|
||||||
|
|
||||||
|
## [0.2.0 - 21.05.2017]
|
||||||
|
* added option to change character sex for premium points
|
||||||
|
* moved site_closed to database, now you can close your site through admin panel
|
||||||
|
* added option to admin panel: clear cache
|
||||||
|
* added experiencetable_rows configurable
|
||||||
|
* optimized OTS_Account->getGroupId(), now its using like 20 queries less
|
||||||
|
* optimized OTS_Player->load($id) function, should be much faster now
|
||||||
|
* fixed displaying on highscores special outfits
|
||||||
|
* fixed skull images displaying
|
||||||
|
* fixed displaying unlimited premium account
|
||||||
|
* fixed bug where players.lookaddons doesn't exist (OTHire etc.) (https://otland.net/threads/myaac-v0-0-1.251454/page-6#post-2442407)
|
||||||
|
* fixed signature tibian for OTHire and other servers that doesnt use accounts.premdays field
|
||||||
|
* fixed when player name in signature containst space
|
||||||
|
* don't show "Create forum thread" when editing
|
||||||
|
* fixed red color table after create account
|
||||||
|
* updated download links, as clients.halfaway.net isn't working anymore
|
||||||
|
* fixed some bugs while installing when field `email_next` or `hidden` already exist
|
||||||
|
* fixed movies unexpected comment
|
||||||
|
* added template_place_holder('center_top') to kathrine template
|
||||||
|
|
||||||
|
## [0.1.5 - 13.05.2017]
|
||||||
|
* fixed bug with "Integrity constraint violation: 1048 Column 'ip' cannot be null"
|
||||||
|
|
||||||
|
## [0.1.4 - 13.05.2017]
|
||||||
|
* added outfit shower, in characters, online, and highscores
|
||||||
|
* updated database to version 2
|
||||||
|
* fixed item images (now using item-images.ots.me host by default)
|
||||||
|
* fixed news ticket and posting long newses (https://otland.net/threads/myaac-v0-0-1.251454/page-5#post-2442026)
|
||||||
|
* news body limit increased to 65535 (mysql text field)
|
||||||
|
* removed some unused code from my old server
|
||||||
|
* added spells & monsters to kathrine template
|
||||||
|
|
||||||
|
## [0.1.3 - 11.05.2017]
|
||||||
|
* this is just release to update version number
|
||||||
|
|
||||||
|
## [0.1.2 - 11.05.2017]
|
||||||
|
* forgot to update CHANGELOG and MYAAC_VERSION
|
||||||
|
|
||||||
|
## [0.1.1 - 11.05.2017]
|
||||||
|
* fixed updating myaac_config with database_version to 1
|
||||||
|
* fixed database updater
|
||||||
|
|
||||||
|
## [0.1.0 - 11.05.2017]
|
||||||
|
* added new feature: change character name for premium points (disabled by default, you can enable it in config under account_change_character_name in config.php)
|
||||||
|
* added automatic database updater (data migrations)
|
||||||
|
* renamed events to hooks
|
||||||
|
* moved hooks to database
|
||||||
|
* now you can use hooks in plugins
|
||||||
|
* set account.type field to 5 on install, if TFS 1.0+
|
||||||
|
* added example plugin
|
||||||
|
* new, latest google analytics code
|
||||||
|
* fixed bug with loading account.name that has numbers in it
|
||||||
|
* fixed many bugs in player editor in admin panel
|
||||||
|
* added error handling to plugin manager and some more verification in
|
||||||
|
* file has been correctly unpacked/uploaded
|
||||||
|
* fixed Statistics page in admin panel when using account.number
|
||||||
|
* fixed bug when creating/recovering account on servers with
|
||||||
|
* account.salt field (TFS 0.3 for example)
|
||||||
|
* fixed forum showing thread with html tags (added from news manager)
|
||||||
|
* new, latest code for youtube videos in movies page
|
||||||
|
* fixed showing vocation images when using $config['online_vocations_images']
|
||||||
|
* many fixes in polls (also importing proper schema)
|
||||||
|
* fixed hovering on buttons in kathrine template (on accountmanagement page)
|
||||||
|
* fixed signatures (many fixes)
|
||||||
|
* added missing gesior signature system
|
||||||
|
|
||||||
|
## [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/
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
# 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
@@ -1,3 +1,2 @@
|
|||||||
* Gesior.pl (2007 - 2008)
|
* Gesior.pl (2007 - 2008)
|
||||||
* Slawkens (2009 - 2022)
|
* Slawkens (2009 - 2017)
|
||||||
* Contributors listed in CONTRIBUTORS.txt
|
|
||||||
|
|||||||
57
README.md
@@ -1,26 +1,18 @@
|
|||||||
# [MyAAC](https://my-aac.org)
|
# myaac
|
||||||
|
MyAAC is a free and open-source Automatic Account Creator (AAC) and Content Management System (CMS) written in PHP. It is a fork of the [Gesior](https://github.com/gesior/Gesior2012) project. It supports only MySQL databases.
|
||||||
[](https://travis-ci.org/github/slawkens/myaac)
|
|
||||||
[](https://opensource.org/licenses/gpl-license)
|
|
||||||
[](https://github.com/slawkens/myaac/releases)
|
|
||||||
[](https://github.com/slawkens/myaac/blob/d8b3b4135827ee17e3c6d41f08a925e718c587ed/.travis.yml#L3)
|
|
||||||
[](https://discord.gg/2J39Wus)
|
|
||||||
[](https://github.com/slawkens/myaac/issues?q=is%3Aissue+is%3Aclosed)
|
|
||||||
|
|
||||||
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
|
Official website: https://my-aac.org
|
||||||
|
|
||||||
### Requirements
|
### REQUIREMENTS
|
||||||
|
|
||||||
- PHP 5.6 or later
|
- PHP 5.3.3 or later
|
||||||
- MySQL database
|
- MySQL database
|
||||||
- PDO PHP Extension
|
- PDO PHP Extension
|
||||||
- XML PHP Extension
|
- XML PHP Extension
|
||||||
- ZIP PHP Extension
|
- ZIP PHP Extension
|
||||||
- (optional) mod_rewrite to use friendly_urls
|
- (optional) mod_rewrite to use friendly_urls
|
||||||
|
|
||||||
### Installation
|
### INSTALLATION AND CONFIGURATION
|
||||||
|
|
||||||
Just decompress and untar the source (which you should have done by now,
|
Just decompress and untar the source (which you should have done by now,
|
||||||
if you're reading this), into your webserver's document root.
|
if you're reading this), into your webserver's document root.
|
||||||
@@ -40,40 +32,15 @@ Official website: https://my-aac.org
|
|||||||
|
|
||||||
Visit http://your_domain/install (http://localhost/install) and follow instructions in the browser.
|
Visit http://your_domain/install (http://localhost/install) and follow instructions in the browser.
|
||||||
|
|
||||||
### Configuration
|
### KNOWN PROBLEMS
|
||||||
|
|
||||||
Check *config.php* to get more informations.
|
- none -
|
||||||
Use *config.local.php* for your local configuration changes.
|
|
||||||
|
|
||||||
### Branches
|
### OTHER NOTES
|
||||||
|
|
||||||
This repository follows the Git Flow Workflow.
|
If you have a great idea or want contribute to the project - visit our website at http://www.my-aac.org
|
||||||
Cheatsheet: [Git-Flow-Cheetsheet](https://danielkummer.github.io/git-flow-cheatsheet)
|
|
||||||
|
|
||||||
That means, we use:
|
### LICENSING
|
||||||
* master branch, for current stable release
|
|
||||||
* develop branch, for development version (next release)
|
|
||||||
* feature branches, for features etc.
|
|
||||||
|
|
||||||
### Known Problems
|
This program and all associated files are released under the GNU Public
|
||||||
|
License, see LICENSE for details.
|
||||||
- Some compatibility issues with some exotical distibutions.
|
|
||||||
|
|
||||||
### Contributing
|
|
||||||
|
|
||||||
Contributions are more than welcome.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
### Other Notes
|
|
||||||
|
|
||||||
If you have a great idea or want contribute to the project - visit our website at https://www.my-aac.org
|
|
||||||
|
|
||||||
### License
|
|
||||||
|
|
||||||
This program and all associated files are released under the GNU Public License.
|
|
||||||
See [LICENSE](https://github.com/slawkens/myaac/blob/master/LICENSE) for details.
|
|
||||||
|
|||||||
37
TODO
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
// MyAAC TODO
|
||||||
|
|
||||||
|
0.*
|
||||||
|
* support duplicated vocation names with different ids
|
||||||
|
* plugins: option to define custom requirements check in json file, to check if system meets the requirement
|
||||||
|
* add support for defining max myaac version in plugin.json file
|
||||||
|
* cache Menus in templates
|
||||||
|
* don't show error indicators on first time load - createaccount page
|
||||||
|
* update Twig to the latest version from 1.x branch
|
||||||
|
* semantic versioning support for plugins (github.com/composer/semver)
|
||||||
|
* add some notice to the user that installing step "Import Schema" will take some time
|
||||||
|
* check user IP on installing to prevent install by random user
|
||||||
|
|
||||||
|
1.0:
|
||||||
|
* i18n support (issue #1 on github)
|
||||||
|
* New Admin Panel layout and interface
|
||||||
|
* add changelog management interface
|
||||||
|
* remove tibiacom template, and include it as a plugin
|
||||||
|
|
||||||
|
2.0
|
||||||
|
* remove compat functions
|
||||||
|
* folder restructure:
|
||||||
|
* var/ (for logs, cache and data), config/, bin, public/ (for index and images and other public content), system/ (for php files and classess)
|
||||||
|
* rename templates to layouts as templates is meant to be used for twig templates
|
||||||
|
* change gifts_system to shop_system configurable
|
||||||
|
* move most used options in system/templates dir to separate directories (more transparent)
|
||||||
|
|
||||||
|
At any time between (version not specified):
|
||||||
|
* better news archive with search function (like on tibia.com)
|
||||||
|
* guild wars management (issue #13 on github)
|
||||||
|
* update account.management page to be more realistic (like on tibia.com)
|
||||||
|
* update guilds page to be more realistic (like on tibia.com)
|
||||||
|
* possibility to add extra cache engines with plugins
|
||||||
|
* preferably configurable (enable/disable) forum TinyMCE editor
|
||||||
|
* new cache engine - plain php, is good with pure php 7.0+ and opcache
|
||||||
|
* OTAdmin support in Admin Panel
|
||||||
|
* database towns table support for TFS 1.3
|
||||||
@@ -1 +0,0 @@
|
|||||||
theme: jekyll-theme-slate
|
|
||||||
|
Before Width: | Height: | Size: 4.3 KiB |
@@ -1,20 +1,16 @@
|
|||||||
<?php
|
<?php
|
||||||
// few things we'll need
|
// few things we'll need
|
||||||
require '../common.php';
|
require('../common.php');
|
||||||
|
require_once(BASE . 'config.local.php');
|
||||||
define('ADMIN_PANEL', true);
|
|
||||||
define('MYAAC_ADMIN', true);
|
|
||||||
|
|
||||||
if(file_exists(BASE . 'config.local.php')) {
|
|
||||||
require_once BASE . 'config.local.php';
|
|
||||||
}
|
|
||||||
|
|
||||||
if(file_exists(BASE . 'install') && (!isset($config['installed']) || !$config['installed']))
|
if(file_exists(BASE . 'install') && (!isset($config['installed']) || !$config['installed']))
|
||||||
{
|
{
|
||||||
header('Location: ' . BASE_URL . 'install/');
|
header('Location: ' . BASE_URL . 'install/');
|
||||||
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!');
|
die('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
|
||||||
@@ -25,24 +21,11 @@ if(empty($page) || preg_match("/[^a-zA-Z0-9_\-]/", $page))
|
|||||||
$page = strtolower($page);
|
$page = strtolower($page);
|
||||||
define('PAGE', $page);
|
define('PAGE', $page);
|
||||||
|
|
||||||
require SYSTEM . 'functions.php';
|
require(SYSTEM . 'functions.php');
|
||||||
require SYSTEM . 'init.php';
|
require(SYSTEM . 'init.php');
|
||||||
|
require(SYSTEM . 'status.php');
|
||||||
if(config('env') === 'dev') {
|
require(SYSTEM . 'login.php');
|
||||||
ini_set('display_errors', 1);
|
require(ADMIN . 'includes/functions.php');
|
||||||
ini_set('display_startup_errors', 1);
|
|
||||||
error_reporting(E_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
// event system
|
|
||||||
require_once SYSTEM . 'hooks.php';
|
|
||||||
$hooks = new Hooks();
|
|
||||||
$hooks->load();
|
|
||||||
|
|
||||||
require SYSTEM . 'status.php';
|
|
||||||
require SYSTEM . 'login.php';
|
|
||||||
require SYSTEM . 'migrate.php';
|
|
||||||
require ADMIN . 'includes/functions.php';
|
|
||||||
|
|
||||||
$twig->addGlobal('config', $config);
|
$twig->addGlobal('config', $config);
|
||||||
$twig->addGlobal('status', $status);
|
$twig->addGlobal('status', $status);
|
||||||
@@ -52,7 +35,7 @@ if(!$logged || !admin()) {
|
|||||||
$page = 'login';
|
$page = 'login';
|
||||||
}
|
}
|
||||||
|
|
||||||
// include our page
|
// include our page
|
||||||
$file = SYSTEM . 'pages/admin/' . $page . '.php';
|
$file = SYSTEM . 'pages/admin/' . $page . '.php';
|
||||||
if(!@file_exists($file)) {
|
if(!@file_exists($file)) {
|
||||||
$page = '404';
|
$page = '404';
|
||||||
@@ -67,5 +50,5 @@ ob_end_clean();
|
|||||||
|
|
||||||
// template
|
// template
|
||||||
$template_path = 'template/';
|
$template_path = 'template/';
|
||||||
require ADMIN . $template_path . 'template.php';
|
require(ADMIN . $template_path . 'template.php');
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -1,48 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
return [
|
|
||||||
['name' => 'Dashboard', 'icon' => 'tachometer-alt', 'link' => 'dashboard'],
|
|
||||||
['name' => 'News', 'icon' => 'newspaper', 'link' =>
|
|
||||||
[
|
|
||||||
['name' => 'View', 'link' => 'news'],
|
|
||||||
['name' => 'Add news', 'link' => 'news&action=new&type=1'],
|
|
||||||
['name' => 'Add ticker', 'link' => 'news&action=new&type=2'],
|
|
||||||
['name' => 'Add article', 'link' => 'news&action=new&type=3'],
|
|
||||||
],
|
|
||||||
],
|
|
||||||
['name' => 'Changelogs', 'icon' => 'newspaper', 'link' =>
|
|
||||||
[
|
|
||||||
['name' => 'View', 'link' => 'changelog'],
|
|
||||||
['name' => 'Add', 'link' => 'changelog&action=new'],
|
|
||||||
],
|
|
||||||
],
|
|
||||||
['name' => 'Mailer', 'icon' => 'envelope', 'link' => 'mailer', 'disabled' => !config('mail_enabled')],
|
|
||||||
['name' => 'Pages', 'icon' => 'book', 'link' =>
|
|
||||||
[
|
|
||||||
['name' => 'View', 'link' => 'pages'],
|
|
||||||
['name' => 'Add', 'link' => 'pages&action=new'],
|
|
||||||
],
|
|
||||||
],
|
|
||||||
['name' => 'Menus', 'icon' => 'list', 'link' => 'menus'],
|
|
||||||
['name' => 'Plugins', 'icon' => 'plug', 'link' => 'plugins'],
|
|
||||||
['name' => 'Server Data', 'icon' => 'gavel', 'link' => 'data'],
|
|
||||||
['name' => 'Editor', 'icon' => 'edit', 'link' =>
|
|
||||||
[
|
|
||||||
['name' => 'Accounts', 'link' => 'accounts'],
|
|
||||||
['name' => 'Players', 'link' => 'players'],
|
|
||||||
],
|
|
||||||
],
|
|
||||||
['name' => 'Tools', 'icon' => 'tools', 'link' =>
|
|
||||||
[
|
|
||||||
['name' => 'Notepad', 'link' => 'notepad'],
|
|
||||||
['name' => 'phpinfo', 'link' => 'phpinfo'],
|
|
||||||
],
|
|
||||||
],
|
|
||||||
['name' => 'Logs', 'icon' => 'bug', 'link' =>
|
|
||||||
[
|
|
||||||
['name' => 'Logs', 'link' => 'logs'],
|
|
||||||
['name' => 'Reports', 'link' => 'reports'],
|
|
||||||
['name' => 'Visitors', 'icon' => 'user', 'link' => 'visitors'],
|
|
||||||
],
|
|
||||||
],
|
|
||||||
];
|
|
||||||
@@ -1,10 +1,147 @@
|
|||||||
.menu-text-li {color: #4b646f; background: #1a2226;}
|
*{
|
||||||
.menu-text {
|
margin:0;
|
||||||
display: block;
|
padding:0;
|
||||||
padding: .5rem 1rem;
|
}
|
||||||
white-space: nowrap;
|
body {
|
||||||
|
font-family: Helvetica;
|
||||||
|
color: #313334;
|
||||||
|
background: /*#f9f9f9 #EEEEEE*/#F7F6F1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-mini.sidebar-collapse .menu-text {
|
img {border: none;}
|
||||||
display: none;
|
|
||||||
|
a:link {color: #000; text-decoration: none;}
|
||||||
|
a:visited {color: #000; text-decoration: none;}
|
||||||
|
a:focus {color: #000; text-decoration: none;}
|
||||||
|
a:active {color: #000; text-decoration: underline;}
|
||||||
|
a:hover {color: #000; text-decoration: underline;}
|
||||||
|
a.current {font-weight: bold;}
|
||||||
|
|
||||||
|
h5.blue {color: #6b7b95;}
|
||||||
|
h5.red {color: #c17878;}
|
||||||
|
h5.green {color: #78ba91;}
|
||||||
|
h5.purple {color: #a87aad;}
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {color: #313334; font-weight: bold;}
|
||||||
|
.separator {color:#BCE}
|
||||||
|
.margin-left{
|
||||||
|
margin-left:5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button { background:#eee repeat-x 0 0; border:solid 1px #b1a874; color:#7f7f7f; font-size:11px; padding:2px 6px 2px 6px; cursor:pointer; line-height:14px !important; }
|
||||||
|
.button:hover { color:#333; border-color:#857b42; }
|
||||||
|
|
||||||
|
.field, .button { -moz-border-radius:4px; -webkit-border-radius:4px; }
|
||||||
|
.small-field, .button, .pagging a { -moz-border-radius:3px; -webkit-border-radius:3px; }
|
||||||
|
|
||||||
|
.table th {
|
||||||
|
background-color: #4CAF50;
|
||||||
|
color: white;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table, .table td, .table th{
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table th a:link {color: white; text-decoration: none;}
|
||||||
|
.table th a:link {color: white; text-decoration: none;}
|
||||||
|
.table th a:visited {color: white; text-decoration: none;}
|
||||||
|
.table th a:focus {color: white; text-decoration: none;}
|
||||||
|
.table th a:active {color: white; text-decoration: underline;}
|
||||||
|
.table th a:hover {color: white; text-decoration: underline;}
|
||||||
|
|
||||||
|
.table tr:nth-child(odd) {background-color: #d1d1d1}
|
||||||
|
|
||||||
|
a.ico { color:#9d9c9a; font-size:10px; text-decoration: none; padding:0 0 0 14px; background-repeat:no-repeat; background-position:0 0; }
|
||||||
|
a.ico:hover { color:#333;}
|
||||||
|
|
||||||
|
#container{
|
||||||
|
width:960px;
|
||||||
|
margin-left:auto;
|
||||||
|
margin-right:auto;
|
||||||
|
}
|
||||||
|
#header {
|
||||||
|
/*width: 960px;*/
|
||||||
|
padding-left: auto;
|
||||||
|
padding-right: auto;
|
||||||
|
border-bottom: 1px dotted black;
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
#header h1 {
|
||||||
|
margin: 0;
|
||||||
|
padding-top: 20px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
#sidebar{
|
||||||
|
background: #FFF;
|
||||||
|
width: 170px;
|
||||||
|
float: left;
|
||||||
|
margin: 10px 0 10px 0;
|
||||||
|
padding: 10px;
|
||||||
|
border: 1px solid #CCC;
|
||||||
|
}
|
||||||
|
#content {
|
||||||
|
width: 740px;
|
||||||
|
float: right;
|
||||||
|
margin: 20px 0 10px 0;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
#footer {
|
||||||
|
margin-top: 20px;
|
||||||
|
border-top: 1px dotted black;
|
||||||
|
text-align: center;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
/*********************
|
||||||
|
Sidebar
|
||||||
|
*********************/
|
||||||
|
#sidebar ul{
|
||||||
|
list-style:none;
|
||||||
|
line-height:22px;
|
||||||
|
}
|
||||||
|
#sidebar ul li a,#sidebar ul li a:visited{
|
||||||
|
padding-left:19px;
|
||||||
|
text-decoration:none;
|
||||||
|
margin:0 3px;
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
#sidebar ul li a:hover{
|
||||||
|
text-decoration:underline;
|
||||||
|
}
|
||||||
|
#sidebar ul li ul{
|
||||||
|
margin-left:10px;
|
||||||
|
}
|
||||||
|
#sidebar h3{
|
||||||
|
padding:2px;
|
||||||
|
font-size:14px;
|
||||||
|
}
|
||||||
|
/*********************
|
||||||
|
Status & version boxes
|
||||||
|
*********************/
|
||||||
|
#status {
|
||||||
|
position: absolute; top: 10px; left: 10px;
|
||||||
|
margin: 0px;
|
||||||
|
float: right;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
#status .success {
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
#version {
|
||||||
|
position: absolute; top: 10px; right: 10px;
|
||||||
|
float: right;
|
||||||
|
text-align: right;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
/*********************
|
||||||
|
Infobox
|
||||||
|
*********************/
|
||||||
|
#infobox{
|
||||||
|
border:1px solid #e9e8e3;
|
||||||
|
}
|
||||||
|
#infobox h3{
|
||||||
|
background:#f7f6f1;
|
||||||
|
border-bottom:1px solid #e9e8e3;
|
||||||
|
color:#654322;
|
||||||
}
|
}
|
||||||
@@ -1,196 +1,110 @@
|
|||||||
<?php defined('MYAAC') or die('Direct access not allowed!'); ?>
|
<?php defined('MYAAC') or die('Direct access not allowed!'); ?>
|
||||||
<!doctype html>
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
<html lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<?php echo template_header(true); ?>
|
<?php echo template_header(true); ?>
|
||||||
<title><?php echo (isset($title) ? $title . ' - ' : '') . $config['lua']['serverName'];?></title>
|
<title><?php echo $title . $config['title_separator'] . $config['lua']['serverName']; ?> - Powered by MyAAC</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<link rel="stylesheet" type="text/css" href="<?php echo $template_path; ?>style.css" />
|
||||||
<link rel="stylesheet" href="<?php echo BASE_URL; ?>tools/css/adminlte.min.css">
|
|
||||||
<link rel="stylesheet" href="<?php echo BASE_URL; ?>tools/css/font-awesome.min.css">
|
|
||||||
<?php if (isset($use_datatable)) { ?>
|
|
||||||
<link rel="stylesheet" href="<?php echo BASE_URL; ?>tools/css/datatables.bs.min.css">
|
|
||||||
<?php } ?>
|
|
||||||
<link rel="stylesheet" type="text/css" href="<?php echo $template_path; ?>style.css"/>
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="<?php echo BASE_URL; ?>tools/js/html5shiv.min.js"></script>
|
|
||||||
<script src="<?php echo BASE_URL; ?>tools/js/respond.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
|
|
||||||
</head>
|
</head>
|
||||||
<body class="sidebar-mini ">
|
<body>
|
||||||
<?php if ($logged && admin()) { ?>
|
<?php if($page != 'tools'): ?>
|
||||||
<div class="wrapper">
|
<div id="container">
|
||||||
<nav class="main-header navbar navbar-expand navbar-white navbar-light">
|
<div id="header">
|
||||||
<ul class="navbar-nav">
|
<?php if($logged && admin()): ?>
|
||||||
<li class="nav-item">
|
<div id="status">
|
||||||
<a class="nav-link" data-widget="pushmenu" href="#"><i class="fas fa-bars"></i></a>
|
<?php if($status['online']): ?>
|
||||||
</li>
|
<p class="success" style="width: 120px; text-align: center;">Status: Online<br/>
|
||||||
<li class="nav-item d-none d-sm-inline-block">
|
<?php echo $status['uptimeReadable'] . ', ' . $status['players'] . '/' . $status['playersMax']; ?><br/>
|
||||||
<a href="<?php echo ADMIN_URL; ?>" class="nav-link">Home</a>
|
<?php echo $config['lua']['ip'] . ' : ' . $config['lua']['loginPort']; ?>
|
||||||
</li>
|
</p>
|
||||||
</ul>
|
<?php else: ?>
|
||||||
<ul class="navbar-nav ml-auto">
|
<p class="error" style="width: 120px; text-align: center;">Status: Offline</p>
|
||||||
<li class="nav-item">
|
<?php endif; ?>
|
||||||
<a class="nav-link" data-widget="control-sidebar" data-slide="true" href="#"><i class="fas fa-th-large"></i></a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
<aside class="main-sidebar sidebar-dark-info elevation-4">
|
|
||||||
<a href="<?php echo ADMIN_URL; ?>" class="brand-link navbar-info">
|
|
||||||
<img src="<?php echo ADMIN_URL; ?>images/logo.png" class="brand-image img-circle elevation-3" style="opacity: .8">
|
|
||||||
<span class="brand-text"><b>My</b>AAC</span>
|
|
||||||
</a>
|
|
||||||
<div class="sidebar">
|
|
||||||
<nav class="mt-1">
|
|
||||||
<ul class="nav nav-pills nav-sidebar flex-column nav-legacy nav-child-indent" data-widget="treeview" data-accordion="false">
|
|
||||||
<li class="menu-text-li">
|
|
||||||
<span class="menu-text">
|
|
||||||
<a class="text-info" href="<?php echo BASE_URL; ?>" target="_blank">
|
|
||||||
<?php echo $config['lua']['serverName'] ?>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</li>
|
|
||||||
<?php
|
|
||||||
// name = Display name of link
|
|
||||||
// icon = fontawesome icon name without "fas fa-"
|
|
||||||
// link = Page link or use as array for sub items
|
|
||||||
$menus = require __DIR__ . '/menus.php';
|
|
||||||
|
|
||||||
foreach ($menus as $category => $menu) {
|
|
||||||
if (isset($menu['disabled']) && $menu['disabled']) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$has_child = is_array($menu['link']);
|
|
||||||
if (!$has_child) { ?>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link<?php echo(strpos($menu['link'], $page) !== false ? ' active' : '') ?>" href="?p=<?php echo $menu['link'] ?>">
|
|
||||||
<i class="nav-icon fas fa-<?php echo(isset($menu['icon']) ? $menu['icon'] : 'link') ?>"></i>
|
|
||||||
<p><?php echo $menu['name'] ?></p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<?php
|
|
||||||
} else if ($has_child) {
|
|
||||||
$used_menu = null;
|
|
||||||
$nav_construct = '';
|
|
||||||
foreach ($menu['link'] as $category => $sub_menu) {
|
|
||||||
$nav_construct .= '<li class="nav-item"><a href="?p=' . $sub_menu['link'] . '" class="nav-link';
|
|
||||||
if ($page == $sub_menu['link']) {
|
|
||||||
$nav_construct .= ' active';
|
|
||||||
$used_menu = true;
|
|
||||||
}
|
|
||||||
$nav_construct .= '"><i class="far fa-' . (isset($sub_menu['icon']) ? $sub_menu['icon'] : 'circle') . ' nav-icon"></i><p>' . $sub_menu['name'] . '</p></a></li>';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<li class="nav-item has-treeview<?php echo($used_menu ? ' menu-open' : '') ?>">
|
|
||||||
<a href="#" class="nav-link<?php echo($used_menu ? ' active' : '') ?>">
|
|
||||||
<i class="nav-icon fas fa-<?php echo(isset($menu['icon']) ? $menu['icon'] : 'link') ?>"></i>
|
|
||||||
<p><?php echo $menu['name'] ?></p><i class="right fas fa-angle-left"></i>
|
|
||||||
</a>
|
|
||||||
<ul class="nav nav-treeview">
|
|
||||||
<?php echo $nav_construct; ?>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$query = $db->query('SELECT `name`, `page`, `flags` FROM `' . TABLE_PREFIX . 'admin_menu` ORDER BY `ordering`');
|
|
||||||
$menu_db = $query->fetchAll();
|
|
||||||
foreach ($menu_db as $item) {
|
|
||||||
if ($item['flags'] == 0 || hasFlag($item['flags'])) { ?>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link<?php echo($page == $item['page'] ? ' active' : '') ?>" href="?p=<?php echo $item['page'] ?>">
|
|
||||||
<i class="nav-icon fas fa-link"></i>
|
|
||||||
<p><?php echo $item['name'] ?></p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
</div>
|
||||||
</aside>
|
<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 (USE_ACCOUNT_NAME ? $account_logged->getName() : $account_logged->getId()); ?></b><br/>
|
||||||
<div class="content-wrapper" style="min-height: 823px;">
|
<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 class="content-header">
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="row mb-2">
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<h3 class="m-0 text-dark"><?php echo(isset($title) ? $title : ''); ?><small> - Admin Panel</small></h3>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<div class="float-sm-right d-none d-sm-inline">
|
|
||||||
<span class="p-2 right badge badge-<?php echo((isset($status['online']) and $status['online']) ? 'success' : 'danger'); ?>"><?php echo $config['lua']['serverName'] ?></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="content">
|
|
||||||
<div class="container-fluid">
|
|
||||||
<?php echo $content; ?>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
<h1><?php echo $config['lua']['serverName'] . (isset($title) ? ' - ' . $title : ''); ?> - Admin Panel</h1>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="wrapper">
|
||||||
|
<?php
|
||||||
|
if($logged && admin()) {
|
||||||
|
?>
|
||||||
|
<div id="sidebar">
|
||||||
|
<ul>
|
||||||
|
<?php
|
||||||
|
$menus = array(
|
||||||
|
'Dashboard' => 'dashboard',
|
||||||
|
'Mailer' => 'mailer',
|
||||||
|
'Pages' => 'pages',
|
||||||
|
'Menus' => 'menus',
|
||||||
|
'Plugins' => 'plugins',
|
||||||
|
'Statistics' => 'statistics',
|
||||||
|
'Visitors' => 'visitors',
|
||||||
|
'Players' => 'players',
|
||||||
|
'Items' => 'items',
|
||||||
|
'Tools' => array(
|
||||||
|
'phpinfo' => 'phpinfo'
|
||||||
|
),
|
||||||
|
'Notepad' => 'notepad',
|
||||||
|
'Logs' => 'logs'
|
||||||
|
);
|
||||||
|
|
||||||
<aside class="control-sidebar control-sidebar-dark">
|
$i = 0;
|
||||||
<div class="p-3">
|
foreach($menus as $_name => $_page) {
|
||||||
<h4>Account:</h4>
|
//echo '<a ' . ($page == $_page ? ' class="current"' : '') . 'href="?p=' . $_page . '">' . $_name . '</a>';
|
||||||
<p><h5><a href="?action=logout"><i class="fas fa-sign-out-alt text-danger"></i> Log out</h5></a>
|
echo '<li><h3>';
|
||||||
<small>This will log you out</small></p>
|
$has_child = is_array($_page);
|
||||||
</div>
|
if(!$has_child) {
|
||||||
<div class="p-3">
|
echo '<a href="?p=' . $_page . '">';
|
||||||
<h4>Site:</h4>
|
if($page == $_page) echo '<u>';
|
||||||
<p><h5><a href="<?php echo BASE_URL; ?>" target="_blank"><i class="far fa-eye text-blue"></i> Preview</a></h5>
|
echo $_name;
|
||||||
<small>This will open a new tab</small></p>
|
if($page == $_page) echo '</u>';
|
||||||
</div>
|
echo '</a>';
|
||||||
<div class="p-3">
|
}
|
||||||
<h4>Version:</h4>
|
else
|
||||||
<p><h5><a href="?p=version"><i class="fas fa-code-branch"></i> <?php echo MYAAC_VERSION; ?></a></h5>
|
echo $_name;
|
||||||
<small>Check for updates</small></p>
|
|
||||||
</div>
|
|
||||||
<div class="p-3">
|
|
||||||
<h4>Site:</h4>
|
|
||||||
<p><h5><a href="https://github.com/slawkens/myaac" target="_blank"><i class="fab fa-github"></i> Github</a></h5>
|
|
||||||
<small>Goto GitHub Page</small></p>
|
|
||||||
|
|
||||||
<p><h5><a href="http://my-aac.org/" target="_blank"><i class="fas fa-shoe-prints"></i> MyAAC Official</a></h5>
|
echo '</h3>';
|
||||||
<small>Goto MyAAC Official Website</small></p>
|
if($has_child) {
|
||||||
</div>
|
echo '<ul>';
|
||||||
</aside>
|
foreach($_page as $__name => $__page)
|
||||||
|
echo '<li><a href="?p=' . $__page . '">';
|
||||||
<footer class="main-footer">
|
if($page == $__page) echo '<u>';
|
||||||
<div class="float-sm-right d-none d-sm-inline">
|
echo $__name;
|
||||||
<span class="p-2 right badge badge-<?php echo((isset($status['online']) and $status['online']) ? 'success' : 'danger'); ?>"><?php echo $config['lua']['serverName'] ?></span>
|
if($page == $__page) echo '</u>';
|
||||||
|
echo '</a></li>';
|
||||||
|
echo '</ul>';
|
||||||
|
}
|
||||||
|
echo '</li>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = $db->query('SELECT `name`, `page`, `flags` FROM `' . TABLE_PREFIX . 'admin_menu` ORDER BY `ordering`');
|
||||||
|
$menu_db = $query->fetchAll();
|
||||||
|
foreach($menu_db as $item) {
|
||||||
|
if($item['flags'] == 0 || hasFlag($item['flags'])) {
|
||||||
|
echo '<li><h3>
|
||||||
|
<a href="?p=' . $item['page'] . '">';
|
||||||
|
if($page == $item['page']) echo '<u>';
|
||||||
|
echo $item['name'];
|
||||||
|
if($page == $item['page']) echo '</u>';
|
||||||
|
echo '</a></h3></li>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<div id="content"><?php echo $content; ?></div>
|
||||||
|
</div>
|
||||||
|
<div id="footer">
|
||||||
<?php echo base64_decode('UG93ZXJlZCBieSA8YSBocmVmPSJodHRwOi8vbXktYWFjLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPk15QUFDLjwvYT4='); ?>
|
<?php echo base64_decode('UG93ZXJlZCBieSA8YSBocmVmPSJodHRwOi8vbXktYWFjLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPk15QUFDLjwvYT4='); ?>
|
||||||
</footer>
|
</div>
|
||||||
<div id="sidebar-overlay"></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
<?php } else if (!$logged && !admin()) {
|
|
||||||
echo $content;
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* @var OTS_Account $account_logged
|
|
||||||
*/
|
|
||||||
if ($logged && admin()) {
|
|
||||||
$twig->display('admin-bar.html.twig', [
|
|
||||||
'username' => USE_ACCOUNT_NAME ? $account_logged->getName() : $account_logged->getId()
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<script src="<?php echo BASE_URL; ?>tools/js/bootstrap.min.js"></script>
|
|
||||||
<script src="<?php echo BASE_URL; ?>tools/js/jquery-ui.min.js"></script>
|
|
||||||
<?php if (isset($use_datatable)) { ?>
|
|
||||||
<script src="<?php echo BASE_URL; ?>tools/js/datatables.min.js"></script>
|
|
||||||
<script src="<?php echo BASE_URL; ?>tools/js/datatables.bs.min.js"></script>
|
|
||||||
<?php } ?>
|
|
||||||
<script src="<?php echo BASE_URL; ?>tools/js/adminlte.min.js"></script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
define('MYAAC_ADMIN', true);
|
require('../../common.php');
|
||||||
|
require(SYSTEM . 'functions.php');
|
||||||
require '../../common.php';
|
require(SYSTEM . 'init.php');
|
||||||
require SYSTEM . 'functions.php';
|
require(SYSTEM . 'login.php');
|
||||||
require SYSTEM . 'init.php';
|
|
||||||
require SYSTEM . 'login.php';
|
|
||||||
|
|
||||||
if(!admin())
|
if(!admin())
|
||||||
die('Access denied.');
|
die('Access denied.');
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* Project: MyAAC
|
|
||||||
* Automatic Account Creator for Open Tibia Servers
|
|
||||||
*
|
|
||||||
* This is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
|
||||||
* License as published by the Free Software Foundation; either
|
|
||||||
* version 2.1 of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This software is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this library; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
*
|
|
||||||
* @package MyAAC
|
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
|
||||||
* @copyright 2020 MyAAC
|
|
||||||
* @link https://my-aac.org
|
|
||||||
*/
|
|
||||||
define('MYAAC_ADMIN', true);
|
|
||||||
|
|
||||||
require '../../common.php';
|
|
||||||
require SYSTEM . 'functions.php';
|
|
||||||
require SYSTEM . 'init.php';
|
|
||||||
require SYSTEM . 'login.php';
|
|
||||||
|
|
||||||
if (!admin())
|
|
||||||
die('Access denied.');
|
|
||||||
|
|
||||||
ini_set('max_execution_time', 300);
|
|
||||||
ob_implicit_flush();
|
|
||||||
ob_end_flush();
|
|
||||||
header('X-Accel-Buffering: no');
|
|
||||||
|
|
||||||
require LIBS . 'DataLoader.php';
|
|
||||||
|
|
||||||
require LOCALE . 'en/main.php';
|
|
||||||
require LOCALE . 'en/install.php';
|
|
||||||
|
|
||||||
DataLoader::setLocale($locale);
|
|
||||||
DataLoader::load();
|
|
||||||
@@ -1,11 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
define('MYAAC_ADMIN', true);
|
require('../../common.php');
|
||||||
|
require(SYSTEM . 'init.php');
|
||||||
require '../../common.php';
|
require(SYSTEM . 'functions.php');
|
||||||
require SYSTEM . 'init.php';
|
require(SYSTEM . 'status.php');
|
||||||
require SYSTEM . 'functions.php';
|
require(SYSTEM . 'login.php');
|
||||||
require SYSTEM . 'status.php';
|
|
||||||
require SYSTEM . 'login.php';
|
|
||||||
|
|
||||||
if(!admin())
|
if(!admin())
|
||||||
die('Access denied.');
|
die('Access denied.');
|
||||||
|
|||||||
138
common.php
@@ -20,111 +20,89 @@
|
|||||||
*
|
*
|
||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @copyright 2019 MyAAC
|
* @copyright 2017 MyAAC
|
||||||
* @link https://my-aac.org
|
* @link http://my-aac.org
|
||||||
*/
|
*/
|
||||||
if (version_compare(phpversion(), '7.1', '<')) die('PHP version 7.1 or higher is required.');
|
session_start();
|
||||||
|
|
||||||
const MYAAC = true;
|
define('MYAAC', true);
|
||||||
const MYAAC_VERSION = '0.9.0-dev';
|
define('MYAAC_VERSION', '0.7.11');
|
||||||
const DATABASE_VERSION = 33;
|
define('DATABASE_VERSION', 22);
|
||||||
const TABLE_PREFIX = 'myaac_';
|
define('TABLE_PREFIX', 'myaac_');
|
||||||
define('START_TIME', microtime(true));
|
define('START_TIME', microtime(true));
|
||||||
define('MYAAC_OS', stripos(PHP_OS, 'WIN') === 0 ? 'WINDOWS' : (strtoupper(PHP_OS) === 'DARWIN' ? 'MAC' : 'LINUX'));
|
define('MYAAC_OS', (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? 'WINDOWS' : (strtoupper(PHP_OS) == 'DARWIN' ? 'MAC' : 'LINUX'));
|
||||||
define('IS_CLI', in_array(php_sapi_name(), ['cli', 'phpdb']));
|
|
||||||
|
|
||||||
// account flags
|
// account flags
|
||||||
const FLAG_ADMIN = 1;
|
define('FLAG_ADMIN', 1);
|
||||||
const FLAG_SUPER_ADMIN = 2;
|
define('FLAG_SUPER_ADMIN', 2);
|
||||||
const FLAG_CONTENT_PAGES = 4;
|
define('FLAG_CONTENT_PAGES', 4);
|
||||||
const FLAG_CONTENT_MAILER = 8;
|
define('FLAG_CONTENT_MAILER', 8);
|
||||||
const FLAG_CONTENT_NEWS = 16;
|
define('FLAG_CONTENT_NEWS', 16);
|
||||||
const FLAG_CONTENT_FORUM = 32;
|
define('FLAG_CONTENT_FORUM', 32);
|
||||||
const FLAG_CONTENT_COMMANDS = 64;
|
define('FLAG_CONTENT_COMMANDS', 64);
|
||||||
const FLAG_CONTENT_SPELLS = 128;
|
define('FLAG_CONTENT_SPELLS', 128);
|
||||||
const FLAG_CONTENT_MONSTERS = 256;
|
define('FLAG_CONTENT_MONSTERS', 256);
|
||||||
const FLAG_CONTENT_GALLERY = 512;
|
define('FLAG_CONTENT_GALLERY', 512);
|
||||||
const FLAG_CONTENT_VIDEOS = 1024;
|
define('FLAG_CONTENT_VIDEOS', 1024);
|
||||||
const FLAG_CONTENT_FAQ = 2048;
|
define('FLAG_CONTENT_FAQ', 2048);
|
||||||
const FLAG_CONTENT_MENUS = 4096;
|
define('FLAG_CONTENT_MENUS', 4096);
|
||||||
const FLAG_CONTENT_PLAYERS = 8192;
|
|
||||||
|
|
||||||
// news
|
// news
|
||||||
const NEWS = 1;
|
define('NEWS', 1);
|
||||||
const TICKER = 2;
|
define('TICKER', 2);
|
||||||
const ARTICLE = 3;
|
define('ARTICLE', 3);
|
||||||
|
|
||||||
// directories
|
// directories
|
||||||
const BASE = __DIR__ . '/';
|
define('BASE', dirname(__FILE__) . '/');
|
||||||
const ADMIN = BASE . 'admin/';
|
define('ADMIN', BASE . 'admin/');
|
||||||
const SYSTEM = BASE . 'system/';
|
define('SYSTEM', BASE . 'system/');
|
||||||
const CACHE = SYSTEM . 'cache/';
|
define('CACHE', SYSTEM . 'cache/');
|
||||||
const LOCALE = SYSTEM . 'locale/';
|
define('LOCALE', SYSTEM . 'locale/');
|
||||||
const LIBS = SYSTEM . 'libs/';
|
define('LIBS', SYSTEM . 'libs/');
|
||||||
const LOGS = SYSTEM . 'logs/';
|
define('LOGS', SYSTEM . 'logs/');
|
||||||
const PAGES = SYSTEM . 'pages/';
|
define('PAGES', SYSTEM . 'pages/');
|
||||||
const PLUGINS = BASE . 'plugins/';
|
define('PLUGINS', BASE . 'plugins/');
|
||||||
const TEMPLATES = BASE . 'templates/';
|
define('TEMPLATES', BASE . 'templates/');
|
||||||
const TOOLS = BASE . 'tools/';
|
define('TOOLS', BASE . 'tools/');
|
||||||
const VENDOR = BASE . 'vendor/';
|
|
||||||
|
|
||||||
// menu categories
|
// menu categories
|
||||||
const MENU_CATEGORY_NEWS = 1;
|
define('MENU_CATEGORY_NEWS', 1);
|
||||||
const MENU_CATEGORY_ACCOUNT = 2;
|
define('MENU_CATEGORY_ACCOUNT', 2);
|
||||||
const MENU_CATEGORY_COMMUNITY = 3;
|
define('MENU_CATEGORY_COMMUNITY', 3);
|
||||||
const MENU_CATEGORY_FORUM = 4;
|
define('MENU_CATEGORY_FORUM', 4);
|
||||||
const MENU_CATEGORY_LIBRARY = 5;
|
define('MENU_CATEGORY_LIBRARY', 5);
|
||||||
const MENU_CATEGORY_SHOP = 6;
|
define('MENU_CATEGORY_SHOP', 6);
|
||||||
|
|
||||||
// otserv versions
|
// otserv versions
|
||||||
const OTSERV = 1;
|
define('OTSERV', 1);
|
||||||
const OTSERV_06 = 2;
|
define('OTSERV_06', 2);
|
||||||
const OTSERV_FIRST = OTSERV;
|
define('OTSERV_FIRST', OTSERV);
|
||||||
const OTSERV_LAST = OTSERV_06;
|
define('OTSERV_LAST', OTSERV_06);
|
||||||
const TFS_02 = 3;
|
define('TFS_02', 3);
|
||||||
const TFS_03 = 4;
|
define('TFS_03', 4);
|
||||||
const TFS_FIRST = TFS_02;
|
define('TFS_FIRST', TFS_02);
|
||||||
const TFS_LAST = TFS_03;
|
define('TFS_LAST', TFS_03);
|
||||||
|
|
||||||
// other definitions
|
|
||||||
const ACCOUNT_NUMBER_LENGTH = 10;
|
|
||||||
|
|
||||||
session_save_path(SYSTEM . 'php_sessions');
|
|
||||||
session_start();
|
|
||||||
|
|
||||||
// basedir
|
// basedir
|
||||||
$basedir = '';
|
$basedir = '';
|
||||||
$tmp = explode('/', $_SERVER['SCRIPT_NAME']);
|
$tmp = explode('/', $_SERVER['SCRIPT_NAME']);
|
||||||
$size = count($tmp) - 1;
|
$size = sizeof($tmp) - 1;
|
||||||
for($i = 1; $i < $size; $i++)
|
for($i = 1; $i < $size; $i++)
|
||||||
$basedir .= '/' . $tmp[$i];
|
$basedir .= '/' . $tmp[$i];
|
||||||
|
|
||||||
$basedir = str_replace(array('/admin', '/install'), '', $basedir);
|
$basedir = str_replace('/admin', '', $basedir);
|
||||||
|
$basedir = str_replace('/install', '', $basedir);
|
||||||
define('BASE_DIR', $basedir);
|
define('BASE_DIR', $basedir);
|
||||||
|
|
||||||
if(!IS_CLI) {
|
if(isset($_SERVER['HTTP_HOST'])) {
|
||||||
if (isset($_SERVER['HTTP_HOST'][0])) {
|
if (isset($_SERVER['HTTPS'][0]) && $_SERVER['HTTPS'] == 'on')
|
||||||
$baseHost = $_SERVER['HTTP_HOST'];
|
define('SERVER_URL', 'https://' . $_SERVER['HTTP_HOST']);
|
||||||
} else {
|
else
|
||||||
if (isset($_SERVER['SERVER_NAME'][0])) {
|
define('SERVER_URL', 'http://' . $_SERVER['HTTP_HOST']);
|
||||||
$baseHost = $_SERVER['SERVER_NAME'];
|
|
||||||
} else {
|
|
||||||
$baseHost = $_SERVER['SERVER_ADDR'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define('SERVER_URL', 'http' . (isset($_SERVER['HTTPS'][0]) && strtolower($_SERVER['HTTPS']) === 'on' ? 's' : '') . '://' . $baseHost);
|
|
||||||
define('BASE_URL', SERVER_URL . BASE_DIR . '/');
|
define('BASE_URL', SERVER_URL . BASE_DIR . '/');
|
||||||
define('ADMIN_URL', SERVER_URL . BASE_DIR . '/admin/');
|
define('ADMIN_URL', SERVER_URL . BASE_DIR . '/admin/');
|
||||||
|
|
||||||
//define('CURRENT_URL', BASE_URL . $_SERVER['REQUEST_URI']);
|
//define('CURRENT_URL', BASE_URL . $_SERVER['REQUEST_URI']);
|
||||||
|
|
||||||
require SYSTEM . 'exception.php';
|
|
||||||
}
|
}
|
||||||
|
?>
|
||||||
$autoloadFile = VENDOR . 'autoload.php';
|
|
||||||
if (!is_file($autoloadFile)) {
|
|
||||||
throw new RuntimeException('The vendor folder is missing. Please download Composer: <a href="https://getcomposer.org/download">https://getcomposer.org/download</a>, install it and execute in the main MyAAC directory this command: <b>composer install</b>. Or download MyAAC from <a href="https://github.com/slawkens/myaac/releases">GitHub releases</a>, which includes Vendor folder.');
|
|
||||||
}
|
|
||||||
|
|
||||||
require $autoloadFile;
|
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
"require": {
|
|
||||||
"php": "^7.2.5 || ^8.0",
|
|
||||||
"ext-pdo": "*",
|
|
||||||
"ext-pdo_mysql": "*",
|
|
||||||
"ext-json": "*",
|
|
||||||
"ext-xml": "*",
|
|
||||||
"ext-dom": "*",
|
|
||||||
"phpmailer/phpmailer": "^6.1",
|
|
||||||
"composer/semver": "^3.2",
|
|
||||||
"twig/twig": "^1.0",
|
|
||||||
"erusev/parsedown": "^1.7"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
3
config.local.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
// place for your configuration directives, so you can later easily update myaac
|
||||||
|
?>
|
||||||
141
config.php
@@ -12,25 +12,14 @@
|
|||||||
*
|
*
|
||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @copyright 2019 MyAAC
|
* @copyright 2017 MyAAC
|
||||||
* @link https://my-aac.org
|
* @link http://my-aac.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$config = array(
|
$config = array(
|
||||||
// directories & files
|
// directories & files
|
||||||
'server_path' => '', // path to the server directory (same directory where config file is located)
|
'server_path' => '', // path to the server directory (same directory where config file is located)
|
||||||
|
|
||||||
/**
|
|
||||||
* Environment Setting
|
|
||||||
*
|
|
||||||
* if you use this script on your live server - set to 'prod' (production)
|
|
||||||
* if you want to test and debug the script locally, or develop plugins, set to 'dev' (development)
|
|
||||||
* WARNING: on 'dev' cache is disabled, so site will be significantly slower !!!
|
|
||||||
* WARNING2: on 'dev' all PHP errors/warnings are displayed
|
|
||||||
* Recommended: 'prod' cause of speed (page load time is better)
|
|
||||||
*/
|
|
||||||
'env' => 'prod', // 'prod' for production and 'dev' for development
|
|
||||||
|
|
||||||
'template' => 'kathrine', // template used by website (kathrine, tibiacom)
|
'template' => 'kathrine', // template used by website (kathrine, tibiacom)
|
||||||
'template_allow_change' => true, // allow users to choose their own template while browsing website?
|
'template_allow_change' => true, // allow users to choose their own template while browsing website?
|
||||||
|
|
||||||
@@ -41,7 +30,7 @@ $config = array(
|
|||||||
'client' => 1098, // 954 = client 9.54
|
'client' => 1098, // 954 = client 9.54
|
||||||
|
|
||||||
'session_prefix' => 'myaac_', // must be unique for every site on your server
|
'session_prefix' => 'myaac_', // must be unique for every site on your server
|
||||||
'friendly_urls' => false, // mod_rewrite is required for this, it makes links looks more elegant to eye, and also are SEO friendly (example: https://my-aac.org/guilds/Testing instead of https://my-aac.org/?subtopic=guilds&name=Testing). Remember to rename .htaccess.dist to .htaccess
|
'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)
|
||||||
@@ -52,10 +41,13 @@ $config = array(
|
|||||||
// head options (html)
|
// head options (html)
|
||||||
'meta_description' => 'Tibia is a free massive multiplayer online role playing game (MMORPG).', // description of the site
|
'meta_description' => 'Tibia is a free massive multiplayer online role playing game (MMORPG).', // description of the site
|
||||||
'meta_keywords' => 'free online game, free multiplayer game, ots, open tibia server', // keywords list separated by commas
|
'meta_keywords' => 'free online game, free multiplayer game, ots, open tibia server', // keywords list separated by commas
|
||||||
|
'title_separator' => ' - ',
|
||||||
|
|
||||||
// footer
|
// footer
|
||||||
'footer' => ''/*'<br/>Your Server © 2016. All rights reserved.'*/,
|
'footer' => ''/*'<br/>Your Server © 2016. All rights reserved.'*/,
|
||||||
|
|
||||||
|
'debug_level' => 0, // 0 - disabled, 1 - show load time, 2 - show db query counter, 3 - both, 4 - memory usage, 5 - load time & memory usage, 6 - queries & memory usage, 7 - all
|
||||||
|
|
||||||
'language' => 'en', // default language (currently only 'en' available)
|
'language' => 'en', // default language (currently only 'en' available)
|
||||||
'language_allow_change' => false,
|
'language_allow_change' => false,
|
||||||
|
|
||||||
@@ -64,7 +56,7 @@ $config = array(
|
|||||||
'views_counter' => true,
|
'views_counter' => true,
|
||||||
|
|
||||||
// cache system. by default file cache is used
|
// cache system. by default file cache is used
|
||||||
'cache_engine' => 'auto', // apc, apcu, 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 (except file system cache)
|
'cache_prefix' => 'myaac_', // have to be unique if running more MyAAC instances on the same server (except file system cache)
|
||||||
|
|
||||||
// database details (leave blank for auto detect from config.lua)
|
// database details (leave blank for auto detect from config.lua)
|
||||||
@@ -73,9 +65,6 @@ $config = array(
|
|||||||
'database_user' => '',
|
'database_user' => '',
|
||||||
'database_password' => '',
|
'database_password' => '',
|
||||||
'database_name' => '',
|
'database_name' => '',
|
||||||
'database_log' => false, // should database queries be logged and and saved into system/logs/database.log?
|
|
||||||
'database_socket' => '', // set if you want to connect to database through socket (example: /var/run/mysqld/mysqld.sock)
|
|
||||||
'database_persistent' => false, // use database permanent connection (like server), may speed up your site
|
|
||||||
|
|
||||||
// multiworld system (only TFS 0.3)
|
// multiworld system (only TFS 0.3)
|
||||||
'multiworld' => false, // use multiworld system?
|
'multiworld' => false, // use multiworld system?
|
||||||
@@ -85,27 +74,13 @@ $config = array(
|
|||||||
),
|
),
|
||||||
|
|
||||||
// images
|
// images
|
||||||
'outfit_images_url' => 'https://outfit-images.ots.me/outfit.php', // set to animoutfit.php for animated outfit
|
'outfit_images_url' => 'http://outfit-images.ots.me/outfit.php', // set to animoutfit.php for animated outfit
|
||||||
'outfit_images_wrong_looktypes' => [75, 126, 127, 266, 302], // this looktypes needs to have different margin-top and margin-left because they are wrong positioned
|
'item_images_url' => 'http://item-images.ots.me/1092/', // set to images/items if you host your own items in images folder
|
||||||
'item_images_url' => 'https://item-images.ots.me/1092/', // set to images/items if you host your own items in images folder
|
|
||||||
'item_images_extension' => '.gif',
|
|
||||||
|
|
||||||
// creatures
|
|
||||||
'creatures_images_url' => 'images/monsters/', // set to images/monsters if you host your own creatures in images folder
|
|
||||||
'creatures_images_extension' => '.gif',
|
|
||||||
'creatures_images_preview' => false, // set to true to allow picture previews for creatures
|
|
||||||
'creatures_items_url' => 'https://tibia.fandom.com/wiki/', // set to website which shows details about items.
|
|
||||||
'creatures_loot_percentage' => true, // set to true to show the loot tooltip percent
|
|
||||||
|
|
||||||
// account
|
// account
|
||||||
'account_management' => true, // disable if you're using other method to manage users (fe. tfs account manager)
|
'account_management' => true, // disable if you're using other method to manage users (fe. tfs account manager)
|
||||||
'account_login_by_email' => false, // use email instead of Account Name like in latest Tibia
|
|
||||||
'account_login_by_email_fallback' => false, // allow also additionally login by Account Name/Number (for users that might forget their email)
|
|
||||||
'account_create_auto_login' => false, // auto login after creating account?
|
|
||||||
'account_create_character_create' => true, // allow directly to create character on create account page?
|
|
||||||
'account_mail_verify' => false, // force users to confirm their email addresses when registering account
|
'account_mail_verify' => false, // force users to confirm their email addresses when registering account
|
||||||
'account_mail_unique' => true, // email addresses cannot be duplicated? (one account = one email)
|
'account_mail_unique' => true, // email addresses cannot be duplicated? (one account = one email)
|
||||||
'account_mail_block_plus_sign' => true, // block email with '+' signs like test+box@gmail.com (help protect against spamming accounts)
|
|
||||||
'account_premium_days' => 0, // default premium days on new account
|
'account_premium_days' => 0, // default premium days on new account
|
||||||
'account_premium_points' => 0, // default premium points on new account
|
'account_premium_points' => 0, // default premium points on new account
|
||||||
'account_welcome_mail' => true, // send welcome email when user registers
|
'account_welcome_mail' => true, // send welcome email when user registers
|
||||||
@@ -123,29 +98,22 @@ $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, set to true if you use GMail or Microsoft Outlook)
|
'smtp_enabled' => false, // send by smtp or mail function (set false if use mail function)
|
||||||
'smtp_host' => '', // mail host. smtp.gmail.com for GMail / smtp-mail.outlook.com for Microsoft Outlook
|
'smtp_host' => '', // mail host
|
||||||
'smtp_port' => 25, // 25 (default) / 465 (ssl, GMail) / 587 (tls, Microsoft Outlook)
|
'smtp_port' => 25, // 25 (default) / 465 (ssl, e.g. gmail)
|
||||||
'smtp_auth' => true, // need authorization?
|
'smtp_auth' => true, // need authorization?
|
||||||
'smtp_user' => 'admin@example.org', // here your email username
|
'smtp_user' => 'admin@example.org',
|
||||||
'smtp_pass' => '',
|
'smtp_pass' => '',
|
||||||
'smtp_secure' => '', // What kind of encryption to use on the SMTP connection. Options: '', 'ssl' (GMail) or 'tls' (Microsoft Outlook)
|
'smtp_secure' => '', // What kind of encryption to use on the SMTP connection. Options: '', 'ssl' or 'tls', use 'ssl' for gmail
|
||||||
'smtp_debug' => false, // set true to debug (you will see more info in error.log)
|
|
||||||
|
|
||||||
// Google reCAPTCHA (prevent spam bots)
|
// reCAPTCHA (prevent spam bots)
|
||||||
'recaptcha_enabled' => false, // enable recaptcha verification code
|
'recaptcha_enabled' => false, // enable recaptcha verification code
|
||||||
'recaptcha_type' => 'v3', // 'v2-checkbox', 'v2-invisible', 'v3'
|
|
||||||
'recaptcha_site_key' => '', // get your own site and secret keys at https://www.google.com/recaptcha
|
'recaptcha_site_key' => '', // get your own site and secret keys at https://www.google.com/recaptcha
|
||||||
'recaptcha_secret_key' => '',
|
'recaptcha_secret_key' => '',
|
||||||
// following option apply only for ReCaptcha v2-checkbox
|
'recaptcha_theme' => 'light', // light, dark
|
||||||
'recaptcha_v2_theme' => 'light', // light, dark
|
|
||||||
// following option apply only for ReCaptcha v3
|
|
||||||
// min score for validation, between 0 - 1.0
|
|
||||||
// https://developers.google.com/recaptcha/docs/v3#interpreting_the_score
|
|
||||||
'recaptcha_v3_min_score' => 0.5,
|
|
||||||
|
|
||||||
//
|
//
|
||||||
'generate_new_reckey' => true, // let player generate new recovery key, he will receive e-mail with new rec key (not display on page, hacker can't generate rec key)
|
'generate_new_reckey' => true, // let player generate new recovery key, he will receive e-mail with new rec key (not display on page, hacker can't generate rec key)
|
||||||
@@ -158,7 +126,7 @@ $config = array(
|
|||||||
0 => 'Female',
|
0 => 'Female',
|
||||||
1 => 'Male'
|
1 => 'Male'
|
||||||
),
|
),
|
||||||
|
|
||||||
// new character config
|
// new character config
|
||||||
'character_samples' => array( // vocations, format: ID_of_vocation => 'Name of Character to copy'
|
'character_samples' => array( // vocations, format: ID_of_vocation => 'Name of Character to copy'
|
||||||
//0 => 'Rook Sample',
|
//0 => 'Rook Sample',
|
||||||
@@ -168,25 +136,11 @@ $config = array(
|
|||||||
4 => 'Knight Sample'
|
4 => 'Knight Sample'
|
||||||
),
|
),
|
||||||
|
|
||||||
'use_character_sample_skills' => false,
|
|
||||||
|
|
||||||
// it must show limited number of players after using search in character page
|
|
||||||
'characters_search_limit' => 15,
|
|
||||||
|
|
||||||
// town list used when creating character
|
// town list used when creating character
|
||||||
// won't be displayed if there is only one item (rookgaard for example)
|
// won't be displayed if there is only one item (rookgaard for example)
|
||||||
'character_towns' => array(1),
|
'character_towns' => array(1),
|
||||||
|
|
||||||
// characters length
|
|
||||||
// This is the minimum and the maximum length that a player can create a character. It is highly recommend the maximum length to be 21.
|
|
||||||
'character_name_min_length' => 4,
|
|
||||||
'character_name_max_length' => 21,
|
|
||||||
'character_name_npc_check' => true,
|
|
||||||
|
|
||||||
// list of towns
|
// list of towns
|
||||||
// if you use TFS 1.3 with support for 'towns' table in database, then you can ignore this - it will be configured automatically (from MySQL database - Table - towns)
|
|
||||||
// otherwise it will try to load from your .OTBM map file
|
|
||||||
// if you don't see towns on website, then you need to fill this out
|
|
||||||
'towns' => array(
|
'towns' => array(
|
||||||
0 => 'No town',
|
0 => 'No town',
|
||||||
1 => 'Sample town'
|
1 => 'Sample town'
|
||||||
@@ -197,11 +151,17 @@ $config = array(
|
|||||||
'guild_need_level' => 1, // min. level to form a guild
|
'guild_need_level' => 1, // min. level to form a guild
|
||||||
'guild_need_premium' => true, // require premium account to form a guild?
|
'guild_need_premium' => true, // require premium account to form a guild?
|
||||||
'guild_image_size_kb' => 80, // maximum size of the guild logo image in KB (kilobytes)
|
'guild_image_size_kb' => 80, // maximum size of the guild logo image in KB (kilobytes)
|
||||||
'guild_description_default' => 'New guild. Leader must edit this text :)',
|
|
||||||
'guild_description_chars_limit' => 1000, // limit of guild description
|
'guild_description_chars_limit' => 1000, // limit of guild description
|
||||||
'guild_description_lines_limit' => 6, // limit of lines, if description has more lines it will be showed as long text, without 'enters'
|
'guild_description_lines_limit' => 6, // limit of lines, if description has more lines it will be showed as long text, without 'enters'
|
||||||
'guild_motd_chars_limit' => 150, // limit of MOTD (message of the day) that is shown later in the game on the guild channel
|
'guild_motd_chars_limit' => 150, // limit of MOTD (message of the day) that is shown later in the game on the guild channel
|
||||||
|
|
||||||
|
'quests' => array(), // quests list (displayed in character view), name => storage
|
||||||
|
|
||||||
|
'signature_enabled' => true,
|
||||||
|
'signature_type' => 'tibian', // signature engine to use: tibian, mango, gesior
|
||||||
|
'signature_cache_time' => 5, // how long to store cached file (in minutes), default 5 minutes
|
||||||
|
'signature_browser_cache' => 60, // how long to cache by browser (in minutes), default 1 hour
|
||||||
|
|
||||||
// online page
|
// online page
|
||||||
'online_record' => true, // display players record?
|
'online_record' => true, // display players record?
|
||||||
'online_vocations' => false, // display vocation statistics?
|
'online_vocations' => false, // display vocation statistics?
|
||||||
@@ -215,22 +175,20 @@ $config = array(
|
|||||||
'team_display_status' => true,
|
'team_display_status' => true,
|
||||||
'team_display_lastlogin' => true,
|
'team_display_lastlogin' => true,
|
||||||
'team_display_world' => false,
|
'team_display_world' => false,
|
||||||
'team_display_outfit' => true,
|
|
||||||
|
|
||||||
// bans page
|
// bans page
|
||||||
'bans_per_page' => 20,
|
'bans_limit' => 50,
|
||||||
|
'bans_display_all' => true, // should all bans be displayed? (sorted page by page)
|
||||||
|
|
||||||
// highscores page
|
// highscores page
|
||||||
'highscores_vocation_box' => true, // show 'Choose a vocation' box on the highscores (allowing peoples to sort highscores by vocation)?
|
'highscores_vocation_box' => true, // show 'Choose a vocation' box on the highscores (allowing peoples to sort highscores by vocation)?
|
||||||
'highscores_vocation' => true, // show player vocation under his nickname?
|
'highscores_vocation' => true, // show player vocation under his nickname?
|
||||||
'highscores_frags' => false, // show 'Frags' tab (best fraggers on the server)?
|
'highscores_frags' => false, // show 'Frags' tab (best fraggers on the server)? Only 0.3
|
||||||
'highscores_balance' => false, // show 'Balance' tab (richest players on the server)
|
|
||||||
'highscores_outfit' => true, // show player outfit?
|
'highscores_outfit' => true, // show player outfit?
|
||||||
'highscores_country_box' => false, // doesnt work yet! (not implemented)
|
'highscores_country_box' => false, // doesnt work yet! (not implemented)
|
||||||
'highscores_groups_hidden' => 3, // this group id and higher won't be shown on the highscores
|
'highscores_groups_hidden' => 3, // this group id and higher won't be shown on the highscores
|
||||||
'highscores_ids_hidden' => array(0), // this ids of players will be hidden on the highscores (should be ids of samples)
|
'highscores_ids_hidden' => array(0), // this ids of players will be hidden on the highscores (should be ids of samples)
|
||||||
'highscores_per_page' => 100, // how many records per page on highscores
|
'highscores_length' => 100, // how many records per page on highscores
|
||||||
'highscores_cache_ttl' => 15, // how often to update highscores from database in minutes (default 15 minutes)
|
|
||||||
|
|
||||||
// characters page
|
// characters page
|
||||||
'characters' => array( // what things to display on character view page (true/false in each option)
|
'characters' => array( // what things to display on character view page (true/false in each option)
|
||||||
@@ -244,17 +202,8 @@ $config = array(
|
|||||||
'quests' => true,
|
'quests' => true,
|
||||||
'skills' => true,
|
'skills' => true,
|
||||||
'equipment' => true,
|
'equipment' => true,
|
||||||
'frags' => false,
|
'frags' => false
|
||||||
'deleted' => false, // should deleted characters from same account be still listed on the list of characters? When enabled it will show that character is "[DELETED]"
|
|
||||||
),
|
),
|
||||||
'quests' => array(
|
|
||||||
//'Some Quest' => 123,
|
|
||||||
//'Some Quest Two' => 456,
|
|
||||||
), // quests list (displayed in character view), name => storage
|
|
||||||
'signature_enabled' => true,
|
|
||||||
'signature_type' => 'tibian', // signature engine to use: tibian, mango, gesior
|
|
||||||
'signature_cache_time' => 5, // how long to store cached file (in minutes), default 5 minutes
|
|
||||||
'signature_browser_cache' => 60, // how long to cache by browser (in minutes), default 1 hour
|
|
||||||
|
|
||||||
// news page
|
// news page
|
||||||
'news_limit' => 5, // limit of news on the latest news page
|
'news_limit' => 5, // limit of news on the latest news page
|
||||||
@@ -264,44 +213,38 @@ $config = array(
|
|||||||
|
|
||||||
// gifts/shop system
|
// gifts/shop system
|
||||||
'gifts_system' => false,
|
'gifts_system' => false,
|
||||||
|
|
||||||
// support/system
|
// support/system
|
||||||
'bug_report' => true, // this configurable has no effect, its always enabled
|
'bug_report' => true, // this configurable has no effect, its always enabled
|
||||||
|
|
||||||
// forum
|
// forum
|
||||||
'forum' => 'site', // link to the server forum, set to "site" if you want to use build in forum system, otherwise leave empty if you aren't going to use any forum
|
'forum' => 'site', // link to the server forum, set to "site" if you want to use build in forum system, otherwise leave empty if you aren't going to use any forum
|
||||||
'forum_level_required' => 0, // level required to post, 0 to disable
|
'forum_level_required' => 0, // level required to post, 0 to disable
|
||||||
'forum_post_interval' => 30, // in seconds
|
'forum_post_interval' => 30, // in seconds
|
||||||
'forum_posts_per_page' => 20,
|
'forum_posts_per_page' => 20,
|
||||||
'forum_threads_per_page' => 20,
|
'forum_threads_per_page' => 20,
|
||||||
// uncomment to force use table for forum
|
|
||||||
//'forum_table_prefix' => 'z_', // what forum mysql table to use, z_ (for gesior old forum) or myaac_ (for myaac)
|
|
||||||
|
|
||||||
// last kills
|
// last kills
|
||||||
'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.0, // how long to wait for the initial response from the server (default: 2 seconds)
|
|
||||||
|
|
||||||
// how often to connect to server and update status (default: every minute)
|
|
||||||
// if your status timeout in config.lua is bigger, that it will be used instead
|
|
||||||
// when server is offline, it will be checked every time web refreshes, ignoring this variable
|
|
||||||
'status_interval' => 60,
|
|
||||||
|
|
||||||
// admin panel
|
|
||||||
'admin_panel_modules' => 'statistics,web_status,server_status,lastlogin,created,points,coins,balance', // default - statistics,web_status,server_status,lastlogin,created,points,coins,balance
|
|
||||||
|
|
||||||
// other
|
// other
|
||||||
'anonymous_usage_statistics' => true,
|
'anonymous_usage_statistics' => true,
|
||||||
'email_lai_sec_interval' => 60, // time in seconds between e-mails to one account from lost account interface, block spam
|
'email_lai_sec_interval' => 60, // time in seconds between e-mails to one account from lost account interface, block spam
|
||||||
'google_analytics_id' => '', // e.g.: UA-XXXXXXX-X
|
'google_analytics_id' => '', // e.g.: UA-XXXXXXX-X
|
||||||
'experiencetable_columns' => 3, // how many columns to display in experience table page. * experiencetable_rows, 5 = 500 (will show up to 500 level)
|
'experiencetable_columns' => 5, // how many columns to display in experience table page. * experiencetable_rows, 5 = 500 (will show up to 500 level)
|
||||||
'experiencetable_rows' => 200, // till how many levels in one column
|
'experiencetable_rows' => 100, // till how many levels in one column
|
||||||
'date_timezone' => 'Europe/Berlin', // more info at http://php.net/manual/en/timezones.php
|
'date_timezone' => 'Europe/Berlin', // more info at http://php.net/manual/en/timezones.php
|
||||||
'footer_show_load_time' => true, // display load time of the page in the footer
|
|
||||||
|
'monsters' => array(),
|
||||||
'npc' => array()
|
'npc' => array()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// download link to client.
|
||||||
|
$config['client_download'] = 'http://tibia-clients.com/clients/download/'. $config['client'] .'/exe/windows';
|
||||||
|
$config['client_download_linux'] = 'http://tibia-clients.com/clients/download/'. $config['client'] .'/tar/linux';
|
||||||
|
|
||||||
|
?>
|
||||||
|
|||||||
BIN
images/del.png
|
Before Width: | Height: | Size: 318 B After Width: | Height: | Size: 433 B |
BIN
images/druid.png
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 38 KiB |
BIN
images/edit.png
|
Before Width: | Height: | Size: 363 B After Width: | Height: | Size: 450 B |
BIN
images/error.ico
|
Before Width: | Height: | Size: 4.2 KiB |
BIN
images/error.png
|
Before Width: | Height: | Size: 592 B After Width: | Height: | Size: 706 B |
BIN
images/false.png
|
Before Width: | Height: | Size: 845 B After Width: | Height: | Size: 1004 B |
BIN
images/hist.png
|
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 117 B |
|
Before Width: | Height: | Size: 530 B |
BIN
images/info.png
|
Before Width: | Height: | Size: 631 B After Width: | Height: | Size: 783 B |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
images/monsters/acolyte of the cult.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
images/monsters/adept of the cult.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
images/monsters/ancient scarab.gif
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
images/monsters/animated-statue.gif
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
images/monsters/annihilon.gif
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
images/monsters/apprentice sheng.gif
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
BIN
images/monsters/ashmunrah.gif
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
BIN
images/monsters/avalanche.gif
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
images/monsters/axeitus headbanger.gif
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
images/monsters/azure frog.gif
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
images/monsters/barbaria.gif
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
images/monsters/barbarian brutetamer.gif
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
images/monsters/barbarian headsplitter.gif
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
images/monsters/barbarian skullhunter.gif
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
images/monsters/betrayed wraith.gif
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
images/monsters/big boss trolliver.gif
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
images/monsters/black sheep.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
images/monsters/blazing fire elemental.gif
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
images/monsters/blistering fire elemental.gif
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
images/monsters/blood crab.gif
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
BIN
images/monsters/bloodpaw.gif
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
BIN
images/monsters/blue djinn.gif
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
BIN
images/monsters/bog raider.gif
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
BIN
images/monsters/bones.gif
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
BIN
images/monsters/bovinus.gif
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
BIN
images/monsters/brutus bloodbeard.gif
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
images/monsters/butterfly purple.gif
Normal file
|
After Width: | Height: | Size: 417 B |
BIN
images/monsters/butterfly.gif
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
BIN
images/monsters/carrion worm.gif
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
images/monsters/cave rat.gif
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
images/monsters/chakoya toolshaper.gif
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
images/monsters/chakoya tribewarden.gif
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
images/monsters/chakoya windcaller.gif
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
images/monsters/charged energy elemental.gif
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
BIN
images/monsters/cockroach.gif
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
images/monsters/colerian the barbarian.gif
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
images/monsters/coral frog.gif
Normal file
|
After Width: | Height: | Size: 834 B |
BIN
images/monsters/countess sorrow.gif
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
BIN
images/monsters/crazed beggar.gif
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
BIN
images/monsters/crimson frog.gif
Normal file
|
After Width: | Height: | Size: 1.2 KiB |