示例#1
0
 private static void Postfix(ActionBarManager __instance)
 {
     if (settings.toggleMakeSummmonsControllable && CombatController.IsInTurnBasedCombat())
     {
         Traverse.Create((object)__instance).Method("ShowTurnPanel", Array.Empty <object>()).GetValue();
     }
 }
示例#2
0
 //public Transform skillDetailPanel;
 private void Awake()
 {
     ABM      = GetComponentInChildren <ActionBarManager>();
     GC       = GetComponentInParent <GameController>();
     SDL      = GetComponentInChildren <SkillDetailsList>();
     GM       = GC.GM;
     GC.GM.BM = this;
     //
     SDGameManager.Instance.isUsingProp = true;
 }
 //private static bool Prepare(ActionBarManager __instance)
 //{
 //    bool hasCheckTurnPanelView = HasMethod(__instance, "CheckTurnPanelView");
 //    Main.logger.Log("Reached this point");
 //    return hasCheckTurnPanelView;
 //}
 private static void Postfix(ActionBarManager __instance)
 {
     Traverse.Create((object)__instance).Method("ShowTurnPanel", Array.Empty <object>()).GetValue();
 }
        /// <summary>
        ///
        /// </summary>
        internal bool SaveNewCreature()
        {
            XPQuery <CharacterBase> characters = new XPQuery <CharacterBase>(OneDatabase.Session);

            var characterList = from character in characters
                                where character.Oid == m_CharacterAccountGuid
                                select character;

            if (characterList.Count() > WOW_MAX_CHARACTER_COUNT)   // 人物过多
            {
                return(false);
            }

            CharacterBase newCharacter = new CharacterBase(OneDatabase.Session);

            this.Serial = newCharacter.Oid;
            newCharacter.CharacterName = this.Name;
            //newCharacter.Account = this.AccountGuid;
            newCharacter.Gender      = (byte)this.Gender;
            newCharacter.Skin        = (byte)this.Skin;
            newCharacter.Face        = (byte)this.Face;
            newCharacter.HairStyle   = (byte)this.HairColor;
            newCharacter.HairColor   = (byte)this.HairColor;
            newCharacter.FacialHair  = (byte)this.FacialHair;
            newCharacter.Race        = (byte)this.Race;
            newCharacter.Class       = (int)this.Class;
            newCharacter.Level       = (int)this.Level;
            newCharacter.MapId       = (int)this.MapId;
            newCharacter.ZoneId      = (int)this.ZoneId;
            newCharacter.PositionX   = this.X;
            newCharacter.PositionY   = this.Y;
            newCharacter.PositionZ   = this.Z;
            newCharacter.Orientation = this.O;
            newCharacter.Guild       = null;
            // 人物的坐骑航线标记点 32位值|32位值|32位值|32位值
            // 00000000000000000000000000000000|...|...|...
            // 以位域标示 1~TaxiId~32| 32~TaxiId~64|65~TaxiId~96|96~TaxiId~128
            newCharacter.TaxiMask     = this.TaxiMask;
            newCharacter.IsGhost      = false;
            newCharacter.IsCinematic  = false;
            newCharacter.IsNeedRename = false;
            newCharacter.TotalTime    = 0;
            newCharacter.LevelTime    = 0;
            newCharacter.LogoutTime   = DateTime.Now;
            newCharacter.CreatingTime = DateTime.Now;
            newCharacter.IsBanned     = false;
            newCharacter.IsDelete     = false;
            newCharacter.DeleteTime   = DateTime.Now;

            CharacterHomeBind newCharacterHomeBind = new CharacterHomeBind(OneDatabase.Session);

            //newCharacterHomeBind.Owner = newCharacter.Oid;
            newCharacterHomeBind.MapId     = (int)this.BindMapId;
            newCharacterHomeBind.ZoneId    = (int)this.BindZoneId;
            newCharacterHomeBind.PositionX = this.BindX;
            newCharacterHomeBind.PositionY = this.BindY;
            newCharacterHomeBind.PositionZ = this.BindZ;

            foreach (BaseSkill baseSkill in SkillManager.ToArray())
            {
                WowSkill wowSkill = baseSkill as WowSkill;
                if (wowSkill == null)
                {
                    continue;
                }

                if (wowSkill.Serial != 0)
                {
                    continue;
                }

                WowSkillTemplate wowSkillTemplate = wowSkill.SkillTemplate as WowSkillTemplate;
                if (wowSkillTemplate == null)
                {
                    continue;
                }

                CharacterSkill newCharactersSkill = new CharacterSkill(OneDatabase.Session);
                wowSkill.Serial = newCharactersSkill.Oid;

                //newCharactersSkill.Owner = newCharacter.Oid;
                newCharactersSkill.SkillId = wowSkillTemplate.Serial;
                newCharactersSkill.Value   = wowSkill.Level;
            }

            foreach (BaseSpell baseSpell in SpellManager.ToArray())
            {
                WowSpell wowSpell = baseSpell as WowSpell;
                if (wowSpell == null)
                {
                    continue;
                }

                if (wowSpell.Serial != 0)
                {
                    continue;
                }

                WowSpellTemplate wowSpellTemplate = baseSpell.SpellTemplate as WowSpellTemplate;
                if (wowSpellTemplate == null)
                {
                    continue;
                }

                CharacterSpell newCharacterSpell = new CharacterSpell(OneDatabase.Session);
                wowSpell.Serial = newCharacterSpell.Oid;

                //newCharacterSpell.Owner = newCharacter.Oid;
                newCharacterSpell.SpellId = wowSpellTemplate.Serial;
                //newCharacterSpell.Slot = baseSpell.Slot;
            }

            foreach (WowActionBar baseActionBar in ActionBarManager.ToArray())
            {
                WowActionBar wowActionBar = baseActionBar as WowActionBar;
                if (baseActionBar == null)
                {
                    continue;
                }

                if (wowActionBar.Serial != 0)
                {
                    continue;
                }

                CharacterActionBar newCharactersAction = new CharacterActionBar(OneDatabase.Session);
                wowActionBar.Serial = newCharactersAction.Oid;

                //newCharactersAction.Owner= newCharacter.Oid;
                newCharactersAction.Slot       = wowActionBar.ActionBarSlotId;
                newCharactersAction.ActionId   = wowActionBar.Action;
                newCharactersAction.ActionType = wowActionBar.Type;
            }

            foreach (BaseItem baseItem in BagManager.EquipmentBag.SubItemsToArray())
            {
                WowItem wowItem = baseItem as WowItem;
                if (wowItem == null)
                {
                    continue;
                }

                if (wowItem.Serial != 0)
                {
                    continue;
                }

                WowItemTemplate wowItemTemplate = wowItem.ItemTemplate as WowItemTemplate;
                if (wowItemTemplate == null)
                {
                    continue;
                }

                CharacterItem newCharactersItem = new CharacterItem(OneDatabase.Session);
                wowItem.Serial = newCharactersItem.Oid;

                //newCharactersItem.Owner = newCharacter.Oid;
                newCharactersItem.ItemTemplateGuid = (ulong)wowItemTemplate.Serial;
                newCharactersItem.Amount           = (int)wowItem.Amount;
                newCharactersItem.BagId            = (int)BagManager.EquipmentBag.Item.SlotId;
                newCharactersItem.SlotId           = (int)wowItem.SlotId;
            }

            foreach (WowReputation baseReputation in ReputationManager.ToArray())
            {
                WowReputation wowReputation = baseReputation as WowReputation;
                if (wowReputation == null)
                {
                    continue;
                }

                if (wowReputation.Serial != 0)
                {
                    continue;
                }

                CharacterReputation newCharacterReputation = new CharacterReputation(OneDatabase.Session);
                wowReputation.Serial = newCharacterReputation.Oid;

                //newCharacterReputation.Owner = newCharacter.Oid;
                newCharacterReputation.FactionId  = wowReputation.FactionId;
                newCharacterReputation.Reputation = wowReputation.Reputation;
                newCharacterReputation.Flag       = wowReputation.Flag;
            }

            return(true);
        }