背景:
阅读新闻

脚本系列讲座-第一章:sphere scrpits 介绍

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

脚本系列讲座-第一章:sphere scrpits 介绍 
注:翻译至http://www.paigelore.com/daleth/refproj/ 
每天至少翻一个一章,先挑重要的翻译(怕后来没有耐心,就废掉了。呵呵) 
我对脚本并不非常熟悉,如果有错,各位请千万指出。 

编写脚本有点类似于编程, 他们之间的差别在与编程是你设计一些东西与整个计算机本身进行交互, 而脚本你是在与一个处理程序进行交互。sphere就是这样一个与你交互的程序,它的脚本是一个面向对象的脚本语言, 也就是说每个脚本都是和一个物体相关联着的。在你开始编写脚本以前, 你应该对什么是十六进制有所掌握,其实理解十六进制的同时可以也帮助你理解二进制代码。 http://vwop.port5.com/beginner/bhextut.html 是一个很好的学习十六进制的站点,你还能在那里发现一个转换到十进制的工具。当然你也可以用windows自带的计算器来进行转换。你为什么必须要了解十六进制呢?因为虽然sphere变得越来越十进制化,但它的大部分仍然基于十六进制。另外要注意,无论何时你在sphere使用一个十六进制的数字,就一定要放一个0(数字0)在它前面,以告诉sphere这个数字是十六进制的, 如果数字的前面没有0,就经常会被认为十进制。 
spher有许多种脚本, 主要有一下几种:物品脚本是定义定义一个物品看上去的样子以及对他们动作的结果。缺省的物品脚本主要是放在sphereitem*.scp 文件, 在sphere以后的版本中物品或许将会可以把不同的种类放进不同的文件(注:不知道sphere 55i是不是这样。呵呵)。 
物品脚本以 [ ITEMDEF i_*]开始 。 
一个较短的物品脚本看起来一般都是这样的: 
[ITEMDEF i_anvil] 
ID=0faf 
TYPE=T_ANVIL 
SKILLMAKE=BLACKSMITHING 30.0, TINKERING 56.0,t_tinker_tools 
RESOURCES=20 i_ingot_iron, 1 i_LOG 
FLIP=1 
WEIGHT=255 
CATEGORY=Items by Professions 
SUBSECTION=Blacksmiths 
DESCRIPTION=Anvil (N) 
DUPELIST=0fb0 

想得到更多的这个脚本每一行的信息,请参看物品变量这一节。 

角色脚本定义一个角色看上去的样子以及他们的行动,还有他们的stats,skills,以及他们有什么物品。缺省脚本被在 spherechar_ *.scp 文件被定义。角色脚本以 [ CHARDEF c_*]开始 。 
一个短的角色脚本看起来像这样: 

[CHARDEF c_ogre] 
ID=01 
NAME=#NAMES_OGRE the Ogre 
SOUND=snd_MONSTER_OGRE1 
ICON=i_pet_OGRE 
ANIM=078c7f 
CAN=MT_WALK|MT_USEHANDS 
DAM=5,15 
ARMOR=16 
RESOURCES=6 i_ribs_raw 
FOODTYPE=15 t_meat_raw 
DESIRES=c_ogre, t_arock 
SHELTER=r_forests,r_mountains 
AVERSIONS=t_TRAP,r_civilization 
ON=@Create 
NPC=brain_monster 
STR=165 
DEX=65 
INT=70 
PARRYING=55.0 
MAGICRESISTANCE=60.0 
TACTICS=70.0 
WRESTLING=80.0 
FAME=4500 
KARMA=-1999 
ITEM=loot_OGRE 

想得到更多的这个脚本每一行的信息,请参看角色变量这一节。 

触发脚本有两个范畴,物品触发和事件触发,它是spher中最复杂并且强有力的脚本,通常都以 ON=@*开始 。物品触发总是与一个对物品的操作相关连,而事件触发则通常与角色相关联,但他们也能与一些另外的事情 ( 例如 区域 )相关联。 并且触发能以多种途径被激活。 
上面脚本中的@create一节实际上就是一个触发,当一个角色第一次被创建时会被激活。角色和物品的许多变量都可以这样被设置,例如如果你可以在游戏中改变一些角色的变量,一般经验就是使用@create创建一个脚本的触发。触发脚本由许多命令组成, 一个触发脚本看起来像这样: 

ON=@DCLICK 
SAY Hi! 

当拥有这个触发这个角色或物品被双击时,这个触发就会被激活。物品或角色就会说 hi!。触发经常可以在 
ITEMDEF 或 CHARDEF 后面被发现, 当用那种方法做时, 例如上面的@create触发,触发就和这个特定的物品或角色相关联。 

说话脚本是当一 NPC 听见一个特别的短语时,被引起的脚本。一个说话脚本以[SPEECH blah]开始 。对于每一个NPC要反应的短语都是这样的格式: 

ON=* hi* 

* 是一个通配符, 可以代替任何字符, (因此这个脚本将允许 NPC 对他听到任何包括hi的话作出反应),说话脚本对大小写并不敏感(注:也就是hi和HI是一样的)。你要小心使用通配符。例如,你对NPC说了一个"hit", 听到这个词NPC也会作出和听到hi相同的反应 。ON= 后面放着你想让NPC听到这些话后执行的命令。 
一个简单的说话脚本看起来像这样: 

ON=hello * 
SAY hello! 

说话脚本, 象触发脚本一样, 能被缺省的和一个特定的角色相关联, 只要简单地增加 ON=* hi * 或类似的一些东西到角色脚本的最后。如果不这样做,你必须在SPEECH=放在说话脚本里,或在游戏里面设置。 

此外还有许多种其它脚本,但这 4 种是最经常被使用的类型。如果想得到更多脚本的例子,可以参看sphere自带的许多例子。你可以试着去改动他们,但最好在修改他们前做好文件的备份。 
另外,http://www.sphereserver.com 的讨论板是一个无价的资源。你可以从那里得到许多好的例子,并且脚本帮助版面总是有许多人热心回答你的问题。但请不要滥用它,绝对不要将一个类似于“寻求xx脚本”的帖子发在版面上,并且在问问题前,请自己先努力去试图解决他。只有在自己实在不能解决,并且不能从以前已经发表的帖子中得到答案的才发表新的帖子问问题。 
另外一个可用的资源是IRC,你可以连接到sphere的IRC服务器: irc.sphereserver.com 你可以用mIrc之类的客户端连接),然后加入到#sphereserver频道。在IRC上请遵守与在论坛上相同的准则,问问题前,先到论坛上搜索一下。sphere论坛每天有几百个帖子,你的问题很可能已经有人回答过了。 

translated by clane 

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