Ejemplo n.º 1
0
        static bool HandleResetStatsOrLevelHelper(Player player)
        {
            ChrClassesRecord classEntry = CliDB.ChrClassesStorage.LookupByKey(player.GetClass());

            if (classEntry == null)
            {
                Log.outError(LogFilter.Server, "Class {0} not found in DBC (Wrong DBC files?)", player.GetClass());
                return(false);
            }

            PowerType powerType = classEntry.DisplayPower;

            // reset m_form if no aura
            if (!player.HasAuraType(AuraType.ModShapeshift))
            {
                player.SetShapeshiftForm(ShapeShiftForm.None);
            }

            player.setFactionForRace(player.GetRace());
            player.SetUInt32Value(UnitFields.DisplayPower, (uint)powerType);

            // reset only if player not in some form;
            if (player.GetShapeshiftForm() == ShapeShiftForm.None)
            {
                player.InitDisplayIds();
            }

            player.SetByteValue(UnitFields.Bytes2, UnitBytes2Offsets.PvpFlag, (byte)UnitBytes2Flags.PvP);

            player.SetUInt32Value(UnitFields.Flags, (uint)UnitFlags.PvpAttackable);

            //-1 is default value
            player.SetUInt32Value(ActivePlayerFields.WatchedFactionIndex, 0xFFFFFFFF);
            return(true);
        }
Ejemplo n.º 2
0
        static bool HandleResetStatsOrLevelHelper(Player player)
        {
            ChrClassesRecord classEntry = CliDB.ChrClassesStorage.LookupByKey(player.GetClass());

            if (classEntry == null)
            {
                Log.outError(LogFilter.Server, "Class {0} not found in DBC (Wrong DBC files?)", player.GetClass());
                return(false);
            }

            PowerType powerType = classEntry.DisplayPower;

            // reset m_form if no aura
            if (!player.HasAuraType(AuraType.ModShapeshift))
            {
                player.SetShapeshiftForm(ShapeShiftForm.None);
            }

            player.SetFactionForRace(player.GetRace());
            player.SetPowerType(powerType);

            // reset only if player not in some form;
            if (player.GetShapeshiftForm() == ShapeShiftForm.None)
            {
                player.InitDisplayIds();
            }

            player.SetPvpFlags(UnitPVPStateFlags.PvP);

            player.SetUnitFlags(UnitFlags.PlayerControlled);

            //-1 is default value
            player.SetWatchedFactionIndex(0xFFFFFFFF);
            return(true);
        }
Ejemplo n.º 3
0
                static bool HandleLearnAllMySpellsCommand(StringArguments args, CommandHandler handler)
                {
                    ChrClassesRecord classEntry = CliDB.ChrClassesStorage.LookupByKey(handler.GetSession().GetPlayer().GetClass());

                    if (classEntry == null)
                    {
                        return(true);
                    }
                    uint family = classEntry.SpellClassSet;

                    foreach (var entry in CliDB.SkillLineAbilityStorage.Values)
                    {
                        SpellInfo spellInfo = Global.SpellMgr.GetSpellInfo(entry.Spell);
                        if (spellInfo == null)
                        {
                            continue;
                        }

                        // skip server-side/triggered spells
                        if (spellInfo.SpellLevel == 0)
                        {
                            continue;
                        }

                        // skip wrong class/race skills
                        if (!handler.GetSession().GetPlayer().IsSpellFitByClassAndRace(spellInfo.Id))
                        {
                            continue;
                        }

                        // skip other spell families
                        if ((uint)spellInfo.SpellFamilyName != family)
                        {
                            continue;
                        }

                        // skip broken spells
                        if (!Global.SpellMgr.IsSpellValid(spellInfo, handler.GetSession().GetPlayer(), false))
                        {
                            continue;
                        }

                        handler.GetSession().GetPlayer().LearnSpell(spellInfo.Id, false);
                    }

                    handler.SendSysMessage(CypherStrings.CommandLearnClassSpells);
                    return(true);
                }