简单谈谈怎么去掉地图的平台限制
魔兽改图吧
全部回复
仅看楼主
level 11
cl0700 楼主
有的人问怎么去平台限制,我在这里简单讲讲,以下图为例,先把地图的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文件
另外给菜鸟一个忠告,不要怕改错,不要怕游戏崩溃,就当给自己积累经验,经验是最好的老师!祝你早日成为大神[真棒]
2018年03月20日 03点03分 1
level 11
[哈哈]先ma住
2018年03月20日 03点03分 2
老哥 大佬修改过的j文件能分享一个嘛 [email protected]
2018年09月19日 09点09分
level 11
[泪]这样改没有成功 地图:疾星斩月1.19
2018年03月20日 04点03分 4
你下面的代码没改完,我画红框的都要改,道理都是一样的,我只是以第一句为例。就像GetServerValue这个函数的返回值是字符串,你把函数修改成让它返回空值,都是一个道理啊
2018年03月20日 06点03分
@cl0700 一个图和一个图不一样,但是道理是相通的,你会改第一个函数就会改别的函数
2018年03月20日 06点03分
@cl0700 好的 我试试
2018年03月20日 06点03分
你这个图通关没 我N1反复背虐啊 最后的boss一波把我秒了。。。。
2018年04月25日 16点04分
level 11
后面的string返回值不知道写啥 大佬你这百度文件分享不存在...本想照着看看的
2018年03月20日 12点03分 5
文件下了 OK 我先看看那
2018年03月20日 12点03分
level 5
很详细的教程,谢谢分享
2018年03月20日 12点03分 6
level 11
这是我改完之后的 我把war3map.j这个文件替换了地图里的 再开单人和局域网还是不行啊
2018年03月20日 13点03分 7
声明错了
2018年03月21日 00点03分
[惊哭]
2018年03月21日 00点03分
@泥猴桃丶 自己写的函数声明不要加native
2018年03月21日 03点03分
疾星斩月不是玩不了单人和局域网的吗?超过40M
2018年04月23日 14点04分
level 11
[委屈]把native去了还是不行
2018年03月21日 03点03分 8
回复 cl0700 :👌
2018年03月21日 03点03分
@s76268901 好的 回去统一发
2018年04月01日 04点04分
@s76268901 已发[哈哈]
2018年04月02日 14点04分
@泥猴桃丶 [email protected]给我发一份行吗,谢谢
2018年04月06日 19点04分
level 11
[笑眼]移除了平台限制了 谢谢大佬
[滑稽]那么怎么做才能把付费的那些英雄可选呢
2018年03月21日 03点03分 9
这个没通用的办法,只能看代码了
2018年03月21日 04点03分
兄弟,怎么改的啊,我都照你那改了,还是不行呀
2018年04月18日 02点04分
2018年04月19日 02点04分
大兄弟,integer那里返回30是什么意思啊
2018年04月26日 19点04分
level 11
找到了部分相关代码 这种需要判断玩家id和输入指令的 怎么破 求教大佬[疑问]
2018年03月21日 10点03分 10
看看是不是加密id,然后对比输入指令相不相等,如果是的话就把相等改成不等
2018年03月21日 11点03分
这种的,直接改if即可,把if改为:if GetEventPlayerChatString()=="小为" then,那么小为就是这个密码,其中自行修改,如果还不能够通过的 第二行直接改为 if true then。
2018年03月22日 03点03分
@闲里春风🌺 👌 我试试
2018年03月22日 03点03分
回复 Mr丶史公子 [哈哈]搞定啦 谢谢大佬
2018年03月22日 05点03分
level 5
请教下大神 怎么在地图中添加触发呢 我在j里添加了之后游戏就无法创建了 这是为何 emmmm
2018年03月23日 10点03分 12
语法错误,要添加自己写的触发,首先你要懂得T转J,然后再去用WE写好触发后,转成J文本,把你写的触发提取出来,在一一安放到你要添加的地图J中。
2018年03月24日 10点03分
@闲里春风🌺 整明白了 2333 谢谢大佬指点[开心]~
2018年03月24日 13点03分
@闲里春风🌺 小为大神,我用MPQREBUILD提取了J文件,然后按照你B站上的方法把平台限制的函数改了,应该是没有问题了,但是我导入修改好的J文件之后,地图就变成了900多M了,怎么破解。。。求指导
2018年12月06日 11点12分
level 2
希望把某图去除平台限制,并且加入-save本地存档模式
2018年03月23日 14点03分 13
有答案了吗?同求
2020年11月18日 06点11分
level 2
麻烦大佬留个联系方式
2018年03月23日 14点03分 14
图留下,有空我给你瞧瞧
2018年03月26日 14点03分
@cl0700 官方对战平台 侠客无双和烽火大唐
2018年03月27日 08点03分
level 11
emmm上次移除了疾星斩月的平台限制 现在照样改星耀天穹的行不通 [泪]大佬再指点一下
2018年03月26日 14点03分 15
哪个版本?
2018年03月30日 13点03分
@cl0700 最新的好像😓
2018年03月30日 14点03分
@cl0700 我发现新图在后面多加了一个函数判断平台限制 只是我不会改[不高兴] 大佬能指点一下嘛
2018年04月06日 09点04分
@泥猴桃丶 你这改的什么乱七八糟,functions endfunction 这是一个函数段,你的end呢
2018年04月07日 05点04分
level 1
这个我试着改了下弓箭手小生存结果不行。大佬帮我看看
2018年03月27日 05点03分 16
level 1
大佬 纯小白 这个J文件是什么。。。。能不能帮给下军团战争平台限制啊~
2018年03月30日 08点03分 18
1 2 3 4 5 6 尾页