求一个E语言做的易语言我的世界启动器器

注:您的评论需要经过审核才能显示哦,请文明发言!
游戏娱乐分类
游戏工具排行
按字母检索:
本站资源均收集整理于互联网,其著作权归原作者所有,如果有侵犯您权利的资源,请来信告知,我们将及时撤销相应资源。
Copy .Com. All Rights Reserved.查看: 1119|回复: 6
求minecraft启动器制作思路
阅读权限20
在线时间0 小时
积分主题听众
已帮网友解决0 个问题
如果您下载的软件是收费的"请千万不要付款",那绝对是骗子,请立即联系本站举报,若您执意要付款被骗后本站概不负责。</
求minecraft启动器制作思路
联系我时,请说是在 挂海论坛 上看到的,谢谢!
上一篇:下一篇:
阅读权限20
在线时间3 小时
积分主题听众
已帮网友解决0 个问题
不要整天把国家大事摆在嘴上,去改变你能改变的,接受你无法改变的。
承接软件定制服务,QQ: 官网:
阅读权限10
在线时间4 小时
积分主题听众
已帮网友解决0 个问题
JAVA的。。。。
阅读权限20
在线时间6 小时
积分主题听众
已帮网友解决0 个问题
看签名。。。。。。。。。。。。。。。。。。。。
游戏辅助制作,小型程序及软件,补丁及脱壳代理详谈了解QQ:
阅读权限10
在线时间4 小时
积分主题听众
已帮网友解决0 个问题
打酱油的啦,飘过赚点海币而已。
阅读权限20
在线时间9 小时
积分主题听众
已帮网友解决0 个问题
震撼啊!为什么会有如此好的帖子!我纵横网络BBS多年,自以为再也不会有任何帖子能打动我.
阅读权限10
在线时间6 小时
积分主题听众
已帮网友解决0 个问题
这个是什么玩意,看不懂是啥。
注册账号后积极发帖的会员
经常帮助其他会员答疑
积极宣传本站,为本站带来更多的用户访问量
Powered by Discuz! X3.2
Comsenz Inc.从零开始制作Minecraft启动器(C++开源) - 大梦烟云 - 博客园
随笔 - 31, 文章 - 0, 评论 - 0, 引用 - 0
从零开始制作Minecraft启动器(C++开源)
  新手飙车了~~~,MC启动器源码大放送,随心所欲打造自己的专属MC启动器,这不是易语言,是C++。。。分析原理,关键源码都有详细的注释,代码编好就打包放送,所以说凌乱无比。。。
下载地址:
百度网盘:http://pan.baidu.com/s/1i3UDOXn
CSDN下载:http://download.csdn.net/detail/u76136
MClauncher(公版)启动器界面:
代码全部开源,拥有详细的注释:
测试过的平台:windows7 64位、windowsXP,在这两个平台上都能运行。
测试MC启动版本:Minecraft1.7.10纯净版、Minecraft1.7.10 forge版都能启动,讲道理的话,其他版本的游戏也有可能启动。。。
特别说明:
  因为采用的Qt为夸平台软件,编译出来的exe文件运行需要很多的夸平台库,这样的话导致启动器比一般的都要大而且启动器目录非常混乱,为了解决此问题,已将所有的库文件和exe打包成新的exe文件了,直接点击MClauncher.exe运行即可。注意,360会瞎比报毒,直接无视即可。。。
  历经千辛万苦终于撸出了自己的启动器,尽管还有无数的BUG,但至少能用了。。。
  刚开始什么都不知道,在网上大量搜索MC启动器源码、MC启动原理等。搜索到的源码还是挺多的,但是大多是易语言写的,下了好多下来。但是,不懂易语言,愣是没看懂怎么启动的。后想到Google上找点源码,但是有GFW的存在,买不起VPN,好多网页都打不开,而且最为关键的是尼玛看不懂英文啊。后来在某个论坛里看见一条回复,说是要启动MC,分析里面的JSON文件就可以了,看到这句话,制作MC启动器终于有了眉目了。
&&&&&&&& 先着手分析MC启动器启动参数,参考旋律启动器,打开旋律启动器调试开关,就可获得启动器传给游戏的参数。当然,也可以打开cmd,在启动器启动时输入&wmic process where caption="javaw.exe" get caption,commandline /value&D:\canshu.txt&参数,即可获得启动器参数。
&&&&&&&& 在看MC启动器参数之前,先来看看运行jar包参数传递及依赖关系分析。
之前为了弄清MC参数传递,特地做了个小的java程序模拟MC游戏,这样不必在庞大的MC游戏上做这个小参数测试。
小游戏启动脚本:
java -Xmx1024m -Dplayer.name=BlueCat -cp HelloFrame.jar HelloFrame
参数分析:
-Xmx1024m:代表JVM最大堆内存值(不懂,反正照着别人的抄就行。。。)
-Dplayer.name:(用-D&name&=&value&来设定系统属性值)这里利用来传递游戏参数,在java程序里可以用:System.getProperty("player.name")获得其值,这样就可以在测试窗口上显示玩家名称了。
-cp:目录和 zip/jar 文件的类搜索路径,后面的参数为main函数执行所依赖的jar包,以及其所在的jar包,无先后顺序。
最后一个参数:指定main函数所在的类HelloFrame,若该类在包中,前面加上包名,否则只写类名即可。
现在再来看真正的Minecraft启动参数,太长了,分段来看。
C:\Program Files\Java\jre7\bin\javaw.exe
(包含全路径的javaw.exe)
-Dfml.ignoreInvalidMinecraftCertificates=true
-Dfml.ignorePatchDiscrepancies=true
-Djava.library.path=".minecraft\natives"
(堆内存及相关系统变量设置)
-cp & ...(此处省略一万个jar包)...1.7.10-Forge10.13.2.1230.jar&
(所依赖的jar包)
net.minecraft.launchwrapper.Launch
(main所在的类)
--username &&&&&BlueCat
--version &&&&&&&1.7.10-Forge10.13.2.1230
--gameDir &&&&&&.minecraft
--assetsDir &&&&&&.minecraft\assets
--assetIndex &&&&&1.7.10
--uuid &&&&&&&&&&${auth_uuid}
--accessToken &&&&${auth_access_token}
--userProperties &&{}
--userType &&&&&&&legacy
--tweakClass &&&&&cpw.mods.fml.common.launcher.FMLTweaker
(游戏参数,在JSON文件中的minecraftArguments)
在模拟小程序中,除了第五段没有模拟外,其他都是类似的。
启动游戏时传递这些参数即可启动游戏了,这些参数都可以从JSON文件中获得,当然有些参数是固定的有的是自己设置,比如游戏名字自己设置吧。
所说的JSON文件在.minecraft\versions\1.7.10\目录下的1.7.10.json
  重要的参数都在这里,所以启动器要做的就是解析这个JSON文件,获得其中的值,转化为启动参数,传递给JVM就可以了。所以,做启动器做的最多的就是字符串处理了,我是个菜鸡,C++和Qt都是半吊子,一知半解,也不知道有什么好的方法。反正很多地方都做得比较蠢,代码也写的相当的凌乱,想起什么就写什么,写到最后连我自己都理不清思路了,所以看源代码可能会比较费解,不过关键的方法都有注释。在阅读源代码时记住一条,所做的一切的目的是将JSON中的一串字符转化为合适的启动参数。所以在看到代码在瞎JB做循环或者突然减个1时,不要懵圈了,~_~。关于启动器的原理就说这么多了,更多的查看源代码,哈哈~~~。
噢,对了,还有些事情。
1、& 就是希望大家帮忙测试启动器,BUG发送至我的邮箱,感激不尽!
可能不会尽快修复BUG,因为有更重要的事情要做,应该最近很长一段时间内不会再碰启动器了。
2、& 公版启动器现存的BUG:
(1)在选启动版本时存在窗口滑动BUG,类似下图。
这个BUG,我暂时无能为力,我只是一只菜鸡,在不断的学习中。。。
(2)那个自动设置内存选项是假的,就是固定设置为1024m,我暂时还不知到怎么弄。
(3)java路径自动查找算法还有待强化,这其实也不太算是BUG,目前只是查找系统环境变量中PATH中含有的java路径,在别的电脑上测试时有失败过。
3、& 关于制作启动器过程中一点蛋疼的问题
先是在Qt4上撸出了启动器的界面,大多按钮采用假连接,后来到解析JSON文件时才发现Qt4没有JSON相关的类,JSON相关的类从Qt5才开始有。于是跑到官网上下了最新版的Qt5.5.1(minGW版),编译好了程序一运行就导致Qt Creater一直未响应,这真的是很蛋疼。后来换到Qt5.0.2才没有这个问题,可是这版本编译的Release版要在没有装Qt的电脑上运行很麻烦,要多很多的库文件。于是,又下了个Qt5.5.0,还是有一直未响应的问题。所以呢,最后用Qt5.0.2编译调试,然后用Qt5.5.0编译在别的电脑上测试。。。
4、& 最后一点,参考旋律启动器时有个natives文件夹,里面放的是些dll文件,不知道有什么用,反正没了就是启不动,旋律缺少的话是下载过来的。在这里的话,我是解压相关jar包中的文件到该目录下的,所以,公版启动器中还内置了一个unzip32.exe程序。
启动器是从零开始撸出来的,很多地方不是很理解,也有的地方做的有些愚,还望有大牛能够指点一二,万分感谢!!!【图片】[长更|半教程|发布]自己研究和制作的一款Minecraft启动器【易语言吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:149,552贴子:
[长更|半教程|发布]自己研究和制作的一款Minecraft启动器收藏
启动器页面镇楼,(怎么这么像hmcl)划掉接触易语言3年了,可是我还是停留在青铜的阶段。像必须掌握的基础api,什么是钩子,什么是注入,我都不懂。所以想借这次这个项目的开坑,能让我接触和学习更多的编程知识和技巧,认识更多的人。大家都知道我的强迫症和严谨(划掉)。其实我也希望有人能关注我,你们都知道单机贴吧是什么感受。像小水也好,随便说几句话也好。总之让我知道你们在支持我,关注我,我才能有动力做下去。思绪万千,也不多讲。开始吧!poi~最后说一句:抢楼的泥垢了知道我是强迫症还抢我二楼
3L我要了 poi~
5L我要了 poi~
6楼我要了poi~顺便膜拜大神
文件下载哈勃:高度风险。。。大家自己掂量吧。这个版本ui方面有一点错误还没修复,明天再说吧ps.virscan我上传就提示内部错误,不能上传下面转战手机,开始发码在手机里的文字
好了我先讲这个启动器的起源和背景吧。不想看的可以直接跳过,但是教程和方法我明天再放出来。前方多废话预警前方多废话预警前方多废话预警。下面是我本来想发出来的原话(就是手机里码的字)。 嘛,这个启动器是被我当成一个对外发布的软件而开的坑。所以这个项目我会认真的更新下去,直到我可以用其他著名语言(c,Java,c#什么的)写这个启动器时。。这个项目的起源是我刚刚开始研究启动器时在mcbbs和百度上翻前辈留下的易语言启动器源码,翻到了一个加了密的源码,于是就顺着QQ找了过去,然后他就拉我进入这个叫mc服务器的坑。然后我就成为了那个服务器的op,负责写教程(因为我对写报告方面很擅长)和写程序。写这个启动器的初衷是锻炼我自己编程方面的知识,因为我已经接触易语言有3年了但是基本的api还不知道。全都是靠百度堆起来的,原来开发的程序全都是靠易语言自带命令写成的。之所以对外发布是因为不想让自己的开发过程被浪费,谁都不想自己写的一款好软件被埋没在自己这里,当然也有(水)划去的因素。我没想也不想和市面上的启动器竞争,hmcl啊bmcl啊。只是给自己练手和熟悉编程知识的项目,当然如果你们想用我也不介意。至于到底会更新多久,至少在这个暑假以内会保持7天一更的程度。但是在开学以后就不知道了,为什么?因为万恶的中考。但我保证不会弃坑,最少在中考过后的暑假结束之前不会(高中住校大家都懂得)。最后是大家最关心的开源问题 这个我有点纠结。因为我现在是采用模块启动mc的,模块可以开源。至于我程序本身,是不会全开源的,会讲一些思路和涉及到的源码(比如怎么读取游戏版本)。题外话:谁能给我推荐一个编程语言,我已经准备好了进入编程这个大门了。。题外话:为什么我对写报告很擅长呢?上课经常作死然后被罚写检讨书+参加科学竞赛写过报告书
我才不会告诉你我已经不学易语言了
我已经学Java了
我用过模块,,但是无法启动
我们合并把,一起开发,可以吗?
   --来自采用六颗钻石、通过工作台打造、附魔台附魔,拥有水下呼吸附魔的一副能水帖的手机。
教程收藏了
楼主看看我的启动器教程,提点意见哈。
我的三楼= =
到处都是mc
不是解析json吗?
我写的json启动1.8.3启动窗口异常然后弃坑了,去年4月做的
对了,还有正版启动不会弄,没有号测试
好,开始正式讲解启动器了。首先mc启动器的根本是能启动Minecraft(废话)。但这也是最难的部分,阻挡了许多人进入启动器这个门槛。。我这里直接采用了模块启动,这个模块是来自著名的BeeStudio工作室内大神们联合开发的。这个模块目前在百度上没有任何结果,在mcbbs也不能找到,只在少量易语言爱好者之间传播。这次呢,我就把他发布出来(文件在楼中楼,因为原作者并没有说允不允许发布,楼中楼好应变一点)。。原先我是想去翻hmcl的源代码找出怎么启动mc的。咳咳,由于不会java,被一巴掌扇回来了。后来百度也百度不到怎么启动java,亲爱的google又在墙外。于是就在mcbbs乱找,然后在编程区翻到了:[易语言|开源]E-Jmcccq MC启动模块【全版本|natives解压|单命令启动】但是下载后发现非常多的错误(不支持中文路径什么的),然后就顺着QQ群找了进去。随后一群大大就给我推荐了:Minecraft启动模块1.4.2.ec这个模块,然后就有了这个启动器的诞生。
这东西有这么麻烦么不就是调用甲骨文java运行一个jar吗
接下来就直接进入如何启动mc的教程相信大家得到那个模块后会很容易理解并且上手。以及迫不及待的想启动游戏了。好的,那接下来我就讲解如何启动游戏和启动游戏各个参数如何使用
首先是游戏版本,这个游戏版本是指.minecraft\versions文件夹下的文件夹名称。比如我的.minecraft\versions文件夹下有两个文件夹1.8 和 1.8-forge1.8-11.14.4.1563 那我在填写这个参数的时候就只用把文件夹名称填入就好了,而不用填入里面的1.8.jar 或者 1.8-forge1.8-11.14.4.1563.jar。至于做启动器怎么获取,历遍然后写入组合框就好了。。第二个参数是java路径你可以通过模块的java信息()来获取java路径。java信息返回的是一个有三个成员的数组:1是java版本2是java所在文件夹(注意是文件夹而不是java本体)3是java是几位的(32/64)。第三个参数是玩家id,不解释接下来的是uuid,token,twitch这几个参数是涉及到正版登录的,我们后面再讲。最佳内存是由最后一个子程序最佳内存()返回的,和是否64位()搭配使用。最后三个都是字面意思,已经涉及到更深的知识了,这里就不讲了(话说倒数第二个我实在看不懂)。。正版登录先用子程序正版登陆()获得正版验证这个数据然后填到启动参数里就好了,name填玩家ID。嗯好了模块的所有命令都已经讲完了,也可以启动mc了。教程就先告一段落。终于可以开始制作我的启动器了
登录百度帐号銆愬浘鐗囥

我要回帖

更多关于 我的世界启动器 的文章

 

随机推荐