mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-08-03 03:15:55 -04:00
462 lines
13 KiB
Plaintext
462 lines
13 KiB
Plaintext
include library.utils;
|
|
include library.ai_lib;
|
|
include library.hue;
|
|
include library.colors;
|
|
include library.chat;
|
|
|
|
const string CONVO = "celebrity/kole";
|
|
const string FACETO_VOLUME_NAME = "faceToTriggerVolume";
|
|
|
|
trigger OnAttach ()
|
|
{
|
|
setName (self, "Kole");
|
|
ai_lib.setDefaultCalmBehavior( self, ai_lib.BEHAVIOR_SENTINEL );
|
|
setInvulnerable (self, false );
|
|
debugSpeakMsg (self, "I work for Nym...I might be a doctor...");
|
|
attachScript (self, "npc.converse.npc_converse_menu");
|
|
createTriggerVolume( FACETO_VOLUME_NAME, 8.0f, true );
|
|
//setCondition (self, CONDITION_INTERESTING);
|
|
messageTo (self, "doISetup", null, 2, false );
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnStartNpcConversation (obj_id speaker)
|
|
{
|
|
|
|
string questInfo = "tell_me_quest";
|
|
|
|
faceTo (self, speaker );
|
|
|
|
if (hasObjVar(speaker, "nym.nym.finished"))
|
|
{
|
|
string_id greeting = new string_id (CONVO, "good_work");
|
|
chat.chat (self, greeting);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if (hasObjVar (speaker, "nym.kole.done"))
|
|
{
|
|
string_id greeting = new string_id (CONVO, "good_work");
|
|
|
|
string_id response[] = new string_id [2];
|
|
response[0] = new string_id (CONVO, "what_now");
|
|
response[1] = new string_id (CONVO, "see_ya");
|
|
|
|
setObjVar (speaker, "nym.kole.finished", 1);
|
|
|
|
npcStartConversation (speaker, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
if (hasObjVar (speaker, "nym"))
|
|
{
|
|
if (hasObjVar (speaker, "nym.openedGas"))
|
|
{
|
|
obj_id gas = utils.getItemPlayerHasByTemplate(speaker, "object/tangible/loot/quest/nym_filtered_gas.iff");
|
|
|
|
if (gas != null)
|
|
{
|
|
destroyObject (gas);
|
|
}
|
|
|
|
setObjVar (speaker, "nym.kole.done", 1);
|
|
string_id message = new string_id (CONVO, "gave_gas");
|
|
chat.chat (self, message);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
}
|
|
|
|
if (hasObjVar (speaker, "nym.kole.gotgas"))
|
|
{
|
|
string_id greeting = new string_id (CONVO, "bring_gas");
|
|
|
|
string_id response[] = new string_id [2];
|
|
response[0] = new string_id (CONVO, "yes");
|
|
response[1] = new string_id (CONVO, "no");
|
|
|
|
npcStartConversation (speaker, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
if (hasObjVar (speaker, "nym.kole.officerPoint") || hasObjVar (speaker, "nym.kole.gasPoint"))
|
|
{
|
|
questInfo = "tell_me_again";
|
|
}
|
|
|
|
if (ai_lib.isInCombat(self) || ai_lib.isInCombat(speaker))
|
|
return SCRIPT_OVERRIDE;
|
|
|
|
if (hasObjVar (speaker, "nym.kole.everyone"))
|
|
{
|
|
string_id greeting = new string_id (CONVO,"hello_again");
|
|
|
|
string_id response[] = new string_id [1];
|
|
response[0] = new string_id (CONVO, questInfo);
|
|
|
|
npcStartConversation (speaker, self, "celebConvo", greeting, response);
|
|
|
|
}
|
|
else if (hasObjVar (speaker, "nym.kole.jinkins") && hasObjVar (speaker, "nym.kole.nym") && hasObjVar (speaker, "nym.kole.kole"))
|
|
{
|
|
setObjVar (speaker, "nym.kole.everyone", 1);
|
|
removeObjVar (speaker, "nym.kole.kole");
|
|
removeObjVar (speaker, "nym.kole.nym");
|
|
removeObjVar (speaker, "nym.kole.jinkins");
|
|
string_id greeting = new string_id (CONVO,"hello_again");
|
|
|
|
string_id response[] = new string_id [1];
|
|
response[0] = new string_id (CONVO, questInfo);
|
|
|
|
npcStartConversation (speaker, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
else if (hasObjVar (speaker, "nym.kole.jinkins"))
|
|
{
|
|
string_id greeting = new string_id (CONVO,"hello_again");
|
|
|
|
string_id response[] = new string_id [2];
|
|
response[0] = new string_id (CONVO, questInfo);
|
|
response[1] = new string_id (CONVO,"who_is_nym");
|
|
|
|
npcStartConversation (speaker, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
else if (hasObjVar (speaker, "nym.kole.nym"))
|
|
{
|
|
string_id greeting = new string_id (CONVO,"hello_again");
|
|
|
|
string_id response[] = new string_id [2];
|
|
response[0] = new string_id (CONVO, questInfo);
|
|
response[1] = new string_id (CONVO,"who_is_jinkins");
|
|
|
|
npcStartConversation (speaker, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
else if (hasObjVar (speaker, "nym.kole.kole"))
|
|
{
|
|
string_id greeting = new string_id (CONVO,"hello_again");
|
|
|
|
string_id response[] = new string_id [3];
|
|
response[0] = new string_id (CONVO, questInfo);
|
|
response[1] = new string_id (CONVO,"who_is_nym");
|
|
response[2] = new string_id (CONVO,"who_is_jinkins");
|
|
|
|
npcStartConversation (speaker, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
else if (hasObjVar (speaker, "nym.kole.talked"))
|
|
{
|
|
string_id greeting = new string_id (CONVO,"hello_again");
|
|
|
|
string_id response[] = new string_id [2];
|
|
response[0] = new string_id (CONVO, questInfo);
|
|
response[1] = new string_id (CONVO,"who_are_you");
|
|
|
|
npcStartConversation (speaker, self, "celebConvo", greeting, response);
|
|
}
|
|
else
|
|
{
|
|
string_id greeting = new string_id (CONVO,"first_time_hello");
|
|
|
|
string_id response[] = new string_id [2];
|
|
response[0] = new string_id (CONVO, questInfo);
|
|
response[1] = new string_id (CONVO,"who_are_you");
|
|
|
|
npcStartConversation (speaker, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnNpcConversationResponse (string convo, obj_id player, string_id response)
|
|
{
|
|
|
|
setObjVar (player, "nym.kole.talked", 1);
|
|
|
|
string questInfo = "tell_me_quest";
|
|
if (hasObjVar (player, "nym.kole.officerPoint") || hasObjVar (player, "nym.kole.gasPoint"))
|
|
{
|
|
questInfo = "tell_me_again";
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("tell_me_quest")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "quest_info");
|
|
if (!hasObjVar (player, "nym.jinkins.done"))
|
|
{
|
|
message = new string_id (CONVO, "quest_tease");
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, questInfo));
|
|
npcSpeak(player, message);
|
|
npcEndConversation (player);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, questInfo));
|
|
|
|
if (!hasObjVar (player, "nym.kole.gasPoint"))
|
|
{
|
|
npcAddConversationResponse (player, new string_id (CONVO, "mining_facility"));
|
|
}
|
|
|
|
if (!hasObjVar (player, "nym.kole.officerPoint"))
|
|
{
|
|
npcAddConversationResponse (player, new string_id (CONVO, "probe_droid"));
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.kole.officerPoint") && hasObjVar (player, "nym.kole.gasPoint"))
|
|
{
|
|
npcAddConversationResponse (player, new string_id (CONVO, "anything_else"));
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("tell_me_again")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "quest_info_again");
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, questInfo));
|
|
|
|
if (!hasObjVar (player, "nym.kole.gasPoint"))
|
|
{
|
|
npcAddConversationResponse (player, new string_id (CONVO, "mining_facility"));
|
|
}
|
|
|
|
if (!hasObjVar (player, "nym.kole.officerPoint"))
|
|
{
|
|
npcAddConversationResponse (player, new string_id (CONVO, "probe_droid"));
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.kole.officerPoint") && hasObjVar (player, "nym.kole.gasPoint"))
|
|
{
|
|
npcAddConversationResponse (player, new string_id (CONVO, "anything_else"));
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
|
|
if ( response.getAsciiId().equals("who_are_you") ) //
|
|
{
|
|
string_id message = new string_id (CONVO, "im_kole");//
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "who_are_you"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "who_is_nym"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "who_is_jinkins"));
|
|
setObjVar (player, "nym.kole.kole", 1);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("mining_facility")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "miners");
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "mining_facility"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "dangerous_gas"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("who_is_nym") ) //
|
|
{
|
|
string_id message = new string_id (CONVO, "nym_is_chief");//
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "who_is_nym"));
|
|
setObjVar(player, "nym.kole.nym", 1);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("who_is_jinkins")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "jinkins_is_friend");
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "who_is_jinkins"));
|
|
setObjVar(player, "nym.kole.jinkins", 1);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("dangerous_gas")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "gas_info");
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "dangerous_gas"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "ill_get_gas"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("probe_droid")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "droid_info");
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "probe_droid"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "imperial_involvement"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("imperial_involvement")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "imperial_stuff");
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "imperial_involvement"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "resigned_officer"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("resigned_officer")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "officer_info");
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "resigned_officer"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "ill_see_imperial"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("anything_else")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "not_really");
|
|
|
|
npcSpeak(player, message);
|
|
npcEndConversation(player);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("ill_get_gas")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "here_is_gas");
|
|
|
|
setObjVar (player, "nym.jinkins.guy", 1);
|
|
if (!hasScript (player, "theme_park.nym.player"))
|
|
{
|
|
attachScript (player, "theme_park.nym.player");
|
|
}
|
|
|
|
messageTo (player, "goGetGas", null, 2, true);
|
|
|
|
npcSpeak(player, message);
|
|
npcEndConversation (player);
|
|
setObjVar (player, "nym.kole.gasPoint", 1);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("ill_see_imperial")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "here_is_imperial");
|
|
|
|
setObjVar (player, "nym.jinkins.guy", 1);
|
|
if (!hasScript (player, "theme_park.nym.player"))
|
|
{
|
|
attachScript (player, "theme_park.nym.player");
|
|
}
|
|
|
|
messageTo (player, "goSeeImperial", null, 2, true);
|
|
|
|
npcSpeak(player, message);
|
|
npcEndConversation (player);
|
|
setObjVar (player, "nym.kole.officerPoint", 1);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("yes")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "hand_it_over");
|
|
|
|
npcSpeak(player, message);
|
|
npcEndConversation (player);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("no") ) //
|
|
{
|
|
string_id message = new string_id (CONVO, "get_back_to_work");//
|
|
|
|
npcSpeak(player, message);
|
|
npcEndConversation (player);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("see_ya")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "good_bye");
|
|
|
|
npcSpeak(player, message);
|
|
npcEndConversation (player);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("what_now") ) //
|
|
{
|
|
string_id message = new string_id (CONVO, "youre_done");
|
|
|
|
if (!hasObjVar (player, "nym.nym.finished"))
|
|
{
|
|
message = new string_id (CONVO, "talk_to_nym");
|
|
}
|
|
|
|
npcSpeak(player, message);
|
|
npcEndConversation(player);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
|
|
return SCRIPT_CONTINUE;
|
|
|
|
}
|
|
|
|
trigger OnGiveItem (obj_id item, obj_id player)
|
|
{
|
|
string gaveMe = getTemplateName (item);
|
|
if (gaveMe == "object/tangible/loot/quest/nym_filtered_gas.iff")
|
|
{
|
|
setObjVar (player, "nym.kole.done", 1);
|
|
string_id message = new string_id (CONVO, "gave_gas");
|
|
chat.chat (self, message);
|
|
return SCRIPT_OVERRIDE;
|
|
}
|
|
else
|
|
{
|
|
string_id message = new string_id (CONVO, "whats_this");
|
|
chat.chat (self, message);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
}
|
|
|
|
//const string FACETO_VOLUME_NAME = "faceToTriggerVolume";
|
|
//createTriggerVolume( FACETO_VOLUME_NAME, 8.0f, true );
|
|
trigger OnTriggerVolumeEntered( string volumeName, obj_id breacher )
|
|
{
|
|
if ( !isPlayer( breacher ) )
|
|
{
|
|
//debugSpeakMsg( self, "you are not a player" );
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( volumeName != FACETO_VOLUME_NAME )
|
|
return SCRIPT_CONTINUE;
|
|
|
|
if ( isInNpcConversation(self) )
|
|
return SCRIPT_CONTINUE;
|
|
|
|
if ( canSee( self, breacher ) )
|
|
faceTo( self, breacher );
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler doISetup ()
|
|
{
|
|
setCondition (self, CONDITION_INTERESTING);
|
|
messageTo (self, "unkillable", null, 2, false );
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler unkillable()
|
|
{
|
|
setInvulnerable (self, true );
|
|
return SCRIPT_CONTINUE;
|
|
} |