[OSP] [Code] - New notifications, First blood, Heroism, City buildings
ОСП-Код, позволяющий добавить в игру новые уведомления и усиления персонажа
"Первая кровь"
first_blood = (
ti_on_agent_killed_or_wounded, 0, 0, [],
[
(try_begin),
(eq, "$kill", 0), #no kills yet
(set_show_messages, 1),
(display_message, "@First blood!", 0xff0000),
(set_show_messages, 0),
(assign, "$kill", 1),
(try_end),
])
"Режим ярости"
common_battle_rage = (
ti_on_agent_hit, 0, 0, [],
[
#general gore
#(particle_system_burst, "psys_decap_blood", pos0, 5),
#(particle_system_burst, "psys_decap_blood", pos0, 5),
#actual rage code
(set_show_messages, 0),
(get_player_agent_no, ":player"),
(store_trigger_param_1, ":hit_agent"),
(eq, ":hit_agent", ":player"), #when player is hit
(neq, "$rageused", 1),
(store_trigger_param, ":damage", 3),
(store_agent_hit_points, ":playerhp", ":player"),
(try_begin),
(ge, ":playerhp", 51),
(lt, ":damage", ":playerhp"),
# do nothing YET
(else_try),
(ge, ":playerhp", 38),
(le, ":playerhp", 50),
(lt, ":damage", ":playerhp"),
(set_show_messages, 1),
(display_message, "@Heavily wounded, you take one last look at the sky!",0x6495ed),
(display_message, "@Inspired by the air you breathe,",0x6495ed),
(display_message, "@The pain rushing trough your body,",0x6495ed),
(display_message, "@You feel a power coming up from the depths of your body.",0x6495ed),
(set_show_messages, 0),
(else_try),
(assign, "$rageused", 1),
(set_show_messages, 1),
(display_message, "@Adrenaline rushes trough your body, nearby death inspires you to heroics", 0x6495ed),
(set_show_messages, 0),
(val_add, ":playerhp", 27),
(agent_set_hit_points, ":player", ":playerhp"),
(agent_set_invulnerable_shield, ":player"),
(agent_set_damage_modifier, ":player", 175), #damage = damage x 1.7
(agent_set_accuracy_modifier, ":player", 175), #damage = damage x 1.7
(agent_set_speed_modifier, ":player", 137), #damage = damage x 1.37
(agent_set_reload_speed_modifier, ":player", 175), #damage = damage x 1.7
(agent_set_use_speed_modifier , ":player", 175), #damage = damage x 1.7
(agent_set_ranged_damage_modifier , ":player", 175), #damage = damage x 1.7
#taunting
(get_player_agent_no, ":player_agent"),
(agent_get_position, pos1, ":player_agent"),
(store_character_level,":level","trp_player"),
(val_mul,":level",2),
(val_add,":level",1),
(try_for_agents,":agent"),
(set_fixed_point_multiplier, 1),
(agent_is_alive,":agent"),
(agent_is_human,":agent"),
(neg|agent_is_ally,":agent"),
(agent_get_troop_id,":trp_agent", ":agent"),
(store_character_level,":troop_level",":trp_agent"),
(ge,":level",":troop_level"),
(agent_get_position, pos2, ":agent"),
(get_distance_between_positions,":distance",pos2,pos1),
(lt,":distance",500),
(set_fixed_point_multiplier, 10),
(position_get_x,":player_x",pos1),
(position_get_y,":player_y",pos1),
(position_get_x,":enemy_x",pos2),
(position_get_y,":enemy_y",pos2),
(store_sub,":difference_x",":enemy_x",":player_x"),
(val_mul,":difference_x",12),
(store_sub,":difference_y",":enemy_y",":player_y"),
(val_mul,":difference_y",12),
(val_add,":enemy_x",":difference_x"),
(val_add,":enemy_y",":difference_y"),
(position_set_x,pos2,":enemy_x"),
(position_set_y,pos2,":enemy_y"),
(agent_set_scripted_destination,":agent",pos2,1),
(try_end),
(set_fixed_point_multiplier, 1),
#taunting end
#rallying
(play_sound,"snd_man_warcry"),
(try_begin),
(agent_get_class ,":blah", ":player_agent"),
(neq,":blah",grc_cavalry),
#(agent_set_animation, ":player_agent", "anim_cheer"),
(try_end),
(store_skill_level,":leadership","skl_leadership","trp_player"),
(val_mul,":leadership",3),
(try_for_agents,":agent"),
(agent_is_alive,":agent"),
(agent_is_human,":agent"),
(agent_is_ally,":agent"),
(neg|eq,":agent",":player_agent"),
(store_agent_hit_points,":life",":agent",0),
(agent_get_class ,":blah", ":agent"),
(neq,":blah",grc_cavalry),
(agent_set_animation, ":agent", "anim_cheer"),
(val_add,":life",":leadership"),
(assign, reg1, ":leadership"),
(agent_set_hit_points,":agent",":life",0),
(agent_play_sound, ":agent", "snd_man_victory"),
(try_end),
(set_show_messages, 1),
#(display_message,"@You rally your men! (wounded troops recover {reg1} % hitpoints)",0x6495ed),
(set_show_messages, 0),
(set_trigger_result, 0),
#rallying end
(try_end),
])
"Система уведомлений"
common_battle_prepare = (
ti_once, 0, 0, [],
[
(assign, "$rageused", 0), #reset every battle
(assign, "$kill", 0), #reset first blood
(assign, "$g_stop_ballista_fire", 0),
(assign, "$notificationmode", 0),
(assign, "$refill", 0),
(assign, "$dead_enemies", 0),
(assign, "$dead_enemiest", 0),
(assign, "$dead_friendlies", 0),
(assign, "$dead_friendliest", 0),
])
common_battle_notifications = (
20, 0, 0, [],
[
(assign, reg1, "$dead_friendlies"),
(assign, reg2, "$dead_enemies"),
(assign, reg3, "$dead_friendliest"),
(assign, reg4, "$dead_enemiest"),
(set_show_messages, 1),
(display_message, "@fresh casualties: {reg1}",0xC85D46),
(display_message, "@fresh killed hostiles: {reg2}",0x85C846),
(try_begin),
(gt, "$dead_friendlies", "$dead_enemies"),
(assign, ":difference", "$dead_friendlies"),
(val_sub, ":difference", "$dead_enemies"),
(try_begin),
(gt, ":difference", 10),
(display_message, "@We are taking serious losses",0xC85D46),
(else_try), #smaller then 10
(gt, ":difference", 5),
(display_message, "@We are taking losses",0xC85D46),
(else_try),
(display_message, "@We are taking slight losses",0xC85D46),
(try_end),
(else_try),
(eq, "$dead_friendlies", "$dead_enemies"),
(display_message, "@The balance of powers is equal",0xDFD848),
(else_try),
(lt, "$dead_friendlies", "$dead_enemies"),
(assign, ":difference", "$dead_enemies"),
(val_sub, ":difference", "$dead_friendlies"),
(try_begin),
(gt, ":difference", 10),
(display_message, "@We are taking enemy lives rapidly",0x85C846),
(else_try), #smaller then 10
(gt, ":difference", 5),
(display_message, "@We are taking enemy lives",0x85C846),
(else_try),
(display_message, "@We are taking enemy lives slowly",0x85C846),
(try_end),
(try_end),
(display_message, "@Total balance: {reg3} losses, {reg4} kills",0xDFD848),
(set_show_messages, 0),
(assign, "$dead_friendlies", 0), #reset values
(assign, "$dead_enemies", 0),
])
common_bearer_down = ( #also functions to check how many death hostiles and friendlies
ti_on_agent_killed_or_wounded, 0, 0, [],
[
(store_trigger_param, ":dead", 1),
(agent_is_human, ":dead"),
(try_begin),
(agent_is_ally, ":dead"),
(val_add, "$dead_friendlies", 1),
(val_add, "$dead_friendliest", 1),
(else_try),
(agent_get_troop_id, ":troop", ":dead"),
(val_add, "$dead_enemies", 1),
(val_add, "$dead_enemiest", 1),
(try_end),
])
Комментариев 2
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.