如何在Hammer中使用CS2地图的Entity Input Output 开发工具 教学 科普 CS2

我不当学长 管理员组 8月前 824

背景:

这篇文章是专门来讲解起源引擎中Entity的I/O system,如果你不是地图开发者或者是插件开发者,可能会听的一头雾水。但是如果你恰好有兴趣,欢迎一起讨论。

如果你觉得有讲得不对的地方,欢迎一起讨论

资源:

我创建了一个地图,专门用来做这次测试:https://steamcommunity.com/sharedfiles/filedetails/?id=3221309888

内容讲解:

地图中,当前button_0Output/Input状态:

下面重点讲一下FireUser1OnUser1AddOutput这几个名词

注意:这几个知识对于初学者来说非常难理解,可以先看关于I/O system V社官方文档:Category:IO System - Valve Developer Community (valvesoftware.com)

 

OnUser1它是一个条件(contition),这个条件在世界中产生了User1信号(也即是某个entity执行了FireUser1的命令)的时候被满足。在下面的例子中,User1这个信号是被logic_auto发出的,是它执行了FireUser1的命令

 

FireUser1 AddOutput(这个input可以看这篇文章:The Input named AddOutput | TF2Maps.net,说的非常详细)。 他们2个都是被entity执行的命令。其中AddOutput比较难以理解,简单说一个entity可以通过执行AddOutput命令,来为另外一个entity添加一个条件,至于AddOutput具体的parameter要怎么写,可以继续往下看

logic_auto 在 接收到一个MapSpawnevent之后,自己的OnMapSpawn条件被满足,然后执行一个FireUser1的命令

 dummy_0 由于 logic_auto 执行了一个FireUser1的命令,它收到了一个User1信号,自己的OnUser1的条件被满足,因此执行一个AddOutput命令,这个AddOutput命令可以为door_0 entity添加一个output的命令。

 

door_0 entitydummy_0 enity通过AddOutput命令,添加的的这个新的output命令是为了让 door_0 entity 在接收到User1信号时(也就是door_0OnUser1条件被满足),执行StartGlowing命令,发光效果在2秒后发生,StaringGlowing的这个命令可以被多次执行。

在整个世界中,User1的这个信号同时被dummy_0 door_0所接收,并且满足他们各自的OnUser1条件,其中的差别在于door_0OnUser1这个条件是由dummy_0 在接收到User1信号之后才创建的。

  1. logic_auto 发送 User1 信号
  2. dummy_0 接收到User1信号后,通过AddOutput命令,为door_0创造了一个名为OnUser1的条件
  3. door_0 在整个世界也会接收到User1信号(由logic_auto发出),因此它会在接收到User1信号的时候(就是满足了OnUser1),执行StartGlowing的命令(也就是发光)

最终整体效果是:

  • 服务器地图加载完成,2秒钟之后,门(door_0)这个entity会发光
  • 当按钮被击中,门会发光
  • 当门被击中,门将停止发光

CSGO插件分享-申明 1、本网站名称:CSGO插件分享-中文站  网址:https://bbs.csgocn.net
2、本站的宗旨在于为CSGO玩家提供一个插件分享的中文资源平台,多数插件来源于SourceMod论坛,并配以中文介绍和安装教程。
3、欢迎有能力的朋友共享有趣的CSGO插件资源。
4、本站资源大多为百度网盘,如发现链接失效,可以点: 这里进行反馈,我们会第一时间更新。
最新回复 (0)
返回