cpm_2 发表于 2010-10-17 13:54

MW2专用服务器架设教程[更新0.3版预留通道设置方法]

本帖最后由 cpm_2 于 2011-5-22 21:55 编辑

0.3版服务端更新的内容见最下面
本地附件的图片已修复
================================================================================
我想你们也应该知道了,aIW又搞了一些新东西..(不得不说这个新东西真的很强大...说不定可以改变MW2的现状...作弊神马的)

有些人在问到如何架设...好吧首先说明一下...专用服务器是啥

首先...这个不是战网服务器...也就是说,你还是需要先连接aIW的战网(server.alteriw.net)(经测试..也可以连接其他战网,只有连接上才能进游戏),如果你能明白..那么继续看下去...否则还是直接CTRL+W吧

玩过COD4 MP的我想都知道
一个独立,稳定的服务器,长期运行
服务器不管有没有人都会一直运行
而且能设置OP,玩家密码等选项,易于管理,网络也比较稳定
当然...最大的好处莫过于可以T,BAN掉作弊的玩家...服务端可以直接操作,也可以由OP(其实就是管理员)进行

于是...不知道如何表达了...CS,COD4,5等等都是采用专用服务器,COD7也是

作为客户端,你是不需要任何补丁,也不需要设置什么,直接使用命令连接已经架设好的服务器即可,关于如何连接,下面会提到

还有,现在服务端还在BETA,所以有BUG啥的都是正常的,这得等以后慢慢完善了

好吧..下面开始切入正题,如何架设一台专用服务器
http://alteriw.net/viewtopic.php?f=93&t=22667
以下为整理+翻译原帖的内容...不解释

首先,你需要一台性能足够好的机器,最主要的还是带宽
关于配置要求这个就不翻译了,原文写的好像都是几年前的机器就能运行了,不过配置肯定是越高越好..
还有,如果你是内网(用路由的,或者其他什么比如公司内部网络)的,你需要映射服务器所使用的那个端口,具体方法自己百度

然后,你还需要一个可以正常游戏的aIW破解的客户端...这个很重要
然后......=-=再下载下面的服务端程序(注意,这个是0.2老版本的,新版本的见最下面)
http://alteriw.net/dl/aiw-dedicated-0.2b.zip
注意...作为服务端,游戏就无法正常启动了,也就是说,你又要架设服务器又要玩的话,需要先完整的复制一份MW2到别的地方
然后覆盖游戏目录,这样就成为一个服务端了,
还有,你可以减小服务端的体积,首先,你可以删掉main下的video文件夹,然后..
http://alteriw.net/content/nulliwd.7z
使用这些空的IWD文件覆盖游戏目录下的main文件夹就行了,这样能极大的精简服务端的体积,大概能减小一半以上

其次,你需要服务器的配置文件,不过这东西可有可无,没有的话应该会使用默认的设置// --- QUERY INFORMATION --------------------------------
//注意...配置文件里有些行前面带"//",则该行(或者该符号后面)为解释行,不执行,设置的时候注意一下
set sv_hostname "alter^4IW^7net ^2DEDICATED SERVER^7 - I AM LAZY"
//上面那行,是最重要的..服务器名..可以使用类似于玩家ID那样的颜色代码

// optional settings returned by query, server listings may use this
//以下是一些服务器信息...对于MW2可能没什么用,以前的COD4啥的可以查看.包括管理员,网站,位置,Email等信息
sets _Admin "NTAuthority"
sets _Email "ntauthority@example.com"
sets _Website "http://alteriw.net/"
sets _Location "EU - West"

// --- NON-GAMEPLAY CONFIGURATION -----------------------
set rcon_password "" // rcon密码,留空=禁用(应该就是OP密码了)
set privateMatch_serverPassword "" // 游戏密码,留空就是公共服务器

set sv_maxPing "300" // 最高PING限制,PING超过这个数字的玩家会被T

set g_inactivity "0" // time in seconds before a player gets kicked if not moving
set g_inactivitySpectator "0" // time in seconds before a spectator gets kicked

set g_logSync "1" // 1 = 同步日志文件, 0 = 只有程序结束的时候才同步
set g_log "games_mp.log" // 日志文件名

set aiw_sayName "^7Console" // 当服务端使用"say"命令时,显示在游戏中的发言者ID,

// --- BASE GAME CONFIGURATION --------------------------
set g_gametype "war" // 游戏模式war就是TDM
// war - Team Deathmatch
// dm - Free-for-all
// dom - Domination
// koth - Headquarters
// sab - Sabotage
// sd - Search and Destroy
// arena - Arena
// dd - Demolition
// ctf - Capture the Flag
// oneflag - One-Flag CTF
// gtnw - Global Thermo-Nuclear War

// uncomment below commands for some hardcore shit
//以下是一些服务器其他方面的设置,比如开HC模式...最大血量什么的...就不翻译了
//set g_hardcore "1"
//set ui_hud_hardcore "1"
//set scr_hardcore "1"
//set scr_player_maxhealth "30"
//set scr_team_fftype "1" // 1 = on, 2 = reflect, 3 = shared
//set scr_player_healthregentime "0"

set scr_thirdperson "0" // third-person mode
set scr_game_hardpoints "1" // killstreaks, 1 = on
set scr_game_perks "1" // perks, obviously

set scr_game_allowkillcam "1" // 1 = allow, 0 = disallow

set scr_diehard "0" // die-hard mode

// --- GAMETYPE CONFIGURATION ---------------------------

// - Team Deathmatch
set scr_war_scorelimit "10000"   //TDM模式的分数限制,分数到了游戏就结束
set scr_war_timelimit "15" // 时间限制,分钟

set scr_war_playerrespawndelay "-1" //复活延迟-1没有复活延迟, 0是自动?默认?, >0的话..单位是秒
set scr_war_waverespawndelay "0" // wave spawning, might be more 'tactical' (这啥...)

set scr_war_numlives "0" // 生命数(好像能打开...限制生命数,在上面的其他设置里)
set scr_war_promode "0" // unknown

set scr_war_roundlimit "1" // maximum amount of rounds
set scr_war_winlimit "1" // amount of wins needed to win a round-based game
//下面都是各个模式的参数设置..没办法逐个翻译了
// - Domination
set scr_dom_scorelimit "200"
set scr_dom_timelimit "15" // timelimit, in minutes

set scr_dom_playerrespawndelay "-1" // -1 is no respawn delay, 0 is automatic, > 0 is X seconds
set scr_dom_waverespawndelay "0" // wave spawning, might be more 'tactical'

set scr_dom_numlives "0" // number of lives
set scr_dom_promode "0" // unknown

set scr_dom_roundlimit "1" // maximum amount of rounds
set scr_dom_winlimit "1" // amount of wins needed to win a round-based game

// - FFA
set scr_dm_scorelimit "10000"
set scr_dm_timelimit "15" // timelimit, in minutes

set scr_dm_playerrespawndelay "-1" // -1 is no respawn delay, 0 is automatic, > 0 is X seconds

set scr_dm_numlives "0" // number of lives
set scr_dm_promode "0" // unknown

// - Search and Destroy
set scr_sd_scorelimit "1"
set scr_sd_timelimit "2.5" // timelimit, in minutes

set scr_sd_playerrespawndelay "-1" // -1 is no respawn delay, 0 is automatic, > 0 is X seconds
set scr_sd_waverespawndelay "0" // wave spawning, might be more 'tactical'

set scr_sd_numlives "1" // number of lives
set scr_sd_promode "0" // unknown

set scr_sd_roundlimit "0" // maximum amount of rounds, 0 is 'until someone wins'
set scr_sd_winlimit "6" // amount of wins needed to win a round-based game
set scr_sd_roundswitch "4" // after X rounds, switch sides?

set scr_sd_bombtimer "45"
set scr_sd_defusetime "5"
set scr_sd_multibomb "0" // allow multiple people to 'have the bomb'?
set scr_sd_planttime "5"

// ... other gametypes might be easy to figure out, or come in a future update of the template ...

// --- AUTOMATED ROTATION -------------------------------
//以下就是地图循环列表了...
set sv_mapRotation "gametype war map mp_afghan gametype war map mp_boneyard gametype war map mp_brecourt gametype war map mp_checkpoint gametype war map mp_derail gametype war map mp_estate gametype war map mp_favela gametype war map mp_invasion gametype war map mp_nightshift gametype war map mp_quarry gametype war map mp_rundown gametype war map mp_subbase gametype war map mp_terminal gametype war map mp_underpass gametype dom map mp_afghan"将以上代码复制,在players文件夹下或者main文件夹下新建一个文本文档,重命名为server.cfg,打开它,粘贴,保存即可
然后还有几点要注意的...1,服务器参数可自行修改2,如果服务端在运行,修改完参数之后记得重启服务端
但是你也可以这样...手动在控制台加载脚本,命令为exec server.cfg上面参数里...有些说明实在看不懂就没翻译=-=毕竟咱E文很烂
另外,更多的命令可以参照COD4的,有些是可以通用的

然后,将iw4mp.dat复制一份,重命名为iw4.exe(其实这个可以随便,只要是.exe的后缀名即可)
然后创建一个快捷方式指向iw4.exe,然后右键它,属性
在目标一栏的最后加参数+set party_maxplayers 18 +set net_port 28960 +exec server.cfg +map mp_rust +map_rotate就像这样
http://i595.photobucket.com/albums/tt34/cpm_2/1-5.jpg
party_maxplayers是最大玩家数,其实我也没测试能否超过18人
net_port是端口,可以使用计算机里未被占用的端口,这个随便
exec server.cfg要加载的服务器配置文件,这个我们上面已经弄好了
map mp_rust服务器运行后加载的第一张地图
map_rotate这个应该是启用服务器地图列表循环...具体也不太清楚,没有测试
弄好之后就可以运行这个快捷方式启动服务端了

当然...有另一种启动方式,那就是写一个批处理,先在服务端目录下新建个文本文档,改后缀名为.bat,然后写入以下代码@echo off
iw4.exe +set party_maxplayers 18 +set net_port 28960 +exec server.cfg +map mp_rust +map_rotate像这样
http://i595.photobucket.com/albums/tt34/cpm_2/2-3.jpg
然后保存退出,运行这个批处理也能达到同样的效果

启动后你可以看到一个控制台窗口,等到服务端地图加载完成就行了,这样一个服务器就建好了
像这样
http://i595.photobucket.com/albums/tt34/cpm_2/3.jpg

并且,你可以多开服务器,没错..你可以同时开几个服务器,只要机器性能够好就行
只需要修改参数里的端口号再运行即可,开一个服务器需要一个端口
你还可以为不同的服务器准备不同的配置文件,启动参数修改下即可

如果不出问题的话,你应该可以在这里
http://alteriw.net/dedicated.php
看到你的服务器,一般的玩家在控制台键入"connect IP:端口号"就可以直接连接了,比如这样
connect 113.31.43.6:28909(IP乱打的)
Edit:从11月4号更新之后游戏中已经内置服务器列表了,现在非常方便了,像COD4,COD5那样刷服务器列表然后加入即可

但是...如果是自己想连接自己的服务器呢..刚才就被这个问题困扰了好久,结果在官方论坛找到答案
自己想连接自己似乎无法使用外网IP连接,无论如何都得使用内网IP才能连接(你也别想用127.0.0.1,行不通的...)
如果你是内网的,自然会有一个内网IP(192.168.X.X),使用这个就能连接了
但是如果你是直接用猫上网的呢...这里有2个解决办法

第一是用虚拟局域网软件,比如HAMACHI,随便连接一个网络,这时候就有了一个内网IP,虽然是虚拟的,但是就能连接了
第二种方法...开始--运行---cmd--回车---键入ipconfig---回车
这时候会列出所有网卡以及其信息..找到自己的物理网卡(一般是本地连接...不过我这里有一大堆,包括hamachi,VLAN在内的虚拟网卡)
之后那里就会有一个"内网"IP,用那个就可以连接了

========================以下为更新的MOD服务器架设教程================================
上面说到的也只是开一个正常模式的服务器,如果要开MOD服务器其实也是非常简单的
首先,在服务端目录下新建一个mods文件夹(如果没有的话),然后把MOD文件夹放在里面
比如一个模组名为RetardedEnemies,那么路径就是mods/RetardedEnemies

启动服务器的参数多加下面这句+set fs_game "mods/模组文件夹名"把"模组文件夹名"改成要开的那个MOD的文件夹名即可,比如+set fs_game "mods/RetardedEnemies"

之后运行它就行了,命令行启动的也是这样的设置
如果那个模组是纯脚本的(也就是不带任何资源的,比如第三方模型,贴图等)玩家似乎是不需要下载任何东西就可以进服务器玩的
但是如果是带资源的就不知道了,因为没有测试,不过要是COD4,5的话,会自动下载

=================下面有一点需要特别注意...如果你的服务器使用2003或者XP的话======================
如果你的服务器使用win 2003或者是XP(不过我想应该没人在服务器上用XP...)的话...需要特别注意一点
即使你正确安装的.net3.5 ,VC08 ,还有DX9,但是运行服务端之后还是出现了这样的错误的话..
Application popup: iw4mp.dat - Application Error: The application failed to initialize properly (0xc0000005). Click OK to terminate the application.
嗯...我想你应该是使用windows自带的远程桌面吧...好吧...这个其实是.net3.5的一个BUG,aIW官网论坛也有人提到了
反正如果你是03/XP系统,然后使用windows自带的远程桌面的话,就会导致这种情况
目前解决方法只有一个,那就是使用第三方的远程控制软件...

好了..基本上就这么多了..要是发现还有啥缺的..待会再补上...写这么多东西眼都花了
============================以下为0.3版服务端相关内容=================================
首先给下载http://alteriw.net/dedicate/beta/aiw-dedicated-0.3b-RCONFIX.zip
注意,你并不需要先下载0.2版,直接下这个就行了,如果已经使用0.2版的也请直接覆盖

嗯...8号aIW发布了一个新版本的服务端,0.3(依然还是测试版),在这个版本里修复了很多问题,包括使用rcon可能造成崩溃的问题,更好的反作弊,对预留通道的支持
所以强烈建议各位开服务器的更新..当然,既然还是测试版,难免还会有错误,还请各位多多回报错误,以帮助改进
不过下面只介绍预留通道相关的内容

首先..啥是预留通道就不用解释了吧,COD4,5都有这样的东西..不过以前是使用密码,现在不是了,具体是什么下面会提到
(当然这里还是解释下,所谓预留通道就是特定用户独占的位子,比如服务器最大18人,设置了2个预留通道,那么在服务器列表那只能看到16个位子,普通的玩家也只能进入这16个位子,剩下的2个位子只有指定的用户才可以加入,一般都是留给OP的专用通道)

好吧开始做..
1.在原来的服务端启动参数那添加一个新的参数
+set sv_privateClients
就是预留通道的数量,比如可以设置成+set sv_privateClients 2,这样就是2个预留通道,下面我们将配置指定用户的列表

2.在服务端根目录下新建一个文本文档,并命名为reservedSlots.txt(就是在有iw4.exe或类似的地方),然后写入玩家XUID的后8位,一行一个玩家,比如
c6d1d399
5ce89369
这样对应XUID的玩家就可以加入预留通道了
页: [1]
查看完整版本: MW2专用服务器架设教程[更新0.3版预留通道设置方法]