/// <summary> /// Default constructor. /// </summary> public QuestItem() { _completed = false; _type = QuestType.item; _value = 0; ++_count; }
public Quest(string name, int id, string desc, QuestType type) { questName = name; questID = id; questDesc = desc; questType = type; }
internal static string GetString(QuestType type) { switch (type) { case QuestType.SOCIAL_WAVE: return "WAVE"; case QuestType.SOCIAL_DANCE: return "DANCE"; case QuestType.SOCIAL_RESPECT: return "GIVE_RESPECT"; case QuestType.SOCIAL_FRIEND: return "REQUEST_FRIEND"; case QuestType.SOCIAL_CHAT: return "CHAT_WITH_SOMEONE"; case QuestType.SOCIAL_VISIT: return "ENTER_OTHERS_ROOM"; case QuestType.PROFILE_BADGE: return "WEAR_BADGE"; case QuestType.PROFILE_CHANGE_MOTTO: return "CHANGE_MOTTO"; case QuestType.PROFILE_CHANGE_LOOK: return "CHANGE_FIGURE"; case QuestType.FURNI_DECORATION_WALL: return "PLACE_WALLPAPER"; case QuestType.FURNI_DECORATION_FLOOR: return "PLACE_FLOOR"; case QuestType.FURNI_STACK: return "STACK_ITEM"; case QuestType.FURNI_SWITCH: return "SWITCH_ITEM_STATE"; case QuestType.FURNI_PICK: return "PICKUP_ITEM"; case QuestType.FURNI_PLACE: return "PLACE_ITEM"; case QuestType.FURNI_ROTATE: return "ROTATE_ITEM"; case QuestType.FURNI_MOVE: return "MOVE_ITEM"; default: case QuestType.EXPLORE_FIND_ITEM: return "FIND_STUFF"; } }
public void SetQuestIconType(QuestType _questType) { // begin kij 2013-10-02 if( true== m_isUseEvent) { DisableAllIcon(); return; } // end kij 2013-10-02 if (_questType == QuestType.QUEST_DAILY || _questType == QuestType.QUEST_MAIN || _questType == QuestType.QUEST_NPC_DAILY || _questType == QuestType.QUEST_FIELD || _questType == QuestType.QUEST_BOSS || _questType == QuestType.QUEST_PVP) { nowQuestType = _questType; DisableAllIcon(); if (_questType == QuestType.QUEST_MAIN) icons[0].gameObject.SetActive(true); else if (_questType == QuestType.QUEST_FIELD) icons[1].gameObject.SetActive(true); else if (_questType == QuestType.QUEST_DAILY) icons[2].gameObject.SetActive(true); else if (_questType == QuestType.QUEST_BOSS) icons[3].gameObject.SetActive(true); else if (_questType == QuestType.QUEST_PVP) icons[4].gameObject.SetActive(true); else if (_questType == QuestType.QUEST_NPC_DAILY) icons[5].gameObject.SetActive(true); } }
internal ProgressInfo(int rpID, QuestType rpResetType, QuestState rpState, int rpProgress, DateTimeOffset rpUpdateTime) { Quest = QuestProgressService.Instance.Infos[rpID]; ResetType = rpResetType; r_State = rpState; r_Progress = rpProgress; UpdateTime = rpUpdateTime; }
internal void ProgressUserQuest(GameClient Session, QuestType QuestType, uint EventData = 0) { if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentQuestId <= 0) return; Quest UserQuest = GetQuest(Session.GetHabbo().CurrentQuestId); if (UserQuest == null || UserQuest.GoalType != QuestType) return; int CurrentProgress = Session.GetHabbo().GetQuestProgress(UserQuest.Id); int NewProgress = CurrentProgress; bool PassQuest = false; switch (QuestType) { default: NewProgress++; if (NewProgress >= UserQuest.GoalData) PassQuest = true; break; case QuestType.EXPLORE_FIND_ITEM: if (EventData != UserQuest.GoalData) return; NewProgress = (int)UserQuest.GoalData; PassQuest = true; break; } using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE user_quests SET progress = " + NewProgress + " WHERE user_id = " + Session.GetHabbo().Id + " AND quest_id = " + UserQuest.Id); if (PassQuest) dbClient.runFastQuery("UPDATE users SET currentquestid = 0 WHERE id = " + Session.GetHabbo().Id); } Session.GetHabbo().quests[Session.GetHabbo().CurrentQuestId] = NewProgress; Session.SendMessage(QuestStartedComposer.Compose(Session, UserQuest)); if (PassQuest) { Session.GetHabbo().CurrentQuestId = 0; Session.GetHabbo().LastCompleted = UserQuest.Id; Session.SendMessage(QuestCompletedComposer.Compose(Session, UserQuest)); Session.GetHabbo().ActivityPoints += UserQuest.Reward; Session.GetHabboDataContainer().UpdateActivityPointsBalance(); GetList(Session, null); } }
public Quest(string QuestInstructions,string RewardText, Item RequiredItem, Item RewardItem, QuestType type, bool ActiveQuest) { _QuestInstructions = QuestInstructions; _RewardText = RewardText; _RequiredItem = RequiredItem; _RewardItem = RewardItem; _QuestType = type; _QuestCompleted = false; _ActiveQuest = ActiveQuest; }
public Quest(string QuestInstructions,string RewardText, GameObject QuestObjective, int Gold, QuestType type, bool ActiveQuest) { _QuestInstructions = QuestInstructions; _RewardText = RewardText; _QuestObjective = QuestObjective; _Gold = Gold; _QuestType = type; _QuestCompleted = false; _ActiveQuest = ActiveQuest; }
public static QuestStep makeStep(string description, QuestType questType, int targetID, int count, int awardEXP, int awardMoney) { QuestStep step; step.description = description; step.questType = questType; step.count = count; step.targetID = targetID; step.award = new Award() { EXP = awardEXP, money = awardMoney, itemID = -1 }; return step; }
public Quest(QuestType type,string questname ,string qGivingDialog, string onQuestDialog, string qReturningDialog, GameObject takenFrom, GameObject ship, GameObject planet) { questType = type; questName = questname; questGivingDialog = qGivingDialog; questOnDialog = onQuestDialog; questReturningDialog = qReturningDialog; takenFromNPC = takenFrom.GetComponent<NPC> (); focusedShip = ship; planetOfAction = planet; }
public Quest(uint Id, string Category, int Number, QuestType GoalType, uint GoalData, string Name, int Reward, string DataBit) { mId = Id; mCategory = Category; mSeriesNumber = Number; mGoalType = GoalType; mGoalData = GoalData; mName = Name; mReward = Reward; mDataBit = DataBit; }
public Quest(uint Id, string Category, int Number, QuestType GoalType, uint GoalData, string Name, int Reward, string DataBit) { this.Id = Id; this.Category = Category; this.Number = Number; this.GoalType = GoalType; this.GoalData = GoalData; this.Name = Name; this.Reward = Reward; this.DataBit = DataBit; }
/// <summary> /// Initializes a new instance of the <see cref="Quest" /> class. /// </summary> /// <param name="id">The identifier.</param> /// <param name="category">The category.</param> /// <param name="number">The number.</param> /// <param name="goalType">Type of the goal.</param> /// <param name="goalData">The goal data.</param> /// <param name="name">The name.</param> /// <param name="reward">The reward.</param> /// <param name="dataBit">The data bit.</param> /// <param name="rewardType">Type of the reward.</param> /// <param name="timeUnlock">The time unlock.</param> /// <param name="timeLock">The time lock.</param> public Quest(int id, string category, int number, QuestType goalType, uint goalData, string name, int reward, string dataBit, int rewardType, int timeUnlock, int timeLock) { Id = id; Category = category; Number = number; GoalType = goalType; GoalData = goalData; Name = name; Reward = reward; DataBit = dataBit; RewardType = rewardType; TimeUnlock = timeUnlock; HasEnded = timeLock >= Yupi.GetUnixTimeStamp() && timeLock > 0; }
internal ProgressInfo(int rpID, QuestType rpResetType, QuestState rpState, int rpProgress, DateTimeOffset rpUpdateTime) { QuestInfo rQuest; if (QuestProgressService.Instance.Infos.TryGetValue(rpID, out rQuest)) Quest = rQuest; else Quest = new QuestInfo(rpID); r_ResetType = rpResetType; r_State = rpState; r_Progress = rpProgress; UpdateTime = rpUpdateTime; }
public QuestItem(int id, QuestType type, string name, bool isTracking, DateTime start, string processStorage) { Id = id; Name = name; IsTracking = isTracking; Type = type; TrackingStart = start; ProcessStorageString = processStorage; }
public Quest(uint Id, string Category, int Number, QuestType GoalType, uint GoalData, string Name, int Reward, string DataBit, int RewardType, int TimeUnlock, int TimeLock) { this.Id = Id; this.Category = Category; this.Number = Number; this.GoalType = GoalType; this.GoalData = GoalData; this.Name = Name; this.Reward = Reward; this.DataBit = DataBit; this.RewardType = RewardType; this.TimeUnlock = TimeUnlock; this.HasEnded = (TimeLock >= MercuryEnvironment.GetUnixTimestamp() && TimeLock > 0); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_Type = (QuestType)reader.ReadInt(); break; } } }
/// <summary> /// Check's whether the Player meets requirements and processes from there. /// </summary> /// <param name="QuestGiverName"></param> /// <param name="player"></param> /// <param name="type"></param> public void CheckQuest(string QuestGiverName, Player player, QuestType type) { if (QuestGiverName != player.QuestNPCName) throw new QuestKicker(); //[TODO] More checks //[TODO] More Quest crap switch (type) { case QuestType.NO_QUEST: case QuestType.SLIME_QUEST: case QuestType.CRAFTING_QUEST: case QuestType.MINING_QUEST: case QuestType.TRANSFORMATION: case QuestType.ALCHEMIST_1: case QuestType.ALCHEMIST_2: case QuestType.ALCHEMIST_3: case QuestType.TINKERER_1: case QuestType.DARK_MAGE_1: case QuestType.DARK_MAGE_2: case QuestType.PALADIN_1: case QuestType.PALADIN_2: case QuestType.QUESTS_END: break; case QuestType.TINKERER_2: QuestActions.Tinkerer_2(player); break; case QuestType.TINKERER_3: QuestActions.Tinkerer_3(player); break; case QuestType.TINKERER_4: QuestActions.Tinkerer_4(player); break; case QuestType.DARK_MAGE_3: QuestActions.Dark_Mage_3(player); break; case QuestType.DARK_MAGE_4: QuestActions.Dark_Mage_4(player); break; case QuestType.PALADIN_3: QuestActions.Paladin_3(player); break; } }
public FragmentCrystal( QuestType type, int amount ) : base( 0xF8E ) { m_Type = type; Name = "a fragment crystal of " + type; switch ( type ) { case QuestType.Shame: Hue = 0x58F; break; case QuestType.Deceit: Hue = 0x7DA; break; case QuestType.Destard: Hue = 0x455; break; case QuestType.Hythloth: Hue = 0x482; break; case QuestType.Despise: Hue = 0x4E2; break; case QuestType.Covetous: Hue = 0x4D3; break; case QuestType.Wrong: Hue = 0x655; break; } Stackable = true; Weight = 1.0; Amount = amount; }
public QuestInfo(BinaryReader reader) { Index = reader.ReadInt32(); Name = reader.ReadString(); Group = reader.ReadString(); FileName = reader.ReadString(); RequiredMinLevel = reader.ReadInt32(); if (Envir.LoadVersion >= 38) { RequiredMaxLevel = reader.ReadInt32(); if (RequiredMaxLevel == 0) RequiredMaxLevel = byte.MaxValue; } RequiredQuest = reader.ReadInt32(); RequiredClass = (RequiredClass)reader.ReadByte(); Type = (QuestType)reader.ReadByte(); GotoMessage = reader.ReadString(); KillMessage = reader.ReadString(); ItemMessage = reader.ReadString(); if(Envir.LoadVersion >= 37) FlagMessage = reader.ReadString(); LoadInfo(); }
public void AcceptQuest(int questID, QuestType questType) { for (int i = 0; i < questList.Count; i++) { switch (questType) { case QuestType.MAIN: if (questList[i].quest.id == questID && questList[i].progress == QuestProgress.AVAILABLE) { if (currentQuests.mainQuest.quest == null) { currentQuests.mainQuest = questList[i]; questList[i].progress = QuestProgress.ACCEPTED; } else { Debug.Log("Quest : " + questList[i].quest.questType + " in Progress"); return; } } break; case QuestType.SIDE: if (questList[i].quest.id == questID && questList[i].progress == QuestProgress.AVAILABLE) { if (currentQuests.sideQuest.quest == null) { currentQuests.sideQuest = questList[i]; questList[i].progress = QuestProgress.ACCEPTED; } else { Debug.Log("Quest : " + questList[i].quest.questType + " in Progress"); return; } } break; case QuestType.MISSION: if (questList[i].quest.id == questID && questList[i].progress == QuestProgress.AVAILABLE) { if (currentQuests.missionQuest.quest == null) { currentQuests.missionQuest = questList[i]; questList[i].progress = QuestProgress.ACCEPTED; } else { Debug.Log("Quest : " + questList[i].quest.questType + " in Progress"); return; } } break; case QuestType.NONE: break; default: break; } } }
public static byte[] Build(QuestType quest) { return new byte[] { 0x58, ((byte) quest), ((byte) (((ushort) quest) >> 8)) }; }
/// <summary> /// Gets the string. /// </summary> /// <param name="type">The type.</param> /// <returns>System.String.</returns> internal static string GetString(QuestType type) { switch (type) { case QuestType.FurniMove: return "MOVE_ITEM"; case QuestType.FurniRotate: return "ROTATE_ITEM"; case QuestType.FurniPlace: return "PLACE_ITEM"; case QuestType.FurniPick: return "PICKUP_ITEM"; case QuestType.FurniSwitch: return "SWITCH_ITEM_STATE"; case QuestType.FurniStack: return "STACK_ITEM"; case QuestType.FurniDecorationFloor: return "PLACE_FLOOR"; case QuestType.FurniDecorationWall: return "PLACE_WALLPAPER"; case QuestType.SocialVisit: return "ENTER_OTHERS_ROOM"; case QuestType.SocialChat: return "CHAT_WITH_SOMEONE"; case QuestType.SocialFriend: return "REQUEST_FRIEND"; case QuestType.SocialRespect: return "GIVE_RESPECT"; case QuestType.SocialDance: return "DANCE"; case QuestType.SocialWave: return "WAVE"; case QuestType.ProfileChangeLook: return "CHANGE_FIGURE"; case QuestType.ProfileChangeMotto: return "CHANGE_MOTTO"; case QuestType.ProfileBadge: return "WEAR_BADGE"; case QuestType.SummerEnterRoom: return "ENTER_ROOM"; case QuestType.AddFriends: return "add_25_friends"; case QuestType.WaveUsers: return "wave_10_users"; } return "FIND_STUFF"; }
// Quest Type Find public Location(GameObject _target, QuestType type = QuestType.Camera) { questType = QuestType.Camera; target = _target; }
// Methods public CloseQuest(byte[] data) : base(data) { this.quest = (QuestType) BitConverter.ToUInt16(data, 1); }
public static string GetQuestMessage(this QuestType type, int target) { switch (type) { case QuestType.AddFriend: return($"Add {target} Friends"); case QuestType.AutoComplete: return($"Autocomplete"); case QuestType.BadgeRank: return($"Get {target} Badge(s)"); case QuestType.CatchPokemon: return($"Catch {target} Pokemon"); case QuestType.CompleteBattle: return($"Complete {target} Battles"); case QuestType.CompleteGymBattle: return($"Complete {target} Gym Battles"); case QuestType.CompleteQuest: return($"Complete {target} Quests"); case QuestType.CompleteRaidBattle: return($"Complete {target} Raid Battles"); case QuestType.EvolveIntoPokemon: return($"Evolve {target} Into Specific Pokemon"); case QuestType.EvolvePokemon: return($"Evolve {target} Pokemon"); case QuestType.FavoritePokemon: return($"Favorite {target} Pokemon"); case QuestType.FirstCatchOfTheDay: return($"Catch first Pokemon of the day"); case QuestType.FirstPokestopOfTheDay: return($"Spin first pokestop of the day"); case QuestType.GetBuddyCandy: return($"Earn {target} candy walking with your buddy"); case QuestType.HatchEgg: return($"Hatch {target} Eggs"); case QuestType.JoinRaid: return($"Join {target} Raid Battles"); case QuestType.LandThrow: return($"Land {target} Throws"); case QuestType.MultiPart: return("Multi Part Quest"); case QuestType.PlayerLevel: return($"Reach level {target}");; case QuestType.SendGift: return($"Send {target} Gifts"); case QuestType.SpinPokestop: return($"Spin {target} Pokestops"); case QuestType.TradePokemon: return($"Trade {target} Pokemon"); case QuestType.TransferPokemon: return($"Transfer {target} Pokemon"); case QuestType.UpgradePokemon: return($"Power up {target} Pokemon"); case QuestType.UseBerryInEncounter: return($"Use {target} Berries on Pokemon"); case QuestType.CompleteCombat: return($"Complete {target} Combat(s)"); case QuestType.TakeSnapshot: return($"Take {target} Snapshot(s)"); case QuestType.BattleTeamRocket: return($"Battle {target} Team Rocket Battle(s)"); case QuestType.PurifyPokemon: return($"Purify {target} Pokemon"); case QuestType.Unknown: return($"Unknown"); } return(type.ToString()); }
public void ProgressUserQuest(GameClient Session, QuestType QuestType, int EventData = 0) { if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().GetStats().QuestID <= 0) { return; } Quest UserQuest = GetQuest(Session.GetHabbo().GetStats().QuestID); if (UserQuest == null || UserQuest.GoalType != QuestType) { return; } int CurrentProgress = Session.GetHabbo().GetQuestProgress(UserQuest.Id); int NewProgress = CurrentProgress; bool PassQuest = false; switch (QuestType) { default: NewProgress++; if (NewProgress >= UserQuest.GoalData) { PassQuest = true; } break; case QuestType.EXPLORE_FIND_ITEM: if (EventData != UserQuest.GoalData) { return; } NewProgress = Convert.ToInt32(UserQuest.GoalData); PassQuest = true; break; case QuestType.STAND_ON: if (EventData != UserQuest.GoalData) { return; } NewProgress = Convert.ToInt32(UserQuest.GoalData); PassQuest = true; break; case QuestType.XMAS_PARTY: NewProgress++; if (NewProgress == UserQuest.GoalData) { PassQuest = true; } break; case QuestType.GIVE_ITEM: if (EventData != UserQuest.GoalData) { return; } NewProgress = Convert.ToInt32(UserQuest.GoalData); PassQuest = true; break; } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_quests` SET `progress` = '" + NewProgress + "' WHERE `user_id` = '" + Session.GetHabbo().Id + "' AND `quest_id` = '" + UserQuest.Id + "' LIMIT 1"); if (PassQuest) { dbClient.RunQuery("UPDATE `user_stats` SET `quest_id` = '0' WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); } } Session.GetHabbo().quests[Session.GetHabbo().GetStats().QuestID] = NewProgress; Session.SendMessage(new QuestStartedComposer(Session, UserQuest)); if (PassQuest) { Session.GetHabbo().GetMessenger().BroadcastAchievement(Session.GetHabbo().Id, Users.Messenger.MessengerEventTypes.QUEST_COMPLETED, UserQuest.Category + "." + UserQuest.Name); Session.GetHabbo().GetStats().QuestID = 0; Session.GetHabbo().QuestLastCompleted = UserQuest.Id; Session.SendMessage(new QuestCompletedComposer(Session, UserQuest)); Session.GetHabbo().Duckets += UserQuest.Reward; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, UserQuest.Reward)); GetList(Session, null); } }
public static void ProgressUserQuest(Session Session, QuestType QuestType, uint EventData = 0) { if (Session.QuestCache.CurrentQuestId <= 0) { return; } Quest UserQuest = GetQuest(Session.QuestCache.CurrentQuestId); if (UserQuest == null || UserQuest.GoalType != QuestType) { return; } int CurrentProgress = Session.QuestCache.GetQuestProgress(UserQuest.Id); int NewProgress = CurrentProgress; bool PassQuest = false; switch (QuestType) { default: NewProgress++; if (NewProgress >= UserQuest.GoalData) { PassQuest = true; } break; case QuestType.EXPLORE_FIND_ITEM: if (EventData != UserQuest.GoalData) { return; } NewProgress = (int)UserQuest.GoalData; PassQuest = true; break; } using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { Session.QuestCache.AddOrUpdateData(MySqlClient, UserQuest.Id, NewProgress, !PassQuest); if (PassQuest) { Session.CharacterInfo.UpdateActivityPointsBalance(MySqlClient, UserQuest.Reward); Quest NextQuest = GetNextQuestInSeries(UserQuest.Category, UserQuest.Number + 1); if (NextQuest != null) { Session.QuestCache.AddOrUpdateData(MySqlClient, NextQuest.Id, 0, true); } } } Session.SendData(QuestStartedComposer.Compose(Session, UserQuest)); if (PassQuest) { Session.SendData(QuestCompletedComposer.Compose(Session, UserQuest)); Session.SendData(ActivityPointsBalanceComposer.Compose(Session.CharacterInfo.ActivityPointsBalance, UserQuest.Reward)); GetList(Session, null); Session.MessengerFriendCache.BroadcastToFriends(MessengerFriendEventComposer.Compose(Session.CharacterId, MessengerFriendEventType.QuestCompleted, UserQuest.Category + "." + UserQuest.QuestName)); } }
// Quest Type Act // _equipment : 장착 혹은 사용할 장비의 이름 name[questId] // _isEquipment : 해당 포인트가 장비를 장착하는 포인트인가(장비가 준비되어야 하는 포인트인가) public Location(Vector3 _position, GameObject _equipment, bool _isEquipPoint = false, QuestType type = QuestType.Act) { questType = QuestType.Act; position = _position; if (_isEquipPoint) { _equipment.transform.position = position; } target = _equipment; isEquipPoint = _isEquipPoint; }
public Quest(Character npc, QuestImportance importance, QuestType type) { this.npc = npc; this.importance = importance; }
public QuestSystem(string name, string file, string target, string address, string desc, string cat, int cash, int rep, QuestType type) { Name = name; File = file; Target = target; Address = address; Desc = desc; Cat = cat; Cash = cash; Rep = rep; Type = type; }
public static string GetString(QuestType type) { switch (type) { case QuestType.SOCIAL_WAVE: return("WAVE"); case QuestType.SOCIAL_DANCE: return("DANCE"); case QuestType.SOCIAL_RESPECT: return("GIVE_RESPECT"); case QuestType.SOCIAL_FRIEND: return("REQUEST_FRIEND"); case QuestType.SOCIAL_CHAT: return("CHAT_WITH_SOMEONE"); case QuestType.SOCIAL_VISIT: return("ENTER_OTHERS_ROOM"); case QuestType.PROFILE_BADGE: return("WEAR_BADGE"); case QuestType.PROFILE_CHANGE_MOTTO: return("CHANGE_MOTTO"); case QuestType.PROFILE_CHANGE_LOOK: return("CHANGE_FIGURE"); case QuestType.FURNI_DECORATION_WALL: return("PLACE_WALLPAPER"); case QuestType.FURNI_DECORATION_FLOOR: return("PLACE_FLOOR"); case QuestType.FURNI_STACK: return("STACK_ITEM"); case QuestType.FURNI_SWITCH: return("SWITCH_ITEM_STATE"); case QuestType.FURNI_PICK: return("PICKUP_ITEM"); case QuestType.FURNI_PLACE: return("PLACE_ITEM"); case QuestType.FURNI_ROTATE: return("ROTATE_ITEM"); case QuestType.FURNI_MOVE: return("MOVE_ITEM"); case QuestType.SUMMER_ENTER_ROOM: return("ENTER_ROOM"); case QuestType.ADD_FRIENDS: return("add_25_friends"); case QuestType.WAVE_USERS: return("wave_10_users"); default: case QuestType.EXPLORE_FIND_ITEM: return("FIND_STUFF"); } }
public override void ChildDeserialize(GenericReader reader) { int version = reader.ReadEncodedInt(); m_Type = (QuestType)reader.ReadInt(); }
internal void ProgressUserQuest(GameClient Session, QuestType QuestType, uint EventData = 0) { if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentQuestId <= 0) { return; } Quest UserQuest = GetQuest(Session.GetHabbo().CurrentQuestId); if (UserQuest == null || UserQuest.GoalType != QuestType) { return; } int CurrentProgress = Session.GetHabbo().GetQuestProgress(UserQuest.Id); int NewProgress = CurrentProgress; bool PassQuest = false; switch (QuestType) { default: NewProgress++; if (NewProgress >= UserQuest.GoalData) { PassQuest = true; } break; case QuestType.EXPLORE_FIND_ITEM: if (EventData != UserQuest.GoalData) { return; } NewProgress = (int)UserQuest.GoalData; PassQuest = true; break; } using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE user_quests SET progress = " + NewProgress + " WHERE user_id = " + Session.GetHabbo().Id + " AND quest_id = " + UserQuest.Id); if (PassQuest) { dbClient.runFastQuery("UPDATE users SET currentquestid = 0 WHERE id = " + Session.GetHabbo().Id); //Quest NextQuest = GetNextQuestInSeries(UserQuest.Category, UserQuest.Number + 1); //if (NextQuest != null) // dbClient.runFastQuery("INSERT INTO user_quests (user_id, quest_id, progress) VALUES (" + Session.GetHabbo().Id + ", " + NextQuest.Id + ", 0)"); } } Session.GetHabbo().quests[Session.GetHabbo().CurrentQuestId] = NewProgress; Session.SendMessage(QuestStartedComposer.Compose(Session, UserQuest)); if (PassQuest) { Session.GetHabbo().CurrentQuestId = 0; Session.GetHabbo().LastCompleted = UserQuest.Id; Session.SendMessage(QuestCompletedComposer.Compose(Session, UserQuest)); Session.GetHabbo().ActivityPoints += UserQuest.Reward; Session.GetHabbo().UpdateActivityPointsBalance(false); GetList(Session, null); } }
public void ProgressUserQuest(GameClient session, QuestType type, int data = 0) { if (session == null || session.GetHabbo() == null || session.GetHabbo().GetStats().QuestId <= 0) { return; } Quest quest = GetQuest(session.GetHabbo().GetStats().QuestId); if (quest == null || quest.GoalType != type) { return; } int currentProgress = session.GetHabbo().GetQuestProgress(quest.Id); int totalProgress = currentProgress; bool completeQuest = false; switch (type) { default: totalProgress++; if (totalProgress >= quest.GoalData) { completeQuest = true; } break; case QuestType.ExploreFindItem: if (data != quest.GoalData) { return; } totalProgress = Convert.ToInt32(quest.GoalData); completeQuest = true; break; case QuestType.StandOn: if (data != quest.GoalData) { return; } totalProgress = Convert.ToInt32(quest.GoalData); completeQuest = true; break; case QuestType.XmasParty: totalProgress++; if (totalProgress == quest.GoalData) { completeQuest = true; } break; case QuestType.GiveItem: if (data != quest.GoalData) { return; } totalProgress = Convert.ToInt32(quest.GoalData); completeQuest = true; break; } using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_quests` SET `progress` = '" + totalProgress + "' WHERE `user_id` = '" + session.GetHabbo().Id + "' AND `quest_id` = '" + quest.Id + "' LIMIT 1"); if (completeQuest) { dbClient.RunQuery("UPDATE `user_stats` SET `quest_id` = '0' WHERE `id` = '" + session.GetHabbo().Id + "' LIMIT 1"); } } session.GetHabbo().quests[session.GetHabbo().GetStats().QuestId] = totalProgress; session.SendPacket(new QuestStartedComposer(session, quest)); if (completeQuest) { session.GetHabbo().GetMessenger().BroadcastAchievement(session.GetHabbo().Id, Users.Messenger.MessengerEventTypes.QuestCompleted, quest.Category + "." + quest.Name); session.GetHabbo().GetStats().QuestId = 0; session.GetHabbo().QuestLastCompleted = quest.Id; session.SendPacket(new QuestCompletedComposer(session, quest)); session.GetHabbo().Duckets += quest.Reward; session.SendPacket(new HabboActivityPointNotificationComposer(session.GetHabbo().Duckets, quest.Reward)); GetList(session, null); } }
public static string GetQuestMessage(this QuestType type, int target) { return(Translator.Instance.Translate("quest_" + Convert.ToInt32(type), target)); }
public Quest CreateQuest(QuestType type) { return(CreateQuest(type, Game.instance.GetPlayerProfile().GetCustomSpawnPoint())); }
public void ShowIcon(Player player, Npc npc, bool force = false) { if (!npc.NpcTemplate.IsVillager) { return; } QuestType questType = QuestType.Guild; QuestStatusIcon icon = QuestStatusIcon.None; //Rewards { bool isReward = false; foreach (var data in player.Quests) { if (npc.NpcTemplate.FullId == Quests[data.Key].TryGetRewardNpc(player)) { if (Data.Data.Quests[data.Key].Type < questType) { questType = Data.Data.Quests[data.Key].Type; isReward = true; if (questType == 0) { break; } } } } if (isReward) { switch (questType) { case QuestType.Mission: icon = QuestStatusIcon.RewardMissionQuest; break; case QuestType.Normal: icon = QuestStatusIcon.RewardNormalQuest; break; case QuestType.Guild: icon = QuestStatusIcon.RewardGuildQuest; break; } new SpNpcIcon(npc, icon, 1).Send(player.Connection); return; } } //Talk { bool isTalk = false; foreach (var data in player.Quests) { QStepDefault step = Quests[data.Key].GetNowStep(player); if (step == null) { continue; } List <int> villagers = step.GetParticipantVillagers(player); if (villagers.Count > 0 && npc.NpcTemplate.FullId == villagers[0]) { if (Data.Data.Quests[data.Key].Type < questType) { questType = Data.Data.Quests[data.Key].Type; isTalk = true; if (questType == 0) { break; } } } } if (isTalk) { switch (questType) { case QuestType.Mission: icon = QuestStatusIcon.ProgressMissionQuest; break; case QuestType.Normal: icon = QuestStatusIcon.ProgressNormalQuest; break; case QuestType.Guild: icon = QuestStatusIcon.ProgressGuildQuest; break; } new SpNpcIcon(npc, icon, 1).Send(player.Connection); return; } } //Start if (NpcStartQuests.ContainsKey(npc.NpcTemplate.FullId)) { bool isStart = false; for (int i = 0; i < NpcStartQuests[npc.NpcTemplate.FullId].Count; i++) { Quest quest = NpcStartQuests[npc.NpcTemplate.FullId][i]; if (player.Quests.ContainsKey(quest.QuestId)) { continue; } if (!quest.NeedClasses.Contains(player.PlayerData.Class)) { continue; } if (quest.NeedLevel > player.PlayerLevel) { continue; } isStart = true; if (quest.Type < questType) { questType = quest.Type; } if (questType == 0) { break; } } if (isStart) { switch (questType) { case QuestType.Mission: icon = QuestStatusIcon.MissionQuest; break; case QuestType.Normal: icon = QuestStatusIcon.NormalQuest; break; case QuestType.Guild: icon = QuestStatusIcon.GuildQuest; break; } } } if (icon != QuestStatusIcon.None) { new SpNpcIcon(npc, icon, 1).Send(player.Connection); } else if (force) { new SpNpcIcon(npc, 0, 0).Send(player.Connection); } }
public Quest(GameCore core, QuestType questType) : base(core) { _questType = questType; }
// Quest Type Wait public Location(Vector3 _position, Vector3 _rotation, float _waitTime, bool _isFailPossible, QuestType type = QuestType.Wait) { questType = QuestType.Wait; isFailPossible = _isFailPossible; position = _position; rotation = _rotation; waitTime = _waitTime; }
public static string GetString(QuestType type) { switch (type) { case QuestType.SocialWave: return("WAVE"); case QuestType.SocialDance: return("DANCE"); case QuestType.SocialRespect: return("GIVE_RESPECT"); case QuestType.SocialFriend: return("REQUEST_FRIEND"); case QuestType.SocialChat: return("CHAT_WITH_SOMEONE"); case QuestType.SocialVisit: return("ENTER_OTHERS_ROOM"); case QuestType.ProfileBadge: return("WEAR_BADGE"); case QuestType.ProfileChangeMotto: return("CHANGE_MOTTO"); case QuestType.ProfileChangeLook: return("CHANGE_FIGURE"); case QuestType.FurniDecorationWall: return("PLACE_WALLPAPER"); case QuestType.FurniDecorationFloor: return("PLACE_FLOOR"); case QuestType.FurniStack: return("STACK_ITEM"); case QuestType.FurniSwitch: return("SWITCH_ITEM_STATE"); case QuestType.FurniPick: return("PICKUP_ITEM"); case QuestType.FurniPlace: return("PLACE_ITEM"); case QuestType.FurniRotate: return("ROTATE_ITEM"); case QuestType.FurniMove: return("MOVE_ITEM"); case QuestType.SummerEnterRoom: return("ENTER_ROOM"); case QuestType.AddFriends: return("add_25_friends"); case QuestType.WaveUsers: return("wave_10_users"); default: case QuestType.ExploreFindItem: return("FIND_STUFF"); } }
public QuestRequirement(QuestType type = QuestType.None, int id = 0, int quantity = 0, Item item = null, int start = 0) { }
// **** public Quest(string name, QuestType type) { _name = name; _type = type; }
public AchCompleteQuest(QuestType _questType, int _mapID, int _count) { questType = _questType; mapID = _mapID; DestCount = count = _count; }
public Quest(QuestType i_type, byte subID) { type = i_type; subIndex = subID; crews = new List <Crew>(); completed = false; bool setByDefault = true; switch (i_type) { case QuestType.Progress: switch ((ProgressQuestID)subIndex) { case ProgressQuestID.Progress_HousesToMax: reward = 250; break; case ProgressQuestID.Progress_2Docks: reward = 500; break; case ProgressQuestID.Progress_2Storages: reward = 100; break; case ProgressQuestID.Progress_Tier2: reward = 120; break; case ProgressQuestID.Progress_300Population: reward = 100; break; case ProgressQuestID.Progress_OreRefiner: reward = 200; break; case ProgressQuestID.Progress_HospitalCoverage: reward = 240; break; case ProgressQuestID.Progress_Tier3: reward = 240; break; case ProgressQuestID.Progress_4MiniReactors: reward = 800; break; case ProgressQuestID.Progress_100Fuel: reward = 210; break; case ProgressQuestID.Progress_XStation: reward = 120; break; case ProgressQuestID.Progress_Tier4: reward = 480; break; case ProgressQuestID.Progress_CoveredFarm: reward = 200; break; case ProgressQuestID.Progress_CoveredLumbermill: reward = 200; break; case ProgressQuestID.Progress_Reactor: reward = 220; break; case ProgressQuestID.Progress_FirstExpedition: setByDefault = false; steps = new string[4]; stepsAddInfo = new string[4]; stepsFinished = new bool[4]; shuttlesRequired = 0; crewsRequired = 0; questLifeTimer = -1; questRealizationTimer = -1; reward = 400; break; case ProgressQuestID.Progress_Tier5: reward = 960; break; case ProgressQuestID.Progress_FactoryComplex: setByDefault = false; steps = new string[2]; stepsAddInfo = new string[2]; stepsFinished = new bool[2]; shuttlesRequired = 0; crewsRequired = 0; questLifeTimer = -1; questRealizationTimer = -1; reward = 960; break; case ProgressQuestID.Progress_SecondFloor: setByDefault = false; steps = new string[2]; stepsAddInfo = new string[2]; stepsFinished = new bool[2]; shuttlesRequired = 0; crewsRequired = 0; questLifeTimer = -1; questRealizationTimer = -1; reward = 420; break; } if (setByDefault) { steps = new string[1]; stepsAddInfo = new string[1]; stepsFinished = new bool[1]; shuttlesRequired = 0; crewsRequired = 0; questLifeTimer = -1; questRealizationTimer = -1; } Localization.FillProgressQuest(this); break; } canBeDelayed = true; }
public Quest(string QuestInstructions, string RewardText, Item RequiredItem, Item RewardItem, QuestType type, bool ActiveQuest) { _QuestInstructions = QuestInstructions; _RewardText = RewardText; _RequiredItem = RequiredItem; _RewardItem = RewardItem; _QuestType = type; _QuestCompleted = false; _ActiveQuest = ActiveQuest; }
private void ProcessQIKey(string key, int pos, string line, bool force = false) { Regex myRegex = null; MatchCollection mc = null; Match m = null; int j, k; switch (key) { case "level": if (force || Level < 1) { k = line.Length - 1; while (Char.IsDigit(line[k])) { k--; } Level = Helper.ParseInt(line.Substring(k + 1)); } break; case "requires": if (force || RequiredLevel < 1) { k = line.Length - 1; while (Char.IsDigit(line[k])) { k--; } Level = Helper.ParseInt(line.Substring(k + 1)); } break; case "loremaster": Loremaster = true; break; case "side": if (force || (int)Side == -1) { myRegex = new Regex(@"](?<side>\w+)\[", RegexOptions.Compiled); mc = myRegex.Matches(line); m = mc.Count > 0 ? mc[0] : null; if (m == null || !m.Success) { line = line.Substring(pos + 1).Trim(); } else { line = m.Groups["side"].Value; } Side _dside = (Wowhead.Side)(-1); if (!Enum.TryParse(line, true, out _dside)) { Helper.LogDebug("Can't parse QI Side[" + Id + "]:" + line); } else { Side = _dside; } } break; case "[icon": myRegex = new Regex(@"](?<key>\w+):\s*\[(url=/)?(?<type>\w*)=(?<id>\d+)]", RegexOptions.Compiled); mc = myRegex.Matches(line); m = mc.Count > 0 ? mc[0] : null; if (m == null || !m.Success) { Helper.LogDebug("Can't parse QI Icon[" + Id + "]:" + line); } Group gKey = m.Groups["key"]; CaptureCollection gTypeCap = m.Groups["type"].Captures; CaptureCollection gIdCap = m.Groups["id"].Captures; for (j = 0; j < gKey.Captures.Count; j++) { Capture c = gKey.Captures[j]; switch (c.Value.ToLower()) { case "start": QuestGiver = Helper.GetInteractEntity(Helper.ParseInt(gIdCap[j].Value), gTypeCap[j].Value); break; case "end": QuestTurnIn = Helper.GetInteractEntity(Helper.ParseInt(gIdCap[j].Value), gTypeCap[j].Value); break; default: Helper.LogDebug("Unknown QI line[" + Id + "]:" + line); break; } } break; case "not": line = line.Substring(3).Trim().ToLower(); if (line == "sharable") { Sharable = false; } else { Helper.LogDebug("Unknown sub 'not' key[" + Id + "]:" + line); } break; case "difficulty": myRegex = new Regex(@"r(?<d>\d)](?<level>\d+)\[", RegexOptions.Compiled); mc = myRegex.Matches(line); for (j = 0; j < mc.Count; j++) { if (!mc[j].Success) { Helper.LogDebug("Can't parse QI difficulty[" + Id + "]:" + line); } Group gIdx = mc[j].Groups["d"]; CaptureCollection gLevelCap = mc[j].Groups["level"].Captures; pos = Helper.ParseInt(gIdx.Captures[0].Value) - 1; Difficulty[pos] = Helper.ParseInt(gLevelCap[0].Value); } break; case "added": k = line.Length - 1; while (Char.IsDigit(line[k]) || line[k] == '.') { k--; } AddedIn = line.Substring(k + 1); break; case "type": string lt = line.Substring("Type:".Length).Trim(); QuestType qt = (QuestType)(-1); if (!Enum.TryParse(lt, out qt)) { Helper.LogDebug("Unknown QI Type [" + Id + "]:" + lt); } else if (force || Type == QuestType.Normal) { Type = qt; } break; case "race": case "races": if (force || _races == null) { myRegex = new Regex(@"=(?<id>\d+)", RegexOptions.Compiled); mc = myRegex.Matches(line); _races = new List <Race>(); for (j = 0; j < mc.Count; j++) { if (!mc[j].Success) { Helper.LogDebug("Can't parse QI Races[" + Id + "]:" + line); } _races.Add(Race.GetById(Helper.ParseInt(mc[j].Groups["id"].Captures[0].Value))); } } break; case "class": if (force || _classes == null) { myRegex = new Regex(@"=(?<id>\d+)", RegexOptions.Compiled); mc = myRegex.Matches(line); _classes = new List <wClass>(); for (j = 0; j < mc.Count; j++) { if (!mc[j].Success) { Helper.LogDebug("Can't parse QI Races[" + Id + "]:" + line); } _classes.Add(wClass.GetById(Helper.ParseInt(mc[j].Groups["id"].Captures[0].Value))); } } break; case "sharable": // by default - sharable break; default: Helper.LogDebug("Unknown key[" + Id + "]:" + key); break; } }
public void CompleteQuest(QuestType questType) // завершение квеста { quests.First(x => x.questType == questType).completed = true; }
public Quest(string QuestInstructions, string RewardText, GameObject QuestObjective, int Gold, QuestType type, bool ActiveQuest) { _QuestInstructions = QuestInstructions; _RewardText = RewardText; _QuestObjective = QuestObjective; _Gold = Gold; _QuestType = type; _QuestCompleted = false; _ActiveQuest = ActiveQuest; }
public static void WriteQuestType(this PacketWriter writer, QuestType data) { writer.WriteByte((byte)data); }
public CloseQuest(QuestType quest) : base(Build(quest)) { this.quest = quest; }
public static IList <QuestConfig> GetByType(QuestType type) { _typeConfigs.TryGetValue(type, out var result); return(result ?? ImmutableList <QuestConfig> .Empty); }
private bool IsTrackingAvailable(QuestType type, DateTime time) { // The quests are refreshed everyday/week at 5AM(UTC+9). // if we subtract the time by 5h, we can then say the refresh time is 0AM(UTC+4). // It will be easier to check the availibility. // One example is "United Arab Emirates Standard Time (ar-AE)": UTC+4, no daylight saving if (time == DateTime.MinValue) return false; var no = GetTokyoDateTime().AddHours(-5); time = time.AddHours(-5); switch (type) { case QuestType.OneTime: return true; case QuestType.Daily: return time.Date == no.Date; case QuestType.Weekly: var cal = CultureInfo.CreateSpecificCulture("ar-AE").Calendar; var w_time = cal.GetWeekOfYear(time, CalendarWeekRule.FirstDay, DayOfWeek.Monday); var w_now = cal.GetWeekOfYear(no, CalendarWeekRule.FirstDay, DayOfWeek.Monday); return w_time == w_now && time.Year == no.Year; case QuestType.Monthly: return time.Month == no.Month && time.Year == no.Year; default: return false; } }
/// <summary> /// Sets type of quest. /// </summary> /// <param name="type"></param> protected void SetType(QuestType type) { this.Type = type; }
public EventStartQuest(QuestType quest) : base(GameEventType.EVENT_START_QUEST) { this.quest = quest; }
public static string getQuestTypeStr(QuestType questType) { switch (questType) { case QuestType.Daily: return "每日"; case QuestType.Weekly: return "每周"; case QuestType.Main: return "主线"; case QuestType.All: default: return "普通"; } }
public Quest GetQuest(QuestType questType) //выдача квеста { return(quests.First(x => x.questType == questType)); }
public ClientQuestInfo(BinaryReader reader) { Index = reader.ReadInt32(); NPCIndex = reader.ReadUInt32(); Name = reader.ReadString(); Group = reader.ReadString(); int count = reader.ReadInt32(); for (int i = 0; i < count; i++) Description.Add(reader.ReadString()); count = reader.ReadInt32(); for (int i = 0; i < count; i++) TaskDescription.Add(reader.ReadString()); count = reader.ReadInt32(); for (int i = 0; i < count; i++) CompletionDescription.Add(reader.ReadString()); MinLevelNeeded = reader.ReadInt32(); MaxLevelNeeded = reader.ReadInt32(); QuestNeeded = reader.ReadInt32(); ClassNeeded = (RequiredClass)reader.ReadByte(); Type = (QuestType)reader.ReadByte(); RewardGold = reader.ReadUInt32(); RewardExp = reader.ReadUInt32(); RewardCredit = reader.ReadUInt32(); count = reader.ReadInt32(); for (int i = 0; i < count; i++ ) RewardsFixedItem.Add(new QuestItemReward(reader)); count = reader.ReadInt32(); for (int i = 0; i < count; i++) RewardsSelectItem.Add(new QuestItemReward(reader)); FinishNPCIndex = reader.ReadUInt32(); }
Quest GetRandomizedQuest() { Transform randomNpc = NPCManager.Instance.NPCs[Random.Range(0, NPCManager.Instance.NPCs.Count)].transform; StateMachine stateMachine = randomNpc.gameObject.GetComponent <StateMachine>(); int i = 0; while (stateMachine.CurrentState != NpcState.Happy) { randomNpc = NPCManager.Instance.NPCs[Random.Range(0, NPCManager.Instance.NPCs.Count)].transform; stateMachine = randomNpc.gameObject.GetComponent <StateMachine>(); i++; if (i == 100) { //Debug.LogError("Everyone is propably leaving"); return(null); } } QuestType typeOfQuest = (QuestType)RandomExtension.ChooseFromMultipleWeighted(new List <int> { (int)QuestType.GetSomething, (int)QuestType.ChangeMusic, (int)QuestType.ThrowTheTrashOut, (int)QuestType.Puking }, new List <int> { 55, 10, 25, 10 }); // Debug //typeOfQuest = QuestType.Puking; //typeOfQuest = QuestType.ThrowTheTrashOut; //typeOfQuest = QuestType.GetSomething; QuestState npcActiveQuest = randomNpc.gameObject.GetComponent <QuestState>(); while (typeOfQuest == QuestType.ChangeMusic && changeMusicQuestActive) { typeOfQuest = (QuestType)RandomExtension.ChooseFromMultipleWeighted(new List <int> { (int)QuestType.GetSomething, (int)QuestType.ChangeMusic, (int)QuestType.ThrowTheTrashOut, (int)QuestType.Puking }, new List <int> { 60, 10, 25, 5 }); } if (npcActiveQuest.ActiveQuest != null) { while (npcActiveQuest.ActiveQuest.TypeOfQuest == QuestType.Puking) { randomNpc = NPCManager.Instance.NPCs[Random.Range(0, NPCManager.Instance.NPCs.Count)].transform; i++; if (i == 100) { typeOfQuest = QuestType.GetSomething; break; } } } PickupableObjectType objType = PickupableObjectType.None; if (typeOfQuest == QuestType.GetSomething) { objType = (PickupableObjectType)RandomExtension.ChooseFromMultiple(new List <int> { (int)PickupableObjectType.Beer, (int)PickupableObjectType.Chips, (int)PickupableObjectType.Soda }); } else if (typeOfQuest == QuestType.ThrowTheTrashOut) { objType = PickupableObjectType.Trash; } else if (typeOfQuest == QuestType.ChangeMusic) { changeMusicQuestActive = true; } return(new Quest(typeOfQuest, timeBeforeQuestFail, objType, randomNpc)); }