怎样从零开始编译一个魔兽世界服务端

Posted by xspio on 2018-05-25 16:43:08

这个教程教大家在 64 位 windows 系统下面,怎样从零开始编译一个魔兽世界的服务端(包括 3.3.5 和与官方同步的 7.x 版本),本教程以 7.x 版本为例

下图为 7.x 版本进入游戏后的画面(点击图片查看大图)

https://wx3.sinaimg.cn/large/802c6fe0gy1frnopwtaczj21hc0u0u0z.jpg

MaNGOS 芒果端,也就是 M 端,源码地址:https://github.com/mangos/MaNGOS ,MaNGOS 端所有版本 MaNGOS 官方都会编译好并在服务端源码的 releases 那里放出下载链接,所以大家都不用编译直接下载就可以使用了

教程里源码使用 TrinityCore,也就是T端,如果哪天T端也放出编译好的版本,那就不需要这个教程了,在这里告诉下大家,这些服务端源码都是免费的,编译好后也没有任何限制

有兴趣和能力的同学还可以往里面加一些自定义功能,比如传送啊、PlayerBot(也就是我们说的机器人)啊、自定义附魔啊等等(大部分你在外面看到的功能都已经有人写好了,你只要往服务端源码里加入再编译就行了)

其中 3.3.5 版本基本能实现官方 99% 的功能

7.x 版本则很多系统功能和副本脚本都不是很完善,但也是可玩的,特别是对一些喜欢尝新的同学来说

注:教程里使用的是 win10 64 位的系统,所以大部分的截图和环境设置都是以这个为准,如果你使用的是其他版本的系统,比如 win7,其实基本和 win10 是一致的,一样可以照着教程实现正常编译

系统需求:

CPU 处理器必须支持 SSE2 指令集(一般只要不是太旧的 CPU 都支持) 

Boost 1.65.1

MySQL ≥ 5.1.0

OpenSSL = 1.0.x 

CMake ≥ 3.8.2

MS Visual Studio (Community) ≥ 15 (2017)

Git https://gitforwindows.org (这个请自行安装)


下面开始上面环境的安装

Boost

下载:https://dl.bintray.com/boostorg/release/1.65.1/binaries/boost_1_65_1-msvc-14.1-64.exe

如上图安装到默认位置(一般是 C:\local\boost_1_65_1)

然后在系统中添加环境变量,如下图(点击图片看大图)

http://wx4.sinaimg.cn/large/802c6fe0gy1frlcdnj512j20x20lx0ul.jpg


MySql

编译用 MySql 下载:https://dev.mysql.com/downloads/mysql/5.6.html

下载 Windows (x86, 64-bit), ZIP Archive 这个免安装版本,解压到 D 盘根目录(例 D:\mysql-5.6.40-winx64)


运行用 MySql ,这个用来导入游戏数据库,服务端实际运行在这个数据库下面,编译时不用,后面导入游戏数据库和运行游戏服务端时才用到

这里提供一个绿色免安装的版本,和本站发布的版本里自带那个一样的

链接: https://pan.baidu.com/s/1XQ_NuCj8Vj8xikyUhlJVDw 密码: vunn

解压到(D:\MySql)后运行里面的 MySQL.bat 就行了,连接数据库用户名和密码如下

用户名:root

密码:ascent


OpenSSL

下载:http://slproweb.com/products/Win32OpenSSL.html

注意:下载 64 位的,版本号为 1.0.x 的版本,不要下载 1.1.x 的版本和名字里带 Light 的版本

比如现在下载的 Win64 OpenSSL v1.0.2o,有可能你下载的时候最后的版本字母 o 会不一样

安装的时候如果系统里没有 Microsoft Visual C++ 2008 Redistributable Package (x64)  会出错

VC ++ 2008 64位下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=15336

安装选项里如下图选择,其他的按默认就行了


CMake

下载:https://cmake.org/download/

在 Latest Release 下面找到 Windows win64-x64 Installer ,下载这个

安装的时候记得在生成桌面快捷方式上打勾,其他默认,如下图


MS Visual Studio (Community)

下载:https://www.visualstudio.com/zh-hans/

在下载 windows 版里面选择带 Community 的版本,只有这个是免费的,免费版功能和收费版是一样的

安装的时候注意选项如下图(点击图片放大)

勾选“使用 C ++ 的桌面开发”,如果是 windows 10 的系统,还要勾选右边那两个选项,其他的默认就行了

https://wx3.sinaimg.cn/large/802c6fe0gy1frm72vrytxj20sg0k0dgz.jpg


开始编译

到这里我们的编译环境就已经搭建好了,下面需要下载源码了

TrinityCore 下载地址:https://github.com/TrinityCore/TrinityCore

点击 Branches: master 这里可以切换版本分支,版本分支说明在上面源码下载链接的页面上有说,比如现在显示的是 TrinityCore Open Source MMO Framework (master = 7.3.5.26654, 3.3.5 = 3.3.5a.12340) ,说明 master 代表 7.x 版本,3.3.5 代表 3.3.5a.12340 版本(巫妖王之怒),你要编译哪个版本就切换到哪个版本的分支再下载


提醒:如果你编译的是最新 master 分支的版本,一定要先运行 魔兽世界 客户端,检查两个版本号是否对应,不相同就不要编译了,运行不会成功的

客户端版本查看,运行桌面的 魔兽世界 快捷方式,或者在 魔兽世界 文件夹里面运行 World of Warcraft Launcher ,会在上面显示版本信息,我这里显示的版本号也是 7.3.5.26654 ,说明服务端和客户端版本是匹配的,如果不匹配,那你可以更新 魔兽世界 到最新版本,或者等 TrinityCore 更新服务端源码到现在客户端相同版本后才可以编译,否则就不要编译了,编译好了也会因版本不对应而无法进入游戏


这里以 master 分支为例,点击右边的绿色按钮 Clone or download ,点击 Download ZIP 开始下载,下载好后把 TrinityCore-master.zip 解压到 D 盘根目录,重命名 TrinityCore-master 文件夹名称为 Trinity

在 D 盘根目录新建一个命名为 Build 空文件夹,用来放 CMake 生成的源码程序(后面编译好的服务端程序也在这里)

运行安装好的 CMake,刚刚新建了桌面快捷方式的话在桌面就可以直接找到了,没有的话在默认安装目录 C:\Program Files\CMake\bin 运行 cmake-gui.exe

如上图,点击 Browse Source... 选择源码文件夹 D:\Trinity ,点击 Browse Build... 选择 D:\Build 文件夹,然后点击 Configure

上图这里选择 Visual Studio 15 2017 Win64 这个选项,选好后点击 Finish

因为在教程里没有使用安装版的 MySql ,会出现下面错误,点击 OK

MySql 的库文件配置如下图所示(在 Value 这一列点击后输入框右边会出现“...”图标,点击进行选择)

如上图这样设置好 MySql 后,再次点击 Configure 按钮,当 CMake 消息框中出现 Configuring done 字样时,说明配置成功

这时再点击 Generate 按钮,CMake 消息框中出现 Generating done 字样,同时 Open Project 按钮变为可用,点击 Open Project 按钮

这样 CMake 会自动使用 VS 打开生成的源码,VS 刚打开的时候,VS 状态栏会提示“正在分析...”这样类似的字样,状态栏显示“就绪”说明 VS 分析完成了

现在我们点击 VS 菜单栏的“生成”菜单项,选择“配置管理器”如下图配置(点击图片看大图)

https://wx3.sinaimg.cn/large/802c6fe0gy1frmek48bucj20oh0gaq3v.jpg

上图“活动解决方案配置”这个选择“RelWithDebInfo”,“活动解决方案平台”选择“x64”,选择好后点击“关闭”

这里 VS 会再次扫描整个方案,等状态栏显示“就绪”后,在 VS 的“解决方案资源管理器”面板里面,右键 ALL_BUILD,选择“生成”

这个过程视每个人的电脑不同,所用时间也不尽相同,我电脑配置差,下去喝杯水先 

片刻后...

项目生成成功,在 VS 的“输出”框内显示如下类似信息

========== 生成: 成功 26 个,失败 0 个,最新 0 个,跳过 0 个 ==========

生成的文件在 D:\Build\bin\RelWithDebInfo 目录里面,至此源码编译就已经完成了


解压 DBC, Maps, VMaps 和 MMaps

在 D:\Build\bin\RelWithDebInfo 文件夹里面,拷贝下面4个文件到 魔兽世界 客户端里面

mapextractor.exe

mmaps_generator.exe

vmap4assembler.exe

vmap4extractor.exe

在 D:\Trinity\contrib 文件夹里面,拷贝 extractor.bat 到 魔兽世界 客户端里面

上面文件全部拷贝完成后,双击拷贝进 魔兽世界 客户端里面的 extractor.bat ,在弹出的对话框中输入数字 4 (解压全部)后敲“回车”键,提示你“This may take a few hours to complete. Please be patient.”意思是全部解压得花好些个小时,你得耐心一点,再次敲“回车”键后开始解压

解压文件可能要花 7 到 8 个小时,在这个过程中最好不要运行其他的程序或者说动电脑,让电脑自己安安静静完成解压

我晚上 10 点开始解压,睡一觉,明天一早应该就解压好了

睡觉中...

一早起床...

如上图中红线所示,花了 25356094 毫秒,我掐指一算,整整 7 个小时啊...

你会发现在魔兽世界客户端里面生成了 DBC , Maps , GT , VMaps 和 MMaps 这几个文件夹,说明已经解压好了

如果没有出现 GT 文件夹(3.3.5 版本没有这个,只要能成功生成 VMaps 和 MMaps 就行了),请删除 DBC 和 Maps 文件夹并重新运行一次 extractor.bat ,选择 1

还有一个 buildings 文件夹,这个在生成成功后可以删除


服务端配置

在 D 盘根目录,新建一个 TrinityCore 的文件夹,把上面生成的 DBC , Maps , GT , VMaps 和 MMaps 这几个文件夹复制或者剪切到这里来

在编译好的 D:\Build\bin\RelWithDebInfo 文件夹里面,把下面的文件拷贝到 D:\TrinityCore 文件夹中

bnetserver.cert.pem

bnetserver.conf.dist

bnetserver.exe

bnetserver.key.pem

bnetserver.pdb

worldserver.conf.dist

worldserver.exe

worldserver.pdb

然后把 bnetserver.conf.dist 和 worldserver.conf.dist 文件名后面的 .dist 删除掉变成 bnetserver.conf 和 worldserver.conf

还有几个文件需要拷贝进来

在 D:\mysql-5.6.40-winx64\lib 文件夹里面,把 libmysql.dll 拷贝到 D:\TrinityCore 文件夹中

在 C:\OpenSSL-Win64 文件夹里面,把 libeay32.dll 和 ssleay32.dll 拷贝到 D:\TrinityCore 文件夹中


数据库配置

数据库的操作要在 MySql 运行中的状态下实现

之前 MySql 部分说过的 运行用 MySql 这个版本(不是编译用那个版本),运行里面的 MySQL.bat ,运行成功显示如下

如果在上面框里显示 MySQL could not be started 就说明运行没成功,如果你下过我上传的服务端版本,可以在里面找 closeAll.bat 这个 bat 工具,右键使用管理员权限运行一下再重新运行 MySQL.bat ,再不行你只能自行上网查找解决方法了,我建议你最好重装新系统,这样绝对不会出现运行不了的问题

下载创建数据库的 sql 文件:https://github.com/TrinityCore/TrinityCore/blob/master/sql/create/create_mysql.sql 打开这个页面,在 RAW 这个按钮上面鼠标右键,选择“链接另存为”,把 create_mysql.sql 保存到 D 盘根目录

MySql 运行成功后使用 Navicat 连接数据库,教程在此:https://www.xspio.com/魔兽世界物品道具制作修改所需工具下载

在 Navicat 里,新建一个 MySql 链接(用户名:root,密码:ascent),假设这个链接为 wow ,在右键菜单里选择“运行 SQL 文件...”,如下图

“文件”选择刚刚下载的 create_mysql.sql ,“编码”选择“UTF-8”,点击“开始”,成功后会添加 auth 、 characters 、 hotfixes 、 world 四个数据库,并添加数据库用户 trinity ,数据库到此就创建成功了


服务端数据库下载:https://github.com/TrinityCore/TrinityCore/releases

在上面这个下载页面可以看到, TDB 7xx.00 打头的是 7.x 服务端用的数据库, TDB 335.xx 这个是 3.3.5 版本用的数据库,我们编译的是 7.x 的服务端,那就下载 TDB_full_7xxx.7z 这个最新的数据库,下载好后解压到 D 盘根目录

在解压出来的 D:\TDB_full_7xxx 文件夹中,找到“TDB_world_xxx”和“TDB_hotfixes_xxx”两个文件,拷贝到 D:\TrinityCore 目录中去


服务端运行

在 D:\TrinityCore 目录,修改一个文件后,服务端就可以运行了

用编辑器打开 worldserver.conf ,编辑器可以使用 vscode  、 sublime 等等,最好不要用记事本打开

修改 DBC.Locale = 0 ,改成 DBC.Locale = 4 (这个是因为使用的是中文的游戏客户端)

修改 mmap.enablePathFinding = 0 ,改成 mmap.enablePathFinding = 1 (这个可以改善怪物的寻路,免得怪物飞天之类的发生)

修改好后现在运行 D:\TrinityCore 里面的 worldserver.exe ,程序会自动创建、导入并更新数据库,红线标明了正在导入的数据库,如下图(点击图片看大图)

https://wx4.sinaimg.cn/large/802c6fe0gy1frng21hbnyj20r70e874e.jpg

如果出现“无法启动此程序,因为计算机中丢失 xxxx ....”这样类似的错误信息,那就需要安装 vc++ 的运行库,最好把 vc++ 的所有版本都安装上

下载:https://www.xspio.com/魔兽世界服务端运行所需运行库下载(运行提示出错的请下载安装这些运行库)

在听到“滴”或者“嘟”的一声后,说明运行完成

现在创建账号,在 worldserver.exe 运行窗口的命令行下面敲“回车”键,出现 TC> 这样的标志,输入 bnetaccount create test@test test 命令后“回车”,创建账号名为 test@test 密码为 test 的账号,其中的 game account 1#1 的意思是新建的这个 test@test 在游戏数据库里使用 1#1 表示,然后我们把 test@test 这个账号升级为 GM 账号,输入命令 account set gmlevel 1#1 3 -1 ,成功,上面操作如下图所示(点击图片看大图)

https://wx4.sinaimg.cn/large/802c6fe0gy1frnnmslpvdj20r70e8mxe.jpg

然后再运行 bnetserver.exe (这个只在登录游戏账号的时候使用,进入游戏后可以关闭),至此服务端就运行成功了


登录游戏

用编辑器打开你的游戏客户端里面的 WTF\Config.wtf 文件,修改这行 SET portal "CN" 为 SET portal "127.0.0.1"

把 D:\Build\bin\RelWithDebInfo 里面的 connection_patcher.exe 和 刚刚放进 D:\TrinityCore 目录的 libeay32.dll 拷贝到游戏客户端里面,把 Wow-64.exe 拖到 connection_patcher.exe 图标上面放开,会生成 Wow-64_Patched.exe 文件,运行 Wow-64_Patched.exe 这个文件进入游戏,在游戏账号那里输入刚刚创建的 test@test ,密码输入 test 就成功连接了,如果弹出服务器选择框,选择 Trinity 就行了

游戏截图(点击图片看大图)

https://wx4.sinaimg.cn/large/802c6fe0gy1frnobrq4w3j21hc0u0qv8.jpg

gravatar头像 浪漫
2019-04-15 09:49:52
735编译后出现 Some required *.db2 files (225 from 1) not found or not compatible: Achievement.db2 AnimKit.db2 AreaGroupMember.db2 AreaTable.db2 AreaTrigger.db2 ArmorLocation.db2 Artifact.db2 ArtifactAppearance.db2 ArtifactAppearanceSet.db2 ArtifactCategory.db2 ArtifactPower.db2 ArtifactPowerLink.db2 ArtifactPowerPicker.db2 ArtifactPowerRank.db2 AuctionHouse.db2 BankBagSlotPrices.db2 BannedAddons.db2 BarberShopStyle.db2 BattlePetBreedQuality.db2 BattlePetBreedState.db2 BattlePetSpecies.db2 BattlePetSpeciesState.db2 BattlemasterList.db2 BroadcastText.db2 CharacterFacialHairStyles.db2 CharBaseSection.db2 CharSections.db2 CharStartOutfit.db2 CharTitles.db2 ChatChannels.db2 ChrClasses.db2 ChrClassesXPowerTypes.db2 ChrRaces.db2 ChrSpecialization.db2 CinematicCamera.db2 CinematicSequences.db2 ConversationLine.db2 CreatureDisplayInfo.db2 CreatureDisplayInfoExtra.db2 CreatureFamily.db2 CreatureModelData.db2 CreatureType.db2 Criteria.db2 CriteriaTree.db2 CurrencyTypes.db2 Curve.db2 CurvePoint.db2 DestructibleModelData.db2 Difficulty.db2 DungeonEncounter.db2 DurabilityCosts.db2 DurabilityQuality.db2 Emotes.db2 EmotesText.db2 EmotesTextSound.db2 Faction.db2 FactionTemplate.db2 GameObjects.db2 GameObjectDisplayInfo.db2 GarrAbility.db2 GarrBuilding.db2 GarrBuildingPlotInst.db2 GarrClassSpec.db2 GarrFollower.db2 GarrFollowerXAbility.db2 GarrPlotBuilding.db2 GarrPlot.db2 GarrPlotInstance.db2 GarrSiteLevel.db2 GarrSiteLevelPlotInst.db2 GemProperties.db2 GlyphBindableSpell.db2 GlyphProperties.db2 GlyphRequiredSpec.db2 GuildColorBackground.db2 GuildColorBorder.db2 GuildColorEmblem.db2 GuildPerkSpells.db2 Heirloom.db2 Holidays.db2 ImportPriceArmor.db2 ImportPriceQuality.db2 ImportPriceShield.db2 ImportPriceWeapon.db2 ItemAppearance.db2 ItemArmorQuality.db2 ItemArmorShield.db2 ItemArmorTotal.db2 ItemBagFamily.db2 ItemBonus.db2 ItemBonusListLevelDelta.db2 ItemBonusTreeNode.db2 ItemChildEquipment.db2 ItemClass.db2 ItemCurrencyCost.db2 ItemDamageAmmo.db2 ItemDamageOneHand.db2 ItemDamageOneHandCaster.db2 ItemDamageTwoHand.db2 ItemDamageTwoHandCaster.db2 ItemDisenchantLoot.db2 ItemEffect.db2 Item.db2 ItemExtendedCost.db2 ItemLevelSelector.db2 ItemLevelSelectorQuality.db2 ItemLevelSelectorQualitySet.db2 ItemLimitCategory.db2 ItemModifiedAppearance.db2 ItemPriceBase.db2 ItemRandomProperties.db2 ItemRandomSuffix.db2 ItemSearchName.db2 ItemSet.db2 ItemSetSpell.db2 ItemSparse.db2 ItemSpec.db2 ItemSpecOverride.db2 ItemUpgrade.db2 ItemXBonusTree.db2 Keychain.db2 LFGDungeons.db2 Light.db2 LiquidType.db2 Lock.db2 MailTemplate.db2 Map.db2 MapDifficulty.db2 ModifierTree.db2 MountCapability.db2 Mount.db2 MountTypeXCapability.db2 MountXDisplay.db2 Movie.db2 NameGen.db2 NamesProfanity.db2 NamesReserved.db2 NamesReservedLocale.db2 OverrideSpellData.db2 Phase.db2 PhaseXPhaseGroup.db2 PlayerCondition.db2 PowerDisplay.db2 PowerType.db2 PrestigeLevelInfo.db2 PVPDifficulty.db2 PvpReward.db2 QuestFactionReward.db2 QuestMoneyReward.db2 QuestPackageItem.db2 QuestSort.db2 QuestV2.db2 QuestXP.db2 RandPropPoints.db2 RewardPack.db2 RewardPackXItem.db2 RulesetItemUpgrade.db2 SandboxScaling.db2 ScalingStatDistribution.db2 Scenario.db2 ScenarioStep.db2 SceneScript.db2 SceneScriptGlobalText.db2 SceneScriptPackage.db2 SceneScriptText.db2 SkillLine.db2 SkillLineAbility.db2 SkillRaceClassInfo.db2 SoundKit.db2 SpecializationSpells.db2 Spell.db2 SpellAuraOptions.db2 SpellAuraRestrictions.db2 SpellCastTimes.db2 SpellCastingRequirements.db2 SpellCategories.db2 SpellCategory.db2 SpellClassOptions.db2 SpellCooldowns.db2 SpellDuration.db2 SpellEffect.db2 SpellEquippedItems.db2 SpellFocusObject.db2 SpellInterrupts.db2 SpellItemEnchantment.db2 SpellItemEnchantmentCondition.db2 SpellLearnSpell.db2 SpellLevels.db2 SpellMisc.db2 SpellPower.db2 SpellPowerDifficulty.db2 SpellProcsPerMinute.db2 SpellProcsPerMinuteMod.db2 SpellRadius.db2 SpellRange.db2 SpellReagents.db2 SpellScaling.db2 SpellShapeshift.db2 SpellShapeshiftForm.db2 SpellTargetRestrictions.db2 SpellTotems.db2 SpellXSpellVisual.db2 SummonProperties.db2 TactKey.db2 Talent.db2 TaxiNodes.db2 TaxiPath.db2 TaxiPathNode.db2 TotemCategory.db2 Toy.db2 TransmogHoliday.db2 TransmogSet.db2 TransmogSetGroup.db2 TransmogSetItem.db2 TransportAnimation.db2 TransportRotation.db2 UnitPowerBar.db2 Vehicle.db2 VehicleSeat.db2 WMOAreaTable.db2 WorldEffect.db2 WorldMapArea.db2 WorldMapOverlay.db2 WorldMapTransforms.db2 WorldSafeLocs.db2
gravatar头像 mangozilo
2019-04-13 22:50:59
谢谢老大的教程,其他网站说的教程实在是太简略了,这个教程可以说是手把手的教。 已经按照教程成功编译出其他需求boost的端了,谢谢!
gravatar头像 浪漫
2019-04-13 20:21:36
可以进游戏了,可以玩了,设置gmlevel 3后gm模式可以开启,但是就是无法传送,.go 命令无法使用···
2019-04-15 09:52:45
看数据库的 GM 命令表,上面有命令和使用方法,不是每个端的命令都相同的
gravatar头像 浪漫
2019-04-08 20:42:26
没有ace.dll这个文件 正常吗
2019-04-10 10:21:13
看编译结果,结果那里显示成功就没问题
gravatar头像 浪漫
2019-04-08 20:21:31
修改好后现在运行 D:\TrinityCore 里面的 worldserver.exe ,程序会自动创建、导入并更新数据库,红线标明了正在导入的数据库,如下图(点击图片看大图) 打开wordserver闪退,无法导入咋整呀·····
2019-04-10 10:22:27
闪退自己查看下 log 文件,编译的话你得学会自己去排错
浪漫
2019-04-10 13:10:00
Using configuration file J:/TrinityCore/worldserver.conf. Using SSL version: OpenSSL 1.0.2r 26 Feb 2019 (library: OpenSSL 1.0.2r 26 Feb 2019) Using Boost version: 1.65.1 Didn't find any executable MySQL binary at 'J:/TrinityCore' or in path, correct the path in the *.conf ("MySQLExecutable"). Could not populate the Login database, see log for details.
浪漫
2019-04-10 13:20:18
绿色版SQL没有lib目录···
浪漫
2019-04-10 13:50:16
Using configuration file J:/TrinityCore/worldserver.conf. Using SSL version: OpenSSL 1.0.2r 26 Feb 2019 (library: OpenSSL 1.0.2r 26 Feb 2019) Using Boost version: 1.65.1 Database Auth is empty, auto populating it... >> Base file "D:/TC20190406/TrinityCore-3.3.5/sql/base/auth_database.sql" is missing. Try fixing it by cloning the source again. Could not populate the Login database, see log for details. 折腾了一下,到这一步了,不会自动导入sql文件,我下的是3.3.5的TDB_full_world_335.19031_2019_03_19.sql
浪漫
2019-04-10 13:51:40
好像我目录不对,我编译好后换了个电脑导入sql的
浪漫
2019-04-10 14:04:31
目录不对,用编译电脑整就可以导入了~谢谢
浪漫
2019-04-10 14:23:19
https://github.com/TrinityCore/TrinityCore/tree/3.3.5 上面写的12340 编译出来的版本是19031? Using configuration file J:/TrinityCore/worldserver.conf. Using SSL version: OpenSSL 1.0.2r 26 Feb 2019 (library: OpenSSL 1.0.2r 26 Feb 2019) Using Boost version: 1.65.1 Updating Auth database... >> Auth database is up-to-date! Containing 1 new and 41 archived updates. Updating Character database... >> Character database is up-to-date! Containing 1 new and 30 archived updates. Updating World database... >> World database is up-to-date! Containing 35 new and 3968 archived updates. Realm running as realm ID 1 Using World DB: TDB 335.19031 Will clear `logs` table of entries older than 1209600 seconds every 10 minutes. Client cache version set to: 19031 Using DataDir ./ WORLD: MMap data directory is: ./mmaps VMap support included. LineOfSight: 1, getHeight: 1, indoorCheck: 1 VMap data directory is: ./vmaps Map file './maps/0004331.map' is from an incompatible map version (MAPS v1.8), MAPS v1.9 is expected. Please pull your source, recompile tools and recreate maps using the updated mapextractor, then replace your old map files with new files. If you still have problems search on forum for error TCE00018. Unable to load critical files - server shutting down !!!
浪漫
2019-04-10 14:49:49
https://github.com/TrinityCore/TrinityCore/releases 我下的最新的TDB 335.19031 编译的是https://github.com/TrinityCore/TrinityCore/tree/3.3.5 不知道有没有什么问题
浪漫
2019-04-11 08:43:38
Using configuration file J:/TrinityCore/worldserver.conf. Using SSL version: OpenSSL 1.0.2r 26 Feb 2019 (library: OpenSSL 1.0.2r 26 Feb 2019) Using Boost version: 1.65.1 Didn't find any executable MySQL binary at 'J:/TrinityCore' or in path, correct the path in the *.conf ("MySQLExecutable"). Could not update the Login database, see log for details.
2019-04-11 10:05:23
那是数据库版本,编译的时候自己多注意下细节,3.3.5版本和这个编译会有些出入,最好看下源码官方的文档
gravatar头像 浪漫
2019-04-08 14:45:12
比较全面,正在编译,感谢楼主的付出,对我这样的新手有用~希望以后多出一些编译教程
gravatar头像 蛋疼
2019-01-15 23:15:10
您好, 我都编译成功了,启动服务器,但我客服端登录的时候,第一次连接服务器, 有一条消息提示:WorldSocket::ReadHeaderHandler(): client 192.168.75.1 sent malformed packet (size: 8, cmd: 1867972642),客服端立马就显示是服务器中断连接, 然后再登录, 服务器就收不到消息了, 客服端也一直显示“正在认证”,就是登录不进去,求大侠帮帮忙 我服务器是在ubuntu下面编译的,内存给的3g,
2019-01-16 09:47:52
linux 系统里面编译自己看下 T 端教程吧,这个比 win 下面要简单多了:https://trinitycore.atlassian.net/wiki/spaces/tc/pages/10977309/Linux+Core+Installation,https://trinitycore.atlassian.net/wiki/spaces/tc/pages/10977340/Linux+Server+Setup
蛋疼
2019-01-16 12:18:45
您发的这个文档链接,我看过,我基本就是上面的操作, 我服务器是linux,我客服端是win10的,我的linux 是在vmware的虚拟机里面,就是因为也没错,所以我找不到问题了
蛋疼
2019-01-16 13:42:33
不管我输入正确的帐号密码还是乱输入错的帐号密码,都是在认证中,就没任何反应了,服务器也没收到数据
蛋疼
2019-01-16 13:44:43
TDB_full_world_335.64_2018_02_19.7z 这是我导入数据库的数据包, 然后执行worldserver的时候还通过git代码里面的sql文件更新了数据库
2019-01-16 14:40:13
登录端运行了没,IP 地址有没有搞对,这些细节问题你得自己去排查,我在这里光靠猜也帮不了你更多了
蛋疼
2019-01-16 14:47:40
我服务器运行了 authserver和worldserver,两个服务器端, ip地址应该是没问题的, 我在数据库里面改的realmlist表,通过配置客服端ip和端口登录,而且服务器开始收到一条数据了的,然后就没反应了
2019-01-17 09:52:05
基本的没问题就检查下服务端的日志
蛋疼
2019-01-17 13:44:44
我看了日志文件的, 就是没看出来有什么问题呀,您的QQ或微信多少啊, 我加您,可以帮我看看吗 QQ276946062
蛋疼
2019-01-17 14:05:23
服务器配置内存一般要给多大呀,跟内存有关系吗
2019-01-21 13:55:08
内存尽量给大点,最少 8 G,不过建议你还是使用 win 版吧,linux 系统下面你得先熟悉系统,少了依赖和库都会出错
gravatar头像 蛋疼
2019-01-15 23:09:50
您好, 我都编译成功了,启动服务器,但我客服端登录的时候,第一次联系服务器, 有一条消息提示:WorldSocket::ReadHeaderHandler(): client 192.168.75.1 sent malformed packet (size: 8, cmd: 1867972642),客服端立马就显示是服务器中断连接, 然后再登录, 服务器就收不到消息了, 客服端也一直显示“正在认证”,就是登录不进去,求大侠帮帮忙
gravatar头像 蒙了真的蒙了
2019-01-05 07:37:19
项目生成成功,在 VS 的“输出”框内显示如下类似信息 ========== 生成: 成功 23 个,失败 3 个,最新 0 个,跳过 0 个 ========== 是不是只要编译有错,在输出文件夹里就只会有账户服务端而没有游戏服务端?而且在 D:\Build\bin\RelWithDebInfo 文件夹里面也不存在那mapextractor.exe mmaps_generator.exe vmap4assembler.exe vmap4extractor.exe 这4个文件?
2019-01-05 09:22:27
首先看源码页面里面的状态,是不是可以正常通过编译,没问题再检查下步骤,最好的方法是全部重头来一遍
gravatar头像 守护石
2018-12-17 15:14:15
我卡在:上图这里选择 Visual Studio 15 2017 Win64 这个选项,选好后点击 Finish 因为在教程里没有使用安装版的 MySql ,会出现下面错误,点击 OK 这里我用Light Hope 源代码但是出错没有显示mysql而是显示use_anticheat use_extractors use_libcurl use_std_malloc
2018-12-18 17:36:56
这个得去问作者啊,我没编译过这个源码,没办法告诉你解决方法
2018-12-13 22:33:16
你好,我按照你的教程,成功编译了一个335的。我自己也看了一些官方的说明文档,,有一个疑惑的地方就是设置环境变量那里,官方明确说明了应该用/,而不是\。。。能不能出一些后续的教程呢。比如我想做一个超级传送炉石,网上找了一圈,都是说要添加c++脚本啥的,但是不会做。能做一个简单的教程么,只传送一个地方的炉石。。。还有这个网站是不是几年前那个圣诞版M端那个??
2018-12-14 09:19:53
环境变量这个教程里是没错的,你看系统自带的环境变量用的是哪个就用哪个,官方的教程是死的,但我们得活用;加传送炉石这个很简单的,可以使用 lua 脚本,也可以修改添加代码,这个教程有空我再做吧;圣诞版是之前我自己打包的版本,后来服务器坏了,源代码没了,就没有再继续了
2018-12-14 18:43:30
哈哈,晚上特地来看一眼,大大回复我了。好开心。我现在想学习魔兽编译方面的知识,但是感觉国内环境太恶劣了,到处都是开服党,ACWEB又是英文,自己也就四级刚过的水平。真是蛋疼。有个问题就是,我看别人编译的端,确实能够在本地客户端对应汉化,但是我编译的就不行。不知道哪里设置不对。好多年过去了。当年我只是玩玩,现在想回过头来学习编译,时间真的好快啊。。
2018-12-17 10:13:08
有些版本需要手动设置区域来改变语言(在服务端配置文件里),有些是自动的,比如 T 端就是自动的,你用什么语言的客户端就是显示什么语言
gravatar头像 mysql
2018-12-13 14:30:45
网盘mysql解压密码是多少呢
gravatar头像 小牛
2018-11-15 13:30:55
你好,根据你的教程已经成功运行了,发现一个问题就数据库都是英文的,能不能教一下怎么汉化呢?多谢了
2018-11-15 13:43:41
数据库本来就有中文,你看我最后的那张图,你只要使用中文客户端就行了,当然,有些文字还是英文的,这个你得到数据库里自己寻找了
gravatar头像 ryanhon
2018-11-14 17:28:37
大佬 335版本 一直都没有GT文件夹 解压了几次都是这样 有办法解决吗?
2018-11-14 17:48:20
3.3.5 版本好像本来就没有这个文件夹生成的,只要能成功生成 vmap 和 mmap 就行了
ryanhon
2018-11-15 01:10:59
嗯嗯 去看了下 是这样的 多谢教程!~~很完美
ryanhon
2018-11-15 01:11:35
大佬 有没有T端详细的手册啊 GM命令什么的
2018-11-15 09:16:51
GM 命令可以查看数据库的 command 表,配置这些在配置文件里都有说明,英文不明白的百度翻译下
gravatar头像 jing
2018-10-11 17:44:29
Detected 64-bit platform MSVC: 64-bit platform, enforced -D_WIN64 parameter MSVC: Enabled increased number of sections in object files MSVC: Overloaded standard names MSVC: Disabled NON-SECURE warnings MSVC: Disabled POSIX warnings MSVC: Disabled generic compiletime warnings cotire 1.7.10 loaded. Found MySQL library: E:/TC/TrinityBuilderV3/TrinityBuilder/Tools/database/MySQL-8.0.12-Win64/lib/libmysql.lib Found MySQL headers: E:/TC/TrinityBuilderV3/TrinityBuilder/Tools/database/MySQL-8.0.12-Win64/include Found MySQL executable: E:/TC/TrinityBuilderV3/TrinityBuilder/Tools/database/MySQL-8.0.12-Win64/bin/mysql.exe CMake Error at cmake/macros/FindGit.cmake:24 (message): Git was NOT FOUND on your system - did you forget to install a recent version, or setting the path to it? Observe that for revision hash/date to work you need at least version 1.7 Call Stack (most recent call first): CMakeLists.txt:70 (find_package) Configuring incomplete, errors occurred! See also "E:/TC/TrinityCore-bfa/build/CMakeFiles/CMakeOutput.log". 大佬,这是什么意思啊
2018-10-12 20:25:03
你电脑里东西太多了,你在干净的环境下使用吧
gravatar头像 jing
2018-10-11 17:44:29
Detected 64-bit platform MSVC: 64-bit platform, enforced -D_WIN64 parameter MSVC: Enabled increased number of sections in object files MSVC: Overloaded standard names MSVC: Disabled NON-SECURE warnings MSVC: Disabled POSIX warnings MSVC: Disabled generic compiletime warnings cotire 1.7.10 loaded. Found MySQL library: E:/TC/TrinityBuilderV3/TrinityBuilder/Tools/database/MySQL-8.0.12-Win64/lib/libmysql.lib Found MySQL headers: E:/TC/TrinityBuilderV3/TrinityBuilder/Tools/database/MySQL-8.0.12-Win64/include Found MySQL executable: E:/TC/TrinityBuilderV3/TrinityBuilder/Tools/database/MySQL-8.0.12-Win64/bin/mysql.exe CMake Error at cmake/macros/FindGit.cmake:24 (message): Git was NOT FOUND on your system - did you forget to install a recent version, or setting the path to it? Observe that for revision hash/date to work you need at least version 1.7 Call Stack (most recent call first): CMakeLists.txt:70 (find_package) Configuring incomplete, errors occurred! See also "E:/TC/TrinityCore-bfa/build/CMakeFiles/CMakeOutput.log". 大佬,这是什么意思啊
gravatar头像 lin
2018-08-21 10:36:02
您好,mysql的遊戲數據庫 https://pan.baidu.com/s/1XQ_NuCj8Vj8xikyUhlJVDw,已經沒辦法下載了,謝謝
lin
2018-08-21 10:49:24
我知道了是vpn的問題,謝謝
gravatar头像 Nicotine-2
2018-08-06 01:02:50
非常好的教程,简单易懂,膜拜~ 希望可以再出一个在服务端里编译加入机器人和其他传送之类的教程:D 让我们这些小白也可以自己动手装逼一回~~.
2018-08-07 10:30:35
BOT 源码在这里, https://github.com/ike3/mangosbot,如果自己不会加还是直接用现成的吧
gravatar头像 张于晏
2018-08-03 20:39:01
你好,很感谢你出这样的教学内容,但是我在编译时候还是出现了问题,mysql路径设置完成后继续编译,还是报和没设置路径时候一样的错误。 CMake Deprecation Warning at CMakeLists.txt:22 (cmake_policy): The OLD behavior for policy CMP0005 will be removed from a future version of CMake. The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD. CMake Deprecation Warning at CMakeLists.txt:24 (cmake_policy): The OLD behavior for policy CMP0043 will be removed from a future version of CMake. The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD. 我试着下载了gitforwindows,但是我是一路默认安装下去的 不知道会不会哪里出问题了
2018-08-04 16:07:35
在新安装系统上按教程从头来一遍,先把系统环境的问题排除掉
gravatar头像 Menethil
2018-06-28 07:35:45
我尝试用这个方法编译 Light Hope V10的源代码,编译出来只有2个EXE,mangosd 和 realmd,复制到Light Hope Repack目录下在本机能运行,在其他电脑就显示无法定位程序输入点,不知道怎么解决
2018-06-28 08:45:11
服务端的目录结构你在新机器上设置和编译的一样试试
×

Recent Comments