战地2吧 关注:143,059贴子:3,883,585

【清真限定】游戏内切换准星形状、颜色和武器弹药的实现方法

只看楼主收藏回复

RT,本来想用这东西研究武器自定义系统,不过还没搞出来。。。ap的切换准星颜色形状和透明度,以及youtube上看到的老外使用这个切换武器弹药已经做出来了,先来几张截图:







IP属地:广东1楼2017-02-23 15:33回复
    第一步,准备工作:
    1. 在你全息武器的准星下面加入你想要切换的其他准星,但是NodeShowVariable要写成DemoRecInterfaceShow,例如:
    hudBuilder.createPictureNode EoTechHud EoTechAltCrosshair 386 279 28 42
    hudBuilder.setPictureNodeTexture Ingame/CrossHair/EoTechDropReticle.tga
    hudBuilder.setNodeColor 1 0.1 0 0.9
    hudBuilder.setNodeAlphaVariable CrossHairColorAlpha
    hudBuilder.createPictureNode EoTechHud EoTechAltCrosshair_point 356 250 88 100
    hudBuilder.setPictureNodeTexture Ingame/CrossHair/AimPoint2.tga
    hudBuilder.setNodeColor 1 0.1 0 0.9
    hudBuilder.setNodeAlphaVariable CrossHairColorAlpha
    hudBuilder.setNodeShowVariable DemoRecInterfaceShow
    2. 在vars文件夹中准备好所有的“属性变量指示文件”,比如eo文件夹下放入red green blue holo dot五个文件,ammo放入buck和frag两个文件。这些“属性变量指示文件”直接复制粘贴然后重命名就好,不需要有具体内容。然后在cvar文件夹中放入默认的“属性变量指示文件”,比如eo文件夹放入red和holo,ammo文件夹放入buck。
    这些属性指示文件都可以随意命名,和下面的代码里的判定语句保持一致即可。
    3. 准备好所需切换的弹药T档。


    IP属地:广东2楼2017-02-23 15:39
    收起回复
      第二步,设置按钮菜单:
      1. 在menu_server\HUD\HudSetup\Communication中找到HudSetupCommunication.con,在run HudElementsDemoPlayerName.con下添加:run HudElementsEOTechComm.con,并将HudElementsEOTechComm.con粘贴到menu_server\HUD\HudSetup\Communication文件夹。
      2.打开HudElementsEOTechComm.con,将hudBuilder.setNodeLogicShowVariable EQUAL GuiIndex 251改为你的全息hud的GuiIndex,下面我设置了三个按钮和三行文字,分别形成两个TransformNode,如果要调节位置就调节TransformNode的位置,调节大小的话需要调节每个按钮和。
      3. 每个按钮的命令:
      hudBuilder.setButtonNodeConCmd "run EOTechScripts/EOTech.con color" 0
      hudBuilder.setButtonNodeConCmd "sound.playSound eotechclick" 0
      引号里的是命令,第一个表示到EOTech.con里执行color命令,第二个表示播放一个eotechclick的音效,可以自己去设置,比如设置成咔擦一声的机械感就很不错。后面的数字0表示指针松开的时候触发命令,1表示指针移到上去的时候触发,3是指针按下的时候触发,2是指针离开的时候触发,感谢@worldlife123 大佬的科普。
      执行con文件的命令,名字都可以改,但一定要和下面的Script里面的命令保持一致;而文字上的"CYCLE REC"之类的可以随便改。


      IP属地:广东3楼2017-02-23 15:51
      收起回复
        第三步,关于EOTech.con文件的原理说明:
        在第二步中,三个按钮分别执行rec,color,ammo三个指令:
        hudBuilder.setButtonNodeConCmd "run EOTechScripts/EOTech.con rec" 0
        hudBuilder.setButtonNodeConCmd "run EOTechScripts/EOTech.con color" 0
        hudBuilder.setButtonNodeConCmd "run EOTechScripts/EOTech_On.con ammo" 0
        也就是在按下按钮的时候,会给EOTech.con发送对应的指令作为v_arg1(如果后面有两个命令,那就再发送第二个作为v_arg2,不过在这里用不到),接下来,拿准星切换指令rec为例:
        var v_holo
        var v_dot
        fileManager.fileExists cvars/eo/holo -> v_holo
        fileManager.fileExists cvars/eo/dot -> v_dot
        If v_arg1 == rec
        If v_dot == 1
        fileManager.deleteFile cvars/eo/dot
        fileManager.copyFile vars/eo/holo cvars/eo/holo
        hudBuilder.setActiveObject EoTechHud EoTechAltCrosshair
        hudBuilder.setNodeShowVariable ShowIngameHud
        hudBuilder.setActiveObject EoTechHud EoTechAltCrosshair_point
        hudBuilder.setNodeShowVariable DemoRecInterfaceShow
        endIf
        If v_holo == 1
        fileManager.deleteFile cvars/eo/holo
        fileManager.copyFile vars/eo/dot cvars/eo/dot
        hudBuilder.setActiveObject EoTechHud EoTechAltCrosshair
        hudBuilder.setNodeShowVariable DemoRecInterfaceShow
        hudBuilder.setActiveObject EoTechHud EoTechAltCrosshair_point
        hudBuilder.setNodeShowVariable ShowIngameHud
        endIf
        endIf
        首先,定义两个准星形状指示变量v_holo和v_dot,如果cvar相应文件夹存在相应的文件,则该变量值为1,这里的需要第二步中事先将相应文件放好;
        接下来,如果接到rec命令,而且v_holo的值为1,那么就删掉holo文件,把dot文件复制粘贴过来,同时让hud里的全息准星不可见,红点准星可见;反之亦然,就实现了点击按钮实现准星循环的效果。颜色和弹药种类原理,里面的代码很简单,不多说了。


        IP属地:广东7楼2017-02-23 16:02
        回复
          请注意一定不要从这个帖子里复制粘贴代码,需要的代码和文件都在这里:
          链接:http://pan.baidu.com/s/1qYErNgo 密码:zh6v
          教程完毕,祝大家玩得开心


          IP属地:广东9楼2017-02-23 16:04
          回复
            另外链接失效了


            IP属地:上海10楼2017-02-23 16:12
            收起回复


              IP属地:广东来自Android客户端11楼2017-02-23 16:57
              收起回复
                差不多,AP自定义武器也就基本这样。


                12楼2017-02-23 17:12
                收起回复
                  666顶


                  来自手机贴吧13楼2017-02-23 17:31
                  收起回复
                    厉害了地狱火大佬


                    IP属地:广东14楼2017-02-23 18:39
                    收起回复
                      楼主py文件功力如何,估计也不会差


                      15楼2017-02-23 18:54
                      收起回复
                        马克


                        IP属地:江西17楼2017-02-23 19:22
                        回复


                          IP属地:河南来自Android客户端18楼2017-02-23 19:31
                          收起回复
                            这个看不懂了


                            来自Android客户端20楼2017-02-23 20:58
                            收起回复
                              其实当我看到视频时候,我惊讶的是好流畅,至少60帧,佩服


                              IP属地:北京21楼2017-02-23 23:43
                              收起回复