#include "..\headers\define.h"
#define NAME SCRIPT_ACKLINT
#include "..\headers\command.h"
#include "..\headers\PARTY.h"
/* Standard Script Procedures */
procedure start;
procedure critter_p_proc;
procedure talk_p_proc;
procedure map_enter_p_proc;
/* Script Specific Procedure Calls */
procedure Node998; // This Node is Always Combat
procedure Node999; // This Node is Always Ending
// The next lines are added in by the Designer Tool.
// Do NOT add in any lines here.
//~~~~~~~~~~~~~~~~ DESIGNER TOOL STARTS HERE
procedure Node001;
procedure Node002;
procedure Node003;
// party member default nodes
procedure Node1000; //Main party member node
procedure Node1001; // heal yourself
procedure Node1002; // wait here
procedure Node1003; // put your weapon away
procedure Node1004; // follow close
procedure Node1005; // follow medium
procedure Node1006; // follow far
procedure Node1007; // Distance
procedure Node1008; // Gear .. but he doesn't have any
procedure Node1009; // Remove armor
procedure Node1010; // Weapons that Can be used... NA
procedure Node1100; // rejoin party
//~~~~~~~~~~~~~~~~ DESIGN TOOL ENDS HERE
// The Following lines are for anything that is not needed to be
// seen by the design Tool
/* Local Variables which are saved. All Local Variables need to be
prepended by LVAR_ */
#define LVAR_WAITING (0)
#define LVAR_FOLLOW_DISTANCE (1)
#define LVAR_TEAM (2)
#define PARTY_NODE_X Node1000
#define original_team TEAM_NCR
/* Local variables which do not need to be saved between map changes. */
variable Only_Once:=0;
procedure start begin
end
procedure map_enter_p_proc begin
party_member_map_enter;
Only_Once:=0;
if party_member_obj(obj_pid(self_obj)) then begin
critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_TEAM_NUM,TEAM_PLAYER);
end else begin
critter_add_trait(self_obj,TRAIT_OBJECT,OBJECT_TEAM_NUM,original_team);
end
end
procedure critter_p_proc begin
if party_member_obj(obj_pid(self_obj)) and (party_is_waiting == false) then begin
party_member_follow_dude
end
end
procedure talk_p_proc begin
start_gdialog(NAME,self_obj,4,-1,-1);
gSay_Start;
if not party_member_obj(obj_pid(self_obj)) then
call Node001;
else
call Node1000;
gSay_End;
end_dialogue;
end
procedure Node998 begin
end
procedure Node999 begin
end
procedure Node001 begin
Reply("Do you want me to join your party?");
NOption("Sure.",Node002,001);
NOption("Not really.",Node999,001);
end
procedure Node002 begin
if (dude_at_max_party_size) then begin
Reply("You don't seem to have room for me.");
NOption(g_mstr(10007),Node999,001);
end else begin
party_add_self;
Call Node1000;
end
end
#define DEF_PM_OPTIONS \
party_member_options(def_heal_msg, def_follow_msg, 0, def_wait_msg, def_nowait_msg, def_end_msg, def_stupid_msg)
#define DEF_PM_FOLLOW \
party_follow_options(def_close_msg, def_med_msg, def_far_msg, "That's fine.")
procedure Node1000 begin
Reply("Yes?");
DEF_PM_OPTIONS;
end
procedure Node1001 begin // heal yourself
obj_heal(self_obj)
global_temp := 0;
if (party_healed_max) then begin
Reply("I'm all better now.");
end else if (party_healed_good) then begin
Reply("Feels good.");
end else if (party_healed_hurt) then begin
Reply("I could be better.");
end else begin
Reply("I'm still pretty busted up.");
end
DEF_PM_OPTIONS;
end
procedure Node1002 begin // wait here
set_party_waiting;
Reply("I'll wait here.");
DEF_PM_OPTIONS;
end
procedure Node1003 begin // put your weapon away
inven_unwield(self_obj);
call Node1007;
end
procedure Node1004 begin // follow close
set_follow_close;
call Node1007;
end
procedure Node1005 begin// follow medium
set_follow_medium;
call Node1007;
end
procedure Node1006 begin // follow far
set_follow_far;
call Node1007;
end
procedure Node1007 begin
if (local_var(LVAR_FOLLOW_DISTANCE) == FOLLOW_DISTANCE_CLOSE) then begin
Reply("I'm staying close.");
end else if (local_var(LVAR_FOLLOW_DISTANCE) == FOLLOW_DISTANCE_MEDIUM) then begin
Reply("I'm keeping some distance.");
end else if (local_var(LVAR_FOLLOW_DISTANCE) == FOLLOW_DISTANCE_FAR) then begin
Reply("I'm giving you your space.");
end
DEF_PM_FOLLOW;
end
procedure Node1008 begin
end
procedure Node1009 begin
end
procedure Node1010 begin
end
procedure Node1100 begin // rejoin party
if (dude_at_max_party_size) then begin
Reply("You don't seem to have room for me.");
NOption(g_mstr(10007),Node999,001);
end else begin
end_party_waiting;
Reply("Glad to be back.");
DEF_PM_OPTIONS;
end
end