Fallout Wiki
Advertisement
Fallout Wiki
Details
Type Decompiled script
SCRIPTS.LST comment Script for the talking Brahmin.
MSG file TALIUS.MSG
Transcript

procedure start;
procedure critter_p_proc;
procedure description_p_proc;
procedure destroy_p_proc;
procedure look_at_p_proc;
procedure pickup_p_proc;
procedure talk_p_proc;
procedure Talius00;
procedure Talius01;
procedure Talius02;
procedure Talius03;
procedure Talius04;
procedure Talius05;
procedure Talius06;
procedure Talius07;
procedure Talius08;
procedure Talius09;
procedure Talius10;
procedure Talius11;
procedure Talius12;
procedure Talius13;
procedure Talius14;
procedure Talius15;
procedure Talius16;
procedure Talius17;
procedure Talius18;
procedure Talius19;
procedure Talius20;
procedure Talius21;
procedure Talius22;
procedure Talius23;
procedure Talius24;
procedure Talius25;
procedure Talius26;
procedure Talius27;
procedure Talius28;
procedure Talius29;
procedure Talius29a;
procedure Talius30;
procedure Talius31;
procedure Talius32;
procedure Talius33;
procedure Talius34;
procedure Talius35;
procedure Talius36;
procedure Talius37;
procedure Talius38;
procedure Talius39;
procedure Talius40;
procedure Talius41;
procedure TaliusEnd;
procedure combat;
variable hostile;
variable initialized;
procedure start
begin
        if (not(initialized)) then begin
                critter_add_trait(self_obj, 1, 6, 46);
                critter_add_trait(self_obj, 1, 5, 33);
                initialized := 1;
                if (global_var(129) == 2) then begin
                        if (random(0, 1)) then begin
                                kill_critter(self_obj, 59);
                        end
                        else begin
                                kill_critter(self_obj, 57);
                        end
                end
        end
        else begin
                if (script_action == 12) then begin
                        call critter_p_proc;
                end
                else begin
                        if (script_action == 3) then begin
                                call description_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
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 description_p_proc
begin
        if (is_success(do_check(dude_obj, 1, has_trait(0, dude_obj, 0)))) then begin
                display_msg(message_str(274, 231));
        end
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;
        if (local_var(4)) then begin
                display_msg(message_str(274, 100));
        end
        else begin
                display_msg(message_str(274, 230));
        end
end
procedure pickup_p_proc
begin
        hostile := 1;
end
procedure talk_p_proc
begin
        script_overrides;
        if (global_var(133) == 2) then begin
                call Talius41;
        end
        else begin
                if (global_var(133) == 1) then begin
                        call Talius40;
                end
                else begin
                        if ((game_time_hour < 600) or (game_time_hour > 1800)) then begin
                                call Talius00;
                        end
                        else begin
                                start_gdialog(274, self_obj, 4, -1, -1);
                                gsay_start;
                                call Talius01;
                                gsay_end;
                                end_dialogue;
                        end
                end
        end
end
procedure Talius00
begin
        float_msg(self_obj, message_str(274, 101), 0);
end
procedure Talius01
begin
        if (get_critter_stat(dude_obj, 34) == 1) then begin
                gsay_reply(274, 102);
        end
        else begin
                gsay_reply(274, 103);
        end
        giq_option(-3, 274, 104, Talius02, 50);
        giq_option(-3, 274, message_str(274, 105) + proto_data(obj_pid(dude_obj), 1) + message_str(274, 106) + proto_data(obj_pid(dude_obj), 1) + message_str(274, 107), Talius05, 50);
        giq_option(4, 274, message_str(274, 108) + proto_data(obj_pid(dude_obj), 1) + message_str(274, 109), Talius06, 50);
        giq_option(4, 274, 110, combat, 50);
        giq_option(4, 274, 111, Talius36, 50);
        giq_option(6, 274, message_str(274, 112) + proto_data(obj_pid(dude_obj), 1) + message_str(274, 113), Talius37, 50);
        giq_option(8, 274, 114, Talius37, 50);
end
procedure Talius02
begin
        gsay_reply(274, 115);
        giq_option(-3, 274, 116, Talius03, 50);
        giq_option(-3, 274, 117, combat, 50);
end
procedure Talius03
begin
        gsay_reply(274, 118);
        giq_option(-3, 274, 119, combat, 50);
        giq_option(-3, 274, 120, Talius04, 50);
end
procedure Talius04
begin
        variable LVar0 := 0;
        if (local_var(5) == 0) then begin
                LVar0 := create_object_sid(53, 0, 0, -1);
                add_mult_objs_to_inven(dude_obj, LVar0, 3);
                set_local_var(5, 1);
                gsay_message(274, 121, 50);
        end
        else begin
                gsay_message(274, 232, 50);
        end
end
procedure Talius05
begin
        gsay_reply(274, message_str(274, 122) + proto_data(obj_pid(dude_obj), 1) + message_str(274, 123));
        giq_option(-3, 274, 124, Talius02, 50);
        giq_option(-3, 274, 125, combat, 50);
end
procedure Talius06
begin
        gsay_reply(274, 126);
        giq_option(4, 274, 127, Talius07, 50);
        giq_option(4, 274, 128, Talius31, 50);
        giq_option(4, 274, 129, Talius32, 50);
end
procedure Talius07
begin
        gsay_reply(274, 130);
        giq_option(4, 274, 131, Talius08, 50);
        giq_option(4, 274, 132, Talius29, 50);
        giq_option(4, 274, 133, Talius30, 50);
        giq_option(4, 274, 134, combat, 50);
end
procedure Talius08
begin
        gsay_reply(274, 135);
        giq_option(4, 274, 136, TaliusEnd, 50);
        giq_option(4, 274, 137, Talius09, 50);
        giq_option(4, 274, 138, Talius09, 50);
        giq_option(4, 274, 139, combat, 50);
end
procedure Talius09
begin
        gsay_reply(274, 140);
        giq_option(4, 274, 141, Talius10, 50);
        giq_option(4, 274, 142, Talius15, 50);
        giq_option(5, 274, 143, Talius16, 50);
        giq_option(5, 274, 144, Talius17, 50);
end
procedure Talius10
begin
        gsay_reply(274, 145);
        giq_option(4, 274, 146, Talius11, 50);
        giq_option(4, 274, 147, TaliusEnd, 50);
        giq_option(4, 274, 148, Talius15, 50);
        giq_option(4, 274, 149, Talius16, 50);
        giq_option(4, 274, 150, Talius17, 50);
end
procedure Talius11
begin
        gsay_reply(274, 151);
        giq_option(4, 274, 152, Talius12, 50);
end
procedure Talius12
begin
        gsay_reply(274, 153);
        if (local_var(6) == 0) then begin
                giq_option(4, 274, 154, Talius13, 50);
        end
        giq_option(4, 274, 155, Talius14, 50);
end
procedure Talius13
begin
        variable LVar0 := 0;
        set_local_var(6, 1);
        gsay_message(274, 156, 50);
        LVar0 := create_object_sid(32, 0, 0, -1);
        add_obj_to_inven(dude_obj, LVar0);
        LVar0 := create_object_sid(32, 0, 0, -1);
        add_obj_to_inven(dude_obj, LVar0);
        LVar0 := create_object_sid(11, 0, 0, -1);
        add_obj_to_inven(dude_obj, LVar0);
end
procedure Talius14
begin
        gsay_message(274, 157, 50);
end
procedure Talius15
begin
        gsay_reply(274, 158);
        giq_option(4, 274, 159, Talius16, 50);
        giq_option(4, 274, 160, Talius17, 50);
        giq_option(4, 274, 161, Talius22, 50);
        giq_option(4, 274, 162, TaliusEnd, 50);
end
procedure Talius16
begin
        gsay_reply(274, message_str(274, 163) + " " + message_str(274, 164));
        giq_option(4, 274, 165, Talius17, 50);
        giq_option(4, 274, 166, Talius22, 50);
        giq_option(4, 274, 167, TaliusEnd, 50);
end
procedure Talius17
begin
        gsay_message(274, 168, 50);
        gsay_reply(274, 169);
        giq_option(4, 274, 170, Talius18, 50);
        giq_option(4, 274, 171, Talius19, 50);
        giq_option(4, 274, 172, Talius21, 50);
end
procedure Talius18
begin
        gsay_message(274, 173, 50);
        gsay_reply(274, 174);
        giq_option(4, 274, 175, TaliusEnd, 50);
        giq_option(4, 274, 176, TaliusEnd, 50);
        giq_option(4, 274, 177, Talius12, 50);
end
procedure Talius19
begin
        gsay_message(274, 178, 50);
        gsay_reply(274, 179);
        giq_option(4, 274, 180, TaliusEnd, 50);
        if ((global_var(29) == 2) and (local_var(6) == 0)) then begin
                giq_option(4, 274, 181, Talius20, 50);
        end
end
procedure Talius20
begin
        variable LVar0 := 0;
        set_local_var(6, 1);
        gsay_message(274, 182, 50);
        LVar0 := create_object_sid(11, 0, 0, -1);
        add_obj_to_inven(dude_obj, LVar0);
end
procedure Talius21
begin
        gsay_message(274, 183, 50);
end
procedure Talius22
begin
        gsay_reply(274, 184);
        giq_option(4, 274, 185, Talius23, 50);
        giq_option(4, 274, 186, Talius26, 50);
        giq_option(4, 274, 187, Talius27, 50);
end
procedure Talius23
begin
        gsay_reply(274, 188);
        giq_option(4, 274, 189, Talius24, 50);
        giq_option(4, 274, 190, Talius24, 50);
        giq_option(4, 274, 191, Talius25, 50);
end
procedure Talius24
begin
        gsay_message(274, 192, 50);
end
procedure Talius25
begin
        gsay_message(274, 193, 50);
end
procedure Talius26
begin
        gsay_message(274, 194, 50);
end
procedure Talius27
begin
        gsay_reply(274, 195);
        giq_option(4, 274, 196, combat, 50);
        giq_option(4, 274, 197, Talius28, 50);
end
procedure Talius28
begin
        gsay_message(274, 198, 50);
        call combat;
end
procedure Talius29
begin
        gsay_reply(274, 199);
        giq_option(4, 274, 200, Talius29a, 50);
        giq_option(4, 274, 201, combat, 50);
end
procedure Talius29a
begin
        set_global_var(133, 1);
end
procedure Talius30
begin
        gsay_message(274, 202, 50);
        call combat;
end
procedure Talius31
begin
        gsay_message(274, 203, 50);
        gsay_reply(274, 204);
        giq_option(4, 274, 205, TaliusEnd, 50);
        giq_option(4, 274, 206, Talius09, 50);
        giq_option(4, 274, 207, Talius09, 50);
        giq_option(4, 274, 208, combat, 50);
end
procedure Talius32
begin
        gsay_reply(274, 209);
        giq_option(4, 274, 210, TaliusEnd, 50);
        giq_option(4, 274, 211, Talius33, 50);
end
procedure Talius33
begin
        gsay_reply(274, 212);
        giq_option(4, 274, 213, TaliusEnd, 50);
        giq_option(6, 274, 214, Talius34, 50);
end
procedure Talius34
begin
        gsay_reply(274, 215);
        giq_option(6, 274, 216, TaliusEnd, 50);
        giq_option(8, 274, 217, Talius35, 50);
end
procedure Talius35
begin
        gsay_reply(274, 218);
        giq_option(8, 274, 219, TaliusEnd, 50);
end
procedure Talius36
begin
        gsay_message(274, 220, 50);
end
procedure Talius37
begin
        gsay_reply(274, 221);
        giq_option(6, 274, 222, Talius38, 50);
end
procedure Talius38
begin
        gsay_reply(274, 223);
        giq_option(6, 274, 224, Talius39, 50);
end
procedure Talius39
begin
        gsay_reply(274, 225);
        giq_option(6, 274, 226, TaliusEnd, 50);
        giq_option(6, 274, 227, TaliusEnd, 50);
end
procedure Talius40
begin
        float_msg(self_obj, message_str(274, 228), 0);
end
procedure Talius41
begin
        float_msg(self_obj, message_str(274, 229), 0);
end
procedure TaliusEnd
begin
end
procedure combat
begin
        hostile := 1;
end

Advertisement