mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-31 00:15:54 -04:00
509 lines
16 KiB
Plaintext
509 lines
16 KiB
Plaintext
// ======================================================================
|
|
//
|
|
// rtp_c3po_main.script
|
|
// Copyright 2004, Sony Online Entertainment
|
|
// All Rights Reserved.
|
|
//
|
|
// Created with SwgConversationEditor 1.37 - DO NOT EDIT THIS AUTO-GENERATED FILE!
|
|
//
|
|
// ======================================================================
|
|
|
|
// ======================================================================
|
|
// Library Includes
|
|
// ======================================================================
|
|
|
|
include library.ai_lib;
|
|
include library.chat;
|
|
include library.conversation;
|
|
include library.factions;
|
|
include library.groundquests;
|
|
include library.space_quest;
|
|
include library.utils;
|
|
|
|
// ======================================================================
|
|
// Script Constants
|
|
// ======================================================================
|
|
|
|
string c_stringFile = "conversation/rtp_c3po_main";
|
|
|
|
// ======================================================================
|
|
// Script Conditions
|
|
// ======================================================================
|
|
|
|
boolean rtp_c3po_main_condition__defaultCondition (obj_id player, obj_id npc)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
boolean rtp_c3po_main_condition_rtp_c3po_01_active (obj_id player, obj_id npc)
|
|
{
|
|
return groundquests.isQuestActive(player, "rtp_c3po_01");
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
boolean rtp_c3po_main_condition_rtp_c3po_01_complete (obj_id player, obj_id npc)
|
|
{
|
|
return groundquests.isTaskActive(player, "rtp_c3po_01", "rtp_c3po_01_03") ||
|
|
groundquests.hasCompletedQuest(player, "rtp_c3po_01");
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
boolean rtp_c3po_main_condition_rtp_c3po_02_active (obj_id player, obj_id npc)
|
|
{
|
|
return groundquests.isQuestActive(player, "rtp_c3po_02");
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
boolean rtp_c3po_main_condition_rtp_c3po_02_completed (obj_id player, obj_id npc)
|
|
{
|
|
return groundquests.isTaskActive(player, "rtp_c3po_02", "rtp_c3po_02_03");
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
boolean rtp_c3po_main_condition_playerLevelCheck (obj_id player, obj_id npc)
|
|
{
|
|
return (getLevel(player) < 80);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
boolean rtp_c3po_main_condition_questComplete (obj_id player, obj_id npc)
|
|
{
|
|
return groundquests.hasCompletedQuest(player, "rtp_c3po_02");
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
boolean rtp_c3po_main_condition_notRebel (obj_id player, obj_id npc)
|
|
{
|
|
string playerFaction = factions.getFaction(player);
|
|
if ( playerFaction == null || !playerFaction.equals("Rebel") )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
boolean rtp_c3po_main_condition_rebel_isOnLeave (obj_id player, obj_id npc)
|
|
{
|
|
return factions.isOnLeave(player);
|
|
}
|
|
|
|
// ======================================================================
|
|
// Script Actions
|
|
// ======================================================================
|
|
|
|
void rtp_c3po_main_action_rtp_c3po_01_granted (obj_id player, obj_id npc)
|
|
{
|
|
groundquests.grantQuest(player, "rtp_c3po_01");
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
void rtp_c3po_main_action_rtp_c3po_01_signal (obj_id player, obj_id npc)
|
|
{
|
|
groundquests.sendSignal(player, "rtp_c3po_01_03");
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
void rtp_c3po_main_action_rtp_c3po_02_signal (obj_id player, obj_id npc)
|
|
{
|
|
groundquests.sendSignal(player, "rtp_c3po_02_03");
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
void rtp_c3po_main_action_rtp_c3po_02_granted (obj_id player, obj_id npc)
|
|
{
|
|
groundquests.grantQuest(player, "rtp_c3po_02");
|
|
}
|
|
|
|
// ======================================================================
|
|
// Script %TO Tokens
|
|
// ======================================================================
|
|
|
|
// ======================================================================
|
|
// Script %DI Tokens
|
|
// ======================================================================
|
|
|
|
// ======================================================================
|
|
// Script %DF Tokens
|
|
// ======================================================================
|
|
|
|
// ======================================================================
|
|
// handleBranch<n> Functions
|
|
// ======================================================================
|
|
|
|
int rtp_c3po_main_handleBranch6 (obj_id player, obj_id npc, string_id response)
|
|
{
|
|
//-- [BRANCH NOTE]
|
|
//-- NPC: Thank you for resupplying those guard posts. R2-D2 has given me the most distressing news. One of our spies on Naboo, Simo Oron, has been detained by Imperial forces. Can you travel to Naboo and recover his contact list before the Empire discovers it?
|
|
|
|
//-- [RESPONSE NOTE]
|
|
//-- PLAYER: Absolutely.
|
|
if (response == "s_22")
|
|
{
|
|
//-- [NOTE]
|
|
if (rtp_c3po_main_condition__defaultCondition (player, npc))
|
|
{
|
|
rtp_c3po_main_action_rtp_c3po_02_granted (player, npc);
|
|
|
|
//-- NPC: Excellent. Other arrangements are being made to rescue Simo as the Empire transfers him off of Naboo, but his personal effects are back at the small Imperial base where Simo was first being held. Go there and get the contact list.
|
|
string_id message = new string_id (c_stringFile, "s_25");
|
|
utils.removeScriptVar (player, "conversation.rtp_c3po_main.branchId");
|
|
|
|
npcEndConversationWithMessage (player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
}
|
|
|
|
//-- [RESPONSE NOTE]
|
|
//-- PLAYER: No thank you.
|
|
if (response == "s_26")
|
|
{
|
|
//-- [NOTE]
|
|
if (rtp_c3po_main_condition__defaultCondition (player, npc))
|
|
{
|
|
//-- NPC: Very well.
|
|
string_id message = new string_id (c_stringFile, "s_30");
|
|
utils.removeScriptVar (player, "conversation.rtp_c3po_main.branchId");
|
|
|
|
npcEndConversationWithMessage (player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
}
|
|
|
|
return SCRIPT_DEFAULT;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
int rtp_c3po_main_handleBranch11 (obj_id player, obj_id npc, string_id response)
|
|
{
|
|
//-- [BRANCH NOTE]
|
|
//-- NPC: Hello. I am C-3P0, Human-Cyborg relations. My companion is R2-D2, and he has been informed from High Command that you are interested in assisting with the Alliance's cause. According to R2, it seems there is a need for someone to resupply the base's guard posts with medical supplies. Would you be interested in doing this?
|
|
|
|
//-- [RESPONSE NOTE]
|
|
//-- PLAYER: I am. Sign me up.
|
|
if (response == "s_36")
|
|
{
|
|
//-- [NOTE]
|
|
if (rtp_c3po_main_condition__defaultCondition (player, npc))
|
|
{
|
|
rtp_c3po_main_action_rtp_c3po_01_granted (player, npc);
|
|
|
|
//-- NPC: Very good. Pick up some supplies from the medcenter here in the base, and then proceed to each of the four guard posts around the base.
|
|
string_id message = new string_id (c_stringFile, "s_38");
|
|
utils.removeScriptVar (player, "conversation.rtp_c3po_main.branchId");
|
|
|
|
npcEndConversationWithMessage (player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
}
|
|
|
|
//-- [RESPONSE NOTE]
|
|
//-- PLAYER: No thank you.
|
|
if (response == "s_40")
|
|
{
|
|
//-- [NOTE]
|
|
if (rtp_c3po_main_condition__defaultCondition (player, npc))
|
|
{
|
|
//-- NPC: Very well.
|
|
string_id message = new string_id (c_stringFile, "s_42");
|
|
utils.removeScriptVar (player, "conversation.rtp_c3po_main.branchId");
|
|
|
|
npcEndConversationWithMessage (player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
}
|
|
|
|
return SCRIPT_DEFAULT;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
// ======================================================================
|
|
// User Script Triggers
|
|
// ======================================================================
|
|
|
|
trigger OnInitialize ()
|
|
{
|
|
if ((!isMob (self)) || (isPlayer (self)))
|
|
detachScript(self, "conversation.rtp_c3po_main");
|
|
|
|
setCondition (self, CONDITION_CONVERSABLE);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnAttach ()
|
|
{
|
|
setCondition (self, CONDITION_CONVERSABLE);
|
|
|
|
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);
|
|
|
|
faceTo( self, player );
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnIncapacitated (obj_id killer)
|
|
{
|
|
clearCondition (self, CONDITION_CONVERSABLE);
|
|
detachScript (self, "conversation.rtp_c3po_main");
|
|
|
|
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 (rtp_c3po_main_condition_notRebel (player, npc))
|
|
{
|
|
//-- NPC: I must apologize, but I do not have any assignments for one such as yourself.
|
|
string_id message = new string_id (c_stringFile, "s_44");
|
|
chat.chat (npc, player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//-- [NOTE]
|
|
if (rtp_c3po_main_condition_rebel_isOnLeave (player, npc))
|
|
{
|
|
//-- NPC: I'm afraid I only have assignments for those on active duty.
|
|
string_id message = new string_id (c_stringFile, "s_43");
|
|
chat.chat (npc, player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//-- [NOTE]
|
|
if (rtp_c3po_main_condition_questComplete (player, npc))
|
|
{
|
|
//-- NPC: Good work on Naboo! Should you wish for further assignments, Qual'do Herm has requisitioned some assistance. You'll find him in this base.
|
|
string_id message = new string_id (c_stringFile, "s_10");
|
|
chat.chat (npc, player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//-- [NOTE]
|
|
if (rtp_c3po_main_condition_rtp_c3po_02_completed (player, npc))
|
|
{
|
|
rtp_c3po_main_action_rtp_c3po_02_signal (player, npc);
|
|
|
|
//-- NPC: R2-D2 says that Simo Oron, the captured spy, has been rescued. With your return of his contact list to Bertos Goodner, this operation has been a rousing success. Should you wish for further assignments, Qual'do Herm has requisitioned some assistance. You'll find him in this base.
|
|
string_id message = new string_id (c_stringFile, "s_9");
|
|
chat.chat (npc, player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//-- [NOTE]
|
|
if (rtp_c3po_main_condition_rtp_c3po_02_active (player, npc))
|
|
{
|
|
//-- NPC: Other arrangements are being made to rescue Simo Oron, a Rebel spy, as the Empire transfers him off of Naboo, but his personal effects are back at the small Imperial base where he was first being held. Go there and get the contact list.
|
|
string_id message = new string_id (c_stringFile, "s_16");
|
|
chat.chat (npc, player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//-- [NOTE]
|
|
if (rtp_c3po_main_condition_rtp_c3po_01_complete (player, npc))
|
|
{
|
|
rtp_c3po_main_action_rtp_c3po_01_signal (player, npc);
|
|
|
|
//-- NPC: Thank you for resupplying those guard posts. R2-D2 has given me the most distressing news. One of our spies on Naboo, Simo Oron, has been detained by Imperial forces. Can you travel to Naboo and recover his contact list before the Empire discovers it?
|
|
string_id message = new string_id (c_stringFile, "s_20");
|
|
int numberOfResponses = 0;
|
|
|
|
boolean hasResponse = false;
|
|
|
|
//-- PLAYER: Absolutely.
|
|
boolean hasResponse0 = false;
|
|
if (rtp_c3po_main_condition__defaultCondition (player, npc))
|
|
{
|
|
++numberOfResponses;
|
|
hasResponse = true;
|
|
hasResponse0 = true;
|
|
}
|
|
|
|
//-- PLAYER: No thank you.
|
|
boolean hasResponse1 = false;
|
|
if (rtp_c3po_main_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_22");
|
|
|
|
if (hasResponse1)
|
|
responses [responseIndex++] = new string_id (c_stringFile, "s_26");
|
|
|
|
utils.setScriptVar (player, "conversation.rtp_c3po_main.branchId", 6);
|
|
|
|
npcStartConversation (player, npc, "rtp_c3po_main", message, responses);
|
|
}
|
|
else
|
|
{
|
|
chat.chat (npc, player, message);
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//-- [NOTE]
|
|
if (rtp_c3po_main_condition_rtp_c3po_01_active (player, npc))
|
|
{
|
|
//-- NPC: Pick up some supplies from the medcenter here in the base, and then proceed to each of the four guard posts around the base.
|
|
string_id message = new string_id (c_stringFile, "s_32");
|
|
chat.chat (npc, player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//-- [NOTE]
|
|
if (rtp_c3po_main_condition_playerLevelCheck (player, npc))
|
|
{
|
|
//-- NPC: Hello. I am C-3P0, Human-Cyborg relations. My companion is R2-D2, and he has been informed from High Command that you are interested in assisting with the Alliance's cause. Unfortunately, the assistance we seek requires one with a bit more experience in the field. Please do return once you've gained more combat expertise.
|
|
string_id message = new string_id (c_stringFile, "s_24");
|
|
chat.chat (npc, player, message);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
//-- [NOTE]
|
|
if (rtp_c3po_main_condition__defaultCondition (player, npc))
|
|
{
|
|
//-- NPC: Hello. I am C-3P0, Human-Cyborg relations. My companion is R2-D2, and he has been informed from High Command that you are interested in assisting with the Alliance's cause. According to R2, it seems there is a need for someone to resupply the base's guard posts with medical supplies. Would you be interested in doing this?
|
|
string_id message = new string_id (c_stringFile, "s_34");
|
|
int numberOfResponses = 0;
|
|
|
|
boolean hasResponse = false;
|
|
|
|
//-- PLAYER: I am. Sign me up.
|
|
boolean hasResponse0 = false;
|
|
if (rtp_c3po_main_condition__defaultCondition (player, npc))
|
|
{
|
|
++numberOfResponses;
|
|
hasResponse = true;
|
|
hasResponse0 = true;
|
|
}
|
|
|
|
//-- PLAYER: No thank you.
|
|
boolean hasResponse1 = false;
|
|
if (rtp_c3po_main_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_36");
|
|
|
|
if (hasResponse1)
|
|
responses [responseIndex++] = new string_id (c_stringFile, "s_40");
|
|
|
|
utils.setScriptVar (player, "conversation.rtp_c3po_main.branchId", 11);
|
|
|
|
npcStartConversation (player, npc, "rtp_c3po_main", 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 != "rtp_c3po_main")
|
|
return SCRIPT_CONTINUE;
|
|
|
|
obj_id npc = self;
|
|
|
|
int branchId = utils.getIntScriptVar (player, "conversation.rtp_c3po_main.branchId");
|
|
|
|
if (branchId == 6 && rtp_c3po_main_handleBranch6 (player, npc, response) == SCRIPT_CONTINUE)
|
|
return SCRIPT_CONTINUE;
|
|
|
|
if (branchId == 11 && rtp_c3po_main_handleBranch11 (player, npc, response) == SCRIPT_CONTINUE)
|
|
return SCRIPT_CONTINUE;
|
|
|
|
chat.chat (npc, "Error: Fell through all branches and responses for OnNpcConversationResponse.");
|
|
|
|
utils.removeScriptVar (player, "conversation.rtp_c3po_main.branchId");
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ======================================================================
|
|
|