Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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();
        }