![]() | This 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 |
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