国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

開源魔獸世界服務(wù)器everwar搭建

這篇具有很好參考價(jià)值的文章主要介紹了開源魔獸世界服務(wù)器everwar搭建。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本文檔是原創(chuàng)的,具有可操作性,不是網(wǎng)絡(luò)上互相抄襲的博客。

覺得有用就贊一個(gè)。

項(xiàng)目官網(wǎng):?http://everwar.cn

同名原創(chuàng)文章(界面樣式更簡(jiǎn)潔一些):

開源魔獸世界私服搭建 - 狂奔的駱駝 - 博客園

一、背景

60魔獸經(jīng)典舊世是最經(jīng)典的版本,遺憾的是60年代時(shí)還在大學(xué)讀書,窮得很,買不起點(diǎn)卡,后來工作了,大概70年代開始玩的。

多年以前,玩游戲時(shí),一直非常期望能夠自己控制角色的屬性級(jí)別,得到各種裝備。

多年以后,在這款純粹的開源服務(wù)器問世后,終于如愿以償。

直到如今,都2023年了,魔獸世界游戲的服務(wù)端源碼項(xiàng)目在開源界依然非?;钴S。

讓我們重溫經(jīng)典吧。

二、demo

客戶端下載wow-1.12.3版本,只需要修改一處配置文件realmlist.wtf

SET realmlist wow.whyalive.org

指向上面的服務(wù)器地址即可。


測(cè)試帳號(hào):
test1/123
wow/123

如果你懶得DIY自行編譯安裝,可以用上面給的demo賬號(hào)和環(huán)境,下載客戶端,修改配置文件,就可以登錄游戲了。

三、客戶端

魔獸世界經(jīng)典舊世客戶端1.12.3下載地址:

https://pan.baidu.com/s/1BgIYpZEmfTiAmeD_lMB1Sg

四、服務(wù)器端

下面的編譯安裝過程比較多,但我已經(jīng)盡可能完整的整理出來。基本上沒有疏漏。

說明:
由于資金和時(shí)間精力的關(guān)系,本人最近幾個(gè)月暫時(shí)沒有時(shí)間發(fā)布支持CentOS7.x的版本
但我把我之前基于CentOS6.5的版本的詳細(xì)的編譯過程發(fā)布成這個(gè)文檔,
另外把編譯后的安裝版本發(fā)布并上傳到本開源項(xiàng)目的release1版本里。

https://github.com/geektcp/Namjagbarwa-wow/releases/tag/1.0


有興趣的高手可以直接用這個(gè)release版本,
也可以參考本文檔自行編譯基于CentOS6.X或者CentOS7.x的版本。

計(jì)劃:
感謝各位的star,支持和關(guān)注,接下來這個(gè)項(xiàng)目也會(huì)進(jìn)行持續(xù)的更新,大家可以留意動(dòng)態(tài)。
2023年會(huì)發(fā)布一個(gè)新版本,基于CentOS7.x的版本,并部署到公網(wǎng),到時(shí)候方便大家直接使用。


?

1、編譯服務(wù)端有版本要求

env version
os CentOS 6.5
Namjagbarwa-wow master
gcc 4.9.3
cmake 3.5
boost 1.60
dbc and map 1.12.3
wow client 1.12.3
?

2、升級(jí)cmake

mkdir -p /usr/local/src/wow/
cd /usr/local/src/wow/
wget --no-check-certificate \
https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
tar -zxvf cmake-3.5.2.tar.gz
cd cmake-3.5.2
./configure --prefix=/usr/local/cmake-3.5.2
make -j16
make install

3、升級(jí)GCC

yum -y install glibc-devel.i686
tar -jxvf gcc-4.8.2.tar.bz2
cd gcc-4.8.2
./contrib/download_prerequisites
mkdir build
cd build
../configure --prefix=/usr/local/gcc-4.8.2
make -j16
make install

4、安裝boost

在centos6.5上用yum安裝的boost版本太低,必須重新編譯安裝。

最好直接安裝在默認(rèn)路徑。

wget http://netcologne.dl.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.bz2
tar -jxvf boost_1_60_0.tar.bz2
cd boost_1_60_0
./bootstrap.sh
./b2
./b2 install

5、編譯安裝

先下載源碼,
然后開始編譯并安裝(必須要指定環(huán)境變量LD_LIBRARY_PATH為新版本g++的庫):

cd /usr/local/src/wow/
git clone https://github.com/geektcp/elf-wow.git

export LD_LIBRARY_PATH=/usr/local/gcc-4.9.3/lib64/
export BASE_DIR=/usr/local/wow_mangos_bot_2017.10.2
mkdir -p /usr/local/src/wow/ClassicWOW/build/  &&
rm -rf /usr/local/src/wow/ClassicWOW/build/*  &&
cd /usr/local/src/wow/ClassicWOW/build &&
/usr/local/cmake-3.5.2/bin/cmake ../ \
-DCMAKE_INSTALL_PREFIX=$BASE_DIR  \
-DCONF_DIR=$BASE_DIR/etc \
-DPCH=1 \
-DDEBUG=0 \
-DCMAKE_C_COMPILER=/usr/local/gcc-4.9.3/bin/gcc \
-DCMAKE_CXX_COMPILER=/usr/local/gcc-4.9.3/bin/g++ &&
time make -j16 &&
make install &&
chown -R wow.wow -R $BASE_DIR

6、地圖文件生成

服務(wù)端部署時(shí)必須的map文件包括maps,mmaps,vmaps,dbc四個(gè)部分。

每個(gè)文件夾下面有大量地圖文件。這些地圖文件含有艾澤拉斯世界的各個(gè)地圖的信息。非常關(guān)鍵。

這些地圖文件是從哪里來的呢?

答案是:從客戶端的安裝文件里面的抽取出來的。

抽取方式,先從服務(wù)器端的源碼里面找到如下目錄:

https://github.com/geektcp/Namjagbarwa-wow/contrib/extractor_binary

ls ./contrib/extractor_binary

ad.exe

ExtractResources.sh

MoveMapGen.exe

MoveMapGen.sh

offmesh.txt

README.txt

vmap_assembler.exe

vmapExtractor.exe

注意上面這幾個(gè)exe文件,只有我用的這個(gè)版本才有,最新的cmangos-classic沒有對(duì)應(yīng)的可執(zhí)行文件,而這幾個(gè)可執(zhí)行文件是用來生成map文件的,而服務(wù)器端啟動(dòng)時(shí)必須依賴map文件。

網(wǎng)上找到的下載1.12版本的map文件很難找到,沒有下載地址,有也是無效的鏈接,或者下載下來不能用的。

有個(gè)簡(jiǎn)單的辦法,其實(shí)這些完整的map文件其實(shí)我已經(jīng)導(dǎo)出來了,和第一個(gè)release版本一起發(fā)布的。也是這個(gè)地址,直接用即可。

https://github.com/geektcp/Namjagbarwa-wow/releases/tag/1.0

如果要自行導(dǎo)出map文件將上面的exe文件都拷貝windows環(huán)境的wow客戶端下,跟wow.exe同一級(jí)目錄

然后依次直接按如下步驟運(yùn)行:

1、生成dbcmaps文件

ad.exe

2、創(chuàng)建vmaps空文件夾并生成文件

md vmaps

vmap_assembler.exe Buildings vmaps

3、創(chuàng)建mmpas文件夾并生成文件,這一步可能要很久,一兩個(gè)小時(shí)。

md mmaps

MoveMapGen.exe

最后,如過不想一步一步完成,可以使用批處理(寫入到generateMap.bat文件中)

ad.exe

md vmaps

vmap_assembler.exe Buildings vmaps

md mmaps

MoveMapGen.exe

7、數(shù)據(jù)庫初始化

wow mangos classic經(jīng)典版本的數(shù)據(jù)庫數(shù)據(jù)來源于:

/usr/local/src/wow/mangos-classic/sql

另一部分存在于源碼目錄下:

git clone git://github.com/cmangos/classic-db.git文章來源地址http://www.zghlxwxcb.cn/news/detail-645360.html

創(chuàng)建數(shù)據(jù)庫賬號(hào):

grant all on *.* to mangos@'%' IDENTIFIED by 'mangos';

創(chuàng)建wow數(shù)據(jù)庫:

CREATE DATABASE `mangos` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `characters` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `realmd` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

然后進(jìn)入源碼目錄下的sql目錄:

導(dǎo)入對(duì)應(yīng)的sql到對(duì)應(yīng)的數(shù)據(jù)庫:

git clone??https://github.com/cmangos/mangos-classic/tree/master/sql/base

ls?cmangos/mangos-classic/tree/master/sql/base

characters.sql? mangos.sql? realmd.sql

8、配置文件

mangosd.conf的關(guān)鍵配置項(xiàng)如下:

# 監(jiān)聽端口
WorldServerPort = 8085

# 監(jiān)聽網(wǎng)卡IP
BindIP = "0.0.0.0"

# 是否啟用控制臺(tái)
Console.Enable = 0

# 日志級(jí)別
LogLevel = 1

另外還有數(shù)據(jù)庫連接方式的參數(shù):

LoginDatabaseInfo     = "10.10.10.10;3310;mangos;mangos;realmd"
WorldDatabaseInfo     = "10.10.10.10;3310;mangos;mangos;mangos"
CharacterDatabaseInfo = "10.10.10.10;3310;mangos;mangos;characters"

標(biāo)準(zhǔn)可用的配置文件如下:

cat /usr/local/wow_mangos/etc/mangosd.conf |grep -v ^# |grep -v ^$?

[MangosdConf]

ConfVersion=2015090801

RealmID = 1

DataDir = "/usr/local/wow_mangos/data/"

LogsDir = "/usr/local/wow_mangos/logs/"

LoginDatabaseInfo ? ? = "10.10.10.10;3310;mangos;mangos;realmd"

WorldDatabaseInfo ? ? = "10.10.10.10;3310;mangos;mangos;mangos"

CharacterDatabaseInfo = "10.10.10.10;3310;mangos;mangos;characters"

LoginDatabaseConnections = 1

WorldDatabaseConnections = 1

CharacterDatabaseConnections = 1

MaxPingTime = 30

WorldServerPort = 8085

BindIP = "0.0.0.0"

SD2ErrorLogFile = "SD2Errors.log"

UseProcessors = 0

ProcessPriority = 1

Compression = 1

PlayerLimit = 100

SaveRespawnTimeImmediately = 1

MaxOverspeedPings = 2

GridUnload = 1

LoadAllGridsOnMaps = ""

GridCleanUpDelay = 300000

MapUpdateInterval = 100

ChangeWeatherInterval = 600000

PlayerSave.Interval = 900000

PlayerSave.Stats.MinLevel = 0

PlayerSave.Stats.SaveOnlyOnLogout = 1

vmap.enableLOS = 1

vmap.enableHeight = 1

vmap.ignoreSpellIds = "7720"

vmap.enableIndoorCheck = 1

DetectPosCollision = 1

TargetPosRecalculateRange = 1.5

mmap.enabled = 1

mmap.ignoreMapIds = ""

UpdateUptimeInterval = 10

MaxCoreStuckTime = 0

AddonChannel = 1

CleanCharacterDB = 1

LogSQL = 1

PidFile = ""

LogLevel = 1

LogTime = 0

LogFile = "Server.log"

LogTimestamp = 0

LogFileLevel = 0

LogFilter_TransportMoves = 1

LogFilter_CreatureMoves = 1

LogFilter_VisibilityChanges = 1

LogFilter_Weather = 1

LogFilter_DbStrictedCheck = 1

LogFilter_Pathfinding = 1

LogFilter_MapsLoading = 1

LogFilter_EventAiDev = 1

LogFilter_PeriodicAffects = 0

LogFilter_PlayerMoves = 1

LogFilter_SQLText = 1

LogFilter_AIAndMovegens = 0

LogFilter_PlayerStats = 0

LogFilter_Damage = 0

LogFilter_Combat = 0

LogFilter_SpellCast = 0

WorldLogFile = ""

WorldLogTimestamp = 0

DBErrorLogFile = "DBErrors.log"

EventAIErrorLogFile = "EventAIErrors.log"

CharLogFile = "Char.log"

CharLogTimestamp = 0

CharLogDump = 0

GmLogFile = ""

GmLogTimestamp = 0

GmLogPerAccount = 0

RaLogFile = ""

LogColors = ""

GameType = 1

RealmZone = 1

DBC.Locale = 255

DeclinedNames = 0

StrictPlayerNames = 0

StrictCharterNames = 0

StrictPetNames = 0

MinPlayerName = 2

MinCharterName = 2

MinPetName = 2

CharactersCreatingDisabled = 0

CharactersPerAccount = 50

CharactersPerRealm = 10

SkipCinematics = 0

MaxPlayerLevel = 60

StartPlayerLevel = 1

StartPlayerMoney = 0

MaxHonorPoints = 75000

StartHonorPoints = 0

MinHonorKills = 15

MaintenanceDay = 3

InstantLogout = 1

AllFlightPaths = 0

AlwaysMaxSkillForLevel = 0

ActivateWeather = 1

CastUnstuck = 1

MaxSpellCastsInChain = 20

RabbitDay = 0

Instance.IgnoreLevel = 0

Instance.IgnoreRaid = 0

Instance.ResetTimeHour = 4

Instance.UnloadDelay = 1800000

Quests.LowLevelHideDiff = 4

Quests.HighLevelHideDiff = 7

Quests.IgnoreRaid = 0

Guild.EventLogRecordsCount = 100

TimerBar.Fatigue.GMLevel = 4

TimerBar.Fatigue.Max = 60

TimerBar.Breath.GMLevel = 4

TimerBar.Breath.Max = 60

TimerBar.Fire.GMLevel = 4

TimerBar.Fire.Max = 1

MaxPrimaryTradeSkill = 2

TradeSkill.GMIgnore.MaxPrimarySkillsCount = 4

TradeSkill.GMIgnore.Level = 4

TradeSkill.GMIgnore.Skill = 4

MinPetitionSigns = 9

MaxGroupXPDistance = 74

MailDeliveryDelay = 3600

MassMailer.SendPerTick = 10

PetUnsummonAtMount = 0

Event.Announce = 0

BeepAtStart = 1

ShowProgressBars = 0

WaitAtStartupError = 0

Motd = "Welcome to the Continued Massive Network Game Object Server."

PlayerCommands = 1

AllowTwoSide.Accounts = 0

AllowTwoSide.Interaction.Chat = 0

AllowTwoSide.Interaction.Channel = 0

AllowTwoSide.Interaction.Group = 0

AllowTwoSide.Interaction.Guild = 0

AllowTwoSide.Interaction.Trade = 0

AllowTwoSide.Interaction.Auction = 0

AllowTwoSide.Interaction.Mail = 0

AllowTwoSide.WhoList = 0

AllowTwoSide.AddFriend = 0

TalentsInspecting = 1

ThreatRadius = 100

Rate.Creature.Aggro = 1

CreatureRespawnAggroDelay = 5000

CreatureFamilyFleeAssistanceRadius = 30

CreatureFamilyAssistanceRadius = 10

CreatureFamilyAssistanceDelay = 1500

CreatureFamilyFleeDelay = 7000

WorldBossLevelDiff = 3

Corpse.EmptyLootShow = 1

Corpse.Decay.NORMAL = 300

Corpse.Decay.RARE = 900

Corpse.Decay.ELITE = 600

Corpse.Decay.RAREELITE = 1200

Corpse.Decay.WORLDBOSS = 3600

Rate.Corpse.Decay.Looted = 0.0

Rate.Creature.Normal.Damage = 1

Rate.Creature.Elite.Elite.Damage = 1

Rate.Creature.Elite.RAREELITE.Damage = 1

Rate.Creature.Elite.WORLDBOSS.Damage = 1

Rate.Creature.Elite.RARE.Damage = 1

Rate.Creature.Normal.SpellDamage = 1

Rate.Creature.Elite.Elite.SpellDamage = 1

Rate.Creature.Elite.RAREELITE.SpellDamage = 1

Rate.Creature.Elite.WORLDBOSS.SpellDamage = 1

Rate.Creature.Elite.RARE.SpellDamage = 1

Rate.Creature.Normal.HP = 1

Rate.Creature.Elite.Elite.HP = 1

Rate.Creature.Elite.RAREELITE.HP = 1

Rate.Creature.Elite.WORLDBOSS.HP = 1

Rate.Creature.Elite.RARE.HP = 1

ListenRange.Say = 40

ListenRange.TextEmote = 40

ListenRange.Yell = 300

GuidReserveSize.Creature = 100

GuidReserveSize.GameObject = 100

ChatFakeMessagePreventing = 0

ChatStrictLinkChecking.Severity = 0

ChatStrictLinkChecking.Kick = 0

ChatFlood.MessageCount = 10

ChatFlood.MessageDelay = 1

ChatFlood.MuteTime = 10

Channel.SilentlyGMJoin = 0

GM.LoginState ? ? ? ? ? ?= 2

GM.Visible ? ? ? ? ? ? ? = 2

GM.AcceptTickets ? ? ? ? = 2

GM.Chat ? ? ? ? ? ? ? ? ?= 2

GM.WhisperingTo ? ? ? ? ?= 2

GM.InGMList.Level ? ? ? ?= 3

GM.InWhoList.Level ? ? ? = 3

GM.LogTrade ? ? ? ? ? ? ?= 1

GM.StartLevel ? ? ? ? ? ?= 1

GM.LowerSecurity ? ? ? ? = 0

GM.InvisibleAura ? ? ? ? = 31748

Visibility.GroupMode = 0

Visibility.Distance.Continents ? ?= 90

Visibility.Distance.Instances ? ? = 120

Visibility.Distance.BG ? ? ? ? ? ?= 180

Visibility.Distance.InFlight ? ? ?= 100

Visibility.Distance.Grey.Unit ? = 1

Visibility.Distance.Grey.Object = 10

Visibility.RelocationLowerLimit ? ?= 10

Visibility.AIRelocationNotifyDelay = 1000

Rate.Health = 1

Rate.Mana = 1

Rate.Rage.Income = 1

Rate.Rage.Loss = 1

Rate.Focus = 1

Rate.Loyalty = 1

Rate.Energy = 1

Rate.Skill.Discovery = 1

Rate.Drop.Item.Poor = 1

Rate.Drop.Item.Normal = 1

Rate.Drop.Item.Uncommon = 1

Rate.Drop.Item.Rare = 1

Rate.Drop.Item.Epic = 1

Rate.Drop.Item.Legendary = 1

Rate.Drop.Item.Artifact = 1

Rate.Drop.Item.Referenced = 1

Rate.Drop.Money = 1

Rate.XP.Kill ? ?= 1

Rate.XP.Quest ? = 1

Rate.XP.Explore = 1

Rate.Rest.InGame = 1

Rate.Rest.Offline.InTavernOrCity = 1

Rate.Rest.Offline.InWilderness = 1

Rate.Damage.Fall = 1

Rate.Auction.Time = 1

Rate.Auction.Deposit = 1

Rate.Auction.Cut = 1

Auction.Deposit.Min = 0

Rate.Honor = 1

Rate.Mining.Amount = 1

Rate.Mining.Next ? = 1

Rate.Talent = 1

Rate.Reputation.Gain = 1

Rate.Reputation.LowLevel.Kill ? ?= 0.2

Rate.Reputation.LowLevel.Quest ? = 1

Rate.InstanceResetTime = 1

SkillGain.Crafting = 1

SkillGain.Defense = 1

SkillGain.Gathering = 1

SkillGain.Weapon = 1

SkillChance.Orange = 100

SkillChance.Yellow = 75

SkillChance.Green ?= 25

SkillChance.Grey ? = 0

SkillChance.MiningSteps ? = 0

SkillChance.SkinningSteps = 0

SkillFail.Loot.Fishing = 0

SkillFail.Gain.Fishing = 0

SkillFail.Possible.FishingPool = 1

DurabilityLossChance.Damage = 0.5

DurabilityLossChance.Absorb = 0.5

DurabilityLossChance.Parry ?= 0.05

DurabilityLossChance.Block ?= 0.05

Death.SicknessLevel = 11

Death.CorpseReclaimDelay.PvP = 1

Death.CorpseReclaimDelay.PvE = 1

Death.Bones.World = 1

Death.Bones.Battleground = 1

Death.Ghost.RunSpeed.World = 1.0

Death.Ghost.RunSpeed.Battleground = 1.0

Battleground.CastDeserter = 1

Battleground.QueueAnnouncer.Join = 0

Battleground.QueueAnnouncer.Start = 0

Battleground.ScoreStatistics = 0

Battleground.InvitationType = 0

BattleGround.PrematureFinishTimer = 300000

BattleGround.PremadeGroupWaitForMatch = 0

OutdoorPvp.SIEnabled = 1

OutdoorPvp.EPEnabled = 1

Network.Threads = 1

Network.OutKBuff = -1

Network.OutUBuff = 65536

Network.TcpNodelay = 1

Network.KickOnBadPacket = 0

Console.Enable = 0

Ra.Enable = 0

Ra.IP = 0.0.0.0

Ra.Port = 3443

Ra.MinLevel = 3

Ra.Secure = 1

Ra.Stricted = 1

SOAP.Enabled = 0

SOAP.IP = 10.10.10.10

SOAP.Port = 7878

CharDelete.Method = 0

CharDelete.MinLevel = 0

CharDelete.KeepDays = 30

cat /usr/local/wow_mangos/etc/realmd.conf |grep -v ^# |grep -v ^$ 

[RealmdConf]

ConfVersion=2010062001

LoginDatabaseInfo = "10.10.10.10;3310;mangos;mangos;realmd"

LogsDir = ""

MaxPingTime = 30

RealmServerPort = 3724

BindIP = "0.0.0.0"

PidFile = ""

LogLevel = 0

LogTime = 0

LogFile = "Realmd.log"

LogTimestamp = 0

LogFileLevel = 0

LogColors = ""

UseProcessors = 0

ProcessPriority = 1

WaitAtStartupError = 0

RealmsStateUpdateDelay = 20

WrongPass.MaxCount = 0

WrongPass.BanTime = 600

WrongPass.BanType = 0

9、啟動(dòng)服務(wù)器

cat /usr/local/wow_mangos/bin/startup.sh

啟動(dòng)腳本內(nèi)容如下:

#!/bin/sh
# usage : sh shutdown.sh
# author : nagle
# date ? : Sat Jan 21 16:10:11 CST 2017
# website: ?https://github.com/geektcp

base_dir=`dirname $0`/..

cd $base_dir/bin/

export LD_LIBRARY_PATH=/usr/local/gcc-4.9.3/lib64/:$base_dir/lib

nohup $base_dir/bin/realmd 2>&1 >> $base_dir/logs/nohup_realmd.out &

$base_dir/bin/mangosd

cat /usr/local/wow_mangos/bin/shutdown.sh

關(guān)閉腳本內(nèi)容:

#!/bin/sh
# usage : sh shutdown.sh
# author : nagle
# date ? : Sat Jan 21 16:10:11 CST 2017
# website: https://github.com/geektcp

ps -ef |grep wow_mangos |grep wow|grep -v grep |grep -v local|awk '{print $2}' |xargs -t -i kill -9 {}

alais環(huán)境變量(方便啟動(dòng),可以忽略):

cat ~/.bash_profile

alias startmangos='screen -S thy -X screen su - wow -c /usr/local/wow_mangos/bin/startup.sh'

alias stopmanos='screen -S thy -X screen su - wow -c /usr/local/wow_mangos/bin/shutdown.sh'

10、創(chuàng)建賬號(hào)

如果啟動(dòng)mangosd服務(wù)端時(shí),配置文件指定了啟用控制臺(tái),那么可以在控制臺(tái)輸入命令:

account create nagle 123

即可創(chuàng)建一個(gè)帳號(hào)為nagle,密碼為123的帳號(hào)了。

另外通過數(shù)據(jù)庫也可以創(chuàng)建賬號(hào),對(duì)應(yīng)的sql語句是:

SET
@username = "test1",
@password = "123",
@email = "test@163.com",
@expansion = 0, ?-- 0表示經(jīng)典舊時(shí), 1表示70年代,一次類推
@gmlevel = 0, ? -- 0 = player, 1=GM, 2=Moderator, 3=Admin, 4=Console
@realmid = 1;
?
INSERT INTO account
(username, sha_pass_hash, gmlevel, email, expansion, active_realm_id)
VALUES (
UPPER(@username),
(SHA1(CONCAT(UPPER(@username),
':', UPPER (@password))) ),
@gmlevel,
@email,
@expansion,
@realmid
);

INSERT INTO `realmd`.`realmcharacters` (`realmid`, `acctid`) VALUES ('1', '5');

 

11、客戶端連接

找到wow.exe同一級(jí)目錄下的配置文件,沒有用記事本新建一個(gè),重命名為realmlist.wtf

寫入內(nèi)容(其中如果不是默認(rèn)端口3724,可以在后面添加端口,比如:13724):

SET realmlist wow.whyalive.org

三、擴(kuò)展功能

這個(gè)版本支持機(jī)器人,也是可以自行創(chuàng)建若干玩家一起玩。

常用配置項(xiàng)

開啟所有飛行點(diǎn)

AllFlightPaths=1

機(jī)器人用法

對(duì)應(yīng)的機(jī)器人命令(魔獸世界登錄后,在聊天窗口輸入指令):
https://github.com/geektcp/Namjagbarwa-wow/blob/master/doc/playerbot/commands.txt

查看機(jī)器人狀態(tài):

/t 夜之眼 stats

/t 夜之眼 info

召喚機(jī)器人:

.bot add 夜之眼

.bot add 索拉查的笛聲

保持位置不動(dòng):

/t 夜之眼 stay

/t 索拉查的笛聲 stay

/t 夜之眼 cast 1243

其他命令:

.bot remove 索拉查的笛聲

.bot add 小牛

.bot add 塞拉摩

.bot add 愛在西元前

/t 愛在西元前 orders combat heal

/t 塞拉摩 orders combat protect

/t 小牛 orders combat resistfire

/t 小牛 orders combat assist

.bot remove 夜之眼

.bot remove 索拉查的笛聲

/t 夜之眼 orders combat heal

/t 夜之眼 help

/t 夜之眼 follow near

/t 夜之眼 follow far

/t 索拉查的笛聲 follow near

/t 索拉查的笛聲 follow near

/t 索拉查的笛聲 follow info

/t 愛在西元前 orders combat attack

.bot remove??愛在西元前

.bot remove 塞拉摩

常用GM命令

21級(jí)血?dú)⒏?/p>

.additem 13016

盾牌24級(jí):

.additem 12997

.additem 13032

學(xué)會(huì)所有法術(shù):

.learn all

傳送

傳送門

添加傳送門(如果對(duì)應(yīng)的id不存在,或者填錯(cuò)了,就會(huì)增加一個(gè)空的物體):

.gobject add [entry]

刪除傳送門:

.gobject delete [guid]

entry是物體模板id,可以按同一個(gè)模塊添加多個(gè)同樣的物體,

所以刪除時(shí)必須刪除物體id

添加物體后,控制臺(tái)界面(聊天窗口)會(huì)返回GUID信息,這個(gè)GUID就是物體的id,根據(jù)這個(gè)id刪除物體即可。

傳送門entry對(duì)應(yīng) 表是gameobject_template

傳送門guid對(duì)應(yīng)的表是gameobject

查看guid和entry對(duì)應(yīng)關(guān)系:

SELECT t.entry,t.name,o.id, o.guid,

o.position_x,o.position_y,o.position_z,o.map

FROM gameobject o,gameobject_template t

WHERE o.id=[entry]

比如:

SELECT t.entry,t.name,o.id, o.guid,

o.position_x,o.position_y,o.position_z,o.map

FROM gameobject o,gameobject_template t

WHERE o.id =176499

序號(hào)

添加物體

命令

備注

0

刪除傳送門

.gobject delete 90007

 

1

奧格瑞瑪傳送門

.gobject add 176499

2

暴風(fēng)傳送門

.gobject add 176296

3

鐵爐堡傳送門

.gobject add 176497

4

達(dá)納蘇斯傳送門

.gobject add 176498

5

奧格瑪傳送門

.gobject add 176499

6

雷霆崖傳送門

.gobject add 176500

7

幽暗城傳送門

.gobject add 176501

8

末日傳送門

.gobject add 177193

9

半人馬傳送門01

.gobject add 178386

10

集合石傳送門

.gobject add 179944

11

卡拉贊傳送門

.gobject add 181146

12

暗夜村落傳送門

.gobject add 182061

13

部落營(yíng)地傳送門

.gobject add 182060

14

黑石塔之傳送門

.gobject add 184247

15

召喚傳送門(黃球)

.gobject add 181810

16

瑪拉頓的傳送門

.gobject add 178400

.gobject activate 90072

坐標(biāo)

序號(hào)

目的地

命令

備注

1

奧格瑞瑪鳥點(diǎn)

.go 1652 -4331 62 1

主城

2

奧格 武器大師

.go 1637 2091 -4822 1

主城

3

幽暗城門口

.go 1909 235 53 0

主城

4

幽暗城鳥點(diǎn)

.go 1567 268 -43 0

主城

5

雷霆崖

.go -1391 140 23 1

主城

6

暴風(fēng)城門口

.go -9065 434 94 0

主城

7

暴風(fēng)城銀行

.go -8832 627 94 0

主城

8

鐵爐堡門口

.go -5032 -819 495 0

主城

9

鐵爐堡銀行

.go -4927 -947 502 0

主城

10

鐵爐堡最高峰(屋頂)

.go -4866 -1445 580 0

主城

11

達(dá)納蘇斯

.go 9961 2055 1329 1

主城

12

GM島

.go 16222.1 16252.1 12.5872 1

主城

13

藏寶海灣

.go -14302 518 9 0

副城

14

棘齒城

.go -977 -3788 6 1

副城

15

牛頭出生地

.go -2254 -758 8.2 1

16

塔倫米爾:

.go -36 -927 55 0

17

陶拉祖營(yíng)地:

.go -2375 -1880 96 1

18

灰谷:

.go 2324 -1668 125 1

19

千針石林山頂

.go -4885 -1596 101 1

四、常見問題

編譯安裝通常是正常的,問題往往處在map文件的獲取,及map文件和當(dāng)前編譯版本不匹配,或者是數(shù)據(jù)庫表,由于不完整,或者不同版本雜亂在一起導(dǎo)致沒法正常啟動(dòng)。

1、代碼調(diào)試方法

打印日志,以打印std:string類型的字符串name為例:

sLog.outError("111111: %s", name. c_str());

2、map和sql的版本問題

map文件必須跟服務(wù)器端的版本匹配,目前我的客戶端是1.12.3版本

服務(wù)器端的版本是老的mangos-classic,這個(gè)源碼也不記得從哪里搞的,反正現(xiàn)在的官方的github下的mangos-classic是沒有可執(zhí)行文件生成map,而且用本文檔提供的方式生成的map也跟github上的官方源碼版本是不匹配的,這個(gè)地方要注意。

只能用我的git下的服務(wù)端源碼下的用于抽取的可執(zhí)行文件,來抽取我的客戶端版本1.12.3下的map文件,服務(wù)器才能正常啟動(dòng),另外數(shù)據(jù)庫初始化數(shù)據(jù)也必須用我的git下的初始化sql。

報(bào)錯(cuò)如下

Using DataDir ../data/

WORLD: VMap support included. LineOfSight:1, getHeight:1, indoorCheck:1

WORLD: VMap data directory is: ../data/vmaps

WORLD: MMap pathfinding enabled

VMap file '../data/vmaps/000.vmtree' is missing or point to wrong version vmap file, redo vmaps with latest vmap_assembler.exe program

Correct *.map files not found in path '../data/maps' or *.vmtree/*.vmtile files in '../data/vmaps'. Please place *.map and vmap files in appropriate directories or correct the DataDir value in the mangosd.conf file.

可能原因

這個(gè)問題可能跟map文件的版本也有關(guān),但是從網(wǎng)上下別人的機(jī)器人端的map文件也提示報(bào)這個(gè)錯(cuò),我懷疑是數(shù)據(jù)庫里面某個(gè)字段對(duì)應(yīng)的版本號(hào)有關(guān)系,導(dǎo)致提示這個(gè)錯(cuò)誤。

待研究。

解決辦法

重要找出問題原因了,原來是mangos啟動(dòng)時(shí)會(huì)檢查地圖的版本,如果不匹配直接退出,就沒有啟動(dòng)成功了。

在代碼src/game/GridMap.cpp里面有個(gè)判斷語句,用到檢查方法是:

vim /usr/local/src/wow/portalclassic/src/game/GridMap.cpp

bool GridMap::ExistVMap(uint32 mapid, int gx, int gy)

{

??? if (VMAP::IVMapManager* vmgr = VMAP::VMapFactory::createOrGetVMapManager())

??? {

??????? if (vmgr->isMapLoadingEnabled())

??????? { bool exists = vmgr->existsMap((sWorld.GetDataPath() + "vmaps").c_str(),? mapid, gx, gy);

??????????? ?if (!exists)

??????????? {

??????????????? std::string name = vmgr->getDirFileName(mapid, gx, gy);

??????????????? sLog.outError("VMap file '%s' is missing or point to wrong version vmap file, redo vmaps with latest vmap_assembler.exe program", (sWorld.GetDataPath() + "vmaps/" + name).c_str());

??????????????? return false;

??????????? }

...

臨時(shí)解決方案:

vim /usr/local/src/wow/portalclassic/src/game/vmap/MapTree.cpp

// const char VMAP_MAGIC[] = "VMAP_6.0";

// 修改bug,因?yàn)榈貓D版本不同導(dǎo)致啟動(dòng)不了的問題

const char VMAP_MAGIC[] = "VMAP_5.0";

const char RAW_VMAP_MAGIC[] = "VMAP005";

vim /usr/local/src/wow/portalclassic/src/game/vmap/VMapDefinitions.h

// const char VMAP_MAGIC[] = "VMAP_6.0";?????? // used in final vmap files

// 修改bug,因?yàn)榈貓D版本不同導(dǎo)致啟動(dòng)不了的問題

const char VMAP_MAGIC[] = "VMAP_5.0";

?// used in extracted vmap files with raw data

const char RAW_VMAP_MAGIC[] = "VMAP005";?

3、獵人寵物過段時(shí)間直接消失

鎖表后查日志,發(fā)現(xiàn),確實(shí)是服務(wù)器程序自動(dòng)刪除了數(shù)據(jù)庫的一條記錄導(dǎo)致:

vim /usr/local/src/wow/portalclassic/src/game/Pet.cpp

注釋掉下面兩行,測(cè)試:

465???????? //SqlStatement stmt = CharacterDatabase.CreateStatement(delPet, "DELETE FROM character_pet WHERE owner = ? AND id = ?");

?466???????? //stmt.PExecute(ownerLow, m_charmInfo->GetPetNumber());

上面的方法會(huì)引起bug。

解決辦法:

這其實(shí)不是bug,而是60年代的獵人的精細(xì)設(shè)計(jì)一個(gè)體現(xiàn),寵物一定時(shí)間不喂養(yǎng),就會(huì)逃跑,因?yàn)轲I死了,或者忠誠度太低導(dǎo)致。

修改配置文件:

vim mangosd.conf

# 啟用寵物忠誠度,小于等于1,包括0,都會(huì)導(dǎo)致空閑寵物10分鐘多一點(diǎn)的時(shí)間不喂食就逃跑了,改10以上即可。

Rate.Loyalty = 100

4、添加機(jī)器人報(bào)錯(cuò)

添加或者移除機(jī)器人時(shí)報(bào)錯(cuò):

.bot add 索拉查的笛聲

.bot remove 索拉查的笛聲

界面提示:

指令語法格式錯(cuò)誤

后臺(tái)報(bào)錯(cuò):

tailf /usr/local/wow_mangos_bot/logs/Server.log

2017-01-28 17:58:00 ERROR:MMAP:loadMap: 0003337.mmtile was built with generator v4, expected v5

原因還是地圖版本問題導(dǎo)致:

因?yàn)楫?dāng)前源碼的版本默認(rèn)編譯安裝使用的題圖版本是5,而我用extractor.exe之類的抽取程序抽取的map是4的版本,服務(wù)器啟動(dòng)會(huì)檢查map,vmap,mmap版。

vim /usr/local/src/wow/portalclassic/src/game/MoveMapSharedDefines.h

找到如下一行:

#define MMAP_VERSION 5

修改為:

#define MMAP_VERSION 4

語法格式錯(cuò)誤的解決方式:

修改mangos的mangos_string表的entry為10的記錄,即把內(nèi)容:

指令語法格式錯(cuò)誤

設(shè)置為空,然后重啟服務(wù)器即可,這個(gè)表示在服務(wù)器啟動(dòng)時(shí)就讀取到內(nèi)存的。

5、傳送門已鎖

添加傳送門后,提示傳送門鎖定

待解決

vim /usr/local/src/wow/ClassicWOW/src/scriptdev2/scripts/eastern_kingdoms/gnomeregan/instance_gnomeregan.cpp

五、參考鏈接

我的服務(wù)端源碼地址(含可用的mysql初始化數(shù)據(jù)):

https://github.com/geektcp/mangos-classic

客戶端下載地址:

http://pan.baidu.com/s/1hslkRVQ

官方服務(wù)端下載地址(不能用):

https://github.com/cmangos/mangos-classic

sql下載地址(可用):

https://github.com/keyshuwen/Classicdb/

部署參考鏈接:

https://github.com/cmangos/issues/wiki

官方部署文檔(有參考價(jià)值):

https://github.com/cmangos/issues/wiki/Installation-Instructions

其他參考鏈接:

http://www.mangoscn.com/forum.php?mod=viewthread&tid=180042

60年代其他參考版本:

https://github.com/TrinityZero/TrinityZero

其他相關(guān)下載服務(wù)端:

git clone git://github.com/cmangos/mangos-classic.git ? mangos_server

git clone git://github.com/scriptdev2/scriptdev2-classic.git ?? mangos_scriptdev2

git clone git://github.com/ACID-Scripts/Classic.git ??? mangos_acid

git clone git://github.com/classicdb/database.git ????? mangos_classicdb

git clone git://github.com/cmangos/classic-db.git

到了這里,關(guān)于開源魔獸世界服務(wù)器everwar搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 魔獸世界私服架設(shè) 服務(wù)器架設(shè)簡(jiǎn)易教程

    魔獸世界私服架設(shè) 服務(wù)器架設(shè)簡(jiǎn)易教程

    今天早晨明杰終于把魔獸世界的私服搭建成功可以運(yùn)行了。挺happy。 記錄一下搭建的全過程: 1.先下載私服服務(wù)器端:從mangoscn.com下載大芒果ftp://www.mangoscn.com/TCCN-3.2.2-Trinity5749.exe 從這個(gè)地址下載不需要注冊(cè),如果從mangoscn.com的網(wǎng)頁上直接點(diǎn)擊,還需要邀請(qǐng)碼,注冊(cè)以后才能

    2024年02月04日
    瀏覽(29)
  • 魔獸世界服務(wù)器被攻擊怎么辦?DDoS攻擊防御方法

    魔獸世界服務(wù)器被攻擊在目前來說也是比較常見的,同行競(jìng)爭(zhēng)激烈,在官服開放時(shí)也遇到過DDOS攻擊,要是飛飛沒記錯(cuò)是在22年9月14日,從剛開始的身份驗(yàn)證服務(wù)器出現(xiàn)問題,到確定是DDOS攻擊導(dǎo)致,再到DDOS攻擊結(jié)束,差不多3個(gè)小時(shí)時(shí)間。 DDOS攻擊是一種較常見的網(wǎng)絡(luò)攻擊技術(shù)

    2024年02月15日
    瀏覽(33)
  • Debian11搭建魔獸世界WLK3.3.5私人服務(wù)器(愿圣光忽悠著你)

    Debian11搭建魔獸世界WLK3.3.5私人服務(wù)器(愿圣光忽悠著你)

    本端來源 ?Trinitycore Wiki | TrinityCore MMo Project Wiki 官方的wiki TrinityCore - Confluence 選擇linux搭建,是因?yàn)楸救说姆?wù)器配置有點(diǎn)垃圾,官方也支持MacOS 和Windows,感興趣的也可以根據(jù)網(wǎng)上的教程進(jìn)行安裝。 安裝debian11 我比較懶 所以在系統(tǒng)選擇時(shí)安裝了桌面系統(tǒng),順帶安裝SSH 大神可

    2024年02月09日
    瀏覽(32)
  • 魔獸世界新版本-逍遙魔獸V837-一鍵服務(wù)端

    魔獸世界新版本-逍遙魔獸V837-一鍵服務(wù)端

    837新端已經(jīng)編寫了全新的一鍵端工具,比335版的要好看很多,如果是win10系統(tǒng),還會(huì)有半透明效果。本端架設(shè)比較簡(jiǎn)單,如果采用推薦的目錄架設(shè),基本是解壓即玩,詳細(xì)的架設(shè)教程請(qǐng)看“架設(shè)說明”文檔。 程序鏈接:【魔獸世界】-逍遙魔獸V837-一鍵服務(wù)端 - 藍(lán)番茄網(wǎng)絡(luò) 本端

    2024年02月11日
    瀏覽(26)
  • 魔獸世界335服務(wù)端架設(shè)對(duì)外網(wǎng)開放的步驟

    警告:在沒有網(wǎng)絡(luò)安全防護(hù)措施或基礎(chǔ)知識(shí)的情況下,開放端口可能造成被黑客入侵、流量攻擊、破壞數(shù)據(jù)、資料泄露等情況的發(fā)生。在你選擇開放端口時(shí),視為已經(jīng)充分了解可能發(fā)生的后果、危害,清楚自己在做什么,并且自己將對(duì)此承擔(dān)一切后果! 還有這不是細(xì)致到手把

    2024年02月10日
    瀏覽(27)
  • 魔獸世界私服架設(shè)教程——如何搭建魔獸世界私服

    魔獸世界私服架設(shè)教程——如何搭建魔獸世界私服

    TrinityCore是一個(gè)魔獸世界服務(wù)端模擬器,我們可以通過TrinityCore來學(xué)習(xí)大型網(wǎng)絡(luò)游戲服務(wù)端的編寫,從中汲取營(yíng)養(yǎng)來編寫我們自己的游戲。 一、前期準(zhǔn)備工作 CPU需要支持SSE2指令集 Boost版本大于等于1.59.0 MySQL數(shù)據(jù)庫版本大于等于5.1.0 OpenSSL版本為1.0.x CMake版本大于等于3.3.2 Micro

    2024年02月04日
    瀏覽(36)
  • 魔獸世界宏命令完全指南

    一、基本宏命令 1.什么是宏 ? 宏是由一組宏命令語句 組成的 集合 。以下是一些普通宏命令的示例 :/say (/s, /說) /whisper (/w, /talk, /t, /告訴) /reply (/r, /回復(fù)) /emote (/e, /em, /me, /表情) /dance (/跳舞) 喜愛PVP的人 ,應(yīng)該不會(huì)忘了這個(gè):/spit (/吐口水) 把宏 放到技能欄上,我們就可以

    2024年02月13日
    瀏覽(32)
  • 魔獸世界全版本GM命令全集

    魔獸世界全版本GM命令全集

    命令: .levelup 79 (升級(jí)數(shù)1-79) .modify money 999999999 增加金幣 .modify hp 9999999 9999999 增加被選擇人物的血量 .modify mana 9999999 9999999 增加被選擇人物的藍(lán)量 .modify speed 30 加速人物跑步 .modify speed 1 還原人物跑步 .modify aspeed 1 還原人物游泳 .gm fly on 開啟GM飛行模式 .gm fly off 關(guān)閉GM飛行模式

    2024年02月09日
    瀏覽(39)
  • 魔獸世界經(jīng)典舊世私服搭建教程

    魔獸世界經(jīng)典舊世私服搭建教程

    60魔獸經(jīng)典舊世是最經(jīng)典的版本,遺憾的是60年代時(shí)還在大學(xué)讀書,窮得很,買不起點(diǎn)卡,后來工作了,大概70年代開始玩的。 多年以前,玩游戲時(shí),一直非常期望能夠自己控制角色的屬性級(jí)別,得到各種裝備。 多年以后,在這款純粹的開源服務(wù)器問世后,終于如愿以償。 直

    2024年02月04日
    瀏覽(22)
  • 魔獸世界私服架設(shè)教程—GM命令大全

    魔獸世界私服架設(shè)教程—GM命令大全

    如果需要什么命令可以按ctrl+f查找,比如泰坦之握,就會(huì)直接定位到你想要的命令那里。 橙色武器: 85版本 橙匕首,龍父之牙 戈拉德,龍王之暮 提里奧什,遠(yuǎn)古噩夢(mèng) 77949 77950 橙杖,可以變龍 巨龍之怒,泰蕾茍薩的寄魂杖 71086 80版本 橙斧 影之哀傷 49623 橙錘 瓦蘭奈爾,遠(yuǎn)古

    2024年02月04日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包