Files
dsrc/sku.0/sys.server/compiled/game/script/npc/celebrity/jinkins.script
T

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;
}