• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

AAC Compatibility with TFS

Snavy

Bakasta
Senator
Joined
Apr 1, 2012
Messages
1,249
Solutions
71
Reaction score
621
Location
Hell
I have seen that Gesior has different branches for different versions of TFS.
I get that the reason is because of compatibility but I don't really know how, for instance, Gesior0.3.6_and_0.4_to_rev_3703, is not compatible with versions other than 0.3.6 and 0.4.

I'd appreciate a detailed answer.

EDIT:

btw, I checked out Znote's repo and on his main repo he mentiones that ZnoteAAC is compatible with 0.2.13, 0.3.6+, 1.2+
Znote AAC supports these versions:
  • TFS 0.2.13+ (Since initial release)
  • TFS 0.3.6+ (Since Znote AAC 1.2)
  • TFS 1.2+ (Since Znote AAC 1.5)
 
Last edited:
@Snavy
0.3.6 and 0.4 works with 0.3.6. In 'new' (not official) 0.3.6 (also called 0.3.7) and added new columns in database and they are not handled properly.

In 0.4 from revision 3703 there is column 'salt' in database in table 'accounts' to improve security. So I had to create new branch that uses 'salt' when player set new password to account and when he logins to website.

TFS 1.0+ has much changed database structure (wars, guilds, skills are in different places), so I had to rewrite some parts of it.
There is also removed 'multiworld' system (few otses in same database, characters on different 'worlds'), so I also removed it from acc. maker to make it a bit cleaner.
 
@Znote Would you please take a moment and explain how you have handled compatiblity issues

The functionality of Znote AAC basically consists of 4 files.
1. The config file. This is where you configurate basically everything.
2. The page file. This is any of the files in root directory[The files you see directly on the github repo without clicking on any folder]. (With the exception of config files, ipn_gateway files and the sub.php file. A layout may overwrite any of these page files, in which case you need to look into /layout/sub/ folder to see the custom version.
3. general.php file which is consist of some general purpose functions.
4. users.php file which is basically every OT related function.

I intentionally try to keep things as dependency free and simple as possible. You don't need to learn any framework or advanced stuff to contribute to my AAC. Just basic PHP and HTML. There is not an ocean of files to look through, just a handful to get an understanding of how Znote AAC is built. Simple and procedural. I barely even use classes, just purpose-specific functions for pretty much everything.

These 4 files is basically what you need to use CTRL+F in to figure out how backend stuff is coded/how it works. Compatibility has been created using lots of conditional statements. (found 35 of them in users.php if you search for "ServerEngine") and a flexible config file.

Issues between revisions of 0.3.6/7 is solved simply by making it optional in config.php. Salt is disabled by default, but can be enabled if your server supports it. Since the AAC creates these accounts, even if your distro supports salts, unless I add it to the account upon registratrion, they can login without it.

Znote AAC does not support multi-world. Most OT owners are just running 1 OT server, and multi-world bloats things up. Extra clicks on stuff like highscore. Unless your going multi-world, its just bothersome. If you have 2 worlds and you want to use Znote AAC you just gotta set up two instances of Znote AAC, one for each world.

Znote AAC does not alter any original OT tables, it only adds extra tables (etc znote_accounts, znote_players) that extends the original tables (accounts, players). That way it is irrelevant for my tables how the original tables look like. And the server doesn't get bloated parsing through irrelevant AAC data.

But it is a tedious job. @Nottinghster recently did an awesome job adding OTHire support to Znote AAC, feel free to look at the patch here. Look into users.php, you might need to click on it to open the diff since the file is pretty large and the change substantial. SQL queries that are done towards the target distribution has to be adapted to the differences in the database. And some things might have to be disabled because of unsupported features.

Btw Znote AAC supports these engines/versions:
  • OTHire
  • TFS 0.2
  • TFS 0.3/4
  • TFS 1.x
  • Distributions based on these (such as OTX).
 
Last edited:
The functionality of Znote AAC basically consists of 4 files.
1. The config file. This is where you configurate basically everything.
2. The page file. This is any of the files in root directory[The files you see directly on the github repo without clicking on any folder]. (With the exception of config files, ipn_gateway files and the sub.php file. A layout may overwrite any of these page files, in which case you need to look into /layout/sub/ folder to see the custom version.
3. general.php file which is consist of some general purpose functions.
4. users.php file which is basically every OT related function.

I intentionally try to keep things as dependency free and simple as possible. You don't need to learn any framework or advanced stuff to contribute to my AAC. Just basic PHP and HTML. There is not an ocean of files to look through, just a handful to get an understanding of how Znote AAC is built. Simple and procedural. I barely even use classes, just purpose-specific functions for pretty much everything.

These 4 files is basically what you need to use CTRL+F in to figure out how backend stuff is coded/how it works. Compatibility has been created using lots of conditional statements. (found 35 of them in users.php if you search for "ServerEngine") and a flexible config file.

Issues between revisions of 0.3.6/7 is solved simply by making it optional in config.php. Salt is disabled by default, but can be enabled if your server supports it. Since the AAC creates these accounts, even if your distro supports salts, unless I add it to the account upon registratrion, they can login without it.

Znote AAC does not support multi-world. Most OT owners are just running 1 OT server, and multi-world bloats things up. Extra clicks on stuff like highscore. Unless your going multi-world, its just bothersome. If you have 2 worlds and you want to use Znote AAC you just gotta set up two instances of Znote AAC, one for each world.

Znote AAC does not alter any original OT tables, it only adds extra tables (etc znote_accounts, znote_players) that extends the original tables (accounts, players). That way it is irrelevant for my tables how the original tables look like. And the server doesn't get bloated parsing through irrelevant AAC data.

But it is a tedious job. @Nottinghster recently did an awesome job adding OTHire support to Znote AAC, feel free to look at the patch here. Look into users.php, you might need to click on it to open the diff since the file is pretty large and the change substantial. SQL queries that are done towards the target distribution has to be adapted to the differences in the database. And some things might have to be disabled because of unsupported features.

Btw Znote AAC supports these engines/versions:
  • OTHire
  • TFS 0.2
  • TFS 0.3/4
  • TFS 1.x
  • Distributions based on these (such as OTX).

Awesome! thank you for the explanation.
 

Similar threads

Back
Top