Files
dsrc/sku.0/sys.server/compiled/game/script/conversation/ship_trainer_01.script
T

10532 lines
292 KiB
Plaintext

// ======================================================================
//
// ship_trainer_01.script
// Copyright 2004, Sony Online Entertainment
// All Rights Reserved.
//
// Created with SwgConversationEditor 1.35 - DO NOT EDIT THIS AUTO-GENERATED FILE!
//
// ======================================================================
// ======================================================================
// Library Includes
// ======================================================================
include library.ai_lib;
include library.chat;
include library.utils;
// ======================================================================
// Script Constants
// ======================================================================
string c_stringFile = "conversation/ship_trainer_01";
// ======================================================================
// Script Conditions
// ======================================================================
boolean ship_trainer_01_condition__defaultCondition (obj_id player, obj_id npc)
{
return true;
}
// ======================================================================
// Script Actions
// ======================================================================
void ship_trainer_01_action_clearTutorial (obj_id player, obj_id npc)
{
clearCondition(npc, CONDITION_INFLIGHT_TUTORIAL);
removeObjVar(npc, "convo.appearance");
clearCondition (npc, CONDITION_CONVERSABLE);
detachScript (npc, "conversation.ship_trainer_01");
return;
}
// ======================================================================
// Script %TO Tokens
// ======================================================================
// ======================================================================
// Script %DI Tokens
// ======================================================================
// ======================================================================
// Script %DF Tokens
// ======================================================================
// ======================================================================
// handleBranch<n> Functions
// ======================================================================
int ship_trainer_01_handleBranch1 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Welcome to the Ybella Systems 'Starfighter Training' holodisc program. Press the ALT key on your keyboard to activate your mouse cursor, then select one of the training options below to begin. Press the ESC key to skip this training sequence. Press the ALT key again to return to flight mode.
//-- [RESPONSE NOTE]
//-- PLAYER: Review flight controls.
if (response == "s_a44e0bb8")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: If you are flying with the mouse, you need to be aware of your mouse mode. Use the ALT key to toggle between mouse modes. In mouse-flight mode, the cursor changes to a light blue virtual-joystick indicator, and your mouse movements control the ship heading. In mouse-cursor mode, you will see a yellow arrow cursor which can be used to interact with elements on your heads-up display.
string_id message = new string_id (c_stringFile, "s_759c9273");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: I understand.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_9288900f");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 2);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Discuss space combat.
if (response == "s_7980ca09")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: There are several subcategories within the subject of space combat. Which area would you like to discuss?
string_id message = new string_id (c_stringFile, "s_9aa7d166");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Landing procedures.
if (response == "s_3ec6b879")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: When you are ready to land you must fly to a planetary space station and request landing clearance. Press Shift-C to target the station and open a communications frequency. Also, if you fly close to the space station's hangar the station will communicate with you automatically.
string_id message = new string_id (c_stringFile, "s_46e4ecc6");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Where do I find a space station?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: I know enough about landing now.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_b440102e");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_70");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 25);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Skip Training
if (response == "s_81")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Affirmative. If you would like to continue training at a later time, select the Holodisc Trainer button on your HUD.
string_id message = new string_id (c_stringFile, "s_82");
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Disable Training Permanently
if (response == "s_6de416e5")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Ybella Systems strongly discourages deactivation of your starship training protocol. Please confirm your choice as this deactivation is permanent.
string_id message = new string_id (c_stringFile, "s_98");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Affirmative
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Negative
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_99");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_100");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 37);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch2 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: If you are flying with the mouse, you need to be aware of your mouse mode. Use the ALT key to toggle between mouse modes. In mouse-flight mode, the cursor changes to a light blue virtual-joystick indicator, and your mouse movements control the ship heading. In mouse-cursor mode, you will see a yellow arrow cursor which can be used to interact with elements on your heads-up display.
//-- [RESPONSE NOTE]
//-- PLAYER: I understand.
if (response == "s_9288900f")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: You should also be aware of the chat system in space - and its potential interaction with your flight controls. When you are piloting a ship, you must press the ENTER key to begin chat. Type your message, then hit ENTER again to send. Note that when you are in 'chat mode' your mouse mode automatically switches to 'cursor mode.' The mouse will return to flight mode when you hit ENTER to send your message.
string_id message = new string_id (c_stringFile, "s_56daefef");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Okay. Let's talk about flight.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_5ef040d8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 3);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch3 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: You should also be aware of the chat system in space - and its potential interaction with your flight controls. When you are piloting a ship, you must press the ENTER key to begin chat. Type your message, then hit ENTER again to send. Note that when you are in 'chat mode' your mouse mode automatically switches to 'cursor mode.' The mouse will return to flight mode when you hit ENTER to send your message.
//-- [RESPONSE NOTE]
//-- PLAYER: Okay. Let's talk about flight.
if (response == "s_5ef040d8")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Use the up and down arrow keys for throttle control. Up arrow - speed up. Down arrow - slow down. You can also set your speed to maximum with the 'home' key - or set it to zero with the 'end' key.
string_id message = new string_id (c_stringFile, "s_757a074a");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I control ship heading?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: How do I roll my ship?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: I think I understand ship movement.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_4cc9a6bb");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_3e07db47");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_5d06faf2");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 4);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch4 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Use the up and down arrow keys for throttle control. Up arrow - speed up. Down arrow - slow down. You can also set your speed to maximum with the 'home' key - or set it to zero with the 'end' key.
//-- [RESPONSE NOTE]
//-- PLAYER: How do I control ship heading?
if (response == "s_4cc9a6bb")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Use the mouse (or a joystick) to change your ship's heading. The up / down axis on your mouse controls the ship pitch while the left / right axis controls the ship's lateral turn or 'yaw.'
string_id message = new string_id (c_stringFile, "s_6b96b4b0");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I control ship heading?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: How do I roll my ship?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: I think I understand ship movement.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_4cc9a6bb");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_3e07db47");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_5d06faf2");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 4);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: How do I roll my ship?
if (response == "s_3e07db47")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Use the left and right arrow keys to roll your starship. Right arrow rolls clockwise, and left arrow rolls your ship counterclockwise.
string_id message = new string_id (c_stringFile, "s_e5a158de");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I control ship heading?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: How do I roll my ship?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: I think I understand ship movement.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_4cc9a6bb");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_3e07db47");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_5d06faf2");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 4);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I think I understand ship movement.
if (response == "s_5d06faf2")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Excellent. Would you like to discuss any other area of starship operations?
string_id message = new string_id (c_stringFile, "s_82697b23");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch5 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Use the mouse (or a joystick) to change your ship's heading. The up / down axis on your mouse controls the ship pitch while the left / right axis controls the ship's lateral turn or 'yaw.'
//-- [RESPONSE NOTE]
//-- PLAYER: How do I control ship heading?
if (response == "s_4cc9a6bb")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Use the mouse (or a joystick) to change your ship's heading. The up / down axis on your mouse controls the ship pitch while the left / right axis controls the ship's lateral turn or 'yaw.'
string_id message = new string_id (c_stringFile, "s_6b96b4b0");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I control ship heading?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: How do I roll my ship?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: I think I understand ship movement.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_4cc9a6bb");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_3e07db47");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_5d06faf2");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 4);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: How do I roll my ship?
if (response == "s_3e07db47")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Use the left and right arrow keys to roll your starship. Right arrow rolls clockwise, and left arrow rolls your ship counterclockwise.
string_id message = new string_id (c_stringFile, "s_e5a158de");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I control ship heading?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: How do I roll my ship?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: I think I understand ship movement.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_4cc9a6bb");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_3e07db47");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_5d06faf2");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 4);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I think I understand ship movement.
if (response == "s_5d06faf2")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Excellent. Would you like to discuss any other area of starship operations?
string_id message = new string_id (c_stringFile, "s_82697b23");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch6 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Use the left and right arrow keys to roll your starship. Right arrow rolls clockwise, and left arrow rolls your ship counterclockwise.
//-- [RESPONSE NOTE]
//-- PLAYER: How do I control ship heading?
if (response == "s_4cc9a6bb")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Use the mouse (or a joystick) to change your ship's heading. The up / down axis on your mouse controls the ship pitch while the left / right axis controls the ship's lateral turn or 'yaw.'
string_id message = new string_id (c_stringFile, "s_6b96b4b0");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I control ship heading?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: How do I roll my ship?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: I think I understand ship movement.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_4cc9a6bb");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_3e07db47");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_5d06faf2");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 4);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: How do I roll my ship?
if (response == "s_3e07db47")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Use the left and right arrow keys to roll your starship. Right arrow rolls clockwise, and left arrow rolls your ship counterclockwise.
string_id message = new string_id (c_stringFile, "s_e5a158de");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I control ship heading?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: How do I roll my ship?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: I think I understand ship movement.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_4cc9a6bb");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_3e07db47");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_5d06faf2");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 4);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I think I understand ship movement.
if (response == "s_5d06faf2")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Excellent. Would you like to discuss any other area of starship operations?
string_id message = new string_id (c_stringFile, "s_82697b23");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch7 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Excellent. Would you like to discuss any other area of starship operations?
//-- [RESPONSE NOTE]
//-- PLAYER: Review flight controls.
if (response == "s_a44e0bb8")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: If you are flying with the mouse, you need to be aware of your mouse mode. Use the ALT key to toggle between mouse modes. In mouse-flight mode, the cursor changes to a light blue virtual-joystick indicator, and your mouse movements control the ship heading. In mouse-cursor mode, you will see a yellow arrow cursor which can be used to interact with elements on your heads-up display.
string_id message = new string_id (c_stringFile, "s_759c9273");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: I understand.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_9288900f");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 2);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Discuss space combat.
if (response == "s_7980ca09")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: There are several subcategories within the subject of space combat. Which area would you like to discuss?
string_id message = new string_id (c_stringFile, "s_9aa7d166");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Landing procedures.
if (response == "s_3ec6b879")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: When you are ready to land you must fly to a planetary space station and request landing clearance. Press Shift-C to target the station and open a communications frequency. Also, if you fly close to the space station's hangar the station will communicate with you automatically.
string_id message = new string_id (c_stringFile, "s_46e4ecc6");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Where do I find a space station?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: I know enough about landing now.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_b440102e");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_70");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 25);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Skip Training
if (response == "s_81")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Affirmative. If you would like to continue training at a later time, select the Holodisc Trainer button on your HUD.
string_id message = new string_id (c_stringFile, "s_82");
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Disable Training Permanently
if (response == "s_6de416e5")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Ybella Systems strongly discourages deactivation of your starship training protocol. Please confirm your choice as this deactivation is permanent.
string_id message = new string_id (c_stringFile, "s_98");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Affirmative
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Negative
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_99");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_100");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 37);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch8 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: There are several subcategories within the subject of space combat. Which area would you like to discuss?
//-- [RESPONSE NOTE]
//-- PLAYER: Starship weapons
if (response == "s_717ffa5d")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Starships carry a variety of weapons. Starship blasters (or 'flash cannons'), missiles, torpedoes, and countermeasures. Which should we discuss?
string_id message = new string_id (c_stringFile, "s_b9916a35");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Tell me about damage.
if (response == "s_73b3d88d")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: What area of damage are you interested in reviewing?
string_id message = new string_id (c_stringFile, "s_c00ac18c");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Teach me about targeting.
if (response == "s_88eefc1a")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: It is advisable to lock your target while in combat so that you can keep track of its health, distance, and relative position. Additionally, you will need to have a target selected in order to inspect it, dock with it, or to fire missiles at it. The starship targeting system allows you to acquire enemy targets, friendly targets, neutral space station targets, and other player pilots.
string_id message = new string_id (c_stringFile, "s_55651ec5");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I think I understand space combat.
if (response == "s_4bd64d06")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: I don't doubt that. What other areas would you like to discuss today?
string_id message = new string_id (c_stringFile, "s_5d8dd52b");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch9 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Starships carry a variety of weapons. Starship blasters (or 'flash cannons'), missiles, torpedoes, and countermeasures. Which should we discuss?
//-- [RESPONSE NOTE]
//-- PLAYER: Starship blasters.
if (response == "s_d589bcc5")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Your primary starship blaster weapon is fired by pressing either the LEFT MOUSE BUTTON (default) or the JOYSTICK BUTTON (1). Be sure to aim for the small bright blue circle just in front of a moving target. This is your 'target lead indicator' that calculates the target speed vector.
string_id message = new string_id (c_stringFile, "s_aba0472f");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Missiles.
if (response == "s_d4836a51")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: If your ship is equipped with missiles, you'll be able to fire them by pressing the RIGHT MOUSE BUTTON or JOYSTICK BUTTON (2). Missiles take some time to 'lock' onto their targets - so watch your targeting indicator. The spinning squares will 'lock in' and become solid when your missile is ready for release.
string_id message = new string_id (c_stringFile, "s_173a50a8");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Countermeasures.
if (response == "s_784cfb1e")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: When an enemy fires a missile at you, you'll hear a missile warning sound as the ordnance approaches. To get the missile off your trail - fire your countermeasures with the MIDDLE MOUSE BUTTON (default) or JOYSTICK BUTTON (3). Note that you may need to release several countermeasures to spoof high-level missiles.
string_id message = new string_id (c_stringFile, "s_c87b607");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I understand ship weapons.
if (response == "s_36ba2186")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: I agree. Are there other areas of space combat you would like to discuss at the moment?
string_id message = new string_id (c_stringFile, "s_13f18f29");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch10 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Your primary starship blaster weapon is fired by pressing either the LEFT MOUSE BUTTON (default) or the JOYSTICK BUTTON (1). Be sure to aim for the small bright blue circle just in front of a moving target. This is your 'target lead indicator' that calculates the target speed vector.
//-- [RESPONSE NOTE]
//-- PLAYER: Starship blasters.
if (response == "s_d589bcc5")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Your primary starship blaster weapon is fired by pressing either the LEFT MOUSE BUTTON (default) or the JOYSTICK BUTTON (1). Be sure to aim for the small bright blue circle just in front of a moving target. This is your 'target lead indicator' that calculates the target speed vector.
string_id message = new string_id (c_stringFile, "s_aba0472f");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Missiles.
if (response == "s_d4836a51")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: If your ship is equipped with missiles, you'll be able to fire them by pressing the RIGHT MOUSE BUTTON or JOYSTICK BUTTON (2). Missiles take some time to 'lock' onto their targets - so watch your targeting indicator. The spinning squares will 'lock in' and become solid when your missile is ready for release.
string_id message = new string_id (c_stringFile, "s_173a50a8");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Countermeasures.
if (response == "s_784cfb1e")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: When an enemy fires a missile at you, you'll hear a missile warning sound as the ordnance approaches. To get the missile off your trail - fire your countermeasures with the MIDDLE MOUSE BUTTON (default) or JOYSTICK BUTTON (3). Note that you may need to release several countermeasures to spoof high-level missiles.
string_id message = new string_id (c_stringFile, "s_c87b607");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I understand ship weapons.
if (response == "s_36ba2186")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: I agree. Are there other areas of space combat you would like to discuss at the moment?
string_id message = new string_id (c_stringFile, "s_13f18f29");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch11 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: If your ship is equipped with missiles, you'll be able to fire them by pressing the RIGHT MOUSE BUTTON or JOYSTICK BUTTON (2). Missiles take some time to 'lock' onto their targets - so watch your targeting indicator. The spinning squares will 'lock in' and become solid when your missile is ready for release.
//-- [RESPONSE NOTE]
//-- PLAYER: Starship blasters.
if (response == "s_d589bcc5")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Your primary starship blaster weapon is fired by pressing either the LEFT MOUSE BUTTON (default) or the JOYSTICK BUTTON (1). Be sure to aim for the small bright blue circle just in front of a moving target. This is your 'target lead indicator' that calculates the target speed vector.
string_id message = new string_id (c_stringFile, "s_aba0472f");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Missiles.
if (response == "s_d4836a51")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: If your ship is equipped with missiles, you'll be able to fire them by pressing the RIGHT MOUSE BUTTON or JOYSTICK BUTTON (2). Missiles take some time to 'lock' onto their targets - so watch your targeting indicator. The spinning squares will 'lock in' and become solid when your missile is ready for release.
string_id message = new string_id (c_stringFile, "s_173a50a8");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Countermeasures.
if (response == "s_784cfb1e")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: When an enemy fires a missile at you, you'll hear a missile warning sound as the ordnance approaches. To get the missile off your trail - fire your countermeasures with the MIDDLE MOUSE BUTTON (default) or JOYSTICK BUTTON (3). Note that you may need to release several countermeasures to spoof high-level missiles.
string_id message = new string_id (c_stringFile, "s_c87b607");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I understand ship weapons.
if (response == "s_36ba2186")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: I agree. Are there other areas of space combat you would like to discuss at the moment?
string_id message = new string_id (c_stringFile, "s_13f18f29");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch12 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: When an enemy fires a missile at you, you'll hear a missile warning sound as the ordnance approaches. To get the missile off your trail - fire your countermeasures with the MIDDLE MOUSE BUTTON (default) or JOYSTICK BUTTON (3). Note that you may need to release several countermeasures to spoof high-level missiles.
//-- [RESPONSE NOTE]
//-- PLAYER: Starship blasters.
if (response == "s_d589bcc5")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Your primary starship blaster weapon is fired by pressing either the LEFT MOUSE BUTTON (default) or the JOYSTICK BUTTON (1). Be sure to aim for the small bright blue circle just in front of a moving target. This is your 'target lead indicator' that calculates the target speed vector.
string_id message = new string_id (c_stringFile, "s_aba0472f");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Missiles.
if (response == "s_d4836a51")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: If your ship is equipped with missiles, you'll be able to fire them by pressing the RIGHT MOUSE BUTTON or JOYSTICK BUTTON (2). Missiles take some time to 'lock' onto their targets - so watch your targeting indicator. The spinning squares will 'lock in' and become solid when your missile is ready for release.
string_id message = new string_id (c_stringFile, "s_173a50a8");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Countermeasures.
if (response == "s_784cfb1e")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: When an enemy fires a missile at you, you'll hear a missile warning sound as the ordnance approaches. To get the missile off your trail - fire your countermeasures with the MIDDLE MOUSE BUTTON (default) or JOYSTICK BUTTON (3). Note that you may need to release several countermeasures to spoof high-level missiles.
string_id message = new string_id (c_stringFile, "s_c87b607");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I understand ship weapons.
if (response == "s_36ba2186")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: I agree. Are there other areas of space combat you would like to discuss at the moment?
string_id message = new string_id (c_stringFile, "s_13f18f29");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch13 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: I agree. Are there other areas of space combat you would like to discuss at the moment?
//-- [RESPONSE NOTE]
//-- PLAYER: Starship weapons
if (response == "s_717ffa5d")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Starships carry a variety of weapons. Starship blasters (or 'flash cannons'), missiles, torpedoes, and countermeasures. Which should we discuss?
string_id message = new string_id (c_stringFile, "s_b9916a35");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Tell me about damage.
if (response == "s_73b3d88d")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: What area of damage are you interested in reviewing?
string_id message = new string_id (c_stringFile, "s_c00ac18c");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Teach me about targeting.
if (response == "s_88eefc1a")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: It is advisable to lock your target while in combat so that you can keep track of its health, distance, and relative position. Additionally, you will need to have a target selected in order to inspect it, dock with it, or to fire missiles at it. The starship targeting system allows you to acquire enemy targets, friendly targets, neutral space station targets, and other player pilots.
string_id message = new string_id (c_stringFile, "s_55651ec5");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I think I understand space combat.
if (response == "s_4bd64d06")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: I don't doubt that. What other areas would you like to discuss today?
string_id message = new string_id (c_stringFile, "s_5d8dd52b");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch14 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: What area of damage are you interested in reviewing?
//-- [RESPONSE NOTE]
//-- PLAYER: Shields.
if (response == "s_306c1aa")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Shields are a damage-resistance system that recharges over time (as long as the shield generator is in good health). If your target has shields, you must destroy them before doing damage to the ship armor. Same goes for your own ship. If you lose your shields - the next hit will likely scrape off a nice chunk of armor.
string_id message = new string_id (c_stringFile, "s_f29dd33b");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Armor.
if (response == "s_4bdcddad")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: The armor layer of your ship protects your starship chassis and all of the components that it contains. Unlike shields, armor does not regenerate. You must install new armor once your old armor is destroyed.
string_id message = new string_id (c_stringFile, "s_b8d366e5");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: How do I know my shield or armor strength?
if (response == "s_7e90f3fa")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Look on the radar at the lower center area of your screen. The circular blue bars surrounding the radar indicate your shield strength. The center red circle shows your armor strength. As you lose shielding, the blue bars shrink. As you lose armor, the red circle also shrinks.
string_id message = new string_id (c_stringFile, "s_2b99ba00");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I know enough about this now.
if (response == "s_b5d951d6")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Excellent. Are there any other areas that interest you at the moment?
string_id message = new string_id (c_stringFile, "s_1a22f0e7");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch15 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Shields are a damage-resistance system that recharges over time (as long as the shield generator is in good health). If your target has shields, you must destroy them before doing damage to the ship armor. Same goes for your own ship. If you lose your shields - the next hit will likely scrape off a nice chunk of armor.
//-- [RESPONSE NOTE]
//-- PLAYER: Shields.
if (response == "s_306c1aa")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Shields are a damage-resistance system that recharges over time (as long as the shield generator is in good health). If your target has shields, you must destroy them before doing damage to the ship armor. Same goes for your own ship. If you lose your shields - the next hit will likely scrape off a nice chunk of armor.
string_id message = new string_id (c_stringFile, "s_f29dd33b");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Armor.
if (response == "s_4bdcddad")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: The armor layer of your ship protects your starship chassis and all of the components that it contains. Unlike shields, armor does not regenerate. You must install new armor once your old armor is destroyed.
string_id message = new string_id (c_stringFile, "s_b8d366e5");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: How do I know my shield or armor strength?
if (response == "s_7e90f3fa")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Look on the radar at the lower center area of your screen. The circular blue bars surrounding the radar indicate your shield strength. The center red circle shows your armor strength. As you lose shielding, the blue bars shrink. As you lose armor, the red circle also shrinks.
string_id message = new string_id (c_stringFile, "s_2b99ba00");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I know enough about this now.
if (response == "s_b5d951d6")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Excellent. Are there any other areas that interest you at the moment?
string_id message = new string_id (c_stringFile, "s_1a22f0e7");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch16 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: The armor layer of your ship protects your starship chassis and all of the components that it contains. Unlike shields, armor does not regenerate. You must install new armor once your old armor is destroyed.
//-- [RESPONSE NOTE]
//-- PLAYER: Shields.
if (response == "s_306c1aa")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Shields are a damage-resistance system that recharges over time (as long as the shield generator is in good health). If your target has shields, you must destroy them before doing damage to the ship armor. Same goes for your own ship. If you lose your shields - the next hit will likely scrape off a nice chunk of armor.
string_id message = new string_id (c_stringFile, "s_f29dd33b");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Armor.
if (response == "s_4bdcddad")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: The armor layer of your ship protects your starship chassis and all of the components that it contains. Unlike shields, armor does not regenerate. You must install new armor once your old armor is destroyed.
string_id message = new string_id (c_stringFile, "s_b8d366e5");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: How do I know my shield or armor strength?
if (response == "s_7e90f3fa")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Look on the radar at the lower center area of your screen. The circular blue bars surrounding the radar indicate your shield strength. The center red circle shows your armor strength. As you lose shielding, the blue bars shrink. As you lose armor, the red circle also shrinks.
string_id message = new string_id (c_stringFile, "s_2b99ba00");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I know enough about this now.
if (response == "s_b5d951d6")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Excellent. Are there any other areas that interest you at the moment?
string_id message = new string_id (c_stringFile, "s_1a22f0e7");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch17 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Look on the radar at the lower center area of your screen. The circular blue bars surrounding the radar indicate your shield strength. The center red circle shows your armor strength. As you lose shielding, the blue bars shrink. As you lose armor, the red circle also shrinks.
//-- [RESPONSE NOTE]
//-- PLAYER: Shields.
if (response == "s_306c1aa")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Shields are a damage-resistance system that recharges over time (as long as the shield generator is in good health). If your target has shields, you must destroy them before doing damage to the ship armor. Same goes for your own ship. If you lose your shields - the next hit will likely scrape off a nice chunk of armor.
string_id message = new string_id (c_stringFile, "s_f29dd33b");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Armor.
if (response == "s_4bdcddad")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: The armor layer of your ship protects your starship chassis and all of the components that it contains. Unlike shields, armor does not regenerate. You must install new armor once your old armor is destroyed.
string_id message = new string_id (c_stringFile, "s_b8d366e5");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: How do I know my shield or armor strength?
if (response == "s_7e90f3fa")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Look on the radar at the lower center area of your screen. The circular blue bars surrounding the radar indicate your shield strength. The center red circle shows your armor strength. As you lose shielding, the blue bars shrink. As you lose armor, the red circle also shrinks.
string_id message = new string_id (c_stringFile, "s_2b99ba00");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I know enough about this now.
if (response == "s_b5d951d6")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Excellent. Are there any other areas that interest you at the moment?
string_id message = new string_id (c_stringFile, "s_1a22f0e7");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch18 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Excellent. Are there any other areas that interest you at the moment?
//-- [RESPONSE NOTE]
//-- PLAYER: Starship weapons
if (response == "s_717ffa5d")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Starships carry a variety of weapons. Starship blasters (or 'flash cannons'), missiles, torpedoes, and countermeasures. Which should we discuss?
string_id message = new string_id (c_stringFile, "s_b9916a35");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Tell me about damage.
if (response == "s_73b3d88d")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: What area of damage are you interested in reviewing?
string_id message = new string_id (c_stringFile, "s_c00ac18c");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Teach me about targeting.
if (response == "s_88eefc1a")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: It is advisable to lock your target while in combat so that you can keep track of its health, distance, and relative position. Additionally, you will need to have a target selected in order to inspect it, dock with it, or to fire missiles at it. The starship targeting system allows you to acquire enemy targets, friendly targets, neutral space station targets, and other player pilots.
string_id message = new string_id (c_stringFile, "s_55651ec5");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I think I understand space combat.
if (response == "s_4bd64d06")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: I don't doubt that. What other areas would you like to discuss today?
string_id message = new string_id (c_stringFile, "s_5d8dd52b");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch19 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: It is advisable to lock your target while in combat so that you can keep track of its health, distance, and relative position. Additionally, you will need to have a target selected in order to inspect it, dock with it, or to fire missiles at it. The starship targeting system allows you to acquire enemy targets, friendly targets, neutral space station targets, and other player pilots.
//-- [RESPONSE NOTE]
//-- PLAYER: How do I target enemy ships?
if (response == "s_915b9a74")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Use the TAB key to lock the closest enemy target. Press the T key (or SHIFT-T) to cycle your target lock between enemies in the area. Use SHIFT-TAB to lock the closest enemy player target, and use the Z key (or SHIFT-Z) to cycle player enemy targets.
string_id message = new string_id (c_stringFile, "s_f2293d3f");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: What about friendly ships?
if (response == "s_603f0296")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: To target the nearest friendly player-piloted starship, press the K key. To cycle friendly player pilots, use the L key. The semicolon selects the nearest friendly non-player-piloted starships, and the apostrophe key cycles through them.
string_id message = new string_id (c_stringFile, "s_6b0b0a5e");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Can I target specific components?
if (response == "s_993e6843")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Yes. When you have a ship target selected, you can use the [ and ] bracket keys to cycle through subcomponents. Starship parts, such as the main reactor or the engine, can be targeted in this manner. Fire as normal - and your weapons will be tuned to hit the specific subcomponent so long as the sub-target remains locked.
string_id message = new string_id (c_stringFile, "s_9584abbd");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I understand targeting. Thanks.
if (response == "s_4e9c20b8")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Good. Is there anything else you would like to discuss?
string_id message = new string_id (c_stringFile, "s_d37b0214");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch20 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Use the TAB key to lock the closest enemy target. Press the T key (or SHIFT-T) to cycle your target lock between enemies in the area. Use SHIFT-TAB to lock the closest enemy player target, and use the Z key (or SHIFT-Z) to cycle player enemy targets.
//-- [RESPONSE NOTE]
//-- PLAYER: How do I target enemy ships?
if (response == "s_915b9a74")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Use the TAB key to lock the closest enemy target. Press the T key (or SHIFT-T) to cycle your target lock between enemies in the area. Use SHIFT-TAB to lock the closest enemy player target, and use the Z key (or SHIFT-Z) to cycle player enemy targets.
string_id message = new string_id (c_stringFile, "s_f2293d3f");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: What about friendly ships?
if (response == "s_603f0296")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: To target the nearest friendly player-piloted starship, press the K key. To cycle friendly player pilots, use the L key. The semicolon selects the nearest friendly non-player-piloted starships, and the apostrophe key cycles through them.
string_id message = new string_id (c_stringFile, "s_6b0b0a5e");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Can I target specific components?
if (response == "s_993e6843")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Yes. When you have a ship target selected, you can use the [ and ] bracket keys to cycle through subcomponents. Starship parts, such as the main reactor or the engine, can be targeted in this manner. Fire as normal - and your weapons will be tuned to hit the specific subcomponent so long as the sub-target remains locked.
string_id message = new string_id (c_stringFile, "s_9584abbd");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I understand targeting. Thanks.
if (response == "s_4e9c20b8")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Good. Is there anything else you would like to discuss?
string_id message = new string_id (c_stringFile, "s_d37b0214");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch21 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: To target the nearest friendly player-piloted starship, press the K key. To cycle friendly player pilots, use the L key. The semicolon selects the nearest friendly non-player-piloted starships, and the apostrophe key cycles through them.
//-- [RESPONSE NOTE]
//-- PLAYER: How do I target enemy ships?
if (response == "s_915b9a74")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Use the TAB key to lock the closest enemy target. Press the T key (or SHIFT-T) to cycle your target lock between enemies in the area. Use SHIFT-TAB to lock the closest enemy player target, and use the Z key (or SHIFT-Z) to cycle player enemy targets.
string_id message = new string_id (c_stringFile, "s_f2293d3f");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: What about friendly ships?
if (response == "s_603f0296")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: To target the nearest friendly player-piloted starship, press the K key. To cycle friendly player pilots, use the L key. The semicolon selects the nearest friendly non-player-piloted starships, and the apostrophe key cycles through them.
string_id message = new string_id (c_stringFile, "s_6b0b0a5e");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Can I target specific components?
if (response == "s_993e6843")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Yes. When you have a ship target selected, you can use the [ and ] bracket keys to cycle through subcomponents. Starship parts, such as the main reactor or the engine, can be targeted in this manner. Fire as normal - and your weapons will be tuned to hit the specific subcomponent so long as the sub-target remains locked.
string_id message = new string_id (c_stringFile, "s_9584abbd");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I understand targeting. Thanks.
if (response == "s_4e9c20b8")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Good. Is there anything else you would like to discuss?
string_id message = new string_id (c_stringFile, "s_d37b0214");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch22 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Yes. When you have a ship target selected, you can use the [ and ] bracket keys to cycle through subcomponents. Starship parts, such as the main reactor or the engine, can be targeted in this manner. Fire as normal - and your weapons will be tuned to hit the specific subcomponent so long as the sub-target remains locked.
//-- [RESPONSE NOTE]
//-- PLAYER: How do I target enemy ships?
if (response == "s_915b9a74")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Use the TAB key to lock the closest enemy target. Press the T key (or SHIFT-T) to cycle your target lock between enemies in the area. Use SHIFT-TAB to lock the closest enemy player target, and use the Z key (or SHIFT-Z) to cycle player enemy targets.
string_id message = new string_id (c_stringFile, "s_f2293d3f");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: What about friendly ships?
if (response == "s_603f0296")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: To target the nearest friendly player-piloted starship, press the K key. To cycle friendly player pilots, use the L key. The semicolon selects the nearest friendly non-player-piloted starships, and the apostrophe key cycles through them.
string_id message = new string_id (c_stringFile, "s_6b0b0a5e");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Can I target specific components?
if (response == "s_993e6843")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Yes. When you have a ship target selected, you can use the [ and ] bracket keys to cycle through subcomponents. Starship parts, such as the main reactor or the engine, can be targeted in this manner. Fire as normal - and your weapons will be tuned to hit the specific subcomponent so long as the sub-target remains locked.
string_id message = new string_id (c_stringFile, "s_9584abbd");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I understand targeting. Thanks.
if (response == "s_4e9c20b8")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Good. Is there anything else you would like to discuss?
string_id message = new string_id (c_stringFile, "s_d37b0214");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch23 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Good. Is there anything else you would like to discuss?
//-- [RESPONSE NOTE]
//-- PLAYER: Starship weapons
if (response == "s_717ffa5d")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Starships carry a variety of weapons. Starship blasters (or 'flash cannons'), missiles, torpedoes, and countermeasures. Which should we discuss?
string_id message = new string_id (c_stringFile, "s_b9916a35");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship blasters.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Missiles.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Countermeasures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand ship weapons.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_d589bcc5");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_d4836a51");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_784cfb1e");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_36ba2186");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 9);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Tell me about damage.
if (response == "s_73b3d88d")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: What area of damage are you interested in reviewing?
string_id message = new string_id (c_stringFile, "s_c00ac18c");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Shields.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Armor.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: How do I know my shield or armor strength?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about this now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_306c1aa");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bdcddad");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_7e90f3fa");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_b5d951d6");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 14);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Teach me about targeting.
if (response == "s_88eefc1a")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: It is advisable to lock your target while in combat so that you can keep track of its health, distance, and relative position. Additionally, you will need to have a target selected in order to inspect it, dock with it, or to fire missiles at it. The starship targeting system allows you to acquire enemy targets, friendly targets, neutral space station targets, and other player pilots.
string_id message = new string_id (c_stringFile, "s_55651ec5");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I target enemy ships?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: What about friendly ships?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Can I target specific components?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I understand targeting. Thanks.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_915b9a74");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_603f0296");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_993e6843");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4e9c20b8");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 19);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I think I understand space combat.
if (response == "s_4bd64d06")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: I don't doubt that. What other areas would you like to discuss today?
string_id message = new string_id (c_stringFile, "s_5d8dd52b");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch24 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: I don't doubt that. What other areas would you like to discuss today?
//-- [RESPONSE NOTE]
//-- PLAYER: Review flight controls.
if (response == "s_a44e0bb8")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: If you are flying with the mouse, you need to be aware of your mouse mode. Use the ALT key to toggle between mouse modes. In mouse-flight mode, the cursor changes to a light blue virtual-joystick indicator, and your mouse movements control the ship heading. In mouse-cursor mode, you will see a yellow arrow cursor which can be used to interact with elements on your heads-up display.
string_id message = new string_id (c_stringFile, "s_759c9273");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: I understand.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_9288900f");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 2);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Discuss space combat.
if (response == "s_7980ca09")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: There are several subcategories within the subject of space combat. Which area would you like to discuss?
string_id message = new string_id (c_stringFile, "s_9aa7d166");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Landing procedures.
if (response == "s_3ec6b879")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: When you are ready to land you must fly to a planetary space station and request landing clearance. Press Shift-C to target the station and open a communications frequency. Also, if you fly close to the space station's hangar the station will communicate with you automatically.
string_id message = new string_id (c_stringFile, "s_46e4ecc6");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Where do I find a space station?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: I know enough about landing now.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_b440102e");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_70");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 25);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Skip Training
if (response == "s_81")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Affirmative. If you would like to continue training at a later time, select the Holodisc Trainer button on your HUD.
string_id message = new string_id (c_stringFile, "s_82");
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Disable Training Permanently
if (response == "s_6de416e5")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Ybella Systems strongly discourages deactivation of your starship training protocol. Please confirm your choice as this deactivation is permanent.
string_id message = new string_id (c_stringFile, "s_98");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Affirmative
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Negative
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_99");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_100");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 37);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch25 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: When you are ready to land you must fly to a planetary space station and request landing clearance. Press Shift-C to target the station and open a communications frequency. Also, if you fly close to the space station's hangar the station will communicate with you automatically.
//-- [RESPONSE NOTE]
//-- PLAYER: Where do I find a space station?
if (response == "s_b440102e")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: When you launch, your ship computer automatically creates a 'Launch Waypoint' to the nearest planetary station. To activate this waypoint go to your datapad by pressing Control-D, click the 'Waypoints' tab, locate the 'Launch Waypoint,' right-click and select 'Activate.' You can also locate these stations using the zone map.
string_id message = new string_id (c_stringFile, "s_51b1431b");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How do I find stations with the zone map?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_23f4b352");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 26);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I know enough about landing now.
if (response == "s_70")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Excellent. What else would you like to discuss?
string_id message = new string_id (c_stringFile, "s_72");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch26 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: When you launch, your ship computer automatically creates a 'Launch Waypoint' to the nearest planetary station. To activate this waypoint go to your datapad by pressing Control-D, click the 'Waypoints' tab, locate the 'Launch Waypoint,' right-click and select 'Activate.' You can also locate these stations using the zone map.
//-- [RESPONSE NOTE]
//-- PLAYER: How do I find stations with the zone map?
if (response == "s_23f4b352")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Open the zone map by pressing the 'N' key. Space stations, points of interest, waypoints and mission critical objects are listed by category on the right-hand side of the screen. Click on the 'Space Stations' category then click on the space station of your choice.
string_id message = new string_id (c_stringFile, "s_43401557");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: What do I do then?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_e93ecaeb");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 27);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch27 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Open the zone map by pressing the 'N' key. Space stations, points of interest, waypoints and mission critical objects are listed by category on the right-hand side of the screen. Click on the 'Space Stations' category then click on the space station of your choice.
//-- [RESPONSE NOTE]
//-- PLAYER: What do I do then?
if (response == "s_e93ecaeb")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: You can set a waypoint to the space station and fly to it manually. Or if you want to relax a bit, right-click on the station name and choose 'Autopilot.' Your ship will fly there automatically.
string_id message = new string_id (c_stringFile, "s_a8a57e90");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: What do I do when I reach the station?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: I know enough about landing now.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_b8768b9a");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_6d152f2a");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 28);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch28 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: You can set a waypoint to the space station and fly to it manually. Or if you want to relax a bit, right-click on the station name and choose 'Autopilot.' Your ship will fly there automatically.
//-- [RESPONSE NOTE]
//-- PLAYER: What do I do when I reach the station?
if (response == "s_b8768b9a")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: When you are close to the space station, target and communicate with it by pressing Shift-C. After this, you will be able to request ship repairs or land on the planet below.
string_id message = new string_id (c_stringFile, "s_6f13ef54");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I know enough about landing now.
if (response == "s_6d152f2a")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Excellent. What else would you like to discuss?
string_id message = new string_id (c_stringFile, "s_e9a2f2f4");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch29 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: When you are close to the space station, target and communicate with it by pressing Shift-C. After this, you will be able to request ship repairs or land on the planet below.
//-- [RESPONSE NOTE]
//-- PLAYER: How much do repairs cost?
if (response == "s_6f4feb49")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: It varies. You will have the option of repairing all of your ship damage or a select percentage of overall damage. The more you want to repair, the greater the cost. Space stations routinely stock up on low-grade parts and have trouble making repairs to exotic machinery.
string_id message = new string_id (c_stringFile, "s_353c0343");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Does it cost anything to land?
if (response == "s_a836ab41")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Landing is free. The planetary defense systems of all modern worlds will automatically convey you to the planet surface and secure your starship in a municipal starport hangar.
string_id message = new string_id (c_stringFile, "s_ba96a20e");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: What happens when I land?
if (response == "s_199da0c4")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Your ship will be parked at the starport of the city at which you chose to land. When you want to return to space, go to the starport where your ship is parked, use the starship terminal, and launch.
string_id message = new string_id (c_stringFile, "s_986a2b5e");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I know enough about space stations now.
if (response == "s_5e014e82")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Good. Is there anything else you want to know about?
string_id message = new string_id (c_stringFile, "s_abd54560");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch30 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: It varies. You will have the option of repairing all of your ship damage or a select percentage of overall damage. The more you want to repair, the greater the cost. Space stations routinely stock up on low-grade parts and have trouble making repairs to exotic machinery.
//-- [RESPONSE NOTE]
//-- PLAYER: How much do repairs cost?
if (response == "s_6f4feb49")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: It varies. You will have the option of repairing all of your ship damage or a select percentage of overall damage. The more you want to repair, the greater the cost. Space stations routinely stock up on low-grade parts and have trouble making repairs to exotic machinery.
string_id message = new string_id (c_stringFile, "s_353c0343");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Does it cost anything to land?
if (response == "s_a836ab41")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Landing is free. The planetary defense systems of all modern worlds will automatically convey you to the planet surface and secure your starship in a municipal starport hangar.
string_id message = new string_id (c_stringFile, "s_ba96a20e");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: What happens when I land?
if (response == "s_199da0c4")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Your ship will be parked at the starport of the city at which you chose to land. When you want to return to space, go to the starport where your ship is parked, use the starship terminal, and launch.
string_id message = new string_id (c_stringFile, "s_986a2b5e");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I know enough about space stations now.
if (response == "s_5e014e82")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Good. Is there anything else you want to know about?
string_id message = new string_id (c_stringFile, "s_abd54560");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch31 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Landing is free. The planetary defense systems of all modern worlds will automatically convey you to the planet surface and secure your starship in a municipal starport hangar.
//-- [RESPONSE NOTE]
//-- PLAYER: How much do repairs cost?
if (response == "s_6f4feb49")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: It varies. You will have the option of repairing all of your ship damage or a select percentage of overall damage. The more you want to repair, the greater the cost. Space stations routinely stock up on low-grade parts and have trouble making repairs to exotic machinery.
string_id message = new string_id (c_stringFile, "s_353c0343");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Does it cost anything to land?
if (response == "s_a836ab41")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Landing is free. The planetary defense systems of all modern worlds will automatically convey you to the planet surface and secure your starship in a municipal starport hangar.
string_id message = new string_id (c_stringFile, "s_ba96a20e");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: What happens when I land?
if (response == "s_199da0c4")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Your ship will be parked at the starport of the city at which you chose to land. When you want to return to space, go to the starport where your ship is parked, use the starship terminal, and launch.
string_id message = new string_id (c_stringFile, "s_986a2b5e");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I know enough about space stations now.
if (response == "s_5e014e82")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Good. Is there anything else you want to know about?
string_id message = new string_id (c_stringFile, "s_abd54560");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch32 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Your ship will be parked at the starport of the city at which you chose to land. When you want to return to space, go to the starport where your ship is parked, use the starship terminal, and launch.
//-- [RESPONSE NOTE]
//-- PLAYER: How much do repairs cost?
if (response == "s_6f4feb49")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: It varies. You will have the option of repairing all of your ship damage or a select percentage of overall damage. The more you want to repair, the greater the cost. Space stations routinely stock up on low-grade parts and have trouble making repairs to exotic machinery.
string_id message = new string_id (c_stringFile, "s_353c0343");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Does it cost anything to land?
if (response == "s_a836ab41")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Landing is free. The planetary defense systems of all modern worlds will automatically convey you to the planet surface and secure your starship in a municipal starport hangar.
string_id message = new string_id (c_stringFile, "s_ba96a20e");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: What happens when I land?
if (response == "s_199da0c4")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Your ship will be parked at the starport of the city at which you chose to land. When you want to return to space, go to the starport where your ship is parked, use the starship terminal, and launch.
string_id message = new string_id (c_stringFile, "s_986a2b5e");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: How much do repairs cost?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Does it cost anything to land?
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: What happens when I land?
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I know enough about space stations now.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_6f4feb49");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_a836ab41");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_199da0c4");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_5e014e82");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 29);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: I know enough about space stations now.
if (response == "s_5e014e82")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Good. Is there anything else you want to know about?
string_id message = new string_id (c_stringFile, "s_abd54560");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch33 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Good. Is there anything else you want to know about?
//-- [RESPONSE NOTE]
//-- PLAYER: Review flight controls.
if (response == "s_a44e0bb8")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: If you are flying with the mouse, you need to be aware of your mouse mode. Use the ALT key to toggle between mouse modes. In mouse-flight mode, the cursor changes to a light blue virtual-joystick indicator, and your mouse movements control the ship heading. In mouse-cursor mode, you will see a yellow arrow cursor which can be used to interact with elements on your heads-up display.
string_id message = new string_id (c_stringFile, "s_759c9273");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: I understand.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_9288900f");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 2);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Discuss space combat.
if (response == "s_7980ca09")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: There are several subcategories within the subject of space combat. Which area would you like to discuss?
string_id message = new string_id (c_stringFile, "s_9aa7d166");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Landing procedures.
if (response == "s_3ec6b879")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: When you are ready to land you must fly to a planetary space station and request landing clearance. Press Shift-C to target the station and open a communications frequency. Also, if you fly close to the space station's hangar the station will communicate with you automatically.
string_id message = new string_id (c_stringFile, "s_46e4ecc6");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Where do I find a space station?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: I know enough about landing now.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_b440102e");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_70");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 25);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Skip Training
if (response == "s_81")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Affirmative. If you would like to continue training at a later time, select the Holodisc Trainer button on your HUD.
string_id message = new string_id (c_stringFile, "s_82");
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Disable Training Permanently
if (response == "s_6de416e5")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Ybella Systems strongly discourages deactivation of your starship training protocol. Please confirm your choice as this deactivation is permanent.
string_id message = new string_id (c_stringFile, "s_98");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Affirmative
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Negative
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_99");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_100");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 37);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch34 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Excellent. What else would you like to discuss?
//-- [RESPONSE NOTE]
//-- PLAYER: Review flight controls.
if (response == "s_a44e0bb8")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: If you are flying with the mouse, you need to be aware of your mouse mode. Use the ALT key to toggle between mouse modes. In mouse-flight mode, the cursor changes to a light blue virtual-joystick indicator, and your mouse movements control the ship heading. In mouse-cursor mode, you will see a yellow arrow cursor which can be used to interact with elements on your heads-up display.
string_id message = new string_id (c_stringFile, "s_759c9273");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: I understand.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_9288900f");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 2);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Discuss space combat.
if (response == "s_7980ca09")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: There are several subcategories within the subject of space combat. Which area would you like to discuss?
string_id message = new string_id (c_stringFile, "s_9aa7d166");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Landing procedures.
if (response == "s_3ec6b879")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: When you are ready to land you must fly to a planetary space station and request landing clearance. Press Shift-C to target the station and open a communications frequency. Also, if you fly close to the space station's hangar the station will communicate with you automatically.
string_id message = new string_id (c_stringFile, "s_46e4ecc6");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Where do I find a space station?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: I know enough about landing now.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_b440102e");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_70");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 25);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Skip Training
if (response == "s_81")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Affirmative. If you would like to continue training at a later time, select the Holodisc Trainer button on your HUD.
string_id message = new string_id (c_stringFile, "s_82");
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Disable Training Permanently
if (response == "s_6de416e5")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Ybella Systems strongly discourages deactivation of your starship training protocol. Please confirm your choice as this deactivation is permanent.
string_id message = new string_id (c_stringFile, "s_98");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Affirmative
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Negative
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_99");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_100");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 37);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch35 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Excellent. What else would you like to discuss?
//-- [RESPONSE NOTE]
//-- PLAYER: Review flight controls.
if (response == "s_a44e0bb8")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: If you are flying with the mouse, you need to be aware of your mouse mode. Use the ALT key to toggle between mouse modes. In mouse-flight mode, the cursor changes to a light blue virtual-joystick indicator, and your mouse movements control the ship heading. In mouse-cursor mode, you will see a yellow arrow cursor which can be used to interact with elements on your heads-up display.
string_id message = new string_id (c_stringFile, "s_759c9273");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: I understand.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_9288900f");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 2);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Discuss space combat.
if (response == "s_7980ca09")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: There are several subcategories within the subject of space combat. Which area would you like to discuss?
string_id message = new string_id (c_stringFile, "s_9aa7d166");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Starship weapons
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Tell me about damage.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Teach me about targeting.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: I think I understand space combat.
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_717ffa5d");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_73b3d88d");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_88eefc1a");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_4bd64d06");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 8);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Landing procedures.
if (response == "s_3ec6b879")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: When you are ready to land you must fly to a planetary space station and request landing clearance. Press Shift-C to target the station and open a communications frequency. Also, if you fly close to the space station's hangar the station will communicate with you automatically.
string_id message = new string_id (c_stringFile, "s_46e4ecc6");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Where do I find a space station?
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: I know enough about landing now.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_b440102e");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_70");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 25);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Skip Training
if (response == "s_81")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Affirmative. If you would like to continue training at a later time, select the Holodisc Trainer button on your HUD.
string_id message = new string_id (c_stringFile, "s_82");
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Disable Training Permanently
if (response == "s_6de416e5")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Ybella Systems strongly discourages deactivation of your starship training protocol. Please confirm your choice as this deactivation is permanent.
string_id message = new string_id (c_stringFile, "s_98");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Affirmative
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Negative
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_99");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_100");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 37);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
int ship_trainer_01_handleBranch37 (obj_id player, obj_id npc, string_id response)
{
//-- [BRANCH NOTE]
//-- NPC: Ybella Systems strongly discourages deactivation of your starship training protocol. Please confirm your choice as this deactivation is permanent.
//-- [RESPONSE NOTE]
//-- PLAYER: Affirmative
if (response == "s_99")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
ship_trainer_01_action_clearTutorial (player, npc);
//-- NPC: Command accepted. Ybella Systems thanks you for your patronage.
string_id message = new string_id (c_stringFile, "s_102");
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
return SCRIPT_CONTINUE;
}
}
//-- [RESPONSE NOTE]
//-- PLAYER: Negative
if (response == "s_100")
{
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Welcome to the Ybella Systems 'Starfighter Training' holodisc program. Press the ALT key on your keyboard to activate your mouse cursor, then select one of the training options below to begin. Press the ESC key to skip this training sequence. Press the ALT key again to return to flight mode.
string_id message = new string_id (c_stringFile, "s_2e9195ac");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcSpeak (player, message);
npcSetConversationResponses (player, responses);
}
else
{
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
chat.chat (npc, player, message);
npcEndConversation (player);
}
return SCRIPT_CONTINUE;
}
}
return SCRIPT_DEFAULT;
}
// ----------------------------------------------------------------------
// ======================================================================
// User Script Triggers
// ======================================================================
trigger OnInitialize ()
{
setCondition (self, CONDITION_CONVERSABLE);
setCondition (self, CONDITION_INFLIGHT_TUTORIAL);
setObjVar(self, "convo.appearance", "object/mobile/tt8l_y7.iff" );
return SCRIPT_CONTINUE;
}
trigger OnAttach ()
{
setObjVar(self, "convo.appearance", "object/mobile/tt8l_y7.iff" );
setCondition (self, CONDITION_CONVERSABLE);
setCondition (self, CONDITION_INFLIGHT_TUTORIAL);
return SCRIPT_CONTINUE;
}
trigger OnObjectMenuRequest (obj_id player, menu_info menuInfo)
{
int menu = menuInfo.addRootMenu (menu_info_types.CONVERSE_START, null);
menu_info_data menuInfoData = menuInfo.getMenuItemById (menu);
menuInfoData.setServerNotify (false);
setCondition (self, CONDITION_CONVERSABLE);
return SCRIPT_CONTINUE;
}
trigger OnIncapacitated (obj_id killer)
{
clearCondition (self, CONDITION_CONVERSABLE);
detachScript (self, "conversation.ship_trainer_01");
return SCRIPT_CONTINUE;
}
// ======================================================================
// Script Triggers
// ======================================================================
//-- This function should move to base_class.java
boolean npcStartConversation(obj_id player, obj_id npc, string convoName, string_id greetingId, prose_package greetingProse, string_id[] responses)
{
Object[] objects = new Object[responses.length];
System.arraycopy(responses, 0, objects, 0, responses.length);
return npcStartConversation(player, npc, convoName, greetingId, greetingProse, objects);
}
// ----------------------------------------------------------------------
trigger OnStartNpcConversation (obj_id player)
{
obj_id npc = self;
if (ai_lib.isInCombat (npc) || ai_lib.isInCombat (player))
return SCRIPT_OVERRIDE;
//-- [NOTE]
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
//-- NPC: Welcome to the Ybella Systems 'Starfighter Training' holodisc program. Press the ALT key on your keyboard to activate your mouse cursor, then select one of the training options below to begin. Press the ESC key to skip this training sequence. Press the ALT key again to return to flight mode.
string_id message = new string_id (c_stringFile, "s_2e9195ac");
int numberOfResponses = 0;
boolean hasResponse = false;
//-- PLAYER: Review flight controls.
boolean hasResponse0 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse0 = true;
}
//-- PLAYER: Discuss space combat.
boolean hasResponse1 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse1 = true;
}
//-- PLAYER: Landing procedures.
boolean hasResponse2 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse2 = true;
}
//-- PLAYER: Skip Training
boolean hasResponse3 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse3 = true;
}
//-- PLAYER: Disable Training Permanently
boolean hasResponse4 = false;
if (ship_trainer_01_condition__defaultCondition (player, npc))
{
++numberOfResponses;
hasResponse = true;
hasResponse4 = true;
}
if (hasResponse)
{
int responseIndex = 0;
string_id responses [] = new string_id [numberOfResponses];
if (hasResponse0)
responses [responseIndex++] = new string_id (c_stringFile, "s_a44e0bb8");
if (hasResponse1)
responses [responseIndex++] = new string_id (c_stringFile, "s_7980ca09");
if (hasResponse2)
responses [responseIndex++] = new string_id (c_stringFile, "s_3ec6b879");
if (hasResponse3)
responses [responseIndex++] = new string_id (c_stringFile, "s_81");
if (hasResponse4)
responses [responseIndex++] = new string_id (c_stringFile, "s_6de416e5");
utils.setScriptVar (player, "conversation.ship_trainer_01.branchId", 1);
npcStartConversation (player, npc, "ship_trainer_01", message, responses);
}
else
{
chat.chat (npc, player, message);
}
return SCRIPT_CONTINUE;
}
chat.chat (npc, "Error: All conditions for OnStartNpcConversation were false.");
return SCRIPT_CONTINUE;
}
// ----------------------------------------------------------------------
trigger OnNpcConversationResponse (string conversationId, obj_id player, string_id response)
{
if (conversationId != "ship_trainer_01")
return SCRIPT_CONTINUE;
obj_id npc = self;
int branchId = utils.getIntScriptVar (player, "conversation.ship_trainer_01.branchId");
if (branchId == 1 && ship_trainer_01_handleBranch1 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 2 && ship_trainer_01_handleBranch2 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 3 && ship_trainer_01_handleBranch3 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 4 && ship_trainer_01_handleBranch4 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 5 && ship_trainer_01_handleBranch5 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 6 && ship_trainer_01_handleBranch6 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 7 && ship_trainer_01_handleBranch7 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 8 && ship_trainer_01_handleBranch8 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 9 && ship_trainer_01_handleBranch9 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 10 && ship_trainer_01_handleBranch10 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 11 && ship_trainer_01_handleBranch11 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 12 && ship_trainer_01_handleBranch12 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 13 && ship_trainer_01_handleBranch13 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 14 && ship_trainer_01_handleBranch14 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 15 && ship_trainer_01_handleBranch15 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 16 && ship_trainer_01_handleBranch16 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 17 && ship_trainer_01_handleBranch17 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 18 && ship_trainer_01_handleBranch18 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 19 && ship_trainer_01_handleBranch19 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 20 && ship_trainer_01_handleBranch20 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 21 && ship_trainer_01_handleBranch21 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 22 && ship_trainer_01_handleBranch22 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 23 && ship_trainer_01_handleBranch23 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 24 && ship_trainer_01_handleBranch24 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 25 && ship_trainer_01_handleBranch25 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 26 && ship_trainer_01_handleBranch26 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 27 && ship_trainer_01_handleBranch27 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 28 && ship_trainer_01_handleBranch28 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 29 && ship_trainer_01_handleBranch29 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 30 && ship_trainer_01_handleBranch30 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 31 && ship_trainer_01_handleBranch31 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 32 && ship_trainer_01_handleBranch32 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 33 && ship_trainer_01_handleBranch33 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 34 && ship_trainer_01_handleBranch34 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 35 && ship_trainer_01_handleBranch35 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
if (branchId == 37 && ship_trainer_01_handleBranch37 (player, npc, response) == SCRIPT_CONTINUE)
return SCRIPT_CONTINUE;
chat.chat (npc, "Error: Fell through all branches and responses for OnNpcConversationResponse.");
utils.removeScriptVar (player, "conversation.ship_trainer_01.branchId");
return SCRIPT_CONTINUE;
}
// ======================================================================