|
|
本帖最后由 Firce777 于 2017-7-27 18:31 编辑
虽然尸体之前给出过一个编译ygopro的教程,但是还需要patch irrlicht,编译起来就特别的麻烦。这里恋恋就教给大家如何快速编译ygopro,不需要在电脑上安装任何其他的软件,一步到位就能编译好。
首先呢,这个编译操作需要用到github账号。如果没有的话,去https://github.com/注册一个。
注册好之后,先去拿一份ygopro源码,在这5个github地址里面选其一就行了。打开之后点击“Download ZIP”获取源码。(会git的小伙伴还是推荐git clone,方便日后更新。)
- https://github.com/Fluorohydride/ygopro
- https://github.com/moecube/ygopro
- https://github.com/mercury233/ygopro/tree/sound
- https://github.com/mercury233/ygopro/tree/link
复制代码 其中后2个带音效。
如果选第一个的话,需要从第二个里面取出premake文件夹放进去。如果选第四个的话,需要在game.cpp里面调整一下窗口大小,去掉23333服那些烦人的文字。
这次恋恋选用第二个最为通用的MyCard版本进行编译。
下载之后可以得到这些东西。
但是也发现了,ocgcore目录是空白的,需要去另一个github地址下载一份。
- https://github.com/Fluorohydride/ygopro-core
复制代码
下载之后把里面的内容(注意里面包了好几层目录)复制到ocgcore目录下。这里是ygo处理卡片效果逻辑用的部分。
然后看到appveyor.yml,moecube默认的appveyor.yml会识别版本号,以及生成一整个ygopro的内容。我们只是用来编译,所以不需要这么多东西。需要对appveyor.yml进行一次修改。之前选择了第一个git地址的,就重新创建一个appveyor.yml文件。恋恋修改过的appveyor.yml内容如下。
- version: '{build}'
- skip_tags: true
- environment:
- access_token:
- secure: DOOS4g7CT8ctOgiMr62K56qQ1FO6s2ESpqNZlhf8F4nomemvvwxV/pRj9nbKmtjR
- install:
- - git submodule update --init --recursive
- # environment and system dependency
- - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/premake/premake-core/releases/download/v5.0.0-alpha11/premake-5.0.0-alpha11-windows.zip ; exit 0"
- - 7z x premake-5.0.0-alpha11-windows.zip
-
- - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz ; exit 0"
- - tar xf libevent-2.0.22-stable.tar.gz
- - move libevent-2.0.22-stable event
- - xcopy /E event\WIN32-Code event\include
-
- - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name http://downloads.sourceforge.net/freetype/freetype-2.7.1.tar.bz2 ; exit 0"
- - tar xf freetype-2.7.1.tar.bz2
- - move freetype-2.7.1 freetype
-
- - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name http://downloads.sourceforge.net/irrlicht/irrlicht-1.8.4.zip ; exit 0"
- - 7z x irrlicht-1.8.4.zip
- - md irrlicht
- - move irrlicht-1.8.4\source\Irrlicht irrlicht\src
- - move irrlicht-1.8.4\include irrlicht\include
-
- - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://www.lua.org/ftp/lua-5.2.4.tar.gz ; exit 0"
- - tar xf lua-5.2.4.tar.gz
- - move lua-5.2.4\src lua
-
- - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://www.sqlite.org/2017/sqlite-amalgamation-3170000.zip ; exit 0"
- - 7z x sqlite-amalgamation-3170000.zip
- - move sqlite-amalgamation-3170000 sqlite3
-
- - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name http://www.ambiera.at/downloads/irrKlang-32bit-1.5.0.zip ; exit 0"
- - 7z x irrKlang-32bit-1.5.0.zip
- - move irrKlang-1.5.0 irrklang
- # let premake happy
- - xcopy /E premake\* .
-
- # patch irrlicht
- - patch -p1 < irrlicht\irrlicht.patch
-
- # premake
- - premake5 vs2015
-
- configuration: Release
- build:
- project: build/ygo.sln
- parallel: true
- after_build:
- - ps: move bin\release\ygopro.exe .
- test: off
- artifacts:
- - path: ygopro.exe
- name: ygopro temp build
- cache:
- - premake-5.0.0-alpha11-windows.zip
- - libevent-2.0.22-stable.tar.gz
- - freetype-2.7.1.tar.bz2
- - irrlicht-1.8.4.zip
- - lua-5.2.4.tar.gz
- - sqlite-amalgamation-3170000.zip
- - irrKlang-32bit-1.5.0.zip
复制代码 把上面这些内容复制粘贴进appveyor.yml保存即可。
之后呢我们需要调整一下ygopro的版本号,目前由于新大师规则还未正式发布,所以版本号是混乱的。打开下载的源码的gframe目录下的game.cpp,找到这一行代码,大概在第十几行的位置。
- const unsigned short PRO_VERSION = 0x133F;
复制代码
我们需要对这里的版本号进行修改。如果是用于23333服打牌,可以填0x233C。用于Mycard打牌,填0x133F。或者根据你玩的服务器来决定。
然后把premake/gframe下面的ygopro.aps ygopro.ico两个文件移动到外面的gframe,ygopro.rc复制到外面的gframe。
这里ygopro源码就算是整理好了。之后点击github右上角的加号,点击New repo。之后要你确认邮箱什么的,你就打开邮箱收一下确认邮件就行了。确认之后给自己的版本库取个名字,最好是ygopro开头的。然后最好把下面那个勾点了,然后随便选个许可证。然后点一下Create repo,创建一个新的ygopro版本库。
创建好之后点一下upload files,把下面这些文件拖到框里面。
- gframe
- ocgcore
- premake
- appveyor.yml
- premake4.lua
- premake5.lua
复制代码
如果一次拖不进去,可以分两次upload。(PS:懂git的人可以把这个版本库git clone到本地,然后新建commit然后推送,这里不再教了,只教最简单的)
upload好了之后,打开ci.appveyor.com(可能需要翻墙),会要求你登录,点左边的第一个按钮GitHub,然后会自动显示你的github账号,授权即可(就像开着QQ能直接登游戏一样)。然后点NEW PROJECT,选github,然后按Authorize GitHub,会再需要授权一次。授权了之后点击刚刚创建的git版本库。然后点击New Build,就会开始在线编译了。
编译大概需要5分钟的时间。这5分钟大家玩玩THC,也就过去了。5分钟之后如果编译没有错误,就可以在这个项目的Aritifacts里面下载到编译好的ygopro.exe,大功告成。
如果项目显示红色,那就是编译使用的ygopro源码出错了。检查一下之前的步骤哪里没做好,重新commit或者upload一次,检查一下。
如果前面如何处理ygopro源码的部分看不懂,那么恋恋也有一个现成的git地址给大家用,实在不行用这个吧:https://github.com/purerosefallen/ygopro-koishibuild
|
|