X=either your Arcane skill or Divine skill, depending which is highest*
(Spell slots for level)=1+X-(selected level)
So if your Arcane level is 5 that means you get: 5 level I slots, 4 level II slots, 3 level III slots, 2 level IV slots and 1 level V slot.
Berpol 说:
(try_begin),
(key_clicked, key_k),
(call_script, "script_testing_ootsmod_debug"),
(try_end),
common_battle_ootsmod_debugger = (
0,0, 0, [],
[
(key_clicked, key_k),
(call_script, "script_testing_ootsmod_debug"),
])
...
(agent_get_position, pos1, ":cur_agent"),
(party_add_members, "p_main_party", "trp_xykon_zombie", 1),
(set_spawn_position, pos1),
(spawn_agent, "trp_xykon_zombie"), #agent_id stored to reg0
...
...
(agent_get_position, pos1, ":cur_agent"),
(party_add_members, "p_main_party", "trp_xykon_zombie", 1),
(entry_point_get_position, pos1, 1),
(set_spawn_position, 1),
(spawn_agent, "trp_xykon_zombie"), #agent_id stored to reg0
...
...
(entry_point_get_position, pos1, 1),
(set_spawn_position, pos1),
...
("animate_dead_battle",
[(store_skill_level, reg1, "skl_divine_magic", "trp_player"),
(store_script_param, ":caster_no", 1),
(agent_get_team, ":team", ":caster_no"),
(try_for_agents, ":cur_agent"),
(agent_get_position, pos1, ":caster_no"),
(agent_get_position, pos2, ":cur_agent"),
(get_distance_between_positions,":distance", pos1, pos2),
(agent_get_slot, ":corpse", ":cur_agent", slot_agent_corpse_raised),
(try_begin),
(lt, ":distance", 500),
(eq, ":corpse", 0),
(gt, reg1, 0),
(neg|agent_is_alive, ":cur_agent"),
(val_sub, reg1, 1),
(agent_get_position, pos1, ":cur_agent"),
(party_add_members, "p_main_party", "trp_xykon_zombie", 1),
(spawn_agent, "trp_xykon_zombie", 1), #agent_id stored to reg0
(assign, ":new_agent", reg0),
(agent_set_position, ":new_agent", pos1),
(agent_set_team, ":new_agent", ":team"),
(agent_set_slot, ":cur_agent", slot_agent_corpse_raised, 1),
(particle_system_burst, "psys_summon_smoke_dark", pos1, 5),
(position_set_x, pos1, 1),
(position_set_y, pos1, 1),
(position_set_z, pos1, 1),
(agent_set_position, ":cur_agent", pos1),
(try_end),
(try_end),
]),
("cast_battle_spell",
[(get_player_agent_no, ":player_no"),
(try_begin),
(eq, "$current_spell", 2),
(call_script, "script_mass_heal_battle", ":player_no"),
(else_try),
(eq, "$current_spell", 4),
(call_script, "script_animate_dead_battle", ":player_no"),
(else_try),
(eq, "$current_spell", 9),
(call_script, "script_disintegrate_battle", ":player_no"),
(try_end),
]),
("battle_spell_selector", prsntf_read_only, 0, [
(ti_on_presentation_load,
[(presentation_set_duration, 9999999),
(set_fixed_point_multiplier, 1000),
(str_store_string, s1, "@Current spell: loading"),
(create_text_overlay, "$g_presentation_obj_1", s1),
(overlay_set_color, "$g_presentation_obj_1", 0xFFFFFF),
(position_set_x, pos1, 10),
(position_set_y, pos1, 700),
(overlay_set_position, "$g_presentation_obj_1", pos1),
]),
(ti_on_presentation_run,
[(call_script, "script_get_current_spell"),
(str_store_string, s1, "@Current spell: {s2}"),
(overlay_set_text, "$g_presentation_obj_1", s1),
(try_begin),
(game_key_clicked, gk_view_orders),
(presentation_set_duration, 0),
(assign, "$g_presentation_battle_active", 1),
(try_end),
(try_begin),
(key_clicked, key_v),
(call_script, "script_change_spell",-1),
(try_end),
(try_begin),
(key_clicked, key_b),
(call_script, "script_change_spell",1),
(try_end),
(try_begin),
(key_clicked, key_g),
(call_script, "script_cast_battle_spell"),
(try_end),
]),
("cast_battle_spell",
[(get_player_agent_no, ":player_no"),
(try_begin),
(eq, "$g_spell_selector_active", 0),
(try_begin),
(eq, "$g_current_spell", 2),
(ge, "$g_total_mass_heal", 1),
(call_script, "script_mass_heal_battle", ":player_no"),
(call_script, "script_expend_spell", "$g_current_spell", "trp_player"),
(val_sub, "$g_total_mass_heal", 1),
(else_try),
(eq, "$g_current_spell", 4),
(ge, "$g_total_animate_dead", 1),
(call_script, "script_animate_dead_battle", ":player_no"),
(call_script, "script_expend_spell", "$g_current_spell", "trp_player"),
(val_sub, "$g_total_animate_dead", 1),
(else_try),
(eq, "$g_current_spell", 9),
(ge, "$g_total_disintegrate", 1),
(call_script, "script_disintegrate_battle", ":player_no"),
(call_script, "script_expend_spell", "$g_current_spell", "trp_player"),
(val_sub, "$g_total_disintegrate", 1),
(try_end),
(try_end)
]),
common_battle_spell_caster = (
0,0, 0, [],
[
(key_clicked, key_g),
(call_script, "script_cast_battle_spell"),
])