static void EventInitialize() { EventManager = new EventManagement(); EventManager .AddEvent(Events.Events.BloodCastle, new BloodCastles()) .AddEvent(Events.Events.DevilSquared, new DevilSquares()) .AddEvent(Events.Events.Kanturu, new Kanturu()) .AddEvent(Events.Events.ChaosCastle, new ChaosCastles()); LuckyCoins.Initialize(); EventChips.Initialize(); }
static void EventInitialize() { EventManager = new EventManagement(); EventManager .AddEvent(Events.Events.BloodCastle, new BloodCastles()) .AddEvent(Events.Events.DevilSquared, new DevilSquares()) .AddEvent(Events.Events.Kanturu, new Kanturu()) .AddEvent(Events.Events.ChaosCastle, new ChaosCastles()) .AddEvent(Events.Events.Crywolf, new Crywolf()) .AddEvent(Events.Events.ImperialGuardian, new ImperialGuardian()) //.AddEvent(Events.Events.DoubleGoer, new DoubleGoer()) ; LuckyCoins.Initialize(); EventChips.Initialize(); }
static void EventInitialize() { LuckyCoins.Initialize(); EventChips.Initialize(); BloodCastles.Initialize(); }
public async Task CTalk(GSSession session, CTalk message) { var npcs = ResourceCache.Instance.GetNPCs(); var ObjectIndex = message.Number.ShufleEnding(); var obj = MonstersMng.Instance.GetMonster(ObjectIndex); var @char = session.Player.Character; if (npcs.TryGetValue(obj.Info.Monster, out var npc)) { if (npc.Shop != null) { session.Player.Window = npc.Shop.Storage; await session.SendAsync(new STalk { Result = 0 }); await session.SendAsync(new SShopItemList(npc.Shop.Storage.GetInventory()) { ListType = 0 }); await session.SendAsync(new STax { Type = TaxType.Shop, Rate = 4 }); } else if (npc.Warehouse) { session.Player.Window = session.Player.Account.Vault; session.Player.Character.Inventory.Lock = true; await session.SendAsync(new SNotice(NoticeType.Blue, $"Active Vault: " + (session.Player.Account.ActiveVault + 1))); await session.SendAsync(new STalk { Result = 2 }); await session.SendAsync(new SShopItemList(session.Player.Account.Vault.GetInventory())); await session.SendAsync(new SWarehouseMoney(session.Player.Account.VaultMoney, session.Player.Character.Money)); } else if (npc.GuildMaster) { GuildManager.NPCTalk(session.Player); } else if (npc.EventChips) { EventChips.NPCTalk(session.Player); } else if (npc.MessengerAngel) { BloodCastles.MessengerAngelTalk(session.Player); } else if (npc.KingAngel) { BloodCastles.AngelKingTalk(session.Player); } else if (npc.Window != 0) { await session.SendAsync(new STalk { Result = npc.Window }); if (npc.Window == 3) // ChaosMachine { session.Player.Character.Inventory.Lock = true; session.Player.Window = session.Player.Character.Inventory.ChaosBox; } } else if (npc.Buff != 0) { @char.Spells.SetBuff((SkillStates)npc.Buff, TimeSpan.FromSeconds(120)); } else if (npc.Quest != 0xffff) { var quest = @char.Quests.Find(obj.Info.Monster); if (quest == null) { await session.SendAsync(new SChatTarget(ObjectIndex, "I don't have Quest for you")); return; } var details = quest.Details; Logger.ForAccount(session) .Information("Talk to QuestNPC: {0}, Found Quest:{1}, State:{2}", obj.Info.Name, details.Name, quest.State); await session.SendAsync(new SSetQuest { Index = (byte)quest.Index, State = quest.StateByte }); } } else { Logger.ForAccount(session) .Debug("Talk to unasigned NPC {0}", obj.Info.Monster); await session.SendAsync(new SChatTarget(ObjectIndex, "Have a good day")); } }