Exult Intrinsics内建函数速查手册:新手Mod开发者不该错过的100+隐藏能力

📅 2026/8/24 17:20:54
Exult Intrinsics内建函数速查手册:新手Mod开发者不该错过的100+隐藏能力
Exult Intrinsics内建函数速查手册新手Mod开发者不该错过的100隐藏能力【免费下载链接】exultExult is a project to recreate Ultima 7 for modern operating systems, using the games original plot, data, and graphics files.项目地址: https://gitcode.com/gh_mirrors/ex/exultExult 是一款在 Windows、Linux、macOS 等现代系统上复刻《 Ultima 7》黑色大门 / 黑蛇岛的开源游戏引擎。对 Mod 开发者来说Exult Intrinsics 内建函数就是它最核心的 API——超过 100 个以UI_开头的引擎内置函数能让你直接控制物品、NPC、天气、队伍、对话和屏幕特效无需修改引擎源码。这篇速查手册带你快速上手这些隐藏能力。一、什么是 Intrinsics 内建函数普通 Usecode C 脚本是你自己写的函数而Intrinsics内建函数是引擎原生内置的它们在引擎 C 层实现核心代码位于usecode/intrinsics.cc约 4500 行按游戏拆分为usecode/bgintrinsics.h黑色大门和usecode/siintrinsics.h黑蛇岛两套声明没有函数原型传参比 C 函数自由但每个内建函数最多传 12 个参数且参数不能少于最低要求数量支持calle 调用形式第一个参数是对象/NPC 时可写成obj-get_item_shape()这种面向对象风格每个函数旁带有适用范围标记[BG]仅黑色大门、[SI]仅黑蛇岛、[Exult]两款游戏均可用的扩展函数、无标记则通用。官方完整参考文档是项目自带的docs/exult_intrinsics.txt近 4000 行逐个函数标注参数与返回值建议放在手边。二、内建函数速查表按用途分类官方文档把 100 内建函数划分为以下类别这里给出每类的招牌函数类别代表内建函数能做什么 随机数UI_get_random、UI_die_roll、UI_roll_to_win掷骰子、判定攻击是否命中 脚本动画UI_execute_usecode_array、UI_set_to_attack驱动角色播动作、进入攻击状态 对话face-show_npc_face、UI_select_from_menu弹出 NPC 头像、生成菜单选项 声音UI_get_music_track、UI_start_speech查询/播放背景音乐与语音 搜索计数UI_find_object、UI_find_nearest、UI_find_nearby、UI_count_objects在场景/背包/容器里查找、统计物品 放置UI_create_new_object、UI_summon、UI_clone、obj-move_object凭空生成、召唤、克隆并摆放物体 物体属性UI_get_item_shape、UI_set_item_quality、UI_get_lift读写物品的形状、品质、负重 NPC 行为UI_get_npc_name、UI_get_npc_prop、UI_get_attack_mode查询 NPC 姓名、属性、攻击模式⏰ 天气/时间UI_get_weather、UI_set_weather、UI_part_of_day、UI_nap_time改天气、读游戏时钟、让主角上床睡觉️ 用户界面UI_click_on_item、UI_input_numeric_value、UI_earthquake让玩家点选目标、滑条输入数值、震屏几个彩蛋级函数值得一提UI_armageddon()会终结世界并杀死所有人原版湮灭魔咒而UI_is_water、UI_is_dest_reachable这类判定函数则是写寻路、游泳逻辑的刚需。三、新手必学的 5 个内建函数1. 生成与摆放物体——UI_create_new_object(shape)加UI_get_object_position/obj-move_object(pos, flag)是 Mod 里变出道具的万能组合。2. 搜索场景——UI_find_nearby(loc, shape, dist, mask)返回指定范围内的物品对象数组配合UI_count_objects可轻松实现靠近商店时打折之类的逻辑。3. 控制时间天气——比如剧情演出// 把时间快进到晚上并降下暴雨 UI_set_weather(2); // RAIN 2 UI_advance_time(9000); // 1500 ticks 1 小时这里推进 6 小时4. 交互输入——UI_click_on_item()显示瞄准框并等待玩家点击返回[对象, x, y, z]四元组UI_input_numeric_value(min, max, step, default)则弹出一个滑条让玩家选数字。5. 伤害与随机——UI_apply_damage造成真实伤害UI_roll_to_win(att, def)按攻防值判定命中写自定义战斗 Mod 时离不开它们。四、用 Exult Studio 配合内建函数做 Mod写脚本前通常要用Exult Studio编辑器准备形状、NPC 和彩蛋数据——内建函数里的UI_create_new_object2、UI_create_new_egg等 Exult 扩展函数正是为配合编辑器产出的新对象而生的。编辑 NPC 时直接关联 usecode 函数编号shape# 0x400 以上为自定义函数脚本里再通过UI_get_npc_id等内建函数拿到 NPC 句柄。制作投射物类道具时同理在 Studio 里配置弹道后由UI_set_to_attack触发。五、完整文档与工具链在哪找资料路径说明内建函数全量参考docs/exult_intrinsics.txt12 大分类、参数/返回值逐个说明引擎实现源码usecode/intrinsics.cc想看某函数具体行为时直接读这里双平台声明头文件usecode/bgintrinsics.h、usecode/siintrinsics.h、usecode/sibetaintrinsics.h区分 BG / SI / Exult 扩展Usecode C 编译器tools/compiler/ucc编译.uc脚本为引擎可执行字节码反汇编工具tools/ucxt/ucxt把官方 usecode 文件反汇编成源码逆向学习神器写在最后Exult 的内建函数体系是原版游戏 usecode 的超集——除了复刻黑色大门/黑蛇岛的既有函数还额外开放了UI_create_new_egg、UI_get_shape_flag等一批[Exult]标记的新能力。对新手来说建议的学习路径是先通读docs/exult_intrinsics.txt的GENERAL DEFINITIONS约 100 行再挑一个自己想要的功能比如给 NPC 加一个自定义技能沿文档 →usecode/intrinsics.cc实现 → ucxt 反汇编示例三层深入。100 个内建函数就是你的 100 种玩法。【免费下载链接】exultExult is a project to recreate Ultima 7 for modern operating systems, using the games original plot, data, and graphics files.项目地址: https://gitcode.com/gh_mirrors/ex/exult创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考