求生之路 2 .fgd 文件

From Valve Developer Community
Jump to: navigation, search
English (en)中文 (zh)
... Icon-Important.png

This page was translated by DaKang233 and Herobrine Ace. Anyone is welcome to add new content or fix errors.


有关的文件


来自:\common\Left 4 Dead 2\bin\left4dead2.fgd

//
// 求生之路2的实体
// 由大康和 HerobrineAce 翻译
//

@include "base.fgd"

@SolidClass base(func_brush) = func_block_charge : "Chargers 不能通过这个固体冲锋"
[
]

@PointClass base(Targetname) = info_ambient_mob_start : "环境尸潮(Mobs)的潜在起始位置(已过时)"
[
]

@PointClass base(Targetname) = info_ambient_mob_end : "环境尸潮(Mobs)的结束位置(已过时)"
[
]

@PointClass base(Targetname) = info_ambient_mob : "环境尸潮(Mobs)的通用开始/结束(位置)(已过时,谨慎使用!)"
[
]

@PointClass base(Targetname, Angles, Parentname) studioprop() = info_item_position :
	"这个实体表示地图中可能的物品位置。脚本可以"+ 
	"搜索这些实体并使用它们为不同的游戏模式生成对象"
[
	model(studio) : "辅助模型"
	group(integer) : "组" : 0 : "组的编号(组号)"
	rarity(choices) : "稀有度" : 0 : "此位置的物品稀有度" =
	[
		0 : "常见的"
		1 : "偶尔的"
		2 : "稀有的"
	]

	input SetGroup(integer) : "设置组号。"
	input SetRarity(integer) : "设置稀有度。"

	replace01(string) : "替换" : : "这是一个替换参数。它以 $variable 值的形式出现。生成组内在某处具有 $variable 的所有实体都将替换为该值的内容。示例:$color 255 0 0"
	replace02(string) : "替换" : : "这是一个替换参数。它以 $variable 值的形式出现。生成组内在某处具有 $variable 的所有实体都将替换为该值的内容。示例:$color 255 0 0"
	replace03(string) : "替换" : : "这是一个替换参数。它以 $variable 值的形式出现。生成组内在某处具有 $variable 的所有实体都将替换为该值的内容。示例:$color 255 0 0"
	replace04(string) : "替换" : : "这是一个替换参数。它以 $variable 值的形式出现。生成组内在某处具有 $variable 的所有实体都将替换为该值的内容。示例:$color 255 0 0"
	replace05(string) : "替换" : : "这是一个替换参数。它以 $variable 值的形式出现。生成组内在某处具有 $variable 的所有实体都将替换为该值的内容。示例:$color 255 0 0"
	replace06(string) : "替换" : : "这是一个替换参数。它以 $variable 值的形式出现。生成组内在某处具有 $variable 的所有实体都将替换为该值的内容。示例:$color 255 0 0"
	replace07(string) : "替换" : : "这是一个替换参数。它以 $variable 值的形式出现。生成组内在某处具有 $variable 的所有实体都将替换为该值的内容。示例:$color 255 0 0"
	replace08(string) : "替换" : : "这是一个替换参数。它以 $variable 值的形式出现。生成组内在某处具有 $variable 的所有实体都将替换为该值的内容。示例:$color 255 0 0"
	replace09(string) : "替换" : : "这是一个替换参数。它以 $variable 值的形式出现。生成组内在某处具有 $variable 的所有实体都将替换为该值的内容。示例:$color 255 0 0"
	replace10(string) : "替换" : : "这是一个替换参数。它以 $variable 值的形式出现。生成组内在某处具有 $variable 的所有实体都将替换为该值的内容。示例:$color 255 0 0"
]

@PointClass base(Targetname) studio("models/survivors/survivor_biker.mdl") = info_l4d1_survivor_spawn : "生成一个一代的生还者"
[
	character(choices) : "角色" : 5 : "哪一个生还者要在这里生成。" = 
	[
		4 : "比尔"
		5 : "佐伊"
		6 : "弗朗西斯"
		7 : "路易斯"
	]
	
	input SpawnSurvivor(void) : "生成生还者。"
]

@PointClass base(Targetname) = env_airstrike_indoors : "室内空袭效果(摇摇欲坠的天花板)"
[
	height(choices) : "效果高度" : -1 : "指定用于此效果的动画序列。 (地板到天花板的距离)" =
	[
		-1: "自动"
		0: "128 单位"
		1: "144 单位"
		2: "152 单位"
		3: "160 单位"
		4: "190 单位"
		5: "300 单位"
		6: "320 单位"
	]

	input DoEffect(void) : "展示效果一次。"
]


@PointClass base(Targetname, Angles, Parentname) studio() = env_airstrike_outdoors : "户外空袭效果(爆炸屋顶、地面)"
[
	model(studio) : "模型" : "models/props_destruction/general_dest_roof_set.mdl" : "模型名称"
	modelgroup(target_destination) : "动画组" : "" : "与我们的序列一起编排的一个或多个 props_dynamic 的目标名称。" 
	sequence1(string) : "随机序列 1" : "" : "效果开始时模型播放的序列。"
	sequence2(string) : "随机序列 2" : "" : "效果开始时模型播放的序列。"
	
	input DoEffect(void) : "展示效果一次。"
]

@PointClass base(Targetname,Angles,Parentname) studioprop("models/editor/camera.mdl") = point_viewcontrol_multiplayer : 
	"控制所有玩家视野的相机实体。当它处于激活状态时,玩家将以镜头的视角观看。" 
[
	fov(float) : "视野" : "90" : "玩家的视野。"
	fov_rate(float) : "切换到目标视野的秒数" : "1.0" : "切换到指定视野所需的时间"
	target_entity(target_destination): "目标实体" : "" : "要移动到的实体。 [完成移动后将匹配(目标实体的)原点和角度]。"
	interp_time(float) : "到达目标实体的秒数" : "1.0" : "到达目标实体的原点和角度所需的时间。"
	
	spawnflags(flags) =
	[
		1: "完成移动时禁用" : 1
		2: "设置视野" : 0
	]

	// 输入
	input Enable(void) : "启用 point_viewcontrol_multiplayer,并开始控制玩家的视野。"
	input Disable(void) : "禁用 point_viewcontrol_multiplayer,并停止控制玩家的视野。"
	input StartMovement(void) : "开始移动到目标实体。"
]

@PointClass base(Targetname,Angles,Parentname) studioprop("models/editor/camera.mdl") = point_viewcontrol_survivor : 
	"控制玩家视野的相机实体。通过输入从相机位置移动到第一人称视图。" 
[
	fov(float) : "视野" : "90" : "玩家视野(如果勾选了“设置视野”标志)。"
	fov_rate(float) : "切换到目标视野的秒数" : "1.0" : "达到指定视野所需的时间。"

	spawnflags(flags) =
	[
		1: "完成移动时禁用" : 1
		2: "设置视野" : 0
	]

	// 输入
	input Enable(string) : "启用 point_viewcontrol,并开始控制玩家的视图。传递一个幸存者名称来控制该幸存者的视图。(比如'!zoey')"
	input Disable(void) : "禁用 point_viewcontrol,并停止控制玩家的视图。"
	input StartMovement(void) : "开始移动到第一人称视图。"
]

@PointClass base(Targetname,Angles,Parentname) studioprop("models/editor/camera.mdl") = point_deathfall_camera : 
	"玩家坠落身亡的摄像机实体。" 
[
	fov(float) : "视野" : "90" : "玩家视野。"
	fov_rate(float) : "切换到目标视野的秒数" : "1.0" : "达到指定视野所需的时间。"
]

//-------------------------------------------------------------------------
//
// 逻辑实体
//
//-------------------------------------------------------------------------
@PointClass color(0 0 255) base(Targetname) iconsprite("editor/choreo_scene.vmt") = logic_choreographed_scene :
	"管理一个或多个演员的编排场景。"

[
	// 键
	SceneFile(scene) : "场景文件"

	// 链接
	target1(target_destination) : "目标 1"
	target2(target_destination) : "目标 2"
	target3(target_destination) : "目标 3"
	target4(target_destination) : "目标 4"
	target5(target_destination) : "目标 5"
	target6(target_destination) : "目标 6"
	target7(target_destination) : "目标 7"
	target8(target_destination) : "目标 8"

	busyactor(choices) : "如果一个演员在说话……" : 1 : "如果这个场景需要的演员在被告知开始时已经在说话,该如何做。" =
	[
		0: "立即开始"
		1: "等待演员完成"
		2: "在下一个中断事件中中断"
		3: "在下一个中断事件中取消"
	]

	// 输入
	input Start(void) : "开始播放场景文件。"
	input Pause(void) : "暂停播放场景文件。"
	input Resume(void) : "如果场景已暂停,则恢复播放。"
	input Cancel(void) : "取消播放场景文件。"
	input CancelAtNextInterrupt(void) : "在场景中的下一个中断事件中取消场景的播放。"
	input PitchShift(float) : "将音高相乘。"

	input InterjectResponse(string) : "寻找可以在场景继续播放时响应指定概念字符串的演员。"

	input StopWaitingForActor(void) : "停止等待演员停止说话。"

	// 输出
	output OnStart(void) : "场景已开始。"
	output OnCompletion(void) : "场景已完成。"
	output OnCanceled(void) : "场景已取消。"
	output OnTrigger1(void) : "场景触发器 1"
	output OnTrigger2(void) : "场景触发器 2"
	output OnTrigger3(void) : "场景触发器 3"
	output OnTrigger4(void) : "场景触发器 4"
	output OnTrigger5(void) : "场景触发器 5"
	output OnTrigger6(void) : "场景触发器 6"
	output OnTrigger7(void) : "场景触发器 7"
	output OnTrigger8(void) : "场景触发器 8"
	output OnTrigger9(void) : "场景触发器 9"
	output OnTrigger10(void) : "场景触发器 10"
	output OnTrigger11(void) : "场景触发器 11"
	output OnTrigger12(void) : "场景触发器 12"
	output OnTrigger13(void) : "场景触发器 13"
	output OnTrigger14(void) : "场景触发器 14"
	output OnTrigger15(void) : "场景触发器 15"
	output OnTrigger16(void) : "场景触发器 16"

	onplayerdeath(choices) : "On player death" : 0 : "如果玩家死亡,该实体应该怎么做" =
	[
		0 : "不做任何事"
		1 : "Cancel Script and return to AI (取消脚本并返回AI) "
	]
]

@PointClass color(0 0 255) base(Targetname) iconsprite("editor/choreo_manager.vmt") = logic_scene_list_manager :
	"Manages a list of logic_choreographed_scene entities. Store choreo scenes in them in order that they will be played by other inputs. Whenever a scene plays, the manager will remove all scenes before that one in the list. The name of another logic_scene_list_manager can be entered in a slot instead of an invididual scene, which will cause all scenes in that manager to be removed when a later scene in this list is played. " +
	"管理 logic_choreographed_scene 实体的列表。将编排场景存储在其中,以便其他输入播放它们。每当播放场景时,管理器将删除列表中该场景之前的所有场景。另一个 logic_scene_list_manager 的名称可以输入槽(slot)而不是单个场景,这将导致该管理器中的所有场景在播放此列表中的后续场景时被删除。"
[
	scene0(target_destination) : "场景 1" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene1(target_destination) : "场景 2" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene2(target_destination) : "场景 3" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene3(target_destination) : "场景 4" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene4(target_destination) : "场景 5" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene5(target_destination) : "场景 6" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene6(target_destination) : "场景 7" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene7(target_destination) : "场景 8" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene8(target_destination) : "场景 9" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene9(target_destination) : "场景 10" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene10(target_destination) : "场景 11" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene11(target_destination) : "场景 12" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene12(target_destination) : "场景 13" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene13(target_destination) : "场景 14" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene14(target_destination) : "场景 15" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"
	scene15(target_destination) : "场景 16" : "" : "logic_choreographed_scene 或 logic_scene_list_manager 的名称。"

	// 输入
	input Shutdown(void) : "删除管理器及其引用的所有场景(以及嵌入在此中的 logic_scene_list_manager 引用的所有场景)。"
]

@PointClass base(BaseNPC, Parentname, RenderFields, Shadow) studio() = generic_actor : "通用演员 NPC"
[
	model(studio) : "模型"

	hull_name(choices) : "大小类型(Hull Type)" : "人" =
	[
		"HUMAN_HULL" : "人"
		"WIDE_HUMAN_HULL" : "宽的"
		"TINY_HULL" : "小的"
		"MEDIUM_HULL" : "中等"
		"LARGE_HULL" : "大的"
	]
]

@PointClass base(prop_dynamic) studioprop() sphere(fademindist) sphere(fademaxdist) = prop_car_glass :
	"这个实体和 prop_dynamic 一样,但带有汽车报警器。"
[
]

@PointClass base(prop_physics, EnableDisable) studioprop() sphere(fademindist) sphere(fademaxdist) = prop_car_alarm :
	"该实体与 prop_physics 相同,但带有汽车报警器。"
[
	output OnCarAlarmStart(void) : "汽车警报器响起。"
	output OnCarAlarmEnd(void) : "汽车警报器关闭。"
	output OnCarAlarmChirpStart(void) : "(译者添加的)汽车开始响起“嘀嘀”声时触发。"
	output OnCarAlarmChirpEnd(void) : "(译者添加的)汽车停止响起“嘀嘀”声时触发。"
]

@SolidClass = func_ladder : 
	"梯子。玩家将能够沿着这个固实体的一侧自由移动,就好像它是一个梯子一样。" +
	"如果你使用模型道具来直观表示地图中的梯子," +
	"将 toolsinvisibleladder 材质应用到 f​​unc_ladder 固实体的可攀爬面。"
[
]

@SolidClass base(Trigger) = trigger_auto_crouch : "允许玩家在碰到触发器时自动蹲下。"
[
]

@SolidClass base(Trigger) = trigger_active_weapon_detect : "检测武器在此区域后输出内容。"
[
	weaponclassname(string) : "要检测的武器" : "weapon_dieselcan" : "激活所必须的武器类型名"
	
	output OnTouchedActiveWeapon(void) : "触碰了符合要求的玩家武器时触发"
]

@PointClass base(Targetname) = player_weaponstrip : "剥夺玩家的武器。"
[	
	input Strip(void) : "剥夺全部武器。"
	//input StripWeaponsAndSuit(void) : "剥夺所有武器和套装(?,原文为 suit)。"
	input StripActiveWeapon(void) : "剥夺玩家选中的武器。"
	input StripWeaponByClassname(string) : "按实体名称移除武器,例如“weapon_dieselcan”"
]

@BaseClass = NavBlocker
[
	input BlockNav(string) : "开始阻挡导航区域。"
	input UnblockNav(void) : "停止阻挡导航区域。"

	teamToBlock(choices) : "要阻挡的队伍" : -1 : "这个实体应该阻挡的队伍。" =
	[
		-1 : "每个人"
		2 : "生还者"
		3 : "感染者"
	]
	
	affectsFlow(choices) : "影响导航路线(Flow)?" : 0 : "这个 func_nav_blocker 是否在关卡中阻挡导航路线?只有启用此功能的 func_nav_blocker 实体才会在阻挡/停止阻挡时导致导航路线重新计算。" =
	[
		0 : "否"
		1 : "是"
	]
]

@SolidClass base(Targetname, NavBlocker) = func_nav_blocker : "一个固体实体,可以阻挡接触其体积的导航区域。" 
[
]

//@PointClass obb(boxmins, boxmaxs) base(Targetname, Angles, NavBlocker) = point_nav_blocker : "一个点实体,可以阻挡接触其体积的导航区域。"
//[
//	boxmins(vector) : "开始点" : "-8 -8 -8"
//	boxmaxs(vector) : "结束点" : "8 8 8"
//]

@SolidClass base(Targetname, EnableDisable) = func_nav_avoidance_obstacle : "一个固实体,告诉机器人避免接触它体积接触的导航区域。" 
[
]

@BaseClass = NavAttributeRegion
[
	spawnFlags(flags) =
	[
		2: "Empty (没有游荡者)" : 0
		32: "Battlestation" : 0
		64: "Finale" : 0
		128: "Mission Start" : 0
		256: "Battlefield" : 0
		1024: "Not Clearable" : 0
		2048: "Checkpoint" : 0
		4096: "Obscured" : 0
		8192: "No mobs" : 0
		32768: "Rescue Vehicle" : 0
		65536: "Rescue Closet" : 0
		524288: "No Threat" : 0
		1048576: "Lying down" : 0
	]
	precise(choices) : "Precise" : 0 =
	[
		0 : "关"
		1 : "开"
	]
	crouch(choices) : "Crouch (蹲伏)" : 0 =
	[
		0 : "关"
		1 : "开"
	]		
	stairs(choices) : "Stairs (楼梯)" : 0 =
	[
		0 : "关"
		1 : "开"
	]
	remove_attributes(integer) : "移除属性" : 0 : "应该从导航区域中删除属性而不是应用它们吗?"
	tank_only(choices) : "Tank Only (仅 Tank)" : 0 =
	[
		0 : "关"
		1 : "开"
	]
	mob_only(choices) : "Mob Only (仅暴徒)" : 0 =
	[
		0 : "关"
		1 : "开"
	]

	// 输入
	input ApplyNavAttributes(void) : "应用导航属性。"
]

@SolidClass base(Targetname,NavAttributeRegion) = func_nav_attribute_region : "一个固实体,它包含要在(实体)生成期间应用于导航区域的属性。"
[
]

@PointClass wirebox(mins, maxs) base(Targetname,NavAttributeRegion) = point_nav_attribute_region : "一个点实体,它包含要在(实体)生成期间应用于导航区域的区域的属性。"
[
	mins(vector) : "开始点" : "-4 -128 -80"
	maxs(vector) : "结束点" : "4 128 80"
]

@SolidClass base(Targetname, Parentname, Origin, RenderFields) = func_elevator :
	"垂直移动的固实体。"
[
	top(vecline) : "顶楼位置"
	bottom(vecline) : "底楼位置"

	speed(integer) : "速度" : 100 : "电梯移动的速度,以英寸/秒 (1英寸=1 Hammer 单位) 为单位。"
	acceleration(integer) : "加速度" : 100 : "电梯接近其目标速度的加速度,以英寸/秒/秒为单位。"
	blockdamage(float) : "阻挡伤害" : 0 : "每帧对阻挡电梯的任何实体造成的伤害量。"
	startsound(sound) : "当电梯开始移动时应播放的声音。"
	stopsound(sound) : "当电梯停止移动时应播放的声音。"
	disablesound(sound) : "当电梯被停用时应播放的声音。"

	// 输入
	input MoveToFloor(string) : "启动电梯移动到指定楼层。"
	input Disable(void) : "停止电梯并防止其再次移动。"
	input SetMaxSpeed(float) : "设置电梯的最高速度。"

	// 输出
	output OnReachedTop(string) : "当电梯到达顶部时触发。"
	output OnReachedBottom(string) : "当电梯到达底部时触发。"
]

@PointClass base(Targetname, Parentname, Angles) iconsprite("editor/info_target.vmt") = info_elevator_floor : 
	"电梯楼层目标。(译者注:代表一个楼层)"
[
	// 输出
	output OnReachedFloor(void) : "当电梯到达该楼层时触发。"
]

@PointClass base(Targetname) = logic_director_query : "允许根据导演的状态触发输出"
[
	minAngerRange( integer ) : "最小愤怒值" : 1  : "最小重新映射的愤怒值范围"
	maxAngerRange( integer ) : "最大愤怒值" : 10 : "最大重新映射的愤怒值范围"

	noise( choices ) : "干扰(不确定性)" : 0 : "你想要愤怒的结果有多不稳定?" =
	[
		0  : "“纯”愤怒值。无干扰。"
		25  : "有些干扰"
		50  : "随机和绝对的平均混合"
		75 : "很多干扰"
		100 : "完全干扰"
	]
	

	// 输入
	input HowAngry(void) : "询问导演有多愤怒。"

	// 输出
	output OutAnger(integer) : "HowAngry 输入将导致此输出触发并重新映射愤怒值。"
	output On20SecondsToMob(void) : "在生成尸潮前 20 秒触发。"
	output On60SecondsToMob(void) : "在生成尸潮前 60 秒触发。"
]


@PointClass base(Targetname) = info_director
[
	// 输入
	input PanicEvent(void) : "当发生导演应该知道的重大事件时触发。(刷尸潮)"
	input ScriptedPanicEvent(string) : "当自定义恐慌事件(尸潮)想要发生时触发。"
	input ForcePanicEvent(void) : "触发恐慌事件,不管发生了什么。(说白了就是强制刷尸潮)"
	input EndCustomScriptedStage(void) : "结束自定义脚本阶段。"
	input ForceSurvivorPositions(void) : "让每个幸存者站在 info_survivor_position。"
	input ReleaseSurvivorPositions(void) : "让幸存者再次自由活动。"
	input FireConceptToAny(string) : "向任何能够说出它的幸存者发射一个说话概念。"
	input IncrementTeamScore(integer) : "增加一个团队的分数。 (2=幸存者,3=感染者)(清道夫使用)"
	input StartIntro(void) : "开场动画开始时触发。"
	input FinishIntro(void) : "开场动画结束时触发。"
	input BeginScript(string) : "执行一个导演脚本。"
	input EndScript(void) : "停止执行导演脚本。"

	// 日志输入
	input CreateNewJournal(string) : "创建新日志。"
	input WriteToJournal(string) : "将任务添加到 I/O 日志。"
	input ExecuteJournal(string) : "执行指定日志中的所有任务。"
	
	input EnableTankFrustration(void) : "可用于启用坦克挫败计(即你打对抗时操控了 Tank 后长时间不攻击生还者得到的超时)。"
	input DisableTankFrustration(void) : "可用于禁用坦克挫败计(即你打对抗时操控了 Tank 后长时间不攻击生还者得到的超时)。"


	// 输出
	output OnGameplayStart(void) : "当地图加载,所有玩家都加入并开始游戏时触发。"
	output OnCustomPanicStageFinished(void) : "当自定义恐慌事件或自定义结局的每个阶段完成时触发。"
	output OnPanicEventFinished(void) : "当恐慌事件完成时触发。"
	output OnTeamScored(void) : "当团队将清道夫物品放入清道夫目标(例如发电机)时触发。"

	output OnScavengeRoundStart(void) : "当清道夫回合开始时触发。"
	output OnScavengeOvertimeStart(void) : "当计时器为 0,比赛进入加时赛时触发。"
	output OnScavengeOvertimeCancel(void) : "当计时器的时间增加了,加时赛结束时触发。"
	output OnScavengeTimerExpired(void) : "当时间已到,游戏没有进入加时赛时触发。"
	output OnScavengeIntensityChanged(Integer) : "当强度等级发生了变化时触发。1 = 最高强度,随着数字变大而降低。(Intensity level has changed. 1 = highest intensity, decreases as number gets larger.)"
	
	output OnUserDefinedScriptEvent1(void) : "当从 Squirrel 脚本触发的通用用户定义事件时触发"
	output OnUserDefinedScriptEvent2(void) : "当从 Squirrel 脚本触发的通用用户定义事件时触发"
	output OnUserDefinedScriptEvent3(void) : "当从 Squirrel 脚本触发的通用用户定义事件时触发"
	output OnUserDefinedScriptEvent4(void) : "当从 Squirrel 脚本触发的通用用户定义事件时触发"
	
]

@PointClass base(Targetname) iconsprite("editor/info_game_event_proxy.vmt") = info_game_event_proxy
[
	event_name(string) : "要生成的事件名称"
	range(float) : "Range" : "50" : "玩家必须离多近才能看见。以英尺(不是英寸)为单位。"

	spawnflags(flags) =
	[
		1: "当看到时自动展示提示给他人" : 0
	]

	// Inputs
	input GenerateGameEvent(void) : "生成指定的游戏事件。(此实体作为 SUBJECT 发送)"
]

@PointClass base(Targetname) = game_scavenge_progress_display
[
	Max(float) : "最大值" : "0" : "要收集的物品数。"

	// 输入
	input TurnOn(void) : "打开指示器。"
	input TurnOff(void) : "关闭指示器。"
	input SetTotalItems(integer) : "设置清道夫物品的目标(总)数量。"
]


@SolidClass base( Targetname, EnableDisable ) = fog_volume : "控制地图中雾的实体。"
[
	FogName(target_destination) : "雾的名称" : : "与此固实体关联的雾实体(env_fog_controller)的名称。"
	PostProcessName(target_destination) : "Postprocess Name(后期处理名称)" : : "与此固实体关联的后期处理实体(postprocess_controller)的名称。"
	ColorCorrectionName(target_destination) : "ColorCorrection Name(色彩纠正名称)" : : "与此固实体关联的 color_correction 实体的名称。"
]

@FilterClass base(BaseFilter) iconsprite("editor/filter_team.vmt") = filter_activator_team :
	"按激活团队过滤的过滤器。"
[
	filterteam(choices) : "过滤的团队编号" : 2 : "要过滤的团队编号。如果过滤模式为允许,则只有其实体"+
		"团队编号匹配给定团队将通过过滤器(说白了就是只允许这个团队通过过滤器)。如果过滤模式是不允许,"+
		"除团队编号与给定团队匹配的实体外,所有实体都将通过过滤器(说白了就是不允许这个团队通过过滤器)。" =
	[
		2 : "生还者"
		3 : "感染者"
	]
]

@FilterClass base(BaseFilter) iconsprite("editor/filter_team.vmt") = filter_activator_infected_class :
	"按激活者的感染者类型过滤的过滤器。"
[
	filterinfectedclass(choices) : "过滤感染者的类型" : 2 : "要过滤的感染者类型。如果过滤模式为允许,则只有其实体"+
		"团队编号匹配给定团队将通过过滤器(说白了就是只允许这个实体通过过滤器)。如果过滤模式是不允许,"+
		"除团队编号与给定团队匹配的实体外,所有实体都将通过过滤器(说白了就是不允许这个实体通过过滤器)。" =
	[
		1 : "Smoker"
		2 : "Boomer"
		3 : "Hunter"
		4 : "Spitter"
		5 : "Jockey"
		6 : "Charger"
		8 : "Tank"
	]
]

@FilterClass base(BaseFilter) = filter_melee_damage :
	"过滤伤害的伤害过滤器,只允许近战伤害。damagetype 指定允许的近战伤害类型"
[
	damagetype(choices) : "伤害类型" : 64 : "要过滤的伤害类型。允许指定的伤害类型。" =
	[
		0 : "所有近战武器伤害"
		4 : "只允许锋利的近战武器的伤害"
		128 : "只允许非锋利的近战武器的伤害"
	]
]

@FilterClass base(BaseFilter) = filter_health :
	"一种伤害过滤器,根据造成伤害的实体是否使用了肾上腺素进行过滤。"
[	
	adrenalinepresence(choices) : "允许的肾上腺素激活状态" : 1 : "允许攻击者的这种肾上腺素状态通过过滤器。" =
	[
		0 : "仅非激活"
		1 : "仅激活"
	]
	
	healthmin(integer) : "最小生命值" : 0 : "将通过此过滤器的玩家的生命值的下限(包括这个下限)。"
	healthmax(integer) : "最大生命值" : 100 : "将通过此过滤器的玩家生命值的上限(包括这个上限)。"
]


@PointClass base(prop_dynamic_base,EnableDisable) studioprop("models/w_models/weapons/w_minigun.mdl") = prop_minigun : "玩家可以使用的一代机枪。"
[
	model(studio) : "模型" : "models/w_models/weapons/w_minigun.mdl"
	MaxYaw(float) : "最大偏航角(Yaw)" : "90" : "机枪可以转动的偏航角范围。"
	MaxPitch(float) : "最大俯仰角(Pitch)" : "60" : "机枪可以往下瞄准的最大角度。"
	MinPitch(float) : "最小俯仰角(Pitch)" : "-30" : "机枪可以往上瞄准的最大角度。"

	// 输出
	output OnFireStart(void) : "当机枪旋转并开始射击时触发。"
	output OnFireStop(void) : "当机枪停止射击时触发。"
]


@PointClass base(prop_dynamic_base,EnableDisable) studioprop("models/w_models/weapons/50cal.mdl") = prop_mounted_machine_gun: "50 口径机枪(二代机枪)(可以使用)"
[
	model(studio) : "模型" : "models/w_models/weapons/50cal.mdl"
	MaxYaw(float) : "最大偏航角" : "90" : "机枪可以转动的偏航角范围。"
	MaxPitch(float) : "最大俯仰角" : "60" : "机枪可以往下瞄准的最大角度。"
	MinPitch(float) : "最小俯仰角" : "-30" : "机枪可以往上瞄准的最大角度。"

	// 输出
	output OnFireStart(void) : "当机枪旋转并开始射击时触发。"
	output OnFireStop(void) : "当机枪停止射击时触发。"
]


@PointClass base(prop_dynamic_base,EnableDisable) studioprop() = prop_health_cabinet : "医疗箱"
[
	model(studio) : "模型" : "models/props_interiors/medicalcabinet02.mdl"
	HealthCount(integer) : "止痛药的数量" : 1 : "里面的止痛药/急救包数量(1-4)"
]

@PointClass base(Targetname, Angles, Parentname) color(255 100 100) studio("models/survivors/survivor_coach.mdl") = info_survivor_position : "逃脱结局时放置幸存者的位置"
[
	Order(integer) : "顺序" : 1 : "基于生还者上救援载具顺序的地点指数。(1-4)"
	SurvivorName(string) : "生还者名称" : "" : "强迫这个幸存者使用这个位置(佐伊、路易斯等)"
	SurvivorIntroSequence(string) : "幸存者开场动画" : "" : "当开场动画开始时应播放的导航。"
	GameMode(string) : "游戏模式" : "" : "仅将此位置用于特定的游戏模式(合作、对抗、生还者、清道夫)"
	SurvivorConcept(string) : "生还者概念" : "" : "将生还者传送到此处时播放的响应规则概念(详见'响应系统')"
	HideWeapons(choices) : "隐藏武器" : 0 : "锁定此位置时隐藏生还者的武器。" =
	[
		0 : "否"
		1 : "是"
	]

	// 输入
	input SetViewControl(string) : "如果一个生还者被分配到这个位置,将他的视图设置为一个 point_viewcontrol 实体"
]

@PointClass base(Targetname, PlayerClass, Angles) studio("models/survivors/survivor_coach.mdl") = info_survivor_rescue : "生还者救援点(房间复活用的)"
[
	rescueEyePos(vecline) : "等待救援的生还者的眼睛位置"
	model(studio) : "模型" : "models/editor/playerstart.mdl"
]

@PointClass base(Targetname, Angles, EnableDisable) studioprop() = trigger_finale : "结局触发器"
[
	model(studio) : "模型" : "models/props_misc/german_radio.mdl"

	disableshadows(choices) : "禁用阴影" : 0 : "用于禁用此实体上的动态阴影。" =
	[
		0 : "否"
		1 : "是"
	]

	FirstUseDelay(float) : "首次使用延迟" : "0" : "对于两部分的结局开始,允许在另一个使用之前延迟这么多秒。"
	UseDelay(float) : "使用延迟" : "0" : "在使用后多少秒之后才开始结局。"

	type(choices) : "结局类型" : 0 : "指定要触发的结局风格" =
	[
		0 : "默认结局"
		1 : "长途救援结局"
		2 : "自定义结局"
		4 : "清道夫结局"
	]

	ScriptFile(string) : "脚本文件"
	
	VersusTravelCompletion(float) : "对抗模式积分" : "0.2" : "通过前往决赛获得多少对抗分数(在长途救援结局中无效)"

	
	IsSacrificeFinale(choices) : "是否启用牺牲结局" : 0 : "如果为是,则必须有一名幸存者可以在逃生车辆外执行某些操作。" =
	[
		0 : "否"
		1 : "是"
	]
	
	
	input FinaleEscapeFinished(void) : "给予生还者胜利。"
	input FinaleEscapeForceSurvivorPositions(void) : "让生还者在逃离载具上站稳。(说白了就是传送到指定的 info_survivor_positon)"
	input FinaleEscapeVehicleReadyForSurvivors(void) : "让生还者说出车辆现在是如何停止的。(说白了就是强迫人机去到救援载具上,显示消息' ! 救援到了,快上来!'。"
	input ForceFinaleStart(void) : "现在启动结局。"
	input GauntletStopPanic(void) : "将长途救援结局状态从持续恐慌模式(持续刷尸潮)中移出。(说白了就是暂停尸潮的刷新)"
	input AdvanceFinaleState(void) : "增加结局阶段。"
	input SacrificeEscapeFailed(void) : "表示生还者未能通过逃生要求(牺牲失败的那个界面上的要求)"
	input SacrificeEscapeSucceeded(void) : "表示生还者符合逃生要求"
	input SacrificePlayerBeginsRun(void) : "玩家 (!Activator) 已承诺去牺牲"
	output FinaleEscapeStarted(void) : "当生还者开始逃跑时触发。(说白了就是救援载具来了,但没到位置上)"
	output FinaleWon(void) : "当生还者赢了结局时触发。"
	output FinaleLost(void) : "当生还者输掉了结局时触发。"
	output FirstUseStart(void) : "当一个玩家第一次使用 trigger_finale 时触发。"
	output UseStart(void) : "当玩家使用 trigger_finale 触发结局时触发。"
	output FinaleStart(void) : "当结局开始时触发。"
	output FinalePause(void) : "在每个阶段之间的暂停期间触发。"
	output EscapeVehicleLeaving(void) : "当逃离载具开始离开时触发。"
]

@PointClass base(Targetname, Angles) studioprop() = trigger_standoff : "(已过时)Standoff Trigger(结局相关?)"
[
	model(studio) : "模型(此实体已过时)" : "models/props_misc/german_radio.mdl"
	spawnflags(flags) =
	[
		512: "禁止玩家使用" : 0
	]

	disableshadows(choices) : "禁用阴影(此实体已过时)" : 0 : "用于禁用此实体上的动态阴影。" =
	[
		0 : "否"
		1 : "是"
	]

	UseDuration(float) : "使用时长(此实体已过时)" : "0" : "幸存者必须在几秒内使用触发器来开始结局(0 是立即开始)。"
	UseDelay(float) : "使用延迟(此实体已过时)" : "0" : "在使用后多少秒之后开始结局。"

	input FinaleEscapeFinished(void) : "给予生还者胜利。"
	input FinaleEscapeForceSurvivorPositions(void) : "让生还者在逃离载具上站稳。(说白了就是传送到指定的 info_survivor_positon)"
	input FinaleEscapeVehicleReadyForSurvivors(void) : "让生还者说出车辆现在是如何停止的。(说白了就是强迫人机去到救援载具上,显示消息' ! 救援到了,快上来!'。"
	input ForceFinaleStart(void) : "现在启动结局。"
	output FinaleEscapeStarted(void) : "当生还者开始逃跑时触发。(说白了就是救援载具来了,但没到位置上)"
	output FinaleWon(void) : "当生还者赢了结局时触发。"
	output FinaleLost(void) : "当生还者输掉了结局时触发。"
	output FirstUseStart(void) : "当一个玩家第一次使用 trigger_finale 时触发。"
	output UseStart(void) : "当玩家使用 trigger_finale 触发结局时触发。"
	output FinaleStart(void) : "当结局开始时触发。"
	output FinalePause(void) : "在每个阶段之间的暂停期间触发。"
	output EscapeVehicleLeaving(void) : "当逃离载具开始离开时触发。"
]

@SolidClass = info_changelevel : 
	"标记关卡转换的实体\n" +
	"在两个地图中放置一个 info_landmark,标记每个地图中的“相同”位置。\n"+
	"提示和技巧:要在下一个关卡触发事件,请使用 OnLevelChange 输出打开当前关卡中的 env_global。"+
	"在下一个关卡创建一个 logic_auto 来检查 env_global 设置的状态。\n\n"+
	"要控制哪些实体通过关卡转换,请创建一个或多个 info_transitions 并"+
	"为它们指定与 landmark 相同的名称。 info_transition(s) 中的任何实体都将转到下一张地图。"
[
	targetname(target_source) : "名称"
	map(string) : "下个地图的名称"
	landmark(target_destination) : "Landmark 目标名"
	spawnflags(flags) =
	[
		2: "禁用接触" : 0
		4: "转换到上一关" : 0
	]
	
	// 输出
	output OnChangeLevel(void) : "当关卡转换了触发。"
]

@PointClass base(prop_door_rotating) studioprop() = prop_door_rotating_checkpoint : 
	"一个用于在世界上放置特殊的安全门的实体。"
[
]

@PointClass base(Targetname, Angles, Parentname, Angles) studio("models/infected/common_male01.mdl") = info_zombie_spawn :
	"一个用于生成丧尸的实体。"
[
	population(string) : "种类" : "default" : "丧尸的种类可供选择。"
	
	offer_tank(choices) : "向感染者玩家提供生成的 Tank" : 0 : "(译者注)大概意思是允许玩家操控这个实体生成的 Tank。" =
	[
		0: "否"
		1: "是"
	]
	
	input SpawnZombie(void) : "立即生成一只丧尸。"
	input StartleZombie(string) : "惊吓丧尸(仅限 Witch)。可选择传递生还者的名字(给 Witch)进行攻击。"
	
		// 输出
	output OnSpawnNormal(void) : "当生成器创建一个正常的感染者时触发。"
	output OnSpawnSmoker(void) : "当生成器创建一个 Smoker 时触发。"
	output OnSpawnBoomer(void) : "当生成器创建一个 Boomer 时触发。"
	output OnSpawnHunter(void) : "当生成器创建一个 Hunter 时触发。"
	output OnSpawnSpitter(void) : "当生成器创建一个 Spitter 时触发。"
	output OnSpawnJockey(void) : "当生成器创建一个 Jockey 时触发。"
	output OnSpawnCharger(void) : "当生成器创建一个 Charger 时触发。"
	output OnSpawnWitch(void) : "当生成器创建一个 Witch 时触发。"
	output OnSpawnTank(void) : "当生成器创建一个 Tank 时触发。"
]

@PointClass base(Targetname, Angles, Parentname, EnableDisable) = info_zombie_border :
	"该实体后面不会生成任何丧尸。"
[

]

@PointClass base(Origin,Targetname) = info_remarkable : "世界上的一个对象,看到它的角色会说出 TLK_REMARK 概念"
[
	contextsubject(string) : "主题语境(Subject context)" : "" : "(看到此对象时触发的 TLK_REMARK 的 SUBJECT 上下文中的文本。)\nText to put in the SUBJECT context of the TLK_REMARK fired upon sighting this object." 
]

//--------------------------------------------------------------------------------------------------------
// 武器

@BaseClass color(0 0 200) base(Targetname, Angles) = Weapon
[
	output OnPlayerPickup(void) : "当玩家捡起该武器时触发。"
]

@BaseClass color(0 0 200) base(Parentname, Global, Targetname, Angles, Studiomodel) = WeaponSpawnSingle
[
	weaponskin(integer) : "武器皮肤(Skin)" : -1 : "有些武器有多个版本的纹理,称为皮肤。将此设置为 -1 以外的数字,以使给定武器使用该皮肤而不是默认皮肤。"
	glowrange(float) : "发光距离" : 0 : "为此生成器设置自定义发光范围。0 表示使用默认范围。"

	solid(choices) : "碰撞" : 6 =
	[
		0: "非实体"
		2: "使用边界框(Bounding Box)"
		6: "使用 VPhysics"
	]

	spawnflags(Flags) =
	[
		1 : "启用物理碰撞" : 0
		2 : "必须存在" : 0
		8 : "无限物品[覆盖数量(键值 Count)]" : 0
	]
]

@BaseClass color(0 0 200) base(WeaponSpawnSingle) = WeaponSpawn
[
	count(integer) : "数量" : 5 : "消失前给予的最大武器数量。"
	
	spawnflags(Flags) = 
	[
		4 : "吸收任何掉落的武器类型 (Absorb any dropped weapon type)" : 0
	]
]

// 求生之路枪械 -----------

@PointClass base(Targetname,Angles) = weapon_item_spawn
[
	weaponskin(integer) : "武器皮肤(Skin)" : -1 : "有些武器有多个版本的纹理,称为皮肤。将此设置为 -1 以外的数字,以使给定武器使用该皮肤而不是默认皮肤。"
	glowrange(float) : "发光距离" : 0 : "为此生成器设置自定义发光范围。0 表示使用默认范围。"

	item1(integer) : "弹药堆" : 1 
	item2(integer) : "急救包" : 0 
	item3(integer) : "莫洛托夫鸡尾酒 (燃烧弹)" : 1 
	item4(integer) : "止痛药" : 1 
	item5(integer) : "土制炸弹" : 1 
	item6(integer) : "氧气管" : 0
	item7(integer) : "丙烷罐 (煤气罐)" : 0
	item8(integer) : "汽油桶" : 0
	//item9(integer) : "" : 0				// 这些键值可以在地图中设置,如果重复使用它们要小心。而是制作一个新 ItemN
	//item10(integer) : "" : 0
	item11(integer) : "肾上腺素" : 1
	item12(integer) : "心脏起搏器 (电击器)" : 0
	item13(integer) : "Boomer 胆汁" : 0
	//item14(integer) : "" : 0
	//item15(integer) : "" : 0
	item16(integer) : "电锯 (链锯)" : 0
	item17(integer) : "榴弹发射器" : 0	
	item18(integer) : "M60 机枪" : 0	

	melee_weapon(string) : "近战武器" : "" : "选项:'Any' 或者以逗号分隔的近战武器脚本名称字符串(译者注:比如machete, frying_pan, fireaxe)。留空为无。"
	
	spawnflags(Flags) =
	[
		1 : "在生成的物品上启用物理" : 0
		2 : "生成的物品必须存在" : 0
		8 : "无限个物品" : 0
	]
]

@PointClass base(Targetname) = upgrade_spawn
[
	laser_sight(integer) : "激光瞄准器" : 1
	upgradepack_incendiary(integer) : "升级包 - 燃烧弹" : 1
	upgradepack_explosive(integer) : "升级包 - 高爆弹" : 1
	
	spawnflags(Flags) =
	[
		1 : "在生成的物品上启用物理" : 0
		2 : "生成的物品必须存在" : 0
	]
]

@PointClass base(Targetname,Angles) studioprop("models/props/terror/exploding_ammo.mdl") = upgrade_ammo_explosive
[
	count(integer) : "数量" : 4 : "消失前给予的最大升级次数。"
]

@PointClass base(Targetname,Angles) studioprop("models/props/terror/incendiary_ammo.mdl") = upgrade_ammo_incendiary
[
	count(integer) : "数量" : 4 : "消失前给予的最大升级次数。"
]

@PointClass base(Targetname,Angles) studioprop("models/w_models/Weapons/w_laser_sights.mdl") = upgrade_laser_sight []


@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_pistol_a.mdl") = weapon_pistol_spawn : "手枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_desert_eagle.mdl") = weapon_pistol_magnum_spawn : "马格南手枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_smg_uzi.mdl") = weapon_smg_spawn : "SMG 冲锋枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_shotgun.mdl") = weapon_pumpshotgun_spawn : "泵动式霰弹枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_autoshot_m4super.mdl") = weapon_autoshotgun_spawn : "战术霰弹枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_rifle_m16a2.mdl") = weapon_rifle_spawn : "M-16 突击步枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_sniper_mini14.mdl") = weapon_hunting_rifle_spawn : "猎枪" []

@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_smg_a.mdl") = weapon_smg_silenced_spawn : "消音冲锋枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_pumpshotgun_A.mdl") = weapon_shotgun_chrome_spawn : "铬管霰弹枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_shotgun_spas.mdl") = weapon_shotgun_spas_spawn : "战斗霰弹枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_rifle_B.mdl") = weapon_rifle_desert_spawn : "战斗步枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_rifle_ak47.mdl") = weapon_rifle_ak47_spawn : "AK-47" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_sniper_military.mdl") = weapon_sniper_military_spawn : "狙击步枪" []

@PointClass base(WeaponSpawn) studioprop("models/weapons/melee/w_chainsaw.mdl") = weapon_chainsaw_spawn : "电锯" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/weapons/w_grenade_launcher.mdl") = weapon_grenade_launcher_spawn : "榴弹发射器" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_m60.mdl") = weapon_rifle_m60_spawn : "M60 机枪" []

// CSS 枪械
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_smg_mp5.mdl") = weapon_smg_mp5_spawn : "MP5 冲锋枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_rifle_sg552.mdl") = weapon_rifle_sg552_spawn : "SG552 突击步枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_sniper_awp.mdl") = weapon_sniper_awp_spawn : "AWP 狙击枪" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_sniper_scout.mdl") = weapon_sniper_scout_spawn : "Scout 狙击枪" []

// 投掷物 -----------------
@PointClass base(WeaponSpawn) studioprop("models/w_models/weapons/w_eq_pipebomb.mdl") = weapon_pipe_bomb_spawn : "土制炸弹" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/weapons/w_eq_molotov.mdl") = weapon_molotov_spawn : "燃烧弹" []
@PointClass base(WeaponSpawn) studioprop("models/w_models/weapons/w_eq_bile_flask.mdl") = weapon_vomitjar_spawn : "Boomer 胆汁" []

// 物品 ------------------
@PointClass base(WeaponSpawnSingle) studioprop("models/w_models/weapons/w_eq_Medkit.mdl") = weapon_first_aid_kit_spawn : "急救包" []
@PointClass base(WeaponSpawnSingle) studioprop("models/w_models/weapons/w_eq_painpills.mdl") = weapon_pain_pills_spawn : "止痛药" []
@PointClass base(WeaponSpawnSingle) studioprop("models/w_models/weapons/w_eq_adrenaline.mdl") = weapon_adrenaline_spawn : "肾上腺素" []
@PointClass base(WeaponSpawnSingle) studioprop("models/w_models/weapons/w_eq_defibrillator.mdl") = weapon_defibrillator_spawn : "心脏起搏器" []
@PointClass base(WeaponSpawnSingle) studioprop("models/props_junk/gascan001a.mdl") = weapon_gascan_spawn : "汽油桶" []
@PointClass base(WeaponSpawnSingle) studioprop("models/w_models/weapons/w_eq_incendiary_ammopack.mdl") = weapon_upgradepack_incendiary_spawn : "升级包 - 燃烧弹" []
@PointClass base(WeaponSpawnSingle) studioprop("models/w_models/weapons/w_eq_explosive_ammopack.mdl") = weapon_upgradepack_explosive_spawn : "升级包 - 高爆弹" []

@PointClass base(WeaponSpawnSingle) studioprop("models/w_models/weapons/w_eq_Medkit.mdl") = weapon_first_aid_kit : "启用物理的急救包 - 该实体旨在用于脚本事件中,其中单个物品需要在物理激活的情况下生成。" []
@PointClass base(WeaponSpawnSingle) studioprop("models/w_models/weapons/w_grenade_launcher.mdl") = weapon_grenade_launcher : "榴弹发射器 - 该实体旨在用于需要在物理激活的情况下生成单个物品的脚本事件" []

// 近战武器 --------------------
@PointClass base(WeaponSpawn) studioprop() = weapon_melee_spawn : "近战武器"
[
	melee_weapon(string) : "近战武器" : "any" : "选项:'Any' 或者以逗号分隔的近战武器脚本名称字符串(译者注:比如machete, frying_pan, fireaxe)。留空为无。"
	model(studio) : "模型" : "models/weapons/melee/w_fireaxe.mdl" : "辅助模型"
]

// 清道夫描述 --------------------
@PointClass base(WeaponSpawnSingle) studioprop("models/props_junk/gascan001a.mdl") = weapon_scavenge_item_spawn : "清道夫物品"
[
	glowstate(choices) : "初始发光状态" : 3 =
	[
		0: "关"
		3: "开"
	]

	input SpawnItem(void) : "生成一个清道夫模式的物品的实例。"
	input TurnGlowsOn(void) : "所有当前和未来生成的物品都应该发光。"
	input TurnGlowsOff(void) : "所有当前和未来生成的物品都不应发光。"
	
	output OnItemPickedUp(void) : "当这个生成器的清道夫物品被玩家捡起时触发。"
]

@PointClass base(Origin,Targetname) = point_prop_use_target : "携带道具的使用对象。触发道具的使用行为。(灌油桶用的实体)"
[
	spawnflags(Flags) = 
	[
		1 : "可用于汽油桶" : 1
		2 : "可用于可乐罐" : 0
	]

	nozzle(target_destination) : "灌油口" : : "此 use_target 的 prop_dynamic 灌油口的名称(清道夫模式)。"

	input Activate(void) : "激活使用目标。"
	input Deactivate(void) : "停用使用目标。"

	output OnUseStarted(void) : "当玩家开始使用此目标时触发。"	
	output OnUseCancelled(void) : "当玩家停止使用时触发。"	
	output OnUseFinished(void) : "当玩家使用完成时触发。"	
]

@PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_rifle_m16a2.mdl") = weapon_spawn : "可配置的武器生成器"
[	
	weapon_selection(choices) : "选择" : "any_primary" : "生成选定的武器或武器类别" =
	[
		"any" : "任何主要或次要武器"
		
		"any_pistol" : "任何手枪"
		
		// 特定的手枪
		"weapon_pistol" : "手枪"

		"weapon_pistol_magnum" : "马格南手枪"
		
		"any_primary" : "任何主武器"
		
		"tier1_any"	: "任何一阶主武器"
		"tier2_any"	: "任何二阶主武器"
		
		"any_smg" : "任何一阶冲锋枪"
		"any_rifle" : "任何二阶步枪"
		"any_sniper_rifle" : "任何二阶狙击步枪"
		
		"any_shotgun" : "任何霰弹枪"
		"tier1_shotgun" : "任何一阶霰弹枪"
		"tier2_shotgun" : "任何二阶霰弹枪"
		
		// 特定主武器	
		"weapon_smg" : "冲锋枪"
		"weapon_smg_silenced" : "消音冲锋枪"
		"weapon_pumpshotgun" : "泵动式霰弹枪"
		"weapon_shotgun_chrome" : "铬管霰弹枪"
		"weapon_autoshotgun" : "战术霰弹枪"
		"weapon_shotgun_spas" : "战斗霰弹枪"
		"weapon_rifle" : "M-16 突击步枪"
		"weapon_rifle_desert" : "战斗步枪"
		"weapon_rifle_ak47" : "AK-47"
		"weapon_hunting_rifle" : "猎枪"
		"weapon_sniper_military" : "狙击步枪"
		
		// specific css weapons	
		"weapon_smg_mp5" : "MP5 冲锋枪"
		"weapon_rifle_sg552" : "SG552 突击步枪"
		"weapon_sniper_awp" : "AWP 狙击枪"
		"weapon_sniper_scout" : "Scout 狙击枪"
	]	
	
	spawn_without_director(choices) : "无需导演即刻生成" : 0 : "绕过近邻检查,使附近的武器是同一阶/不是同一种武器" =
	[
		0 : "否"
		1 : "是"
	]	

	spawnflags(Flags) = 
	[
		16 : "限制生成位置(不要掉到地上)" : 0
	]

	no_cs_weapons(choices) : "无 CS 武器" : 0 : "选择“任何”武器时,如果你不想要 CS 武器,请将其设置为“是”。" =
	[
		0 : "否"
		1 : "是"
	]	
]


// 弹药 ---------------------
@PointClass base(WeaponSpawn) studioprop() = weapon_ammo_spawn : "弹药" []

// 武器分布 --------
@PointClass base(Targetname,Angles) = info_map_parameters :
	"L4D 特定的地图参数。"
[
	AmmoDensity(float) : "弹药堆密度" : "6.48" : "每 100 平方码的弹药堆密度"
	PainPillDensity(float) : "止痛药密度" : "6.48" : "同上"
	MolotovDensity(float) : "燃烧弹密度" : "6.48" : "同上"
	PipeBombDensity(float) : "土制炸弹密度" : "6.48" : "同上"
	PistolDensity(float) : "手枪密度" : "6.48" : "同上"
	GasCanDensity(float) : "汽油桶密度" : "6.48" : "同上"
	OxygenTankDensity(float) : "氧气管密度" : "6.48" : "同上"
	PropaneTankDensity(float) : "煤气罐密度" : "6.48" : "同上"
	MeleeWeaponDensity(float) : "近战武器密度" : "6.48" : "同上"
	AdrenalineDensity(float) : "肾上腺素密度" : "6.48" : "同上"
	DefibrillatorDensity(float) : "心脏起搏器密度" : "3.0" : "同上"
	VomitJarDensity(float) : "Boomer 胆汁密度" : "6.48" : "同上"
	UpgradepackDensity(float) : "弹药升级密度" : "1.0" : "同上"
	ChainsawDensity(float) : "超级武器(链锯等)密度" : "1.0" : "每 100 平方码的电锯和榴弹发射器密度"
	ConfigurableWeaponDensity(float) : "可配置的武器生成器密度" : "-1.0" : "weapon_spawn 实体的密度,-1 生成所有实体"
	ConfigurableWeaponClusterRange(float) : "可配置的武器堆密度" : 100 : "为了分布目的,将彼此如此(值)接近的 weapon_spawn 实体视为一个“武器堆”。"
	MagnumDensity(float) : "马格南手枪密度" : "-1.0" : "Weapon_magnum_spawn 实体的密度,设置为 -1 以生成所有实体"

	ItemClusterRange(float) : "物品堆密度" : 50 : "出于分布目的,彼此如此(值)接近的同类清道夫物品被视为单个“物品堆”。"	
	FinaleItemClusterCount(integer) : "结局物品堆数量" : 3 : "在结局中将填充多少组物品。"
	
	input UpdateCvars(void) : "将此实体中的值填充到控制台变量(Cvars)中以进行调整"
]

@PointClass base(Targetname,Angles) = info_map_parameters_versus :
	"为对抗模式而设置的 L4D 特定地图参数。"
[
	AmmoDensity(float) : "弹药堆密度" : "6.48" : "每 100 平方码的弹药堆密度"
	PainPillDensity(float) : "止痛药密度" : "6.48" : "同上"
	MolotovDensity(float) : "燃烧弹密度" : "6.48" : "同上"
	PipeBombDensity(float) : "土制炸弹密度" : "6.48" : "同上"
	PistolDensity(float) : "手枪密度" : "6.48" : "同上"
	GasCanDensity(float) : "汽油桶密度" : "6.48" : "同上"
	OxygenTankDensity(float) : "氧气管密度" : "6.48" : "同上"
	PropaneTankDensity(float) : "煤气罐密度" : "6.48" : "同上"
	MeleeWeaponDensity(float) : "近战武器密度" : "6.48" : "同上"
	AdrenalineDensity(float) : "肾上腺素密度" : "6.48" : "同上"
	DefibrillatorDensity(float) : "心脏起搏器密度" : "2.50" : "同上"
	VomitJarDensity(float) : "Boomer 胆汁密度" : "6.48" : "同上"
	UpgradepackDensity(float) : "弹药包密度" : "1.0" : "同上"
	ChainsawDensity(float) : "超级武器(链锯等)密度" : "1.0" : "每 100 平方码的电锯和榴弹发射器密度"
	ConfigurableWeaponDensity(float) : "可配置的武器生成器密度" : "-1.0" : "weapon_spawn 实体的密度,-1 生成所有实体"
	ConfigurableWeaponClusterRange(float) : "可配置的武器堆密度" : 100 : "为了分布目的,将彼此如此(值)接近的 weapon_spawn 实体视为一个“武器堆”。"
	MagnumDensity(float) : "马格南手枪密度" : "-1.0" : "Weapon_magnum_spawn 实体的密度,设置为 -1 以生成所有实体"

	ItemClusterRange(float) : "物品堆密度" : 50 : "出于分布目的,彼此如此(值)接近的同类清道夫物品被视为单个“物品堆”。"	
	FinaleItemClusterCount(integer) : "结局物品堆数量" : 3 : "在结局中将填充多少组物品。"
	
	input UpdateCvars(void) : "将此实体中的值填充到控制台变量(Cvars)中以进行调整"
]

@PointClass base(Targetname,Angles) iconsprite("editor/info_gamemode.vmt") = info_gamemode :
	"游戏模式触发器。"
[
	output OnCoop(void) : "当地图在合作模式游戏中加载时触发。"
	output OnVersus(void) : "当地图在对抗模式游戏中加载时触发。"
	output OnSurvival(void) : "当地图在生还者模式游戏中加载时触发。"
	output OnScavenge(void) : "当地图在清道夫模式游戏中加载时触发。"

	output OnCoopPostIO(void) : "在 OnCoop 生成的所有实体 IO 完成后触发。"
	output OnVersusPostIO(void) : "在 OnVersus 生成的所有实体 IO 完成后触发。"
	output OnSurvivalPostIO(void) : "在 OnSurvival 生成的所有实体 IO 完成后触发。"
	output OnScavengePostIO(void) : "在 OnScavenge 生成的所有实体 IO 完成后触发。"

	output OnScavengeMatchStart(void) : "在清道夫比赛的第一个地图加载时触发。回合重新开始时不会触发。"

	output OnNavAnalyze(void) : "在命令行上使用 -navanalyze 加载地图时触发。"
]

// 光束聚光灯 ---------------------
@PointClass base(Targetname, Parentname, RenderFields, Angles) studio("models/editor/cone_helper.mdl") = beam_spotlight : 
	"一个绘制聚光灯的实体。当玩家看到它时会绘制出光束,当它面向玩家时会绘制出光晕。"+
	"除非选中“无动态光”生成标志,否则它还会在聚光灯末端所在的任何位置创建动态光。" +
	"这个聚光灯完全是客户端范围,它不会在客户端之间同步。"
[
	spawnflags(Flags) = 
	[
		1 : "开始时启用" : 1
		2 : "无动态光" : 0
		4 : "开始时启用旋转" : 0
		8 : "翻转方向" : 0
		16 : "X 轴"  : 0
		32 : "Y 轴"  : 0
		64 : "无雾" : 0
	]

	maxspeed(integer) : "最大旋转速度" : 100 : "聚光灯的最大旋转速度,以度/秒为单位。"

	spotlightlength(integer) : "聚光灯长度" : 500 : "聚光灯光束的长度。"
	spotlightwidth(integer) : "聚光灯宽度" : 50 : "聚光灯光束的宽度。"
	rendercolor(color255) : "颜色 (R G B)" : "255 255 255"
	HDRColorScale(float) : "HDR 颜色比例." : "0.7" : "在 HDR 模式下运行时乘以 Sprite 颜色的浮点值。"
	
	// 输入
	input LightOn(void) : "打开聚光灯"
	input LightOff(void) : "关闭聚光灯"
	input Start(void) : "开始让聚光灯旋转"
	input Stop(void) : "停止对聚光灯的旋转"
	input Reverse(void) : "让聚光灯旋转的角度进行反转"
	
	// 输出
	output OnLightOn(void) : "开启聚光灯时触发"
	output OnLightOff(void) : "关闭聚光灯时触发"
]

@PointClass base(Angles) iconsprite("editor/env_particles.vmt") = env_detail_controller : "覆盖地图中细节 Sprite 的最小和最大渐变距离。"
[
	fademindist(integer) : "开始淡入淡出距离/像素" : 512 : "细节道具将开始消失的距离。"
	fademaxdist(integer) : "结束淡入淡出距离/像素" : 1024 : "细节道具停止消失并完全停止绘制的距离。"
]

@PointClass base(Targetname, Parentname) iconsprite("editor/info_target.vmt") = info_goal_infected_chase :
	"一个像土质炸弹一样吸引感染者的实体,让他们在结尾动画时有事可做。"+
	"将其与逃生车辆或 func_tracktrain 放在层次结构中,"+
	"以使地图中的所有感染者都追逐它!"
[
	input Enable(void) : "开始吸引地图中的所有感染者。"
	input Disable(void) : "停止吸引感染者。"
]

@SolidClass base(Targetname, Parentname, RenderFields, Global, Inputfilter, EnableDisable, Shadow) = func_playerinfected_clip : 
	"简单的空气墙笔刷,可以阻挡感染者玩家的移动。" 
[
	spawnflags(flags) =
	[
		2: "忽略玩家 +USE (按'使用键')" : 1
	]

	Solidity(choices) : "碰撞性" : 2 : "用于控制笔刷是否启用碰撞。" =
	[
		0 : "两者(可切换)"
		1 : "从不"
		2 : "总是"
	]

	vrad_brush_cast_shadows(choices) : "阴影" : 0 : "如果此笔刷投射光照贴图(lightmap)阴影,请设置此项。" =
	[
		0 : "否"
		1 : "是"
	]	
]

@SolidClass base(Targetname, Parentname, RenderFields, Global, Inputfilter, EnableDisable, Shadow) = func_playerghostinfected_clip : 
	"简单的空气墙笔刷,可以阻挡灵魂状态的玩家感染者移动。" 
[
	spawnflags(flags) =
	[
		2: "忽略玩家 +USE (按'使用键')" : 1
	]

	Solidity(choices) : "碰撞性" : 2 : "用于控制笔刷是否启用碰撞。" =
	[
		0 : "两者(可切换)"
		1 : "从不"
		2 : "总是"
	]

	vrad_brush_cast_shadows(choices) : "阴影" : 0 : "如果此笔刷投射光照贴图(lightmap)阴影,请设置此项。" =
	[
		0 : "否"
		1 : "是"
	]	
]



@NPCClass base(Angles, Targetname) studio() = commentary_dummy : "开发者注释用的假人"
[
	model(studio) : "假人模型" : "models/survivors/survivor_coach.mdl"
	EyeHeight(integer) : "眼睛高度" : 64 : "相对于原点的眼睛高度。仅在盯着玩家时需要"
	StartingAnim(string) : "开始时的动画" : "Idle_Calm_Pistol" : "此假人生成时将播放的开始动画的名称。"
	StartingWeapons(string) : "开始时的武器" : "weapon_pistol" : "假人生成时应拥有的任何武器的名称。用空格、逗号或分号分隔。最后指定的武器将被装备"
	LookAtPlayers(choices) : "盯着玩家" : 0 : "如果你希望假人一直尝试盯着玩家,请设置为 true。" =
	[
		0 : "否"
		1 : "是"
	]
	HeadYawPoseParam(string) : "头部偏航角(Yaw)姿势参数(Head Yaw Pose Parameter)" : "Head_Yaw" : "头部偏航角姿势参数的名称。仅在盯着玩家时需要"
	HeadPitchPoseParam(string) : "头部俯仰角(Pitch)姿势参数(Head Yaw Pose Parameter)" : "Head_Pitch" : "同上[头部偏航角(Yaw)姿势参数(Head Yaw Pose Parameter)]"
	input SetAnimation(string) : "强制假人播放动画。参数应该是动画的名称。"
]



@PointClass base(Targetname, Angles, Parentname, Angles) studio("models/infected/smoker.mdl") = commentary_zombie_spawner :
	"手动生成丧尸点"
[
	input SpawnZombie(string) : "现在生成一个特定的丧尸。字符串格式是丧尸类型,后跟可选的目标名称 (例如“smoker,BostonJoe”或“common_male_suit”)。丧尸类型:boomer, common_*, hunter, smoker, tank, witch"
	output OnSpawnedZombieDeath(void) : "该实体生成的丧尸之一已经死亡"
]


@PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = env_outtro_stats : 
	"在战役结束时控制 outtro 统计数据的实体。"
[
	// 输入
	input RollStatsCrawl(void) : "开始滚动统计数据。"
	input RollCredits(void) : "开始滚动制作人员名单。"
	
	// 输出
	output OnOuttroStatsDone(void)  : "当统计数据完成滚动或用户取消时触发。"
]

@SolidClass base(Trigger, Targetname) = trigger_hurt_ghost :
	"一个触发器笔刷,会伤害接触它的实体(包括灵魂状态的感染者)。"
[
	master(string) : "主实体 (过时的)" : : "旧版支持:主实体的名称。如果主实体没有被激活,这个实体将不会被激活。"
	damage(integer) : "伤害" : 10 : "对接触此触发器实体造成的伤害量。每半秒造成一次伤害。有关如何造成伤害的更多详细信息,另请参阅“伤害模型”键值。"
	damagecap(integer) : "伤害上限" : 20 : "每秒造成的最大伤害。仅当你选择双倍 w/Forgiveness 伤害模型时,才会使用此字段。"
	damagetype(choices) : "伤害类型" : 0 =
	[
		0 : "普通的"
		1 : "压死的"
		2 : "子弹扫死的"
		4 : "砍死的"
		8 : "烧死的"
		16 : "冻死的"
		32 : "摔死的"
		64 : "炸死的"
		128 : "CLUB(打死的)"
		256 : "SHOCK(震死的)"
		512 : "SONIC(超声波)"
		1024 : "ENERGYBEAM(激光)"
		16384: "水淹"
		32768 : "PARALYSE(麻痹而死)"
		65536 : "NERVEGAS(神经毒气,瓦斯)"
		131072 : "毒死的"
		262144 : "辐射"
		524288 : "DROWNRECOVER(水淹恢复)"
		1048576 : "CHEMICAL(化学的)"
		2097152 : "SLOWBURN(慢慢烧死)"
		4194304 : "SLOWFREEZE(慢慢冻死)"
	]

	damagemodel(choices) : "伤害模型" : 0 : "伤害如何处理。普通模型总是每半秒造成指定(伤害)值的伤害。双倍模型从指定(伤害)值开始,待在触发器里面时间越久受到的伤害越高,伤害以双倍增长。宽恕意味着如果接触者离开触发器,伤害将重置为指定值。适合制作随时间推移而致命的触发器,而不必在每次触摸时造成巨大伤害。(译者注:类似于spitter的酸液伤害)" =
	[
		0 : "普通"
		1 : "双倍(宽恕)"
	]
	
	nodmgforce(choices) : "0 伤害力" : 0 : "如果被伤害实体没有从该触发器中接收到物理力。" =
	[
		0 : "否"
		1 : "是"
	]
	
	// 输入
	input SetDamage(float) : "为此触发器设置新的伤害量。"
	
	// 输出
	output OnHurt(void) : "每当此触发器伤害玩家以外的东西时触发。"
	output OnHurtPlayer(void) : "每当此触发器伤害玩家时触发。"
]

@SolidClass base(Targetname, Parentname) = func_nav_connection_blocker : 
	"防止导航网格(在创建时)通过其体积进行连接的笔刷实体。(译者注:就是在它的体积内不能连接导航网格)"
[
]

@PointClass wirebox(mins, maxs) base(Targetname) = env_player_blocker :
	"阻止任何玩家角色/非玩家角色(PC/NPC)进入指定类型的实体。"
[
	mins(vector) : "起始点" : "-4 -128 -80"
	maxs(vector) : "终止点" : "4 128 80"

	initialstate(choices) : "初始状态" : 1 =
	[
		0 : "禁用的"
		1 : "启用的"
	]
	BlockType(choices) : "阻挡(谁)" : 0 =
	[
		0: "所有人"
		1: "生还者"
		2: "玩家感染者"
		3: "所有特殊感染者 (玩家和 AI)"
	]

	// 输入
	input Enable(void) : "启用阻挡器。"
	input Disable(void) : "禁用阻挡器。"
]

@PointClass obb(boxmins, boxmaxs) base(Angles, Targetname) = env_physics_blocker :
	"阻止玩家和物理对象的实体。"
[
	boxmins(vector) : "起始点" : "-8 -8 -8"
	boxmaxs(vector) : "终止点" : "8 8 8"

	initialstate(choices) : "初始状态" : 1 =
	[
		0 : "禁用的"
		1 : "启用的"
	]
	BlockType(choices) : "阻挡谁" : 0 =
	[
		0: "所有人"
		1: "生还者"
		2: "玩家感染者"
		3: "所有特殊感染者 (玩家和 AI)"
		4: "所有玩家和物理对象"
	]
	// 输入
	input Enable(void) : "启用阻挡器。"
	input Disable(void) : "禁用阻挡器。"
]

@SolidClass base(Trigger) = trigger_upgrade_laser_sight : "为接触(该实体)的玩家提供激光瞄准器升级"
[
]

@PointClass base(Targetname) = logic_game_event : "允许触发游戏事件。暂时没有参数。"
[
	eventName(string) : "游戏事件名称" : "" : "要触发的事件名称(来自 ModEvents.res)。暂时没有参数"
	
	spawnflags(flags) =
	[
		1: "带有激活者的用户 ID 字段" : 0
	]
	
	// 输入
	input FireEvent(void) : "激活事件。"
]


@SolidClass base(Targetname, Parentname, Origin, RenderFields,DamageFilter) = func_button_timed: 
	"需要时间才能使用的实体。"
[
	use_time(integer) : "使用时间" : 5 : ""
	use_string(string) : "使用描述" : "Using...." : ""
	use_sub_string(string) : "使用子描述" : "" : ""
	glow(target_destination) : "发光实体" : : "将获得此按钮的 +use 发光的实体的名称。"
	
	auto_disable(choices) : "OnTimeUp 自动禁用" : 1 : "当使用计时器到时时,禁用该按钮。(可以通过输入启用)" =
	[
		0 : "否"
		1 : "是"
	]
	
	spawnflags(flags) =
	[
		2048: "开始时锁定" : 0
	]
	
	locked_sound(choices) : "锁定时声音" : 0 : "玩家尝试使用按钮时播放的声音,但由于它被锁定而失败。" = 
	[
		0: "无"
		2: "拒绝访问"
		8: "Small zap (小电火花)"
		10: "Buzz (嗡嗡声)"
		11: "Buzz Off"
		12: "门栓锁定"
	]

	// 输入
	input Lock(void) : "锁上按钮,阻止玩家对它互动和播放锁上的声音."
	input Unlock(void) : "解锁按钮,允许跟它互动."
	input Enable(void) : "启用按钮,这样它就会发光并可以对它互动"
	input Disable(void) : "禁用按钮,这样它就不能与之互动,也不会发光."

	// 输出
	output OnPressed(void) : "按下按钮时触发."
	output OnUnPressed(void) : "没按下按钮时触发"
	output OnTimeUp(void) : "当按住按钮的时间超过所需时间时触发."
	output OnUseLocked(void) : "把按钮锁上时触发."
]


@PointClass base(Targetname, Angles, Studiomodel) studioprop() sphere(fademindist) sphere(fademaxdist) = prop_fuel_barrel :
	"一个物理道具,射击时就像一桶汽油桶一样会发生爆炸"
[

	spawnflags(flags) = 
	[
		1 : "一开始是未苏醒的" : 0
	]
		
	fademindist(float) : "开始淡入淡出距离/像素" : -1 : "道具开始消失的距离( 0=从淡入淡出最大距离中减去)"
	fademaxdist(float) : "结束淡入淡出距离/像素" : 0 : "道具可见的最大距离(0=不淡出)。"
	fadescale(float) : "淡入淡出的规模" : 1 : "如果你在地图里指定了淡出,或者引擎在低端/中端/XBox360下运行,那么引擎将强制淡出道具,即使淡入淡出的开始和结束距离没有指定" +
								" 这个比例可以让你控制渐变。在这里使用0关闭强制淡出。" +
								" 小于1的数字会让道具在更远的距离消失,大于1的数字会让道具在更近的距离消失."

	
	
	model(studio) : "模型" : "models/props_industrial/barrel_fuel.mdl"
	
	BasePiece(studio) : "基础部分" : "models/props_industrial/barrel_fuel_partb.mdl"
	FlyingPiece01(studio) : "飞出的碎片 1" : "models/props_industrial/barrel_fuel_parta.mdl"
	FlyingPiece02(studio) : "飞出的碎片 2" : ""
	FlyingPiece03(studio) : "飞出的碎片 3" : ""
	FlyingPiece04(studio) : "飞出的碎片 4" : ""	
	
	//texture(decal) : "烧焦印花" : "decals/molotovscorch"

	DetonateParticles(string) : "爆炸粒子" : "weapon_pipebomb"
	FlyingParticles(string) : "飞出的碎片粒子" : "barrel_fly"
	//ImpactParticles(string) : "影响粒子" : ""
	DetonateSound(sound) : "物体爆炸时播放的声音." : "BaseGrenade.Explode"	
]


@PointClass  base(Targetname) iconsprite("editor/logic_auto.vmt") = logic_versus_random : 
	"在对抗模式地图的第一轮中触发随机输出, " +
	"然后在第二轮对抗模式地图中重复这些输出. " 
[

	input PickRandom(void) : "使用至少一个触发进行随机输出。"


	// 输出
	output OnRandom01(void) : "当输入值等于Random01值时触发."
	output OnRandom02(void) : "当输入值等于Random02值时触发."
	output OnRandom03(void) : "当输入值等于Random03值时触发."
	output OnRandom04(void) : "当输入值等于Random04值时触发."
	output OnRandom05(void) : "当输入值等于Random05值时触发."
	output OnRandom06(void) : "当输入值等于Random06值时触发."
	output OnRandom07(void) : "当输入值等于Random07值时触发."
	output OnRandom08(void) : "当输入值等于Random08值时触发."
	output OnRandom09(void) : "当输入值等于Random09值时触发."
	output OnRandom10(void) : "当输入值等于Random10值时触发."
	output OnRandom11(void) : "当输入值等于Random11值时触发."
	output OnRandom12(void) : "当输入值等于Random12值时触发."
	output OnRandom13(void) : "当输入值等于Random13值时触发."
	output OnRandom14(void) : "当输入值等于Random14值时触发."
	output OnRandom15(void) : "当输入值等于Random15值时触发."
	output OnRandom16(void) : "当输入值等于Random16值时触发."
]


@PointClass base(Targetname, Parentname, Angles, EnableDisable) studio("models/editor/cone_helper.mdl")  = env_weaponfire : 
	"武器自动射击"
[
	TargetArc(float) : "目标的弧度" : "40" : "此实体将搜索目标的弧(以度为单位)"
	TargetRange(float) : "目标范围" : "3600" : "搜索目标的距离(以英寸为单位)"
	filtername(filterclass) : "目标过滤" : : "使用Filter实体,用于确定实体是否是有效的目标"
	DamageMod(float) : "伤害调节" : "1.0" : "用于增加或减少每次射击的伤害"
	
	WeaponType(choices) : "武器类型" : 1 =
	[
		1: "突击步枪"
		2: "猎枪"
		3: "自动霰弹枪"
	]

	TargetTeam(choices) : "目标类型" : 3 =
	[
		3: "僵尸"
		2: "幸存者"
		-1: "两者都不是"
	]
	
	IgnorePlayers(choices) : "忽视玩家" : 0 =
	[
		0: "否"
		1: "是"
	]

]

@PointClass base(Targetname, Angles) studio("models/editor/cone_helper.mdl")  = env_rock_launcher : 
	"石头发射器"
[
	RockTargetName(target_destination) : "目标名称" : : "要扔石头的实体的名字。"
	RockDamageOverride(integer) : "石头的伤害" : 0 : "调节石头砸到目标的伤害,而不是默认的伤害. "
	input LaunchRock(void) : "发射一个石头"
	input SetTarget(string) : "以新实体为目标(按名称)"
]


@SolidClass base(Targetname, EnableDisable) = func_extinguisher : "一个固实体,它会让触碰到它的实体产生灼烧效果" 
[
	spawnflags(flags) =
	[
		1: "火" : 1
		2: "酸液" : 1
		4: "烟花" : 1
	]
]


@SolidClass base(Targetname, EnableDisable) = func_ragdoll_fader : "固实体,它将淡出任何接触它的布娃娃(ragdoll)实体" 
[

]

@PointClass base(prop_dynamic_base,EnableDisable) studioprop("models/w_models/weapons/w_minigun.mdl") = prop_minigun_l4d1 : "玩家可以 +USE 来使用这把机枪"
[
	model(studio) : "模型" : "models/w_models/weapons/w_minigun.mdl"
	MaxYaw(float) : "最大偏航" : "90" : "枪可以转动的最大偏航."
	MaxPitch(float) : "最大间距" : "60" : "多大间距可以压下枪."
	MinPitch(float) : "最小间距" : "-30" : "多小间距时可以将枪抬起。"

	// 输出
	output OnFireStart(void) : "当机枪旋转并开始射击时触发."
	output OnFireStop(void) : "当机枪停止射击时触发."
] 

@SolidClass base(Trigger) = trigger_escape : "这个触发器(trigger)表示体积中是否有可以逃脱的幸存者"
[
	output OnEscapePossible(void) : "如果触发器中至少有1名幸存者,则会触发"
	output OnEscapeImpossible(void) : "如果没有幸存者站在触发器里,则会触发"
]

@SolidClass base(Targetname, Parentname, Origin) = func_buildable_button: 
	"一个定时按钮,在按钮按下相关事件时调用它的脚本范围。"
[
	spawnflags(flags) =
	[
		2048: "一开始锁住" : 0
	]

	is_cumulative_use(choices) : "累计使用" : 0 =
	[
		0: "否"
		1: "是"
	]
	
	// 输入
	input Enable(void) : "启用按钮,这样它就会发光并可以与之互动."
	input Disable(void) : "禁用按钮,这样它就不能互动,也不会发光."

	// 输出
	output OnPressed(void) : "按下按钮时触发。"
	output OnUnPressed(void) : "当按钮未按下时触发."
	output OnTimeUp(void) : "当按住按钮的时间超过所需时间时触发."
	output OnUseLocked(void) : "锁住按钮时触发."
]

@PointClass base(Origin,Targetname) = point_script_use_target: "让玩家能够使用此实体, 附加的脚本确定显示文本和使用时间。"
[
	model(target_destination) : "使用的模型" : : "玩家将使用的实体的名称."

	output OnUseStarted(void) : "当玩家开始使用此目标时触发."	
	output OnUseCanceled(void) : "当玩家正在使用此目标被取消时触发。"	
	output OnUseFinished(void) : "当玩家使用完成时触发."	
]

@PointClass base(Targetname, Parentname, Angles, Studiomodel) studioprop() = scripted_item_drop : 
	"带有基本物理机制的道具,能够检测玩家的触碰."
[
]