internal static void Start(string name) { if (Started.ContainsKey(name)) { return; } Started.Add(name, dict[name]); if (dict[name].SHIZTaxPercent != null) { } }
public void Load() { foreach (Datum datum in new Datums("quests_started").Populate("CharacterID = {0}", Parent.ID)) { if (!Started.ContainsKey((ushort)datum["QuestID"])) { Started.Add((ushort)datum["QuestID"], new Dictionary<int, short>()); } if (datum["MobID"] != null && datum["Killed"] != null) { Started[(ushort)datum["QuestID"]].Add((int)datum["MobID"], ((short)datum["Killed"])); } } }
public void Start(Quest quest, int npcID) { Started.Add(quest.MapleID, new Dictionary<int, short>()); foreach (KeyValuePair<int, short> requiredKills in quest.PostRequiredKills) { Started[quest.MapleID].Add(requiredKills.Key, 0); } Parent.Stats.Experience += quest.ExperienceReward[0]; Parent.Stats.Fame += (short)quest.FameReward[0]; Parent.Stats.Meso += quest.MesoReward[0] * WvsGame.MesoRate; // TODO: Skill and pet rewards. foreach (KeyValuePair<int, short> item in quest.PreItemRewards) { if (item.Value > 0) { Parent.Items.AddItemToInventory(new Item(item.Key, item.Value)); // TODO: Quest items rewards are displayed in chat. } else if (item.Value < 0) { Parent.Items.RemoveItemFromInventoryByID(item.Key, Math.Abs(item.Value)); } } Update(quest.MapleID, QuestConstants.QuestStatus.InProgress); using (Packet oPacket = new Packet(ServerOperationCode.QuestResult)) { oPacket .WriteByte((byte)QuestConstants.QuestResult.Complete) .WriteUShort(quest.MapleID) .WriteInt(npcID) .WriteInt(); Parent.Client.Send(oPacket); } }
public void Start(QuestReference quest, int npcId, GameClient client) { Started.Add(quest.MapleId, new Dictionary <int, short>()); foreach (var requiredKills in quest.PostRequiredKills) { Started[quest.MapleId].Add(requiredKills.Key, 0); } Parent.PrimaryStats.Experience += quest.ExperienceReward[0]; Parent.PrimaryStats.Fame += (short)quest.FameReward[0]; Parent.PrimaryStats.Meso += quest.MesoReward[0] * client.Server.World.MesoRate; // TODO: Skill and pet rewards. foreach (var item in quest.PreItemRewards) { if (item.Value > 0) { Parent.Items.Add(new Item(item.Key, item.Value)); // TODO: Quest items rewards are displayed in chat. } else if (item.Value < 0) { Parent.Items.Remove(item.Key, Math.Abs(item.Value)); } } Update(quest.MapleId, QuestStatus.InProgress); // using (var pw = new PacketWriter(ServerOperationCode.QuestResult)) // { // pw.WriteByte((byte)QuestResult.Complete); // pw.Writeint(quest.MapleId); // pw.WriteInt(npcId); // pw.WriteInt(0); // // Parent.Send(pw); // } }