• 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 0.2] Serious problem with armors "Weild" attributes. *Solved, solution inside*

Guitar Freak

_LüA_n☺b_
Joined
Dec 27, 2008
Messages
831
Reaction score
13
Location
Caracas, Venezuela
Hey there, well straight to the point, Im using TFS 0.2 client 8.4 and in my server I have custom promotions, so i.e knights wont promote to Elite Knights but to something else.

Now, the thing is, I was editing some armors and I ended up stuck in "earthborn titan armor" (id8882), because that armor "can only be weilded by knights of lvl 100", so when I try to use it on the custom promotion, I cant. If I do it with a non-promoted char it works perfectly.

Usually the weapons have those "weild" properties too but its possible to change it easily on weapons.xml, but in armors I just cant find where to modify it.

Anyone knows anything about that?
I was checking on sources, on items.cpp and at the beginning it says this:

"ItemType::ItemType()
{
article = "";
group = ITEM_GROUP_NONE;
type = ITEM_TYPE_NONE;
stackable = false;
useable = false;
moveable = true;
alwaysOnTop = false;
alwaysOnTopOrder = 0;
pickupable = false;
rotable = false;
rotateTo = 0;
hasHeight = false;

floorChangeDown = true;
floorChangeNorth = false;
floorChangeSouth = false;
floorChangeEast = false;
floorChangeWest = false;

blockSolid = false;
blockProjectile = false;
blockPathFind = false;

wieldInfo = 0;
minReqLevel = 0;
minReqMagicLevel = 0;
"


Im guessing those 3 last lines have something to do with it but I still cant figure how to modify the armor itself.

EDIT: I also found this in item.cpp:

"s << ".";
if(it.wieldInfo != 0)
{
s << std::endl << "It can only be wielded properly by ";
if(it.wieldInfo & WIELDINFO_PREMIUM)
s << "premium ";

if(it.wieldInfo & WIELDINFO_VOCREQ)
s << it.vocationString;
else
s << "players";

if(it.wieldInfo & WIELDINFO_LEVEL)
s << " of level " << (int32_t)it.minReqLevel << " or higher";

if(it.wieldInfo & WIELDINFO_MAGLV)
{
if(it.wieldInfo & WIELDINFO_LEVEL)
s << " and";
else
s << " of";

s << " magic level " << (int32_t)it.minReqMagicLevel << " or higher";
}

s << ".";
}
"

Might help you figure out how to help me, I still have no idea what to do but Ill keep looking while I wait for an answer here.

If anyone knows about this please help :) Id appreciate it greatly.

Thanks in advance.

-Guitar Freak
 
Last edited:
Solved, thanks a lot rafaelhamdan from you-know-which forum lol.

Anyhow, if anyone has this same problem, this is the solution:

MoveEvents scripts handle it (onEquip, onDeEquip).

So, you should change it at movements.xml

Yours,
Rafael Hamdan;

I would've never thought it could be on movements lol ;)

Cheers! This thread can be closed now.
 
Back
Top