mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-08-27 16:56:48 -04:00
494 lines
14 KiB
Plaintext
494 lines
14 KiB
Plaintext
include library.utils;
|
|
include library.chat;
|
|
include library.ai_lib;
|
|
include library.hue;
|
|
include library.colors;
|
|
|
|
const string CONVO = "celebrity/jinkins";
|
|
const string FACETO_VOLUME_NAME = "faceToTriggerVolume";
|
|
|
|
trigger OnAttach ()
|
|
{
|
|
setName (self, "Jinkins");
|
|
ai_lib.setDefaultCalmBehavior( self, ai_lib.BEHAVIOR_SENTINEL );
|
|
setInvulnerable (self, false );
|
|
debugSpeakMsg (self, "I work for Nym...");
|
|
attachScript (self, "npc.converse.npc_converse_menu");
|
|
createTriggerVolume( FACETO_VOLUME_NAME, 8.0f, true );
|
|
messageTo (self, "doISetup", null, 2, false );
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnStartNpcConversation (obj_id player)
|
|
{
|
|
|
|
string questInfo = "tell_me_quest";
|
|
string hello_line = "first_time_hello";
|
|
|
|
faceTo (self, player );
|
|
|
|
if (hasObjVar(player, "nym.nym.finished"))
|
|
{
|
|
string_id greeting = new string_id (CONVO, "good_work");
|
|
chat.chat (self, greeting);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if (hasObjVar(player, "nym.jinkins.finished") || hasObjVar(player, "nym.nym.finished"))
|
|
{
|
|
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 (player, "nym.jinkins.done", 1);
|
|
|
|
npcStartConversation (player, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
if (hasObjVar (player, "nym"))
|
|
{
|
|
if (hasObjVar (player, "nym.openedDroid"))
|
|
{
|
|
obj_id brain = utils.getItemPlayerHasByTemplate(player, "object/tangible/loot/quest/nym_droid_memory_chip.iff");
|
|
|
|
if (brain != null)
|
|
{
|
|
destroyObject (brain);
|
|
}
|
|
|
|
setObjVar (player, "nym.jinkins.done", 1);
|
|
string_id message = new string_id (CONVO, "gave_brain");
|
|
chat.chat (self, message);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.jinkins.droid"))
|
|
{
|
|
string_id greeting = new string_id (CONVO, "you_got_memory");
|
|
|
|
string_id response[] = new string_id [2];
|
|
response[0] = new string_id (CONVO, "yes");
|
|
response[1] = new string_id (CONVO, "no");
|
|
|
|
npcStartConversation (player, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.jinkins.kole") || hasObjVar (player, "nym.jinkins.nym") || hasObjVar (player, "nym.jinkins.jinkins"))
|
|
{
|
|
hello_line = "hello_again";
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.kole"))
|
|
{
|
|
hello_line = "hello_kole";
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.nym"))
|
|
{
|
|
hello_line = "hello_nym";
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.jinkins.guypoint") || hasObjVar (player, "nym.jinkins.cavepoint"))
|
|
{
|
|
questInfo = "tell_me_again";
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.kole") && hasObjVar (player, "nym.nym"))
|
|
{
|
|
hello_line = "hello_all";
|
|
setObjVar (player, "nym.jinkins.allmet", 1);
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.jinkins.allmet"))
|
|
{
|
|
hello_line = "hello_again";
|
|
}
|
|
|
|
if (ai_lib.isInCombat(self) || ai_lib.isInCombat(player))
|
|
return SCRIPT_OVERRIDE;
|
|
|
|
if (hasObjVar (player, "nym.jinkins.everyone"))
|
|
{
|
|
string_id greeting = new string_id (CONVO,hello_line);
|
|
|
|
string_id response[] = new string_id [1] ;
|
|
response[0] = new string_id (CONVO,questInfo);
|
|
|
|
npcStartConversation (player, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.jinkins.jinkins") && hasObjVar (player, "nym.jinkins.kole") && hasObjVar (player, "nym.jinkins.nym"))
|
|
{
|
|
string_id greeting = new string_id (CONVO,hello_line);
|
|
|
|
string_id response[] = new string_id [1];
|
|
response[0] = new string_id (CONVO,questInfo);
|
|
|
|
setObjVar (player, "nym.jinkins.everyone", 1);
|
|
removeObjVar (player, "nym.jinkins.jinkins");
|
|
removeObjVar (player, "nym.jinkins.kole");
|
|
removeObjVar (player, "nym.jinkins.nym");
|
|
|
|
npcStartConversation (player, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.jinkins.jinkins") && hasObjVar (player, "nym.jinkins.kole"))
|
|
{
|
|
string_id greeting = new string_id (CONVO,hello_line);
|
|
|
|
string_id response[] = new string_id [2];
|
|
response[0] = new string_id (CONVO, "who_is_nym");
|
|
response[1] = new string_id (CONVO,questInfo);
|
|
|
|
npcStartConversation (player, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.jinkins.jinkins") && hasObjVar (player, "nym.jinkins.nym"))
|
|
{
|
|
string_id greeting = new string_id (CONVO,hello_line);
|
|
|
|
string_id response[] = new string_id [2];
|
|
response[0] = new string_id (CONVO, "who_is_kole");
|
|
response[1] = new string_id (CONVO,questInfo);
|
|
|
|
npcStartConversation (player, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.jinkins.jinkins"))
|
|
{
|
|
string_id greeting = new string_id (CONVO,hello_line);
|
|
|
|
string_id response[] = new string_id [3];
|
|
response[0] = new string_id (CONVO, "who_is_nym");
|
|
response[1] = new string_id (CONVO, "who_is_kole");
|
|
response[2] = new string_id (CONVO,questInfo);
|
|
|
|
npcStartConversation (player, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
else if (hasObjVar (player, "nym.jinkins.talked"))
|
|
{
|
|
string_id greeting = new string_id (CONVO,hello_line);
|
|
|
|
string_id response[] = new string_id [2];
|
|
response[0] = new string_id (CONVO, "who_are_you");
|
|
response[1] = new string_id (CONVO,questInfo);
|
|
|
|
npcStartConversation (player, self, "celebConvo", greeting, response);
|
|
|
|
}
|
|
else
|
|
{
|
|
string_id greeting = new string_id (CONVO,hello_line);
|
|
|
|
string_id response[] = new string_id [2];
|
|
response[0] = new string_id (CONVO, "who_are_you");
|
|
response[1] = new string_id (CONVO,questInfo);
|
|
|
|
npcStartConversation (player, self, "celebConvo", greeting, response);
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnNpcConversationResponse (string convo, obj_id player, string_id response)
|
|
{
|
|
|
|
string questInfo = "tell_me_quest";
|
|
if (hasObjVar (player, "nym.jinkins.guypoint") || hasObjVar (player, "nym.jinkins.cavepoint"))
|
|
{
|
|
questInfo = "tell_me_again";
|
|
}
|
|
|
|
setObjVar (player, "nym.jinkins.talked", 1);
|
|
|
|
if ( response.getAsciiId().equals("who_are_you")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "i_am_jinkins");
|
|
|
|
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_kole"));
|
|
setObjVar (player, "nym.jinkins.jinkins", 1);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("tell_me_quest") ) //
|
|
{
|
|
string_id message = new string_id (CONVO, "quest_info");//
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, questInfo));
|
|
|
|
if (!hasObjVar (player, "nym.jinkins.cavepoint"))
|
|
{
|
|
npcAddConversationResponse (player, new string_id (CONVO, "distress_call"));
|
|
}
|
|
|
|
if (!hasObjVar (player, "nym.jinkins.guypoint"))
|
|
{
|
|
npcAddConversationResponse (player, new string_id (CONVO, "sulfur_lake_pirates"));
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.jinkins.guypoint") && hasObjVar (player, "nym.jinkins.cavepoint"))
|
|
{
|
|
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.jinkins.cavepoint"))
|
|
{
|
|
npcAddConversationResponse (player, new string_id (CONVO, "distress_call"));
|
|
}
|
|
|
|
if (!hasObjVar (player, "nym.jinkins.guypoint"))
|
|
{
|
|
npcAddConversationResponse (player, new string_id (CONVO, "sulfur_lake_pirates"));
|
|
}
|
|
|
|
if (hasObjVar (player, "nym.jinkins.guypoint") && hasObjVar (player, "nym.jinkins.cavepoint"))
|
|
{
|
|
npcAddConversationResponse (player, new string_id (CONVO, "anything_else"));
|
|
}
|
|
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");
|
|
}
|
|
|
|
if (!hasObjVar (player, "nym.kole.finished") || !hasObjVar (player, "nym.finished"))
|
|
{
|
|
message = new string_id (CONVO, "talk_to_kole");//
|
|
}
|
|
|
|
npcSpeak(player, message);
|
|
npcEndConversation(player);
|
|
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("who_is_nym")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "nym_is_boss");
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "who_is_nym"));
|
|
setObjVar(player, "nym.jinkins.nym", 1);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("who_is_kole") ) //
|
|
{
|
|
string_id message = new string_id (CONVO, "kole_is_friend");//
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "who_is_kole"));
|
|
setObjVar(player, "nym.jinkins.kole", 1);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("distress_call")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "crashed_ship");
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "distress_call"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "droid_memory"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("sulfur_lake_pirates") ) //
|
|
{
|
|
string_id message = new string_id (CONVO, "pirate_info");//
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "sulfur_lake_pirates"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "whos_the_guy"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("distress_call")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "crashed_ship");
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "distress_call"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "droid_memory"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("sulfur_lake_pirates") ) //
|
|
{
|
|
string_id message = new string_id (CONVO, "pirate_info");//
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "sulfur_lake_pirates"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "whos_the_guy"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("whos_the_guy")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "deals_with_pirates");
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "whos_the_guy"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "ill_see_the_guy"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("droid_memory") ) //
|
|
{
|
|
string_id message = new string_id (CONVO, "imperial_info");//
|
|
|
|
npcSpeak(player, message);
|
|
npcRemoveConversationResponse ( player, new string_id (CONVO, "droid_memory"));
|
|
npcAddConversationResponse (player, new string_id (CONVO, "ill_get_memory"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("anything_else") ) //
|
|
{
|
|
string_id message = new string_id (CONVO, "you_know_all");//
|
|
|
|
npcSpeak(player, message);
|
|
npcEndConversation (player);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("ill_get_memory")) //
|
|
{
|
|
string_id message = new string_id (CONVO, "heres_droid_memory");
|
|
|
|
setObjVar (player, "nym.jinkins.cave", 1);
|
|
|
|
if (!hasScript (player, "theme_park.nym.player"))
|
|
{
|
|
attachScript (player, "theme_park.nym.player");
|
|
}
|
|
|
|
messageTo (player, "goToCave", null, 2, true);
|
|
|
|
npcSpeak(player, message);
|
|
npcEndConversation(player);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if ( response.getAsciiId().equals("ill_see_the_guy") ) //
|
|
{
|
|
string_id message = new string_id (CONVO, "heres_the_guy");//
|
|
|
|
setObjVar (player, "nym.jinkins.guy", 1);
|
|
if (!hasScript (player, "theme_park.nym.player"))
|
|
{
|
|
attachScript (player, "theme_park.nym.player");
|
|
}
|
|
|
|
|
|
messageTo (player, "goSeeGuy", null, 2, true);
|
|
|
|
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_droid_memory_chip.iff")
|
|
{
|
|
setObjVar (player, "nym.jinkins.finished", 1);
|
|
string_id message = new string_id (CONVO, "gave_brain");
|
|
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;
|
|
} |