设为首页收藏本站喵玉殿官方微博

喵玉殿论坛 · 喵玉汉化组

 找回密码
 少女注册中
搜索
查看: 986|回复: 2

[攻略] 如何利用appveyor快速在线编译ygopro

[复制链接]
发表于 2017-7-27 18:26:21 | 显示全部楼层 |阅读模式
本帖最后由 Firce777 于 2017-7-27 18:31 编辑

虽然尸体之前给出过一个编译ygopro的教程,但是还需要patch irrlicht,编译起来就特别的麻烦。这里恋恋就教给大家如何快速编译ygopro,不需要在电脑上安装任何其他的软件,一步到位就能编译好。
首先呢,这个编译操作需要用到github账号。如果没有的话,去https://github.com/注册一个。
注册好之后,先去拿一份ygopro源码,在这5个github地址里面选其一就行了。打开之后点击“Download ZIP”获取源码。(会git的小伙伴还是推荐git clone,方便日后更新。)
  1. https://github.com/Fluorohydride/ygopro
  2. https://github.com/moecube/ygopro
  3. https://github.com/mercury233/ygopro/tree/sound
  4. https://github.com/mercury233/ygopro/tree/link
复制代码
其中后2个带音效。
如果选第一个的话,需要从第二个里面取出premake文件夹放进去。如果选第四个的话,需要在game.cpp里面调整一下窗口大小,去掉23333服那些烦人的文字。

这次恋恋选用第二个最为通用的MyCard版本进行编译。
下载之后可以得到这些东西。
但是也发现了,ocgcore目录是空白的,需要去另一个github地址下载一份。
  1. https://github.com/Fluorohydride/ygopro-core
复制代码

下载之后把里面的内容(注意里面包了好几层目录)复制到ocgcore目录下。这里是ygo处理卡片效果逻辑用的部分。
然后看到appveyor.yml,moecube默认的appveyor.yml会识别版本号,以及生成一整个ygopro的内容。我们只是用来编译,所以不需要这么多东西。需要对appveyor.yml进行一次修改。之前选择了第一个git地址的,就重新创建一个appveyor.yml文件。恋恋修改过的appveyor.yml内容如下。
  1. version: '{build}'
  2. skip_tags: true

  3. environment:
  4.   access_token:
  5.     secure: DOOS4g7CT8ctOgiMr62K56qQ1FO6s2ESpqNZlhf8F4nomemvvwxV/pRj9nbKmtjR

  6. install:
  7.   - git submodule update --init --recursive

  8.   # environment and system dependency
  9.   - 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"
  10.   - 7z x premake-5.0.0-alpha11-windows.zip
  11.   
  12.   - 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"
  13.   - tar xf libevent-2.0.22-stable.tar.gz
  14.   - move libevent-2.0.22-stable event
  15.   - xcopy /E event\WIN32-Code event\include
  16.   
  17.   - 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"
  18.   - tar xf freetype-2.7.1.tar.bz2
  19.   - move freetype-2.7.1 freetype
  20.   
  21.   - 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"
  22.   - 7z x irrlicht-1.8.4.zip
  23.   - md irrlicht
  24.   - move irrlicht-1.8.4\source\Irrlicht irrlicht\src
  25.   - move irrlicht-1.8.4\include irrlicht\include
  26.   
  27.   - 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"
  28.   - tar xf lua-5.2.4.tar.gz
  29.   - move lua-5.2.4\src lua
  30.   
  31.   - 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"
  32.   - 7z x sqlite-amalgamation-3170000.zip
  33.   - move sqlite-amalgamation-3170000 sqlite3
  34.   
  35.   - 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"
  36.   - 7z x irrKlang-32bit-1.5.0.zip
  37.   - move irrKlang-1.5.0 irrklang

  38.   # let premake happy
  39.   - xcopy /E premake\* .
  40.   
  41.   # patch irrlicht
  42.   - patch -p1 < irrlicht\irrlicht.patch
  43.   
  44.   # premake
  45.   - premake5 vs2015
  46.   
  47. configuration: Release

  48. build:
  49.     project: build/ygo.sln
  50.     parallel: true

  51. after_build:
  52.   - ps: move bin\release\ygopro.exe .

  53. test: off

  54. artifacts:
  55.   - path: ygopro.exe
  56.     name: ygopro temp build

  57. cache:
  58.   - premake-5.0.0-alpha11-windows.zip
  59.   - libevent-2.0.22-stable.tar.gz
  60.   - freetype-2.7.1.tar.bz2
  61.   - irrlicht-1.8.4.zip
  62.   - lua-5.2.4.tar.gz
  63.   - sqlite-amalgamation-3170000.zip
  64.   - irrKlang-32bit-1.5.0.zip
复制代码
把上面这些内容复制粘贴进appveyor.yml保存即可。
之后呢我们需要调整一下ygopro的版本号,目前由于新大师规则还未正式发布,所以版本号是混乱的。打开下载的源码的gframe目录下的game.cpp,找到这一行代码,大概在第十几行的位置。
  1. 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,把下面这些文件拖到框里面。
  1. gframe
  2. ocgcore
  3. premake
  4. appveyor.yml
  5. premake4.lua
  6. 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
发表于 2017-7-27 18:34:20 | 显示全部楼层
我是沙发,不懂帮顶
回复 支持 反对

使用道具 举报

发表于 2017-7-28 04:45:44 | 显示全部楼层
妖兽了你游玩家改pro了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 少女注册中

本版积分规则

合作与事务联系|手机版|小黑屋|无图版|喵玉殿

GMT+8, 2018-10-22 23:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表