SGM图书馆(SGM Library) mod | 群星
SGM Library是一个资源库,目的是为modder们集中存放在多个插件中使用的脚本。
该库的大部分函数允许您确定(或估计)游戏内属性的数值(这在正常脚本中是不可能的)。另一个“创新”是它展示了一种应用动态修饰器的方法(通过实现一系列静态修饰器并使用二分搜索来确定实际应用的修饰器)。
函数列表如下:
1. SGM_country_add_energy/food/influence/minerals/unity
2. SGM_country_sub_energy/food/influence/minerals/unity
3. SGM_country_get_energy_balance
4. SGM_country_get_max_naval_capacity
5. SGM_country_get_mineral_balance
6. SGM_fleet_acc_fleet_size
7. SGM_fleet_get_fleet_power
8. SGM_fleet_get_fleet_size
9. SGM_planet_get_planet_size
10. SGM_ship_modifier_upkeep_add
11. SGM_ship_modifier_weapon_damage_add
其中一些脚本由数千行代码组成。当启动Stellaris时,代码会被解释,这会导致加载时间增加。大多数mod仅使用自己的脚本,但我发现几个SGM mods需要相同的功能,因此我创建了这个库以避免多次加载相同的脚本。
modder们可以随意查看和复制。如果您发现有用的内容,请留下评论或点赞。您也可以将提供的函数作为“必需项目”包含在自己的mod中使用。如果这样做,请确保您阅读并理解最后的免责声明。
一些提供的脚本是使用Matlab中的简单代码生成器“自动生成”的。代码生成器的源代码也包含在上传中。您可能会发现它对于创建静态的,循环展开的二分搜索以确定Stellaris游戏内变量的确切数值非常有用,只使用最少数量的“if”语句。
要指定函数的返回值范围,请使用以下方法:
1. 在所需的结果范围中使用“save_event_target_as=SGM_result_scope”
2. 脚本将使用“event_target:SGM_result_scope”在标记的范围中提供返回值
3. 结果变量命名为“SGM_<name_of_ingame_property>”
最后,要注意的是:Stellaris脚本编程比较原始。没有抽象化,没有接口。您直接依赖于实现本身。如果您使用该库,我所做的任何更改都将直接影响到您的mod。我会尽量保持库的稳定和最新,但请理解我是在我的业余时间里做这个作为一种兴趣爱好。对于使用该库导致的任何不便或错误,我概不负责。