Beta版本发布日志
You can help by adding links to this article from other relevant articles.
January 2024
Dota2创意工坊工具Alpha版本和Beta版本之间的区别
Panorama游戏界面
见:Dota 2 Workshop Tools/Panorama
- 使用全新的Panorama界面系统为自定义游戏提供游戏内界面支持。
Valve提供游戏界面
见:Dota 2 Workshop Tools/Panorama/Valve Provided UI
- 新增若干界面范例,可在地图中直接使用,或以此为原型设计自定义界面。
Lua API
特性
Lua 技能与修改器
见:Dota 2 Workshop Tools/Lua Abilities and Modifiers
- 技能与修改器现在可在Lua中定义。
- 修改器现在在Lua中展示。
脚本过滤
见:Dota 2 Workshop Tools/Script Filters
- 新增使用脚本过滤器对待定的游戏行为进行中断或修改的能力。
脚本绑定
新增若干脚本绑定:
GameRules:IsGamePaused()
PlayerResource:GetPlayerCount()
PlayerResource:GetTeamPlayerCount()
PlayerResource:GetPlayerCountForTeam()
PlayerResource:SetCustomPlayerColor()
CreateTempTree()
- 临时创建树木。GridNav:DestroyTreesAroundPoint()
- 摧毁某点附近的树木。GridNav:GetAllTreesAroundPoint()
- 获得某点附近的全部树木。SetPrimaryAttribute()
- 为英雄设置主要属性。ResolveNPCPositions()
- 解决了在代码控制下移动的NPC碰撞问题。EmitSoundOnLocationWithCaster()
- 在某地发出与NPC有关的声音。MinimapEvent()
- 创建小地图事件,例如点击或传送。GameMode:SetCustomGameForceHero()
- 强制英雄选择IsClone()
- 检测一个英雄是否为米波的克隆SendOverheadEventMessage()
- 显示头顶的经验/金钱提示UpgradeToFlyingCourier()
- DOTA_TEAM_COUNT
- 用于控制最大及最小攻击速度的函数。
- 用于开始或移除Dota NPC动作的函数。函数名:
StartGesture()
,RemoveGesture()
- 自定义游戏事件现在可以传递第二个参数,即玩家ID。例如:
function MyAddonName:OnButtonPressed( eventSourceIndex, data ) local nPlayerID = data.PlayerID end
- 将 DOTAConnectionState_t 枚举在Lua脚本中显性表示。 PlayerResource:GetConnectionState() 现在可与常数进行比较。
DOTA_CONNECTION_STATE_UNKNOWN DOTA_CONNECTION_STATE_NOT_YET_CONNECTED DOTA_CONNECTION_STATE_CONNECTED DOTA_CONNECTION_STATE_DISCONNECTED DOTA_CONNECTION_STATE_ABANDONED DOTA_CONNECTION_STATE_LOADING DOTA_CONNECTION_STATE_FAILED
修复
- 修复了跳过一个技能栏时会无视预载的错误。
- 修复了数据驱动技能无法准确设置修改器的错误。
- ReplaceHeroWith 函数将在原英雄的位置放置一个新英雄,而非在player_start的位置创建新英雄。
数据驱动技能
特性
- 数据驱动运行脚本的关键词现在包涵“event_ability”,可在在技能进行某种触发时使用。(例如:OnAbilityExecuted)
修复
- 修复了OnAbilityPhaseInterrupted无法触发的错误。
- 修复了某些域中无法识别 %<var_name> 格式的数据驱动物品变量的错误。
- 修复了OnSpellStart和OnAbilityPhaseStart之中可能出现的不佳交互。
游戏特性
自定义界面元素
见:Dota_2_Workshop_Tools/Panorama#Custom_Hud_Elements
- 新增一个简单的API,可用于从Lua代码切换至Panorama界面元素。
自定义游戏设置
见:Dota 2 Workshop Tools/Custom Game Setup
- 为自定义游戏设置新增了一个游戏状态(在英雄选择前发生,用于选择队伍和模式等)
- 自定义游戏的玩家ID将不再如同正常Dota游戏一样遵循TeamPlayer的设定(天辉和夜魇玩家的ID分别为0-9)
- 增加事件‘dota_team_player_list_changed’(当玩家数量变化或队伍分配变化时发生)和‘dota_player_details_changed’(当玩家ID或名字发生变化时发生)
自定义游戏事件
见:Dota 2 Workshop Tools/Custom Game Events
- 增加对自定义游戏事件的支持 - 命名的动态事件可为地图和Mod所使用,每个事件都有一个专属表格用于传递参数。
自定义通信
见:Dota 2 Workshop Tools/Custom Nettables
- 增加自定义通信功能,便于从服务器传输数据至客户端。
自定义生命栏颜色
- 增加对队伍生命栏颜色修改的支持(默认为"green = my team, red = enemy")
- 在脚本中为 SetTeamCustomHealthbarColor( teamNumber, r, g, b ) / ClearTeamCustomHealthbarColor( teamNumber )
小地图图标
- 增加禁用小地图上的队伍颜色的功能。
- 修复了自定义小地图的材质并非总是高清的错误。
- 为地图增加了‘addon_hud_textures.txt’文件,用于注册自定义小地图图标。
游戏代码
- 游戏代码更新至 6.84c。
- 真视效果仅对拥有真视修改器的队伍生效。禁用隐身,例如使用显影之尘,还将继续对所有队伍生效。
- 地图上的树木最大值增加值8191。
- 移除了部分部分地面高度和水深的假设,以防止游戏系统无法正确作用于自定义地图。
- 充能类技能及物品现在可以使用-refresh指令刷新。使用-wtf指令可无限制使用。
创意工坊管理工具
- 新增了一个便于将地图上传至创意工坊的工具。
PET/粒子
粒子特效复制/移动工具
见:Dota 2 Workshop Tools/Particle Copy Tool
- 粒子特效系统定义复制/移动工具的初始版本。 (及子类)
特性
- 现在可以在预览例子特效时插入模型进行预览。这些模型可在进行需要模型的粒子特效相关操作时被查询,例如碰撞体积内的诞生粒子特效。
- 为预览增加了控制功能,可以显现碰撞体积、附着点和名称,使预览的模型按照预定设计活动,使用饰品或套装进行模型预览等。
- 为挂点编辑器增加控制功能,可以将挂点附着在预览模型的原点或附着点上。
- 为模型预览附着点增加自动连接挂点的代码,代码用于载入一个附着在饰品上的粒子特效系统,且该预览饰品正使用此粒子特效时。
- 新增两个序列结合模组: SEQUENCE_COMBINE_MODE_REPLICATE_COLOR_0, SEQUENCE_COMBINE_MODE_REPLICATE_COLOR_1。
- 更好的粒子数据(cur/max/alloc 均可用于系统及全局层级)。
- F10键可用于在引擎和工具之间来回切换。
- 为S2 PET增加“will not end on stop”警告,形式与S1相同。
- PET特性编辑器现在可以高亮显示与预设不同的主属性,并增加右键选项将其还原为预设。
- PET特性编辑器现在默认隐藏进阶属性(可通过“Show Hidden Attributes”按钮显示)
- 增加“Lock Preview System” 按钮,用于锁定母模型的同时编辑子模型等场景。
- 增加挂点位置和转向锁定功能。
- 放宽函数列表的界面以方便在同组中的多次操作。(但会警告)
- 在render_projected操作中增加水平翻转粒子。
- 为例子旋转类型增加PARTICLE_SHADER_ORIENTATION_SCREEN_Z_ALIGNED支持。
- 双击子粒子特效系统预览可以打开它。
修复
- 修复了挂点所控制的数据有时无法正确反映粒子特效预览的错误。
- 修复了将一个粒子特效系统设定为子系统时导致崩溃的错误。
- 修复了编辑正在游戏中使用的特定粒子特效会导致崩溃的错误。
- 修复了试图使用Scratch Float 1或Scratch Float 2会导致崩溃的错误。
- 修复了PET中的序列选择。序列选择器现在将识别你的混合模式,并酌情将序列显示为 color/alpha/both。
- 修复了启动颜色选择器时PET显示停止的错误。
- 修复了在不同会话中来回切换时导致系统无法重启后的复原功能。
- 修复了模型没有碰撞体积时InitSkinnedPositionFromCPSnapshot会导致崩溃的错误。
- 修复了在PET中编辑子系统偶尔导致崩溃的错误。
- 修复了创建无限循环的母-子粒子特效系统导致崩溃的错误。
- 修复了在低端机中使用Render Projected操作时导致的perf stalls
- 修复了模型在模型在显示操作时无法正确显示的错误。
- 修复了粒子操作和显示的若干错误。
Hammer
特性
- 为地形编辑器新增多图层支持,可在运行时灵活切换。
- 为地形编辑器的路径工具增加破坏模式。
- 增加了选择光源时预览其信息的功能。
- 增加了在地形编辑器的混合工具中只在平面上绘制的选项。
- 变更了混合工具的工作方式,现在可以在使用混合工具时在路径上绘制。
- 增加了在地形编辑器中使用混合刷工具时进行路径预览的功能。
- 修复了地形编辑器中只有单位高度的地形才能出现在水边的限制。
- 更改了使用高度刷应用地形组件的行为,现在单个地形的高度也可以被更高。
- 增加了在地形编辑器中隐藏所有树木、植物和道具的功能。
- 为地形编辑器的启动/禁止模式下增加增加套索选择功能。
- 调节反射的Alpha特性。如果你在材质中设置“Modulate Specular By Alpha”,Hammer的网格划分现在可以使用Alpha关键词并根据它的值调节镜像的贡献。
修复
- 修复了将某些粒子特效拖入Hammer中导致崩溃的错误。
- 对工具进行优化,减少地形编辑器编译地图的体积。
- 地形编辑器的树木布置细节更加智能,不可见的树木将不再有过多细节。
- 在地图编译时增加通道,自动修复地形中的接缝。
- 修复了水面的覆盖物不正确的错误。
- 修复了隐藏地图上部分地形的尺寸时自动生成的小地图尺寸。
- 修复了地图编译后部分道具在引擎中无法正常显示的错误。
材质编辑器
特性
- 将色彩1的细节想作者开放,允许在材质中赋予表达式。
修复
- 修复了某些情况下材质编辑器无法正确显示透明度的错误。
- 修复了材质的PSD文件含有多个alpha通道时在编译时使用错误的alpha通道的问题。现在编译器将有限寻找被标记为‘alpha’的通道进行编译。
音效
- 修复了导致某些声音无法播放的错误。
- 修复了某些音效过早结束的错误(例如音调提高的MP3文件)。
- 修复音乐。
- 修复了某些情况下音量为固定值而非浮动值的错误。
- 降低音频延迟。
- 自动检测并调整音频输出设备的驱动。
- 修复了某些情况下链接或断开音频输出设备检测不正确的错误。
- 修复了网络连接错误导致玩家不能听到信使进入商店范围的错误。
性能
- 移除部分关联并提高整体性能。
- 更新了视频自动配置以识别部分更新的GPU。
- 降低客户端的CPU占用。
- 降低客户端的GPU占用。
- 减少启动载入时间。
- 提升排程
- 修复了资源浏览器无法正确显示资源索引的错误。
- 许多单位的寻路更快了。
- 为unit.txt增加了PathfindingSearchDepthScale 关键字,值可以设置为0至1,调整其寻路的准确度与速度,用于大量单位。
其他
特性
- 新的客户端游戏事件:‘dota_player_update_assigned_hero’和‘dota_player_hero_selection_dirty’
- Dota建筑现在有‘particle_tint_color’关键字 - 如果设置会将起环境和摧毁效果值从15和16(Dota中的数值)调整为相应颜色。
- 允许在自定义游戏中对英雄进行着色。
- 允许自定义游戏结束时的镜头调整: Dota 2 Workshop Tools/Dota Camera
- 增加新事件“dota_npc_goal_reached”允许NPC在到达路径中的某点时脚本对其下达指令。
- 新增事件“dota_player_begin_cast”,在技能开始是产生 -- 这个时间发生在技能释放之前,所以即使单位取消释放技能或释放成功前被眩晕,事件仍会触发。对非玩家单位可使用“dota_non_player_begin_cast”。
修复
- 调用SetOrigin不再取消NPC的传送。
- 小兵现在默认拥有1点魔法恢复。
- 增加诊断功能,用于解决玩家有时无法在自定义游戏中购买物品的错误。
- 修复了dota_create_unit对custom8队伍无效的错误。
- 修复了断开链接的玩家重连后回到错误的基地,导致基地/要塞/商店等对多个单位友好。
- 自定义组队任务在玩家断开连接后仍然有效。
- 修复了模型的皮肤覆盖导致 materialoverride 在一帧后消失的问题 - 现在材质覆盖总是优先于皮肤覆盖。
- 修复了酒仙大招导致崩溃的错误。
- 修复了Hammer的输入输出工具排序延迟是字母排序而非数值排序。其他想要此功能的也可以使用全新的CQTableWidgetItemSortNumeric帮助工具来达到相同的效果。
- 修复了数据驱动单位没有出现在准确类中:
Sometimes the map-specified classname is more precise (ie. corresponds with a more-derived class) than the npc_units.txt class, and sometimes the opposite is the case. Change behavior of AppendNPCKeyValues() to pick the most-derived classname, rather than always deferring to any classname that comes from the map. In vanilla Dota the npc_units.txt file is less precise than the map, thus we want the map’s npc_dota_barracks to trump the txt’s npc_dota_building:
[ npc_units.txt ]
"npc_dota_goodguys_range_rax_top"
{
"BaseClass" "npc_dota_building"
[ dota.vmap ]
Entity 4167 (npc_dota_barracks '[PR#]bad_rax_melee_top'):
{
0xC61B1C62:classname = "npc_dota_barracks"
But in addons, data-driven units are the opposite – the txt’s npc_dota_creature is more-derived than npc_dota_base:
[ npc_units_custom.txt ]
"npc_dota_xp_granter"
{
"BaseClass" "npc_dota_creature"
[ addon.vmap ]
Entity 11 (npc_dota_base '<no targetname>'):
{
0xC61B1C62:classname = "npc_dota_base"
0x155A6AA7:MapUnitName = "npc_dota_xp_granter"
- 修复了模型出现时不在玩家的战争迷雾中会导致崩溃的错误。
- 修复了关闭导致的部分崩溃。
- 修复是光照更接近s1。
- r_drawworld可以正常工作了。
- 修复了变体精灵动态头像的暗疮问题。
- 贴图旋转已经修复了。
- 状态特效修复。
- 小小/暗夜魔王的模型现在准确根据等级/日夜循环进行模型变化。
- 修复了部分英雄的彩虹皮肤。
- 修复了部分英雄的攻击时间。
- 修复了“skin”的变化导致模型不可见的错误。
- 英雄检视现在显示正确的细节等级。
- 团队展示现在显示正确的细节等级。
- 修复了一些英雄的某些部分过于闪耀的问题。
- 修复了河中鱼过亮的问题。
- 修复了装备自定义守卫导致崩溃的错误。
- 修复了满屏幕多边形的Bug(使用显影之尘时)。
- 修复了产生幻象造成的大量卡顿。
- Fixed stuttering caused by certain types of particle systems spew "is trying to get CP object 8 but the operator read limit is 2"
- 修复了粒子特效在水中无法显示的错误
- 修复了地图正在载入时模型重新编译导致崩溃的错误。
- 修复了色盲模式。
- 修复了光效中有一个巨大方形漏洞的错误
- 修复了黑色材质在载入地图后黏住不动的错误。
- 修复了购买的信使在其他英雄出生后方能被看到的错误。
- 修复了lua的‘ReplaceHeroWith’函数有时导致崩溃的错误。
- 修复了通道名称错误导致粒子特效丢失的错误。
- Shops.txt将会从地图中载入。
- 神秘商店的购买图标‘S’将在使用通用商店模式时被废止。