【冰话XS】022:模式任我行·東青龍
☆※冰の引言※☆
前面章节总算是把 XS 属性函数的第二部分——属性篇解析了个透透彻彻,春风得意马蹄疾,我们顺理成章进入XS 属性函数最后の篇章——模式篇的讲解。模式篇作为属性函数压轴登场的部分,重要性自然不言而喻。从本章节开始的四个篇章将是模式任我行的部分,让我们开始模式王国的缤纷璀璨之旅吧。
模式篇共有四个篇章,分为青龍、白虎、朱雀、玄武四个子篇章。本篇为读者娓娓道来的是青龍篇——单位统计&运算方式。

☆※本节の紹介※☆



☆※模式简介小述※☆
所谓模式,即是指 XS 属性函数 xsEffectAmount 函数中的第一参数。具体参数指代的传送门详见此篇,这里不重复介绍。
模式大致分为四个大类,分别是属性运算、资源运算、升级继承和科技研究。

☆※属性运算模式※☆
属性运算大致分为三种运算,分别是属性设置、属性加减和属性数乘,一般而言均可使用浮点数
-- 属性设置 (模式 0) --
-- 属性加减 (模式 4) --
-- 属性数乘 (模式 5) --

☆※启用/禁用单位 (模式 2)※☆
函数书写の语法规则:xsEffectAmount(2,要启用/禁用的单位,启用/禁用标志位,0,作用玩家);
启用/禁用标志位(第三参数)参数取值:
0:禁用
1:启用
注意事项:
1. 模式 2 不能使用种属,启用/禁用的单位必须为实际单位的 ID
2. 如果新自定义单位的训练位置和按钮上有原有单位占用,请先禁用原有单位后再行启用新自定义单位
3. 启用新自定义单位必须要同时设定好单位的训练位置(属性ID 42)以及训练按钮(属性ID 43),否则会出现单位已启用但无法正常训练/建造的情况
4. 禁用升级链最底端单位的单位 ID 可禁用单位的整条生产线

☆※单位统计函数※☆
--- xsGetObjectCount()函数 ---
两者函数の区别:
xsGetObjectCount()函数仅能统计当前时刻地图上存在的所有该玩家单位ID 的数量,但不能统计在队列中等候训练/建造或正在训练/建造中的同单位ID 的数量
xsGetObjectCountTotal()函数既能统计当前时刻地图上存在的所有该玩家单位ID 的数量,也能统计在队列中等候训练/建造或正在训练/建造中的同单位ID 的数量,输出结果为两部分相加之总和
--- xsGetObjectCountTotal()函数 ---

☆※单位统计函数 VS 触发条件->"拥有物体"※☆
在实际效果中,单位统计函数中的xsGetObjectCount()函数在使用≥作为判定条件时与触发条件中的"拥有物体≥"(拥有物体)等价;xsGetObjectCount()函数在使用≤作为判定条件时与触发条件中的"拥有物体≤"(拥有少量物体)中不指定区域时等价。
相比而言,单位统计函数在使用上会更加灵活,搭配其他模型能做出许多不同复杂的效果,但美中不足是只能统计全局范围内单位ID 的数量而不能统计指定区域范围内单位ID 的数量。而触发条件中的"区域内的物体≥"以及"拥有物体≥"和"拥有物体≤"配合使用既能统计全局范围内单位ID 的数量,也能统计指定区域范围内单位ID 的数量,但无法与其他系统及功能联动,用法比较局限单一。综上所述,两者各有千秋,互有优劣,各位场景设计者在实际使用过程中可以按照自身需求两者结合使用。

☆※冰の小结※☆
本节主要内容是围绕单位属性运算的模式0,2,4,5的介绍与使用以及单位统计函数应用的相关知识.。下一节我们将聚焦资源计算与单位费用类型增删,解决资源和单位方面的相关问题,精彩永不停歇!
欲知后事如何,请听下回分解


