第一个程序

新书开始的第一章,本来想以“为什么我想成为程序员”的契机入手,写点什么有趣或者让人吃惊的故事。

结果却反而让我吃了一惊:无论我怎么回忆,都想不起来那个“想要成为程序员”的瞬间了,似乎“成为程序员”这个想法是我与生俱来的,跟吃饭喝水一样的本能。

不过我倒是能回忆起来自己成为开发者的时刻:小学的时候我就接触了电脑,并且接触到了一个叫做《万王之王》的网络游戏,那些年的网游都有一个特点,就是前期铺垫很足,但是显然没怎么考虑后期要让玩家干什么,《万王之王》也是如此。

升到满级之后,为了让玩家有点事做,它加入了一种“额外点数”的机制,玩家满级之后,再7*24小时的打上十天半个月的怪物,就能获得一个额外的技能点数,额外的点数越多,自然也就越强。

即使再沉迷游戏,也很难有人类能够完成如此枯燥又永无止境的工作,于是各种游戏外挂应运而生,其中有一款叫做zkok的外挂佼佼者,它有两个特点:

一是这个外挂可以脱离游戏客户端直接单独运行,也就意味着外挂可以跳过UI,直接操作玩家的一切行为;

另一个是,它自创了一套脚本语言,所有人都可以通过脚本语言来控制自己角色的行为,某种程度上来说,脚本语言就像是在为自己角色“注入灵魂”。

如今网络上还能搜到一些曾经的zkok的脚本:

%scene time_blink
30:time_blink_bc:time_blink
:pop next

%scene begin
30:retime_bc:cast retime on
30:time_break_bc:cast time_break on woman

%scene soul_steal
30:soul_steal_bc:cast soul_steal on %(0,2)
30:soul_steal_bc:cast soul_steal on %(0,3)
30:soul_steal_bc:cast demon_strike on
:pop next
%bc retime_bc
retry:0.5:但是什麽也没发生。
next::回时术的力量%*
call:time_blink:你低头凝神%*
call:soul_steal:你的法力不够 !!
retry:0.5:你上一个动作没有完成, 不能施法!

%bc time_blink_bc
retry:0.5:你才刚扰动过时空能流,时空能流还不稳定。
retry:0.5:你试图扰动时空能流,但是失败了。
next::你的身体突然由内向外放出光芒,以极快的速度闪了几闪。
next::你现在并不忙碌。

%bc time_break_bc
call:soul_steal:你的法力不够 !!
retry:0.5:你上一个动作没有完成, 不能施法!
retry::但是什麽事也没发生。
call:time_blink:你喃喃念道 : 梅加欧依 ~~ 泰依欧姆 ~~ 克雷格 ...

%bc locate_bc
next::你正忙著呢 !
next::你才使用传送不久,没办法这麽快再用。
next:3:你的四周突然一阵模糊不清,转眼间你就消失了。

%bc soul_steal_bc
call:time_blink:你在你和%*
call:time_blink:你划下的六芒星突然发出黑暗的幽光 ...
retry:0.5:但是什麽事也没发生。
retry:0.5:你上一个动作没有完成, 不能施法!
next:你得到 %* 点经验。)
next::你的法力不够 !!
next::那里没有任何人。
next::你现在不在战斗中。

深入一点学习的话,还能发现条件、循环、跳转、函数定义和调用之类的语法,即使从今天的视角看,这种语言也可以称得上是某种“程序”。

于是我为了玩游戏能更好的挂机,成为了开发者。

我写的第一个让自己非常满意的程序,应该是实现了一个游戏里的“自动问答机器人”:可以一边打怪练级,一边在世界频道发些城邦(类似于现在游戏里的公会)招人的广告,最重要的是,在其他人私聊我之后,可以让他们通过输入“1”、“2”、“3”之类的内容,可以触发不同的回复内容,也可以自动邀请人加入公会,甚至可以自动完成交易。

那个时候我应该小学刚毕业没多久,在完成这个程序之后,我每天所做的事情就是看着这个“机器人”有没有顺利的完成自己的工作,并对自己写出来的脚本能一次又一次的正确的实现我的意图而惊叹。

最后更新于