cs地图吧 关注:9,316贴子:340,247
  • 13回复贴,共1

--作图冷门技术分享--

取消只看楼主收藏回复

之前做了一个地图延伸功能插件,插件做完以后加完功能,发现其实很多功能地图本身可以实现,所以我在这里做个总结,目的一是作为一个作图经验记录和各位做图者分享,二是给我充当一个笔记的功能。


IP属地:浙江1楼2019-05-23 16:46回复
    下面开始介绍一些各位以前可能知道但很多人不用或者绕了很多弯用了很多步骤才实现很简单就能实现的功能。


    IP属地:浙江2楼2019-05-23 16:46
    回复
      首先是实体名称的技巧
      四个特殊名称部分老作图者会知道,但是教程里都找不到
      game_playerspawn
      game_playerleave
      game_playerdie
      game_playerjoin
      翻译过来就是玩家出生,玩家退出游戏,玩家死亡,玩家加入游戏
      当实体是这些名称的时候,玩家在这四个动作发生的时候无论玩家在何处实体都会以他为引发者触发。
      这个用处可以说很多,比如出生黑屏,可以用env_fade取名game_playerspawn,出生会持续黑屏,但记得勾选只对引发者有效的标记,还有playerhurt实体如果取这个名字的话玩家会扣血,可以做类似35hp的地图,然而我看很多地图扣血都是用门夹然后传送,这样耗费实体又耗费精力。


      IP属地:浙江3楼2019-05-23 16:51
      回复
        第二个是传送实体trigger_teleport,这个实体很多人吐槽说很多人一起传送会卡在一起。
        其实可以用别的方法解决。很多人知道地图有个实体叫做info_teleport_destination,殊不知teleport的目标不一定是这个实体,也可以是target,甚至是取了名字的固体实体,大家可以试试看。
        也就是说你可以做一个func_train实体,做成玩家不可穿透,在一个房间里四处游动,玩家传送到这个实体的时候目的地会随着train实体移动而改变,可以一定程度上解决卡在一起的问题。


        IP属地:浙江4楼2019-05-23 16:54
        收起回复
          第三个实体是trigger_relay实体,这个实体作为中继实体可以说是功能最强大的,很多bug可以用它来解决
          举个简单的例子,比如func_tank系列实体,light实体,wall_toggle实体声音实体、开关实体(包括tank 、laser和mortar)。这三个实体如果被button或者multiple这种一局内可多次触发的实体触发,可引起闯关地图部分我已经把机枪关了,他自己又开了的bug
          将relay设置为关就可以让他再也打不开,而开就再也关不上。
          但这个实体对door和trigger_hurt实体等无效,这个可进行实验了解到。


          IP属地:浙江5楼2019-05-23 16:59
          回复
            第四个实体是game_counter实体和momentary_door实体,这两个实体很有意思
            用counter实体可以引发door的开关,数值写上0就是关,而1就是开,其作用可以看做是瞬间开关的door实体。而0.5的话可以做到半开?(这个我猜的没测试过)
            同理对于有数值的实体可以用同样方法改变数字


            IP属地:浙江6楼2019-05-23 17:02
            回复
              第五个是func_water实体,这个实体可以实现水漫的效果,使用方法类似于door实体,或者说water实体就是可以穿透的door实体,这个很少有人使用
              第六个是multisource实体,这个实体可以控制实体开闭,而有些实体无法控制开闭的可以用它来控制,比如trigger_teleport和multiple实体。
              第七个是一种妙用,点实体一般是看不见的,但是学过插件的人会知道其实点实体可以被赋予模型和碰撞实体。也就是说他可以变成固体实体,具体用法是关掉物体属性界面中一项优化模式(在实体名称和属性栏中间右侧位置)
              手动添加键值,key为model(有没有s忘了,好像是没有的),键值写成models/xxx.mdl或者sprites/xxx.spr,你就可以让他拥有这个模型


              IP属地:浙江7楼2019-05-23 17:10
              回复
                第七个是匪徒逃脱实体escapezone,这个实体看起来是一个逃脱图用的实体,但是他有2个特性让他拥有其他的妙用。特别是在僵尸图中。
                1、时间到任务到CT胜利。放在一个永远够不到的位置,可以做到时间到了,CT自动胜利。类似的实体有爆破区域实体,反过来人质实体可以让T胜利。
                2、3局换一次队伍。这个我是玩了!!!jiangshi_ 系列地图后才发现的,我一直以为是什么点实体让玩家换队伍,结果是这个模式的特定设置。


                IP属地:浙江8楼2019-05-23 17:16
                回复
                  第八个是地图制作中fgd里的东西。有些实体,比如train实体、wall实体中有一个选项叫做内容物设置,这个设置中有个实体属性叫做攀爬区域。这个就是梯子的属性。
                  梯子是禁止不动的实体,而door、train这些实体则可移动,如果将其设为梯子的话就可以做出升降梯和移动梯了。
                  注意:这个选项有bug,就是实体移动的时候玩家不能触碰,不然会被弹飞。但是静止的时候则可以触碰,door实体设置为关闭状态下,梯子可以攀爬,与ladder实体无异(已测试)


                  IP属地:浙江9楼2019-05-23 17:20
                  回复
                    第九个是实体设置中的实体效果选项effects,这个选项很多人没有用,但恰恰是很有用的选项。
                    很多实体可以做到类似于全息投影的效果(15、16数字为键值也就是优化模式关闭可看到的value,下同),发光效果(4、8、2)、萤火虫飞舞效果(1)等
                    暂时想到这么多,希望能够帮到很多中阶的作图者(暗示自己是高阶作图者


                    IP属地:浙江10楼2019-05-23 17:25
                    回复
                      我又又又来更新了!


                      IP属地:浙江18楼2019-10-27 10:32
                      回复
                        很多加血图有人抱怨这个T又捡枪了,还是那个CT死后掉的,我该怎么办?
                        之前讲过game_playerdie这个名字,放给player_weaponstrip以后这个问题就消失了。
                        同样的,我第二局了,这图目标是抢夺武器,但是第一局成功的人手里还有上局存在的武器,怎么办啊?
                        game_playerspawn给weaponstrip,同时(注意创建实体的顺序要先创建剥夺武器实体)建立一个playerequip实体,然后取名也叫game_playerspawn,这样的话刷新或者第二局的时候武器就会变成equip设置的武器了。


                        IP属地:浙江19楼2019-10-27 10:36
                        收起回复
                          V大有张图叫vl_tiny什么的。。。具体名字忘了,叫最小的地图,里面用到了一个手法。
                          让地图存在一个一直移动且存在碰撞的光球。
                          这个实体比较难解释,存在一些编程的知识(我学了插件制作以后回过头来才理解的)。具体做法如下:
                          1、创建一个随便什么方块,然后转化为实体(建议用env_bubble实体,其他实体可能存在bug),这个方块的大小就是你这个光球的碰撞体积(这点有待确认)。
                          2、给这个方块贴上origin的纹理。因为如果不是origin纹理的话光球默认轴心为0 0 0,这样的话碰撞就会不正确。
                          3、打开实体属性,关闭优化模式。写入键值movetype,具体数值为11(这个值参见hlsdk_const.inc,插件制作内容为MOVETPYE_BOUNCEMISSLE,也就是移动但不存在重力),写入键值velocity,速度为{x,y,z}三个不同轴的速度,正负表示方向。之后是键值effect,数值64,这个是让光球发光用的。最后一个是controller,键值为53248(这个我不知道是什么用的)。
                          4、如果你觉得光球太普通了,可以加一个键值,models,这个具体参考cycler的做法,打开cycler实体属性关闭优化模式就能看到相同的键值。


                          IP属地:浙江20楼2019-10-27 10:52
                          收起回复
                            如何在游戏里制作一个游戏退出按钮(谨慎)
                            1、创建一个breakable实体,随便做成什么样子,能看见,能摸得着,能伤害。
                            2、实体取名叫quit(或者你喜欢的)
                            3、实体血量为1,标记全部不要勾选,实体随便什么材质。
                            4、实体目标设为quit。
                            5、完成。(原理为游戏死循环。。。但效果就是游戏退出)


                            IP属地:浙江21楼2019-10-27 11:02
                            回复