×
Create a new article
Write your page title here:
We currently have 54,069 articles on Fallout Wiki. Type your article name above or click on one of the titles below and start writing!



Fallout Wiki
54,069Articles
FO76 ui roleplay team.pngThis is the transcript of a script file, which runs certain tasks in the game upon execution.
Details
Type Decompiled script
SCRIPTS.LST comment Brotherhood Paladins who help invade the Cathedral
MSG file BROINVAD.MSG
Transcript.png

procedure start;
procedure talk_p_proc;
procedure Initialize_p_proc;
procedure critter_p_proc;
procedure map_enter_p_proc;
variable Only_Once := 1;
variable Hex_Number;
procedure start
begin
        if (Only_Once) then begin
                call Initialize_p_proc;
        end
        else begin
                if (script_action == 11) then begin
                        call talk_p_proc;
                end
                else begin
                        if (script_action == 12) then begin
                                call critter_p_proc;
                        end
                        else begin
                                if (script_action == 15) then begin
                                        call map_enter_p_proc;
                                end
                        end
                end
        end
end
procedure talk_p_proc
begin
        if (local_var(3) == 0) then begin
                if (get_critter_stat(dude_obj, 34) == 0) then begin
                        float_msg(self_obj, message_str(819, random(100, 105)), 9);
                end
                else begin
                        float_msg(self_obj, message_str(819, random(106, 111)), 9);
                end
        end
end
procedure Initialize_p_proc
begin
        critter_add_trait(self_obj, 1, 6, 0);
        critter_add_trait(self_obj, 1, 5, 65);
        Only_Once := 0;
end
procedure critter_p_proc
begin
        variable LVar0 := 0;
        if (global_var(223) == 1) then begin
                if (local_var(4) == 0) then begin
                        if (Hex_Number == 0) then begin
                                LVar0 := random(1, 6);
                                if (LVar0 == 1) then begin
                                        Hex_Number := 22098;
                                end
                                else begin
                                        if (LVar0 == 2) then begin
                                                Hex_Number := 20700;
                                        end
                                        else begin
                                                if (LVar0 == 3) then begin
                                                        Hex_Number := 20506;
                                                end
                                                else begin
                                                        if (LVar0 == 4) then begin
                                                                Hex_Number := 20902;
                                                        end
                                                        else begin
                                                                if (LVar0 == 5) then begin
                                                                        Hex_Number := 21708;
                                                                end
                                                                else begin
                                                                        Hex_Number := 20900;
                                                                end
                                                        end
                                                end
                                        end
                                end
                        end
                        if (tile_num(self_obj) != Hex_Number) then begin
                                animate_move_obj_to_tile(self_obj, Hex_Number, 0);
                        end
                        else begin
                                if (tile_num(self_obj) == Hex_Number) then begin
                                        set_local_var(4, 1);
                                end
                        end
                end
                else begin
                        if ((tile_distance_objs(dude_obj, self_obj) > 10) and (tile_distance_objs(dude_obj, self_obj) < 15)) then begin
                                animate_move_obj_to_tile(self_obj, tile_num_in_direction(tile_num(dude_obj), random(0, 5), random(3, 6)), 0);
                        end
                        else begin
                                if (tile_distance_objs(dude_obj, self_obj) >= 15) then begin
                                        animate_move_obj_to_tile(self_obj, tile_num_in_direction(tile_num(dude_obj), random(0, 5), random(3, 6)), 1);
                                end
                                else begin
                                        if (random(1, 100) == 1) then begin
                                                animate_move_obj_to_tile(self_obj, tile_num_in_direction(tile_num(self_obj), random(0, 5), random(3, 6)), 0);
                                        end
                                end
                        end
                end
                if (local_var(4) == 1) then begin
                        if ((cur_map_index == 17) or (cur_map_index == 18)) then begin
                                if (local_var(0) == 0) then begin
                                        float_msg(self_obj, message_str(819, 112), 9);
                                        set_local_var(0, 1);
                                        party_add(self_obj);
                                end
                        end
                        else begin
                                if (cur_map_index == 33) then begin
                                        if (local_var(1) == 0) then begin
                                                set_local_var(1, 1);
                                                float_msg(self_obj, message_str(819, 113), 9);
                                        end
                                end
                                else begin
                                        if (cur_map_index == 34) then begin
                                                if (local_var(2) == 0) then begin
                                                        set_local_var(2, 1);
                                                        float_msg(self_obj, message_str(819, 114), 9);
                                                end
                                        end
                                        else begin
                                                if (local_var(3) == 0) then begin
                                                        set_local_var(3, 1);
                                                        float_msg(self_obj, message_str(819, 115), 9);
                                                        party_remove(self_obj);
                                                        animate_move_obj_to_tile(self_obj, 26000, 0);
                                                        set_global_var(223, 10);
                                                end
                                        end
                                end
                        end
                end
        end
        else begin
                if (global_var(223) == 2) then begin
                        if (local_var(4) == 0) then begin
                                set_obj_visibility(self_obj, 0);
                                if (Hex_Number == 0) then begin
                                        LVar0 := random(1, 6);
                                        if (LVar0 == 1) then begin
                                                Hex_Number := 21534;
                                        end
                                        else begin
                                                if (LVar0 == 2) then begin
                                                        Hex_Number := 22136;
                                                end
                                                else begin
                                                        if (LVar0 == 3) then begin
                                                                Hex_Number := 20932;
                                                        end
                                                        else begin
                                                                if (LVar0 == 4) then begin
                                                                        Hex_Number := 22938;
                                                                end
                                                                else begin
                                                                        if (LVar0 == 5) then begin
                                                                                Hex_Number := 21931;
                                                                        end
                                                                        else begin
                                                                                Hex_Number := 22733;
                                                                        end
                                                                end
                                                        end
                                                end
                                        end
                                end
                                if (tile_num(self_obj) != Hex_Number) then begin
                                        animate_move_obj_to_tile(self_obj, Hex_Number, 0);
                                end
                                else begin
                                        set_local_var(4, 1);
                                end
                        end
                        else begin
                                if ((tile_distance_objs(dude_obj, self_obj) > 8) and (tile_distance_objs(dude_obj, self_obj) < 12)) then begin
                                        animate_move_obj_to_tile(self_obj, tile_num_in_direction(tile_num(dude_obj), random(0, 5), random(3, 6)), 0);
                                end
                                else begin
                                        if (tile_distance_objs(dude_obj, self_obj) >= 12) then begin
                                                animate_move_obj_to_tile(self_obj, tile_num_in_direction(tile_num(dude_obj), random(0, 5), random(3, 6)), 1);
                                        end
                                        else begin
                                                if (random(1, 100) == 1) then begin
                                                        animate_move_obj_to_tile(self_obj, tile_num_in_direction(tile_num(self_obj), random(0, 5), random(3, 6)), 0);
                                                end
                                        end
                                end
                        end
                end
                else begin
                end
        end
end
procedure map_enter_p_proc
begin
        if ((global_var(223) == 2) and (cur_map_index != 30)) then begin
                set_global_var(223, 10);
        end
        if ((global_var(223) != 1) and (global_var(223) != 2)) then begin
                set_obj_visibility(self_obj, 1);
        end
end