查看: 22287|回复: 53

[小常识]拿到一个冒险岛服务端的js脚本或代码,如何使用?

 
  • TA的每日心情
    慵懒
    2019-10-28 17:33
  • 签到天数: 24 天

    [LV.4]偶尔看看III

    管理员

    枫币
    4792
    威望
    950
    贡献
    652
    在线时间
    586 小时
    注册时间
    2016-3-15
    发表于 2017-11-19 16:14:36 | 显示全部楼层 |阅读模式
    很多萌新从某处拿到了服务端的一套js脚本或者代码,但是却发现不会加到游戏内。这里会告诉你应该如何操作。

    简单来讲,冒险岛的每一个能交互的物件都有独一无二的ID,不管是NPC,任务,道具,地图,传送口等等。
    脚本的主要分类为事件(event),道具(item),地图(map),npc,传送点(portal),任务(quest),反应堆(reactor),扩展(extend)。

    要特别解释的几点
    event事件脚本,是执行事件时执行的脚本。事件..比如说玩家开始打扎昆这个boss了,就会执行扎昆事件的js,这个js作为容器将玩家存放在内。其中计时器,杀扎昆肢体后的操作等等都由事件执行。组队任务同样,这里解释起来太复杂了将在以后的进阶教程中说明。
    map地图脚本,新版本分为两部分,onFirstUserEnter当玩家第一次进入时,和onUserEnter当用户进入时,顾名思义这是玩家在这两种情况进入地图时触发的脚本。
    reactor反应堆,就是那种地图上只能用普攻打啪啪啪彭出来个道具或者怪物的,或者是女神塔往地上丢什么东西过一会就触发的脚本。
    item道具,很简单什么开个箱子啥的都是执行的道具脚本。但是有些是源码里决定的。


    说了那么多,如何知道哪个脚本是谁执行呢?
    每个脚本都有ID或者名字,他们的ID和名字是和客户端一致的。一个正常的服务端在玩家触发相应的物件时应该会显示这些,无论是在服务端或者是客户端聊天窗。不过在聊天窗的讯息往往只在你是GM的时候显示。比如你点开一个NPC,聊天窗都会显示 你与9900004建立对话,进入一个地图,会显示 执行onUserFristEnter脚本dojang_Eff.js之类的。
    如果这个服务端一点都不正常,他真的啥都不显示,也许是作者觉得小白们不用考虑这些...那样可能就麻烦一些。道具,quest,npc还好说,你知道他的名字就可以用代码查询器查询到他的ID,虽然一个名字的道具或npc往往能查到一堆ID..慢慢试吧。特别注意有些东西的确一般不会显示,比如反应堆与事件,反应堆一般都有特定的GM命令 %查看反应堆 之类的,但是event...下面再说明如何查看。

    得到ID或者名字后,那就很简单了。脚本统一存放在服务端的scripts内,找到某一类型的脚本后,你想让那个物件执行这个脚本,将这个脚本直接重命名那个物件,并放到对应文件夹。
    比如你想让路边上9900004这个NPC执行你手里的脚本,就把脚本改成9900004.js,丢到scripts/npc下,然后再游戏内再点那个npc,你就会发现他出现了那个脚本的功能。注意各类型脚本应该不能互通,什么类型的脚本作者应当有说明。否则...你只能通过脚本结构判断他是干啥的,这个说起来就复杂了...笼统讲,脚本内有cm,pi,qm,rm,em,ms的分别是npc,传送口,任务,反应堆,事件,地图。如果你得到的是纯代码,你可以尝试把他直接粘贴进txt,然后将扩展名改成.js,按如上方法放置文件。如果他并不显示扩展名:如何显示文件扩展名?,如果你不知道什么是扩展名:扩展名 但是这样做后,你可能会发现在游戏里它变成了?????或者一堆乱码,这是因为编码问题。推荐一个小软件notepad++,你可以透过它方便的改变代码或者编码,如果你实在不懂代码,这玩意也可以让你看起来更有逼格。下载并安装后,右击乱码的脚本,使用Notepad++编辑,在菜单栏选择编码,然后..那几个转换为XX编码挨个尝试,因为你无法得知服务端作者是用的什么编码。一般是ANSI。注意是转换为,而不是以XX编码查看。

    特别的,一般来讲服务端的event,reactor,portal,map都不是实时重载的,也就是说,你就算把脚本放进去,名字也对,但是服务端仍然会无视你的脚本。服务端对于此类脚本一半都用专用的GM命令用于重载,BMS之类的端则将重载写在服务端控制台上,单机即可重载,如果实在没有重载的..重启服务端吧。
    特别的,extend大部分服务端都没有。这个文件夹主要用于存放..怎么说呢,算是某个NPC的子脚本。他不会被NPC直接使用,但是在脚本中可以调用,调用方式为openNpc(NPCID,"extendname"),他的命名是随意的。比如有个脚本叫 百宝抽奖.js,如果写作openNpc(9900004,"百宝抽奖"),则相当于执行百宝抽奖这个js,但是NPC形象是9900004。如果你的服务端没有extend,则子脚本的形式是类似于9900004_1.js,存放于npc文件夹内,如果写作openNpc(9900004,1),则是执行这个脚本。因此除非你懂的如何修改相应代码,否则不要改版xxxx_x形式的js的名字,否则会导致npc脚本执行到脚本作者写好的openNpc时会因为找不到npc而出错。
    特别的,event的名字也是随意的,他被任何一个脚本用getEventManager调用,因此如果你想调用event脚本,找到那个事件的入场者的脚本,寻找getEventManager后跟着什么。

    但是每个服务的函数有异,无法保证你的服务端函数与脚本所使用的完全一致,因此可能你实际运行某个脚本时,服务端会报告 脚本xxx是错误的。关于脚本的改错是进阶教程,这里不多描述。
    原创文章,转载请注明出处。
    (點擊展開 / 收起)





    评分

    参与人数 3威望 +7 枫币 +7 贡献 +7 收起 理由
    仓之助 + 2 + 2 + 2 赞一个!
    qj33520 + 3 + 3 + 3 老张叼的一P!!!
    binyuxia + 2 + 2 + 2

    查看全部评分


    沉迷OSU无法自拔....
  • TA的每日心情
    慵懒
    2019-10-28 17:33
  • 签到天数: 24 天

    [LV.4]偶尔看看III

    管理员

    枫币
    4792
    威望
    950
    贡献
    652
    在线时间
    586 小时
    注册时间
    2016-3-15
     楼主| 发表于 2017-11-20 00:24:20 | 显示全部楼层

    RE: [小常识]拿到一个冒险岛服务端的js脚本或代码,如何使用?

    写那么长,真的有人看吗...

    沉迷OSU无法自拔....
  • TA的每日心情
    开心
    2018-4-29 16:38
  • 签到天数: 566 天

    [LV.9]以坛为家II

    钻石会员

    枫币
    11808
    威望
    2
    贡献
    224
    在线时间
    128 小时
    注册时间
    2016-4-22
    QQ
    发表于 2017-11-20 21:01:36 | 显示全部楼层

    RE: [小常识]拿到一个冒险岛服务端的js脚本或代码,如何使用?

    是的有人在看~~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-29 16:38
  • 签到天数: 566 天

    [LV.9]以坛为家II

    钻石会员

    枫币
    11808
    威望
    2
    贡献
    224
    在线时间
    128 小时
    注册时间
    2016-4-22
    QQ
    发表于 2017-11-20 21:02:42 | 显示全部楼层

    RE: [小常识]拿到一个冒险岛服务端的js脚本或代码,如何使用?

    是的有人在看~~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-4 03:07
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    新人上路

    枫币
    148
    威望
    0
    贡献
    10
    在线时间
    7 小时
    注册时间
    2017-11-22
    QQ
    发表于 2017-11-22 11:02:43 | 显示全部楼层

    RE: [小常识]拿到一个冒险岛服务端的js脚本或代码,如何使用?

    会有人看的23333333333333333
  • TA的每日心情
    无聊
    2020-7-26 17:37
  • 签到天数: 56 天

    [LV.5]常住居民I

    服务端开发者

    枫币
    4899
    威望
    61
    贡献
    431
    在线时间
    56 小时
    注册时间
    2016-12-30
    QQ
    发表于 2017-11-29 09:17:40 | 显示全部楼层

    RE: [小常识]拿到一个冒险岛服务端的js脚本或代码,如何使用?

    没人再看
    ZEVMS冒险岛(079)游戏服务端
    回复

    使用道具 举报

    该用户从未签到

    新人上路

    枫币
    22
    威望
    0
    贡献
    0
    在线时间
    4 小时
    注册时间
    2017-11-29
    QQ
    发表于 2017-11-29 23:49:26 | 显示全部楼层

    RE: [小常识]拿到一个冒险岛服务端的js脚本或代码,如何使用?

    我看完了!
    回复

    使用道具 举报

  • TA的每日心情

    2017-7-19 16:10
  • 签到天数: 1 天

    [LV.1]初来乍到

    初级会员

    枫币
    191
    威望
    0
    贡献
    6
    在线时间
    19 小时
    注册时间
    2017-5-25
    发表于 2017-11-30 22:46:27 | 显示全部楼层

    RE: [小常识]拿到一个冒险岛服务端的js脚本或代码,如何使用?

    有有有,一字不漏的看
    回复

    使用道具 举报

    该用户从未签到

    新人上路

    枫币
    5
    威望
    0
    贡献
    0
    在线时间
    0 小时
    注册时间
    2017-12-1
    QQ
    发表于 2017-12-1 17:53:49 | 显示全部楼层

    RE: [小常识]拿到一个冒险岛服务端的js脚本或代码,如何使用?

    当然有人看了~~
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2018-5-9 14:58
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    中级会员

    枫币
    653
    威望
    15
    贡献
    62
    在线时间
    87 小时
    注册时间
    2017-5-18
    QQ
    发表于 2018-1-7 22:57:25 | 显示全部楼层
    看完了.
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    枫叶物语即使倒闭也绝对不会变质
    Copyright © 2001-2013 Discuz Team. Powered by Discuz! X3.5 |网站地图 | 本站已运行: