public override void Act(MapleCharacter chr, int questId) { switch (Type) { case QuestActionType.exp: //int: give exp chr.GainExp(Data, true, false); break; case QuestActionType.money: //int: mesars chr.Inventory.GainMesos(Data, false, true); break; case QuestActionType.buffItemID: //int: apply item effect to player //todo data = item id break; case QuestActionType.pop: //int: fame chr.AddFame(Data); break; case QuestActionType.nextQuest: //int: next quest in chain? check moopledev/v118 //todo break; case QuestActionType.willEXP: //int chr.AddTraitExp(Data, MapleCharacterStat.Will); break; case QuestActionType.senseEXP: //int chr.AddTraitExp(Data, MapleCharacterStat.Sense); break; case QuestActionType.insightEXP: //int chr.AddTraitExp(Data, MapleCharacterStat.Insight); break; case QuestActionType.craftEXP: //int chr.AddTraitExp(Data, MapleCharacterStat.Craft); break; case QuestActionType.charismaEXP: //int chr.AddTraitExp(Data, MapleCharacterStat.Charisma); break; case QuestActionType.charmEXP: //int chr.AddTraitExp(Data, MapleCharacterStat.Charm); break; } }
public static void Handle(MapleClient c, PacketReader pr) { int tickCount = pr.ReadInt(); short slot = pr.ReadShort(); int id = pr.ReadInt(); MapleCharacter chr = c.Account.Character; MapleItem item = chr.Inventory.GetItemSlotFromInventory(MapleInventoryType.Use, slot); if (item != null && item.ItemId == id) { WzConsume consume = DataBuffer.GetItemById(id) as WzConsume; if (consume != null) { chr.Inventory.RemoveItemsFromSlot(MapleInventoryType.Use, slot, 1, true); if (!chr.Map.PotionLimit) { if (consume.Hp != 0) { chr.AddHP((int)((chr.Stats.PotionEffectR / 100.0) * consume.Hp)); } if (consume.Mp != 0) { chr.AddMP((int)((chr.Stats.PotionEffectR / 100.0) * consume.Mp)); } if (consume.HpR != 0) { chr.AddHP((int)(chr.Stats.MaxHp * (consume.HpR / 100.0))); } if (consume.MpR != 0) { chr.AddMP((int)(chr.Stats.MaxMp * (consume.MpR / 100.0))); } } if (consume.MoveTo != 0 && !chr.Map.PortalScrollLimit) { chr.ChangeMap(consume.MoveTo); } if (consume.CharismaExp != 0) { chr.AddTraitExp(consume.CharismaExp, MapleCharacterStat.Charisma); } if (consume.CharmExp != 0) { chr.AddTraitExp(consume.CharmExp, MapleCharacterStat.Charm); } if (consume.CraftExp != 0) { chr.AddTraitExp(consume.CraftExp, MapleCharacterStat.Craft); } if (consume.InsightExp != 0) { chr.AddTraitExp(consume.InsightExp, MapleCharacterStat.Insight); } if (consume.SenseExp != 0) { chr.AddTraitExp(consume.SenseExp, MapleCharacterStat.Sense); } if (consume.WillExp != 0) { chr.AddTraitExp(consume.WillExp, MapleCharacterStat.Will); } return; } } chr.EnableActions(); }