diff --git a/scripts_src/arroyo/acbrahmn.ssl b/scripts_src/arroyo/acbrahmn.ssl index cb59e4e40..568d7853a 100644 --- a/scripts_src/arroyo/acbrahmn.ssl +++ b/scripts_src/arroyo/acbrahmn.ssl @@ -51,14 +51,13 @@ end procedure timed_event_p_proc begin // brahmin wander around in random directions. - if (((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) - and (not(combat_is_initialized))) then begin + if (((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) and (not(combat_is_initialized))) then begin reg_anim_clear(self_obj); reg_anim_begin(); - self_walk_to_tile(tile_num_in_direction(self_tile,random(0,5),3)); + self_walk_to_tile(tile_num_in_direction(self_tile, random(0, 5), 3)); reg_anim_end(); end - add_timer_event(self_obj,game_ticks(random(3,5)),1); + flush_add_timer_event_sec(self_obj, random(3, 5), 1); end procedure critter_p_proc begin @@ -66,6 +65,7 @@ end procedure pickup_p_proc begin end + procedure talk_p_proc begin end @@ -76,7 +76,7 @@ procedure damage_p_proc begin // attacking the Brahmin makes you an enemy of Arroyo. if (source_obj == dude_obj) then begin set_global_var(GVAR_ENEMY_ARROYO,TRUE); - end + end end procedure look_at_p_proc begin @@ -92,21 +92,20 @@ end procedure use_obj_on_p_proc begin // if you give a Brahmin beer or booze, it'll fall down and take damage. This was pulled from the original // fallout script - if ((obj_pid(obj_being_used_with) == PID_BEER) - or (obj_pid(obj_being_used_with) == PID_BOOZE)) then begin + if (is_alcohol(obj_being_used_with)) then begin variable item := 0; script_overrides; item := obj_being_used_with; - rm_obj_from_inven(source_obj,obj_being_used_with); + rm_obj_from_inven(source_obj, obj_being_used_with); destroy_object(item); if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); + critter_injure(self_obj, DAM_KNOCKED_DOWN); end end end @@ -115,10 +114,7 @@ procedure use_skill_on_p_proc begin // a good science skill check will give you a little more info about the brahmin. if (action_being_used == SKILL_SCIENCE) then begin script_overrides; - if (is_success(roll_vs_skill(dude_obj,action_being_used,0))) then - display_msg(br_mstr(101)); - else - display_msg(br_mstr(102)); + display_msg(br_mstr(102 - (is_success(roll_vs_skill(dude_obj, action_being_used, 0))))); end else if (action_being_used == SKILL_STEAL) then script_overrides; end @@ -127,5 +123,11 @@ procedure map_enter_p_proc begin Only_Once:=0; set_self_team(TEAM_ARROYO); //critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_AI_PACKET,AI_ARROYO_VILLAGER); - add_timer_event(self_obj,game_ticks(random(1,5)),1); + if (is_loading_game == false) then begin + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + animate_stand; + move_to(self_obj, self_tile, self_elevation); // avoid visual offset shifting + end + flush_add_timer_event_sec(self_obj, random(1, 5), 1); + end end diff --git a/scripts_src/generic/zcbrahmn.ssl b/scripts_src/generic/zcbrahmn.ssl index d498b16bc..026ec2bd1 100644 --- a/scripts_src/generic/zcbrahmn.ssl +++ b/scripts_src/generic/zcbrahmn.ssl @@ -147,10 +147,7 @@ procedure use_skill_on_p_proc begin // a good science skill check will give you a little more info about the brahmin. if (action_being_used == SKILL_SCIENCE) then begin script_overrides; - if (is_success(roll_vs_skill(dude_obj, action_being_used, 0))) then - display_msg(br_mstr(101)); - else - display_msg(br_mstr(102)); + display_msg(br_mstr(102 - (is_success(roll_vs_skill(dude_obj, action_being_used, 0))))); end else if (action_being_used == SKILL_STEAL) then script_overrides; end @@ -162,7 +159,8 @@ procedure map_enter_p_proc begin set_self_ai(AI_GENERIC_BRAHMIN); end if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin - add_timer_event(self_obj, game_ticks(random(10, 30)), TIMER_STAND_UP); + animate_stand; + move_to(self_obj, self_tile, self_elevation); // avoid visual offset shifting end //flush_add_timer_event_sec(self_obj, random(15, 90), TIMER_WALK); //flush_add_timer_event_sec(self_obj, random(5, 15), TIMER_FLOAT); diff --git a/scripts_src/klamath/kcbrahmn.ssl b/scripts_src/klamath/kcbrahmn.ssl index 43256e1f5..bcbd03b0b 100644 --- a/scripts_src/klamath/kcbrahmn.ssl +++ b/scripts_src/klamath/kcbrahmn.ssl @@ -51,15 +51,16 @@ end procedure pickup_p_proc begin end + procedure talk_p_proc begin end procedure destroy_p_proc begin - set_global_var(GVAR_TORR_BRAHMIN_KILLED,global_var(GVAR_TORR_BRAHMIN_KILLED)+1); - if (source_obj == dude_obj) then begin - set_global_var(GVAR_RUSTLE_FAIL,1); //if dude starts killing brahmin rustle will fail - set_map_var(MVAR_Dude_Bad,1); - end + set_global_var(GVAR_TORR_BRAHMIN_KILLED, global_var(GVAR_TORR_BRAHMIN_KILLED) + 1); + if (source_obj == dude_obj) then begin + set_global_var(GVAR_RUSTLE_FAIL, 1); //if dude starts killing brahmin rustle will fail + set_map_var(MVAR_Dude_Bad, 1); + end end procedure damage_p_proc begin @@ -82,21 +83,20 @@ end procedure use_obj_on_p_proc begin // if you give a Brahmin beer or booze, it'll fall down and take damage. This was pulled from the original // fallout script - if ((obj_pid(obj_being_used_with) == PID_BEER) - or (obj_pid(obj_being_used_with) == PID_BOOZE)) then begin + if (is_alcohol(obj_being_used_with)) then begin variable item := 0; script_overrides; item := obj_being_used_with; - rm_obj_from_inven(source_obj,obj_being_used_with); + rm_obj_from_inven(source_obj, obj_being_used_with); destroy_object(item); if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); + critter_injure(self_obj, DAM_KNOCKED_DOWN); end end end @@ -105,18 +105,21 @@ procedure use_skill_on_p_proc begin // a good science skill check will give you a little more info about the brahmin. if (action_being_used == SKILL_SCIENCE) then begin script_overrides; - if (is_success(roll_vs_skill(dude_obj,action_being_used,0))) then - display_msg(br_mstr(101)); - else - display_msg(br_mstr(102)); + display_msg(br_mstr(102 - (is_success(roll_vs_skill(dude_obj, action_being_used, 0))))); end else if (action_being_used == SKILL_STEAL) then script_overrides; end procedure map_enter_p_proc begin if (global_var(GVAR_RUSTLE_SUCCESS) != 0) then begin //Hack for alpah...use critter attempt placement - set_self_invisible; + set_self_invisible; end set_self_team(TEAM_BRAHMIN); //critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_AI_PACKET,AI_ARROYO_VILLAGER); + if (is_loading_game == false) then begin + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + animate_stand; + move_to(self_obj, self_tile, self_elevation); // avoid visual offset shifting + end + end end diff --git a/scripts_src/modoc/mcbess.ssl b/scripts_src/modoc/mcbess.ssl index 54fe9ab67..856a1f71e 100644 --- a/scripts_src/modoc/mcbess.ssl +++ b/scripts_src/modoc/mcbess.ssl @@ -48,6 +48,11 @@ procedure Node003; #define br_mstr(x) message_str(SCRIPT_ZCBRAHMN,x) #define br_floater(x) float_msg(self_obj, br_mstr(x), FLOAT_COLOR_NORMAL) +#define TIMER_FLOAT 1 // unused? +#define TIMER_POOP 3 +#define TIMER_STAND_UP 4 +#define TIMER_ESCAPE 5 + #define LVAR_Flags (0) #define LVAR_Graze_Tile (1) #define LVAR_FOLLOW_DISTANCE (2) @@ -98,34 +103,36 @@ procedure start begin end procedure timed_event_p_proc begin -variable temp_poo; + variable temp_poo; if (fixed_param == 666) then begin put_jerky_in_box critter_damage(self_obj, 100); end else if (self_visible) then begin - if (fixed_param == 1) then begin - br_floater(random(201, 206)); - add_timer_event(self_obj,game_ticks(random(5,15)),1); - end else if (fixed_param == 3) then begin + if (fixed_param == TIMER_FLOAT) then begin + br_floater(random(201, 206)); + flush_add_timer_event_sec(self_obj, random(5, 15), TIMER_FLOAT); + end else if (fixed_param == TIMER_POOP) then begin if (bess_is_injured == false) then begin - if (random(1,3) == 1) then begin + if (random(1, 3) == 1) then begin br_floater(206); temp_poo := create_object_sid(random(PID_SMALL_GOO_1, PID_SMALL_GOO_3), 0, 0, SCRIPT_ZIBRAPOO); - move_to(temp_poo, tile_num_in_direction(self_tile, self_inv_rot, 1), 0); + move_to(temp_poo, tile_num_in_direction(self_tile, self_inv_rot, 1), self_elevation); end - flush_add_timer_event_sec(self_obj, random(120, 300), 3); + flush_add_timer_event_sec(self_obj, random(120, 300), TIMER_POOP); + end + end else if (fixed_param == TIMER_STAND_UP) then begin + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + reg_anim_clear(self_obj); + reg_anim_begin(); + reg_anim_animate(self_obj, ANIM_back_to_standing, -1); + reg_anim_end(); + critter_uninjure(self_obj, DAM_KNOCKED_DOWN); end - end else if (fixed_param == 4) then begin - reg_anim_clear(self_obj); - reg_anim_begin(); - reg_anim_animate(self_obj, ANIM_back_to_standing, -1); - reg_anim_end(); - critter_uninjure(self_obj, DAM_KNOCKED_DOWN); //added by killap - end else if (fixed_param == 5) then begin + end else if (fixed_param == TIMER_ESCAPE) then begin if not anim_busy(self_obj) then begin - self_walk_to_tile(tile_num_in_direction(self_tile,1,3)); - add_timer_event(self_obj, game_ticks(1), 5); + self_walk_to_tile(tile_num_in_direction(self_tile, 1, 3)); + flush_add_timer_event_sec(self_obj, 1, TIMER_ESCAPE); end end //end added @@ -137,7 +144,7 @@ procedure critter_p_proc begin if (self_visible) then begin if not healed and not (critter_state(self_obj) bwand DAM_CRIP_LEG_RIGHT) then begin set_healed; - flush_add_timer_event_sec(self_obj, random(120, 300), 3); + flush_add_timer_event_sec(self_obj, random(120, 300), TIMER_POOP); inc_general_rep(REP_BONUS_MODOC_HELP_BESS); party_add_self; reg_anim_clear(self_obj); @@ -153,7 +160,7 @@ procedure critter_p_proc begin self_walk_to_tile(map_next_tile); //added by killap if not anim_busy(self_obj) then begin - add_timer_event(self_obj, game_ticks(1), 5); + flush_add_timer_event_sec(self_obj, 1, TIMER_ESCAPE); end //end added end else begin @@ -225,10 +232,7 @@ procedure use_skill_on_p_proc begin // a good science skill check will give you a little more info about the brahmin. if (action_being_used == SKILL_SCIENCE) then begin script_overrides; - if (is_success(roll_vs_skill(dude_obj,action_being_used,0))) then - display_msg(br_mstr(101)); - else - display_msg(br_mstr(102)); + display_msg(br_mstr(102 - (is_success(roll_vs_skill(dude_obj, action_being_used, 0))))); end else if (action_being_used == SKILL_FIRST_AID) then begin if (healed == false) then begin script_overrides; @@ -248,20 +252,20 @@ procedure use_obj_on_p_proc begin // if you give a Brahmin beer or booze, it'll fall down and take damage. This was pulled from the original // fallout script - if ((obj_pid(obj_being_used_with) == PID_BEER) or (obj_pid(obj_being_used_with) == PID_BOOZE)) then begin + if (is_alcohol(obj_being_used_with)) then begin variable item := 0; script_overrides; item := obj_being_used_with; - rm_obj_from_inven(source_obj,obj_being_used_with); + rm_obj_from_inven(source_obj, obj_being_used_with); destroy_object(item); if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); + critter_injure(self_obj, DAM_KNOCKED_DOWN); end end end @@ -273,12 +277,12 @@ procedure push_p_proc begin if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front ,-1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); - add_timer_event(self_obj, game_ticks(Random(10, 30)), 4); + critter_injure(self_obj, DAM_KNOCKED_DOWN); + add_timer_event(self_obj, game_ticks(random(10, 30)), TIMER_STAND_UP); ndebug("ahh Cow TIPPED you get +10 Hick Experience Points."); end end @@ -295,9 +299,9 @@ procedure map_enter_p_proc begin if (healed == false) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); critter_injure(self_obj, DAM_CRIP_LEG_RIGHT); end @@ -305,6 +309,10 @@ procedure map_enter_p_proc begin //added by killap if ( (healed) and not(freed_bess) and not(bess_sold_for_jerky) ) then begin + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + animate_stand; + move_to(self_obj, self_tile, self_elevation); // avoid visual offset shifting + end party_add_self; end //end added by killap @@ -367,7 +375,7 @@ procedure Node990 begin end procedure Node002 begin -variable temp_msg; + variable temp_msg; temp_msg := mstr(130); if (dude_perk(PERK_empathy)) then begin temp_msg += mstr(131); @@ -378,7 +386,7 @@ variable temp_msg; end procedure Node003 begin -variable temp_msg; + variable temp_msg; temp_msg := mstr(140); if (dude_perk(PERK_empathy)) then begin temp_msg += mstr(141); diff --git a/scripts_src/modoc/mcbrahmn.ssl b/scripts_src/modoc/mcbrahmn.ssl index d624bf524..636e0b315 100644 --- a/scripts_src/modoc/mcbrahmn.ssl +++ b/scripts_src/modoc/mcbrahmn.ssl @@ -45,6 +45,10 @@ procedure timed_event_p_proc; #define br_mstr(x) message_str(SCRIPT_ZCBRAHMN,x) #define br_floater(x) float_msg(self_obj, br_mstr(x), FLOAT_COLOR_NORMAL) +#define TIMER_WALK 1 +#define TIMER_FLOAT 2 +#define TIMER_POOP 3 + #define LVAR_Graze_Tile (0) #define LVAR_Flags (1) @@ -80,29 +84,30 @@ procedure start begin end procedure timed_event_p_proc begin -variable temp_poo; - if (fixed_param == 1) then begin + variable temp_poo; + if (fixed_param == TIMER_WALK) then begin if (combat_is_initialized == false) then begin set_graze_tile end - flush_add_timer_event_sec(self_obj, random(45, 90), 1); - end if (fixed_param == 2) then begin + flush_add_timer_event_sec(self_obj, random(45, 90), TIMER_WALK); + end if (fixed_param == TIMER_FLOAT) then begin if (combat_is_initialized == false) then begin br_floater(random(201, 205)); end - flush_add_timer_event_sec(self_obj, random(30, 45), 2); - end else if (fixed_param == 3) then begin + flush_add_timer_event_sec(self_obj, random(30, 45), TIMER_FLOAT); + end else if (fixed_param == TIMER_POOP) then begin if (combat_is_initialized == false) then begin - if (random(1,3) == 1) then begin + if (random(1, 3) == 1) then begin br_floater(206); ndebug("BRAHMIN IS POOING!!! hehehehe"); temp_poo := create_object_sid(random(PID_SMALL_GOO_1, PID_SMALL_GOO_3), 0, 0, SCRIPT_ZIBRAPOO); - move_to(temp_poo, tile_num_in_direction(self_tile, self_inv_rot, 1), 0); + move_to(temp_poo, tile_num_in_direction(self_tile, self_inv_rot, 1), self_elevation); end end - flush_add_timer_event_sec(self_obj, random(120, 300), 3); + flush_add_timer_event_sec(self_obj, random(120, 300), TIMER_POOP); end end + procedure combat_p_proc begin set_brahimin_obj; end @@ -153,20 +158,20 @@ end procedure use_obj_on_p_proc begin // if you give a Brahmin beer or booze, it'll fall down and take damage. This was pulled from the original // fallout script - if ((obj_pid(obj_being_used_with) == PID_BEER) or (obj_pid(obj_being_used_with) == PID_BOOZE)) then begin + if (is_alcohol(obj_being_used_with)) then begin variable item := 0; script_overrides; item := obj_being_used_with; - rm_obj_from_inven(source_obj,obj_being_used_with); + rm_obj_from_inven(source_obj, obj_being_used_with); destroy_object(item); if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); + critter_injure(self_obj, DAM_KNOCKED_DOWN); end end end @@ -175,7 +180,7 @@ procedure use_skill_on_p_proc begin // a good science skill check will give you a little more info about the brahmin. if (action_being_used == SKILL_SCIENCE) then begin script_overrides; - display_msg(br_mstr(101 + (is_success(roll_vs_skill(dude_obj,action_being_used,0))))); + display_msg(br_mstr(102 - (is_success(roll_vs_skill(dude_obj, action_being_used, 0))))); end else if (action_being_used == SKILL_STEAL) then script_overrides; end @@ -191,16 +196,20 @@ procedure map_enter_p_proc begin set_self_team(TEAM_MODOC_SEED_BRAHMIN); set_self_ai(AI_SCARED_BRAHMIN); end - flush_add_timer_event_sec(self_obj, random(15, 90), 1); - flush_add_timer_event_sec(self_obj, random(5, 15), 2); - flush_add_timer_event_sec(self_obj, random(0, 300), 3); + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + animate_stand; + move_to(self_obj, self_tile, self_elevation); // avoid visual offset shifting + end + flush_add_timer_event_sec(self_obj, random(15, 90), TIMER_WALK); + flush_add_timer_event_sec(self_obj, random(5, 15), TIMER_FLOAT); + flush_add_timer_event_sec(self_obj, random(0, 300), TIMER_POOP); end end procedure map_exit_p_proc begin //added by killap if (cur_map_index == MAP_MODOC_BRAHMINPASTURES) then begin - rm_timer_event(self_obj); + rm_timer_event(self_obj); end //end added end diff --git a/scripts_src/modoc/mckilbra.ssl b/scripts_src/modoc/mckilbra.ssl index 81bb53e12..bb91ab8a8 100644 --- a/scripts_src/modoc/mckilbra.ssl +++ b/scripts_src/modoc/mckilbra.ssl @@ -44,6 +44,11 @@ procedure map_update_p_proc; #define br_mstr(x) message_str(SCRIPT_ZCBRAHMN,x) #define br_floater(x) float_msg(self_obj, br_mstr(x), FLOAT_COLOR_NORMAL) +#define TIMER_SET_TILE 1 +#define TIMER_FLOAT 2 +#define TIMER_POOP 3 +#define TIMER_ESCAPE 4 + #define LVAR_Home_Tile (0) #define LVAR_Brahmin_Did_Replace (1) #define LVAR_Graze_Tile (2) @@ -70,31 +75,31 @@ procedure start begin end procedure timed_event_p_proc begin -variable temp_poo; + variable temp_poo; if (self_visible) then begin - if (fixed_param == 1) then begin + if (fixed_param == TIMER_SET_TILE) then begin if (cur_map_index != MAP_GHOST_FARM) then begin if (combat_is_initialized == false) then begin set_graze_tile end - flush_add_timer_event_sec(self_obj, random(2, 10), 1); + flush_add_timer_event_sec(self_obj, random(2, 10), TIMER_SET_TILE); end - end if (fixed_param == 2) then begin + end if (fixed_param == TIMER_FLOAT) then begin br_floater(random(201, 205)); - flush_add_timer_event_sec(self_obj, random(30, 45), 2); - end else if (fixed_param == 3) then begin - if (random(1,3) == 1) then begin + flush_add_timer_event_sec(self_obj, random(30, 45), TIMER_FLOAT); + end else if (fixed_param == TIMER_POOP) then begin + if (random(1, 3) == 1) then begin br_floater(206); ndebug("BRAHMIN IS POOING!!! hehehehe"); temp_poo := create_object_sid(random(PID_SMALL_GOO_1, PID_SMALL_GOO_3), 0, 0, SCRIPT_ZIBRAPOO); - move_to(temp_poo, tile_num_in_direction(self_tile, self_inv_rot, 1), 0); + move_to(temp_poo, tile_num_in_direction(self_tile, self_inv_rot, 1), self_elevation); end - flush_add_timer_event_sec(self_obj, random(120, 300), 3); + flush_add_timer_event_sec(self_obj, random(120, 300), TIMER_POOP); //added by killap - end else if (fixed_param == 4) then begin + end else if (fixed_param == TIMER_ESCAPE) then begin if not anim_busy(self_obj) then begin - self_walk_to_tile(tile_num_in_direction(self_tile,1,3)); - add_timer_event(self_obj, game_ticks(1), 4); + self_walk_to_tile(tile_num_in_direction(self_tile, 1, 3)); + flush_add_timer_event_sec(self_obj, 1, TIMER_ESCAPE); end //end added end else begin @@ -118,7 +123,7 @@ procedure critter_p_proc begin self_walk_to_tile(map_next_tile); //added by killap if not anim_busy(self_obj) then begin - add_timer_event(self_obj, game_ticks(1), 4); + flush_add_timer_event_sec(self_obj, 1, TIMER_ESCAPE); end //end added if (step_tile < 0) then begin @@ -174,20 +179,20 @@ end procedure use_obj_on_p_proc begin // if you give a Brahmin beer or booze, it'll fall down and take damage. This was pulled from the original // fallout script - if ((obj_pid(obj_being_used_with) == PID_BEER) or (obj_pid(obj_being_used_with) == PID_BOOZE)) then begin + if (is_alcohol(obj_being_used_with)) then begin variable item := 0; script_overrides; item := obj_being_used_with; - rm_obj_from_inven(source_obj,obj_being_used_with); + rm_obj_from_inven(source_obj, obj_being_used_with); destroy_object(item); if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); + critter_injure(self_obj, DAM_KNOCKED_DOWN); end end end @@ -196,7 +201,7 @@ procedure use_skill_on_p_proc begin // a good science skill check will give you a little more info about the brahmin. if (action_being_used == SKILL_SCIENCE) then begin script_overrides; - display_msg(br_mstr(101 + (is_success(roll_vs_skill(dude_obj,action_being_used,0))))); + display_msg(br_mstr(102 - (is_success(roll_vs_skill(dude_obj, action_being_used, 0))))); end else if (action_being_used == SKILL_STEAL) then script_overrides; end @@ -213,11 +218,15 @@ procedure map_enter_p_proc begin if (local_var(LVAR_Graze_Tile) == 0) then begin set_local_var(LVAR_Home_Tile, self_tile); set_local_var(LVAR_Graze_Tile, self_tile); - add_timer_event(self_obj, (random(1,15) * ONE_GAME_MINUTE), 1); + add_timer_event(self_obj, (random(1, 15) * ONE_GAME_MINUTE), TIMER_SET_TILE); end if (self_tile != local_var(LVAR_Graze_Tile)) then begin critter_attempt_placement(self_obj, local_var(LVAR_Graze_Tile), self_elevation); end + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + animate_stand; + move_to(self_obj, self_tile, self_elevation); // avoid visual offset shifting + end if ((self_visible == false) and (night == false)) then begin check_set_obj_visiblility(self_obj, false); end @@ -226,6 +235,7 @@ procedure map_enter_p_proc begin end end end + procedure map_exit_p_proc begin if (is_slaughter_house_brahmin) then begin if ((freed_bess) and (tile_in_slaughter_house_area(self_tile) == false)) then begin @@ -238,13 +248,14 @@ procedure map_exit_p_proc begin end end end + procedure use_p_proc begin end procedure map_update_p_proc begin if (local_var(LVAR_Graze_Tile) == 0) then begin set_local_var(LVAR_Graze_Tile, self_tile); - add_timer_event(self_obj, (random(1,15) * ONE_GAME_MINUTE), 1); - add_timer_event(self_obj,game_ticks(random(5,15)),2); + flush_add_timer_event(self_obj, (random(1, 15) * ONE_GAME_MINUTE), TIMER_SET_TILE); + flush_add_timer_event_sec(self_obj, random(5, 15), TIMER_FLOAT); end end diff --git a/scripts_src/ncr/scbrahmn.ssl b/scripts_src/ncr/scbrahmn.ssl index 5d522aa08..4eff092b6 100644 --- a/scripts_src/ncr/scbrahmn.ssl +++ b/scripts_src/ncr/scbrahmn.ssl @@ -87,21 +87,20 @@ end procedure use_obj_on_p_proc begin // if you give a Brahmin beer or booze, it'll fall down and take damage. This was pulled from the original // fallout script - if ((obj_pid(obj_being_used_with) == PID_BEER) - or (obj_pid(obj_being_used_with) == PID_BOOZE)) then begin + if (is_alcohol(obj_being_used_with)) then begin variable item := 0; script_overrides; item := obj_being_used_with; - rm_obj_from_inven(source_obj,obj_being_used_with); + rm_obj_from_inven(source_obj, obj_being_used_with); destroy_object(item); if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); + critter_injure(self_obj, DAM_KNOCKED_DOWN); end end end @@ -110,10 +109,7 @@ procedure use_skill_on_p_proc begin // a good science skill check will give you a little more info about the brahmin. if (action_being_used == SKILL_SCIENCE) then begin script_overrides; - if (is_success(roll_vs_skill(dude_obj,action_being_used,0))) then - display_msg(br_mstr(101)); - else - display_msg(br_mstr(102)); + display_msg(br_mstr(102 - (is_success(roll_vs_skill(dude_obj, action_being_used, 0))))); end else if (action_being_used == SKILL_STEAL) then script_overrides; end @@ -121,4 +117,10 @@ end procedure map_enter_p_proc begin set_self_team(TEAM_ARROYO); //critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_AI_PACKET,AI_ARROYO_VILLAGER); + if (is_loading_game == false) then begin + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + animate_stand; + move_to(self_obj, self_tile, self_elevation); // avoid visual offset shifting + end + end end diff --git a/scripts_src/newreno/ncangbra.ssl b/scripts_src/newreno/ncangbra.ssl index 05d2dd825..f53fb893d 100644 --- a/scripts_src/newreno/ncangbra.ssl +++ b/scripts_src/newreno/ncangbra.ssl @@ -48,33 +48,38 @@ procedure Node001; #define br_mstr(x) message_str(SCRIPT_ZCBRAHMN,x) #define br_floater(x) float_msg(self_obj, br_mstr(x), FLOAT_COLOR_NORMAL) +#define TIMER_WALK 1 +#define TIMER_FLOAT 2 +#define TIMER_POOP 3 #define TIMER_STAND_UP 4 procedure timed_event_p_proc begin -variable temp_poo; - if (fixed_param == 1) then begin + variable temp_poo; + if (fixed_param == TIMER_WALK) then begin if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin - self_walk_to_tile(tile_num_in_direction(self_tile,random(0,5),random(1,3))); + self_walk_to_tile(tile_num_in_direction(self_tile, random(0, 5), random(1,3))); end - flush_add_timer_event_sec(self_obj, random(45, 90), 1); - end if (fixed_param == 2) then begin + flush_add_timer_event_sec(self_obj, random(45, 90), TIMER_WALK); + end if (fixed_param == TIMER_FLOAT) then begin br_floater(random(201, 205)); - flush_add_timer_event_sec(self_obj, random(30, 45), 2); - end else if (fixed_param == 3) then begin + flush_add_timer_event_sec(self_obj, random(30, 45), TIMER_FLOAT); + end else if (fixed_param == TIMER_POOP) then begin if (item_removed) then begin - if (random(1,2) == 1) then begin + if (random(1, 2) == 1) then begin br_floater(206); temp_poo := create_object_sid(random(PID_SMALL_GOO_1, PID_SMALL_GOO_3), 0, 0, SCRIPT_ZIBRAPOO); - move_to(temp_poo, tile_num_in_direction(self_tile, self_inv_rot, 1), 0); + move_to(temp_poo, tile_num_in_direction(self_tile, self_inv_rot, 1), self_elevation); end - flush_add_timer_event_sec(self_obj, random(15, 45), 3); + flush_add_timer_event_sec(self_obj, random(15, 45), TIMER_POOP); end end else if (fixed_param == TIMER_STAND_UP) then begin - reg_anim_clear(self_obj); - reg_anim_begin(); - reg_anim_animate(self_obj, ANIM_back_to_standing, -1); - reg_anim_end(); - critter_uninjure(self_obj, DAM_KNOCKED_DOWN); + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + reg_anim_clear(self_obj); + reg_anim_begin(); + reg_anim_animate(self_obj, ANIM_back_to_standing, -1); + reg_anim_end(); + critter_uninjure(self_obj, DAM_KNOCKED_DOWN); + end end end @@ -86,6 +91,7 @@ end procedure pickup_p_proc begin end + procedure talk_p_proc begin call Node001; end @@ -96,12 +102,12 @@ procedure push_p_proc begin if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); - add_timer_event(self_obj, game_ticks(Random(10, 30)), TIMER_STAND_UP); + critter_injure(self_obj, DAM_KNOCKED_DOWN); + add_timer_event(self_obj, game_ticks(random(10, 30)), TIMER_STAND_UP); ndebug("ahh Cow TIPPED you get +10 Hick Experience Points."); end end @@ -124,27 +130,27 @@ end procedure description_p_proc begin if (item_removed == false) then begin script_overrides; - display_mstr(150 + (has_skill(dude_obj, SKILL_DOCTOR)>=50)); + display_mstr(150 + (has_skill(dude_obj, SKILL_DOCTOR) >= 50)); end end procedure use_obj_on_p_proc begin // if you give a Brahmin beer or booze, it'll fall down and take damage. This was pulled from the original // fallout script - if ((obj_pid(obj_being_used_with) == PID_BEER) or (obj_pid(obj_being_used_with) == PID_BOOZE)) then begin + if (is_alcohol(obj_being_used_with)) then begin variable item := 0; script_overrides; item := obj_being_used_with; - rm_obj_from_inven(source_obj,obj_being_used_with); + rm_obj_from_inven(source_obj, obj_being_used_with); destroy_object(item); if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); + critter_injure(self_obj, DAM_KNOCKED_DOWN); end end end @@ -153,21 +159,18 @@ procedure use_skill_on_p_proc begin // a good science skill check will give you a little more info about the brahmin. if (action_being_used == SKILL_SCIENCE) then begin script_overrides; - if (is_success(roll_vs_skill(dude_obj,action_being_used,0))) then - display_msg(br_mstr(101)); - else - display_msg(br_mstr(102)); + display_msg(br_mstr(102 - (is_success(roll_vs_skill(dude_obj, action_being_used, 0))))); end else if (action_being_used == SKILL_STEAL) then begin script_overrides; end else if (action_being_used == SKILL_DOCTOR) then begin if (item_removed == false) then begin - if (is_success(roll_vs_skill(dude_obj,SKILL_DOCTOR,-25))) then begin + if (is_success(roll_vs_skill(dude_obj, SKILL_DOCTOR, -25))) then begin floater_rand(198, 199); display_mstr(225); give_xp(100); set_local_var(LVAR_Doctor_Attempts, -1); give_pid_qty(dude_obj, PID_MICRO_FUSION_CELL, 1) - flush_add_timer_event_sec(self_obj, 0, 3); + flush_add_timer_event_sec(self_obj, 0, TIMER_POOP); end else begin script_overrides; inc_local_var(LVAR_Doctor_Attempts); @@ -188,12 +191,16 @@ procedure map_enter_p_proc begin set_self_team(TEAM_BRAHMIN); set_self_ai(AI_GENERIC_BRAHMIN); end - flush_add_timer_event_sec(self_obj, random(45, 90), 1); - flush_add_timer_event_sec(self_obj, random(30, 45), 2); - flush_add_timer_event_sec(self_obj, random(30, 45), 3); + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + animate_stand; + move_to(self_obj, self_tile, self_elevation); // avoid visual offset shifting + end + flush_add_timer_event_sec(self_obj, random(45, 90), TIMER_WALK); + flush_add_timer_event_sec(self_obj, random(30, 45), TIMER_FLOAT); + flush_add_timer_event_sec(self_obj, random(30, 45), TIMER_POOP); end end procedure Node001 begin - floater_rand(200-(2*(local_var(LVAR_Doctor_Attempts) < 0)), 206); + floater_rand(200 - (2 * (local_var(LVAR_Doctor_Attempts) < 0)), 206); end diff --git a/scripts_src/rndenctr/ecbrahmn.ssl b/scripts_src/rndenctr/ecbrahmn.ssl index e5ecdcc3f..ef53c162c 100644 --- a/scripts_src/rndenctr/ecbrahmn.ssl +++ b/scripts_src/rndenctr/ecbrahmn.ssl @@ -15,7 +15,6 @@ procedure start; #include "../headers/command.h" - /* Standard Script Procedures */ procedure start; procedure critter_p_proc; @@ -33,6 +32,9 @@ procedure push_p_proc; #define br_mstr(x) message_str(SCRIPT_ZCBRAHMN,x) #define br_floater(x) float_msg(self_obj, br_mstr(x), FLOAT_COLOR_NORMAL) +#define TIMER_WALK 1 +#define TIMER_FLOAT 2 +#define TIMER_ROAM 3 #define TIMER_STAND_UP 4 procedure push_p_proc begin @@ -41,12 +43,12 @@ procedure push_p_proc begin if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); - add_timer_event(self_obj, game_ticks(Random(10, 30)), TIMER_STAND_UP); + critter_injure(self_obj, DAM_KNOCKED_DOWN); + add_timer_event(self_obj, game_ticks(random(10, 30)), TIMER_STAND_UP); ndebug("ahh Cow TIPPED you get +10 Hick Experience Points."); end end @@ -54,39 +56,41 @@ procedure push_p_proc begin end procedure timed_event_p_proc begin -variable temp_poo; - if (fixed_param == 1) then begin + variable temp_poo; + if (fixed_param == TIMER_WALK) then begin if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin - self_walk_to_tile(tile_num_in_direction(self_tile,random(0,5),random(1,3))); + self_walk_to_tile(tile_num_in_direction(self_tile, random(0, 5), random(1,3))); end - flush_add_timer_event_sec(self_obj, random(45, 90), 1); - end if (fixed_param == 2) then begin + flush_add_timer_event_sec(self_obj, random(45, 90), TIMER_WALK); + end if (fixed_param == TIMER_FLOAT) then begin br_floater(random(201, 205)); - flush_add_timer_event_sec(self_obj, random(30, 45), 2); - end else if (fixed_param == 3) then begin - br_floater(206); - if (((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) and (not(combat_is_initialized))) then begin - reg_anim_clear(self_obj); - reg_anim_begin(); - if (self_tile / 200 > 131) then - self_walk_to_tile(tile_num_in_direction(self_tile,5,4)); - else if (self_tile / 200 < 108) then - self_walk_to_tile(tile_num_in_direction(self_tile,2,4)); - else if (self_tile % 200 < 80) then - self_walk_to_tile(tile_num_in_direction(self_tile,3,4)); - else if (self_tile % 200 > 122) then - self_walk_to_tile(tile_num_in_direction(self_tile,0,4)); - else - self_walk_to_tile(tile_num_in_direction(self_tile,random(0,7),3)); - reg_anim_end(); - end - flush_add_timer_event_sec(self_obj, random(10, 20), 3); + flush_add_timer_event_sec(self_obj, random(30, 45), TIMER_FLOAT); + end else if (fixed_param == TIMER_ROAM) then begin + br_floater(206); + if (((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) and (not(combat_is_initialized))) then begin + reg_anim_clear(self_obj); + reg_anim_begin(); + if (self_tile / 200 > 131) then + self_walk_to_tile(tile_num_in_direction(self_tile, 5, 4)); + else if (self_tile / 200 < 108) then + self_walk_to_tile(tile_num_in_direction(self_tile, 2, 4)); + else if (self_tile % 200 < 80) then + self_walk_to_tile(tile_num_in_direction(self_tile, 3, 4)); + else if (self_tile % 200 > 122) then + self_walk_to_tile(tile_num_in_direction(self_tile, 0, 4)); + else + self_walk_to_tile(tile_num_in_direction(self_tile, random(0, 5), 3)); + reg_anim_end(); + end + flush_add_timer_event_sec(self_obj, random(10, 20), TIMER_ROAM); end else if (fixed_param == TIMER_STAND_UP) then begin - reg_anim_clear(self_obj); - reg_anim_begin(); - reg_anim_animate_reverse(self_obj, ANIM_fall_back, -1); - reg_anim_end(); - critter_uninjure(self_obj, DAM_KNOCKED_DOWN); + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + reg_anim_clear(self_obj); + reg_anim_begin(); + reg_anim_animate(self_obj, ANIM_back_to_standing, -1); + reg_anim_end(); + critter_uninjure(self_obj, DAM_KNOCKED_DOWN); + end end end @@ -98,6 +102,7 @@ end procedure pickup_p_proc begin end + procedure talk_p_proc begin end @@ -120,21 +125,20 @@ end procedure use_obj_on_p_proc begin // if you give a Brahmin beer or booze, it'll fall down and take damage. This was pulled from the original // fallout script - if ((obj_pid(obj_being_used_with) == PID_BEER) - or (obj_pid(obj_being_used_with) == PID_BOOZE)) then begin + if (is_alcohol(obj_being_used_with)) then begin variable item := 0; script_overrides; item := obj_being_used_with; - rm_obj_from_inven(source_obj,obj_being_used_with); + rm_obj_from_inven(source_obj, obj_being_used_with); destroy_object(item); if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); + critter_injure(self_obj, DAM_KNOCKED_DOWN); end end end @@ -143,10 +147,7 @@ procedure use_skill_on_p_proc begin // a good science skill check will give you a little more info about the brahmin. if (action_being_used == SKILL_SCIENCE) then begin script_overrides; - if (is_success(roll_vs_skill(dude_obj,action_being_used,0))) then - display_msg(br_mstr(101)); - else - display_msg(br_mstr(102)); + display_msg(br_mstr(102 - (is_success(roll_vs_skill(dude_obj, action_being_used, 0))))); end else if (action_being_used == SKILL_STEAL) then script_overrides; end @@ -157,8 +158,12 @@ procedure map_enter_p_proc begin set_self_team(TEAM_RND_BRAHMIN); set_self_ai(AI_GENERIC_BRAHMIN); end - flush_add_timer_event_sec(self_obj, random(15, 90), 1); - flush_add_timer_event_sec(self_obj, random(5, 15), 2); - flush_add_timer_event_sec(self_obj, random(5, 10), 3); + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + animate_stand; + move_to(self_obj, self_tile, self_elevation); // avoid visual offset shifting + end + flush_add_timer_event_sec(self_obj, random(15, 90), TIMER_WALK); + flush_add_timer_event_sec(self_obj, random(5, 15), TIMER_FLOAT); + flush_add_timer_event_sec(self_obj, random(5, 10), TIMER_ROAM); end end diff --git a/scripts_src/rndenctr/eccrtbra.ssl b/scripts_src/rndenctr/eccrtbra.ssl index 0f4272cb6..03fbe7c54 100644 --- a/scripts_src/rndenctr/eccrtbra.ssl +++ b/scripts_src/rndenctr/eccrtbra.ssl @@ -48,7 +48,6 @@ procedure destroy_p_proc begin end end - procedure look_at_p_proc begin script_overrides; display_msg(br_mstr(100)); @@ -61,29 +60,28 @@ end procedure combat_p_proc begin if (fixed_param == COMBAT_SUBTYPE_TURN) then begin - script_overrides; - ndebug("I'm strapped in and won't move."); + script_overrides; + ndebug("I'm strapped in and won't move."); end end procedure use_obj_on_p_proc begin // if you give a Brahmin beer or booze, it'll fall down and take damage. This was pulled from the original // fallout script - if ((obj_pid(obj_being_used_with) == PID_BEER) - or (obj_pid(obj_being_used_with) == PID_BOOZE)) then begin + if (is_alcohol(obj_being_used_with)) then begin variable item := 0; script_overrides; item := obj_being_used_with; - rm_obj_from_inven(source_obj,obj_being_used_with); + rm_obj_from_inven(source_obj, obj_being_used_with); destroy_object(item); if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); + critter_injure(self_obj, DAM_KNOCKED_DOWN); end end end @@ -92,10 +90,7 @@ procedure use_skill_on_p_proc begin // a good science skill check will give you a little more info about the brahmin. if (action_being_used == SKILL_SCIENCE) then begin script_overrides; - if (is_success(roll_vs_skill(dude_obj,action_being_used,0))) then - display_msg(br_mstr(101)); - else - display_msg(br_mstr(102)); + display_msg(br_mstr(102 - (is_success(roll_vs_skill(dude_obj, action_being_used, 0))))); end else if (action_being_used == SKILL_STEAL) then script_overrides; end @@ -115,4 +110,10 @@ procedure map_enter_p_proc begin set_self_team(TEAM_BRAHMIN); end set_self_ai(AI_GENERIC_BRAHMIN); + if (is_loading_game == false) then begin + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + animate_stand; + move_to(self_obj, self_tile, self_elevation); // avoid visual offset shifting + end + end end diff --git a/scripts_src/vault15/bcbrahmn.ssl b/scripts_src/vault15/bcbrahmn.ssl index ab29237aa..e7b55dfec 100644 --- a/scripts_src/vault15/bcbrahmn.ssl +++ b/scripts_src/vault15/bcbrahmn.ssl @@ -55,6 +55,7 @@ end procedure pickup_p_proc begin end + procedure talk_p_proc begin end @@ -77,21 +78,20 @@ end procedure use_obj_on_p_proc begin // if you give a Brahmin beer or booze, it'll fall down and take damage. This was pulled from the original // fallout script - if ((obj_pid(obj_being_used_with) == PID_BEER) - or (obj_pid(obj_being_used_with) == PID_BOOZE)) then begin + if (is_alcohol(obj_being_used_with)) then begin variable item := 0; script_overrides; item := obj_being_used_with; - rm_obj_from_inven(source_obj,obj_being_used_with); + rm_obj_from_inven(source_obj, obj_being_used_with); destroy_object(item); if ((critter_state(self_obj) bwand DAM_KNOCKED_DOWN) == FALSE) then begin reg_anim_clear(self_obj); reg_anim_begin(); - reg_anim_animate(self_obj,ANIM_hit_from_front,-1); - reg_anim_animate(self_obj,ANIM_fall_back,5); - reg_anim_animate(self_obj,ANIM_fall_back_sf,-1); + reg_anim_animate(self_obj, ANIM_hit_from_front, -1); + reg_anim_animate(self_obj, ANIM_fall_back, 5); + reg_anim_animate(self_obj, ANIM_fall_back_sf, -1); reg_anim_end(); - critter_injure(self_obj,DAM_KNOCKED_DOWN); + critter_injure(self_obj, DAM_KNOCKED_DOWN); end end end @@ -100,10 +100,7 @@ procedure use_skill_on_p_proc begin // a good science skill check will give you a little more info about the brahmin. if (action_being_used == SKILL_SCIENCE) then begin script_overrides; - if (is_success(roll_vs_skill(dude_obj,action_being_used,0))) then - display_msg(br_mstr(101)); - else - display_msg(br_mstr(102)); + display_msg(br_mstr(102 - (is_success(roll_vs_skill(dude_obj, action_being_used, 0))))); end else if (action_being_used == SKILL_STEAL) then script_overrides; end @@ -116,4 +113,10 @@ procedure map_enter_p_proc begin set_self_team(TEAM_VAULT15); //critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_AI_PACKET,AI_ARROYO_VILLAGER); + if (is_loading_game == false) then begin + if (critter_state(self_obj) bwand DAM_KNOCKED_DOWN) then begin + animate_stand; + move_to(self_obj, self_tile, self_elevation); // avoid visual offset shifting + end + end end