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



Fallout Wiki
53,554Articles
Cross Wiki 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 Jake the Arms Dealer in the Hub
MSG file N/A
Transcript.png

procedure start;
procedure combat;
procedure critter_p_proc;
procedure pickup_p_proc;
procedure talk_p_proc;
procedure destroy_p_proc;
procedure look_at_p_proc;
procedure Merchant00;
procedure Merchant01;
procedure Merchant02;
procedure Merchant03;
procedure Merchant04;
procedure Merchant05;
procedure Get_Stuff;
procedure Put_Stuff;
variable hostile;
variable Only_Once := 1;
procedure get_reaction;
procedure ReactToLevel;
procedure LevelToReact;
procedure UpReact;
procedure DownReact;
procedure BottomReact;
procedure TopReact;
procedure BigUpReact;
procedure BigDownReact;
procedure UpReactLevel;
procedure DownReactLevel;
procedure Goodbyes;
variable exit_line;
procedure start
begin
        if (Only_Once) then begin
                Only_Once := 0;
                critter_add_trait(self_obj, 1, 6, 41);
                critter_add_trait(self_obj, 1, 5, 50);
        end
        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
                        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
                                end
                        end
                end
        end
end
procedure combat
begin
        hostile := 1;
end
procedure critter_p_proc
begin
        if (hostile) then begin
                hostile := 0;
                attack_complex(dude_obj, 0, 1, 0, 0, 30000, 0, 0);
        end
end
procedure pickup_p_proc
begin
        if (source_obj == dude_obj) then begin
                hostile := 1;
        end
end
procedure talk_p_proc
begin
        call get_reaction;
        call Get_Stuff;
        start_gdialog(782, self_obj, 4, -1, -1);
        gsay_start;
        call Merchant00;
        gsay_end;
        end_dialogue;
        call Put_Stuff;
end
procedure destroy_p_proc
begin
        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
        script_overrides;
        display_msg(message_str(782, 110));
end
procedure Merchant00
begin
        gsay_reply(782, 101);
        giq_option(4, 782, 102, Merchant01, 50);
        giq_option(4, 782, 103, Merchant02, 50);
        giq_option(4, 782, 104, Merchant03, 50);
        giq_option(-3, 782, 105, Merchant04, 50);
end
procedure Merchant01
begin
        gsay_message(782, 106, 50);
        gdialog_mod_barter(-10);
        call Merchant05;
end
procedure Merchant02
begin
        gsay_message(782, 107, 50);
        gdialog_mod_barter(-10);
        call Merchant05;
end
procedure Merchant03
begin
end
procedure Merchant04
begin
        gsay_message(782, 108, 50);
end
procedure Merchant05
begin
        gsay_message(782, 109, 50);
end
procedure Get_Stuff
begin
        variable LVar0 := 0;
        LVar0 := create_object_sid(32, 0, 0, -1);
        add_mult_objs_to_inven(self_obj, LVar0, 5);
        LVar0 := create_object_sid(14, 0, 0, -1);
        add_mult_objs_to_inven(self_obj, LVar0, 5);
        LVar0 := create_object_sid(25, 0, 0, -1);
        add_mult_objs_to_inven(self_obj, LVar0, 6);
        LVar0 := create_object_sid(11, 0, 0, -1);
        add_mult_objs_to_inven(self_obj, LVar0, 2);
        LVar0 := create_object_sid(10, 0, 0, -1);
        add_mult_objs_to_inven(self_obj, LVar0, 2);
        LVar0 := create_object_sid(23, 0, 0, -1);
        add_mult_objs_to_inven(self_obj, LVar0, 1);
        LVar0 := create_object_sid(27, 0, 0, -1);
        add_mult_objs_to_inven(self_obj, LVar0, 6);
        LVar0 := create_object_sid(13, 0, 0, -1);
        add_mult_objs_to_inven(self_obj, LVar0, 1);
        LVar0 := create_object_sid(9, 0, 0, -1);
        add_mult_objs_to_inven(self_obj, LVar0, 2);
        LVar0 := create_object_sid(143, 0, 0, -1);
        add_mult_objs_to_inven(self_obj, LVar0, 1);
end
procedure Put_Stuff
begin
        variable LVar0 := 0;
        variable LVar1 := 0;
        LVar0 := obj_carrying_pid_obj(self_obj, 32);
        LVar1 := rm_mult_objs_from_inven(self_obj, LVar0, 5);
        destroy_object(LVar0);
        LVar0 := obj_carrying_pid_obj(self_obj, 14);
        LVar1 := rm_mult_objs_from_inven(self_obj, LVar0, 5);
        destroy_object(LVar0);
        LVar0 := obj_carrying_pid_obj(self_obj, 25);
        LVar1 := rm_mult_objs_from_inven(self_obj, LVar0, 6);
        destroy_object(LVar0);
        LVar0 := obj_carrying_pid_obj(self_obj, 11);
        LVar1 := rm_mult_objs_from_inven(self_obj, LVar0, 2);
        destroy_object(LVar0);
        LVar0 := obj_carrying_pid_obj(self_obj, 10);
        LVar1 := rm_mult_objs_from_inven(self_obj, LVar0, 2);
        destroy_object(LVar0);
        LVar0 := obj_carrying_pid_obj(self_obj, 23);
        LVar1 := rm_mult_objs_from_inven(self_obj, LVar0, 1);
        destroy_object(LVar0);
        LVar0 := obj_carrying_pid_obj(self_obj, 27);
        LVar1 := rm_mult_objs_from_inven(self_obj, LVar0, 6);
        destroy_object(LVar0);
        LVar0 := obj_carrying_pid_obj(self_obj, 13);
        LVar1 := rm_mult_objs_from_inven(self_obj, LVar0, 1);
        destroy_object(LVar0);
        LVar0 := obj_carrying_pid_obj(self_obj, 9);
        LVar1 := rm_mult_objs_from_inven(self_obj, LVar0, 2);
        destroy_object(LVar0);
        LVar0 := obj_carrying_pid_obj(self_obj, 143);
        LVar1 := rm_mult_objs_from_inven(self_obj, LVar0, 1);
        destroy_object(LVar0);
end
procedure get_reaction
begin
        if (local_var(2) == 0) then begin
                set_local_var(0, 50);
                set_local_var(1, 2);
                set_local_var(2, 1);
                set_local_var(0, local_var(0) + (5 * get_critter_stat(dude_obj, 3)) - 25);
                set_local_var(0, local_var(0) + (10 * has_trait(0, dude_obj, 10)));
                if (has_trait(0, dude_obj, 39)) then begin
                        if (global_var(155) > 0) then begin
                                set_local_var(0, local_var(0) + global_var(155));
                        end
                        else begin
                                set_local_var(0, local_var(0) - global_var(155));
                        end
                end
                else begin
                        if (local_var(3) == 1) then begin
                                set_local_var(0, local_var(0) - global_var(155));
                        end
                        else begin
                                set_local_var(0, local_var(0) + global_var(155));
                        end
                end
                if (global_var(158) > 2) then begin
                        set_local_var(0, local_var(0) - 30);
                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_local_var(0, local_var(0) + 20);
                end
                if (((global_var(160) + global_var(159)) >= 25) and ((global_var(159) > (2 * global_var(160))) or (global_var(156) == 1))) then begin
                        set_local_var(0, local_var(0) - 20);
                end
                call ReactToLevel;
        end
end
procedure ReactToLevel
begin
        if (local_var(0) <= 25) then begin
                set_local_var(1, 1);
        end
        else begin
                if (local_var(0) <= 75) then begin
                        set_local_var(1, 2);
                end
                else begin
                        set_local_var(1, 3);
                end
        end
end
procedure LevelToReact
begin
        if (local_var(1) == 1) then begin
                set_local_var(0, random(1, 25));
        end
        else begin
                if (local_var(1) == 2) then begin
                        set_local_var(0, random(26, 75));
                end
                else begin
                        set_local_var(0, random(76, 100));
                end
        end
end
procedure UpReact
begin
        set_local_var(0, local_var(0) + 10);
        call ReactToLevel;
end
procedure DownReact
begin
        set_local_var(0, local_var(0) - 10);
        call ReactToLevel;
end
procedure BottomReact
begin
        set_local_var(1, 1);
        set_local_var(0, 1);
end
procedure TopReact
begin
        set_local_var(0, 100);
        set_local_var(1, 3);
end
procedure BigUpReact
begin
        set_local_var(0, local_var(0) + 25);
        call ReactToLevel;
end
procedure BigDownReact
begin
        set_local_var(0, local_var(0) - 25);
        call ReactToLevel;
end
procedure UpReactLevel
begin
        set_local_var(1, local_var(1) + 1);
        if (local_var(1) > 3) then begin
                set_local_var(1, 3);
        end
        call LevelToReact;
end
procedure DownReactLevel
begin
        set_local_var(1, local_var(1) - 1);
        if (local_var(1) < 1) then begin
                set_local_var(1, 1);
        end
        call LevelToReact;
end
procedure Goodbyes
begin
        exit_line := message_str(634, random(100, 105));
end