石器技术文章 第6页

石器时代用LUA写一个幸运星功能

话不多说,直接开整1、建立个LUA文件为luckstar.lua2、代码内容如下,已经把注释写在内容里,直接看即可--net这个函数我前面就讲解过了,需要把下面定义的那个函数放在这个函数里执行function NetLoopFunction()--定义当前时间小时数Hour = tonumber(os.date("%H", ...

石器LUA写入文本实例

有时候我们需要在lua里加入日志来记录一些必要的事情好在之后进行查询,特此教一下新手如何给lua加入文本日志代码如下:--打开该路径下的文件,io.open两个参数为路径,属性,a为如果文件不存在则自动创建local filelog = assert(io.open("./data/ablua/log/sa.log", "a...

装备效果BT化

如何对石器时代的装备效果BT化?有时候一些喜欢开BT石器服的HM需要。作为BT版本,翻数倍甚至百倍属性是必要的,一件件道具改实在太麻烦了,索性修改代码得了,服务端代码其实已经有了,我只是拿来讲解一下。1、打开item.c2、搜索voidOther_DefcharWorkInt(intindex)3、向上能看到下列代码:#ifdef _BT_PET_ITEMwork ...

摆摊名字bug

那就是摆摊名可以写的很长,最后可能导致gmsv蹦端的BUG修复方法:1、打开char.c2、找到我们昨天第一处修复的地方,往下看,一直看到if(!getStringFromIndexWithDelim(message,"|",6+(i-1)*3,szTemp,sizeof(szTemp)))return;3、然后在下面对摆摊名进行判断,代码如下if (strle...

石器时代gmsv摆摊BUG修正代码

原理很简单,就是摆摊的物品和宠物总数如果超过一定的时候,就会导致gmsv卡住。这个BUG前几年到是出现过,但范围并不是很大,既然是BUG总得修复一下吧。1、打开char.c搜索elseif(szAction[0]=='S'){2、在count=atoi(szTemp);下面加入下列代码if (count>20)return;3、总数量不要超过20,否则容易...

石器家族留言板溢出BUG

  石器时代很早以前遗留的一个BUG,有的端可能没有修复过,也是以前开服有个别捣乱的利用字符长度没有检查写入的字符串太长了导致GMSV崩溃。下面直接教发放的,在saac里和gmsv里修复都一样。1、找到家族留言板的NPC代码:npc_fmdengon.c2、直接搜索if(strlen(data)==0)break;有两处3、修改成下列代码:if( str...

石器服务端代码控制对话音量大小范围

石器时代里一般由客户端来调整音量大小,有时候音量太大,当周围附近的多个NPC的情况下导致无法和想要说话的NPC说话。音量太小,当NPC间隔距离比较远的时候也无法对话,干脆由服务端来控制最大和最小范围。1、首先打开callfromcli.c2、找到说话封包voidlssproto_TK_recv(intfd,intx,inty,char*message,intcolor,inta...

让石器服务端上的MM无需看风景升级到70级

在之前的文章里有讲到修改enemybase1.txt来实现无需看风景直接练到79级,下面再教一个修改MM对话脚本来实现无需看风景的方法,其实这个方法很早就有了。1、首先打开npc/pettalk/pettalk01.arg2、其次搜索TALKRUN17:3、把下列代码修改一下即可TALKRUN17:FREE:LV>0PET:LV>0&LV<10TalkMsg:...

ABLUA调用其他函数接口

石器ABLUA和JZLUA调用其他LUA的方法不同,JZLUA是可以直接同目录下的其他LUA内的函数,而ABLUA不同,每个函数在一个LUA脚本脚本下都是单独的,如果需要调用则需要使用other库里的CallFunction接口,先讲解下这个接口的参数和含义other.CallFunction(被调用的函数名,被调用的LUA路径,被调用的函数内的参数[是以数组的形式存在])例:function...