Fallout 1 scripting - spawning critters and and their items.

Sorrow

So Old I'm Losing Radiation Signs
How does it work? For example spawning Kenji in Junktown and Blades in laadytum?
 
KILLIAN.ssl

import variable Killian_ptr;

map_enter_p_proc
Killian_ptr := self_obj;

talk_p_proc

if ((map_var(5) == 1) and (local_var(7) == 0) and (global_var(GVAR_HIRED_BY_GIZMO) == 0)) then begin
LVar1 := create_object_sid(16777528, 0, 0, SCRIPT_KENJI);
GVar9 := create_object_sid(10, 0, 0, -1);
add_obj_to_inven(LVar1, GVar9);
critter_add_trait(LVar1, 1, 6, 13);
critter_add_trait(LVar1, 1, 5, 1);
critter_attempt_placement(LVar1, 28283, 0);
set_map_var(5, 2);
end

KENJI.ssl

import variable Killian_ptr;

procedure critter_p_proc
begin
if (tile_distance(tile_num(self_obj), 26281) > 3) then begin
animate_move_obj_to_tile(self_obj, 26281, ANIMATE_WALK);
end
else begin
if (obj_on_screen(self_obj)) then begin
float_msg(self_obj, message_str(SCRIPT_KENJI, 103), FLOAT_MSG_RED);
attack_complex(Killian_ptr, 0, 1, 0, 0, 30000, 0, 0);
end
end
end
 
Hmm...
I can't find similar procedures for spawning and equipping Blades during their invasion on Boneyard - any idea in which script they are?
 
Look scripts beginning on LA
LAADYTUM.ssl
LABLADES.ssl

LAADYTUM.ssl

export variable InBladePtr1;
export variable InBladePtr2;
export variable InBladePtr3;
export variable InBladePtr4;
export variable InBladePtr5;
export variable InBladePtr6;
export variable InBladePtr7;
export variable InBladePtr8;


procedure map_update_p_proc
begin
if (elevation(dude_obj) == 1) then begin
call Darkness;
end
else begin
call Lighting;
end
call add_party;
if ((global_var(GVAR_BLADES) == 9103) and (map_var(2) == 0) and (global_var(GVAR_WATER_CHIP_9) == 1)) then begin
call AddInBlades;
gfade_in(600);
end
else begin
if ((global_var(GVAR_BLADES) == 9104) and (map_var(2) == 0)) then begin
set_map_var(2, 1);
kill_critter(JonPtr, 0);
kill_critter_type(16777216 + 3, 0);
kill_critter_type(16777216 + 27, 0);
kill_critter_type(16777216 + 36, 0);
kill_critter_type(16777216 + 112, 0);
kill_critter_type(16777216 + 215, 0);
kill_critter_type(16777216 + 244, 0);
kill_critter_type(16777216 + 245, 0);
kill_critter_type(16777216 + 246, 0);
kill_critter_type(16777216 + 247, 0);
kill_critter_type(16777216 + 248, 0);
kill_critter_type(16777216 + 249, 0);
kill_critter_type(16777216 + 250, 0);
kill_critter_type(16777216 + 251, 0);
kill_critter_type(16777216 + 252, 0);
kill_critter_type(16777216 + 253, 0);
kill_critter_type(16777216 + 254, 0);
kill_critter_type(16777216 + 255, 0);
kill_critter_type(16777216 + 256, 0);
kill_critter_type(16777216 + 257, 0);
kill_critter_type(16777216 + 258, 0);
kill_critter_type(16777216 + 259, 0);
kill_critter_type(16777216 + 260, 0);
kill_critter_type(16777216 + 261, 0);
kill_critter_type(16777216 + 262, 0);
kill_critter_type(16777216 + 263, 0);
critter_attempt_placement(RazorPtr, 12700, 0);
set_global_var(GVAR_BLADES, 2);
set_global_var(GVAR_PLAYER_REPUTATION, global_var(GVAR_PLAYER_REPUTATION) + 2);
display_msg(message_str(SCRIPT_GENCHAT, 103) + 2000 + message_str(SCRIPT_GENCHAT, 104));
give_exp_points(2000);
end
else begin
if ((map_var(1) == 0) and (global_var(GVAR_BLADES) == 9103)) then begin
gfade_out(600);
kill_critter_type(16777216 + 268, 0);
critter_attempt_placement(RazorPtr, 12700, 0);
set_global_var(GVAR_BLADES, 2);
set_global_var(GVAR_MAKE_ANTIDOTE_3, 1);
set_global_var(GVAR_PLAYER_REPUTATION, global_var(GVAR_PLAYER_REPUTATION) + 2);
display_msg(message_str(SCRIPT_GENCHAT, 103) + 2000 + message_str(SCRIPT_GENCHAT, 104));
give_exp_points(2000);
gfade_in(600);
end
else begin
if ((map_var(1) == 0) and (global_var(GVAR_BLADES) != 2) and (global_var(GVAR_MAKE_ANTIDOTE_2) == 1)) then begin
set_global_var(GVAR_BLADES, 2);
set_global_var(GVAR_MAKE_ANTIDOTE_1, 1);
end
end
end
end
end

procedure AddInBlades
begin
set_map_var(2, 1);
critter_attempt_placement(InBladePtr1, 9702, 0);
critter_attempt_placement(InBladePtr2, 9700, 0);
critter_attempt_placement(InBladePtr3, 9698, 0);
critter_attempt_placement(InBladePtr4, 9895, 0);
critter_attempt_placement(InBladePtr5, 9696, 0);
critter_attempt_placement(InBladePtr6, 26717, 0);
critter_attempt_placement(InBladePtr7, 26711, 0);
critter_attempt_placement(InBladePtr8, 24492, 0);
end


LABLADES.ssl

export variable InBladePtr1;
export variable InBladePtr2;
export variable InBladePtr3;
export variable InBladePtr4;
export variable InBladePtr5;
 
I've seen them. Am I missing something or they don't have the equipment part?
Is it hardcoded or something?
 
Back
Top