触发器的制作
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1.制作TIRGGERDE 定义
首先,在老的版本中需要使用连续的数字,但是在新版本中,可以使用数字和单词了,一般而言,TRIGGER的定义需要短而且好听,最好具有描述性。
[TRIGGER DEFINITION]
TRIGGER的定义一般包含在[]里面,TRIG告诉SPHERE系统他的触发器。现在填上定义的部分,标准的SPHERE格式是T_description,T_的作用是为了给你的触发器做一个标志,区分不同的脚本。
另外,文件的位置并不是问题,只要你的定义是正确的,而且文件在脚本资源里面,SPHERE就可以找到你的脚本。
让我们来做一个小的触发器当双击的时候用来改变玩家的性别。
[TRIG T_SEXCHANGE]
2.定义触发器所要使用的事件
SPHERE的触发器有很多事件,每一个事件都要和别的事件分开来,当然,在这个文件中不可能包含所有的事件。
TRIGGEREVENT DESCRIPTION
DAMAGE 这个物品在战斗中对某人造成了伤害(NPC或者玩家)或者这个物 HITPOTIONS减少)还有一些比较难以理解的事情。
DCLICK 这个是最常用到的了,只要物品被双击就触发
EQUIP 物品被装备的时候触发,无论是通过双击,或者是直接拖到纸娃娃窗口 STEP 玩家或NPC踩到该物品上就触发
TIMER 如果物品的使用时间(猜的)变成0,开始触发,(注意:TIMER并没有源对象,所以在TIMER的脚本里面不可以使用SRC.*)
UNEQUIP 和EQUIP差不多,当物品被卸下是触发
在例子中我们使用DCLICK事件作为触发的条件
[TRIG T_SEX_CHANGE]
ONTRIGGER=DCLICK
3.加入条件控制语句
如果玩家是男人,我们把他变成女人,如果玩家是女人,我们把她变成男人
IF(==0190)这个条件判断原对象(双击物品的玩家)的BODY是否0190也就是说是否男人,如果是则执行这个模块中的语句,具体如下
//Sample Trigger Script
[TRIG T_SEX_CHANGE]
ONTRIGGER=DCLICK IF (==0190) // male
现在让我们加入女性的部分,ELSEIF(==0191).最后我们需要ENDIF告诉服务器这个循环语句的结束 //Sample Trigger Script
[TRIG T_SEX_CHANGE]
ONTRIGGER=DCLICK
IF (==0190) // male
ELSEIF ( ==0191) // female
ENDIF
4.现在外部的框架已经好了
我们现在需要内部的具体操作语句了,如下
//Sample Trigger Script
[TRIG T_SEX_CHANGE]
ONTRIGGER=DCLICK
IF (==0190) // 如果双击物品的是男人
SRC.BODY=0191 //把他变成女人
ELSEIF (==0191) // 如果双击物品的是女人
SRC.BODY=0190//把他变成男人
ENDIF
5.让我看一下返回值的问题(我也不是太懂,请高手详细说一下)
如果大家看过脚本的话应该会看到有两个语句使用的相当的频繁,RETURN 0和RETURN 1,RETURN 1是用来告诉SPHERE服务器这个TRIGGER已经完成了,最初的动作不应该在发生,例如,如果你在蜡烛上放一个触发器,但是并不想让双击来熄灭蜡烛,你就可以使用RETURN 1,RETURN O正好相反
你可以把返回值嵌入IF语句也可以不这么做,完全看你怎样写脚本了
//Sample Trigger Script
[TRIG T_SEX_CHANGE]
ONTRIGGER=DCLICK
IF (==0190) // male
SRC.BODY=0191
ELSEIF (==0191) // female
SRC.BODY=0190
ENDIF
RETURN 1 //停止使用
6.最后让我们把触发器放到物品上
可以在游戏中直接使用/SET TYPE T_SEXCHANGE 然后点物品
也可以在脚本中进行,再物品定义时加入,TYPE=T_SEXCHANGE

留言
还没有留言,来坐个沙发吧。
留个言