代码
游戏运行库
sk_mortar
默认值从0修改至200- 当作弊模式关闭的时候尝试使用作弊指令将不再强制重置玩家的作弊状态,而是根据现行的作弊规则进行检查
- 圣诞活动:礼物实体将不再复制源实体的movetype和solid键值
- 指令
myinfo
/thatinfo
将不再显示Is player ally?,因为这和玩家阵营越来越不相关 - 指令
myinfo
/thatinfo
将显示玩家现在的effects,列如glow shell, gravity modifier(仅玩家和怪物) - 指令
myinfo
/thatinfo
将显示相对和绝对大小 - 实体现在使用team键值储存他们的阵营标签,列如"player", "human_military", "team1"
- 实体
func_pushable
现在被举起时可以丢出去 - 实体
func_pushable
被举起时不再乱抖 - 实体
func_pushable
将不再被自动升起,从而导致其与地面有1单位的空隙 - 实体
item_inventory
已经移除了队伍过滤器,因为玩家类将不会作为一个单独的游戏特性(地图作者现在可以自己设计他们的队伍阵营) - 实体
item_inventory
现在支持基于阵营标签的过滤器,列如"player", "team1"(可用分号指定多个,列如"team1;team2;team3") - 实体
item_inventory
现在将只会为同一队的玩家触发目标 - 实体
sqadmaker
将在他生成怪物生成前为targetname赋值(修复索降的NPC会由因获得targetname太晚立即生成) - 实体
trigger_camera
将会在使用它的玩家退出游戏时正确的注册已退出摄像头事件 - 实体
trigger_respawn
现在支持将玩家以索降方式从特定出生点重生 - 实体
trigger_script
删除了潜在的互相竞争的条件(mode设置为triggerd时可能自动触发,但是spawnflag里的start on是关闭的) - 实体
trigger_script
生成且没有指定targetname时,他的spawnflag必须设置为start on,否则这个实体将永远不会被执行 - 修复了一个由于HUD数字显示空指针导致的罕见崩溃
- 修复了
func_pushable
在没有接触地面时无法举起的错误 - 修复了不一致的NPC关系判断,玩家将不再使用player分类
- 修复了物品实体movetype设置为none后依然会被错误的放置到地面上的问题
- 修复了玩家复活时的血量不会根据地图设置的最大血量减半的问题(列如,地图设置的最大血量是80,那么复活将获得40血,而不是固定的50血)
- 修复了玩家被尝试使用作弊指令被拒绝后会丢失地图设置的solid的问题(列如在HL章节电车上使用作弊指令被拒绝后将会导致自己和其他玩家之间的碰撞又重新出现)
- 修复了投射物并不总是和
func_breakable
产生碰撞的问题(列如Afrika Korps里打不爆的坦克和德军机枪) - 修复了玩家在观察者模式观察其他玩家时视角会乱摇的问题
- 物品实体现在可以由"minhullsize"和"maxhullsize"键值手动设置碰撞体积
- 新的实体
trigger_effect
,地图可以使用该实体直接添加或删除玩家/怪物的effect(glow shell,无敌,非实体,速度调整等等),而不需要强制给所有玩家塞上一个有相应设置的item_inventory
AngelScrips
- 添加新的共享地图脚本"hideandseek.as",制图者可以用它来制作躲猫猫模式
- 规则基于社区地图SC5X Bonus
- 设计来实现所有繁重的工作,以此来最小化制图者需要的"控制"实体的量
- 提供简单的地图CVARs来调整列如躲藏时间/速度/模型,搜寻时间/速度/模型,获得的分数,当鬼当人玩家的比例等等数值
- 看hideandseek.md文件来获取插件使用指南
- 添加文档里string类型下消失的
Tokenize()
函数和String::NO_MORE_TOKENS
常量 - 暴露
CBaseEntity
函数GetClassificationName()
获取所有的阵营名称,列如 "Player", "Human Military", "Team 2"GetClassificationTag()
获取所有的阵营标签,列如 "player", "human_military", "team2"
- 暴露
CBasePlayer
函数GetCheat()
:获取玩家的的作弊模式GetChats()
:获取玩家所有可用的作弊模式ResetOverridenPlayerModel()
:重置玩家的临时模型SendScoreInfo()
:强制刷新一个玩家或其他所有玩家的计分板信息SetCheat()
设置或取消玩家的作弊模式SetOverriddenPlayerModel()
: 设置玩家的临时模型(不会修改玩家自己的设置)
- 暴露movetype和solid下的MOVETYPE_NONE_EXPLICIT和SOLID_NOT_EXPLICIT(两者默认值均为-1)
- 暴露
Utility
函数BuildEntityLogString()
: 生成实体的log字符串BuildPlayerLogString()
: 生成玩家的log字符串GetPlayerLog()
: 拼接玩家的log字符串(被BuildPlayerLogString()
使用,建议直接使用BuildPlayerLogString()
)
Engine
- 从V社获取的增量安全更新
hpk_maxsize
为0时将使用默认值4(设置为-1以禁止喷漆)- 修正Windows可执行程序的字符串
- 详细说明BSP和DLL不同导致玩家无法进入服务器的错误信息,以便玩家更好的理解错误所在(仅Windows)
- 修复了NPC或者可推武器在奇数角度的斜坡上会以随机方向乱飞的问题
- 加载固体模型时将不再把maxs和mins扩展一个单位
NPC
- 修复了NPC濒死时并不总是执行表演脚本的问题
- 修复了鱼鹰运输机生成新的NPC时导致的崩溃
- 修复了医疗NPC(医疗兵,科学家)不能完成他们复活动画的问题
- 修复了玩家制造的蛇鲨或蟾蜍不从玩家处继承阵营的问题
- 修复了科学家在HUD会被显示为敌人的问题
- 修复了藤怪的眼睛位置不可用
- NPC的iuser2键值大于0时将无视其与玩家发生的碰撞
音效
- 修复了材质列表加载时显示太快的问题(现在
developer
需大于2) - 修复了服务器会重复两次加载材质列表的问题
- 最大材质或对话列表从2048提升到了4096
- 显示现在加载的材质或对话(
developer
需大于1) - 如果材质或者对话接近最大值时会显示警告
武器/物品
- 修复了M16的开火特效会乱跑的问题(在新地图snd中尤其明显)
- 修复了使用高斯,胶子,手榴弹,mp5的第三攻击(鼠标中键)时的奇怪行为
- 修复了玩家会被其他玩家的蛇鲨或者蟾蜍卡住并造成伤害的问题
地图
Black Mesa: Special Tactics Sector
- 修改回非圣诞节版本
- 修复一个罕见的崩溃
- 实现了多个天空光照
- 平衡了第五张图,尤其是太op的Gonarch
- Xen竞技场现在没那么亮了
模型
NPC
- 新叉车模型!
SDK
Svencraft
- 在VIS和RAD编译中将会以低于优先级的方式进行,以免阻塞整个系统
- 修复了如果路径包含任何空格时编译器可执行文件不会正确执行的问题
- 更大的编译窗口,而且居中了!(960×600)
- 最大项目数提升至65535
- 更现代的字体
FGD
- sven-coop.fgd
- "ammo_ARgrenades"和"ammo_rpgclip"添加 "(x2)" 选项
- 添加实体"ammo_556clip".
- 添加实体"trigger_effect".
- ammo_9mmAR: 模型从"w_9mmARclip.mdl"改到了"w_mp5_clip.mdl".
- item_inventory: 更新了NPC阵营列表
- item_inventory: 未注释或被删除的各种键值现在要么实现了要么移除了
- "ambient_generic"的半径标签添加了近似的距离
实例地图
- 添加示例地图 "___hideandseek" 来演示如何使用"hideandseek.as"脚本
- 更新示例地图"___item_inventory" 完全演示两个团队占点的场景
杂项
- 默认的灯光选项移到"hl_lights.rad"和"zhlt_lights.rad"中 (现在鼓励制图者使用他们自己的自定义设置,或者自己设置自己的标准,或者使用"light_surface"实体)
其他
增量
- 添加"iuser2"到"entity_state_t".
杂项
- 修复了HUD里的选择框有1个像素的错位
- 更新了Linux Steamworks SDK 重分发二进制文件的版本号到6052876, 以此移除所需的桌面环境依赖(修复了在无桌面环境上启动专用服务器时被"steamclient.so"需要的桌面依赖)