现在的位置: 首页 > 综合 > 正文

LPC基础教程-Lpc程序和编程环境

2013年08月17日 ⁄ 综合 ⁄ 共 2405字 ⁄ 字号 评论关闭

编程环境

      通常我们所见到的Mud大多是LpMudLpMuds使用Unix的指令和文件结构。如果你对Unix有所了解,那么LpMud中的一些指令和它的文件结构与普通的Unix基本一样。如果你从未使用过Unix,那么它与Dos不同的是在文件的路径用"/",而不是Dos"/".一个典型的LpMud的文件是这样的: /clone/player/player.c 其中"/clone/player/"是路径,player.c是文件名。

      在多数的LpMud中,下面这些的基本的Unix指令是可以使用的:  

pwd: 显示当前目录

cd: 改换你当前的工作目录,和Doscd一样。

ls: 列出指定目录下的所有文件,如果没有指定任何目录,那就列出当前目录底

下的文件。和Dosdir一样。

rm: 删除一个文件 和Dosrmdir一样

mv: 从命名一个文件 和Dosmove一样

cp: 复制一个文件 和Doscopy一样

mkdir: 创建一个目录

rmdir: 删除一个目录

more: 按页显示一个文件在你的当前屏幕。

cat: 显示整个文件。和Dostype一样。

tail: 显示一个文件的结尾几行。

ed: 允许你使用Mud自带的编辑器,编辑一个文件。

Lpc程序

      Lpc的程序看起来和一般的C区别不断大,语法基本一样,但是Lpc和一般的语言有着根本的不同,Lpc程序是编写一个一个的"Object"。这有什么区别呢?一般的程序是在执行过程中,通常有一个明显的开始和和结束。程序从一个地方开始,然后顺序执行下去,到了结束的地方就中断了。LpcObject不是这样的。所谓的不同的Mud,实际上是一些不同的LpcObject在一个Driver的上的各种不同的表现。也就说,LpcObject是运行在一个Driver上的。这些Object组成了LpMud的丰富多彩的世界。Driver几乎不参与创建你所接触到的世界,它所完成的工作只是让那些LpcObject活动起来。LpcObject可能没有明显的开始和结束的标志,它可能永远在工作。

和一般的程序一样,Lpc“程序也是由一个或多个文件组成。一个LpcObject是按如下方式被执行的:Driver把和这个Object相关的文件读入内存,然后解释执行。但是要记住的是,读入内存,并不是说,它就开始按顺序执行。

DriverMudlib关系

在有些游戏中,整个游戏包括Driver和游戏世界都用C写好,这样能快一些,但是游戏的扩充性很差,巫师们不可能在游戏进行中添加任何东西。LpMud则相反。Driver理论上应该和玩家所接触的世界几乎没有任何直接的联系。游戏世界应该是自己独立的,而且是即玩即加的。这就是为什么LpMud使用Lpc作为编程语言的原因。它允许你创建一个游戏世界,再由Driver在需要时读入解释执行。Lpc甚至比C更简单,更容易明白,但是它可以创建一个可以让许多人在上面游戏的世界。在你写完一个Lpc的文件时,它存在于主机的硬盘上。在游戏进行中,当需要整个Object时,这份文件将被调入内存,一个特殊的函数被调用来初始化这个Object的一些变量。现在你不用关心什么是变量,什么是函数以及游戏本身怎样来调用这个object,你只要记住Driver从硬盘中读入一个文件,然后放在内存中,如果没有任何错误的话。

Object载入内存

      一个Object不会也不必有一个特点的地方让Driver去执行它,通常Drvier会在Object中找一个地方去初始化它。一般都是这个函数叫做create()LpcObject是一些变量(它的值能变化)和函数(函数通常是用来操纵那些变量的一段程序)的组合。函数操纵变量的方式有:调用其他函数,使用Driver内部定义的函数(efun),基本的Lpc表达式以及流控制。我们来看个变量的例子: wiz_level。这个变量记录你的巫师等级,如果是0呢,通常是普普通通的玩家了。这个值如果越大就表示你的巫师等级越高。这个也同时控制了你能不能执行一些巫师指令。基本上来说,一个Object就是一些变量在一起的东西。一个Object改变了,也就是某一个或者一些变量改变了。总的来说,一个Object如果要被内存中的另一个Object调用,Driver会去找这个Object的那堆变量放在哪里,如果这些变量没有值,那么Driver会调用一个特定的函数create来初始化这些变量。但是create()不是Lpc代码开始执行的地方,只是大多数的Object从这里开始。事实上,create()可以不存在。如果这个Object不需要对变量初始化,那么create()可以不存在。那么这样的Object开始执行的地方就完全的不同于一般的Object,可以从任何地方开始。那么究竟什么是LpcObjectLpcObject就是一堆变量的集合,它带有一个或者更多的函数来操纵控制这些变量,函数的排列顺序是无所谓的,随便那个排在前面对这个Object的特性没有影响。

小结

关于Lpc程序和编程环境,就介绍到这里。看完这一章,我想大家要记住的是LpMud是采用Lpc做为编程语言, Unix文件结构作为文件组织形式。Lpc是编写Object的一种语言,它的程序没有特殊的开始和结束的标志。如果Object被使用到,那么它被调入内存,如果这个Object有一个叫create()的函数,首先被执行,来初始化一些变量。LpcObject是一堆变量的集合,同时带有一些能操纵改变这些变量的函数。Lpc的代码风格,我想一个Mud最好有一个统一的风格,特别的XO有自己的特别的要求。

 

转自http://club.163.com/viewElite.m?catalogId=8777&eliteId=8777_100d27908df0006

抱歉!评论已关闭.