[脚本教程之二十]脚本教程之终结篇

[二十]脚本教程之终结篇

让我们开始最后的教程吧:
我看过很多Sphere的脚本教程,有人从分析每个文件的语法开始,也有人从这个能力一些变量开始,自从我看过Sphere99Z这个版本,越发觉得MENACE的思路真是的非常之清晰,他的设计让这个游戏更加具有魅力。当然,万事万物,没有十全十美的,关键是要不懈努力和持之以恒。
对于一些字符处理方面的函数特殊用法,这里不再介绍,您可以参考一些例子和系统自带的脚本来琢磨,因为在Sphere的新版本中和旧版本中的差别比较大。

技巧一:快速查找
编写Sphere脚本的最好工具是UltraEdit-32这个编辑器,他可以帮你在瞬间搜索到你想要的内容,当你遇到不会写的脚本的时候,就打开”搜索”菜单-》”批量文件查找”-》查找栏中输入你想要查找的内容-》文件类型为*.scp-》目标目录选择scripts目录-》将搜索子目录打勾
这些操作看起来简单,但却是最常用到的功能,它可以帮你快速定位物品ID、角色ID、语句等等

技巧二:单机调试服务器
SPHERE99L版本不再可以再win98平台下调试,但经常会遇到这样的情况,就是如果网卡的状态标识物理状态无法链接,这样的时候你就无法顺利用client登陆你的sphere服务器,最方便的解决办法就是在网卡上插一根线,另外一头可以连接到其他PC网卡或者HUB、ADSL路由器上等等,这样就好了

技巧三:最好的脚本范本
经常在写脚本的时候,无法确定自己的脚本问题是否有效或者无法定位问题,这时候建议你经常翻看spheretest.scp这个文件,这里面几乎涵盖了70%的sphere脚本格式用法,你可以和这个上面的相关语句进行对照,来对比自己的编辑。

技巧四:让AXIS顺利读取所有物品
AXIS0.13a版本有个小问题,就是有的物品的定义无法读取到,其实你只要打开spheretables.scp文件,将里面的[RESOURCES]定义一节,所有设计到路径的脚本都指定完整盘符路径就行了。

技巧五:学会看Sphere的版本更新文件
Sphere每个版本更新都会有很多变化,想知道这些变化你就要留意sphere所带的那个SPHERESVR_REVISION.TXT文件了,几乎所有的变化,那里面都会有。

技巧六:哪里看SPHERE的全部语句函数或者参数?
从SPHERE99x版本以后,sphere会发布一些sphere99z_tables类的文件,这些文件的扩展名是.tbl,可以用UltraEdit-32打开,里面就是全部sphere的命令语句和参数了。

技巧七:一些常用判断语句
(一)判断目标是否是GM,或者NPC
if <src.isgm>
return 0
endif
if <src.npc>
return 1
endif
(二)判断是否在城里,即guard区
if (<src.region.flags> & 04000)
return 0
endif

如果判断其他地区,比如是否可以建房可以把04000该成080,具体可以查看region的flags。

(三)判断是否是鬼魂
IF <SRC.FLAGS>&02
RETURN 0
ENDIF

02是角色flags标记

(四)判断距离角色的距离
if <Distance> > 4
return 0
endif

(五)判断是否有足够的钱
IF <SRC.RESTEST 500 i_gold>
SRC.CONSUME 500 i_gold
ENDIF

前提是钱必须放在包内

(六)判断角色技能是否满足一定值
IF <SRC.TINKERING>>=60.0
return 1
endif
判断角色补锅技能是否大于等于60
if ( <eval <skilltotal>> >=6500 )
return 0
endif
判断角色总技能是否超过650

(七)对所有在线人操作
SERV.ALLCLIENTS IF <HITS>>2
SERV.ALLCLIENTS SAY Hello!
SERV.ALLCLIENTS ENDIF

(八)判断是否工会成员
IF (!<MEMORYFINDTYPE.memory_guild.UID>)
SYSMESSAGE You are not in a guild!
RETURN 1
ENDIF
(九)判断一个随机数是否等于某数
IF (<EVAL RAND(10)>==1)
say hello
ENDIF

先整理这么多吧,我是想到哪里就写哪里的,欢迎大家继续补充。

留言

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

留个言

留个言