cs起源吧 关注:84,969贴子:1,798,055
  • 14回复贴,共1

CS起源不完全修改教程第五弹 - VGUI其他修改

只看楼主收藏回复

CS起源不完全修改教程第四弹 - Loading界面修改
https://tieba.baidu.com/p/6660312501
VGUI已经讨论了好长时间,差不多也该结束进入HUD部分了,成就系统后续教程再说吧。
2楼放教程


IP属地:山东1楼2020-05-08 22:25回复
    CS起源不完全修改教程第五弹
    VGUI其他修改
    上一弹我们一起修改了Loading界面,这一弹打算结束VGUI修改部分了。
    1.VGUI Build Mode Editor介绍
    打开CS起源,打开你想要修改VGUI窗体(比如创建服务器中服务页面),按下<Ctrl>+<Shift>+<Alt>+<B>键,打开开VGUI Build Mode Editor(以下简称VBME):

    这时点击窗体中任何一个控件,都可以在VBME中修改参数,每个控件修改后点Apply应用,整体修改完成后点击Save保存。
    Delete是删除控件,旁边的None组合框是增加控件,下边的Reload Localization是重新读取语言文件,Prev是上一个控件,Next是下一个控件。使用VBME可以很方便地修改控件。
    因为新版本CS起源的封装问题,如果想修改某一VGUI窗体,需要从VPK文件或SourceBaseFolder(hl2或者platform)提取对应的res文件,下面我们举几个小例子实践一下。


    IP属地:山东2楼2020-05-08 22:26
    回复
      2.服务器页面修改
      我们给服务器页面增加一个自己的标签。
      从cstrike_pak_dir.vpk中提取resource\createmultiplayergameserverpage.res,放到followme\resource下边。进入游戏,打开VBME,点击None,选择Label,新建一个标签。

      将这个标签拖到合适的位置,修改Label1的LabelText为#MyLabel1并点击Apply和Save

      这时候新建标签已经变成了#MyLabel1了:

      接下来在gameui_schinese.txt和gameui_english.txt中添加你想显示的内容,比如“欢迎使用我的CS起源!”具体修改方法在教程第二弹中已有详解。添加完成后,我们可以点击Reload Localization预览一下:

      再次打开VBME,点击这个标签,将wide改大一些,比如200。

      大工告成,同理我们可以添加一个URLLabel,URLLabel中有个URLText参数,这个参数输入网址,可以做个点击访问我的网站:

      注意:交互式控件(可以点击的)必须关闭VBME才能点击。有一些复杂的控件需要代码支持(修改client.dll和server.dll)才能实现一些功能,否则就是个摆设。我们的教程只讨论正版可以接受的修改内容,所以更深入的就不讨论了。其他控件的添加方法也是一样的,各位有兴趣可以自行尝试。


      IP属地:山东3楼2020-05-08 22:29
      回复
        3.服务器设置页面修改
        如果你觉得游戏页面中提供的选项很少,可以添加一些自己需要的:

        从cstrike_pak_dir.vpk中提取cfg\settings_default.scr到followme\cfg下边,用文本编辑器打开settings_default.scr。这里先介绍一下格式:
        "控制台命令"
        {
        "显示内容"
        { 值类型和范围 }
        { 默认值 }
        }

        类型有四种:
        BOOL -----0或者1
        STRING -----文字
        NUMBER -----数值(有取值范围,-1为无限制)
        LIST -----列表
        下边我们一起来添加一条修改重力的,用列表模式。首先我们需要知道,修改重力的命令为sv_gravity,默认值为600,我们在文件的最后一个大括号之前,添加如下代码:
        "sv_gravity"
        {
        "#MySetting_gravity"
        {
        LIST
        "#MySetting_gravity_0""0"
        "#MySetting_gravity_1""300"
        "#MySetting_gravity_2""600"
        "#MySetting_gravity_3""1000"
        "#MySetting_gravity_4""9999"
        }
        { "600" }
        }

        并将对应的标题添加到语言文件中。

        保存这个文件,我们进游戏预览一下:

        大功告成。


        IP属地:山东4楼2020-05-08 22:32
        回复
          4.键盘选项修改
          就是这个界面:

          我们一起来添加一些项目,比如一键买枪的。
          从cstrike_pak_dir.vpk中提取scripts\kb_act.lst到followme\scripts下边,kb_act.lst是键盘选项中的项目。用文本编辑器打开kb_act.lst。这里先介绍一下格式:

          这个格式就比较简单了,左边是控制台命令,右边是对应显示的文字,blank命令的意思是该处不能点击,“==========================”是显示为分隔横线。
          我们在最下边添加购买按键设置,偷个懒,这里我就复制以前修改过的内容了:
          "blank" "=========================="
          "blank" "#KL_BuyPistWeapon"
          "blank" "=========================="
          "buyglock" "#KL_BuyPisWeap_Glock"
          "buyusp" "#KL_BuyPisWeap_USP"
          "buyp228" "#KL_BuyPisWeap_P228"
          "buydeagle" "#KL_BuyPisWeap_Deagle"
          "buyfiveseven; buy elite" "#KL_BuyPisWeap_57OEl"
          "blank" "=========================="
          "blank" "#KL_BuyShotWeapon"
          "blank" "=========================="
          "buym3" "#KL_BuyShoWeap_M3"
          "buyxm1014" "#KL_BuyShoWeap_XM1014"
          "blank" "=========================="
          "blank" "#KL_BuySubmWeapon"
          "blank" "=========================="
          "buytmp; buy mac10" "#KL_BuySubWeap_TMOMA"
          "buymp5" "#KL_BuySubWeap_MP5"
          "buyump45" "#KL_BuySubWeap_UMP45"
          "buyp90" "#KL_BuySubWeap_P90"
          "blank" "=========================="
          "blank" "#KL_BuyRiflWeapon"
          "blank" "=========================="
          "buygalil; buy famas" "#KL_BuyRifWeap_GAOFA"
          "buyak47; buy m4a1" "#KL_BuyRifWeap_AKOM4"
          "buysg552; buy aug" "#KL_BuyRifWeap_SGOAU"
          "buyscout" "#KL_BuyRifWeap_Scout"
          "buyawp" "#KL_BuyRifWeap_AWP"
          "buyg3sg1; sg550" "#KL_BuyRifWeap_G3OSG"
          "blank" "=========================="
          "blank" "#KL_BuyMachWeapon"
          "blank" "=========================="
          "buym249" "#KL_BuyMacWeap_M249"
          "blank" "=========================="
          "blank" "#KL_BuyEquipment"
          "blank" "=========================="
          "buyvest" "#KL_BuyEqu_vest"
          "buyvesthelm" "#KL_BuyEqu_vesthelm"
          "buyflashbang" "#KL_BuyEqu_FlashBang"
          "buyflashbang; buy flashbang" "#KL_BuyEqu_FlashBangs"
          "buyhegrenade" "#KL_BuyEqu_hegrenade"
          "buysmokegrenade" "#KL_BuyEqu_smokegrenade"
          "buydefuser" "#KL_BuyEqu_defuser"
          "buynvgs" "#KL_BuyEqu_nvgs"

          接下贴


          IP属地:山东5楼2020-05-08 22:36
          回复
            承前贴
            同理将索引名添加到语言文件中:
            "KL_BuyPistWeapon" "购买手枪设置"
            "[english]KL_BuyPistWeapon" "Buy Pistol Setting"
            "KL_BuyShotWeapon" "购买霰弹枪设置"
            "[english]KL_BuyShotWeapon" "Buy Shotgun Setting"
            "KL_BuySubmWeapon" "购买冲锋枪设置"
            "[english]KL_BuySubmWeapon" "Buy Submachine Gun Setting"
            "KL_BuyRiflWeapon" "购买自动步枪设置"
            "[english]KL_BuyRiflWeapon" "Buy Rifle Setting"
            "KL_BuyMachWeapon" "购买机关枪设置"
            "[english]KL_BuyMachWeapon" "Buy Machine Gun Setting"
            "KL_BuyEquipment" "购买装备设置"
            "[english]KL_Equipment" "Buy Equipments Setting"
            "KL_BuyPisWeap_Glock" "购买 Glock"
            "[english]KL_BuyPisWeap_Glock" "Buy Glock"
            "KL_BuyPisWeap_USP" "购买 USP"
            "[english]KL_BuyPisWeap_USP" "Buy USP"
            "KL_BuyPisWeap_P228" "购买 P228"
            "[english]KL_BuyPisWeap_P228" "Buy P228"
            "KL_BuyPisWeap_Deagle" "购买 沙漠之鹰"
            "[english]KL_BuyPisWeap_Deagle" "Buy Desert Eagle"
            "KL_BuyPisWeap_57OEl" "购买 57式 或 双枪"
            "[english]KL_BuyPisWeap_57OEl" "Buy FiveSeven Or Elites"
            "KL_BuyShoWeap_M3" "购买 M3"
            "[english]KL_BuyShoWeap_M3" "Buy M3"
            "KL_BuyShoWeap_XM1014" "购买 XM1014"
            "[english]KL_BuyShoWeap_XM1014" "Buy XM1014"
            "KL_BuySubWeap_TMOMA" "购买 TMP 或 哒哒哒"
            "[english]KL_BuySubWeap_TMOMA""Buy TMP Or DaDaDa"
            "KL_BuySubWeap_MP5" "购买 MP5"
            "[english]KL_BuySubWeap_MP5" "Buy MP5"
            "KL_BuySubWeap_UMP45" "购买 UMP-45"
            "[english]KL_BuySubWeap_UMP45" "Buy UMP-45"
            "KL_BuySubWeap_P90" "购买 P90"
            "[english]KL_BuySubWeap_P90" "Buy P90"
            "KL_BuyRifWeap_GAOFA" "购买 Galil 或 FA-MAS"
            "[english]KL_BuyRifWeap_GAOFA" "Buy Galil Or FA-MAS"
            "KL_BuyRifWeap_AKOM4" "购买 AK-47 或 M4A1"
            "[english]KL_BuyRifWeap_AKOM4" "Buy AK-47 Or M4A1"
            "KL_BuyRifWeap_SGOAU" "购买 SG552 或 AUG"
            "[english]KL_BuyRifWeap_SGOAU" "Buy SG552 Or AUG"
            "KL_BuyRifWeap_Scout" "购买 鸟狙"
            "[english]KL_BuyRifWeap_Scout" "Buy Bird Sniper Rifle"
            "KL_BuyRifWeap_AWP" "购买 单狙"
            "[english]KL_BuyRifWeap_AWP" "Buy Once Sniper Rifle"
            "KL_BuyRifWeap_G3OSG" "购买 连狙"
            "[english]KL_BuyRifWeap_G3OSG" "Buy Auto Sniper Rifle"
            "KL_BuyMacWeap_M249" "购买 机关枪"
            "[english]KL_BuyMacWeap_M249" "Buy Machine Gun"
            "KL_BuyEqu_vest" "购买 防弹衣"
            "[english]KL_BuyEqu_vest" "Buy Vest"
            "KL_BuyEqu_vesthelm" "购买 防弹衣和头盔"
            "[english]KL_BuyEqu_vesthelm" "Buy Vest And Helmet"
            "KL_BuyEqu_FlashBang" "购买 闪光弹"
            "[english]KL_BuyEqu_FlashBang" "Buy Flash Bang"
            "KL_BuyEqu_FlashBangs" "购买 闪光弹 x2"
            "[english]KL_BuyEqu_FlashBangs" "Buy Flash Bang x2"
            "KL_BuyEqu_hegrenade" "购买 高爆手雷"
            "[english]KL_BuyEqu_hegrenade" "Buy High Explosive Grenade"
            "KL_BuyEqu_smokegrenade" "购买 烟雾弹"
            "[english]KL_BuyEqu_smokegrenade" "Buy Smoke Grenade"
            "KL_BuyEqu_defuser" "购买 拆弹工具"
            "[english]KL_BuyEqu_defuser" "Buy Disassembly Tool "
            "KL_BuyEqu_nvgs" "购买 夜视仪"
            "[english]KL_BuyEqu_nvgs" "Buy Night-vision Vierer"


            OK,进游戏预览一下:

            但是如果我们点击了使用默认值,这些按键就会被清空。老版本CS起源的按键默认值在kb_def.lst中,而新版CS起源已经不再读取这个文件了。
            复制cstrike\cfg\config_default.cfg到followme\cfg下边,并用用文本编辑器打开,这个文件的格式就是脚本文件的格式,使用bind "按键名" "命令"来设置我们的默认值,我们在最下边添加跟kb_act.lst文件中相同的命令,和对应的按键名并保存:
            bind"KP_END" "buy usp"
            bind"KP_DOWNARROW" "buy deagle"
            bind"KP_PGDN" "buy m3"
            bind"KP_LEFTARROW" "buy mp5"
            bind"KP_5" "buy m249"
            bind"KP_RIGHTARROW" "buy galil; buy famas"
            bind"KP_HOME" "buy ak47; buy m4a1"
            bind"KP_UPARROW" "buy g3sg1; buy sg550"
            bind"KP_PGUP" "buy awp"
            bind"KP_ENTER" "buy hegrenade"
            bind"KP_PLUS" "buy flashbang"
            bind"KP_MINUS" "buy smokegrenade"
            bind"KP_DEL" "buy defuser"
            bind"KP_SLASH" "buy nvgs"
            bind"KP_INS" "buy vesthelm"

            大工告成。


            IP属地:山东6楼2020-05-08 22:37
            回复
              5.高级设置修改
              高级设置位于选项-多人联机-高级中:

              下面我们一起来给这个界面添加一个“暴力模式”选项,用以降低暴力程度。
              从cstrike_pak_dir.vpk中提取cfg\user_default.scr到followme\cfg下边,文件内容的格式和settings_default.scr相同,不再赘述。
              用文本编辑器打开user_default.scr,在最下边的大括号之前添加一个小结,命令为violence_hblood,标题为#MyUser_Teen,类型为BOOL型,默认值为1,并把索引写到语言文件中:
              "violence_hblood"
              {
              "#MyUser_Teen"
              { BOOL }
              { "1" }
              }

              保存,重启游戏,我们预览一下:

              进入游戏测试功能,有效,大功告成。


              IP属地:山东7楼2020-05-08 22:39
              回复
                6.声音设置中的紫黑格子
                新版本CS起源中,官方预设了一个BUG,就是选项-声音中,MIC图标显示成了紫黑格子:

                我们一起来处理掉这个紫黑格子。
                打开VBME,点击紫黑格子,可以看到紫黑格子是一个ImagePanel,找到image参数,这个参数记录了vmt文件的名字,是resource/mic_meter_dead:

                这个BUG实际上是开发者粗心大意造成的,CS起源的引擎只能识别7.4及以下版本的VTF文件,而开发人员却稀里糊涂地生成了7.5版本。

                找到根源就好办了,从hl2\hl2_textures_dir.vpk中提取materials\vgui\resource\mic_meter_dead.vtf和mic_meter_live.vtf,放到followme\materials\vgui\resource下边。
                用VTFEdit将图片导出,再重新导入为7.4版本,或者用VTF Version Changer V2.1(klaihao.ys168.com/中的Source SDK\材质工具下有下载),将两个vtf文件的版本转换为7.4即可。我们进入游戏预览一下:

                大功告成。


                IP属地:山东8楼2020-05-08 22:41
                回复
                  7.启动时的Loading图片
                  就是这个:

                  提取hl2\hl2_textures_dir.vpk中,materials\console\startup_loading.vmt,放到followme\materials\console下,制作一个startup_loading.vtf。
                  打开PS,新建一个256*64的画布

                  将图层1填充为纯白色,新建一个文字图层,选好字体,输入Loading,并栅格化图层:

                  按住Ctrl键,点击Loading图层图标,将Loading文字选中,切换到通道面板,新建一个Alpha通道,这时候选区是保持的,选择油漆桶工具,将选区填充为纯白色:

                  切换回图层,将Loading图层栅格化,保存文件为32bitTGA格式,保存参数勾选Alpha通道,打开VTFEdit,导入刚才保存的TGA文件,保存选项中,限制贴图大小改为256*64:

                  导入后,左侧属性中勾选Point Sample、Clamp S和Clamp T三项:

                  将文件保存为startup_loading.vtf,放到followme\materials\console下,进游戏预览:

                  成了。


                  IP属地:山东9楼2020-05-08 22:45
                  回复
                    8.背景音乐添加
                    准备mp3文件,采样率不能高于44100,将其命名为gamestartup1.mp3,放入followme\sound\UI下边,进入游戏后会自动播放。如果有多首音乐,需要按顺序改名为gamestartup2.mp3、gamestartup3.mp3……
                    背景音乐可以这样做,但是背景图片不可以。
                    9.VGUI其他文件提示
                    到了这里,我们的VGUI修改基本告一段落了,成就系统在后续教程中单独拿出来开开刀。剩下的就是大家发挥自己的聪明才智和审美,修改出自己心仪的界面了。下边我提示一些res文件的功能:
                    选项界面的res文件在hl2\resource下,options开头的res文件,文件名就代表了是哪个页面,一看就懂:

                    创建服务器界面的res在cstrike\cstrike_pak_dir.vpk中,resource文件夹下,需要提取:

                    报告游戏错误(bug reporter),这个页面经常被我拿来改成说明,文件是:
                    hl2\resource\bugreporter.res
                    图形压力测试:
                    hl2\resource下的benchmarkdialog.res和benchmarkresultsdialog.res
                    基本上就这些吧,这一弹教程结束。


                    IP属地:山东10楼2020-05-08 22:46
                    回复
                      转完


                      IP属地:河北12楼2020-05-24 09:14
                      回复
                        想问下大佬们1.6也能如此吗?


                        IP属地:河北来自iPhone客户端13楼2023-12-11 05:10
                        收起回复