ICEWR讲解Ke制作分析和总结.docxVIP

  • 0
  • 0
  • 约7.06千字
  • 约 12页
  • 2024-04-03 发布于上海
  • 举报

ICE-WR的perl与ke入门!

Kore第一讲:Kore运行与编译byICE-WR

Kore是用perl来编写,目前WIN32系统比较流行的是ActivePerl,网站自行百度,而如果你需要把Kore编译为exe执行文件,那你需要安装PerlPDK,里面有perlapp用来把.pl文件转为.exe文件

已经安装了ActivePerl和perlPDK了,但为什么还不能运行Kore.pl呢?请打开Kore.pl,你会看到类似这样的语句:

useTime::HiResqw(timeusleep);useIO::Socket;

use语句用作调用模块,而你没有这些模块那就当然运行不了咯,PDK里包含一个叫VPM(VisualPackageManager)的模块管理软件,运行后会出现一个搜索网页,在搜索栏输入Time::HiRes和IO::Socket就会从网上把模块搜索出来并安装到你的电脑里,只要把模块都装好,那你就可以运行Kore.pl了

如何把.pl文件转为.exe文件呢?这里需要用PDK里的perlapp,在这里用KE

的编译来举例:

perlapp--xclude--iconKoreEasy.icoKoreEasy.pl

--xclude编译时不包含perl58.dll文件,这样会让编译出来的程序小点,但别的机器要运行时需要复制perl58.dll

--icon这个是指定图标文件ActivePerl下载地址自行百度PerlPDK下载地址自行百度

Kore第二讲:Kore与PerlbyICE-WR

Kore是用perl语言来编写的,perl是一种简单而强大的脚本语言,.pl的文件就是perl脚本,需要解释器来运行,例如:Windows平台下的ActivePerl。

要想了解Kore,不需要对perl非常精通,当你第一次看Kore.pl时估计会非常头痛,一些语句甚至无法理解,大部分都是一些匹配模式,例如:

foreach(FILE){nextif(/^#/);s/[\r\n]//g;s/\s+//g;s/\s+$//g;

@args=split/\s/,$_;

}

Kore第三讲:Kore的程序结构byICE-WRKore的程序执行流程如下:1)程序初始化:调用模块,初始化变量

读入数据文件

建立控制台指令输入连接及与服务器连接

执行主程序,主程序是个循环,只要没有接收到quit指令就一直执行,包括如下功能:

执行控制台指令

分析接收到的封包,转化为Kore里的游戏信息,如HP/SP等c)根据信息执行AI

d)检查连接情况

接收到quit指令后结束连接和程序

Kore原版有8000行代码,但实际上主程序只有20行代码!了解主程序你就能知道整个运作原理了,以下位主程序代码的解释:

while($quit!=1){

#当不是$quit=1时,一直执行以下程序,假如你在Kore里输入quit,那就会退出Kore啦

usleep($config{sleepTime});

#usleep就是要睡眠多少微秒,作用是等待封包接收及减低CPU占用率if(dataWaiting(\$input_socket)){

#$input_socket用来读取控制台指令,如果有指令输入,则执行以下代码

$input_socket-recv($input,$MAX_READ);

#从$input_socket读取数据并储存在$input,例如我们输入i指令,那$input就等于i

parseInput($input);

#parseInput是个子程序,用来执行控制台指令

}elsif(dataWaiting(\$remote_socket)){

#$remote_socket用来接收封包,加入服务器发送了封包过来,则执行以下代码

$remote_socket-recv($new,$MAX_READ);

#从$remote_socket读取服务器发送过来的数据,$MAX_READ是用来限制一次读入的数据量

$msg.=$new;

#由于服务器每次发送的封包不一定是完整的数据,所以Kore会把封包连接起来并储存在$msg

$msg_length=length($msg);#这里是计算解释封包前的长度while($msgne){

#当有封包数据时,一直执行下面的代码

$msg=parseMsg($msg);

#parseMsg是

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档