
MvvUINotificationFramework
MvvUINotificationFramework (MvvUINF) 为《S.T.A.L.K.E.R. 2》蓝图模组提供的屏幕通知——一个带样式的共享提示队列,外加基于键的本地化,让每个模组都能显示外观一致并使用玩家语言的消息。
查看大图MvvUINotificationFramework (MvvUINF)
为 S.T.A.L.K.E.R. 2 Blueprint 模组提供的屏幕通知功能——一个带样式的共享 toast 队列, 以及基于键的本地化,让每个模组都能显示外观一致、并使用玩家语言的消息。
面向玩家 下载此模组。它本身不执行任何操作——其他模组使用它来显示通知。 需要它的模组会将其列为依赖项。
面向模组作者——3 个节点
- 将依赖项添加到你的模组的
.uplugin中:"Plugins": [ { "Name": "MvvUINotificationFramework", "Enabled": true } ](打包时必须将 Modder Kit 解压到<ZoneKit>\Stalker2\Mods\。请勿将其捆绑到你的模组中。) - 在任何 Blueprint 中(ModWorldSubsystem、Actor、Widget):
Get All Actors with Interface (BPI_MVV_Notifications) → Get (0) → Show Notification (Message) - 就是这样。如果框架缺失,数组为空,Message 调用会静默无操作——不会崩溃。
API(BPI_MVV_Notifications,v1 - 已冻结)
- ShowNotification(Title, Body, Icon, Style, Duration) 显示一个 toast。Duration 为 0 = 使用样式默认值。
- ShowNotificationSimple(Body) 单行,Info 样式。
- RegisterStrings(ModID, Table) → Loaded 注册你的本地化 DataTable(见下文)。
- ShowNotificationKey(ModID, TitleKey, BodyKey, Args[], Icon, Style, Duration) 通过本地化键显示 toast。
- GetText(ModID, Key) → Text 当前游戏语言的翻译文本。
- GetTextFmt(ModID, Key, Args[]) → Text 同上,但将 {0} {1} … 替换为 Args。
- GetVersion() → int v1.x 返回 1;框架缺失时返回 0。
样式(E_MVV_Style):Info、ItemReceived、ItemLost、QuestUpdate、Achievement、Warning、Custom。 样式 = 强调色 + 默认图标 + 声音 + 默认持续时间。你自己的 Icon(soft Texture2D)会覆盖默认值。
一个 CSV 中的本地化 创建一个 DataTable,任何行结构均可,只要其 String 列以语言代码命名: Name,en,uk,pl,ru toast.title,New find,Нова знахідка,Nowe znalezisko,Новая находка toast.body,Found {0} of {1},Знайдено {0} з {1},Znaleziono {0} z {1},Найдено {0} из {1} 行名称 = 键。每个关卡调用一次 RegisterStrings("MyMod", DT_MyStrings)(OnWorldBeginPlay), 然后在任何地方使用 GetText("MyMod","toast.title")。查找顺序:当前语言 → 基础语言(pt-BR→pt) → en → "[MyMod.toast.title]"。 无需共享结构——框架按名称读取列。
注意事项
- 在关卡开始时轮询框架 actor(它可能在你的 actor 之后生成):参见示例模组。
- 2 秒内的重复 toast 会合并为一个,并带有 ×N 计数器。最多可见 3 个;其余排队。
- Toast 不参与命中测试,也永远不会暂停游戏。
- 包含所有调用注释的示例模组:MvvUINF_Example(Workshop / Optional files)。
下一步?
- 增加为通知制作自定义设计(位置样式等)的功能
- 添加声音(目前逻辑已就绪,但说实话我没时间测试)
许可 可自由依赖并从你的模组中引用。请勿将此框架重新打包或捆绑到另一个模组中 (两个同名插件副本会同时损坏)。必须注明出处。
还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。