• 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!

[8.60] TFS 0.4 Rev3996 War & Cast

Yan_Liima

Member
Joined
Jul 20, 2015
Messages
24
Reaction score
18
Location
Brasil
Hello guys, at the end of last year I was studying and working with TFS 0.4 rev3884, and I saw that there were some bugs and that there was no Cast included. Based on that, I decided to update and optimize the font, as it is still one of the most used in the world of Otserv. I decided to share my work with you! I believe it can be one of the best REVs today.
I count on your feedback, if there is a bug, something that has to change/optimize, do not hesitate to let me know here in the topic. All help is welcome xD

TheForgottenServer.pngThe Forgotten Server, Tibia Version: 8.60TheForgottenServer.png
- Changelog:
• War System
• Cast System (Summ's Cast, implemented in Source by me and corrected by it. With a new function that I added from Kick.)
• Anti-Disclosure (Configurable in moon config)
• Anti-push bug fixed!
• ElfBot bugs fixed (De party and some others).

• Problem of not accepting other items fixed (skipItemsVersionCheck);
• Opcode included;
• Removed Malformed File error;
• creatureevent onMoveItem () & onMoveItem2 () included;
• getOtsysTime (), getPlayerPing (cid), doPlayerSendPing (cid) included;
• doPlayerOpenChannel function included;
• getCreaturePathTo () function included;
• included doCetureLight () function;

• Added Max Packet Per Second (It is something that was not in 0.4 and I decided to. Ta 100%)
• Added exhaust when buying / selling items (removed from the Fir3 src ...)
• Clone bug using! Disband command fixed!
• Corrected house commands (like Aleta Som for example ..)
• Upon entering PZ remove battle
• Salt removed
• Chat log, saves everything that players say (Activate in config.lua: "logsPlayers", you need to create the "players" folder in the logs.)
• The /addskill command that caused a freeze has been fixed!
• Being able to attack & use rune at the same time.
• It is possible to make the monsters be born even with the player close (in config.lua leave the allowBlockSpawn as false)
• With healthHealingColor and manaHealingColor (to change the colors of the heal, configurable in the moon config)
• Maximum number of players has been added to the guild using the invite command. It is possible to change the limit in config.lua (maxPlayerGuild)
• Mailbox Block added (more difficult clone items with parcel system) + Extra settings in the mail system.
••• And much more!!! •••

Inside the folder contains config.lua with all the tags already added.

The distro was tested on Windows and Linux Ubuntu 14.04, both worked very well!

Have a great time! :D
 

Attachments

  • 3996-master.rar
    3.8 MB · Views: 553 · VirusTotal
  • TheForgottenServer rev3996 8.6(x32).rar
    1.2 MB · Views: 450 · VirusTotal
yo i have tried to compile it with dev cpp but at end im getting this error

5665caead91d8c84246dd979fe294786.png

Gyazo (https://gyazo.com/5665caead91d8c84246dd979fe294786)
 
I'm using your libs and includes and I still can't compile on windows 10 vc 2010, a lot of warnings and build fail :/
 
@Yan_Liima - What all was modified to the onThing function? I had to rewrite a script that was searching for uniqueID tiles on the map, then checking if there was a player onThing(pos), there was no error and it works perfectly on a clean 3884 compile - but not on this one.

Lua:
for i = 17000, 17122 do
        local pos = getThingPos(i)
        if not isPlayer(getTopCreature(pos).uid) then
            doTeleportThing(cid, pos)
            return
        end
    end

Also, is there a github for this that the community can access/contribute too?
 
Last edited:
Code:
rsa.o: In function `RSA::~RSA()':
rsa.cpp:(.text+0xa6): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0xaf): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0xb8): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0xc1): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0xca): undefined reference to `__gmpz_clear'
rsa.o:rsa.cpp:(.text+0xd6): more undefined references to `__gmpz_clear' follow
rsa.o: In function `RSA::getPublicKey(char*)':
rsa.cpp:(.text+0x169): undefined reference to `__gmpz_sizeinbase'
rsa.cpp:(.text+0x1e8): undefined reference to `__gmpz_export'
rsa.o: In function `RSA::RSA()':
rsa.cpp:(.text+0x236): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x244): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x252): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x260): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x26e): undefined reference to `__gmpz_init2'
rsa.o:rsa.cpp:(.text+0x27f): more undefined references to `__gmpz_init2' follow
rsa.o: In function `RSA::initialize(char const*, char const*, char const*)':
rsa.cpp:(.text+0x2ed): undefined reference to `__gmpz_set_str'
rsa.cpp:(.text+0x301): undefined reference to `__gmpz_set_str'
rsa.cpp:(.text+0x315): undefined reference to `__gmpz_set_str'
rsa.cpp:(.text+0x324): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x333): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x345): undefined reference to `__gmpz_sub_ui'
rsa.cpp:(.text+0x357): undefined reference to `__gmpz_sub_ui'
rsa.cpp:(.text+0x366): undefined reference to `__gmpz_invert'
rsa.cpp:(.text+0x377): undefined reference to `__gmpz_mod'
rsa.cpp:(.text+0x38b): undefined reference to `__gmpz_mod'
rsa.cpp:(.text+0x39d): undefined reference to `__gmpz_mul'
rsa.cpp:(.text+0x3a7): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0x3b1): undefined reference to `__gmpz_clear'
rsa.o: In function `RSA::decrypt(char*)':
rsa.cpp:(.text+0x4f5): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x503): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x511): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x51f): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x52d): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x550): undefined reference to `__gmpz_import'
rsa.cpp:(.text+0x566): undefined reference to `__gmpz_mod'
rsa.cpp:(.text+0x57a): undefined reference to `__gmpz_powm'
rsa.cpp:(.text+0x58d): undefined reference to `__gmpz_mod'
rsa.cpp:(.text+0x5a4): undefined reference to `__gmpz_powm'
rsa.cpp:(.text+0x5b5): undefined reference to `__gmpz_sub'
rsa.cpp:(.text+0x5c9): undefined reference to `__gmpz_mul'
rsa.cpp:(.text+0x5d9): undefined reference to `__gmpz_mod'
rsa.cpp:(.text+0x5f4): undefined reference to `__gmpz_mul'
rsa.cpp:(.text+0x5fe): undefined reference to `__gmpz_set_ui'
rsa.cpp:(.text+0x60e): undefined reference to `__gmpz_add'
rsa.cpp:(.text+0x61b): undefined reference to `__gmpz_sizeinbase'
rsa.cpp:(.text+0x6a8): undefined reference to `__gmpz_export'
rsa.cpp:(.text+0x6b2): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0x6bb): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0x6c4): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0x6cd): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0x6d6): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0x71c): undefined reference to `__gmpz_add'
rsa.cpp:(.text+0x729): undefined reference to `__gmpz_set'
Debian 8
any idea?
 
Ended up having to revert to @Fir3element's 3777 source because this source broke my datapack for 3884, the onThing broke numerous quest teleports as well as numerous other things that used the getThingPos() - so just be careful guys! I would recommend TFS 1.3 downgraded to 8.6 or the 3777 rev compared to this until this bug is addressed. (It's a simple fix of modifying how the Anti-Push system works, atleast I'm pretty sure; but not worth the headaches for me right now when the other source works fine)
 
@Yan_Liima - What all was modified to the onThing function? I had to rewrite a script that was searching for uniqueID tiles on the map, then checking if there was a player onThing(pos), there was no error and it works perfectly on a clean 3884 compile - but not on this one.

Lua:
for i = 17000, 17122 do
        local pos = getThingPos(i)
        if not isPlayer(getTopCreature(pos).uid) then
            doTeleportThing(cid, pos)
            return
        end
    end

Also, is there a github for this that the community can access/contribute too?
I tried to post directly on Github, but the administrators didn't allow it. I can't even edit the download that is here, the forum is very limited. I recommend taking a look at my Git Hub that is bug free
@forumek
 
Code:
rsa.o: In function `RSA::~RSA()':
rsa.cpp:(.text+0xa6): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0xaf): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0xb8): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0xc1): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0xca): undefined reference to `__gmpz_clear'
rsa.o:rsa.cpp:(.text+0xd6): more undefined references to `__gmpz_clear' follow
rsa.o: In function `RSA::getPublicKey(char*)':
rsa.cpp:(.text+0x169): undefined reference to `__gmpz_sizeinbase'
rsa.cpp:(.text+0x1e8): undefined reference to `__gmpz_export'
rsa.o: In function `RSA::RSA()':
rsa.cpp:(.text+0x236): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x244): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x252): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x260): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x26e): undefined reference to `__gmpz_init2'
rsa.o:rsa.cpp:(.text+0x27f): more undefined references to `__gmpz_init2' follow
rsa.o: In function `RSA::initialize(char const*, char const*, char const*)':
rsa.cpp:(.text+0x2ed): undefined reference to `__gmpz_set_str'
rsa.cpp:(.text+0x301): undefined reference to `__gmpz_set_str'
rsa.cpp:(.text+0x315): undefined reference to `__gmpz_set_str'
rsa.cpp:(.text+0x324): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x333): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x345): undefined reference to `__gmpz_sub_ui'
rsa.cpp:(.text+0x357): undefined reference to `__gmpz_sub_ui'
rsa.cpp:(.text+0x366): undefined reference to `__gmpz_invert'
rsa.cpp:(.text+0x377): undefined reference to `__gmpz_mod'
rsa.cpp:(.text+0x38b): undefined reference to `__gmpz_mod'
rsa.cpp:(.text+0x39d): undefined reference to `__gmpz_mul'
rsa.cpp:(.text+0x3a7): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0x3b1): undefined reference to `__gmpz_clear'
rsa.o: In function `RSA::decrypt(char*)':
rsa.cpp:(.text+0x4f5): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x503): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x511): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x51f): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x52d): undefined reference to `__gmpz_init2'
rsa.cpp:(.text+0x550): undefined reference to `__gmpz_import'
rsa.cpp:(.text+0x566): undefined reference to `__gmpz_mod'
rsa.cpp:(.text+0x57a): undefined reference to `__gmpz_powm'
rsa.cpp:(.text+0x58d): undefined reference to `__gmpz_mod'
rsa.cpp:(.text+0x5a4): undefined reference to `__gmpz_powm'
rsa.cpp:(.text+0x5b5): undefined reference to `__gmpz_sub'
rsa.cpp:(.text+0x5c9): undefined reference to `__gmpz_mul'
rsa.cpp:(.text+0x5d9): undefined reference to `__gmpz_mod'
rsa.cpp:(.text+0x5f4): undefined reference to `__gmpz_mul'
rsa.cpp:(.text+0x5fe): undefined reference to `__gmpz_set_ui'
rsa.cpp:(.text+0x60e): undefined reference to `__gmpz_add'
rsa.cpp:(.text+0x61b): undefined reference to `__gmpz_sizeinbase'
rsa.cpp:(.text+0x6a8): undefined reference to `__gmpz_export'
rsa.cpp:(.text+0x6b2): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0x6bb): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0x6c4): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0x6cd): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0x6d6): undefined reference to `__gmpz_clear'
rsa.cpp:(.text+0x71c): undefined reference to `__gmpz_add'
rsa.cpp:(.text+0x729): undefined reference to `__gmpz_set'
Debian 8
any idea?

I have the same error
 
I have the same error
The linker actually found the gmp import library in your PATH, but the symbols inside it are not matching with the ones included by project header files. Probably something related to the version you have in your path versus some old version he've used. TLDR: the API has changed and your system provides a newer version. Just a shot, need more info, but try comparing both versions. If so, you have to checkout the same version he used and compile it yourself. @EDIT: maybe I'm overthinking; I'm assuming you are already linking to the lib, but are you? XD
 
Last edited:
I have the same error
The linker actually found the gmp import library in your PATH, but the symbols inside it are not matching with the ones included by project header files. Probably something related to the version you have in your path versus some old version he've used. TLDR: the API has changed and your system provides a newer version. Just a shot, need more info, but try comparing both versions. If so, you have to checkout the same version he used and compile it yourself. @EDIT: maybe I'm overthinking; I'm assuming you are already linking to the lib, but are you? XD

By mistake probably using Dev cpp, right? It is necessary to install openssl in Packman.exe which is in its own folder.
I'll leave the ssl download here. And what about the Visual Studio problem it's already been fixed. I couldn't update here in the topic but use the GitHub version

@EDIT: Oops, I made a mistake. now that I saw it was in Debian 8. I believe Tiago is right
 

Attachments

  • openssl-0.9.8-1cm.rar
    1.8 MB · Views: 12 · VirusTotal
Yes, tfs 0.4 is legacy code after all (and I see no problem with this at all, handling with legacy code is part of the job), but since linux distros usually keep everything up-to-date, it's something to pay attention. But could happen in msys2, since it's arch based.

I still think it's a version issue, otherwise ./configure would fail, or am I wrong?
 
Back
Top