众所周知,小程序的大小限制在2M,我手头上这个项目目前已经不小了,因此时常出现超过2M上传不了代码的情况,为了解决这个问题,我曾经把项目的尽可能的去做了压缩,可是省下来的空间永远赶不上需求的增加,很快就又会出现这个问题,很是头大,就是那种眼看着自己辛苦写出来的代码还不能面世的尴尬,心痛的很,那么有人说了小程序不是提供了分包加载吗?是的嘞,但是我目前使用的是wepyjs的框架,对于基于这个的分包实在是没琢磨透,所以没敢轻举妄动,因为就想到了把本地放到服务器上的办法,哈哈~也算是笨人有笨办法吧,嘻嘻。。。
那么接下来就来说我是怎么处理的,其实还是很简单的。
首先,让后台的小伙伴协助把放到对象项目的域名上,那么这个对于我们来说就相当于项目的接口一样了,在使用的时候只需要把对应的接口域名拼接上即可啦,下面我们来看一个小例子:
已经请后台放到了服务器上了,那么负责任的后台呢会给你一个完整的链接给你做例子,让你去对应的修改你所需要的。
如上图,这就是我们后台把放到服务器上给我发的一个链接例子,正如你们所看到的,我掩盖到的部分就是项目的域名,Picture是服务器上放的文件夹,然后就是对应的名称。
所以这样看来就很简单了吧,我得具体做法是:
在appwpy文件的onload中,给globalData附上服务器的公共域名链接的前半段,然后在其他wpy文件中,直接在onload中把globalData赋值给当前页的一个data值使用即可。
对于单机游戏来说,所有数据都是在内存和硬盘上的,所以单机游戏实际上是有内存修改器和存档修改器两种。只不过修改的位置不同,技术上来说都是大同小异,就是直接修改游戏数据。制作技术不外乎两种,一种是直接分析游戏主程序对应的反汇编代码,找出关键位置。另一种则比较简单,是通过游戏中数据的变化,来找到对应位置。比如金山游侠中的内存搜索,就是通过搜索内存中某个数值的变化来确定内存地址从而修改数值的。(实际上只要把游戏数据存储成浮点类型,一票类似原理的修改器都跪了。。。)。存档修改器也是类似,首先存个档,然后消耗个数值,然后再存一个档,比较两个存档的差异来确定要修改的位置。知道了要修改的内存或存档地址之后,剩下的就是写个程序修改对应内存或者存档的位置就行了。基本上单机游戏修改器就是这么个流程。网游的数据都是存储在服务器上,所以所谓外挂的原理其实也没比单机复杂多少。比如有个网游的基本架构如下:
实际上一般还有个账户服务器,用户账户数据一般是跟游戏数据分离开的,一个用户账户是可以登录若干个游戏服务器的。但是这个跟本话题无关暂时省略掉。
比如你在游戏中做了某样 *** 作,比如打个怪,或者开个宝箱,这时候,游戏客户端的任务就是把你这些 *** 作,转换成预先定义好的数据格式发送给游戏服务器,然后游戏服务器收到数据之后,了解了你的意图,然后在游戏服务器上做了一番比较和判断之后,然后把结果发送给游戏客户端,你掉了XX血获得YY经验,打开宝箱得到ZZZ物品。客户端收到服务器的指令之后,在你的画面上把服务器的结果显示出来,仅此而已。
这时候就能看出来了,你仅仅修改游戏客户端的数值是没用的,因为数值并没有同步到游戏服务器上,下次服务器给你发送数据的时候就会改回来。
那么游戏外挂是怎么做的呢?关键就在于外挂会模拟客户端发送数据参考下图。
比如在客户端我正常打怪,手动点击一秒钟打怪一次,但是外挂则会毫无节 *** 地一秒钟发送给服务器几十哪怕上百次打怪的数据。于是有些服务器就会被骗过,从而客户以更高的效率获得经验和奖励。但是这种方法对外挂编写者技术要求比较高,首先你得能分析的出来原来客户端和服务器段通信的数据封包的格式,然后写出模拟客户端的外挂程序。其次最重要的是你得能骗得过服务器。像一秒钟打怪几十次的数据,服务器还是很容易判断出你是在作弊的。而且对于这种严重破坏游戏公平性的外挂来说,被发现的代价还是很大的。游戏公司也是严厉禁止的。
骗不过服务器怎么办呢?于是有些外挂走上了另一条路,这条路上外挂不是模拟游戏客户端了,而是模拟游戏的主体——人。也就是外挂部分或者全部代替人在游戏中的作用。就像下面的图示。
还用打怪来举例子就是外挂给游戏客户端发送模拟指令,模拟用户的打怪 *** 作。然后用某种预先定义好的算法,更有效率的打怪,然后在HP低到一定程度的时候,自动回血。基本上只是一个自动代练的程序实现。这种外挂有些并没有很大的破坏游戏的公平性,游戏官方也是睁一只眼闭一只眼的。
后来好多游戏公司举得,既然这种外挂并没有怎么破坏游戏的公平性,那为啥不自己做呢,能多赚点钱谁不乐意呢?于是有些游戏就又提供了游戏的挂机打怪功能,根据功能不同,免费或收费也不尽相同。于是这种官方提供的东西又被叫做内挂。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)