玩法:玩家对着按钮按E后,画面切换为小车的视角,WASD控制小车运动,鼠标右键控制小车跳跃,跳跃有3秒的冷却时间。小车被攻击后会损坏。这个小车功能如果结合其他具体的地图,可能会变得很有意思。
在做小车之前,要先大概了解CSGO中如何实现可控载具的制作。可控载具的制作方法有很多,CTX和geri43还有香蕉网上的一些大佬做的载具风格是各具特色的,感兴趣的人可以去反编译看看他们的小车的工作原理。下图是不需要使用VScript即可实现的可控载具的基本结构图。使用这个方法,不仅可以做出车,也可以做出船。这也是CSGO中做载具最简单但是BUG也最多的一种方法。(捂脸)
上图方式的载具,通过差速来转向,说白了就是在车体左右施加不同大小的力,使得合力方向出现偏移,从而改变车辆的方向。
那么就先来做R6小车的本体吧。如下图,先做车体,R6小车近似一个圆管,但为了保持平衡,我还是将其做成四轮车,然后将前两轮的部分做成透明,使得其看起来就像R6中的两轮小车一样。
参数如图设置即可,不妥的话可以自己调整。spawnflags勾选【Generate output on +USE】和【Don't take physics damage】。
如图,接着做出4个轮子,前两个轮子改用透明贴图。每个轮子起一个名字,并用phys_hinge将其与车体实体连接。注意,轮子和车体连接处的中心要对准,然后铰链的中心要置于轮子和车体的连接点。轮子同样使用func_physbox实体,flags勾选【Generate output on +USE】。
然后如图,在原本4个铰链的同样的位置再分别放上4个phys_thruster(推进器),左侧的推进器方向往右,右侧的推进器方向往左。左前轮推进器和右后轮推进器起相同的名字,右前轮推进器和左后轮推进器起相同的名字。前轮推进器力度均设为150,后轮推进器力度均设为100。对这里有什么不解的话请看载具结构图。然后在车后方的中央放置2个推进器,方向分别为前后,力量均为300。所有的推进器都要起名字,接触对象都设为车体实体,flags都勾选【Apply Force】、【Apply Torque】、【Orient Locally】、【Ignore Mass】。
如图,在车头前方正中心放置一个phys_keepupright,方向指向车辆正中心,这个实体用于平衡特定实体的方向,在这里是为了防止翻车。
如图,以车体中心为中心创建一个trigger_push,命名为pusher,class info如图设置,flags仅勾选【Physics Objects】。
然后如图,在可见的小车前上方中央放置一个point_viewcontrol实体,命名为cam1,flags勾选【Infinite Hold Time】。这个摄像头用来实现R6小车的摄像头功能。
然后放置一个logic_script实体用于连接脚本,命名为script。放置一个logic_timer,将[Refire Interval]设为0.1秒,输出如下图。
然后创建一个func_button作为启动小车的按钮,当然如果你要模拟R6的话,可以将按钮改成trigger_multiple或者logic_auto。命名为t_vehicle_button,Outputs如图,[Delay Before Reset]设为-1,flags勾选【Don't move】,【Toggle】,【Use Activates】。
然后如图,在任意地方放置一个game_ui实体,Outputs如图设置。flags勾选【Freeze Player】,【Hide Weapon】,【+Use Deactivates】。Outputs如下设置,请将图中各推进器名改成你的具体的推进器的targetname。
还有一点要补充的,最好能加个logic_auto,在OnMapSpawned时触发时向t_vehicle_base实体输入DisableMotion。
VScript脚本内容放楼下。