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

TFS 1.X+ TFS 1.2 - Where to change required vocation for items?

Xedoxo

Member
Joined
Oct 24, 2010
Messages
111
Reaction score
12
Hi

I can't find where can i change required voc for items. Example dsm can be used only by paladin and knights. / Tfs 1.2
And example required level for weapons (i know weapons.xml)
but i changed for every weapon and:
Code:
You see a fire sword (Atk:24 physical + 11 fire, Def:20 +1).
It can only be wielded properly by players of level 8 or higher.
It weighs 23.00 oz.

But for SCA its the same:
Code:
You see a stonecutter axe (Atk:50, Def:30 +3).
It can only be wielded properly by players of level 90 or higher.
It weighs 99.00 oz.
You feel the power of this mighty axe.
 
I can't find where can i change required voc for items. Example dsm can be used only by paladin and knights. / Tfs 1.2
Armor/helmet/legs etc. ex. DSM data/movements/movements.xml ( forgottenserver/data/movements/movements.xml at 1.2 · otland/forgottenserver (https://github.com/otland/forgottenserver/blob/1.2/data/movements/movements.xml#L602-L607) ):
XML:
    <movevent event="Equip" itemid="2492" slot="armor" function="onEquipItem">
        <vocation name="Knight" />
        <vocation name="Elite Knight" showInDescription="0" />
        <vocation name="Paladin" />
        <vocation name="Royal Paladin" showInDescription="0" />
    </movevent>
Weapons ex. haunted blade data/weapons/weapons.xml( forgottenserver/data/weapons/weapons.xml at 1.2 · otland/forgottenserver (https://github.com/otland/forgottenserver/blob/1.2/data/weapons/weapons.xml#L101C13-L104) ):
XML:
    <melee id="7407" level="30" unproperly="1">
        <vocation name="Knight" />
        <vocation name="Elite Knight" showInDescription="0" />
    </melee>
 
Armor/helmet/legs etc. ex. DSM data/movements/movements.xml ( forgottenserver/data/movements/movements.xml at 1.2 · otland/forgottenserver (https://github.com/otland/forgottenserver/blob/1.2/data/movements/movements.xml#L602-L607) ):
XML:
    <movevent event="Equip" itemid="2492" slot="armor" function="onEquipItem">
        <vocation name="Knight" />
        <vocation name="Elite Knight" showInDescription="0" />
        <vocation name="Paladin" />
        <vocation name="Royal Paladin" showInDescription="0" />
    </movevent>
Weapons ex. haunted blade data/weapons/weapons.xml( forgottenserver/data/weapons/weapons.xml at 1.2 · otland/forgottenserver (https://github.com/otland/forgottenserver/blob/1.2/data/weapons/weapons.xml#L101C13-L104) ):
XML:
    <melee id="7407" level="30" unproperly="1">
        <vocation name="Knight" />
        <vocation name="Elite Knight" showInDescription="0" />
    </melee>

If i delete example
Code:
 <vocation name="Knight" />
        <vocation name="Elite Knight" showInDescription="0" />

It will be for all voc or i have to add every voc ?
 
It will be for all voc or i have to add every voc ?
Yes. You can also add/remove level="30" to make it check level or not.

Other thing related:
unproperly="1" makes weapons deal 50% less damage for invalid vocation/level (too low level + wrong vocation makes it 25% [50% of 50%]),
with unproperly="0" it does 0 damage at all.
This attribute is often ignored on GOD characters (flag: PlayerFlag_IgnoreWeaponCheck)

100/50/25% damage code is in weapons.cpp:
C++:
		int32_t damageModifier = 100;
		if (player->getLevel() < getReqLevel()) {
			damageModifier = (isWieldedUnproperly() ? damageModifier / 2 : 0);
		}

		if (player->getMagicLevel() < getReqMagLv()) {
			damageModifier = (isWieldedUnproperly() ? damageModifier / 2 : 0);
		}
		return damageModifier;
 
Back
Top