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



Fallout Wiki
56,866Articles
Holiday Decor 2023.png
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 Beca and Jade. Quartermistress of the Blades
MSG file BECA.MSG
Transcript.png

procedure start;
procedure critter_p_proc;
procedure destroy_p_proc;
procedure look_at_p_proc;
procedure pickup_p_proc;
procedure talk_p_proc;
procedure show_true_name;
procedure show_false_name;
procedure Beca00;
procedure Beca01;
procedure Beca02;
procedure BecaCombat;
procedure BecaEnd;
variable hostile;
variable initialized;
procedure start
begin
        if (not(initialized)) then begin
                critter_add_trait(self_obj, 1, 6, 47);
                critter_add_trait(self_obj, 1, 5, 27);
                initialized := 1;
        end
        else begin
                if (script_action == 12) then begin
                        call critter_p_proc;
                end
                else begin
                        if (script_action == 18) then begin
                                call destroy_p_proc;
                        end
                        else begin
                                if (script_action == 21) then begin
                                        call look_at_p_proc;
                                end
                                else begin
                                        if (script_action == 4) then begin
                                                call pickup_p_proc;
                                        end
                                        else begin
                                                if (script_action == 11) then begin
                                                        call talk_p_proc;
                                                end
                                        end
                                end
                        end
                end
        end
end
procedure critter_p_proc
begin
        if (obj_can_see_obj(self_obj, dude_obj) and (global_var(136) < 41)) then begin
                hostile := 1;
        end
        if (hostile) then begin
                hostile := 0;
                attack_complex(dude_obj, 0, 1, 0, 0, 30000, 0, 0);
        end
end
procedure destroy_p_proc
begin
        set_global_var(136, global_var(136) - 1);
        if (source_obj == dude_obj) then begin
                if (((global_var(160) + global_var(159)) >= 25) and ((global_var(159) > (2 * global_var(160))) or (global_var(156) == 1))) then begin
                        set_global_var(156, 1);
                        set_global_var(157, 0);
                end
                if (((global_var(160) + global_var(159)) >= 25) and ((global_var(160) > (3 * global_var(159))) or (global_var(157) == 1))) then begin
                        set_global_var(157, 1);
                        set_global_var(156, 0);
                end
                set_global_var(159, global_var(159) + 1);
                if ((global_var(159) % 2) == 0) then begin
                        set_global_var(155, global_var(155) - 1);
                end
        end
end
procedure look_at_p_proc
begin
        if ((global_var(135) == 2) or (get_critter_stat(dude_obj, 6) > 6)) then begin
                call show_true_name;
        end
        else begin
                if (get_critter_stat(dude_obj, 6) < 4) then begin
                        call show_false_name;
                end
                else begin
                        if (get_critter_stat(dude_obj, 4) < 5) then begin
                                call show_false_name;
                        end
                        else begin
                                if (random(0, 1)) then begin
                                        call show_false_name;
                                end
                                else begin
                                        call show_true_name;
                                end
                        end
                end
        end
end
procedure pickup_p_proc
begin
        hostile := 1;
end
procedure talk_p_proc
begin
        if (get_critter_stat(dude_obj, 4) < 4) then begin
                display_msg(message_str(766, 175));
        end
        else begin
                set_local_var(0, 1);
                if (global_var(135) == 2) then begin
                        call Beca02;
                end
                else begin
                        start_gdialog(281, self_obj, 4, -1, -1);
                        gsay_start;
                        call Beca00;
                        gsay_end;
                        end_dialogue;
                end
        end
end
procedure show_true_name
begin
        script_overrides;
        if (local_var(0)) then begin
                if ((game_time_hour >= 1900) or (game_time_hour < 600)) then begin
                        display_msg(message_str(281, 100));
                end
                else begin
                        display_msg(message_str(281, 101));
                end
        end
        else begin
                display_msg(message_str(281, 104));
        end
end
procedure show_false_name
begin
        script_overrides;
        display_msg(message_str(281, random(105, 111)));
end
procedure Beca00
begin
        gsay_reply(281, 112);
        giq_option(4, 281, 113, BecaCombat, 50);
        giq_option(4, 281, 114, BecaEnd, 50);
        giq_option(4, 281, 115, Beca01, 50);
end
procedure Beca01
begin
        gsay_message(281, 116, 50);
end
procedure Beca02
begin
        float_msg(self_obj, message_str(281, 117), 2);
end
procedure BecaCombat
begin
        hostile := 1;
end
procedure BecaEnd
begin
end