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

[OTClient] The Forgotten Tibia Server 0.8

how it works runes and spells? i mean, how can i use sd ingame? everyone who train your faith and magic can use? just spell?
 
Open the client and click on the spellbook button, you can see all spells and runes with intelligence and faith values. When you look at runes I think you can see it too. I've put SD needing 25 intelligence and 25 faith I think, paralyze 25 int and 23 faith, not sure. But that only grants you access to use the rune. If you want to make good damage you will have to increase magic level.

Remember that if you change this values on spells.xml you will have to change this in OTClient too.

Hi @Togu

Can i remove Critical hit, Life leech and Mana leech?


Remove on modules/game_skills/skill.otui: (open with notepad)
Code:
    SmallSkillButton
      id: skillId9
      SkillNameLabel
        !text: tr('Life Leech Chance')
      SkillValueLabel

    SmallSkillButton
      id: skillId10
      SkillNameLabel
        !text: tr('Life Leech Amount')
      SkillValueLabel

    SmallSkillButton
      id: skillId11
      SkillNameLabel
        !text: tr('Mana Leech Chance')
      SkillValueLabel

    SmallSkillButton
      id: skillId12
      SkillNameLabel
        !text: tr('Mana Leech Amount')
      SkillValueLabel


This way it will be removed, but you will receive this errors on terminal/console (ctrl + t):
Code:
ERROR: protected lua call failed: LUA ERROR:
/game_skills/skills.lua:107: attempt to index local 'skill' (a nil value)
stack traceback:
    [C]: in function '__index'
    /game_skills/skills.lua:107: in function 'setSkillValue'
    /game_skills/skills.lua:418: in function </game_skills/skills.lua:417>
ERROR: protected lua call failed: LUA ERROR:
/game_skills/skills.lua:107: attempt to index local 'skill' (a nil value)
stack traceback:
    [C]: in function '__index'
    /game_skills/skills.lua:107: in function 'setSkillValue'
    /game_skills/skills.lua:418: in function </game_skills/skills.lua:417>
ERROR: protected lua call failed: LUA ERROR:
/game_skills/skills.lua:107: attempt to index local 'skill' (a nil value)
stack traceback:
    [C]: in function '__index'
    /game_skills/skills.lua:107: in function 'setSkillValue'
    /game_skills/skills.lua:418: in function </game_skills/skills.lua:417>
ERROR: protected lua call failed: LUA ERROR:
/game_skills/skills.lua:107: attempt to index local 'skill' (a nil value)
stack traceback:
    [C]: in function '__index'
    /game_skills/skills.lua:107: in function 'setSkillValue'
    /game_skills/skills.lua:418: in function </game_skills/skills.lua:417>

I don't know now how to solve this problem, but I think you can play with that without crashing.
 
Last edited:
Open the client and click on the spellbook button, you can see all spells and runes with intelligence and faith values. When you look at runes I think you can see it too. I've put SD needing 25 intelligence and 25 faith I think, paralyze 25 int and 23 faith, not sure. But that only grants you access to use the rune. If you want to make good damage you will have to increase magic level.

Remember that if you change this values on spells.xml you will have to change this in OTClient too.

How can i change this window?
 
File modules/gamelib/spells.lua has all spell values.
Folder modules/game_spelllist/ has backend things like buttons position and labels text etc

'Filters' considers your current int/faith.
'Group' works for every spell.
This feature is very important if you gonna play as mage.

34699
 
Last edited:
You start as non-vocation (vocation 0, I think) and this is the only vocation being used.
By default we have 8 vocations, you just have to change their name and behaviours in .xml and .lua files. For more complex things you will need source code. The code is available on GitHub.
:)

'Filters' considers your current int/faith.
'Group' works for every spell.
This feature is very important if you gonna play as mage.

View attachment 34698

@icekis I edited and answered on the other reply how to remove leechs from skill.


Will the players have access to these client folders?

About the spells, if i am a knight, what's the difficulty to unlock berseker spell? Would mages have high damage with this spell?

Thanks for fast feedback
 
About the spells, if i am a knight, what's the difficulty to unlock berseker spell? Would mages have high damage with this spell?
"Physical" spells needs strenght or dexterity. On the gif you can see on the "description: " when I select "exori".

Nothing can prevent a knight from having 25 int and 25 faith and use sd, but he will have to spend many points to reach that and still have to spend more points on magic level, this way (I think) he will be a weak physical knight with low health or without capacity and not good enough with runes.

So, for me its balanced.

Edit:
Divine spells (san) are the only attack spells that needs faith and exori san is a little stronger than other elemental exoris.

Will the players have access to these client folders?
Yeah, they will... But the only reason for some player change the values on client is if he wants to make a fake screenshot or get a headache, cause the real values are on server-side.

But there are some known methods to encrypt lua files, you can dig a little on internet and here on forum if you still wants it.
 
Last edited:
Code:
From level 1 to 8, you will receive 2 points per level.
From level 8 to 40, you will receive 4 points per level.
From level 40 to 60, you will receive 3 points per level.
From level 60 to 80, you will receive 2 points per level.
From level 80 to 100, you will receive 1 point per level.
After level 100, you will receive 1 point each 2 levels you get.

Did you tested this settings? It was made for lowrates?
 
Everything was designed thinking on 220 as maximum level and Demon / Juggernaut as the most powerful monsters and POI as the most wanted quest. Stopped playing Tibia on 8.6 here 😝

Me and some friends played and everybody liked it. They were always asking me to put server online to play alone kkkk

The only discussion we were having is if the skills should have a limit (like 130, to keep the Tibia style) or unlimited (so a level 200 may have strenght 150).
 
UPDATE WITH PSYCHONAUTS' AUTOLOOT AND BUTTONS ON CLIENT TO ENABLE/DISABLE AUTOLOOT:


Download DLLs, executable, data, src and vc14 zip file.
Configure the config.lua to match your database.
Run your local database, create a new database, import the schema.sql found on data folder.
Run the server.

Download The Forgotten Tibia Client for players.
Run the client.
Login with 0/0 (God) or 1/1 (No Build - new players are a copy from this, you have to configure it on Gesior).

 
Last edited:
wich files where updated? @Togu
Removed instruction for good processors on project;
Added icon images;

Set 'Enable Enhanced Instruction Set' to 'Not Set';
Added icon images;

Added Psychonauts' AutoLoot System;
Removed my AutoLoot Gold & Addons;

Added Psychonauts' AutoLoot System;
Removed my AutoLoot Gold & Addons;

Little text corrections;
Added Psychonauts' AutoLoot;
Removed my AutoLoot Gold & Addons;

Added Taurus Mace to weapons giving critical;
Added schema.sql with 0/0 and 1/1 accounts;

The repository is a mess at the moment cause I made the uploads through browser. I'm sorry about that.
It says "Showing 22 changed files with 4,236 additions and 1,372 deletions" but when you look deep there is just changes in 1 or 2 files.

What I did on server was implement this system: Feature - Auto Loot [TFS 1.3] (https://otland.net/threads/auto-loot-tfs-1-3.255791/) (see files used);
Corrected schema.sql so everybody can test it easy;
Added taurus mace to movements.xml and weapons.xml (critical hit chance and damage + bleeding effect);

What I did on client was implement the buttons to say "!add lootId" and "!remove lootId".

Today I'm gonna organize repositories and setup my SourceTree software to make commits less messy.
 
WASD function and space bar attack are not working correctly.

When WASD function is activated if i type any message disable and i can only activate manually.


EDIT----

Is there a way to block access of the players to the client's modules folder?
 
Last edited:
@Togu good job this is looking better each time.

I dont know if its posible for you to add/fix the sommons teleport into player.
Btw this is just a personal preference.

Ive tried to fix it, but not succes yet.
 
WASD function and space bar attack are not working correctly.

When WASD function is activated if i type any message disable and i can only activate manually.


EDIT----

Is there a way to block access of the players to the client's modules folder?
Yeah, I have to change the shortcut to cancel WASD walk.
Don't know how to block the access.

@Togu good job this is looking better each time.

I dont know if its posible for you to add/fix the sommons teleport into player.
Btw this is just a personal preference.

Ive tried to fix it, but not succes yet.
Hmm.. Is there any code with that? If there is, it is easy to transfer to my source.

Or you can try something like (pseudo code when player change floor and has summons):
Code:
hp1 = getSummon1Life();
hp2 = getSummon2Life();
manaPlayer = getPlayerMana();

destroySummons();
fillMana();
summonMonsters();
setMonstersHP(hp1, hp2);
resetPlayerMana(manaPlayer);

If I implement that I'm gonna do with a config.lua option to set true or false this system.
 
someone helped me with this, not tested yet
XML:
<event type="think" name="SummonThink" script="custom/summon_think.lua" />

Lua:
summon:registerEvent('SummonThink')

Lua:
function onThink(creature, interval)
    local master = creature:getMaster()
    if not master then return true end
function onThink(creature, interval)
    local master = creature:getMaster()
    if not master then return true end

    local pos = creature:getPosition()
    local master_pos = master:getPosition()
    if getDistanceBetween(pos, master_pos) > 7 or master_pos.z ~= pos.z then
        if creature:teleportTo(master_pos) then
            pos:sendMagicEffect(CONST_ME_POFF)
        end
    end
    return true
end
    local pos = creature:getPosition()
    local master_pos = master:getPosition()
    if getDistanceBetween(pos, master_pos) > 7 or master_pos.z ~= pos.z then
        if creature:teleportTo(master_pos) then
            pos:sendMagicEffect(CONST_ME_POFF)
        end
    end
    return true
end
 
Last edited:
Back
Top