百科问答小站 logo
百科问答小站 font logo



如何评价《骑马与砍杀》的修改器「魔球」? 第1页

  

user avatar   zhang-she-72-55 网友的相关建议: 
      

我是作者当中的SSgt_Edward。虽然已经不碰骑砍快两年了,魔球也很早就不再开发,但是回答一下这个问题,也算是对一段时光的总结。毕竟曾经为魔球献出了很多精力和时间。

很多人可能知道,我和作者中的Ser_Charles是双胞胎。初中就曾接触过骑砍原版,但因为接受不了那个画面而放弃......高三那年(2010年),正好是战团发布,在电驴上偶然看到便立刻下载下来玩,之后便一发不可收拾.......骑砍独特的格斗、马战系统,一下就把我们这两个之前基本只喜欢枪枪枪的玩家拖下了水。

高考完的那个暑假,我开始跟我哥(Ser_Charles)一起上贴吧。我到的第一个吧就是骑马与砍杀吧,很快就和贴吧里面当时的活跃人物打成一片。

至于开发魔球的动机,一张图就可以说明:

图1. 魔球的起源(2010-11-21)

时间(2010年10月)、地点(骑马与砍杀吧)、人物(我不是个过客、SSgt_Edward)就全齐了。高中就开始编程的我当时很喜欢做点小程序,图中的FileSnap就是当时做了用于对比Mod之间区别的一个小程序(说到底就是文件快照,类似于GitHub的对比功能)。当时大家对这个东西不是很感兴趣,但是可能是出于可怜我,过客就来推荐我尝试移植原版的编辑器(

【1.11.0.16】 部队&兵种&物品 编辑器 支持骑砍1.011版 多语言支持

,俗称美腿修改器)到战团上。

当时原版的编辑器是用Visual Basic 6 (vb6)写的,而vb6也正是我们最早接触的语言,所以很快就上手开始移植。比较难的部分是理解每个机器码的涵义。一上来就是看看美腿源代码,但战团的机器码新添了很多未知项。开始就是连蒙带猜,改一下数值,进骑砍看看变化。后来觉得这样效率太低了,突然想起不如看Module System (MS) Python文件里的注释来了解含义。果然基本MS里每一项数值Python文件里面都有介绍(虽然不是以机器码的形式),再结合MS的编译文件(process_*.py)来对照解析。解析完了,我们再想用方便的形式(控件)来表现给玩家修改。(想了解如何解析的玩家很推荐阅读这篇文章:

Item_kinds1.txt文件解析

于是,边解析边设计程序大概耗费了我们2个月时间。那时候我们刚上大一,课程比较紧张,南京的高校那时候晚上还实行断电(11点左右吧),我们每天基本就是白天上课,晚自习回来断电后搞一两个小时。那时候动机非常强烈,从来不感觉累,好的点子也是一个接一个的来。很快,12月份的时候,第一版魔球就发布了!

图2. 发布魔球(2010-12-26)

说到魔球这个名字,其实魔球里应该是看不到“魔球”这个字眼的。因为最早我们定的名称就是《战团剧本编辑器》。后来过客觉得应该也要和美腿一样有个通俗的叫法,然后加上我当时随便给编辑器弄了个图标(图3),过客就给起了“魔球”这个名字。

图3. 魔球的图标

魔球在中文站发布的第一天下载量就是3000多,这个和过客是分不开的。当时过客是骑砍中文站(

骑马与砍杀|骑砍中文站

)模型区的版主,我们一做出来,他就联系中文站给帖子加高亮,还挂了七天的置顶。现在(也就是今天:D),光中文站魔球下载量就是85w啦(图4)。

图4. 魔球目前下载量(2015-09-01)

第一版魔球对触发器是没有支持的(这里指广义触发器,不仅仅是simple_triggers.py或者triggers.py里的内容,包括物品的触发器),尽管我们也读取相关数据(甚至也解析),但没有提供用户接口来修改他们。我们当然不会放过这个骑砍修改最核心的部分,于是后面的更新主力就是在开发对触发器修改的支持。由于触发器类似于一个小语言(用数字表示的语言),所以如何把内容转换成人可读的(实际上就是反编译MS),并设计用户可以修改的界面(类似于IDE,图5)就是主要问题。也就是在这时候,我们其实已经后悔用vb6来写魔球了。原因有二:

1. 触发器里有大量的长整型(long,64位),而vb6所谓的长整型只有32位。这意味着我们需要自定义数据类型,而自定义数据类型意味着很多基层的操作(包括加减乘除)都要重写。vb6属于高级语言,对基层重写的支持非常差,使得我们自己的64位long运算效率很低。

2. 用于修改触发器的IDE无法直接使用现有控件,需要对现有控件重写。那时候vb6并没有直接对重写控件有支持,而是用Active X来实现。这个技术在当时算是很新颖的,但是兼容性做的并不好,这也是为什么后来的魔球还要装个额外的“运行环境”,其实就是往系统里装一些组件来确保魔球的运行。

图5. 魔球触发器编辑器界面(类似IDE)

一直到大二,魔球基本算是成型了,vb6在那时候也早已落伍,我们在做其他开发的时候也已完全转成C#或者Java,魔球的更新就这样慢了下来。在2013年6月份解决了最后一个问题之后,就完全停止了更新。值得一提的是,我们曾想采用.net构架,重新编写魔球,甚至基本已经完成,就差对触发器支持了,但因为需要准备GRE出国,所以最后并没有发布(试用版:

MOJO.rar_免费高速下载

),很是遗憾!

虽然魔球代码部分主要是我和Ser_Charles完成,但不少人也都为魔球做出过贡献。我不是个过客、鹿过(中文站ID:心中飞翔)、Last_Promise、威尔士游侠,等等。现在离开骑砍社区已经快两年了吧,回想起来却仍然有些心潮澎湃。另外想吹嘘一下,当年我和Ser_Charles联机也算是令人闻风丧胆的标枪步呢!:D

图6. Z队(当时)的Totti前来投降(大雾,其实当晚我们被他大锤子虐了)。原帖地址:

党队的标枪好准啊

最后,我还是想说一下骑砍的MS。虽然python是一个脚本语言,然而骑砍的MS却并没有把python当做脚本语言在用。之所以这么说,是因为骑砍在运行的时候,实际上读取的是txt里的代码而不是py脚本。而骑砍2准备使用C#,有两种可能:一是跟战团一样,C#只是一个编译工具,而实际读取的还是txt码;二是真正在使用C# script (

CS-Script

)。后者(动态语言)是目前的趋势,省时省力,而且扩展性比txt码更强,唯一缺点就是需要编程基础。




  

相关话题

  那些想要制作好游戏的人,是否会讨厌媚宅抽卡手游? 
  如果让你挑选四部游戏代表 2021 年游戏圈,你会做作何选择? 
  游戏《巫师3》好在哪里?为什么我四年玩了三次都没玩进去? 
  有哪些有专门配套外设的游戏? 
  为什么很多人喜欢捧现代战争而踩黑色行动? 
  游戏《戴森球计划》中一定要在母星发展吗? 
  战锤四大邪神你想投奔哪个? 
  游戏中无缝地图最大的游戏是哪一款? 
  曾经赫赫有名的FPS射击游戏《Delta Force 三角洲特种部队》为什么没落了? 
  为何在《生化危机 7》DLC 剧情中「保护伞」会变成对抗生化危机的组织? 

前一个讨论
现代战斗机空中如何作战?
下一个讨论
如何看待山东菏泽老人 27 年前存款 1000 元钱,银行承诺 20 万元最后只给 5000 元?





© 2025-06-28 - tinynew.org. All Rights Reserved.
© 2025-06-28 - tinynew.org. 保留所有权利