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

[Showcase] New modifications (OTClient + TFS)

oen432

Legendary OT User
Joined
Oct 3, 2014
Messages
1,910
Solutions
55
Reaction score
2,137
Location
Poland
GitHub
Oen44
Hello,

I'll post here (or edit this post once in a while) new modifications I've made to OTClient and TFS.
I'm trying to use Lua as little as possible and make most modifications using C++ for better performance and easier usage.
At some point I'll post tutorials on how to create some of these modifications.

1. Items Tooltip WORK IN PROGRESS
- Displays item sprite, name, item type (sword, armor etc.), base stats (attack, defense, armor, range, hit chance etc.), abilities (elemental damage and protection) and item weight.
OrNurWX.gif

2. Advanced Trading WORK IN PROGRESS
- Replaces old trading system with new one, allowing to add and remove items from trading window.
bjKkuxC.gif

3. Combo Spells
New attributes to add in spells.xml - comboTo and comboFrom.
comboTo - next spell to cast
comboFrom - allow casting only if spell of that id was cast in last 3 seconds
Example with combo one > combo two > combo three.
XML:
<instant group="attack" spellid="200" comboTo="201" name="Combo Spell One" words="combo one" level="1" mana="0" premium="0" range="6" casterTargetOrDirection="1" blockwalls="1" cooldown="2000" groupcooldown="2000" needlearn="0" script="combo/one.lua">
    <vocation name="Sorcerer" />
</instant>
<instant group="attack" spellid="201" comboTo="202" comboFrom="200" name="Combo Spell Two" words="combo two" level="1" mana="0" premium="0" range="6" direction="1" blockwalls="1" cooldown="2000" groupcooldown="2000" needlearn="0" script="combo/two.lua">
    <vocation name="Sorcerer" />
</instant>
<instant group="attack" spellid="202" comboFrom="201" name="Combo Spell Three" words="combo three" level="1" mana="0" premium="0" range="6" casterTargetOrDirection="1" blockwalls="1" cooldown="2000" groupcooldown="2000" needlearn="0" script="combo/three.lua">
    <vocation name="Sorcerer" />
</instant>
Sorry for the sound, forgot to mute OBS.

4. Friendly Monsters
They are not summons, they won't harm players or NPCs but they will attack monsters and monsters can attack them. Can be customized as any other monster - look, stats, attacks etc.

5. Incantation Spells
Special spells that have to be cast in specific order to work. This is close to Combo Spells but not exactly. Combo Spells are used on cast while Incantation are used after X seconds or after last Incantation spell is used. I hope this video will explain it better.

6. Player Progressbar
White bar below players health bar. Can be used on server side and sent to the player via lua player:setProgressbar(duration) where duration is time (in ms) for the bar to shrink (0 = remove bar). That allows for various usage that you will see in the future.

7. Teleportation Crystal
Teleports back to your city temple after 8 seconds. Movement, attacking or being attacked will cancel teleportation.

8. Shrines (Download Here)
Can be placed on the map with Action ID that is connected to specific effect, like bonus damage. Upon activation by player, shrine is deactivated and player gets whatever bonus is assigned to that shrine. Every 1 minute, shrines will try to recharge (% chance per shrine, everything is configurable). Shrines that are not active are indicated by smoke (poof) effect. Right now there are 4 shrines - Damage Bonus, Protection Bonus, Regeneration and Experience Bonus. Upon Logout or Death, shrine effects are removed from the player.

More coming soon! Follow this thread as this post will be edited with more stuff.
 
Last edited by a moderator:
Added new modification I'm working on, Advanced Trading.

#Edit
New GIF for Advanced Trading, Drag&Drop function.
Tomorrow I'll work on sending trade request to other player and synchronizing items between two players.
bjKkuxC.gif
 
Last edited:
Can I have your first born?
This is great keep that good work goinf
 
Can I have your first born?
This is great keep that good work goinf
Thanks and... whoa :D

Future modifications I'd like to work on:

1. Equipment Crafting
  • Special crafting GUI, list of items we can craft and ingredients needed to craft them
  • Chance to fail and lose ingredients without any results, the better our Crafting skill is the higher success chance
  • Crafting skill won't be enough to unlock crafting recipes, player will have to complete quests and get Crafting Plans to learn certain recipes
2. Upgrading
  • Adding sockets to items
  • Putting gems into these sockets
  • Upgrading gems to higher tier
  • Players will have to work for it but it's going to be very rewarding.
  • Special GUI for adding sockets and removing gems from sockets (won't extract gems so players will have to think before upgrading)
3. Resources Gathering
  • Mining - for equipment crafting and with a chance to get upgrading gems
  • Woodcutting - also for equipment crafting, mostly for weapons, ammunition and tools
  • Herblore - this is important, for another mod I'll work on - Alchemy, more below
  • I'll try my best to make gathering pleasant, not boring and definitely not dull
4. Alchemy
  • This can be another unique modification that allows making new potions
  • Using Herblore skill, we can gather proper ingredients for specific potion
  • There are going to be new potions added like: Skills Boosters (+Sword, +Magic, +Distance etc.) and Stats Boosters (+ATK, +DEF, +Magic-ATK, +Speed, +Attack Speed etc.)
  • The better our Alchemy skill is the more powerful potions we can make, starting from Ordinary and ending on Master potions (4 Tiers, 25% better effect with each tier).
With these modifications, server can have better economy than ever. Some people can choose to work on gathering items and sell them to someone that prefers to craft equipment or make potions. Focusing on everything by yourself sure will be rewarding but you will have to spend time on it.
 
Last edited:
Item tooltips looks so good. The both clicks method Tibia uses its so primitive. If you could enable/disable tooltips with the press of a hotkey (just like ARPG games do, or fix the position to a corner/module) it can completely replace the actual system. Could that work with players/monsters too?

The trade window looks very good aswell, better visibility its exactly what needed. Does this modification require any edit on the server side?
 
Item tooltips looks so good. The both clicks method Tibia uses its so primitive. If you could enable/disable tooltips with the press of a hotkey (just like ARPG games do, or fix the position to a corner/module) it can completely replace the actual system. Could that work with players/monsters too?
Tooltips in 99% of games are following mouse position, just like here, fixed position won't be handy. Imaging looking across the screen to see item info, then looking back at your BP to select another item and so on. Adding option in Settings to disable tooltips won't be that hard. I won't do that because I want to expand them with more information on items and their upgrades that I'll work on.
Can be done with players and monsters but that would be annoying rather than helpful. I will work on players and monsters inspection. When you open creature menu (with Look/Follow/Attack etc.) new option will be available "Inspect" and that will show you base stats like HP, Mov. Speed, Attack, Armor etc. As for players I'll consider adding their equipment inspection too.

As for trading, yes, it does require server side modifications. New methods for sending trade requests and when player accepts or declines them, adding items into trade window and synchronizing that between traders.

Forgot to mention in my previous post about upcoming modifications. I'll change how Gold Coins work. There will be little if none coins as items anymore, every gold/plat/crystal coin that monsters drop will be sent to killers pocket. Any gold coin item can be added to the pocket by Right-Clicking. Everything will be placed in your pocket and from that pocket NPCs will remove gold or add to. That will work with new trading system, as you can see in left and right bottom corners, I'll add button there that will allow traders to put any number and add gold offer into trade window.

#Edit
Advanced Trading takes way more time than expected. Creating communication between server and client is so dull... Copy & paste mostly 😩
Not sure if I'll be able to show something in next 2 hours or tomorrow.

#Edit2
Got sending request and accepting/declining working. Now accepting/declining trade offer, then items synchronization and at the very end getting rid of potential bugs (player logging out while trading, moving too far, dying etc.).
 
Last edited:
Try to add lock for secure trading, if player remove items before accepting and such.
What I mean is before accepting put lock and once both players lock it you can accept the trade, if moving one item out or in will remove lock and need both players to lock again
 
Try to add lock for secure trading, if player remove items before accepting and such.
What I mean is before accepting put lock and once both players lock it you can accept the trade, if moving one item out or in will remove lock and need both players to lock again
No worries, I have thought about everything but thanks :)

#Edit
Day 2 of Advanced Trading, I'm starting to feel pain and want to scream.
 
Last edited:
That's generally great but does not make much sense in OTClient.
How's that? I know that modules are easier to manage but if someone like me is trying to edit the hell out of this client then C++ is the way to go.
All GUI related stuff are on Lua side, most logic is on C++ side so there are as little as possible bindings.
 
So... Combo Spells took me 30min but can change a lot in magic in Tibia.

New attributes to add in spells.xml - comboTo and comboFrom.
comboTo - next spell to cast
comboFrom - allow casting only if spell of that id was cast in last 3 seconds
Example with combo one > combo two > combo three.
XML:
<instant group="attack" spellid="200" comboTo="201" name="Combo Spell One" words="combo one" level="1" mana="0" premium="0" range="6" casterTargetOrDirection="1" blockwalls="1" cooldown="2000" groupcooldown="2000" needlearn="0" script="combo/one.lua">
    <vocation name="Sorcerer" />
</instant>
<instant group="attack" spellid="201" comboTo="202" comboFrom="200" name="Combo Spell Two" words="combo two" level="1" mana="0" premium="0" range="6" direction="1" blockwalls="1" cooldown="2000" groupcooldown="2000" needlearn="0" script="combo/two.lua">
    <vocation name="Sorcerer" />
</instant>
<instant group="attack" spellid="202" comboFrom="201" name="Combo Spell Three" words="combo three" level="1" mana="0" premium="0" range="6" casterTargetOrDirection="1" blockwalls="1" cooldown="2000" groupcooldown="2000" needlearn="0" script="combo/three.lua">
    <vocation name="Sorcerer" />
</instant>

Sorry for the sound, forgot to mute OBS.
 
But I think moving logic to C++ is the only way to "protect" your client from being "stolen", am I right?
That too. You could create own packer that will be hard to hack and get files out of it but yeah, images, modules and stuff like that are vulnerable.
Lua is just a helper, nothing else, there is nothing at all that can't be done in C++ and won't work better, it's more about the way of doing it.
 
It isn't "your" client the client from what I've read was given to the community. How can anyone steal something that belongs to everyone?
People can edit it pretty heavily by themselves, but if you're talking about contributing to open source - that's what the quotation marks are for.
 
Guys, could you please find different place to discuss this? I would prefer to stay on the topic of this thread, thanks 🤓
 
It isn't "your" client the client from what I've read was given to the community. How can anyone steal something that belongs to everyone?

License
Otclient is made available under the MIT License, thus this means that you are free to do whatever you want, commercial, non-commercial, closed or open.

...

If instead of coming to argue and read he mention he will try to make a tutorial on how to do the changes your self...

....
Also license let you do it
 
Another new thing, Friendly Monsters. They are not summons, they won't harm players nor NPCs but they will attack monsters and monsters can attack them. Can be customized as any other monster, look, stats, attacks etc.

Why did I make it? Well... Considering how much I want to change things, I'll do very, very naughty thing to NPCs in the game. I'll make them vulnerable to attacks (monster attacks). They will die and respawn after few minutes of course, maybe with different look and name but same function, so we know that they are really dying, oh lord I'm so evil.
Now... Cities will be raided from time to time so it would be nice if there is someone to protect NPCs while players aren't nearby. So that's why Guardians came to live.
 
Last edited:
Another new thing, Friendly Monsters. They are not summons, they won't charm players or NPCs but they will attack monsters and monsters can attack them. Can be customized as any other monster, look, stats, attacks etc.

Why did I make it? Well... Considering how much I want to change things, I'll do very, very naughty thing to NPCs in the game. I'll make them vulnerable to attacks (monster attacks). They will die and respawn after few minutes of course, maybe with different look and name but same function, so we know that they are really dying, oh lord I'm so evil.
Now... Cities will be raided from time to time so it would be nice if there is someone to protect NPCs while players aren't nearby. So that's why Guardians came to live.

Would I able too touch them naughty?


Anyways your doong some magic sir well done and keep up😁
 
Back
Top