예제 #1
0
        private Model method206(int i, int j)
        {
            Model model = (Model)aMRUNodes_264.insertFromCache((i << 16) + j);

            if (model != null)
            {
                return(model);
            }
            if (i == 1)
            {
                model = Model.method462(j);
            }
            if (i == 2)
            {
                model = EntityDef.forID(j).method160();
            }
            if (i == 3)
            {
                model = UnityClient.myPlayer.method453();
            }
            if (i == 4)
            {
                model = ItemDef.forID(j).method202(50);
            }
            if (i == 5)
            {
                model = null;
            }
            if (model != null)
            {
                aMRUNodes_264.removeFromCache(model, (i << 16) + j);
            }
            return(model);
        }
예제 #2
0
        public Model method160()
        {
            if (childrenIDs != null)
            {
                EntityDef entityDef = method161();
                if (entityDef == null)
                {
                    return(null);
                }
                else
                {
                    return(entityDef.method160());
                }
            }
            if (anIntArray73 == null)
            {
                return(null);
            }
            bool flag1 = false;

            for (int i = 0; i < anIntArray73.Length; i++)
            {
                if (!Model.method463(anIntArray73[i]))
                {
                    flag1 = true;
                }
            }

            if (flag1)
            {
                return(null);
            }
            Model[] aclass30_sub2_sub4_sub6s = new Model[anIntArray73.Length];
            for (int j = 0; j < anIntArray73.Length; j++)
            {
                aclass30_sub2_sub4_sub6s[j] = Model.method462(anIntArray73[j]);
            }

            Model model;

            if (aclass30_sub2_sub4_sub6s.Length == 1)
            {
                model = aclass30_sub2_sub4_sub6s[0];
            }
            else
            {
                model = new Model(aclass30_sub2_sub4_sub6s.Length,
                                  aclass30_sub2_sub4_sub6s);
            }
            if (originalModelColors != null)
            {
                for (int k = 0; k < originalModelColors.Length; k++)
                {
                    model.method476(originalModelColors[k], modifiedModelColors[k]);
                }
            }
            return(model);
        }
예제 #3
0
        public static void unpackConfig(StreamLoader streamLoader)
        {
            stream = new Stream(streamLoader.getDataForName("npc.dat"));
            Stream stream2   = new Stream(streamLoader.getDataForName("npc.idx"));
            int    totalNPCs = stream2.readUnsignedWord();

            streamIndices = new int[totalNPCs];
            Debug.Log("Npcs Loaded: " + totalNPCs);
            int i = 2;

            for (int j = 0; j < totalNPCs; j++)
            {
                streamIndices[j] = i;
                i += stream2.readUnsignedWord();
            }

            cache = new EntityDef[20];
            for (int k = 0; k < 20; k++)
            {
                cache[k] = new EntityDef();
            }
        }
예제 #4
0
//		public static EntityDef forID(int i)
//		{
//			for (int j = 0; j < 20; j++)
//				if (cache[j].type == (long)i)
//					return cache[j];
//
//			anInt56 = (anInt56 + 1) % 20;
//			EntityDef entityDef = cache[anInt56] = new EntityDef();
//			stream.currentOffset = streamIndices[i];
//			entityDef.type = i;
//			entityDef.readValues(stream);
//			return entityDef;
//		}
//
//		public Model method160()
//    {
//        if(childrenIDs != null)
//        {
//            EntityDef entityDef = method161();
//            if(entityDef == null)
//                return null;
//            else
//                return entityDef.method160();
//        }
//        if(anIntArray73 == null)
//            return null;
//        bool flag1 = false;
//        for(int i = 0; i < anIntArray73.Length; i++)
//            if(!Model.method463(anIntArray73[i]))
//                flag1 = true;
//
//        if(flag1)
//            return null;
//        Model[] aclass30_sub2_sub4_sub6s = new Model[anIntArray73.Length];
//        for(int j = 0; j < anIntArray73.Length; j++)
//            aclass30_sub2_sub4_sub6s[j] = Model.method462(anIntArray73[j]);
//
//        Model model;
//        if(aclass30_sub2_sub4_sub6s.Length == 1)
//            model = aclass30_sub2_sub4_sub6s[0];
//        else
//            model = new Model(aclass30_sub2_sub4_sub6s.Length, aclass30_sub2_sub4_sub6s);
//        if(anIntArray76 != null)
//        {
//            for(int k = 0; k < anIntArray76.Length; k++)
//                model.method476(anIntArray76[k], anIntArray70[k]);
//
//        }
//        return model;
//    }
//
//		public EntityDef method161()
//		{
//			int j = -1;
//			if (anInt57 != -1)
//			{
//				VarBit varBit = VarBit.cache[anInt57];
//				int k = varBit.anInt648;
//				int l = varBit.anInt649;
//				int i1 = varBit.anInt650;
//				int j1 = client.anIntArray1232[i1 - l];
//				j = clientInstance.variousSettings[k] >> l & j1;
//			}
//			else
//				if (anInt59 != -1)
//					j = clientInstance.variousSettings[anInt59];
//			if (j < 0 || j >= childrenIDs.Length || childrenIDs[j] == -1)
//				return null;
//			else
//				return forID(childrenIDs[j]);
//		}
//
//		public static void unpackConfig(StreamLoader streamLoader)
//		{
//			stream = new Stream(streamLoader.getDataForName("npc.dat"));
//			Stream stream2 = new Stream(streamLoader.getDataForName("npc.idx"));
//			int totalNPCs = stream2.readUnsignedWord();
//			streamIndices = new int[totalNPCs];
//			int i = 2;
//			for (int j = 0; j < totalNPCs; j++)
//			{
//				streamIndices[j] = i;
//				i += stream2.readUnsignedWord();
//			}
//
//			cache = new EntityDef[20];
//			for (int k = 0; k < 20; k++)
//				cache[k] = new EntityDef();
//
//		}
//
//		public static void nullLoader()
//		{
//			mruNodes = null;
//			streamIndices = null;
//			cache = null;
//			stream = null;
//		}
//
//		public Model method164(int j, int k, int[] ai)
//		{
//			if (childrenIDs != null)
//			{
//				EntityDef entityDef = method161();
//				if (entityDef == null)
//					return null;
//				else
//					return entityDef.method164(j, k, ai);
//			}
//			Model model = (Model)mruNodes.insertFromCache(type);
//			if (model == null)
//			{
//				bool flag = false;
//				for (int i1 = 0; i1 < anIntArray94.Length; i1++)
//					if (!Model.method463(anIntArray94[i1]))
//						flag = true;
//
//				if (flag)
//					return null;
//				Model[] aclass30_sub2_sub4_sub6s = new Model[anIntArray94.Length];
//				for (int j1 = 0; j1 < anIntArray94.Length; j1++)
//					aclass30_sub2_sub4_sub6s[j1] = Model.method462(anIntArray94[j1]);
//
//				if (aclass30_sub2_sub4_sub6s.Length == 1)
//					model = aclass30_sub2_sub4_sub6s[0];
//				else
//					model = new Model(aclass30_sub2_sub4_sub6s.Length, aclass30_sub2_sub4_sub6s);
//				if (anIntArray76 != null)
//				{
//					for (int k1 = 0; k1 < anIntArray76.Length; k1++)
//						model.method476(anIntArray76[k1], anIntArray70[k1]);
//
//				}
//				model.method469();
//				model.method479(64 + anInt85, 850 + anInt92, -30, -50, -30, true);
//				mruNodes.removeFromCache(model, type);
//			}
//			Model model_1 = Model.aModel_1621;
//			model_1.method464(model, Class36.method532(k) & Class36.method532(j));
//			if (k != -1 && j != -1)
//				model_1.method471(ai, j, k);
//			else
//				if (k != -1)
//					model_1.method470(k);
//			if (anInt91 != 128 || anInt86 != 128)
//				model_1.method478(anInt91, anInt91, anInt86);
//			model_1.method466();
//			model_1.anIntArrayArray1658 = null;
//			model_1.anIntArrayArray1657 = null;
//			if (aByte68 == 1)
//				model_1.aBoolean1659 = true;
//			return model_1;
//		}
//
//		private void readValues(Stream stream)
//		{
//			do
//			{
//				int i = stream.readUnsignedByte();
//				if (i == 0)
//					return;
//				if (i == 1)
//				{
//					int j = stream.readUnsignedByte();
//					anIntArray94 = new int[j];
//					for (int j1 = 0; j1 < j; j1++)
//						anIntArray94[j1] = stream.readUnsignedWord();
//
//				}
//				else
//					if (i == 2)
//						name = stream.readString();
//					else
//						if (i == 3)
//						description = stream.readBytes();
//						else
//							if (i == 12)
//								aByte68 = (byte)stream.readSignedByte();
//							else
//								if (i == 13)
//									anInt77 = stream.readUnsignedWord();
//								else
//									if (i == 14)
//										anInt67 = stream.readUnsignedWord();
//									else
//										if (i == 17)
//										{
//											anInt67 = stream.readUnsignedWord();
//											anInt58 = stream.readUnsignedWord();
//											anInt83 = stream.readUnsignedWord();
//											anInt55 = stream.readUnsignedWord();
//										}
//										else
//											if (i >= 30 && i < 40)
//											{
//												if (actions == null)
//													actions = new String[5];
//												actions[i - 30] = stream.readString();
//												if (actions[i - 30].ToLower().Equals("hidden"))
//													actions[i - 30] = null;
//											}
//											else
//												if (i == 40)
//												{
//													int k = stream.readUnsignedByte();
//													anIntArray76 = new int[k];
//													anIntArray70 = new int[k];
//													for (int k1 = 0; k1 < k; k1++)
//													{
//														anIntArray76[k1] = stream.readUnsignedWord();
//														anIntArray70[k1] = stream.readUnsignedWord();
//													}
//
//												}
//												else
//													if (i == 60)
//													{
//														int l = stream.readUnsignedByte();
//														anIntArray73 = new int[l];
//														for (int l1 = 0; l1 < l; l1++)
//															anIntArray73[l1] = stream.readUnsignedWord();
//
//													}
//													else
//														if (i == 90)
//															stream.readUnsignedWord();
//														else
//															if (i == 91)
//																stream.readUnsignedWord();
//															else
//																if (i == 92)
//																	stream.readUnsignedWord();
//																else
//																	if (i == 93)
//																		aBoolean87 = false;
//																	else
//																		if (i == 95)
//																			combatLevel = stream.readUnsignedWord();
//																		else
//																			if (i == 97)
//																				anInt91 = stream.readUnsignedWord();
//																			else
//																				if (i == 98)
//																					anInt86 = stream.readUnsignedWord();
//																				else
//																					if (i == 99)
//																						aBoolean93 = true;
//																					else
//																						if (i == 100)
//																							anInt85 = stream.readSignedByte();
//																						else
//																							if (i == 101)
//																								anInt92 = stream.readSignedByte() * 5;
//																							else
//																								if (i == 102)
//																									anInt75 = stream.readUnsignedWord();
//																								else
//																									if (i == 103)
//																										anInt79 = stream.readUnsignedWord();
//																									else
//																										if (i == 106)
//																										{
//																											anInt57 = stream.readUnsignedWord();
//																											if (anInt57 == 65535)
//																												anInt57 = -1;
//																											anInt59 = stream.readUnsignedWord();
//																											if (anInt59 == 65535)
//																												anInt59 = -1;
//																											int i1 = stream.readUnsignedByte();
//																											childrenIDs = new int[i1 + 1];
//																											for (int i2 = 0; i2 <= i1; i2++)
//																											{
//																												childrenIDs[i2] = stream.readUnsignedWord();
//																												if (childrenIDs[i2] == 65535)
//																													childrenIDs[i2] = -1;
//																											}
//
//																										}
//																										else
//																											if (i == 107)
//																												aBoolean84 = false;
//			} while (true);
//		}
//
//		private EntityDef()
//		{
//			anInt55 = -1;
//			anInt57 = -1;
//			anInt58 = -1;
//			anInt59 = -1;
//			combatLevel = -1;
//			anInt64 = 1834;
//			anInt67 = -1;
//			aByte68 = 1;
//			anInt75 = -1;
//			anInt77 = -1;
//			type = -1L;
//			anInt79 = 32;
//			anInt83 = -1;
//			aBoolean84 = true;
//			anInt86 = 128;
//			aBoolean87 = true;
//			anInt91 = 128;
//			aBoolean93 = false;
//		}
//
//		public int anInt55;
//		private static int anInt56;
//		private int anInt57;
//		public int anInt58;
//		private int anInt59;
//		private static Stream stream;
//		public int combatLevel;
//		private int anInt64;
//		public String name;
//		public String[] actions;
//		public int anInt67;
//		public byte aByte68;
//		private int[] anIntArray70;
//		private static int[] streamIndices;
//		private int[] anIntArray73;
//		public int anInt75;
//		private int[] anIntArray76;
//		public int anInt77;
//		public long type;
//		public int anInt79;
//		private static EntityDef[] cache;
//		public static client clientInstance;
//		public int anInt83;
//		public bool aBoolean84;
//		private int anInt85;
//		private int anInt86;
//		public bool aBoolean87;
//		public int[] childrenIDs;
//		public byte[] description;
//		private int anInt91;
//		private int anInt92;
//		public bool aBoolean93;
//		private int[] anIntArray94;
//		public static MRUNodes mruNodes = new MRUNodes(30);

        public static EntityDef forID(int i)
        {
            for (int j = 0; j < 20; j++)
            {
                if (cache[j].type == i)
                {
                    return(cache[j]);
                }
            }
            anInt56 = (anInt56 + 1) % 20;
            EntityDef entityDef = cache[anInt56] = new EntityDef();

            if (i > streamIndices.Length)
            {
                Debug.Log("EntityDef error");
                return(null);
            }
            stream.currentOffset = streamIndices[i];
            entityDef.type       = i;
            entityDef.readValues(stream);
            return(entityDef);
        }
예제 #5
0
        public Model method164(int j, int k, int[] ai)
        {
            if (childrenIDs != null)
            {
                EntityDef entityDef = method161();
                if (entityDef == null)
                {
                    return(null);
                }
                else
                {
                    return(entityDef.method164(j, k, ai));
                }
            }
            Model model = (Model)mruNodes.insertFromCache(type);

            if (model == null)
            {
                bool flag = false;
                for (int i1 = 0; i1 < models.Length; i1++)
                {
                    if (!Model.method463(models[i1]))
                    {
                        flag = true;
                    }
                }

                if (flag)
                {
                    return(null);
                }
                Model[] aclass30_sub2_sub4_sub6s = new Model[models.Length];
                for (int j1 = 0; j1 < models.Length; j1++)
                {
                    aclass30_sub2_sub4_sub6s[j1] = Model.method462(models[j1]);
                }

                if (aclass30_sub2_sub4_sub6s.Length == 1)
                {
                    model = aclass30_sub2_sub4_sub6s[0];
                }
                else
                {
                    model = new Model(aclass30_sub2_sub4_sub6s.Length,
                                      aclass30_sub2_sub4_sub6s);
                }
                if (originalModelColors != null)
                {
                    for (int k1 = 0; k1 < originalModelColors.Length; k1++)
                    {
                        model.method476(originalModelColors[k1],
                                        modifiedModelColors[k1]);
                    }
                }
                model.method469();
                model.method479(64 + anInt85, 850 + anInt92, -30, -50, -30, true);
                mruNodes.removeFromCache(model, type);
            }
            Model model_1 = Model.aModel_1621;

            model_1.method464(model, Class36.method532(k) & Class36.method532(j));
            if (k != -1 && j != -1)
            {
                model_1.method471(ai, j, k);
            }
            else if (k != -1)
            {
                model_1.method470(k);
            }
            if (anInt91 != 128 || anInt86 != 128)
            {
                model_1.method478(anInt91, anInt91, anInt86);
            }
            model_1.method466();
            model_1.anIntArrayArray1658 = null;
            model_1.anIntArrayArray1657 = null;
            if (aByte68 == 1)
            {
                model_1.aBoolean1659 = true;
            }
            return(model_1);
        }
예제 #6
0
        public void updatePlayer(Stream stream)
        {
            stream.currentOffset = 0;
            anInt1702            = stream.readUnsignedByte();
            headIcon             = stream.readUnsignedByte();
            skullIcon            = stream.readUnsignedByte();
            desc = null;
            team = 0;
            for (int j = 0; j < 12; j++)
            {
                int k = stream.readUnsignedByte();
                if (k == 0)
                {
                    equipment[j] = 0;
                    continue;
                }
                int i1 = stream.readUnsignedByte();
                equipment[j] = (k << 8) + i1;
                if (j == 0 && equipment[0] == 65535)
                {
                    desc = EntityDef.forID(stream.readUnsignedWord());
                    break;
                }
                if (equipment[j] >= 512 && equipment[j] - 512 < ItemDef.totalItems)
                {
                    int l1 = ItemDef.forID(equipment[j] - 512).team;
                    if (l1 != 0)
                    {
                        team = l1;
                    }
                }
            }

            for (int l = 0; l < 5; l++)
            {
                int j1 = stream.readUnsignedByte();
                if (j1 < 0 || j1 >= UnityClient.anIntArrayArray1003[l].Length)
                {
                    j1 = 0;
                }
                anIntArray1700[l] = j1;
            }

            base.anInt1511 = stream.readUnsignedWord();
            if (base.anInt1511 == 65535)
            {
                base.anInt1511 = -1;
            }
            base.anInt1512 = stream.readUnsignedWord();
            if (base.anInt1512 == 65535)
            {
                base.anInt1512 = -1;
            }
            base.anInt1554 = stream.readUnsignedWord();
            if (base.anInt1554 == 65535)
            {
                base.anInt1554 = -1;
            }
            base.anInt1555 = stream.readUnsignedWord();
            if (base.anInt1555 == 65535)
            {
                base.anInt1555 = -1;
            }
            base.anInt1556 = stream.readUnsignedWord();
            if (base.anInt1556 == 65535)
            {
                base.anInt1556 = -1;
            }
            base.anInt1557 = stream.readUnsignedWord();
            if (base.anInt1557 == 65535)
            {
                base.anInt1557 = -1;
            }
            base.anInt1505 = stream.readUnsignedWord();
            if (base.anInt1505 == 65535)
            {
                base.anInt1505 = -1;
            }
            name        = TextClass.fixName(TextClass.nameForLong(stream.readQWord()));
            combatLevel = stream.readUnsignedByte();
            skill       = stream.readUnsignedWord();
            visible     = true;
            aLong1718   = 0L;
            for (int k1 = 0; k1 < 12; k1++)
            {
                aLong1718 <<= 4;
                if (equipment[k1] >= 256)
                {
                    aLong1718 += equipment[k1] - 256;
                }
            }

            if (equipment[0] >= 256)
            {
                aLong1718 += equipment[0] - 256 >> 4;
            }
            if (equipment[1] >= 256)
            {
                aLong1718 += equipment[1] - 256 >> 8;
            }
            for (int i2 = 0; i2 < 5; i2++)
            {
                aLong1718 <<= 3;
                aLong1718  += anIntArray1700[i2];
            }

            aLong1718 <<= 1;
            aLong1718  += anInt1702;
        }