// ====================================================================== // // npe_side_jolka.script // Copyright 2004, Sony Online Entertainment // All Rights Reserved. // // Created with SwgConversationEditor 1.36 - DO NOT EDIT THIS AUTO-GENERATED FILE! // // ====================================================================== // ====================================================================== // Library Includes // ====================================================================== include library.ai_lib; include library.chat; include library.groundquests; include library.npe; include library.utils; // ====================================================================== // Script Constants // ====================================================================== string c_stringFile = "conversation/npe_side_jolka"; // ====================================================================== // Script Conditions // ====================================================================== boolean npe_side_jolka_condition__defaultCondition (obj_id player, obj_id npc) { return true; } // ---------------------------------------------------------------------- boolean npe_side_jolka_condition_hasFinishedTemplate (obj_id player, obj_id npc) { return hasObjVar(player, "npe.finishedTemplate"); } // ---------------------------------------------------------------------- boolean npe_side_jolka_condition_finishedQuest (obj_id player, obj_id npc) { return groundquests.hasCompletedQuest(player, "npe_side_jolka"); } // ---------------------------------------------------------------------- boolean npe_side_jolka_condition_stillOnQuest (obj_id player, obj_id npc) { return groundquests.isTaskActive(player, "npe_side_jolka", "gathering"); } // ---------------------------------------------------------------------- boolean npe_side_jolka_condition_hasFinishedTask (obj_id player, obj_id npc) { return groundquests.isTaskActive(player, "npe_side_jolka", "return"); } // ====================================================================== // Script Actions // ====================================================================== void npe_side_jolka_action_giveJolkaQuest (obj_id player, obj_id npc) { groundquests.requestGrantQuest(player, "npe_side_jolka"); } // ---------------------------------------------------------------------- void npe_side_jolka_action_signalEndQuest (obj_id player, obj_id npc) { groundquests.sendSignal(player, "npe_jolka_signal"); npe.sendDelayed3poPopup(player, 3, 11, "sound/c3po_29.snd", "npe", "pop_credits", "npe.credits"); } // ====================================================================== // Script %TO Tokens // ====================================================================== // ====================================================================== // Script %DI Tokens // ====================================================================== // ====================================================================== // Script %DF Tokens // ====================================================================== // ====================================================================== // handleBranch Functions // ====================================================================== int npe_side_jolka_handleBranch2 (obj_id player, obj_id npc, string_id response) { //-- [BRANCH NOTE] //-- NPC: Do you have the power converter? //-- [RESPONSE NOTE] //-- PLAYER: Yes, here it is. if (response == "s_40") { doAnimationAction (player, "feed_creature_medium"); //-- [NOTE] if (npe_side_jolka_condition__defaultCondition (player, npc)) { npe_side_jolka_action_signalEndQuest (player, npc); //-- NPC: Perfect! Thank you. Here, take these credits. The Wookiee was getting impatient. string_id message = new string_id (c_stringFile, "s_42"); utils.removeScriptVar (player, "conversation.npe_side_jolka.branchId"); npcEndConversationWithMessage (player, message); return SCRIPT_CONTINUE; } } return SCRIPT_DEFAULT; } // ---------------------------------------------------------------------- int npe_side_jolka_handleBranch4 (obj_id player, obj_id npc, string_id response) { //-- [BRANCH NOTE] //-- NPC: Have you gotten that power converter yet? //-- [RESPONSE NOTE] //-- PLAYER: No, I will get it right away. if (response == "s_28") { //-- [NOTE] if (npe_side_jolka_condition__defaultCondition (player, npc)) { //-- NPC: Please hurry. string_id message = new string_id (c_stringFile, "s_30"); utils.removeScriptVar (player, "conversation.npe_side_jolka.branchId"); npcEndConversationWithMessage (player, message); return SCRIPT_CONTINUE; } } //-- [RESPONSE NOTE] //-- PLAYER: Where would I find it again? if (response == "s_32") { //-- [NOTE] if (npe_side_jolka_condition__defaultCondition (player, npc)) { //-- NPC: Take it from one of the malfunctioning droids on the lower level. string_id message = new string_id (c_stringFile, "s_34"); utils.removeScriptVar (player, "conversation.npe_side_jolka.branchId"); npcEndConversationWithMessage (player, message); return SCRIPT_CONTINUE; } } return SCRIPT_DEFAULT; } // ---------------------------------------------------------------------- int npe_side_jolka_handleBranch7 (obj_id player, obj_id npc, string_id response) { //-- [BRANCH NOTE] //-- NPC: I wish you could help me, but you seem to be without a profession. Come back later. I could use your help. //-- [RESPONSE NOTE] //-- PLAYER: Okay, I will. if (response == "s_15") { //-- [NOTE] if (npe_side_jolka_condition__defaultCondition (player, npc)) { //-- NPC: See you then. string_id message = new string_id (c_stringFile, "s_17"); utils.removeScriptVar (player, "conversation.npe_side_jolka.branchId"); npcEndConversationWithMessage (player, message); return SCRIPT_CONTINUE; } } return SCRIPT_DEFAULT; } // ---------------------------------------------------------------------- int npe_side_jolka_handleBranch9 (obj_id player, obj_id npc, string_id response) { //-- [BRANCH NOTE] //-- NPC: Don't worry, little R2 unit. I'll get you all fixed up. Oh, I didn't see you there. But I am glad you are here. //-- [RESPONSE NOTE] //-- PLAYER: You are? if (response == "s_21") { //-- [NOTE] if (npe_side_jolka_condition__defaultCondition (player, npc)) { //-- NPC: Yes, this R2 unit was damaged by blaster fire and is in desperate need of a new power converter. string_id message = new string_id (c_stringFile, "s_23"); int numberOfResponses = 0; boolean hasResponse = false; //-- PLAYER: You can count on me! boolean hasResponse0 = false; if (npe_side_jolka_condition__defaultCondition (player, npc)) { ++numberOfResponses; hasResponse = true; hasResponse0 = true; } //-- PLAYER: Where would I find one of those? boolean hasResponse1 = false; if (npe_side_jolka_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_25"); if (hasResponse1) responses [responseIndex++] = new string_id (c_stringFile, "s_33"); utils.setScriptVar (player, "conversation.npe_side_jolka.branchId", 10); npcSpeak (player, message); npcSetConversationResponses (player, responses); } else { utils.removeScriptVar (player, "conversation.npe_side_jolka.branchId"); npcEndConversationWithMessage (player, message); } return SCRIPT_CONTINUE; } } return SCRIPT_DEFAULT; } // ---------------------------------------------------------------------- int npe_side_jolka_handleBranch10 (obj_id player, obj_id npc, string_id response) { //-- [BRANCH NOTE] //-- NPC: Yes, this R2 unit was damaged by blaster fire and is in desperate need of a new power converter. //-- [RESPONSE NOTE] //-- PLAYER: You can count on me! if (response == "s_25") { doAnimationAction (player, "point_to_self"); //-- [NOTE] if (npe_side_jolka_condition__defaultCondition (player, npc)) { npe_side_jolka_action_giveJolkaQuest (player, npc); //-- NPC: Good. Try to bring one back that isn't damaged. string_id message = new string_id (c_stringFile, "s_29"); utils.removeScriptVar (player, "conversation.npe_side_jolka.branchId"); npcEndConversationWithMessage (player, message); return SCRIPT_CONTINUE; } } //-- [RESPONSE NOTE] //-- PLAYER: Where would I find one of those? if (response == "s_33") { //-- [NOTE] if (npe_side_jolka_condition__defaultCondition (player, npc)) { //-- NPC: I hear there are some malfunctioning droids in the lower level. I am sure no one would mind if you borrowed one from them. Make sure to bring me one that is still intact and functional. string_id message = new string_id (c_stringFile, "s_36"); int numberOfResponses = 0; boolean hasResponse = false; //-- PLAYER: I will go there at once. boolean hasResponse0 = false; if (npe_side_jolka_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_39"); utils.setScriptVar (player, "conversation.npe_side_jolka.branchId", 12); npcSpeak (player, message); npcSetConversationResponses (player, responses); } else { utils.removeScriptVar (player, "conversation.npe_side_jolka.branchId"); npcEndConversationWithMessage (player, message); } return SCRIPT_CONTINUE; } } return SCRIPT_DEFAULT; } // ---------------------------------------------------------------------- int npe_side_jolka_handleBranch12 (obj_id player, obj_id npc, string_id response) { //-- [BRANCH NOTE] //-- NPC: I hear there are some malfunctioning droids in the lower level. I am sure no one would mind if you borrowed one from them. Make sure to bring me one that is still intact and functional. //-- [RESPONSE NOTE] //-- PLAYER: I will go there at once. if (response == "s_39") { //-- [NOTE] if (npe_side_jolka_condition__defaultCondition (player, npc)) { npe_side_jolka_action_giveJolkaQuest (player, npc); //-- NPC: Thanks. The large Wookiee out there seems to like this droid. I'd hate for him to do something to me if I couldn't get it fixed. string_id message = new string_id (c_stringFile, "s_43"); utils.removeScriptVar (player, "conversation.npe_side_jolka.branchId"); npcEndConversationWithMessage (player, message); return SCRIPT_CONTINUE; } } return SCRIPT_DEFAULT; } // ---------------------------------------------------------------------- // ====================================================================== // User Script Triggers // ====================================================================== trigger OnInitialize () { if ((!isMob (self)) || (isPlayer (self))) detachScript(self, "conversation.npe_side_jolka"); setCondition (self, CONDITION_CONVERSABLE); setPosture(self, POSTURE_CROUCHED); setName( self, "Jolka"); setInvulnerable(self, true ); return SCRIPT_CONTINUE; } trigger OnAttach () { setCondition (self, CONDITION_CONVERSABLE); setPosture(self, POSTURE_CROUCHED); setName( self, "Jolka"); setInvulnerable(self, true ); 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.npe_side_jolka"); 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 (npe_side_jolka_condition_finishedQuest (player, npc)) { //-- NPC: Thanks for all your help, %TU. string_id message = new string_id (c_stringFile, "s_45"); prose_package pp = new prose_package (); pp.stringId = message; pp.actor.set (player); pp.target.set (npc); chat.chat (npc, player, null, null, pp); return SCRIPT_CONTINUE; } //-- [NOTE] if (npe_side_jolka_condition_hasFinishedTask (player, npc)) { //-- NPC: Do you have the power converter? string_id message = new string_id (c_stringFile, "s_38"); int numberOfResponses = 0; boolean hasResponse = false; //-- PLAYER: Yes, here it is. boolean hasResponse0 = false; if (npe_side_jolka_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_40"); utils.setScriptVar (player, "conversation.npe_side_jolka.branchId", 2); npcStartConversation (player, npc, "npe_side_jolka", message, responses); } else { chat.chat (npc, player, message); } return SCRIPT_CONTINUE; } //-- [NOTE] if (npe_side_jolka_condition_stillOnQuest (player, npc)) { //-- NPC: Have you gotten that power converter yet? string_id message = new string_id (c_stringFile, "s_26"); int numberOfResponses = 0; boolean hasResponse = false; //-- PLAYER: No, I will get it right away. boolean hasResponse0 = false; if (npe_side_jolka_condition__defaultCondition (player, npc)) { ++numberOfResponses; hasResponse = true; hasResponse0 = true; } //-- PLAYER: Where would I find it again? boolean hasResponse1 = false; if (npe_side_jolka_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_28"); if (hasResponse1) responses [responseIndex++] = new string_id (c_stringFile, "s_32"); utils.setScriptVar (player, "conversation.npe_side_jolka.branchId", 4); npcStartConversation (player, npc, "npe_side_jolka", message, responses); } else { chat.chat (npc, player, message); } return SCRIPT_CONTINUE; } //-- [NOTE] if (!npe_side_jolka_condition_hasFinishedTemplate (player, npc)) { //-- NPC: I wish you could help me, but you seem to be without a profession. Come back later. I could use your help. string_id message = new string_id (c_stringFile, "s_13"); int numberOfResponses = 0; boolean hasResponse = false; //-- PLAYER: Okay, I will. boolean hasResponse0 = false; if (npe_side_jolka_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_15"); utils.setScriptVar (player, "conversation.npe_side_jolka.branchId", 7); npcStartConversation (player, npc, "npe_side_jolka", message, responses); } else { chat.chat (npc, player, message); } return SCRIPT_CONTINUE; } //-- [NOTE] if (npe_side_jolka_condition_hasFinishedTemplate (player, npc)) { //-- NPC: Don't worry, little R2 unit. I'll get you all fixed up. Oh, I didn't see you there. But I am glad you are here. string_id message = new string_id (c_stringFile, "s_19"); int numberOfResponses = 0; boolean hasResponse = false; //-- PLAYER: You are? boolean hasResponse0 = false; if (npe_side_jolka_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_21"); utils.setScriptVar (player, "conversation.npe_side_jolka.branchId", 9); npcStartConversation (player, npc, "npe_side_jolka", message, responses); } else { chat.chat (npc, player, message); } return SCRIPT_CONTINUE; } //-- [NOTE] if (npe_side_jolka_condition__defaultCondition (player, npc)) { //-- NPC: I am busy right now. string_id message = new string_id (c_stringFile, "s_46"); 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 != "npe_side_jolka") return SCRIPT_CONTINUE; obj_id npc = self; int branchId = utils.getIntScriptVar (player, "conversation.npe_side_jolka.branchId"); if (branchId == 2 && npe_side_jolka_handleBranch2 (player, npc, response) == SCRIPT_CONTINUE) return SCRIPT_CONTINUE; if (branchId == 4 && npe_side_jolka_handleBranch4 (player, npc, response) == SCRIPT_CONTINUE) return SCRIPT_CONTINUE; if (branchId == 7 && npe_side_jolka_handleBranch7 (player, npc, response) == SCRIPT_CONTINUE) return SCRIPT_CONTINUE; if (branchId == 9 && npe_side_jolka_handleBranch9 (player, npc, response) == SCRIPT_CONTINUE) return SCRIPT_CONTINUE; if (branchId == 10 && npe_side_jolka_handleBranch10 (player, npc, response) == SCRIPT_CONTINUE) return SCRIPT_CONTINUE; if (branchId == 12 && npe_side_jolka_handleBranch12 (player, npc, response) == SCRIPT_CONTINUE) return SCRIPT_CONTINUE; chat.chat (npc, "Error: Fell through all branches and responses for OnNpcConversationResponse."); utils.removeScriptVar (player, "conversation.npe_side_jolka.branchId"); return SCRIPT_CONTINUE; } // ======================================================================