public void Main() { NWPlayer player = _.GetLastUsedBy(); if (!player.IsPlayer) { return; } NWPlaceable placeable = _.OBJECT_SELF; int keyItemID = placeable.GetLocalInt("KEY_ITEM_ID"); if (keyItemID <= 0) { return; } if (KeyItemService.PlayerHasKeyItem(player, keyItemID)) { player.SendMessage("You already have this key item."); return; } KeyItemService.GivePlayerKeyItem(player, keyItemID); string visibilityGUID = placeable.GetLocalString("VISIBILITY_OBJECT_ID"); if (!string.IsNullOrWhiteSpace(visibilityGUID)) { ObjectVisibilityService.AdjustVisibility(player, placeable, false); } }
public override void Initialize() { NWObject door = NWGameObject.OBJECT_SELF; NWPlayer player = GetPC(); List <int> keyItemIDs = new List <int>(); int count = 1; int keyItemID = door.GetLocalInt("REQUIRED_KEY_ITEM_ID_" + count); while (keyItemID > 0) { keyItemIDs.Add(keyItemID); count++; keyItemID = door.GetLocalInt("REQUIRED_KEY_ITEM_ID_" + count); } bool hasKeyItems = KeyItemService.PlayerHasAllKeyItems(player, keyItemIDs.ToArray()); string doorDialogue = door.GetLocalString("DOOR_DIALOGUE"); if (!string.IsNullOrWhiteSpace(doorDialogue)) { SetPageHeader("MainPage", doorDialogue); } if (hasKeyItems) { SetResponseText("MainPage", 1, "Open Door"); } else { SetResponseVisible("MainPage", 1, false); } }
public static bool Check(int index, int type) { using (new Profiler(nameof(KeyItemCheck))) { NWPlayer player = _.GetPCSpeaker(); NWObject talkingTo = _.OBJECT_SELF; int count = 1; List <int> requiredKeyItemIDs = new List <int>(); int keyItemID = talkingTo.GetLocalInt($"KEY_ITEM_{index}_REQ_{count}"); while (keyItemID > 0) { requiredKeyItemIDs.Add(keyItemID); count++; keyItemID = talkingTo.GetLocalInt($"KEY_ITEM_{index}_REQ_{count}"); } // Type 1 = ALL // Anything else = ANY return(type == 1 ? KeyItemService.PlayerHasAllKeyItems(player, requiredKeyItemIDs.ToArray()) : KeyItemService.PlayerHasAnyKeyItem(player, requiredKeyItemIDs.ToArray())); } }
public TheMandalorianLeader() { CreateQuest(18, "The Mandalorian Leader", "the_manda_leader") .AddPrerequisiteQuest(17) .AddObjectiveKillTarget(1, NPCGroupType.Viscara_MandalorianLeader, 1) .AddObjectiveTalkToNPC(2) .EnableRewardSelection() .AddRewardGold(350) .AddRewardFame(3, 40) .AddRewardItem("rifle_tran", 1) .AddRewardItem("blaster_tran", 1) .AddRewardItem("xp_tome_1", 1) .AddRewardItem("bst_sword_tran", 1) .AddRewardItem("twinblade_tran", 1) .AddRewardItem("kukri_tran", 1) .AddRewardItem("halberd_tran", 1) .AddRewardItem("greataxe_tran", 1) .OnAccepted((player, questSource) => { KeyItemService.GivePlayerKeyItem(player, 7); }); }
public void Run(NWPlayer player, NWObject questSource, int questID, string[] args) { foreach (var keyItem in args) { int keyItemID = Convert.ToInt32(keyItem); KeyItemService.RemovePlayerKeyItem(player, keyItemID); } }
public QuestKeyItemReward(int keyItemID, bool isSelectable) { _keyItemID = keyItemID; IsSelectable = isSelectable; var keyItem = KeyItemService.GetKeyItemByID(_keyItemID); MenuName = "Key Item: " + keyItem.Name; }
private void LoadKeyItemsOptions(int categoryID) { List <PCKeyItem> items = KeyItemService.GetPlayerKeyItemsByCategory(GetPC(), categoryID).ToList(); ClearPageResponses("KeyItemsListPage"); foreach (PCKeyItem item in items) { var keyItem = KeyItemService.GetKeyItemByID(item.KeyItemID); AddResponseToPage("KeyItemsListPage", keyItem.Name, true, item.KeyItemID); } ChangePage("KeyItemsListPage"); }
private string BuildKeyItemHeader(int responseID) { DialogResponse response = GetResponseByID(GetCurrentPageName(), responseID); int keyItemID = (int)response.CustomData; KeyItem entity = KeyItemService.GetKeyItemByID(keyItemID); string header = ColorTokenService.Green("Key Item: ") + entity.Name + "\n\n"; header += ColorTokenService.Green("Description: ") + entity.Description + "\n"; return(header); }
public VanquishTheVellenRaiders() { CreateQuest(29, "Vanquish the Vellen Raiders", "vanquish_vellen") .AddPrerequisiteQuest(28) .AddObjectiveKillTarget(1, NPCGroupType.Viscara_VellenFleshleader, 1) .AddObjectiveTalkToNPC(2) .AddRewardGold(750) .AddRewardFame(4, 40) .AddRewardItem("xp_tome_1", 1) .OnAccepted((player, o) => { KeyItemService.GivePlayerKeyItem(player, 20); }); }
public SmuggleRoyMossPackage() { CreateQuest(23, "Smuggle Roy Moss's Package", "smuggle_roy_moss") .AddObjectiveTalkToNPC(1) .AddRewardFame(3, 25) .OnAccepted((player, o) => { KeyItemService.GivePlayerKeyItem(player, 18); }) .OnCompleted((player, o) => { KeyItemService.RemovePlayerKeyItem(player, 18); }); }
public SelansRequest() { CreateQuest(2, "Selan's Request", "selan_request") .AddObjectiveCollectKeyItem(1, 1) .AddObjectiveCollectKeyItem(1, 2) .AddObjectiveCollectKeyItem(1, 3) .AddRewardGold(500) .AddRewardFame(2, 15) .AddRewardKeyItem(5) .OnCompleted((player, questGiver) => { KeyItemService.RemovePlayerKeyItem(player, 1); KeyItemService.RemovePlayerKeyItem(player, 2); KeyItemService.RemovePlayerKeyItem(player, 3); }); }
public CZ220SuppliesArmorsmith() { CreateQuest(3, "CZ-220 Supplies - Armorsmith", "cz220_armorsmith") .AddObjectiveCollectItem(1, "padding_fiber", 1, true) .AddObjectiveTalkToNPC(2) .AddRewardGold(50) .AddRewardKeyItem(3) .AddRewardFame(2, 5) .OnAccepted((player, questGiver) => { KeyItemService.GivePlayerKeyItem(player, 4); }) .OnCompleted((player, questGiver) => { KeyItemService.RemovePlayerKeyItem(player, 4); }); }
public CZ220SuppliesEngineering() { CreateQuest(4, "CZ-220 Supplies - Engineering", "cz220_engineering") .AddObjectiveCollectItem(1, "scanner_r_b", 1, true) .AddObjectiveTalkToNPC(2) .AddRewardGold(50) .AddRewardKeyItem(3) .AddRewardFame(2, 5) .OnAccepted((player, questGiver) => { KeyItemService.GivePlayerKeyItem(player, 4); }) .OnCompleted((player, questGiver) => { KeyItemService.RemovePlayerKeyItem(player, 4); }); }
public CZ220SuppliesScavenging() { CreateQuest(6, "CZ-220 Supplies - Scavenging", "cz220_scavenging") .AddObjectiveCollectItem(1, "scrap_metal", 10, false) .AddObjectiveTalkToNPC(2) .AddRewardGold(50) .AddRewardKeyItem(3) .AddRewardFame(2, 5) .OnAccepted((player, questGiver) => { KeyItemService.GivePlayerKeyItem(player, 4); }) .OnCompleted((player, questGiver) => { KeyItemService.RemovePlayerKeyItem(player, 4); }); }
public CZ220SuppliesWeaponsmith() { CreateQuest(7, "CZ-220 Supplies - Weaponsmith", "cz220_weaponsmith") .AddObjectiveCollectItem(1, "club_b", 1, true) .AddObjectiveTalkToNPC(2) .AddRewardGold(50) .AddRewardKeyItem(3) .AddRewardFame(2, 5) .OnAccepted((player, questGiver) => { KeyItemService.GivePlayerKeyItem(player, 4); }) .OnCompleted((player, questGiver) => { KeyItemService.RemovePlayerKeyItem(player, 4); }); }
public CZ220SuppliesFabrication() { CreateQuest(5, "CZ-220 Supplies - Fabrication", "cz220_fabrication") .AddObjectiveCollectItem(1, "power_core", 1, true) .AddObjectiveTalkToNPC(2) .AddRewardGold(50) .AddRewardKeyItem(3) .AddRewardFame(2, 5) .OnAccepted((player, questGiver) => { KeyItemService.GivePlayerKeyItem(player, 4); }) .OnCompleted((player, questGiver) => { KeyItemService.RemovePlayerKeyItem(player, 4); }); }
public SlicingTheMandalorianFacility() { CreateQuest(22, "Slicing the Mandalorian Facility", "mandalorian_slicing") .AddPrerequisiteQuest(20) .AddPrerequisiteQuest(21) .AddObjectiveUseObject(1) .AddRewardGold(550) .AddRewardFame(3, 25) .AddRewardItem("xp_tome_1", 1) .OnAccepted((player, questSource) => { string[] visibilityObjectIDs = { "C1888BC5BBBC45F28B40293D7C6E76EC", "C3F31641D4F34D6AAEA51295CBE9014D", "6FABDF6EDF4F47A4A9684E6224700A78", "5B56B9EF160D4B078E28C775723BA95F", "141D32140AA847B18AD5896C82223C8D", "B0839B0F597140EEAEC567C22FFD1A86" }; foreach (var objID in visibilityObjectIDs) { var obj = AppCache.VisibilityObjects.Single(x => x.Key == objID).Value; ObjectVisibilityService.AdjustVisibility(player, obj, true); } }) .OnCompleted((player, questSource) => { KeyItemService.RemovePlayerKeyItem(player, 12); KeyItemService.RemovePlayerKeyItem(player, 13); KeyItemService.RemovePlayerKeyItem(player, 14); KeyItemService.RemovePlayerKeyItem(player, 15); KeyItemService.RemovePlayerKeyItem(player, 16); KeyItemService.RemovePlayerKeyItem(player, 17); }); }
private void DoSlice() { NWPlaceable self = Object.OBJECT_SELF; int keyItemID = self.GetLocalInt("KEY_ITEM_ID"); if (keyItemID <= 0) { GetPC().SendMessage("ERROR: Improperly configured key item. ID is not set. Notify an admin."); return; } KeyItemService.GivePlayerKeyItem(GetPC(), keyItemID); string visibilityObjectID = self.GetLocalString("VISIBILITY_OBJECT_ID"); if (!string.IsNullOrWhiteSpace(visibilityObjectID)) { ObjectVisibilityService.AdjustVisibility(GetPC(), self, false); } EndConversation(); }
public TheColicoidExperiment() { CreateQuest(11, "The Colicoid Experiment", "the_colicoid_experiment") .AddPrerequisiteQuest(8) .AddPrerequisiteQuest(10) .AddObjectiveKillTarget(1, NPCGroupType.CZ220_ColicoidExperiment, 1) .AddObjectiveTalkToNPC(2) .EnableRewardSelection() .AddRewardGold(250) .AddRewardFame(2, 20) .AddRewardItem("colicoid_cap_y", 1) .AddRewardItem("colicoid_cap_b", 1) .AddRewardItem("colicoid_cap_r", 1) .AddRewardItem("colicoid_cap_g", 1) .OnAccepted((player, questGiver) => { KeyItemService.GivePlayerKeyItem(player, 6); }); }
public bool MeetsPrerequisite(NWPlayer player) { return(KeyItemService.PlayerHasKeyItem(player, _keyItemID)); }
public bool IsComplete(NWPlayer player, int questID) { return(KeyItemService.PlayerHasKeyItem(player, KeyItemID)); }
public void Main() { NWPlayer oPC = GetLastUsedBy(); if (GetIsInCombat(oPC) == true) { SendMessageToPC(oPC, "You are in combat."); return; } NWPlaceable self = OBJECT_SELF; string destination = self.GetLocalString("DESTINATION"); var visualEffectID = self.GetLocalInt("VISUAL_EFFECT") > 0 ? (VisualEffect)self.GetLocalInt("VISUAL_EFFECT") : VisualEffect.Invalid; int keyItemID = self.GetLocalInt("KEY_ITEM_ID"); string missingKeyItemMessage = self.GetLocalString("MISSING_KEY_ITEM_MESSAGE"); bool isInstance = GetLocalBool(self, "INSTANCE") == true; bool personalInstanceOnly = GetLocalBool(self, "PERSONAL_INSTANCE_ONLY"); if (keyItemID > 0) { if (!KeyItemService.PlayerHasKeyItem(oPC, keyItemID)) { if (!string.IsNullOrWhiteSpace(missingKeyItemMessage)) { oPC.SendMessage(missingKeyItemMessage); } else { oPC.SendMessage("You don't have the necessary key item to access that object."); } return; } } if (visualEffectID > 0) { ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(visualEffectID), oPC.Object); } NWObject entranceWP = GetWaypointByTag(destination); NWLocation location = GetLocation(entranceWP); if (!entranceWP.IsValid) { oPC.SendMessage("Cannot locate entrance waypoint. Inform an admin."); return; } if (isInstance) { var members = oPC.PartyMembers.Where(x => x.Area.GetLocalString("ORIGINAL_RESREF") == entranceWP.Area.Resref).ToList(); // A party member is in an instance of this type already. // Prompt player to select which instance to enter. if (members.Count >= 1 && !personalInstanceOnly) { oPC.SetLocalString("INSTANCE_RESREF", entranceWP.Area.Resref); oPC.SetLocalString("INSTANCE_DESTINATION_TAG", destination); DialogService.StartConversation(oPC, self, "InstanceSelection"); return; } // Otherwise no instance exists yet or this instance only allows one player. Make a new one for this player. NWArea instance = AreaService.CreateAreaInstance(oPC, entranceWP.Area.Resref, entranceWP.Area.Name, destination); location = instance.GetLocalLocation("INSTANCE_ENTRANCE"); PlayerService.SaveLocation(oPC); } oPC.AssignCommand(() => { ActionJumpToLocation(location); }); }
public void GiveReward(NWPlayer player) { KeyItemService.GivePlayerKeyItem(player, _keyItemID); }