Помощь - Поиск - Пользователи - Календарь
Полная версия: [0.56b] Items Set
UoKit.com Форумы > Ultima Online : Dev > Sphere Server > Архив готовых скриптов
Breaker
1) Функция проверки комплектации одетого сета на персонаже
К примеру ARGO - предмет комплекта
При использовании <ARGO.IsSET> - предмет который надо проверить на его комплектацию, возвращяет 0 если комплект не полностью одет, и 1 если всё одето.
При использовании <ARGO.IsSET 1> или <SRC.ACT.IsSET PARTS> или <SRC.ACT.IsSET PIECES>
возвращяет кол-во предметов данного комплекта.
Код

//<------------------------------------------------------------------------------------->
//< No Usage - Проверка предмета на его комплектацию >---------------------------------->
//<------------------------------------------------------------------------------------->
[FUNCTION IsSET]
IF (<IsITEM>) && !StrMatch("0","<TAG0.IsSET>")
   IF !StrCMPi("1","<ARGS>") || !StrCMPi("PARTS","<ARGS>") || !StrCMPi("PIECES","<ARGS>")
       ARGS=<TAG0.IsSET>
       RETURN <EVAL <ARGV>-1>
   ENDIF
   ARGS=<TAG0.IsSET>
   FOR 1 <EVAL <ARGV>-1>
    IF !(<TOPOBJ.FINDLAYER.<ARGV[<dLOCAL._FOR>]>.UID>)
       RETURN 0
    ELIF StrCMPi("<ARGV[0]>","<StrArg <TOPOBJ.FINDLAYER.<ARGV[<dLOCAL._FOR>]>.TAG0.IsSET>>")
       RETURN 0
    ENDIF
   ENDFOR
   RETURN 1
ENDIF
RETURN 0



2) Создаём всем игрокам общий EVENT какой вам угодно либо дополняем свой следующими триггерами:
Код

ON=@ItemEquip
//<------------------------------------------------------------------------------------->
//<[MOD] Проверка комплектации предметов при их одевании >------------------------------>
IF (<ACT.IsSET>)    
   SRC.SYSMESSAGE @24, Вы одели полностью весь комплект.
   // Здесь можно уже вешать свои эвенты, и какие то делать манипуляции с персонажем!
ENDIF


ON=@ItemUnequip
//<------------------------------------------------------------------------------------->
//<[MOD] Проверка комплектации предметов при их снятии >-------------------------------->
IF (<ACT.IsSET>)
   SRC.SYSMESSAGE @24, Вы сняли какую то вещь из данного комплекта.
   // Здесь снимаем всё евенты что вешали выше и возвращяем всё как было на персонаже!
ENDIF



3) Примерный состав комплекта предметов
Всё заключается в теге "TAG.IsSET" по которому и идёт проверка всего комплекта предметов!
тег "TAG.IsSET" обязан состоять из названия сета и перечисления слоёв (LAYER) на которых будут части от данного комплекта... в данном случае "TAG.IsSET=Ancient,6,7,13,19,24"
где:
Ancient - Название комплекта (Регистр букв не учитывается при проверке)
6=layer_helm,7=layer_gloves,13=layer_chest,19=layer_arms,24=layer_legs - слоя (LAYER-ы) на которых должны находиться все части данного сета!
Каждая часть должна иметь один и тот же TAG.IsSET с одними и теме-же значениеми...
Ещё один момент в TAG.IsSET можно так же записать по другому:
TAG.IsSET=AncienT,layer_helm,layer_gloves,layer_chest,layer_arms,layer_legs
что в итоге не чего не изменит и всё будет работать...
Код

//< Ancient Bone Armor >---------------------------------------------------------------->
//<------------------------------------------------------------------------------------->
[ITEMDEF i_ancient_bone_chest]
DEFNAME=i_ancient_bone_chest
NAME=ancient bone chest
ID=0144f
TYPE=t_armor_leather
ARMOR=80
REQSTR=30
WEIGHT=25.0
VALUE=2190
CATEGORY=Armors - Custom
SUBSECTION=Ancient Bone Armor
DESCRIPTION=Bone Chest

ON=@Create
TAG.IsSET=Ancient,6,7,13,19,24
HITPOINTS=100
COLOR=2305


[ITEMDEF i_ancient_bone_leggings]
DEFNAME=i_ancient_bone_leggings
NAME=ancient bone leggings
ID=01452
TYPE=t_armor_leather
ARMOR=80
REQSTR=28
WEIGHT=22.5
VALUE=2190
CATEGORY=Armors - Custom
SUBSECTION=Ancient Bone Armor
DESCRIPTION=Bone Leggings

ON=@Create
TAG.IsSET=Ancient,6,7,13,19,24
HITPOINTS=100
COLOR=2305


[ITEMDEF i_ancient_bone_arms]
DEFNAME=i_ancient_bone_arms
NAME=ancient bone arms
ID=0144e
TYPE=t_armor_leather
ARMOR=80
REQSTR=28
WEIGHT=17.5
VALUE=2190
CATEGORY=Armors - Custom
SUBSECTION=Ancient Bone Armor
DESCRIPTION=Bone Arms

ON=@Create
TAG.IsSET=Ancient,6,7,13,19,24
HITPOINTS=100
COLOR=2305


[ITEMDEF i_ancient_bone_gloves]
DEFNAME=i_ancient_bone_gloves
NAME=ancient bone gloves
ID=01450
TYPE=t_armor_leather
ARMOR=80
REQSTR=22
WEIGHT=12.5
VALUE=2190
CATEGORY=Armors - Custom
SUBSECTION=Ancient Bone Armor
DESCRIPTION=Bone Gloves

ON=@Create
TAG.IsSET=Ancient,6,7,13,19,24
HITPOINTS=100
COLOR=2305


[ITEMDEF i_ancient_bone_helmet]
DEFNAME=i_ancient_bone_helmet
NAME=ancient bone helmet
ID=01451
TYPE=t_armor_leather
ARMOR=80
REQSTR=20
WEIGHT=10.0
VALUE=2190
CATEGORY=Armors - Custom
SUBSECTION=Ancient Bone Armor
DESCRIPTION=Bone Helmet

ON=@Create
TAG.IsSET=Ancient,6,7,13,19,24
HITPOINTS=100
COLOR=2305



PS: Может кому пригодиться =)
Atheist
Эх, еще один велосипед...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.