1.前言
最近「羊了个羊」这个游戏真是风靡一时,好多人都在玩,比如说我室友曾经一上午的课都没听,玩了一上午也没加入羊群哈哈。
这个游戏里面获得道具需要看广告,而且每种道具只能使用一次,可以说难度非常大,还有特别多无解的局。前几天看到了他的开源项目,就可以自己搭建一个无限道具,没有广告的私服了!
2.项目地址
原项目地址:
Gitee:
后端代码:(yang-server)https://gitee.com/qierkang/yang-server
前端代码:(yang-game)https://gitee.com/qierkang/yang-game
Github:
后端代码:(qierkang/yang-server)https://github.com/qierkang/yang-server
前端代码:(qierkang/yang-game)https://github.com/qierkang/yang-game
此外还有另一个大佬改进之后的后端仓库:(SleepyAsh0191/sheep-n-sheep-backend)随便用java写的自制羊了个羊服务端,写的很垃圾:https://github.com/SleepyAsh0191/sheep-n-sheep-backend
这个似乎功能更全一些,而且似乎每天会自动更新关卡,非常方便好用。
3.搭建流程
3.1获取代码
首先要做的就是Clone这些源代码了。前端代码是必须要下载下来的,后端代码如果有编译好的jar包的话就可以只下载编译好的jar包而不用下载源代码。(比如那个改进版本的仓库的Actions里面就有编译好的jar包)
3.2修改代码并打包jar包
如果第一步直接下载好了打包后的jar包,就可以跳过这一步。
如果你是用的是原本的后端代码文件而不是修改后的文件的话,直接编译运行是无法进入游戏的。因为羊了个羊的前端每天发送的请求参数都是当天的日期,而原版的后端是把地图数据直接写在代码里的(只有2022年9月15日当天的地图数据)
因此需要修改一下。
需要修改yang-server-master\src\main\java\com\ek\yang\controller\MapDataController.java
可以看到这样一段代码:
public class MapDataController { @Resource private RestTemplate restTemplate; @RequestMapping("/map_info") public Response getMapData(@RequestParam("map_id") Integer id) { if (id == 90015) { return new Response<>(0, "",new Data("62ce3c318a2da751dba21fd8", 90015, "2022-09-14T11:28:28.327Z", "{\"widthNum\":8,\"heightNum\":10," +
其中的90015代表的就是请求关卡地图时的参数,代表9月15日。需要修改为当天的日期当天才能使用。
比如可以改为90022。
当然还有一些其他的地方可以修改,比如可以修改默认账号的个人信息等等。
由于这个项目比较简单,她并没有使用数据库,重启之后数据就会清空啦
修改完成后就可以用maven打包了。
mvn package
若未安装,要重新安装:apt install maven
若报错,在其后加-X打包完成后就可以得到yang-server.jar了。
4.后端开启服务器
java -jar -Duser.timezone=GMT+08 yang-server.jar -p 8080
使用命令即可开启服务器。-p参数是指定端口号
5.修改前端地址并连接到后端
前端代码的这个文件里写了一点服务器地址
yang-game/src/settings.4b50e.js
server: "https://cat-match-static.easygame2021.com/catMatch/sheep_1_2_8/",
这个地方改成自己服务器的地址(不过好像关键并不是改这个)
似乎这个文件才是关键:
yang-game/assets/resources/index.8b75c.js
找到这个部分:
"data-env": [function(t, e, o) { "use strict"; cc._RF.push(e, "2af60/iE7lNdKoauwbjspyW", "data-env"), Object.defineProperty(o, "__esModule", { value: !0 }), o.getLocalEnvConfig = o.getEnvConfig = void 0; var n = t("./data-type") , a = n.ENV.online , i = { local: { evn: n.ENV.local, host: "http://192.168.31.86:8080", reportPrefix: "local_" }, beta: { evn: n.ENV.beta, host: "http://192.144.195.86", reportPrefix: "beta_" }, online: { evn: n.ENV.online, host: "http://139.196.92.142:8080", reportPrefix: "sheep_" }, onlineWx: { evn: n.ENV.onlineWx, host: "http://139.196.92.142:8080", reportPrefix: "sheep_wx_" }, leiTing: { evn: n.ENV.leiTing, host: "http://maowgameos1.leiting.com:8080", reportPrefix: "" }, onlineOppo: { evn: n.ENV.onlineOppo, host: "http://139.196.92.142:8080", reportPrefix: "sheep_oppo_" }, onlineVivo: { evn: n.ENV.onlineVivo, host: "http://139.196.92.142:8080", reportPrefix: "sheep_vivo_" }
把这些的host都改成你自己的服务器的地址即可连接到你的服务器。
6.部署并打开前端页面开玩
前端页面不需要什么环境,直接放在哪访问就能进去(小心跨域)。
电脑运行方式,是在开发者模式下开启模拟移动设备,但当第二关结束后要跳转时,火狐浏览器失败。微信浏览器第一次加载时,要多刷新。