有的人问怎么去平台限制,我在这里简单讲讲,以下图为例,先把地图的J文件提取出来(怎么提取这里就不教了,网上有教程,很简单),提取出来后,看这段文字
首先看第一行,你不用分析,一看函数名就知道是做什么的了,本地函数DzAPI_Map_SaveServerValue的意思很明显,存(save)一下你开的这个游戏的服务器(Server)的值(Value),这个函数的返回值是boolean(布尔)型,boolean型的值只有两种,一种是false(假),一种是true(真),如果存了服务器的值而且成功了,返回true,失败返回false。这样就知道这句话是做什么的了,地图在调用这个函数,如果是通过局域网或者某平台加载了地图,那么肯定有服务器(server),自然能取到服务器的值,这样DzAPI_Map_SaveServerValue的返回值必然为true,如果你开的是单机,那么肯定是没有服务器的,返回值就是false。
再来分析第二行,DzAPI_Map_GetServerValue这个函数的意思看字面也能理解,得到(get)服务器(Server)的值(Value),返回值是字符串(string)。这样就知道这句话的作用了,用SaveServerValue这个函数,我们只能知道开启的是不是单机,有没有服务器?但是却无法得知这个服务器是属于局域网还是对战平台的,通过GetServerValue的返回值就能判断出服务器是属于局域网还是对战平台,因为GetServerValue这个函数在局域网和对战平台的执行后返回值肯定不会一样。
剩下那几句我就不细解释了,尤其IsRedV爱皮(是不是红色V爱皮)、IsBlueV爱皮(是不是蓝色V爱皮)这些函数,意思都很明显了。上图红框里的那些函数全部都是关于平台限制的,全部都要改,这里我就示范一下部分内容的改法。
第一句,既然地图作者想调用本地函数DzAPI_Map_SaveServerValue存服务器的值,那就改一改,让他调用我们自己写的函数
function DzAPI_Map_SaveServerValue takes player whichPlayer,string key,string value returns boolean
return true
endfunction
注意我这里写的是3句,function的意思是函数声明,告诉魔兽程序,DzAPI_Map_SaveServerValue不是常数不是变量,而是函数!函数名当然还是DzAPI_Map_SaveServerValue,我们本来就是要替换这个函数。后面那些参数都不能改,否则后面在调用时会出错,参数照抄上去就可以,这样就能保证我们自己写的函数和本地函数用法相同。
return true的意识是DzAPI_Map_SaveServerValue的返回值是true,这样一来,无论你传递什么样的参数,这个函数永远返回true,就可以欺骗游戏,我用的是服务器!!
endfunction是函数的结束标识符,没什么好说的。
就讲这些吧,想学改图的可以自己动手试试,自己动手丰衣足食。
至于平台检测升级,一般是地图里有某些内容(地图特征),只有这个地图里有,平台进行检测是要查这部分内容。要么就是某个图的专用房间,进去后检测地图md5的,改一个字符md5都会变,凡和官方图不一致的平台一律不予创建,这种情况,解决办法就是去别的房间建图,没啥好办法,因为平台那边已经把你限制了,这不是改图能解决的问题。
这是改好的J文件
另外给菜鸟一个忠告,不要怕改错,不要怕游戏崩溃,就当给自己积累经验,经验是最好的老师!祝你早日成为大神
首先看第一行,你不用分析,一看函数名就知道是做什么的了,本地函数DzAPI_Map_SaveServerValue的意思很明显,存(save)一下你开的这个游戏的服务器(Server)的值(Value),这个函数的返回值是boolean(布尔)型,boolean型的值只有两种,一种是false(假),一种是true(真),如果存了服务器的值而且成功了,返回true,失败返回false。这样就知道这句话是做什么的了,地图在调用这个函数,如果是通过局域网或者某平台加载了地图,那么肯定有服务器(server),自然能取到服务器的值,这样DzAPI_Map_SaveServerValue的返回值必然为true,如果你开的是单机,那么肯定是没有服务器的,返回值就是false。
再来分析第二行,DzAPI_Map_GetServerValue这个函数的意思看字面也能理解,得到(get)服务器(Server)的值(Value),返回值是字符串(string)。这样就知道这句话的作用了,用SaveServerValue这个函数,我们只能知道开启的是不是单机,有没有服务器?但是却无法得知这个服务器是属于局域网还是对战平台的,通过GetServerValue的返回值就能判断出服务器是属于局域网还是对战平台,因为GetServerValue这个函数在局域网和对战平台的执行后返回值肯定不会一样。
剩下那几句我就不细解释了,尤其IsRedV爱皮(是不是红色V爱皮)、IsBlueV爱皮(是不是蓝色V爱皮)这些函数,意思都很明显了。上图红框里的那些函数全部都是关于平台限制的,全部都要改,这里我就示范一下部分内容的改法。
第一句,既然地图作者想调用本地函数DzAPI_Map_SaveServerValue存服务器的值,那就改一改,让他调用我们自己写的函数
function DzAPI_Map_SaveServerValue takes player whichPlayer,string key,string value returns boolean
return true
endfunction
注意我这里写的是3句,function的意思是函数声明,告诉魔兽程序,DzAPI_Map_SaveServerValue不是常数不是变量,而是函数!函数名当然还是DzAPI_Map_SaveServerValue,我们本来就是要替换这个函数。后面那些参数都不能改,否则后面在调用时会出错,参数照抄上去就可以,这样就能保证我们自己写的函数和本地函数用法相同。
return true的意识是DzAPI_Map_SaveServerValue的返回值是true,这样一来,无论你传递什么样的参数,这个函数永远返回true,就可以欺骗游戏,我用的是服务器!!
endfunction是函数的结束标识符,没什么好说的。
就讲这些吧,想学改图的可以自己动手试试,自己动手丰衣足食。
至于平台检测升级,一般是地图里有某些内容(地图特征),只有这个地图里有,平台进行检测是要查这部分内容。要么就是某个图的专用房间,进去后检测地图md5的,改一个字符md5都会变,凡和官方图不一致的平台一律不予创建,这种情况,解决办法就是去别的房间建图,没啥好办法,因为平台那边已经把你限制了,这不是改图能解决的问题。
这是改好的J文件
另外给菜鸟一个忠告,不要怕改错,不要怕游戏崩溃,就当给自己积累经验,经验是最好的老师!祝你早日成为大神