石器技术文章

用ABLUA写了一个类似原地石的道具

模仿石器时代里恶魔宝石(原地石),这个道具比原地石要高级一些,可以自定义怪物ID,无论在任何地图下都可以遇到定义的怪物,并且没有使用次数限制,这个LUA主要是运用了循环事件和怪物数组和随机数,注释我就不给了,请自行研究,这应该是我第一次直接贴出这么多代码。这LUA还没有测试过,有问题请自己解决,学习还得靠自己。function Loop(meindex)if char.F...

用ABLUA写一个MYSQL查询函数

现在使用了mysql语句来写石器或者魔力等ablua脚本已经非常普及了,操作起来非常方便,可以直接从mysql取值进行各种玩法。下面就写一个查询函数给大家参考:function getPoint(cdkey)--sql的定义就为标准的MYSQL操作语句--这句话的意思是从CSAlogin表进行搜索Name字段为指定的账号返回VipPoint和PayPoint的数值loc...

Lua循环结构while循环和for循环的区别

下面我用简单的例子来让大家看看这两个循环的区别。while语法结构:while循环条件do   循环体end--1.输出1到100    index = 1    while index <= 100 do      print(index)      index ...

石器用ABLUA检查宠物和道具满的函数

 在我们参考石器的ablua脚本中,一般会看到checkEmptItemNum(charaindex)和checkEmptPetNum(charaindex)这两个函数,下面我就来讲解下这个函数以及用法。代码如下:function checkEmptItemNum(charaindex)--初始化空道具栏数量的变量EmptyItemNum = ...

石器ABLUA陪练BUG

 这个陪练BUG目前为止是在我以前的石器时代旧代码里遇到过,会出现这样一个有趣的BUG。当人物召唤出一个没有骑宠和战宠的陪练假人时,不知道什么缘故,会让召唤出来的陪练假人宠物栏第一个位置包含有人物索引0(正常情况下应该为-1)。这样就导致当解散陪练假人的时候,会删除人物索引为0,也就是第一个登陆服务器人的索引。从而造成回档或者人物数据消失。一直没有发现问题所在,测试过其他的代码都是正常...

石器时代服务端源代码里增加自动踢出1001卡号功能

 在任何石器时代的服务器里或多或少都会出现卡1001或者卡在游戏上的情况,往往卡住了就得使用GM命令进行1001踢出命令,实在太麻烦了,加上在lua里没有接口,还是果断在代码里增加这个功能。如果想要方便的话,完全可以直接加个接口后在NetLoopFunction()函数下增加该功能。作者神奇石器在这里讲述的代码:1、打开net.c这个文件2、搜索下列字符//SyuADD定时读取A...

石器时代记录点的虚假人数

 无论什么游戏,包括石器时代私服,为了显示服务器在线人数很多,会加入虚拟人数。例如石器中,记录点会显示本线路的总在线玩家数。在早期的石器SF里,都是在setup.cf里进行虚拟人数的设置,计算公式为真实人数+自定义虚拟人数+每次和NPC对话的随机人数。 现在石器服务端拥有了LUA功能,可以通过LUA来动态全自动修改记录点的人数。咱们可以在netloopfunction.lu...

石器ABLUA神奇经验丹

石器时代私服里很多服里都会有收集经验丹的功能,这里提一下给大家分析分析一下,写法和语句上可能跟你们所使用的不太一样。但大致都是相同的。看到freecharexpsave.lua这个LUA,其函数为FreeCharExpSave(charaindex,exp),参数为玩家索引和获得的经验值。代码分析如下:function FreeCharExpSave( charainde...

用ABLUA的FreeCharLogin检查玩家属性点

石器时代服务端里的ablua文件夹下freecharlogin.lua这个lua非常好用,是用于人物数据登陆检查用,这样可以写各种检查和判断,下面教写一下人物超过一定属性点还原成最大属性。function FreeCharLogin( charindex )--人物最大属性点上限625点,*100下文会提到local maxpoint ...