Ejemplo n.º 1
0
        //初始化强化需求材料
        public void GetEquipEnchance(ItemEquip2 itemequip, CharacterController character, bool isMust = false)
        {
            var tbItem = Table.GetItemBase(itemequip.GetId());

            if (!isMust)
            {
                if (itemequip.GetExdata(22) != -1)
                {
                    return;
                }
                itemequip.MarkDirty();
            }
            Logger.Info("---GetEquipEnchance---Type={0},ItemId={1},Level={2}", tbItem.Type, itemequip.GetId(),
                        itemequip.GetExdata(0));
            //var tbEquip = Table.GetEquip(tbItem.Exdata[0]);
            var nNeedLevel = tbItem.UseLevel;
            //int nColor = tbItem.Color;
            var nLevel     = itemequip.GetExdata(0);
            var tbenchance = Table.GetEquipEnchance(nLevel);
            var tbladder   = Table.GetEquipEnchance(nNeedLevel);


            for (var i = 0; i != 6; ++i)
            {
                var nNewLevel = nNeedLevel + (RandomEquipLevel(tbladder) - 3) * 5;
                var nNewType  = RandomEquipType(tbenchance);
                var nNewColor = RandomEquipColor(tbenchance);
                //参数构造: 装备类型*10000 + 装备等级 * 10 + 颜色
                var nValue = GetEnchanceValue(nNewType, nNewLevel, nNewColor);
                itemequip.SetExdata(22 + i, nValue);
            }
        }
Ejemplo n.º 2
0
        public void InitByRobot(AutoPlayer _this, ulong npcId, int RobotId)
        {
            _this.mObjId        = npcId;
            _this.mLogicData    = new LogicSimpleData();
            _this.mLogicData.Id = (ulong)RobotId;
            //mSceneData = scene;
            var tbRobot = Table.GetJJCRoot(RobotId);

            _this.mTypeId = tbRobot.Career;
            //mTypeId = logic.TypeId;
            _this.mDirection = new Vector2(1, 0);
            _this.mName      = tbRobot.Name;
            _this.BuffList   = new BuffList();
            _this.BuffList.InitByBase(_this);
            _this.Attr  = new FightAttr(_this);
            _this.Skill = new SkillManager(_this);
            _this.SetLevel(tbRobot.Level);
            var lastLadder = 0;

            Table.ForeachTransmigration(record =>
            {
                if (record.TransLevel <= tbRobot.Level)
                {
                    if (record.PropPoint < lastLadder)
                    {
                        return(false);
                    }
                    lastLadder = record.PropPoint;
                }
                else
                {
                    return(false);
                }
                return(true);
            });
            _this.Attr.Ladder       = lastLadder;
            _this.mLogicData.Ladder = lastLadder;
            _this.InitTableData(tbRobot.Level);
            //InitEquip();
            if (tbRobot.EquipHand != -1)
            {
                var bagId  = 17;
                var dbitem = new ItemBaseData();
                var item   = new ItemEquip2(tbRobot.EquipHand, dbitem);
                item.SetExdata(0, tbRobot.EquipLevel);
                _this.Equip.Add(bagId * 10, item);
                _this.mLogicData.EquipsModel.Add(bagId, tbRobot.EquipHand * 100 + tbRobot.EquipLevel);
            }

            if (tbRobot.EquipHead != -1)
            {
                var bagId  = 7;
                var dbitem = new ItemBaseData();
                var item   = new ItemEquip2(tbRobot.EquipHead, dbitem);
                item.SetExdata(0, tbRobot.EquipLevel);
                _this.Equip.Add(bagId * 10, item);
                _this.mLogicData.EquipsModel.Add(bagId, tbRobot.EquipHead * 100 + tbRobot.EquipLevel);
            }
            if (tbRobot.EquipChest != -1)
            {
                var bagId  = 11;
                var dbitem = new ItemBaseData();
                var item   = new ItemEquip2(tbRobot.EquipChest, dbitem);
                item.SetExdata(0, tbRobot.EquipLevel);
                _this.Equip.Add(bagId * 10, item);
                _this.mLogicData.EquipsModel.Add(bagId, tbRobot.EquipChest * 100 + tbRobot.EquipLevel);
            }

            if (tbRobot.EquipGlove != -1)
            {
                var bagId  = 14;
                var dbitem = new ItemBaseData();
                var item   = new ItemEquip2(tbRobot.EquipGlove, dbitem);
                item.SetExdata(0, tbRobot.EquipLevel);
                _this.Equip.Add(bagId * 10, item);
                _this.mLogicData.EquipsModel.Add(bagId, tbRobot.EquipGlove * 100 + tbRobot.EquipLevel);
            }

            if (tbRobot.EquipTrouser != -1)
            {
                var bagId  = 15;
                var dbitem = new ItemBaseData();
                var item   = new ItemEquip2(tbRobot.EquipTrouser, dbitem);
                item.SetExdata(0, tbRobot.EquipLevel);
                _this.Equip.Add(bagId * 10, item);
                _this.mLogicData.EquipsModel.Add(bagId, tbRobot.EquipTrouser * 100 + tbRobot.EquipLevel);
            }

            if (tbRobot.EquipShoes != -1)
            {
                var bagId  = 16;
                var dbitem = new ItemBaseData();
                var item   = new ItemEquip2(tbRobot.EquipShoes, dbitem);
                item.SetExdata(0, tbRobot.EquipLevel);
                _this.Equip.Add(bagId * 10, item);
                _this.mLogicData.EquipsModel.Add(bagId, tbRobot.EquipShoes * 100 + tbRobot.EquipLevel);
            }

            if (tbRobot.WingID != -1)
            {
                var bagId  = 12;
                var dbitem = new ItemBaseData();
                var item   = new WingItem(tbRobot.WingID, dbitem);
                var ib     = new ItemEquip2();
                ib.SetId(dbitem.ItemId);
                ib.SetCount(dbitem.Count);
                ib.CopyFrom(dbitem.Exdata);
                _this.Equip.Add(bagId * 10, ib);
                _this.mLogicData.EquipsModel.Add(bagId, tbRobot.WingID * 100 + tbRobot.EquipLevel);
            }
            _this.Attr.EquipRefresh();
            //InitSkill();
            _this.NormalSkillId = _this.TableCharacter.InitSkill[0];
            _this.Skill.AddSkill(_this.TableCharacter.InitSkill[0], 1, eAddskillType.InitByRobot);
            foreach (var skill in tbRobot.Skill)
            {
                _this.Skill.AddSkill(skill, 1, eAddskillType.InitByRobot2);
            }
            //InitBuff();
            //InitAttr();
            _this.Attr.mBookData[1] = tbRobot.Power;
            _this.Attr.mBookData[2] = tbRobot.Agility;
            _this.Attr.mBookData[3] = tbRobot.Intelligence;
            _this.Attr.mBookData[4] = tbRobot.physical;
            _this.Attr.mBookData[(int)eAttributeType.PhyPowerMin] = tbRobot.AttackMin;
            _this.Attr.mBookData[(int)eAttributeType.PhyPowerMax] = tbRobot.AttackMax;
            _this.Attr.mBookData[(int)eAttributeType.MagPowerMin] = tbRobot.AttackMin;
            _this.Attr.mBookData[(int)eAttributeType.MagPowerMax] = tbRobot.AttackMax;
            _this.Attr.mBookData[(int)eAttributeType.PhyArmor]    = tbRobot.PhysicsDefense;
            _this.Attr.mBookData[(int)eAttributeType.MagArmor]    = tbRobot.MagicDefense;
            _this.Attr.mBookData[(int)eAttributeType.MpMax]       = tbRobot.MagicLimit;
            _this.Attr.mBookData[(int)eAttributeType.HpMax]       = tbRobot.LifeLimit;
            _this.Attr.InitAttributesAll();
            //阵营
            _this.mCamp     = 2;
            _this.TableCamp = Table.GetCamp(_this.mCamp);
            _this.InitAI(tbRobot.Level);
        }