SphereCommunity
Messing with TYPEDEFS - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: Script Help (/Forum-Script-Help)
+--- Thread: Messing with TYPEDEFS (/Thread-Messing-with-TYPEDEFS)



Messing with TYPEDEFS - gergecoelho - 08-12-2015 10:43 AM

Hey guys.

I plan on messing with the sphere_defs.scp in order to make an event who can prevent some classes (skillclasses) from equiping some items. I know this could be done using only t_armor and t_armor_leather, but there are classes who I want to be able to wear ringmail armor, but not platemail, and both are simple t_armor.

So, question: Is there any problem if i create more t_armor_types? (like t_armor_leather, t_armor_studded, t_armor_ring, and so on)

And if there aren't any problems, would this be correct?

Quote:t_food_raw 9 // must cook raw food unless your an animal.
t_armor 10 // some type of armor. (no real action)
t_weapon_mace_smith 11 // can be used for smithing

Changing to:

Quote:t_food_raw 9 // must cook raw food unless your an animal.
t_armor_leather 10
t_armor_studded 10
t_armor_ring 10

t_weapon_mace_smith 11 // can be used for smithing

(or should I use numbers after 193, which is the last type number?)

Thanks in advance again! Big Grin


RE: Messing with TYPEDEFS - azmanomer - 08-12-2015 11:08 AM

actually dont mess with sphere_def.scp just write something like that
http://wiki.sphere.torfo.org/index.php/@EquipTest
[typedef t_armor_ring]
on @EquipTest
if !<src.skillclass>
return 1
endif

also you can add this to itemdef like

[ITEMDEF 013f0]
DEFNAME=i_ringmail_leggings
TYPE=t_armor
FLIP=1
ARMOR=22
VALUE=64
WEIGHT=15.0
RESOURCES=16 i_ingot_iron
SKILLMAKE=Blacksmithing 19.4,Armslore 15.0
CATEGORY=Provisions - Armor
SUBSECTION=Ringmail Armor
DESCRIPTION=Ringmail Leggings
CanUse=can_u_human|can_u_elf
ReqStr=40
TEVENTS=t_equipitem
DUPELIST=013f1
ON=@Create
HITPOINTS={36 48}
RESCOLD=1
RESENERGY=3
RESFIRE=3
RESPHYSICAL=3
RESPOISON=5
on=@equiptest
if !<src.skillclass>
return 1
endif


RE: Messing with TYPEDEFS - ThatSide - 08-13-2015 11:18 AM

I would suggest u to create function like this
Code:
[function isringmail]
if (<baseid>==i_ringmail_tunic) || (<Type>==i_ringmail_leggings) || ...
    return 1
else
    return 0
endif
will save u much more time...
and then
Code:
[typedef t_armor]
on=@equiptest
if (skillclass check)&&(<isringmail>)
you can't equip that
return 1
endif



RE: Messing with TYPEDEFS - gergecoelho - 08-14-2015 08:28 AM

Think I've got it:

PHP Code:
[EVENTS e_class_blacksmith]
ON=@ItemEquipTest
IF (<ACT.ID> == 01410) || ...
    
SRC.SYSMESSAGE=You cannot equip this.
    RETURN 
1
ENDIF 

Checking the direct ID, I won't have to make a different check or extra IFs for colored armor. Big Grin

Thanks everyone!