1.loadfileԴ?源码?
2.求CS1.6服务器架设
3.å¦ä½ä½¿ç¨Unity Studio
4.按键精灵源码获取尺寸的几种方法
5.webpack5loader和plugin原理解析
loadfileԴ??
在Lua中,require、源码dofile和loadfile是源码用于加载和执行代码文件的三种主要方法,它们在功能和使用场景上有所差异。源码
require主要用于加载Lua脚本文件,源码它会将指定的源码拦截马源码apk文件名转换为一个Lua模块,并返回该模块的源码引用。如果文件被require多次,源码它的源码内容只会被加载一次,从而避免重复加载。源码
dofile同样加载并执行指定的源码Lua脚本文件,但它使用的源码是字符串参数来表示文件路径。调用时,源码Lua引擎会将字符串解析为文件路径,源码并将其内容读入到Lua环境中执行。源码
loadfile则更为灵活,它接受一个文件名或文件路径的字符串参数,将其内容读入Lua环境并返回一个函数。该函数可以用于执行文件内容或将其添加到当前环境。loadfile可以用于动态加载脚本,而不仅仅是预编译的Lua模块。
总结,require适合加载预编译为Lua模块的代码,dofile适用于直接执行源代码文件,loadfile则允许更灵活的加载和执行逻辑,能够动态加载和执行任何格式的文件内容。
求CS1.6服务器架设
1@ 准备活动,嘿咻嘿咻^
一、首先 你必须要有个高配置的电脑,如果是做服务器的话,最好内存是在M以上的机器,至于 内存 CPU 等对架设CS服务器的影响!然后是mfc实例源码下载要了解的是,你上网的网络结构,是通过 Modem+路由+交换机 上网,还是用 代理服务器+交换机 上网!
二、CS的服务器端文件 由于现在CS1.6已经是比赛的版本了,所以偶就以1.6的为主,1.5的其实也一样的,但是会少了很多的特效,比如1.5就不支持中文等。 其实服务器端用的文件,并没多大的规定一定要用hlserver,也就是通常所说的服务器版,完全没那个必要,我下的那些所谓的服务器端,其实和1.6客户端的区别很小,也就是说,服务器端和客户端通用。所以大家完全没必要去一味追求服务器端。本文以版本来做服务器端为例(个人强烈推荐用ESAI版的cs1.6)。
三、服务器端的安装和设置 运行下载回的服务器:按提示一步一步安装,建议最好用英文命名,不推荐用中文名,安装完成以后,先不要运行服务器程序,运行的话是进入游戏,而不是开始服务器!进入刚才安装的那个文件夹,找到Hlds.exe文件,创建一个快捷方式(ESAI版自动创建),然后把刚才那个快捷方式改一下名字,网页源码提取音频方便以后使用,偶改为Server,接下来是重点了。。。。请注意听了哦!打开SERVER快捷方式的属性,加入参数!那里就是服务器运行的时候必须要用到的启动参数,参数不同,服务器运行的效果也不同!以偶的为例,
-game cstrike +servercfgfile server.cfg -nomaster -insecure -port +maxplayers +map de_dust2 +sv_lan 1 -console
我一个一个解释好了:)
-game cstrike 这个就是指定以反恐精英为游戏的Mod,如果不指定的话就是半条命的模式,听说也不错很好玩的哦,没玩过
+servercfgfile server.cfg 这个就是指定服务器的配置文件,server.cfg这个文件放在cstrike下,后面偶会详细介绍一下该文件的
-nomaster 加载这个参数就是让服务器不上WON认证,避免因为出国网络不通导致的服务器问题。
-insecure 这个参数运行VAC反作弊插件的 1 为开启 0 为关闭!
-port 指定服务器运行时候的端口,范围最好是在- 之间,据我的测试,局域网列表能刷出来的就是在这个范围内,当然,如果你想用来做比赛服务器不想让其他人进的话,你可以指定任意不被占用的端口。
+maxplayers 这个参数是指定服务器最大进入玩家数,理论上最高能进人,有的乐山字牌源码地图最高只能进人,比如CS_italy 那些早期救人质的图都这样的。并不是说一定要以人为最大,这个要和你的网络状况及服务器配置相联系的,关于CPU 内存 网络带宽 之间的联系,请在论坛上搜索一下,或者到我的论坛去查找一下,只有人数合适了,你的服务器才能运行在快速稳定的状态!+map de_dust2 这个参数就是当服务器一开始运行的时候,运行的第一张地图,你可以该为任意的,但是要注意,最好以 cstrike\maps 目录下的地图,不然服务器会出错!此主题相关如下:图中,以bsp为结尾的文件都是地图文件,注意:参数不用带文件全名,例如 de_dust2 就可以了, 没必要这样 de_dust2.bsp
-console 控制台,如果不带这个参数的话,你架设好的服务器就不能在那个黑底白字的窗口上输入一些服务器命令
+sv_lan 1 这个参数是控制该服务器是局域网还是战网的一个重要参数,当为 0 的时候,外网玩家也可以进入,当为 1 的时候,就只有局域网的玩家才能进入。如果要做面向公网和内网(不知道什么叫公网和内网的,请自己找资料学习),这个参数建议为 0 综合以上讲解,很容易了解,
-**me cstrike +servercfgfile server.cfg -nomaster -insecure -port +maxplayers +map de_dust2 +sv_lan 1 -console 用这些个参数架设的服务器是一个CS1.6反恐精英,不通过WON验证,抓包注册源码游戏端口为,人数最多为人,开始游戏地图为沙漠2,面向局域网的服务器!如果要面向内外网的话,去掉 -nomaster +sv_lan 1这两个参数就行了!
参数配置正确了,就可以开始运行服务器了?别急,还没配置完全呢,还有一个比较重要的文件server.cfg还没配置呢!
------------------------------我是不华丽的分割线--------------------------------------------------
2@ 准备做眼保健操吧……
具体操作方法:进入安装目录的cstrike下,你可以看到一个Server.cfg文件,这个文件是一个文本文件,但是没和任何文本编辑软件关联,也就是说,当你打开的时候,系统会提示你打开方式,你可以选择用记事本打开。打开以后你会看到如下的信息:
rcon_password "****"
hostname "****网 **** CS1.6 Server"
sv_maxspeed
mp_autokick 0
mp_autocrosshair 0
mp_autoteambalance 0
mp_buytime 0.
mp_consistency 1
mp_c4timer
mp_fadetoblack 1
mp_falldamage 1
mp_flashlight 1
mp_forcecamera 3
mp_friendlyfire 1
mp_freezetime
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
mp_timelimit
mp_tkpunish 0
mp_winlimit 0
sv_aim 0
sv_airaccelerate
sv_airmove 1
sv_allowdownload 0
sv_clienttrace 1.0
sv_clipmode 0
sv_allowupload 0
sv_cheats 0
sv_gravity
sv_maxrate
sv_maxspeed
sv_maxupdaterate
sys_ticrate
decalfrequency
pausable 0
log on
decalfrequency
edgefriction 2
host_framerate 0
exec listip.cfg
exec banned.cfg
哇靠!文件也太简单了吧,我记得以前还带解释的,现在这么都这样了呢?!
不管他,反正我也看得懂是啥意思,我来解释好了!只解释一些常用的,没解释到的推荐用默认值。一般 0 为关 1 为开
rcon_password "XXX" 这个是进入服务器的密码,如果不改的话,就相当于是一个带密码的服务器,推荐去掉 "" 里面部分
hostname "ESAI—CS1.6 Server" 服务器的名字,这个当然要改的了,改为你想改的名字就行了
sv_maxspeed 重力速度什么的,不推荐修改用默认的好了。。
mp_autokick 0 自动踢人,当某位玩家因为一些其他的因素,常时间不动或者死机等,系统就会踢除该玩家,0 为关 1为开
mp_autocrosshair 0 准心的大小自动调节,建议不要改
mp_autoteambalance 0 双方自动平衡,建议开启,否则会出现两边队伍人数不平衡
mp_buytime 0. 购买武器时间 以秒为单位,*0.=秒
mp_c4timer C4爆炸时间,国际比赛好像是秒,推荐用这个值就行了
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 开始买枪时候的静止不能行走的冻结时间,秒也太夸张了。3秒就够了
mp_roundtime 2.5 每回合的时间,以分为单位,2.5为两分半钟,推荐改为3或者3.5 如果是死亡模式的话可以改为5
mp_startmoney 开局资金,一般都是 最高可以改为 不推荐改!
mp_timelimit 每个地图玩的时间 分钟合适了。如果改为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
sv_minrate
sv_maxspeed
// 暂停游戏 禁止0/允许1
pausable 0
// 作弊模式 关闭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
// 每局时间分钟
mp_timelimit
// 购买武器冻结时间 (0-)建议5秒以内。
mp_freezetime 3
// 每回合4分钟
mp_roundtime 3
//购买武器装备时间(0.-1.5)即秒-秒
mp_buytime 0.
// 炸弹倒计时时间 (-)
mp_c4timer
//开始游戏时的金钱数量(-)
mp_startmoney
// 死亡后视角 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
// 服务器重力设置 默认正常重力,范围-到
sv_gravity
// 投票比率(大家可以通过投票踢出作弊者和更换地图) (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
// 服务器细节数据发送 默认 ,可减低到、,改善速度。
mp_decals
// 服务器是否允许麦克风语音通讯 允许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
PS:如果你改的是中文名的话最好用WINDOWS记事本保存并另存为UTF-8格式
-------------------------------------还是不华丽的分割线---------------------------------------------------
3 泡杯茶继续看
接下来就要解释一下其他几个个性化服务器必须要修改到的文件,这两个也是其中的一部分:
mapcycle.txt 和 motd.txt 简要介绍一下就行了。。第一个是地图列表文件,也就是当服务器运行的时候,就只会在这个文件中有的地图之间从上到下运行,de_dust2
de_inferno
de_cbble
de_train
de_nuke
de_cpl_mill
de_aztec
de_dust
从第一个到最后一个,然后在循环
motd.txt这个文件比较特殊,这个就是当玩家进入你的服务器的时候,看到的第一个欢迎 logo,它是以文本文件形式存在,但是确实一个html网页的源码,如果你有网页制作的功底的话,可以做得很好看。其实你也可以将现成在网页上的图地址替换原先里面的地址,EASY。
---------------------------------------------应要求变华丽一点的分割线-------------------------------
4[size]@接下来的就是问最多的插件问题了[size]
进入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 是所有的插件的根基,也就是说,如果这个文件夹下没有任何东西的话,你什么插件都用不了,很多的插件都要在那个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
一个好的CS服务器基本就Depend on (靠)这几个文件了。
现在我开始讲解一下所有插件的根基,addons\metamod\plugins.ini 的配置吧!
win addons\booster\booster_mm.dll 这个是服务器的加速插件,如果不加载这个东西的话,服务器最高不超过Fps
;win dlls\chicken_mm.dll 这个是一个娱乐用的,也就是变成小鸡的插件。
;win addons\amx\dlls\amx_mm.dll 这个是加载amx的插件,如果不加载的话,很多基于amx的插件就用不了,比如死亡
;win addons\amx\dlls\fun_ms.dll 这个也是死亡和魔兽服务器中必须要用到的插件
;win addons\amx\dlls\csstats_ms.dll 这个也是死亡和魔兽服务器中必须要用到的插件
;win addons\amx\dlls\war3_ms.dll 这个是Amx的一个子插件,魔兽插件,可以在该plugins.ini 中配置,也可以在另外那个plugins.ini (addons\amxmodx\configs\plugins.ini )中加载但是就只能加载一个,重复的不算
;win dlls\monster_mm.dll 这个也是Amx的一个子插件,同样可以在这里配置也可以在另外那个 plugins.ini 中配置
;win addons/wwcl/dlls/pcawwclconfig_mm.dll WWCL 这个是一个规则插件,某种程度上也能防到某些玩家作弊
win addons/cdeath/cdmod.dll 这个就是大名鼎鼎的 Cheating-Death CD反作弊的插件,不过现在CD已经不更新了...
所有的插件以“;”(半角模式下的分号) 开启和关闭 也就是说,你要开启某个插件的话,就不能在该行之前用这个符号,如果不想开启某个插件的话,就在该行 即win的前面,加上一个这个,就能让那个插件不运行了!
比如:
我想屏蔽ChickenMod 1.0.5.1插件,只需要在win dlls\chicken_mm.dll这行行首加入;注释符号屏蔽掉这行即可,即将win dlls\chicken_mm.dll改为;win dlls\chicken_mm.dll
这样我们在启动服务器时,服务器就不会启动ChickenMod 1.0.5.1插件插件。如果想再次开启ChickenMod 1.0.5.1插件,只需要把此行行首的;符号去掉并保存plugins.ini文件即可。其他插件的屏蔽/开启也是如此。
如下
; 说明:
; 开启某个模块请去掉前面的分号
; 关闭某个模块请在前面加上分号
;////////////////////////////////////////////////////////////
;// --------------------- Booster ------------------------ //
;////////////////////////////////////////////////////////////
; 请按自己的CPU选择你需要的程序, 以下2个只能开启一个
win addons/Booster/booster_mm.dll
;win addons/Booster/booster__mm.dll
;////////////////////////////////////////////////////////////
;// ------------------- AMX Mod X ------------------------ //
;////////////////////////////////////////////////////////////
win addons/amxmodx/dlls/amxmodx_mm.dll
; linux 请按自己的CPU选择你需要的程序, 以下2个只能开启一个
linux addons/amxmodx/dlls/amxmodx_mm_i.so
;linux addons/amxmodx/dlls/amxmodx_mm_amd.so
;////////////////////////////////////////////////////////////
;// --------------- Cheating Death ----------------------- //
;////////////////////////////////////////////////////////////
; win 请按自己的CPU选择你需要的程序, 以下5个只能开启一个
win addons/CDeath/cdmod.dll
;win addons/CDeath/cdmod_i.dll
;win addons/CDeath/cdmod_i.dll
;win addons/CDeath/cdmod_k7.dll
;win addons/CDeath/cdmod_p4.dll
; linux 请按自己的CPU选择你需要的程序, 以下5个只能开启一个
linux addons/CDeath/cdmod_i.so
;linux addons/CDeath/cdmod_i.so
;linux addons/CDeath/cdmod_i.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文件里面已经有很多的提示了,我就大概说一下吧!先来看偶安装的这个****中amxx.cfg各部分的参数:
// AMX MOD X 配置文件.
echo Executing AMX Mod X Configuration File
// 用户的默认权限,可以用此定义为普通的玩家也加上各种权限,相关权限请参考uers.ini文件的权限说明
amx_default_access "z" 这个就是玩家的默认权限,相关的权限在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 管理插件"
这里就是一些在游戏中看到的滚动的字的设置位置,可以多设置几条,但是要注意最后那里时间,不能相同,否则就只显示头一条!
// clanmod风格的服务器MOTD彩色信息,后面的颜色RGB代码可以自己修改
amx_imessage "欢迎来到 %hostname%" ""
amx_imessage "这个服务器使用了 AMX Mod X 管理插件\n下载地址
/post/
开发思路:
我们需要借助html-webpack-plugin来实现
在html-webpack-plugin输出index.html前将内联runtime注入进去
删除多余的runtime文件
如何操作html-webpack-plugin?官方文档
实现:
//loaders/loader1.jsmodule.exports=functionloader1(content){ console.log("hellofirstloader");returncontent;};7