当前位置:首页 » 操作系统 » 战网源码

战网源码

发布时间: 2022-11-12 10:51:24

‘壹’ CS1.6服务器的架设,包括AMX插件的加入方法

服务器完全架设手册
没有人一生出来就什么都会的,同样我也是什么都不会,自己慢慢学的。我知道Dcoo上有很多高手,如果本文有错误的地方,请不吝指正。以下基本都是偶在Dcoo等论坛上学到的服务器架设经验之谈,发出来给大家看看,让大家都从菜鸟转型为初级的服务器架设高手。言归正传,一步一步来:
一、 首先
你必须要有个高配置的电脑,如果是做服务器的话,最好内存是在512M以上的机器,至于 内存 CPU 等对架设CS服务器的影响,请查看其他帖子!然后是要了解的是,你上网的网络结构,是通过 Modem+路由+交换机 上网,还是用 代理服务器+交换机 上网,我的论坛的帖子也有介绍,在此我就不在多余重复说了。可以到我签名的地址去看看!
二、 CS的服务器端文件

由于现在CS1.6已经是比赛的版本了,所以偶就以1.6的为主,1.5的其实也一样的,但是会少了很多的特效,比如1.5就不支持中文等。这里提供的是DcOo 1.6 3213的服务器端版本。
三、开始设置服务器
完成以后,先不要运行,运行的话是进入游戏,而不是开始服务器!进入刚才安装的那个文件夹,找到Hlds.exe文件,创建一个快捷方式,如图:

然后把刚才那个快捷方式改一下名字,方便以后使用,偶改为Server,接下来是重点了。。。。请注意听了哦!
看到hlds.exe 后面那里的参数了没?

那里就是服务器运行的时候必须要用到的启动参数,参数不同,服务器运行的效果也不同!以偶的为例,
-game cstrike +servercfgfile server.cfg -nomaster -insecure -port 27016 +maxplayers 32 +map de_st2 +sv_lan 1 –console
偶一个一个解释好了:)
-game cstrike 这个就是指定以反恐精英为游戏的Mod,如果不指定的话就是半条命的模式,听说也不错很好玩的哦,没玩过

+servercfgfile server.cfg 这个就是指定服务器的配置文件,server.cfg这个文件放在cstrike下,后面偶会详细介绍一下该文件的

-nomaster 加载这个参数就是让服务器不上WON认证,避免因为出国网络不通导致的服务器问题。

-insecure 这个参数偶一下想不起来是干嘛用的了。其他知道的朋友,请指教,谢谢!

-port 27016 指定服务器运行时候的端口,范围最好是在27015-27020 之间,据我的测试,局域网列表能刷出来的就是在这个范围内,当然,如果你想用来做比赛服务器不想让其他人进的话,你可以指定任意不被占用的端口。

+maxplayers 32 这个参数是指定服务器最大进入玩家数,理论上最高能进32人,有的地图最高只能进20人,比如CS_italy 那些早期救人质的图都这样的。并不是说一定要以32人为最大,这个要和你的网络状况及服务器配置相联系的,关于CPU 内存 网络带宽 之间的联系,请在Dcoo上搜索一下,或者到我的论坛去查找一下,只有人数合适了,你的服务器才能运行在快速稳定的状态!

+map de_st2 这个参数就是当服务器一开始运行的时候,运行的第一张地图,你可以该为任意的,但是要注意,最好以 cstrike\maps 目录下的地图,不然服务器会出错!

图中,以bsp为结尾的文件都是地图文件,注意:参数不用带文件全名,例如 de_st2 就可以了, 没必要这样 de_st2.bsp

-console 控制台,如果不带这个参数的话,你架设好的服务器就不能在那个黑底白字的窗口上输入一些服务器命令

+sv_lan 1 这个参数是控制该服务器是局域网还是战网的一个重要参数,当为 0 的时候,外网玩家也可以进入,当为 1 的时候,就只有局域网的玩家才能进入。如果要做面向公网和内网(不知道什么叫公网和内网的,请自己找资料学习),这个参数建议为 0
综合以上讲解,很容易了解,

-game cstrike +servercfgfile server.cfg -nomaster -insecure -port 27016 +maxplayers 32 +map de_st2 +sv_lan 1 -console

用这些个参数架设的服务器是一个CS1.6反恐精英,不通过WON验证,游戏端口为27016,人数最多为32人,开始游戏地图为沙漠2,面向局域网的服务器!

如果要面向内外网的话,去掉 -nomaster +sv_lan 1这两个参
参数配置正确了,就可以开始运行服务器了?别急,还没配置完全呢,还有一个比较重要的文件server.cfg还没配置呢!

进入安装目录的cstrike下,你可以看到一个Server.cfg文件,这个文件是一个文本文件,但是没和任何文本编辑软件关联,也就是说,当你打开的时候,系统会提示你打开方式,你可以选择用记事本打开。打开以后你会看到如下的信息:
(注意:一下信息是毛毛虫在当时编写的时候Server.cfg文件。而我在编写的时候没有参考毛毛虫的脚本而是依照国际比赛服务器的标准而设置的,这点要千万注意!!)
rcon_password "dcoo"
hostname "迪酷网 DcOo CS1.6 Server"
sv_maxspeed 320
mp_autokick 0
mp_autocrosshair 0
mp_autoteambalance 0
mp_buytime 0.25
mp_consistency 1
mp_c4timer 35
mp_fadetoblack 1
mp_falldamage 1
mp_flashlight 1
mp_forcecamera 3
mp_friendlyfire 1
mp_freezetime 10
mp_fraglimit 0
mp_hostagepenalty 0
mp_limitteams 6
mp_logfile 1
mp_logmessages 1
mp_logdetail 3
mp_maxrounds 0
mp_playerid 0
mp_roundtime 2.5
mp_startmoney 800
mp_timelimit 60
mp_tkpunish 0
mp_winlimit 0
sv_aim 0
sv_airaccelerate 10
sv_airmove 1
sv_allowdownload 0
sv_clienttrace 1.0
sv_clipmode 0
sv_allowupload 0
sv_cheats 0
sv_gravity 800
sv_maxrate 25000
sv_maxspeed 320
sv_maxupdaterate 101
sys_ticrate 10000
decalfrequency 60
pausable 0
log on
decalfrequency 60
edgefriction 2
host_framerate 0
exec listip.cfg
exec banned.cfg

哇*,,,Dcoo的也太简单了吧,我记得以前还带解释的,现在这么都这样了呢?!

不管他,反正我也看得懂是啥意思,我来解释好了!只解释一些常用的,没解释到的推荐用默认值。一般 0 为关 1 为开

rcon_password "dcoo" 这个是进入服务器的密码,如果不改的话,就相当于是一个带密码的服务器,推荐去掉 "" 里面部分
hostname "迪酷网 DcOo CS1.6 Server" 服务器的名字,这个当然要改的了,改为你想改的名字就行了
sv_maxspeed 320 重力速度什么的,不推荐修改用默认的好了。。
mp_autokick 0 自动踢人,当某位玩家因为一些其他的因素,常时间不动或者死机等,系统就会踢除该玩家,0 为关 1为开
mp_autocrosshair 0 准心的大小自动调节,建议不要改
mp_autoteambalance 0 双方自动平衡,建议开启,否则会出现两边队伍人数不平衡
mp_buytime 0.25 购买武器时间 以60秒为单位,60*0.25=15秒
mp_c4timer 35 C4爆炸时间,国际比赛好像是35秒,推荐用这个值就行了
mp_fadetoblack 1 死后黑屏,推荐改为0
mp_falldamage 1 跌落损伤,这个不用改
mp_flashlight 1 手电筒开启
mp_forcecamera 3 死亡后视角 有0 1 2 3 三种模式,其中0 为视角固定模式 1 为仅限队友视角 2 为仅限队友第一视角 3为自由观看模式
mp_friendlyfire 1 自伤模式,自己人能打自己人,不是比赛服的话推荐关掉
mp_freezetime 10 开始买枪时候的静止不能行走的冻结时间,10秒也太夸张了。3秒就够了
mp_roundtime 2.5 每回合的时间,以分为单位,2.5为两分半钟,推荐改为3或者3.5 如果是死亡模式的话可以改为5
mp_startmoney 800 开局资金,一般都是800 最高可以改为16000 不推荐改!
mp_timelimit 60 每个地图玩的时间 60分钟合适了。如果改为0 的话就是不限制时间
mp_tkpunish 0 Team Killer 就是上局杀了自己方人的,这局就会挨惩罚,好像是死一局,开启为1 要和之前那个mp_friendlyfire 1同时开启才用用
mp_winlimit 0 当某方胜利多少局的时候换图,0 为关闭
当然还有其他比较详细的介绍,我这个只是大概介绍一下,偶发偶服的出来给大家看看:

sv_password ""
rcon_password "feilang"
hostname "南宁市飞浪网CS1.6比赛服 [CD]"
sv_maxrate 10000
sv_minrate 1000
sv_maxspeed 320
// 暂停游戏 禁止0/允许1
pausable
// 作弊模式 关闭0/开启1
sv_cheats 0

// 自动瞄准 关闭0/开启1
sv_aim 0
// 战术手电 允许1/禁止0
mp_flashlight 1
// 脚步声 开启1/关闭0
mp_footsteps 1
// 高处落下伤害 开启1/关闭0
mp_falldamage 1
// 自动踢出不动的玩家 开启1/关闭0
mp_autokick 1
// 观察员模式 开启1/关闭0
allow_spectators 1
// 服务端设定游戏复位的时间,包括杀人数、武器、金钱和得分。设0不复位。
sv_restartround 2
// 每局时间30分钟
mp_timelimit 45
// 购买武器冻结时间 (0-45)建议5秒以内。
mp_freezetime 3
// 每回合4分钟
mp_roundtime 3
//购买武器装备时间(0.25-1.5)即15秒-90秒
mp_buytime 0.25
// 炸弹倒计时时间 (15-75)
mp_c4timer 35
//开始游戏时的金钱数量(800-16000)
mp_startmoney 800
// 死亡后视角 1本队队友 2原地 0无限制
mp_forcechasecam 1
// 死亡后视角模式 0自由跟随/1固定跟随
mp_chasecam 1
// 人物死亡后屏幕 不变黑0/变黑1
mp_fadetoblack 0
// 友军误伤 关闭0/开启1
mp_friendlyfire 0
// 手雷友军伤害 关闭0/开启1
mp_friendly_grenade_damage 0
// 杀害友军惩罚 0不惩罚/惩罚:杀害队友超过(1-n)人,下一回合自动死亡
mp_tkpunish 0
// 自动调整双方队伍平衡 不调整0/调整(1-n)个人
mp_autoteambalance 1
// 双方人数差超过n人即自动调整人数差异 0关闭
mp_limitteams 2
// 杀害人质惩罚 0不惩罚/惩罚:规定时间内伤害人质超过(1-n)人自动踢出
mp_hostagepenalty 0
// 杀人数、得分上限 无0/有(1-n),超过上限就换地图。
mp_fraglimit 0
// 胜利次数上限无0/有(1-n),超过上限就换地图。
mp_winlimit 0
// 回合上限 无0/有(1-n),超过上限就换地图。
mp_maxrounds 0
// 允许下载 开启1/关闭0
sv_allowdownload 1

// 允许下载(sv_allowdownload 1)开启时控制是否允许玩家的LOGO传送 允许1/禁止0
sv_send_logos 1
// 允许下载(sv_allowdownload 1)开启时控制是否允许资源文件传送 允许1/禁止0
sv_send_resources 1
// 允许上传 关闭0/开启1
sv_allowupload 1
// 服务器重力设置 默认正常重力800,范围-999到99999
sv_gravity 800
// 投票比率(大家可以通过投票踢出作弊者和更换地图) (0.1-1)
mp_mapvoteratio 0.6
// 设定鬼魂模式刷新值(0.1-1)
mp_ghostfrequency 0.1
// 服务器高品质纹理 关闭0/开启1
sv_sendvelocity 0
// 服务器减少LAG延迟现象(对服务器要求高) 关闭0/开启1
mp_lowlag 0
// 服务器细节数据发送 默认300 ,可减低到250、200,改善速度。
mp_decals 300
// 服务器是否允许麦克风语音通讯 允许1/禁止0
sv_voiceenable 1
// 服务器是否允许客户端之间使用语音通信 允许1/禁止0
sv_alltalk 0
sv_region 4
//区域 4为亚洲

cdrequired "1"
cdrequiredversion auto
//为1 是需要CD ,第二行为自动检测CD版本
// 服务器是否记录文件 不记录0/记录1
mp_logfile 0
// 是否在记录文件里记录谈话内容 不记录0/记录1
mp_logmessages 0
// load ban files
exec listip.cfg
exec banned.cfg

红色字体部分复制下来,粘贴入你的server.cfg文件,就和我的服务器设置一样了,当然你要记得改密码和服务器名字哦!
当然,你也可以直接用cs1.6目录下那几个bat批处理文件架设的服务器!

编辑一下 setmaster add 69.28.151.178:27010 看到没有,这个肯定不是你的IP,你要做的就是改为你自己的IP 。注意哦,192.168.X.X这个不是你的公网IP,这个是你的局域网IP,如果你是网吧的技术员的话,自己想法子找到你网吧用的线路的IP,然后做好对应的端口映射,映射已经超出本帖的范围了,在此先不教。相关的请到我的论坛去看找一下各种路由的映射方法。

接下来就要解释一下其他几个个性化服务器必须要修改到的文件,这两个也是其中的一部分:

mapcycle.txt 地图列表文件,也就是当服务器运行的时候,就只会在这个文件中有的地图之间从上到下运行,
de_st2
de_inferno
de_cbble
de_train
de_nuke
de_cpl_mill
de_aztec
de_st
从第一个到最后一个,然后在循环
motd.txt 这个文件比较特殊,这个就是当玩家进入你的服务器的时候,看到的第一个欢迎logo,它是以文本文件形式存在,但是确实一个html网页的源码,如果你有网页制作的功底的话,可以做得很好看,在此我就献丑,放一下我对这个文件修改以后的效果给大家看看:

如果你没那个功底,你可以找会的朋友帮你做一个,不是很难。
接下来的就是问最多的插件问题了,点击这里下载用到的文件
解压到cstrike的addons目录下,完成后目录结构如下:

第一个amxmodx 是amx插件的主文件夹,其下的configs 是一些插件的设置amxx.cfg 是一些amx的设置,plugins.ini是插件的调用配置管理,users.ini 是用户配置文件,用户的一些权限都是在这里设置的。amxmodx\doc 里面有个帮助文件,那里可以学到更多关于amx的管理和使用,amxmodx\plugins 是一些插件的源码文件的存放位置,大致介绍各个文件夹放在什么位置,等下偶会详细解释最主要的amx.cfg 和plugins.ini还有 users.ini的配置!

addons\Booster 这个是服务器加速插件,推荐一定要开启,那样服务器才能运行在一个高速的状态下;开启于关闭我会在后面介绍;

addons\cdeath 这个是CD反作弊服务器版的文件,很多朋友都不知道怎么样使用,偶等下在介绍吧!

addons\metamod 下的 plugins.ini addons\amxmodx\configs 下的 plugins.ini 又不同,这个plugins.ini 是所有插件的基础,另外一个只是针对amx加载的插件!

所以接下来可能要花很长的时间和篇幅对以下插件进行讲解:

addons\metamod\plugins.ini
addons\amxmodx\configs\amxx.cfg
addons\amxmodx\configs\plugins.ini
addons\amxmodx\configs\users.ini

现在我开始讲解一下所有插件的根基,addons\metamod\plugins.ini 的配置吧!

win32 addons\booster\booster_mm.dll 这个是服务器的加速插件,如果不加载这个东西的话,服务器最高不超过99Fps
;win32 dlls\chicken_mm.dll 这个是一个娱乐用的,也就是变成小鸡的插件。
;win32 addons\amx\dlls\amx_mm.dll 这个是加载amx的插件,如果不加载的话,很多基于amx的插件就用不了,比如死亡
;win32 addons\amx\dlls\fun_ms.dll 这个也是死亡和魔兽服务器中必须要用到的插件
;win32 addons\amx\dlls\csstats_ms.dll 这个也是死亡和魔兽服务器中必须要用到的插件
;win32 addons\amx\dlls\war3_ms.dll 这个是Amx的一个子插件,魔兽插件,可以在该plugins.ini 中配置,也可以在另外那个plugins.ini (addons\amxmodx\configs\plugins.ini )中加载但是就只能加载一个,重复的不算
;win32 dlls\monster_mm.dll 这个也是Amx的一个子插件,同样可以在这里配置也可以在另外那个 plugins.ini 中配置
;win32 addons/wwcl/dlls/pcawwclconfig_mm.dll WWCL 这个是一个规则插件,某种程度上也能防到某些玩家作弊
win32 addons/cdeath/cdmod.dll 这个就是大名鼎鼎的 Cheating-Death CD反作弊的插件,不过现在最新的4.29注意加载的话,会使服务器出错,在后面我会详细介绍一下最新版本的CD如何加载!

所有的插件以“;”(半角模式下的分号) 开启和关闭 也就是说,你要开启某个插件的话,就不能在该行之前用这个符号,如果不想开启某个插件的话,就在该行 即win32的前面,加上一个这个,就能让那个插件不运行了!
比如:
我想屏蔽ChickenMod 1.0.5.1插件,只需要在win32 dlls\chicken_mm.dll这行行首加入;注释符号屏蔽掉这行即可,即将win32 dlls\chicken_mm.dll改为;win32 dlls\chicken_mm.dll
这样我们在启动服务器时,服务器就不会启动ChickenMod 1.0.5.1插件插件。如果想再次开启ChickenMod 1.0.5.1插件,只需要把此行行首的;符号去掉并保存plugins.ini文件即可。其他插件的屏蔽/开启也是如此。

也许大家这里看不是很明白,我找了张图出来,大家看看参考下:

这个图不是安装了Dcoo这个版本的时候带的,是小凡cs1.5纪念版中有的,放出来的意义是让大家更直观的了解各个命令行的意思!
该版本下的这个文件的内容太简单了,不过基本功能倒是没丢失,如下

; 说明:
; 开启某个模块请去掉前面的分号
; 关闭某个模块请在前面加上分号

;////////////////////////////////////////////////////////////
;// --------------------- Booster ------------------------ //
;////////////////////////////////////////////////////////////
; 请按自己的CPU选择你需要的程序, 以下2个只能开启一个
win32 addons/Booster/booster_mm.dll
;win32 addons/Booster/booster_686_mm.dll

;////////////////////////////////////////////////////////////
;// ------------------- AMX Mod X ------------------------ //
;////////////////////////////////////////////////////////////
win32 addons/amxmodx/dlls/amxmodx_mm.dll
; linux 请按自己的CPU选择你需要的程序, 以下2个只能开启一个
linux addons/amxmodx/dlls/amxmodx_mm_i386.so
;linux addons/amxmodx/dlls/amxmodx_mm_amd64.so

;////////////////////////////////////////////////////////////
;// --------------- Cheating Death ----------------------- //
;////////////////////////////////////////////////////////////
; win32 请按自己的CPU选择你需要的程序, 以下5个只能开启一个
win32 addons/CDeath/cdmod.dll
;win32 addons/CDeath/cdmod_i486.dll
;win32 addons/CDeath/cdmod_i586.dll
;win32 addons/CDeath/cdmod_k7.dll
;win32 addons/CDeath/cdmod_p4.dll
; linux 请按自己的CPU选择你需要的程序, 以下5个只能开启一个
linux addons/CDeath/cdmod_i386.so
;linux addons/CDeath/cdmod_i586.so
;linux addons/CDeath/cdmod_i686.so
;linux addons/CDeath/cdmod_k7.so
;linux addons/CDeath/cdmod_p4.so

有点乱,大家就只要注意没分号的部分吧!linux不在本帖的讨论范围内,偶对linux的服务器不了解,虽然现在也在学习中
接下来就是amxx.cfg和plugins.ini 还有users.ini 的配置讲解了,先从amxx.cfg开始好了:)

其实amxx.cfg文件里面已经有很多的提示了,我就大概说一下吧!先来看偶安装的这个Dcoo中amxx.cfg各部分的参数:

// AMX MOD X 配置文件.
echo Executing AMX Mod X Configuration File

// 用户的默认权限,可以用此定义为普通的玩家也加上各种权限,相关权限请参考uers.ini文件的权限说明
这个就是玩家的默认权限,相关的权限在users.ini 中有设置
// AMX的远程登陆总密码(所有op都一样),首次配置时必须修改。
// setinfo信息会将密码保存在config.cfg文件里。(为了避免泄露密码,请在结束游戏后删除自己的config.cfg)
// (管理员登陆时请控制台里输入 setinfo _pw "管理员密码",或者直接写入自己的config.cfg文件中)
amx_password_field "_pw" 这个就是amx远程OP的密码,一定要改的,别和server.cfg中的密码混淆就行
// 服务器的记录模式选项
// 0 - 禁止权限登陆,所有的玩家都没有任何的权限
// 1 - 正常模式
// 2 - kick所有users.ini文件上无帐号的玩家
amx_mode 1 服务器的记录模式,一般默认就行了。
// 在op执行某个命令时是否显示op的行动
// 0 - 关闭
// 1 - 不显示OP的行动
// 2 - 显示OP的行动
amx_show_activity 2
// 服务器定时在下方滚动显示服务器信息,以秒为单位
amx_scrollmsg "欢迎来到 %hostname% -- 该服务器使用了 AMX Mod X 管理插件" 600
这里就是一些在游戏中看到的滚动的字的设置位置,可以多设置几条,但是要注意最后那里时间,不能相同,否则就只显示头一条!
// clanmod风格的服务器MOTD彩色信息,后面的颜色RGB代码可以自己修改
amx_imessage "欢迎来到 %hostname%" "000255100"
amx_imessage "这个服务器使用了 AMX Mod X 管理插件\n下载地址 http://www.amxmodx.org" "000100255"
这个就是在游戏中,时不时显示在屏幕中央的一些文字,注意是不滚动的哦!同样也可以多写几条,也要注意时间,最后那些 RGB代码 则是这里文字在游戏中显示的颜色,具体的代码我也不太了解,毕竟偶只对游戏有兴趣,偶又不是做设计一天和那些颜色打交道的。
// 信息显示的间隔时间,以秒为单位
amx_freq_imessage 180

// 这个选项聊天间隔时间的设置,防止server因聊天信息过多导致lag,以秒为单位)
amx_flood_time 0.75
// 预留的管理员通道数,没有权限的玩家进入此通道时会被kick(具体细节看插件原码)
amx_reservation 0
// 剩余时间显示的设置
// a - 以文本方式显示
// b - 用语音来提示
// c - 只使用语音,不显示文本
// d - 不显示详细的时间格式,仅用语音提示
// e - 如果时间小于现在的设置,用语音和文本进行提示
amx_time_display "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"
// 当用户使用 "say thetime" 和 "say timeleft" 时使用语音通报
amx_time_voice 1
// 两个vote事件之间的最小延迟时间,以秒为单位。(为了防止恶意投票,请将间隔设置长些)
amx_vote_delay 10
// 一个VOTE事件持续的最长时间
amx_vote_time 10
// 显示玩家投票的选择结果
amx_vote_answers 1
// 投票成功所需要的百分比数(0.40为超过40%即投票成功,以此类推)
amx_votekick_ratio 0.40
amx_voteban_ratio 0.40
amx_votemap_ratio 0.40
amx_vote_ratio 0.02
// 最长可以延长正在游戏的地图的时间(好象是以分钟为单位)
amx_extendmap_max 90
// 每次默认延长15分钟
amx_extendmap_step 15
// 排行模式
// 0 - 昵称
// 1 - authid
// 2 - ip
csstats_rank 1
// 排行文件最大尺寸
csstats_maxsize 3500
// 显示HUD统计的持续时间
amx_statsx_ration 12.0
// HUD统计信息在冻结时间里的显示时长
// 如设为负数表示在冻结时间结束前多少秒清除HUD统计信息
amx_statsx_freeze -2.0
//设定为0时,将不允许客户端选择语言
amx_client_languages 1
// 插件调试模式
// 0 - 不调试
// 1 - 选择模式,在 plugins.ini 中需要调试的插件后加 debug
// 2 - 全部插件都在调试模式下
// 注意 - 调试模式下会影响 JIT (Just In Time)运行
amx_debug 1

基本就注意,因为这个文件本身已经带了详细的注解,偶有的解释还显得多余了呢!
现在来看看 users.ini 中的一些配置好了!

该文件和amxx.cfg在同一个目录下,目录中内容如下:

; 用户配置文件
; 文件位置: $moddir/addons/amxmodx/configs/users.ini
; 每行前的 ; 表示注释该行
; 权限标记:
; a - immunity (不能被 踢/封/处死/伤害 或者其他的命令影响)
; b - reservation (可通过预留通道加入服务器)
; c - amx_kick command (拥有KICK权限)
; d - amx_ban and amx_unban commands (拥有ban的权限)
; e - amx_slay and amx_slap commands (拥有强行杀死某人的权限)
; f - amx_map command (拥有更换地图的权限)
; g - amx_cvar command (可以设置amx的设置参数,但并不是所有的都可以)
; h - amx_cfg command (可以加载某个AMX的CFG设置文件权限)
; i - amx_chat and other chat commands (可以以管理员身份发布消息)
; j - amx_vote and other vote commands (可以发起一个投票事件)
; k - access to sv_password cvar (可以更改为服务器加密码)
; l - access to amx_rcon command and rcon_password cvar (by amx_cvar command)(可以用RCON命令来以OP身份登陆服务器)
; m - custom level A (自定义管理级别,为附加的其他插件预留的权限等级)
; n - custom level B
; o - custom level C
; p - custom level D
; q - custom level E
; r - custom level F
; s - custom level G
; t - custom level H
; u - menu access (拥有打开MENU管理菜单的权限)
; z - user (普通用户权限)
; 帐号类型:
; a - disconnect player on invalid password (此用户的id进入服务器时需要检测密码)
; b - clan tag (此用户的id带有战队标签)
; c - this is steamid/wonid (此用户*steamid/wonid进入服务器)
; d - this is ip (此用户*ip进入服务器)
; e - password is not checked (only name/ip/steamid needed)(此用户进入时不检查密码,只需要id或者ip或者steamid)
; 密码:
; 在自己的autoexec.cfg里加入: setinfo _pw "<管理员密码>"
; 此处 _pw 代表的是参数 amx_password_field 设定的密码
; 管理员帐号格式:
; <名字|ip|steamid> <管理员密码> <权限等级> <帐号类型>

‘贰’ 暗黑破坏神2毁灭之王BIN文件修改器V1.1Final怎么用

那是源码写脚本用的。用于暗黑的MOD制作及私服战网bin和ini文件的修改制作。需要绝对的电脑基础。不懂二进制的新手建议不要涉及。

‘叁’ 我想利用校园网构建一个WAR3战网,不知如何弄.

目前可以用于架设魔兽争霸3的服务器软件主要有2种:PvPGN 1.1.6和WarForge Java 0.0.9.0

其中使用WarForge建立的服务器需要Java语言解释器和Mysql数据库的支持,对一般的玩家计算机知识要求较高,所以主要以介绍如何安装PvPGN战网服务器为主。

1、PVPGN软件介绍
PvPGN,全名为Player-vs-Player Gaming Network Server,是一些业余爱好者在原来的服务器软件bnetd的源代码的基础上进行改进扩展而来。

PvPGN是目前唯一的支持多游戏的免费开放源代码服务器软件,除了对暴雪的经典系列游戏--星际争霸/Diablo2/魔兽争霸2/魔兽争霸3 的支持外,将来还会对对新出的其它公司的游戏如Dungeon Siege, Neverwinter Nights, Unreal Tournament 2003等游戏提供支持,前景非常看好。

2、系统需求
PvPGN安装环境要求:
Windows 98/me/Nt/2000/XP

3、下载并安装PvPGN

首先,我们要下载PvPGN软件进行安装,软件可以在以下地址找到:
http://pvpgn.ostdb.com
http://www.trendecide.com/warcraft/downloads/
http://amadeus.trendecide.com/index.html(点左边的FILEZ进入下载列表页)
下载PvPGN1.1.6 rc1和PvPGN 1.1.6 rc2这两个文件,下载完后先安装前者,然后运行后者升级到1.1.6 rc2。

4、运行前的设置(可选,如果不作以下修改,服务器可以用原来的默认设置正常运行)

我们先进入PvPGN的目录,找到bnetd.conf文件,这个是PvPGN的设置文件。用记事本等文本编辑器打开它,修改如下部分以对服务器进行设置:

versioncheck = true 如果你想让服务器支持1.09版的星际争霸,请设为false

new_accounts = true 是否允许注册新帐号,如果你不想在提供新用户注册功能,请设为false。

w3routeaddr="xxx.xxx.xxx.xxx:6200" 请将xxx.xxx.xxx.xxx设为你的外部IP号(如果在建内网用的服务器可设内网IP)以使魔兽争霸的Play Game生效

location = "USA"
description = "PvPGN Server"
url = "http://www.PvPGN.org";
contact_name = "PvPGN Server Admin"
contact_email = "PvPGN Server" 这五项分别是你的服务器的位置,描述,网页地址,联系人姓名和联系邮件,可自设。

其他选项保持默认即可,如果需要改变,请理解注解中说明的参数含义。

修改完毕后保存退出,然后我们再找到如下txt文件进行修改:

confnews.txt 这是PvPGN服务器的消息文件,可以在用户登录时显示一些消息,大家可以自己写一些公告啊什么的,也可以在服务器运行期间修改,向玩家发送最新的消息。

confbnmotd.txt 这是服务器登录时的问候信息文件,当一个玩家登录时向他发出的问候消息存放在这里,文本中的%l表示用户名,%v表示版本号,%u,%g,%c分别表示在线的用户数,游戏数和频道数。

Filestermsofservice-default.txt
Filestermsofservice-default.txt 这两个是注册新帐号前显示的terms of service,具体服务器用哪个和登录用户的语言版本有关,要改就同时改。

Filesnewaccount-default.txt
Filesnewaccount-enUS.txt 这两个是注册新帐号时右边显示的信息,具体服务器用哪个和登录用户的语言版本有关,要改就同时改。

Filestos.txt
Filestos_DEU.txt
Filestos_usa.txt
Filestos-unicode_USA.txt 这四个是登录进服务器后显示在右边的LEGAL NOTES和TERMS OF SERVICE,具体服务器用哪个和登录用户的语言版本有关,要改就同时改。
如果要支持中文版的D2,请建立tos-unicode_CHI.txt,并填入Terms of service。

如果你需要支持最新的游戏版本1.02,你需要修改你的conf目录下的versioncheck文件,http://pvpgn.ostdb.com/versioncheck102c.zip 这时已经修改好的文件,你可以直接下载并覆盖原有文件。游戏的1.02升级补丁你可以在http://www.blizzard.com或http:...attle.net找到。

最后是修改ad000000?.mng,这些都是mng格式的banner文件(就是登录服务器后显示在上方的横幅),可以通过相关工具修改,本文不浪费篇幅介绍。

5、运行PvPGN程序

运行PvPGN Standard.exe即可开启服务器,你可以把它最小化到系统栏图标。运行之后服务器就处于激活状态,别的玩家就可以通过网络连接PvPGN了。

6.PvPGN的界面操作

1)界面概览
如图上面是菜单,左边是服务器信息栏,显示服务器信息,右边是在线用户栏,显示当前的在线用户。

2)菜单
Server菜单下有Save Accounts(保存所有帐户),Restart(重新启动服务),Shutdown(关闭服务),Exit(退出)4个功能。
Admin Commands菜单下有Announce和Admin Control Panel两个可用功能,Announce是用来向服务器内的所有用户发送公告的;Admin Control Panel的界面中,Kick表示把人踢出服务器,Ban表示禁止登录,Premote to Administrator表示设为管理员,Premote to Moderator表示设为频道主持人,Give the rights to make announcements表示给予发送公告的权利,在左边的输入框输入姓名,在右边勾选好你要对这个用户进行的操作,然后点击Execute按钮就可以执行相应的操作。
View菜单下有Clear Window(清空左边的信息栏)和Update Userlist(立即更新在线用户状况)两个功能。
Server Configuration菜单下只有一个功能,就是用写字板打开confbnetd.conf文件进行修改,记得修改后要用Server菜单下的Restart来重启服务器以使设置修改生效。

善用操作界面的功能将可以让你轻松地管理PvPGN服务器。

7、修改游戏设置使其能连上服务器
要连接你刚完成架设的魔兽争霸3服务器,你需要修改你的战网连接地址,你可以在以下地址找到最新版的战网地址修改器:
http://soar.l33t.ca/download/BNetEditor.zip 或
http://home.online.tj.cn/user/soar/.../BNetEditor.zip
下载后解开压缩文件,你会得到
BNetEditor.exe
Gateway.list
ServerIntro
What‘s new.txt
说明.txt
等5个文件

运行BNetEditor.exe画面如下:
按下"添加”按钮,在出现的对话框中添入 名称:你自己取的服务器名字;时区:服务器所在时区(可以随便添或者添8);地址:服务器的IP地址,填写完点击确定,你的服务器便出现在现有服务器列表中。

该软件还可以修改Diablo2、Starcraft等游戏的连接地址,具体操作方法可以看附带的说明.txt,并且该软件提供了其他几个国内的私人服务器地址可供选择。

8、连接服务器
你需要使用连接PvPGN专用的Loader才可以进入你的魔兽争霸3游戏,该程序可以在这里找到:
http://pvpgn.ostdb.com/aCiD-War3_Adaptive_Loader.zip
解开压缩文件,将其中的Loader文件复制到你的魔兽争霸3安装目录,在war3.exe中加入-pvpgn参数,运行即可。进入游戏后点击Battle.net右边的放大镜标记,选择需要加入的服务器,你可以看到我们刚才添加的服务器My Server已经出现在列表中,选择它,并点击OK确定。

然后点击Battle.net按钮,如果上述服务器操作都正确完成的话,你可以看到这样的登陆画面。

点击New Account建立一个新的账号,或者直接输入用户名和密码使用一个已经存在的账号。然后点击Logon按钮,然后你就进入了自己的Battle.net。
快点告诉你的朋友们吧,将他们都连接上你的服务器开始一场激烈的战斗。

也许你的服务器架设没有那么顺利进行,那么请你仔细看看每一步的操作。多尝试几次,相信你会成功的。

注:PVPGN也可以使用MYSQL数据库,使用MYSQL数据库玩家的战绩资料会保存到数据库中。 不用的话,以文本方式保存玩家资料,无法使用排行版功能。

暴雪小型服务器的搭建及其配置

首先要明白的是这篇文章是关于Warcraft3,而不是WOW的。

-------------------------------------------------------------------------------------------------

暴雪凭借着Battle.net免费服务器和暴雪公司的完美游戏让全世界的玩家走到了一起。Battle.net支持暗黑破坏神、星际争霸和魔兽争霸,其完善的玩家匹配系统、积分排名系统和聊天系统使得成为世界上最大的免费游戏服务器。

-------------------------------------------------------------------------------------------------

下面我来教大家搭建最基本的Battle.net(不包括WEB排名系统)
俗话说:“工欲善其事,必先利其器。”我们首先要如下几款软件:
1.PVPGN(Player-vs-Player Gaming Network Server)
我们这里使用1.80RC2版本,这个版本能完美支持WAR3 1.20c
2.Bnedit(编辑服务器地址用)
3.wc3 loader(启动魔兽进第三方战网的软件)
4.花生壳(动态IP解析用)

-------------------------------------------------------------------------------------------------

服务器安装方法:下载解压缩后双击“安装服务.bat”安装基本控制服务

客户端修改方法:下载解压缩BNetEditor,双击运行,然后依照图片所示依次进行

运行魔兽的方法:下载解压缩w3l,双击运行即可

------------------------------------------------------------------------------------------------

下面根据你搭建服务器的目的分为三种:
一、单机版
既然要架设服务器,单机版假设出来也没意思,搜索不到别人,只能自己锻炼下。
此版本默认服务器IP即为127.0.0.1,无需做修改就可以上战网

二、局域网
首先确保你的防火墙软件没有阻止PVPGN和WAR3访问网络,并且你也知道自己的IP地址(如果是自动获得,点“开始”-“运行”-输入“ipconfig”就可以知道自己的IP),在PVPGN文件夹下有个CONF文件夹
打开后会看到一堆文件,这些是服务器的配置文件,我们找到其中的d2cs.conf、 d2dbs.conf 、bnetd.conf 、realm.conf,用记事本打开即可,然后运用查找替换把“127.0.0.1”全部替换成自己的IP地址,保存退出。
要注意的客户端的修改,BNetEditor里的IP地址都要是你的IP(即服务器IP)

三、外网
同样首先是防火墙的问题。
根据上网方式又可以分几种:
1、ADSL在电脑上拨号上网,这种上网方式都有公网的IP地址,所以你只需做的去下载个花生壳软件
下载地址:http://www.oray.net/ 详细配置请见http://www.oray.net/
这里服务器IP就要改成你申请的二级域名,如www.turnjian.vicp.net 客户端同样如此
2、ADSL路由上网,这种方式你的IP一般为固定IP如192.168.1.5,这样就需要在路由器上打开端口映射功能,详细信息http://www.magicwinmail.com/technic_nat.htm http://bbs.leobbs.com/cgi-bin/topic.cgi?forum=68&topic=2854&show=0 (需注意魔兽端口)
3、小区宽带、有线通等方式比较特殊,详细请联系当地ISP(请不要告诉他们你是要建设私服。。)

下面介绍下服务器的配置:
我们先进入PvPGN的目录,找到bnetd.conf文件,这个是PvPGN的设置文件。用记事本等文本编辑器打开它,修改如下部分以对服务器进行设置:

versioncheck = true 服务器&游戏版本版本检查

new_accounts = true 是否允许注册新帐号,如果你不想在提供新用户注册功能,请设为false。

w3routeaddr="xxx.xxx.xxx.xxx:6200" 请将xxx.xxx.xxx.xxx设为你的外部IP号(如果在建内网用的服务器可设内网IP)以使魔兽争霸的Play Game生效

location = "USA"
description = "PvPGN Server"
url = "http://www.PvPGN.org";
contact_name = "PvPGN Server Admin"
contact_email = "PvPGN Server" 这五项分别是你的服务器的位置,描述,网页地址,联系人姓名和联系邮件,可自设。

其他选项保持默认即可,如果需要改变,请理解注解中说明的参数含义。

修改完毕后保存退出,然后我们再找到如下txt文件进行修改:

confnews.txt 这是PvPGN服务器的消息文件,可以在用户登录时显示一些消息,大家可以自己写一些公告啊什么的,也可以在服务器运行期间修改,向玩家发送最新的消息。

confbnmotd.txt 这是服务器登录时的问候信息文件,当一个玩家登录时向他发出的问候消息存放在这里,文本中的%l表示用户名,%v表示版本号,%u,%g,%c分别表示在线的用户数,游戏数和频道数。

Filestermsofservice-default.txt
Filestermsofservice-default.txt 这两个是注册新帐号前显示的terms of service,具体服务器用哪个和登录用户的语言版本有关,要改就同时改。

Filesnewaccount-default.txt
Filesnewaccount-enUS.txt 这两个是注册新帐号时右边显示的信息,具体服务器用哪个和登录用户的语言版本有关,要改就同时改。

Filestos.txt
Filestos_DEU.txt
Filestos_usa.txt
Filestos-unicode_USA.txt 这四个是登录进服务器后显示在右边的LEGAL NOTES和TERMS OF SERVICE,具体服务器用哪个和登录用户的语言版本有关,要改就同时改。
如果要支持中文版的,请建立tos-unicode_CHI.txt,并填入Terms of service。

如果你需要支持最新的游戏版本1.20,你需要修改你的conf目录下的versioncheck文件。游戏的升级补丁你可以在http://www.blizzard.com找到。

最后是修改ad000000?.mng,这些都是mng格式的banner文件(就是登录服务器后显示在上方的横幅),可以通过相关工具修改。

最后再补充说明下为什么不用WEB方式,WEB方式就是可以方便找回密码,查看排名,我们建设这个服务器的目的就是为了娱乐,现在大家大部分操作系统版本是XP,XP不是服务器版,虽然也有IIS,但是只有10个并发连接。若要排名还要用SQL或MYSQL等数据库,这样增加了服务器的负担和危险性。
WAR3的免费服务器现在大致分为两种:
1.WarForge Java 0.0.9.0 。
2.PVPGN 1.1.5。
我们这里介绍的是PVPGN1.1.5 游戏战网服务器,我认为PVPGN1.1.5是目前免费战网比较稳定和成熟的,几乎没有错误,所以大家用这个没错的(听起来象广告?),好!哪儿去找这个软件呢?在 http://www.trendecide.com/warcraft/downloads/
可以找到这个软件,如果你是用的WINDOWS操作系统就下载他最上面的那个PVPGN1.1.5-WIN32 就行了,如果你用的是LINUX,就下载PVPGN1.1.5-LINUX,文件都不大,5M多一点点。(国外网站,速度有点慢...)
OK,现在下载完了,用WINZIP打开一看,只有一个EXE文件,对了,运行他就开始安装服务器啦,安装中几乎什么也不用选就完了,打开开始菜单一看,多了个PVPGN,里面有PvPGN Standard Edition(PVPGN 标准版),PvPGN Elite Edition(PVPGN 精华版),标准版和精华版不同的地方在于对用户名等数据存储方式不同,标准版是用的文档方式,而精华版用的是MYSQL方式存储,MYSQL对数据存储、查询、管理都比文档方式好得多,所以软件作者和我都极力推荐使用精华版。
先讲讲标准版的配置方法:双击 PvPGN Standard Edition 图标 ,出现的窗口会出现 “failed to initialize network (exiting)”的出错提示,不要紧,我们选Server Configurationg选项,会打开一个叫bnetd.conf的文本文件,我们找到 w3routeaddr 这一行,把 “your ip here”改成你机器的IP地址,保存后关掉服务器,然后再双击 PvPGN Standard Edition 图标,把服务器打开,如果没有出错信息那么就恭喜你,你的服务器已经架设通了,但是要注意哦,现在你的标准版的服务器还不能保存账号名和信息,要在你的PVPGN安装目录下面找到VAR目录,再在里面建立三个目录:bnmail 、Reports、Users ,其中USERS目录就是保存用户信息的目录。
然后讲讲精华版的配置方法:前面和标准版的配置方法一样不同的是需要下载MYSQL的安装文件了,下载地址为 http://www.mysql.com/Downloads/MySQ...3.23.52-win.zip
下完后用WINZIP打开双击就可以安装了,安装完后WIN2K系统运行 \MYSQL\BIN\mysqld-nt.exe 让系统自动运行 MYSQL 数据库,然后把这个目录下的 libmySQL.dll 拷贝到 WINNT\SYSTEM32目录下,再下载PVPGN的数据库创建和更新软件 http://www.nerdtopia.org/pvpgn/114b...vPGNDBAC206.zip 安装好PvPGNDBA 后就开始创建魔兽争霸的基本表,如果是第一次运行PvPGN DB Admin Console就会出现一个对话框让你配置如何连接数据库,在
HOSTNAME :locahost (MYSQL 主机的IP地址,一般不用修改)
MYSQL PORT: 3306 (MYSQL 的连接端口,不用修改)
MYSQL USERNAME:ROOT (MYSQL 的管理员账号)
MYSQL PASSWORD: (ROOT 用户的密码,才安装的不用填入)
GIVE DATABASE A NAME:(这是给将要创建的数据库取个名字,可以随便填入,比如 PVPGNDB)。
配置完后选中NEW DB INSTALL再按GO,如果出现了 You database has been created successfully 的对话框,就表示你的数据库已经建立好了,最后就是在Server Configurationg配置中打开bnetd.conf文件,让服务器和MYSQL数据库连接起来,修改bnetd.conf最下面的
mysql_host = "localhost"(MYSQL 主机的IP地址,一般不用修改)
mysql_account = "root" (MYSQL 的管理员账号)
mysql_password = "root" (ROOT 用户的密码,和上面一样)
mysql_sock = "3306" (MYSQL 的连接端口,不用修改)
mysql_dbname = "PVPGNDB"(就是你创建的数据库的名字)
如果出现
You are currently Running PvPGN Version 1.1.5
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Make sure to visit:
http://www.pvpgn.org
We can also be found on: irc.pvpgn.org
Channel: #pvpgn
Server is now running.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
的字样,那么你的精华版就可以正常使用啦。
是如何把你的服务器加到中国魔兽争霸联盟服务器列表中:
_在bnetd.conf找到如下行并改为你自己的信息: (请注意PvPGN的设置必须含引号)
______location = "服务器的地理位置"
______description = "服务器描述"
______url = "服务器主页"
______contact_name = "联系人"(本服务器并不显示该项信息)
______contact_email = "联系邮件"
在bnetd.conf找到track开头的一行并改为:
______track = 1(1-5都可以,太大不好)
______找到trackaddrs开头的一行并改为:
______trackaddrs = "61.172.250.144"
完成以上步骤后,重启你的服务器,你的服务器信息便会出现在中国魔兽争霸联盟服务器列表中了。
客户端连接方法:游戏方式:
下载http://uws.rpwt.org/download/war3_102.rar (1.02升级包)
安装后桌面会出现三个图标,选WARCRAFT III PVPGN 这个图标 ,将来就用它运行你的游戏
然后下载http://bnet.ali213.net/W3/denglu/BNG...面的WARCRAFT III,添加一个GATEWAY,填入想要去的战网IP再选为默认,最后进入游戏就可以连接上战网啦。

‘肆’ 端游,手游服务端常用的架构是什么样的

端游、手游服务端常用的架构是什么样的?
类型1:卡牌、跑酷等弱交互服务端卡牌跑酷类

因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP服务器:

登录时可以使用非对称加密(RSA, DH),服务器根据客户端uid,当前时间戳还有服务端私钥,计算哈希得到的加密 key 并发送给客户端。之后双方都用 HTTP通信,并用那个key进行RC4加密。客户端收到key和时间戳后保存在内存,用于之后通信,服务端不需要保存 key,因为每次都可以根据客户端传上来的 uid 和 时间戳 以及服务端自己的私钥计算得到。用模仿 TLS的行为,来保证多次 HTTP请求间的客户端身份,并通过时间戳保证同一人两次登录密钥不同。

每局开始时,访问一下,请求一下关卡数据,玩完了又提交一下,验算一下是否合法,获得什么奖励,数据库用单台 MySQL或者 MongoDB即可,后端的 Redis做缓存(可选)。如果要实现通知,那么让客户端定时15秒轮询一下服务器,如果有消息就取下来,如果没消息可以逐步放长轮询时间,比如30秒;如果有消息,就缩短轮询时间到10秒,5秒,即便两人聊天,延迟也能自适应。

此类服务器用来实现一款三国类策略或者卡牌及酷跑的游戏已经绰绰有余,这类游戏因为逻辑简单,玩家之间交互不强,使用 HTTP来开发的话,开发速度快,调试只需要一个浏览器就可以把逻辑调试清楚了。

类型2:第一代游戏服务器 1978

1978年,英国着名的财经学校University of Essex的学生 Roy Trubshaw编写了世界上第一个MUD程序《MUD1》,在University of Essex于1980年接入 ARPANET之后加入了不少外部的玩家,甚至包括国外的玩家。《MUD1》程序的源代码在 ARPANET共享之后出现了众多的改编版本,至此MUD才在全世界广泛流行起来。不断完善的 MUD1的基础上产生了开源的 MudOS(1991),成为众多网游的鼻祖:

MUDOS采用 C语言开发,因为玩家和玩家之间有比较强的交互(聊天,交易,PK),MUDOS使用单线程无阻塞套接字来服务所有玩家,所有玩家的请求都发到同一个线程去处理,主线程每隔1秒钟更新一次所有对象(网络收发,更新对象状态机,处理超时,刷新地图,刷新NPC)。

游戏世界采用房间的形式组织起来,每个房间有东南西北四个方向可以移动到下一个房间,由于欧美最早的网游都是地牢迷宫形式的,因此场景的基本单位被成为 “房间”。MUDOS使用一门称为LPC的脚本语言来描述整个世界(包括房间拓扑,配置,NPC,以及各种剧情)。游戏里面的高级玩家(巫师),可以不断的通过修改脚本来为游戏添加房间以及增加剧情。早年 MUD1上线时只有17个房间,Roy Trubshaw毕业以后交给他的师弟 Richard Battle,在 Richard Battle手上,不断的添加各种玩法到一百多个房间,终于让 MUD发扬光大。

用户使用 Telnet之类的客户端用 Tcp协议连接到 MUDOS上,使用纯文字进行游戏,每条指令用回车进行分割。比如 1995年国内第一款 MUD游戏《侠客行》,你敲入:”go east”,游戏就会提示你:“后花园 - 这里是归云庄的后花园,种满了花草,几个庄丁正在浇花。此地乃是含羞草生长之地。这里唯一的出口是 north。这里有:花待 阿牧(A mu),还有二位庄丁(Zhuang Ding)”,然后你继续用文字操作,查看阿牧的信息:“look a mu”,系统提示:“花待 阿牧(A mu)他是陆乘风的弟子,受命在此看管含羞草。他看起来三十多岁,生得眉清目秀,端正大方,一表人才。他的武艺看上去【不是很高】,出手似乎【极轻】”。然后你可以选择击败他获得含羞草,但是你吃了含羞草却又可能会中毒死亡。在早期网上资源贫乏的时候,这样的游戏有很强的代入感。

用户数据保存在文件中,每个用户登录时,从文本文件里把用户的数据全部加载进来,操作全部在内存里面进行,无需马上刷回磁盘。用户退出了,或者每隔5分钟检查到数据改动了,都会保存会磁盘。这样的系统在当时每台服务器承载个4000人同时游戏,不是特别大的问题。从1991年的 MUDOS发布后,全球各地都在为他改进,扩充,退出新版本,随着 Windows图形机能的增强。1997游戏《UO》在 MUDOS的基础上为角色增加的x,y坐标,为每个房间增加了地图,并且为每个角色增加了动画,形成了第一代的图形网络游戏。

因为游戏内容基本可以通过 LPC脚本进行定制,所以MUDOS也成为名副其实的第一款服务端引擎,引擎一次性开发出来,然后制作不同游戏内容。后续国内的《万王之王》等游戏,很多都是跟《UO》一样,直接在 MUDOS上进行二次开发,加入房间的地图还有角色的坐标等要素,该架构一直为国内的第一代 MMORPG提供了稳固的支持,直到 2003年,还有游戏基于 MUDOS开发。虽然后面图形化增加了很多东西,但是这些MMORPG后端的本质还是 MUDOS。随着游戏内容的越来越复杂,架构变得越来越吃不消了,各种负载问题慢慢浮上水面,于是有了我们的第二代游戏服务器。

类型3:第二代游戏服务器 2003

2000年后,网游已经脱离最初的文字MUD,进入全面图形化年代。最先承受不住的其实是很多小文件,用户上下线,频繁的读取写入用户数据,导致负载越来越大。随着在线人数的增加和游戏数据的增加,服务器变得不抗重负。同时早期 EXT磁盘分区比较脆弱,稍微停电,容易发生大面积数据丢失。因此第一步就是拆分文件存储到数据库去。

此时游戏服务端已经脱离陈旧的 MUDOS体系,各个公司在参考 MUDOS结构的情况下,开始自己用 C在重新开发自己的游戏服务端。并且脚本也抛弃了 LPC,采用扩展性更好的 Python或者 Lua来代替。由于主逻辑使用单线程模型,随着游戏内容的增加,传统单服务器的结构进一步成为瓶颈。于是有人开始拆分游戏世界,变为下面的模型:

游戏服务器压力拆分后得意缓解,但是两台游戏服务器同时访问数据库,大量重复访问,大量数据交换,使得数据库成为下一个瓶颈。于是形成了数据库前端代理(DB Proxy),游戏服务器不直接访问数据库而是访问代理,再有代理访问数据库,同时提供内存级别的cache。早年 MySQL4之前没有提供存储过程,这个前端代理一般和 MySQL跑在同一台上,它转化游戏服务器发过来的高级数据操作指令,拆分成具体的数据库操作,一定程度上代替了存储过程:

但是这样的结构并没有持续太长时间,因为玩家切换场景经常要切换连接,中间的状态容易错乱。而且游戏服务器多了以后,相互之间数据交互又会变得比较麻烦,于是人们拆分了网络功能,独立出一个网关服务 Gate(有的地方叫 Session,有的地方叫 LinkSvr之类的,名字不同而已):

把网络功能单独提取出来,让用户统一去连接一个网关服务器,再有网关服务器转发数据到后端游戏服务器。而游戏服务器之间数据交换也统一连接到网管进行交换。这样类型的服务器基本能稳定的为玩家提供游戏服务,一台网关服务1-2万人,后面的游戏服务器每台服务5k-1w,依游戏类型和复杂度不同而已,图中隐藏了很多不重要的服务器,如登录和管理。这是目前应用最广的一个模型,到今天任然很多新项目会才用这样的结构来搭建。

人都是有惯性的,按照先前的经验,似乎把 MUDOS拆分的越开性能越好。于是大家继续想,网关可以拆分呀,基础服务如聊天交易,可以拆分呀,还可以提供web接口,数据库可以拆分呀,于是有了下面的模型:

这样的模型好用么?确实有成功游戏使用类似这样的架构,并且发挥了它的性能优势,比如一些大型 MMORPG。但是有两个挑战:每增加一级服务器,状态机复杂度可能会翻倍,导致研发和找bug的成本上升;并且对开发组挑战比较大,一旦项目时间吃紧,开发人员经验不足,很容易弄挂。

比如我见过某上海一线游戏公司的一个 RPG上来就要上这样的架构,我看了下他们团队成员的经验,问了下他们的上线日期,劝他们用前面稍微简单一点的模型。人家自信得很,认为有成功项目是这么做的,他们也要这么做,自己很想实现一套。于是他们义无反顾的开始编码,项目做了一年多,然后,就没有然后了。

现今在游戏成功率不高的情况下,一开始上一套比较复杂的架构需要考虑投资回报率,比如你的游戏上线半年内 PCU会去到多少?如果一个 APRG游戏,每组服务器5千人都到不了的话,那么选择一套更为贴近实际情况的结构更为经济。即使后面你的项目真的超过5千人朝着1万人目标奔的话,相信那个时候你的项目已经挣大钱了 ,你数着钱加着班去逐步迭代,一次次拆分它,相信心里也是乐开花的。

上面这些类型基本都是从拆分 MUDOS开始,将 MUDOS中的各个部件从单机一步步拆成分布式。虽然今天任然很多新项目在用上面某一种类似的结构,或者自己又做了其他热点模块的拆分。因为他们本质上都是对 MUDOS的分解,故将他们归纳为第二代游戏服务器。

类型4:第三代游戏服务器

2007从魔兽世界开始无缝世界地图已经深入人心,比较以往游戏玩家走个几步还需要切换场景,每次切换就要等待 LOADING个几十秒是一件十分破坏游戏体验的事情。于是对于 2005年以后的大型 MMORPG来说,无缝地图已成为一个标准配置。比较以往按照地图来切割游戏而言,无缝世界并不存在一块地图上面的人有且只由一台服务器处理了:

每台 Node服务器用来管理一块地图区域,由 NodeMaster(NM)来为他们提供总体管理。更高层次的 World则提供大陆级别的管理服务。这里省略若干细节服务器,比如传统数据库前端,登录服务器,日志和监控等,统统用 ADMIN概括。在这样的结构下,玩家从一块区域走向另外一块区域需要简单处理一下:

玩家1完全由节点A控制,玩家3完全由节点B控制。而处在两个节点边缘的2号玩家,则同时由A和B提供服务。玩家2从A移动到B的过程中,会同时向A请求左边的情况,并向B请求右边的情况。但是此时玩家2还是属于A管理。直到玩家2彻底离开AB边界很远,才彻底交由B管理。按照这样的逻辑将世界地图分割为一块一块的区域,交由不同的 Node去管理。

对于一个 Node所负责的区域,地理上没必要连接在一起,比如大陆的四周边缘部分和高山部分的区块人比较少,可以统一交给一个Node去管理,而这些区块在地理上并没有联系在一起的必要性。一个 Node到底管理哪些区块,可以根据游戏实时运行的负载情况,定时维护的时候进行更改 NodeMaster 上面的配置。于是碰到第一个问题是很多 Node服务器需要和玩家进行通信,需要问管理服务器特定UID为多少的玩家到底在哪台 Gate上,以前按场景切割的服务器这个问题不大,问了一次以后就可以缓存起来了,但是现在服务器种类增加不少,玩家又会飘来飘去,按UID查找玩家比较麻烦;另外一方面 GATE需要动态根据坐标计算和哪些 Node通信,导致逻辑越来越厚,于是把:“用户对象”从负责连接管理的 GATE中切割出来势在必行于是有了下面的模型:

网关服务器再次退回到精简的网络转发功能,而用户逻辑则由按照 UID划分的 OBJ服务器来承担,GATE是按照网络接入时的负载来分布,而 OBJ则是按照资源的编号(UID)来分布,这样和一个用户通信直接根据 UID计算出 OBJ服务器编号发送数据即可。而新独立出来的 OBJ则提供了更多高层次的服务:

对象移动:管理具体玩家在不同的 Node所管辖的区域之间的移动,并同需要的 Node进行沟通。

数据广播:Node可以给每个用户设置若干 TAG,然后通知 Object Master 按照TAG广播。

对象消息:通用消息推送,给某个用户发送数据,直接告诉 OBJ,不需要直接和 GATE打交道。

好友聊天:角色之间聊天直接走 OBJ/OBJ MASTER。整个服务器主体分为三层以后,NODE专注场景,OBJ专注玩家对象,

GATE专注网络。这样的模型在无缝场景服务器中得到广泛的应用。但是随着时间的推移,负载问题也越来越明显,做个活动,远来不活跃的区域变得十分活跃,靠每周维护来调整还是比较笨重的,于是有了动态负载均衡。动态负载均衡有两种方法,第一种是按照负载,由 Node Master 定时动态移动修改一下各个 Node的边界,而不同的玩家对象按照先前的方法从一台 Node上迁移到另外一台 Node上:

图11 动态负载均衡

Node Master定时查找地图上的热点区域,计算新的场景切割方式,然后告诉其他服务器开始调整,具体处理方式还是和上面对象跨越边界移动的方法一样。但是上面这种方式实现相对复杂一些,于是人们设计出了更为简单直接的一种新方法:

图12 基于网格的动态负载均衡

于网格的动态负载均衡还是将地图按照标准尺寸均匀切割成静态的网格,每个格子由一个具体的Node负责,但是根据负载情况,能够实时的迁移到其他 Node上。在迁移分为三个阶段:准备,切换,完成。三个状态由Node Master负责维护。准备阶段新的 Node开始同步老 Node上面该网格的数据,完成后告诉NM;NM确认OK后同时通知新旧 Node完成切换。完成切换后,如果 Obj服务器还在和老的 Node进行通信,老的 Node将会对它进行纠正,得到纠正的 OBJ将修正自己的状态,和新的 Node进行通信。

很多无缝动态负载均衡的服务端宣称自己支持无限的人数,但不意味着 MMORPG游戏的人数上限真的可以无限扩充,因为这样的体系会受制于网络带宽和客户端性能。带宽决定了同一个区域最大广播上限,而客户端性能决定了同一个屏幕到底可以绘制多少个角色。

从无缝地图引入了分布式对象模型开始,已经完全脱离 MUDOS体系,成为一种新的服务端模型。又由于动态负载均衡的引入,让无缝服务器如虎添翼,容纳着超过上一代游戏服务器数倍的人数上限,并提供了更好的游戏体验,我们称其为第三代游戏服务端架构。网游以大型多人角色扮演为开端,RPG网游在相当长的时间里一度占据90%以上,使得基于 MMORPG的服务端架构得到了蓬勃的发展,然而随着玩家对RPG的疲惫,各种非MMORPG游戏如雨后春笋般的出现在人们眼前,受到市场的欢迎。

类型5:战网游戏服务器

经典战网服务端和 RPG游戏有两个区别:RPG是分区分服的,北京区的用户和广州区的用户老死不相往来。而战网,虽然每局游戏一般都是 8人以内,但全国只有一套服务器,所有的玩家都可以在一起游戏,而玩家和玩家之使用 P2P的方式连接在一起,组成一局游戏:

玩家通过 Match Making 服务器使用:创建、加入、自动匹配、邀请 等方式组成一局游戏。服务器会选择一个人做 Host,其他人 P2P连接到做主的玩家上来。STUN是帮助玩家之间建立 P2P的牵引服务器,而由于 P2P联通情况大概只有 75%,实在联不通的玩家会通过 Forward进行转发。

大量的连接对战,体育竞技游戏采用类似的结构。P2P有网状模型(所有玩家互相连接),和星状模型(所有玩家连接一个主玩家)。复杂的游戏状态在网状模型下难以形成一致,因此星状P2P模型经受住了历史的考验。除去游戏数据,支持语音的战网系统也会将所有人的语音数据发送到做主的那个玩家机器上,通过混音去重再编码的方式返回给所有用户。

战网类游戏,以竞技、体育、动作等类型的游戏为主,较慢节奏的 RPG(包括ARPG)有本质上的区别,而激烈的游戏过程必然带来到较 RPG复杂的多的同步策略,这样的同步机制往往带来的是很多游戏结果由客户端直接计算得出,那在到处都是破解的今天,如何保证游戏结果的公正呢?

主要方法就是投票法,所有客户端都会独立计算,然后传递给服务器。如果结果相同就更新记录,如果结果不一致,会采取类似投票的方式确定最终结果。同时记录本剧游戏的所有输入,在可能的情况下,找另外闲散的游戏客户端验算整局游戏是否为该结果。并且记录经常有作弊嫌疑的用户,供运营人员封号时参考。

类型7:休闲游戏服务器

休闲游戏同战网服务器类似,都是全区架构,不同的是有房间服务器,还有具体的游戏服务器,游戏主体不再以玩家 P2P进行,而是连接到专门的游戏服务器处理:

和战网一样的全区架构,用户数据不能象分区的 RPG那样一次性load到内存,然后在内存里面直接修改。全区架构下,为了应对一个用户同时玩几个游戏,用户数据需要区分基本数据和不同的游戏数据,而游戏数据又需要区分积分数据、和文档数据。胜平负之类的积分可以直接提交增量修改,而更为普遍的文档类数据则需要提供读写令牌,写令牌只有一块,读令牌有很多块。同帐号同一个游戏同时在两台电脑上玩时,最先开始的那个游戏获得写令牌,可以操作任意的用户数据。而后开始的那个游戏除了可以提交胜平负积分的增量改变外,对用户数据采用只读的方式,保证游戏能运行下去,但是会提示用户,游戏数据锁定。

类型8:现代动作类网游

从早期的韩国动作游戏开始,传统的战网动作类游戏和 RPG游戏开始尝试融合。单纯的动作游戏玩家容易疲倦,留存也没有 RPG那么高;而单纯 RPG战斗却又慢节奏的乏味,无法满足很多玩家激烈对抗的期望,于是二者开始融合成为新一代的:动作 + 城镇 模式。玩家在城镇中聚集,然后以开副本的方式几个人出去以动作游戏的玩法来完成各种 RPG任务。本质就是一套 RPG服务端+副本服务端。由于每次副本时人物可以控制在8人以内,因此可以获得更为实时的游戏体验,让玩家玩的更加爽快。

说了那么多的游戏服务器类型,其实也差不多了,剩下的类型大家拼凑一下其实也就是这个样子而已。

‘伍’ linux的脚本连接 win下怎么把源文件下载下来

使用wine可以达到您要的效果,但不是100%成功,个别的软件会报dll错误。 以下是详细使用方法: 在安装前请确保你的系统中装有 gcc 3.x (推荐使用 3.2.x ),很多读者反映在 gcc 2.9.x 上编译存在问题。 wine 的安装配置 wine 的最新版本是 20030408 , 下面将介绍如何安装配置 wine。 1. 下载 wine 并解压缩: 请到 wine 的官方网站下载最新的 tarball 压缩文件包。或者,如果不想手工打中文输入法的补丁的话,可以直接下载打好补丁的 wine-20030408。(如果你是下载的这个已经打过补丁的,就可以跳过下一步) 这个版本的文件名为 Wine-20030408.tar.gz tar xvfz Wine-20030408.tar.gz 现在你可以在当前目录中看到一个名为 wine-20030408 的目录。以下假设你将 wine 解压缩到 ~/wine-20030408下,即你在你的home下,运行上述命令。 2. 下载并应用中文输入法补丁: 如果你的手头上已经有一个现成的官方版本的 wine-20030408,那么你可以下载wine中文输入法补丁(包括中文复制、粘贴的支持),并将其存到 ~/wine- 目录下。 应用之: cd ~/wine-20030408 patch -p1 < xim_parse_0417.diff 注:这个patch也可以使用在最新的(20030410)CVS上。 3. 编译安装 wine : cd wine-20030408 ./configure --prefix=/usr/local/wine 注意:强烈建议指定安装目录,此处为 /usr/local/wine,这样后面会方便很多。 请检查此命令的输出,如果他没有找到一些需要的包,而你又希望使用那个包提供的功能时,请安装相应的 devel 包(mandrake 下的命名方法)。 一切正常后,编译并以root 身份安装 make depend && make && make install 4. 配置 wine: 在用户的HOME中建立目录和配置文件 cd mkdir .wine cp wine-20030408/documentation/samples/config .wine/ 使用您习惯的文本编辑器,修改.wine/config 使其反应您的系统状态。打开 config 后,主要修改最前面的定义驱动器的部分。首先,删除对Drive A 的设定的一行:([Drive A]的最后一行) "Device" = "/dev/fd0" 然后请根据你的机器的情况,修改剩余的驱动器。下面给出我的一部分 [Drive C] "Path" = "/backup/c_drive" "Type" = "hd" "Label" = "Dos Drive" "Filesystem" = "win95" [Drive D] "Path" = "/mnt/d/" "Type" = "hd" "Label" = "My Home" "Filesystem" = "win95" 建议:不要将 c: 指向一个存在的真实 windows 盘,而是自己建立一个 “假”的,比如,你想在 /backup/c_drive 下建立一个虚拟 windows 的 c 盘,则执行如下命令(执行以下命令一般需要root 权限) mkdir /backup/c_drive cd /backup/c_drive mkdir -p windows windows/Start\ Menu \ windows/Start\ Menu/Programs windows/Fonts windows/system32 windows/Desktop ln -s /windows/system32 windows/system 为了可以运行不论处于你linux 任何目录下的程序,建议添加一个盘,如下(盘符是你现有的下一个就可以了) [Drive G] "Path" = "/" "Type" = "hd" "Label" = "root" "Filesystem" = "win95" 别的基本不需要修改,默认值就可以了。如果你的硬盘上有 NTFS 格式的分区,请参阅 常见问题。 注意:请根据你的系统来配置以上的目录,否则将无法启动运行wine。 5. 配置共享库目录: 由于我们自己指定了安装目录,所以共享库不位于系统已知的目录中,为了告诉系统到哪里找,可以修改 /etc/ld.so.conf 文件,但是,一个更好的方案是使用 shell 的环境变量:LD_LIBRARY_PATH。 在一个 console 中,执行命令 export LD_LIBRARY_PATH="/usr/local/wine/lib" 现在在这个 console 中,你可以继续下一步了。(是不是觉得太麻烦了,每次要执行一个 windows 程序就要这样做,不用担心,后面提供一个脚本,自动完成这些工作) 6. 复制字体: 复制几个字体到 windows/Fonts 下,推荐至少将 simsun.ttf 复制/连接到这个目录下(不可一个字体都没有,否则会造成 X 自动退出)。 7. 测试你的 wine: 在命令行输入 /usr/local/wine/bin/wine notepad ,如果成功看到了 记事本 程序,则说明 wine 已经可以正常工作了,试试中文输入,中文的复制和粘贴(目前仅支持wine 与 KDE 程序间中文的复制和粘贴,不支持gtk/gnome的程序);如果出现错误信息,请根据提示检查上面的各步。如果你得到的错误信息类似于找不到 libnt.dll.so 或者 version.dll 之类的,那么你应该是忘记了做 步骤4;如果发生如下的错误: spider c $ wine notepad Invalid path L"e:\\" for L"temp" directory: does not exist. Perhaps you have not properly edited or created your Wine configuration file, which is (supposed to be) '/home/spider/.wine/config'. /usr/local/wine/bin/wine -all notepad 说明你的[wine]下的 "Temp" 属性指向了一个不存在的目录,将其改为指向 /tmp 就可以了:如第4步,你将G 指向 /,则这样设置:"Temp" = "G:\\tmp" 优化我们的 wine 现在,wine 可以正常使用了,但是,还是太麻烦了,所以,我们来进行一些小小改进。同时,为了正常运行 xdict,我们也要作些 关键性 的调整。 1. 下载 wine 工具包,其中有一个名为 wine 的文件,他的工作就是自动设定 LD_LIBRARY_PATH 目录。如果你的安装目录不同于我的,那么请修改之。将其保存到 /usr/bin 下,并使其可以执行 chmod +x /usr/bin/wine 2. 安装支持文件 dcom98:为了在 linux 下安装使用 installshield 做的 setup,必须要装这个东东,请在微软 下载,并使用 wine dcom98.exe 来安装。如果在复制完文件后报告错误:A newer version of DCOM95 or DCOM98 has been installed... , 那么请先做下一步。 3. 可以在本站下载 常用的 win98 DLL包,并将其解压到你的虚拟C盘下的 windows/system32 下面。 4. 可以修改 windows 的默认用户和默认的用户组织:打开 ~/.wine/system.reg 中的RegisteredOrganization 和 RegisteredOwner 就可以了。 wine 的自带工具以及使用技巧 本部份简要介绍几个 wine 自带的工具及其功用(仅介绍比较常用的): 1. uninstaller: 反安装已经安装的程序 在 console 中输入: wine uninstaller,然后你就知道了 2. progman: 程序管理器 wine progman, 我觉得这个工具类似于 windows 的任务条。 3. regedit: 维护注册表 wine regedit: 与windows的 regedit 在功能和命令行参数上完全一样,不同仅仅是这个没有 GUI 界面。使用这个工具可以安全的向注册表中导入信息。如果你想用 wine 来玩 starcraft 或 diable II ,又想上战网的话,那么可以用它来导入注册表文件。 4. winecfg: 图形配置工具 wine winecfg: 可以使用这个工具来对 wine 进行一些基本的配置。功能比较有限,聊胜于无吧。 5. winefile: 资源管理器 wine winefile: windows 下的资源管理器,想必是使用windows 的用户最常使用的软件吧,这个就是那个的一个功能子集。 6. winemine: windows 扫雷 wine winemine: 对,就是 windows 下的扫雷,在穷极无聊时的一种解决方案 7. regsvr32: 自动注册动态连接库 wine regsvr32: 某些软件安装时,出于某些原因可能要自己使用这个来注册几个DLL文件。 常见问题: 1.无法输入中文? 答:我的结论是,在 gbk 或 gb2312 时可以输入中文,但是在 gb18030 下不行。请改变 locale 为 GBK 试一下。 2.退出wine时,出现如下错误: Unhandled exception: privileged instruction in 32-bit code (0x414f56a8). In 32-bit mode. 0x414f56a8 (_end+0x406e0c in libGLcore.so.1): movl %gs:0x0,%eax 答:试试将 glx 从 XF86Config 配置文件中注释掉。 3. 发生类似如下的错误: err:mole:import_dll Mole (file) COMCTL32.dll (which is needed by J:\Setup.exe) not found,怎么解决? 答:这类错误是由于在 c:\windows\system32 (system) 目录下找不到某个需要的 native 的 DLL 文件造成的(此例是 COMCTL32.dll )。解决方法是从一个真正的 windows 安装盘下的相应目录 过来一个。 4. 如果一个分区是 NTFS 的,安装的是 win2000/winxp,应如何设置 wine 的driver 部分? 答:不建议使用任何 NTFS 分区上的文件,因为linux 内核对 NTFS 的支持,仅限于读,而如果要写入的话,是很危险的(所以默认的 mount 是只读的)。因此,请使用 fat32 分区或任何 linux 格式的分区。 5. 编译时发生错误? 答:首先请确保你的系统中装有 gcc 3.x (推荐使用 3.2.x );wine 在 GNU/Linux 主流发行版的较新版本中以及 基于源代码的发行版中编译不成问题,但是在 FreeBSD 下好像不可以。 6. 在运行程序时总是得到类似如下的错误提示: wine: chdir to /tmp/.wine-root/server-305-242e2 : No such file or directory 答:这是因为你用root 用户运行wine 的问题。解决方案如下:退出 X,删除 /tmp 下所有东东,然后用普通用户运行wine。我的建议是,平时也不要使用 root ,使用一个普通用户既安全又可以避免很多不必要的麻烦。另一个解决方案 (出处) 是在编译的时候指定参数: ./configure --with nptl --with-x --prefix=/usr/local/wine 后面的步骤与前述过程相同。 7. 某某程序是否可以使用wine来运行? 答:关于某个英文软件是否可以在 wine 下正常(或基本正常)的运行,大家可以到 winehq 看看,如果找不到你关心的程序,可以到应用程序资料库搜索一下,看看其他用户的 comments,就知道是否有人运行成功了。 测试通过的输入法 尽管理论上,所有的输入法都应该没问题,但我认为这个部分可以让你知道你喜爱用的输入法是否已确认被支持。 以下是我测试过的输入法:(括号中为测试过的版本) * xsim (0.3.9.4) * chinput * erb-fcitx (1.8.x) * scim (0.4.0,0.3.1) minichinput 是由 chinput 修改而成, fcitx 是 erb-fcitx 的基础,所以我觉得这2个输入法也应该 没有问题。 现在的这个补丁已经不需要修改任何输入法,就可以正确的使用退格等键了,并且修正了在QQ中使用时,会crash的问题,请大家试用。如果先前你下载了 旧补丁, 你可以先取消掉(patch 的 -R 参数)那个补丁,再应用这个新的就可以了。 如果您有好的建议和、或修改意见,请不吝赐教:) 如果你成功的安装上了,也请麻烦通知我一声,如果可能的话,我也希望你能告诉我你的运行环境:发行版及其版本号,KDE的版本,gcc的以及你所使用的输入法的名称和版本,多谢。 注: 以上在 mandrake 9.0, kde 3.0.3,gcc3.2 gentoo 1.4rc_2, kde 3.1.0, gcc 3.2 gentoo 1.4rc_3, kde 3.1.1, gcc 3.2.1

‘陆’ 易语言 写源码,战网登录按钮操作不了.

元素标识要正确

‘柒’ 为什么暴雪一直不重制《暗黑破坏神2》对此你怎么看

还是利益的原因。
暗黑破坏神2采用的都是当时的创新概念:技能点、道具合成系统、套装、难度选择等等,后续 游戏 一直沿用这个设置。

大的公司做事情首先考虑的是效益,其次是成本,最次才是口碑。

先谈效益。 重制版 游戏 目前有两款,星际争霸已经开始发售,而魔兽争霸3即将发售。为什么是这个顺序呢?目前星际争霸玩家和星际争霸II的玩家数量差不多,星际争霸已经很老了,可是现在人气还是这么旺,人气旺就更容易聚拢利益。那么暗黑破坏神2的重制版利益在哪?为暗黑3做宣传么?暗黑3是一款手游,但是收费方式确是单机模式,198一次买断。本质上其实是两款单机收费方式的 游戏 ,一旦发售会进一步分流暗黑3的玩家,不会如星际一样增加总玩家的数量而是分流,这就没什么意义了。

再说成本。 开发是需要人力物力和时间的,魔兽争霸3的重制版已经做了两年,据说今年底才能发售,这就是三年。三年的总投入,需要给董事会一个交代的,毕竟那是一个企业,以营利为目的,不是公益岗位。暴雪选择的顺序星际争霸》魔兽争霸》其他经典 游戏 ,暗黑2就算重制,最多也就是第三位,一个项目越到后来,就越需要更大的利益,所以只能祈祷前两个重制版 游戏 大火,那么暗黑2才有可能被重制。

说到这顺便说一下我对暗黑3的评价,没有期待中的那么好。还记得暗黑二2000年发售,1.92G的安装文件,当时显的是巨大无比,但是玩家趋之若鹜,为什么?大量的创新,让玩家新鲜感暴增, 游戏 带来的快乐直线上升。技能点、道具合成系统、套装、难度选择等等,甚至后续 游戏 一直沿用这个设置,奠定以后的 游戏 模式也不为过。每个职业,每个难度,不同加点方式都要一一尝试,再加上剧情精彩无比,让我们沉浸在其中无法自拔。可是暗黑3呢?能拿的出来的仅仅只有画面,还有什么?创新总是很难的,新版本仅仅是炒冷饭罢了。

为什么拖了这么多年都没有做出来,我想最主要是因为暗黑破坏神2的重制难度是暴雪三大经典系列里最高的。从星际和魔兽重制版来看,暴雪是想要在提升画质的情况下完全还原原作的体验,并不想做出进化式的改动。而要用现在的 游戏 引擎去模仿老 游戏 的画面和手感其实并不容易。暗黑之父David Brevik在一次IGN的采访中谈到了这个问题:
屏幕比例

暗黑2的最大分辨率是800 x 600,也就是4:3,现在的 游戏 普遍是16:10、16:9。如果直接将画面扩展成对应比例,就会有一些本该在屏幕外的敌人和NPC“提前”出现在画面中,而原作中的一些AI是靠检测屏幕位置来触发的,这就可能造成一些AI行为混乱。
老旧2D引擎下的操控感
原作中的人物看起来可以向着任意方向上自由移动,实际却是在“走格子”。整个 游戏 地图是有数个格子组成的,角色在格子间移动就会出现轻微的卡顿感,要完美还原那种手感会比较麻烦。

关于操控感还有个例子是 游戏 中的武器攻速变化。原作的攻速理论上无上限,并且按数值平滑变化。但一个动作的完成时间如果刚好在两帧之间,那么多出的部分在画面上将体现不出来。暗黑2的引擎每秒固定生成25帧,而现在的引擎普遍是以30/60帧为标准,这个小小的“缺陷”将很难还原出来。

这些细节虽小,影响却很大,如果全然不顾,整个 游戏 的 游戏 性都会受到影响。

至于有人说不重制是出于商业上的考量,我想完全是多余的担心,因为光是暗黑2这个牌子就能大赚一笔,不费吹灰之力。有玩家用了几年的时间在星际2中打造了暗黑2重制版,可见这个 游戏 的影响力之大。而且暗黑2重制版一出,三大经典就都上了战网客户端,对暴雪的平台战略也有好处。

玩家用星际2引擎重制的暗黑2画面:

话说回来,David提到的操控感问题是可以解决的,看看同时代的星际争霸重制版就知道了。而且有玩家大神自制过暗黑2的高清补丁,通过拉远视距的方法实现了高分辨率和不同屏幕比例的适配,也没有发现有大的AI问题。

打上了高清补丁的暗黑2画面:

所以这点技术问题终归是资源投入的问题,只不过按暴雪一贯的龟速,不等个一两年恐怕是看不到成品的(如果提前出了,我欣然接受打脸……)。

暴雪:玩家意见已收到,“冷饭”已在路上!

近年来,因《泰坦》项目的失利,及动视的插手,暴雪已很久没推出新的PC 游戏 ,转而沉迷“炒冷饭”不能自拔。
有理由相信,在暴雪重置了年代久远的SC与WAR3后,下一个重制产品将是《暗黑2》。
暗黑2之于暴雪,有着举足轻重的意义。因为这款上线于2000年的 游戏 ,开启了ARPG的新纪元。

当我们看到暴雪在RTS上取得辉煌成就后,更不能忘记《暗黑2》为ARPG与“暗黑类” 游戏 打下的基础。《暗黑2》中的很多 游戏 设定,置于当下依旧是无法超越的经典。 这也就造成了 游戏 重制难度高,与暴雪自家两款RTS不同,ARPG很难只在提升画质的基础上重塑 游戏 ,毕竟 游戏 引擎换新后,带给 游戏 的可能是一把双刃剑。
重制 游戏 是为了情怀,那么最好的感情牌就是“原汁原味”。

RTS的原汁原味是竞技性,《暗黑2》的原汁原味包括画面,声效,光影等方方面面。这一点可以从《暗黑3》口碑不及预期看出,暴雪几乎颠覆性的制作了《暗黑3》,却依旧被《暗黑2》玩家视作“最low的暗黑 游戏 ”。 因而,《暗黑2》的重制绝不是简单的画面升级,而是还原。
在我看来,之所以率先重制两款RTS。并不是因为这两款 游戏 热度最高。而是为了迎合愈来愈火爆的“电竞”主题。
在数年前,那个属于RTS的黄金时代。SC与WAR3都曾是站在山巅的强者,虽后被其他品类 游戏 冲击而跌落神坛。但RTS的高竞技性从未改变,所以暴雪在SC2剧情完结后,就已着手准备SC的重制。而在SC重制版取得成功后,WAR3自然如约而至。 所以,在迎合电竞的两款产品重制后,下一部就会是《暗黑2》。

2018年的暴雪嘉年华应该是历年来最差的一次,这年玩家没等到《暗黑4》,更没等来《暗黑2》重制版。但2019的暴雪嘉年华,暴雪为自身利益着想,很有可能会让《暗黑2》以全新方式亮相,毕竟暴跌的股价,是暴雪及动视都不想再看到的。

好了,这就是我的回答了,你觉得《暗黑2》会不会被重制呢?欢迎留言讨论。

我来说几句。

暴雪只会重视南暴雪的作品,对于北暴雪的旧作品则是尽量轻视。

简单的例子,风暴英雄中,连失落的维京人都有,却没有一个是来自暗黑1和暗黑2的英雄。

而暗黑3的角色中,也仅有野蛮人和法师是继承自暗黑2,但模型和2完全不同。

因为暗黑二重制太难了,不像星际争霸,换套高清贴图,单位也没多少,而暗黑2无论是动画,引擎,数据库都是独有的,没法直接在现在的新引擎上用,而且很多代码都丢失了。 总而言之充置的话相当于新做一款 游戏 ,耗费的人力物力那是相当庞大的,不然早就重制了

其实,如果暴雪到了重制暗黑2那一天,那说明它已经到了穷途末路,纵观暴雪出品魔兽世界到现在,真的确实没有任何一款 游戏 能像暗黑2一样深入人心且这么久……不服来辩。所以说你看现在,暴雪出品手游暗黑,还是和网易合作,这意义再明显不过。自打北暴离开那一刻起,暴雪已在偏离的道路上越走越远。真的等到暴雪重制暗黑2,重制星际1那一天,其实也差不多了,他们已经变相的在重制魔兽世界……等到了那个时候,我们大概已经到了该缅怀暴雪的时刻。

重新做的WIN10系统,安装正版CDK暗黑2,能玩单机,连接不了战网,总显示断开连接,哪位大神知道怎么办呀,求助。

秃鹫公司的三大主创都走了,谁还能复制暗黑2?而且据传源代码也不全,重制基本上就是重新做一次 游戏 ,代价也是很大的。

重制还不如开发新 游戏

其中牵扯的利益关系太深远了,那么多玩家重金购买装备,重置,暴雪会被官司搞破产的。

‘捌’ 魔兽私服有人玩过么

靠 你的问题很没水准 你知道WOW吸引人的是它上千个任务吗??? 而不是简单的无聊的练级 私服能实现正版10%的任务都不到 所以你问问周围人 什么网游的私服都大有人在 WOW没人玩私服的!!!

暴雪的作品不要说私服了 外挂用了都没效率 所以你也没听说过人用外挂玩WOW吧 :) 只有魔兽精灵软件 还是个插件 不能练级 只能看些游戏信息的

这种游戏只有暴雪做的出来!

引用:
WOW论坛10大新人知识贴:

1。怎么WOW死亡没经验惩罚,PK不红名?
这个问题已经说过很多了,暴雪制作WOW的初衷是希望玩家能愉快的游戏,所以对于死亡没有惩罚,同时在WOW里死亡是经常会发生的事情,而并非其他网游中把死亡设定为可怕的事情,新人要首先树立死亡是正常的观点,要知道在WOW你有些任务是必须在死亡状态下才能完成,暴雪特意把死亡状态作得非常漂亮,大家要好好体验一下死亡状态。
在WOW的背景下PK是合理且必要的,但并不表示WOW不保护新人,不喜欢PK的玩家可以进入PVE服务器,同时在PVP服务器主城周围地区是有保护,WOW的交错地图设定能让玩家充分体验到PVP的乐趣而不必担心会被玩家恶心PK的问题。

2。有人抢怪怎么办?
在WOW里设定是第一个攻击怪的玩家会获得全部经验和掉落物品。(哪怕是只攻击了一下),这和其他网游里通过攻击量高低来分经验和物品的设定不一样。也许有玩家会问:那不是我抢着打每个怪第一下经验物品不都是我的了?这不好吧?!
的确在其他网游里如果这样设定是不合理的,但是暴雪在WOW为什么要这样设定呢?
因为在WOW里怪物设定是很BT的,不断攻击力高而且AI强(特别是后期怪),一个玩家不可能同时去面对2个怪,然后玩家如果想抢每个怪第一下是完全自杀行为,你可以再边上等他趴了再杀,因为如果她趴了怪的经验和物品就是你的了,同时一个小队也无法面对超过自己人数的怪群,所以玩家想控制一个地区是无法做到的。

3。大工会包了BOSS怎么办?
WOW采用副本模式,也就是说任何玩家都能进入自己小队独立的副本地图,没被邀请的玩家不能进入,这样任何人都能公平的杀BOSS,不可能出现包场问题。

4。极品装备买不起怎么办?
在WOW里任何玩家只要努力就能轻松打到自己想要的好装备,同时好装备是绑定的,装备后就不能交易,更好的极品装备是捡起就绑定而不能再交易给别人,只能低价卖NPC商人,所以不必担心有人垄断极品装备。这样做的好处是杜绝了骗子和盗取装备的问题。

5。错把UI插件当外挂。
UI插件这是一种在欧美网游里普遍存在的软件,UI是通过官方开放UI接口进行制作的,目的是为了方便玩家更个性化的设定自己的界面及操作,这是一种人性化的设定,同时暴雪对于UI是一直监控的,如果有人利用UI为幌子加入破坏游戏平衡的外挂功能就会被暴雪警告切直接屏蔽该UI插件(因为使用官方UI接口所以屏蔽是易如反掌的),玩家不必担心使用UI会被封帐号,因为一旦UI出现问题,暴雪首先是警告UI制作者,最后屏蔽该UI,而玩家也同时无法再使用该UI,当然建议玩家使用名气大的UI,以免被不法制作者欺骗而遭到封号损失(有些不法制作者制作的外挂是采用官方不允许的技术) 。

6。为什么不能用鼠标移动,用键盘移动太别扭?
暴雪之所以采用类似CS的键盘移动模式是因为WOW的战斗方式是很讲究走位的,这和其他网游的微操是不一样的,暴雪设定的战斗(特别是玩家对玩家的PVP战斗),讲究转身和攻击方位,同时5码攻击范围也是PK的关键因素,如果简单用鼠标移动是无法做到及时转身和控制5码攻击范围这样高难度的操纵,就好比CS用鼠标移动就没法打了,比较形象的说WOW的战斗很象拳击,走位至关重要,这和其他网游占桩PK是完全不一样的,WOW高手都是移动PK,一个菜鸟可能被杀了还不知道是谁杀了自己,因为对手一直保持在你身后位置,最后提醒一下只用AD键转身的肯定是自杀行为。

7。60级满级太低了,一下就满级以后不是很无聊?
的确,在其他网游里级别一直是促使玩家继续玩下去的动力,但这正说明这类网游的单调处,他们不设定剧情不做有意思的任务,只想通过不断升高等级来套牢玩家,好在暴雪没他们这么无耻,暴雪的策划说过一句话:网游的重点是剧情!
这是让玩家欣慰的,而且在WOW中暴雪实现了这句话,在WOW里现在有上千个任务,而这些任务都是有着以前单机游戏一样精彩的剧情(开始的新人任务可能没这么精彩),NPC是和玩家互动的而不是只对你说去杀几个XX回来给我。
所以在WOW里不是为了冲级别而玩,好好的享受一下以前只有单机游戏才有的感动吧,而且现在你可以和你的朋友一起去体验这份感动这是以前只有在梦中才能出现的情景:
和朋友一起体验RPG的剧情乐趣,分享战斗的喜悦和战后的胜利品,而不是其他网游中象佃农一样的在一个地图无止境杀怪期待着老天掉下个极品装备,看着级别龟速上升傻笑着却不明白自己到底玩了些啥。

8。怎么这么快就有私服,CWOW是不是完蛋了?
WOW的私服在2年前就出现呢,到现在也依然是客户端模拟版,因为其他地区都是暴雪自己运营所以服务器端是不可能泄漏的,当初第一次内部测试只是泄漏了客户端都惊动FBI(美国联邦调查局),后面的管理更是严格了,而WOW私服经过2年的进化,依然无法实现官服10%的内容,因为要实现杀怪还比较容易,但WOW的精髓是剧情任务,9城关汉化这些内容就花了1年多,更别提要在没有源代码的情况下去完整再现这些内容,恐怕就只有暴雪才能做到了,现在开WOW私服的普遍都是自己YY一下,谁都知道要做到和官服一样那是不可能完成的任务。

9。真的外挂出现了,还是脱机外挂啊?
是的,做一个脱机外挂十分容易,就是按键精灵就能实现自动功能,但是不是说能自动就行了,外挂必须要有效率才能被使用,而暴雪显然是在制作游戏时就考虑到这个问题,因此在游戏设定上就努力杜绝外挂,当初在暴雪内部测试时,暴雪的程序员曾经自己制作外挂程序来测试,结果发现几乎没有效率,比如在WOW里任务获得经验时在一个地方杀怪经验的1。5倍,同时玩家升级快速,在一个地方平均只要杀20-30个怪就该换地方,这对于定点自动外挂是噩梦,而随便乱走肯定趴,在WOW每天趴趴是正常的,这是脱机外挂受不了的事情,冲级型自动外挂无实际意义,因为玩家做做任务就到满级了,傻子才蹲一个地方砍怪冲级,而切WOW的疲劳设定让玩家无法长时间杀怪(而做任务没有疲劳限制),而打装备是要下副本,如果能作出打副本的自动外挂,这人应该被暴雪请去当WOW第一程序员或者去中国科技学院开发人工智能。
对于破坏平衡的内挂,这类外挂一般都是因为游戏开发商技术问题才出现漏洞,一般出现也能及时屏蔽,不可能产生大影响,当然暴雪如果连这样低级的问题都范,她也不可能走到今天。
对于最近出现在WOW的瞬移漏洞,普遍认为是暴雪故意遗留的漏洞引不法制作者上钩(因为这样的花招暴雪当年在战网玩过多次),这不今天又封了200多个,一旦机会成熟暴雪就会在下个补丁屏蔽掉这个漏洞,可怜的玩家又要被暴雪玩了,所以玩暴雪的游戏还是安分点好。

10。看WOW截图画面一般呀,游戏好像也不咋地啊?
WOW刚刚击败以画面NB而着称的半条命2而获得全球最佳画面艺术大奖,参与评选的都是全球各大游戏制作人员,而WOW的动态画面是无法用截图表现的,暴雪美工的实力在业界是公认第一的,至于游戏好不好玩,我只想告诉你全球游戏制作人都在玩WOW,WOW是公认的未来MMORPG的教科书,每一个网游公司都在研究WOW,现在市面上仅模仿WOW界面的网游就有3个,但是从来只有暴雪才能超越自己,这也是为什么会有游戏制作人在玩过WOW后说道:10年内不可能出现超越WOW的MMORPG网游了。

当然,WOW毕竟只是一个游戏,不可能让所有玩家满意,出现不喜欢WOW的玩家是正常现象,但无论你是不是喜爱WOW,请真正进入到游戏中玩过后再做结论吧。

‘玖’ 英雄联盟是用什么软件做的

是用编程软件做的,包括了很多东西游戏引擎啊之类的

热点内容
c封装源码 发布:2025-05-16 07:18:34 浏览:795
百度java下载 发布:2025-05-16 07:13:25 浏览:186
如何用c语言解方程 发布:2025-05-16 07:12:51 浏览:791
phpjson转对象 发布:2025-05-16 07:07:42 浏览:55
static变量初始化java 发布:2025-05-16 07:05:20 浏览:249
sql删除表的字段 发布:2025-05-16 07:02:10 浏览:473
安卓手机相机出故障怎么办 发布:2025-05-16 06:47:11 浏览:456
华为如何给特定软件设置密码 发布:2025-05-16 06:44:09 浏览:468
内存和缓存的区别 发布:2025-05-16 06:42:42 浏览:188
配电车编程 发布:2025-05-16 06:41:22 浏览:370