背景:
阅读新闻

脚本系列讲座第三讲-简单的触发脚本

[日期:2006-08-18] 来源:乘风破浪网  作者:clane [字体: ]

脚本系列讲座第三讲--简单的触发脚本 
触发可以说是sphere脚本中最有用的一个部分。一个触发脚本可以很长,好几页,也可以简短至短短数行。我们在继续这个讲座时,将依旧围绕着上一讲我们制作的大砍刀展开。制作一个短短几行的触发脚本,使这个大砍刀成为一个魔法武器。 
当在你计划制作一个触发脚本的时候,你最好有一个明确的主意,你的脚本要做什么事。例如在我们的这个脚本中,就希望脚本做两件事情: 

1.当装备的时候人物增加5点的强壮. 
2.当不装备的时候人物减少5点的强壮. 

首先,让我们把注意力集中在给人物增加强壮上面,确定自己想在发生什么事件时,使增加强壮这个事件被激活。 

一个触发的格式是这样的 
ON=@BLAH 

触发都是在当一个对象或是角色通过行动于游戏环境或其他对象进行交互时发生。例如在一个物品被双击时,@DCLICK这个触发被激活。引起触发的物体总是被存储在SRC中, 因此我们可以通过SRC来引用它。当然我们应该记住一些触发类型,例如 @create , @timer可以被任何东西激活,并且没有SRC的触发。因此,我们只要在触发中弄明白是谁激活了了这个触发,然后设置他的强壮 (关于STR的变量, 参考角色属性一节 ) 。 
在这个例子中,我们使用了@ EQUIP触发 
ON=@EQUIP 
SRC.STR= <SRC.STR>+5 

在脚本中,如果不是设置变量值,而是引用它,那么这个个变量总是由一个中括号括起来,就像你在上面的例子里看到的一样。这句话的意思就是将SRC.STR的值+5然后赋值回给SRC.STR。这是给一个变量赋值的最容易的方法。 
最后脚本结束,返回一个0: 
RETURN 0 

尽管使用RETURN(忽略大小写)返回值并不总是是必要,但在结束时返回值是一个不错的习惯。在返回值的时候你既可以返回0也可以返回1。返回0和返回1都会终止脚本的进行,但返回0的话将会允许你和这个触发相关联的动作继续下去,而返回1则将终止后续动作。在这里如果我们使用RETURN 1,装备物品的后续动作就不会被执行。所以我们在这里返回0: 

ON=@EQUIP 
SRC.STR= <SRC.STR>+5 
RETURN 0 

下面, 我们要编写一个类似的触发在其脱下装备时减去强壮: 
ON=@UNEQUIP 
SRC.STR= <SRC.STR>+(-5 ) 
RETURN 0 

注意这里,我们并非直接从 STR 中减去 5 , 而是增加了一个负数 5 ,这是sphere的脚本语言的限制。所以请记住,如果你想减小一个数,千万不要用减法,而是去加上一个负数。sphere没有规定一定要用括号将-5括起来,但用括号括起来将会使你的脚本可读性更好。 
好了,到这里为止我们就已经完成了我们的脚本: 
[ITEMDEF i_magic_claymore] 
ID=013b7 
NAME=claymore of strength 
TYPE=t_weapon_sword 
WEIGHT=14 
SKILL=swordsmanship 
DAM=15,43 
REQSTR=50 
TWOHANDS=Y 

ON=@CREATE 
HITPOINTS=115,150 

ON=@EQUIP 
SRC.STR=<SRC.STR>+5 
RETURN 0 

ON=@UNEQUIP 
SRC.STR=<SRC.STR>+(-5) 
RETURN 0 


translated by clane 

收藏 推荐 打印 | 录入:admin | 阅读:
相关新闻