using System;
using Assets.src.model;
using Assets.src.player;
using Assets.src.rpg;
using Assets.src.screen;
using UnityEngine;

public class MessageHandler : IActionListener, IMessageHandler
{
	public IGameLogicHandler gameLogicHandler;

	protected static MessageHandler instance;

	public static bool nextTurnFlag = false;

	public static bool lag = false;

	public static bool isStopReadMessage;

	public static bool isLoadingDataWhenConnecOK;

	public static bool isLoadingDataWhenConnecFail;

	public static bool isLoadingDataWhenDisconnected;

	public static object LOCK = new object();

	public static int dem = 0;

	public static long currt;

	public static bool isDemo;

	public static MessageHandler gI()
	{
		if (instance == null)
		{
			instance = new MessageHandler();
		}
		return instance;
	}

	public void onConnectOK()
	{
		CRes.outz("connect ok");
		isLoadingDataWhenConnecOK = true;
	}

	public void onConnectionFail()
	{
		CRes.outz("connect fail");
		isLoadingDataWhenConnecFail = true;
	}

	public void onDisconnected()
	{
		CRes.outz("connect onDisconnected");
		isLoadingDataWhenDisconnected = true;
	}

	private void createItem(myReader d)
	{
		GameScr.vcItem = d.readByte();
		Rms.saveRMSInt("vcItem", GameScr.vcItem);
		ItemTemplates.itemTemplates.clear();
		GameScr.iOptionTemplates = new ItemOptionTemplate[d.readByte()];
		for (int i = 0; i < GameScr.iOptionTemplates.Length; i++)
		{
			GameScr.iOptionTemplates[i] = new ItemOptionTemplate();
			GameScr.iOptionTemplates[i].id = i;
			GameScr.iOptionTemplates[i].name = d.readUTF();
			GameScr.iOptionTemplates[i].type = d.readByte();
		}
		int num = d.readShort();
		CRes.outz("nItem template= " + num);
		for (int j = 0; j < num; j++)
		{
			ItemTemplate it = new ItemTemplate((short)j, d.readByte(), d.readByte(), d.readUTF(), d.readUTF(), d.readByte(), d.readByte(), d.readShort(), d.readShort(), false);
			ItemTemplates.add(it);
		}
	}

	public void readClanMsg(Message msg, int index)
	{
		try
		{
			ClanMessage clanMessage = new ClanMessage();
			sbyte b = msg.reader().readByte();
			clanMessage.type = b;
			clanMessage.id = msg.reader().readInt();
			clanMessage.playerId = msg.reader().readInt();
			clanMessage.playerName = msg.reader().readUTF();
			clanMessage.role = msg.reader().readByte();
			clanMessage.time = msg.reader().readInt() + 1000000000;
			bool flag = false;
			GameScr.isNewClanMessage = false;
			if (b == 0)
			{
				string text = msg.reader().readUTF();
				CRes.outz("str chat " + text);
				GameScr.isNewClanMessage = true;
				if (mFont.tahoma_7.getWidth(text) > Panel.WIDTH_PANEL - 60)
				{
					clanMessage.chat = mFont.tahoma_7.splitFontArray(text, Panel.WIDTH_PANEL - 10);
				}
				else
				{
					clanMessage.chat = new string[1];
					clanMessage.chat[0] = text;
				}
				clanMessage.color = msg.reader().readByte();
			}
			else if (b == 1)
			{
				clanMessage.recieve = msg.reader().readByte();
				clanMessage.maxCap = msg.reader().readByte();
				flag = msg.reader().readByte() == 1;
				if (flag)
				{
					GameScr.isNewClanMessage = true;
				}
				if (clanMessage.playerId != CPlayer.myPlayer.IDDB)
				{
					if (clanMessage.recieve < clanMessage.maxCap)
					{
						clanMessage.option = new string[1] { L.donate() };
					}
					else
					{
						clanMessage.option = null;
					}
				}
				if (CCanvas.panel.cp != null)
				{
					CCanvas.panel.updateRequest(clanMessage.recieve, clanMessage.maxCap);
				}
			}
			else if (b == 2 && CPlayer.myPlayer.role == 0)
			{
				GameScr.isNewClanMessage = true;
				clanMessage.option = new string[2]
				{
					L.cancel(),
					L.receive_upper()
				};
			}
			if (CCanvas.curScr != GameScr.instance)
			{
				GameScr.isNewClanMessage = false;
			}
			else if (CCanvas.panel.isShow && CCanvas.panel.type == 21)
			{
				GameScr.isNewClanMessage = false;
			}
			ClanMessage.addMessage(clanMessage, index, flag);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
	}

	public void onMessage(Message msg)
	{
		try
		{
			CRes.outz("------nhan cmd: " + msg.command);
			switch (msg.command)
			{
			case -89:
				CCanvas.open3Hour = msg.reader().readByte() == 1;
				break;
			case 43:
			{
				CCanvas.endDlg();
				sbyte haveName = msg.reader().readByte();
				if (CCanvas.registerScr == null)
				{
					CCanvas.registerScr = new RegisterScreen(haveName);
				}
				CCanvas.registerScr.show();
				break;
			}
			case -68:
			{
				sbyte b59 = msg.reader().readByte();
				sbyte b60 = msg.reader().readByte();
				CRes.outz("type boss= " + b60);
				switch (b60)
				{
				case 0:
				{
					if (PM.p[b59] != null)
					{
						PM.p[b59].state = 20;
						((BigBoss)PM.p[b59]).jump();
						GameScr.cam.setPlayerMode(b59);
					}
					mSystem.mWait();
					sbyte b62 = msg.reader().readByte();
					CRes.outz("n=" + b62);
					for (int num87 = 0; num87 < b62; num87++)
					{
						sbyte b63 = msg.reader().readByte();
						short num88 = msg.reader().readShort();
						short num89 = msg.reader().readShort();
						GameScr.cam.setTargetPointMode(num88, num89);
						if (num87 == 0)
						{
							GameScr.waitting();
						}
						EffecMn.addEff(new Effect(29, num88, num89, 3, 1, 1));
						Camera.shaking = 2;
						short[] x = new short[1] { num88 };
						short[] y = new short[1] { num89 };
						if (b63 != 0)
						{
							GameScr.bm.bullets.addElement(new Bullet(61, x, y, b59));
						}
						sbyte b64 = msg.reader().readByte();
						for (int num90 = 0; num90 < b64; num90++)
						{
							sbyte b65 = msg.reader().readByte();
							short num91 = msg.reader().readShort();
							short num92 = msg.reader().readShort();
							if (PM.p[b65] != null)
							{
								PM.p[b65].xToNow = num91;
								PM.p[b65].x2 = num91;
								PM.p[b65].x = num91;
								PM.p[b65].yToNow = num92;
								PM.p[b65].y = num92;
							}
						}
					}
					break;
				}
				case 1:
				{
					sbyte b66 = msg.reader().readByte();
					if (PM.p[b59] != null && PM.p[b66] != null)
					{
						PM.p[b59].changeDirection(PM.p[b66].x);
						PM.p[b59].state = 21;
					}
					mSystem.mWait();
					break;
				}
				case 2:
				{
					short xSave = msg.reader().readShort();
					short ySave = msg.reader().readShort();
					sbyte b61 = msg.reader().readByte();
					short num85 = msg.reader().readShort();
					short num86 = msg.reader().readShort();
					((BigBoss)PM.p[b59]).xTha = num85;
					((BigBoss)PM.p[b59]).yTha = num86;
					if (PM.p[b61] != null)
					{
						CRes.outz("!!!!!!!!!!! " + num85 + " " + PM.p[b61].x + " " + num86 + " " + PM.p[b61].y);
						((BigBoss)PM.p[b59]).dAngle = CRes.angle(num85 - PM.p[b61].x, num86 - PM.p[b61].y);
						PM.p[b59].changeDirection(PM.p[b61].x);
						PM.p[b59].xToNow = PM.p[b61].x;
						PM.p[b59].yToNow = PM.p[b61].y;
						PM.p[b59].state = 22;
						((BigBoss)PM.p[b59]).xSave = xSave;
						((BigBoss)PM.p[b59]).ySave = ySave;
						((BigBoss)PM.p[b59]).chairVictim = b61;
					}
					GameScr.waitting1000();
					break;
				}
				case 3:
					GameScr.yToSea = msg.reader().readShort();
					break;
				}
				break;
			}
			case -121:
				InfoDlg.hide();
				if (CCanvas.w > 2 * Panel.WIDTH_PANEL)
				{
					CCanvas.panel.setTypeInventory();
					CCanvas.panel.show();
					CCanvas.panel2 = new Panel();
					CCanvas.panel2.setTypeMyEquip();
					CCanvas.panel2.show();
				}
				else
				{
					CCanvas.panel.setTypeInventoryWithMyEquip();
					CCanvas.panel.show();
				}
				break;
			case -119:
			{
				sbyte b82 = msg.reader().readByte();
				CRes.outz("using = " + b82);
				if (b82 == 0)
				{
					break;
				}
				CCanvas.panel.clansStatus = new Item[b82];
				for (int num121 = 0; num121 < b82; num121++)
				{
					short num122 = msg.reader().readShort();
					CCanvas.panel.clansStatus[num121] = new Item();
					CCanvas.panel.clansStatus[num121].template = ItemTemplates.get(num122 + string.Empty);
					sbyte b83 = msg.reader().readByte();
					CRes.outz("option size= " + b83);
					if (b83 == 0)
					{
						continue;
					}
					CCanvas.panel.clansStatus[num121].itemOption = new ItemOption[b83];
					for (int num123 = 0; num123 < CCanvas.panel.clansStatus[num121].itemOption.Length; num123++)
					{
						sbyte b84 = msg.reader().readByte();
						int param3 = msg.reader().readUnsignedShort();
						if (b84 != -1)
						{
							CCanvas.panel.clansStatus[num121].itemOption[num123] = new ItemOption(b84, param3);
							CCanvas.panel.clansStatus[num121].compare = CCanvas.panel.getCompare(CCanvas.panel.clansStatus[num121]);
						}
					}
				}
				break;
			}
			case -118:
			{
				CCanvas.panel.currShopPage = msg.reader().readByte();
				CCanvas.panel.maxShopPage = msg.reader().readByte();
				sbyte b102 = msg.reader().readByte();
				CRes.outz("size= " + b102 + " max= " + CCanvas.panel.maxShopPage);
				CCanvas.panel.clansShop = new Item[b102];
				for (int num140 = 0; num140 < b102; num140++)
				{
					short num141 = msg.reader().readShort();
					CCanvas.panel.clansShop[num140] = new Item();
					CCanvas.panel.clansShop[num140].template = ItemTemplates.get(num141 + string.Empty);
					CCanvas.panel.clansShop[num140].buyCoin = msg.reader().readInt();
					CCanvas.panel.clansShop[num140].buyGold = msg.reader().readInt();
					CCanvas.panel.clansShop[num140].strbuyCoin = NinjaUtil.getMoneys(CCanvas.panel.clansShop[num140].buyCoin);
					CCanvas.panel.clansShop[num140].strbuyGold = NinjaUtil.getMoneys(CCanvas.panel.clansShop[num140].buyGold);
					CRes.outz("xu = " + CCanvas.panel.clansShop[num140].buyCoin + " luong= " + CCanvas.panel.clansShop[num140].buyGold);
					sbyte b103 = msg.reader().readByte();
					CRes.outz("option size= " + b103);
					if (b103 == 0)
					{
						continue;
					}
					CCanvas.panel.clansShop[num140].itemOption = new ItemOption[b103];
					for (int num142 = 0; num142 < CCanvas.panel.clansShop[num140].itemOption.Length; num142++)
					{
						sbyte b104 = msg.reader().readByte();
						int param4 = msg.reader().readUnsignedShort();
						if (b104 != -1)
						{
							CCanvas.panel.clansShop[num140].itemOption[num142] = new ItemOption(b104, param4);
							CCanvas.panel.clansShop[num140].compare = CCanvas.panel.getCompare(CCanvas.panel.clansShop[num140]);
						}
					}
				}
				if (CCanvas.panel.currentTabIndex == 2)
				{
					CCanvas.panel.setTabShopClans();
					CCanvas.panel.cmy = (CCanvas.panel.cmtoY = 0);
				}
				InfoDlg.hide();
				break;
			}
			case 2:
				Session_ME.gI().close();
				Session_ME.gI().clearReconnect();
				LoginScr.connect();
				break;
			case -111:
			{
				string strInvite = msg.reader().readUTF();
				int clanID = msg.reader().readInt();
				int code = msg.reader().readInt();
				CCanvas.gameScr.clanInvite(strInvite, clanID, code);
				break;
			}
			case -106:
				InfoDlg.hide();
				readClanMsg(msg, 0);
				if (CCanvas.panel.isMessage && CCanvas.panel.type == 21)
				{
					CCanvas.panel.initTabClans();
				}
				break;
			case -108:
			{
				CRes.outz("MY CLAN INFO");
				InfoDlg.hide();
				bool flag = false;
				int num35 = msg.reader().readInt();
				CRes.outz("clanId= " + num35);
				if (num35 == -1)
				{
					CCanvas.panel.banghoi = new string[2][]
					{
						new string[2] { "Biệt", "đội" },
						new string[2] { "Top", "đội" }
					};
					CCanvas.panel.tabName[21] = CCanvas.panel.banghoi;
					flag = true;
					CPlayer.myPlayer.clan = null;
					ClanMessage.vMessage.removeAllElements();
					if (CCanvas.panel.member != null)
					{
						CCanvas.panel.member.removeAllElements();
					}
					if (CCanvas.panel.myMember != null)
					{
						CCanvas.panel.myMember.removeAllElements();
					}
					if (CCanvas.curScr == MenuScr.gI())
					{
						CCanvas.panel.setTypeClan();
					}
					break;
				}
				CCanvas.panel.tabIcon = null;
				CCanvas.panel.banghoi = new string[4][]
				{
					new string[2] { "Biệt", "đội" },
					new string[2] { "Top", "đội" },
					new string[2] { "Cửa", "hàng" },
					new string[2] { "Trạng", "thái" }
				};
				CCanvas.panel.tabName[21] = CCanvas.panel.banghoi;
				if (CPlayer.myPlayer.clan == null)
				{
					CPlayer.myPlayer.clan = new Clan();
				}
				CPlayer.myPlayer.clan.ID = num35;
				CPlayer.myPlayer.clan.name = msg.reader().readUTF();
				CPlayer.myPlayer.clan.slogan = msg.reader().readUTF();
				CPlayer.myPlayer.clan.imgID = msg.reader().readShort();
				CPlayer.myPlayer.clan.powerPoint = msg.reader().readUTF();
				CPlayer.myPlayer.clan.leaderName = msg.reader().readUTF();
				CPlayer.myPlayer.clan.currMember = msg.reader().readUnsignedByte();
				CRes.outz("curr Member= " + CPlayer.myPlayer.clan.currMember + "--------------------");
				CPlayer.myPlayer.clan.maxMember = msg.reader().readUnsignedByte();
				CPlayer.myPlayer.role = msg.reader().readByte();
				CCanvas.panel.myMember = new MyVector("GameCanvas.panel.myMember ");
				for (int num36 = 0; num36 < CPlayer.myPlayer.clan.currMember; num36++)
				{
					Member member = new Member();
					member.ID = msg.reader().readInt();
					member.head = msg.reader().readShort();
					member.leg = msg.reader().readShort();
					member.body = msg.reader().readShort();
					member.name = msg.reader().readUTF();
					member.role = msg.reader().readByte();
					member.powerPoint = msg.reader().readUTF();
					member.donate = msg.reader().readInt();
					member.receive_donate = msg.reader().readInt();
					member.clanPoint = msg.reader().readInt();
					member.joinTime = NinjaUtil.getDate(msg.reader().readInt());
					CCanvas.panel.myMember.addElement(member);
				}
				int num37 = msg.reader().readUnsignedByte();
				for (int num38 = 0; num38 < num37; num38++)
				{
					readClanMsg(msg, -1);
				}
				CPlayer.myPlayer.clan.level = msg.reader().readByte();
				if (CCanvas.panel.isSearchClan || CCanvas.panel.isViewMember || CCanvas.panel.isMessage)
				{
					CCanvas.panel.setTabClans();
				}
				if (flag)
				{
					CCanvas.panel.setTypeClan();
				}
				break;
			}
			case -107:
			{
				sbyte b133 = msg.reader().readByte();
				CRes.outz("clan update action = " + b133);
				if (b133 == 0)
				{
					Member member3 = new Member();
					member3.ID = msg.reader().readInt();
					member3.head = msg.reader().readShort();
					member3.leg = msg.reader().readShort();
					member3.body = msg.reader().readShort();
					member3.name = msg.reader().readUTF();
					member3.role = msg.reader().readByte();
					member3.powerPoint = msg.reader().readUTF();
					member3.donate = msg.reader().readInt();
					member3.receive_donate = msg.reader().readInt();
					member3.clanPoint = msg.reader().readInt();
					member3.joinTime = NinjaUtil.getDate(msg.reader().readInt());
					if (CCanvas.panel.myMember == null)
					{
						CCanvas.panel.myMember = new MyVector("ameCanvas.panel.myMember");
					}
					bool flag6 = false;
					for (int num174 = 0; num174 < CCanvas.panel.myMember.size(); num174++)
					{
						Member member4 = (Member)CCanvas.panel.myMember.elementAt(num174);
						if (member4.ID == member3.ID)
						{
							flag6 = true;
							return;
						}
					}
					if (!flag6)
					{
						CCanvas.panel.myMember.addElement(member3);
						CCanvas.panel.initTabClans();
					}
				}
				if (b133 == 1)
				{
					int num175 = msg.reader().readInt();
					for (int num176 = 0; num176 < CCanvas.panel.myMember.size(); num176++)
					{
						Member member5 = (Member)CCanvas.panel.myMember.elementAt(num176);
						if (num175 == member5.ID)
						{
							CCanvas.panel.myMember.removeElementAt(num176);
							break;
						}
					}
					CCanvas.panel.currentListLength--;
					CCanvas.panel.initTabClans();
				}
				if (b133 != 2)
				{
					break;
				}
				Member member6 = new Member();
				member6.ID = msg.reader().readInt();
				member6.head = msg.reader().readShort();
				member6.leg = msg.reader().readShort();
				member6.body = msg.reader().readShort();
				member6.name = msg.reader().readUTF();
				member6.role = msg.reader().readByte();
				member6.powerPoint = msg.reader().readUTF();
				member6.donate = msg.reader().readInt();
				member6.receive_donate = msg.reader().readInt();
				member6.clanPoint = msg.reader().readInt();
				member6.joinTime = NinjaUtil.getDate(msg.reader().readInt());
				for (int num177 = 0; num177 < CCanvas.panel.myMember.size(); num177++)
				{
					Member member7 = (Member)CCanvas.panel.myMember.elementAt(num177);
					CRes.outz("my ID= " + CPlayer.myPlayer.IDDB + " memID= " + member6.ID);
					if (member7.ID == member6.ID)
					{
						if (CPlayer.myPlayer.IDDB == member6.ID)
						{
							CPlayer.myPlayer.role = member6.role;
							CRes.outz("server tra ve role= " + CPlayer.myPlayer.role);
						}
						Member o3 = member6;
						CCanvas.panel.myMember.removeElement(member7);
						CCanvas.panel.myMember.insertElementAt(o3, num177);
						break;
					}
				}
				break;
			}
			case -105:
			{
				InfoDlg.hide();
				int num132 = msg.reader().readInt();
				if (CPlayer.myPlayer.clan != null && CPlayer.myPlayer.clan.ID == num132)
				{
					CCanvas.panel.myMember = new MyVector(".panel.member");
				}
				else
				{
					CCanvas.panel.member = new MyVector(".panel.member");
				}
				sbyte b98 = msg.reader().readByte();
				CRes.outz("member lent====================================" + b98);
				for (int num133 = 0; num133 < b98; num133++)
				{
					Member member2 = new Member();
					member2.ID = msg.reader().readInt();
					member2.head = msg.reader().readShort();
					member2.leg = msg.reader().readShort();
					member2.body = msg.reader().readShort();
					member2.name = msg.reader().readUTF();
					member2.role = msg.reader().readByte();
					member2.powerPoint = msg.reader().readUTF();
					member2.donate = msg.reader().readInt();
					member2.receive_donate = msg.reader().readInt();
					member2.clanPoint = msg.reader().readInt();
					member2.joinTime = NinjaUtil.getDate(msg.reader().readInt());
					if (CPlayer.myPlayer.clan != null && CPlayer.myPlayer.clan.ID == num132)
					{
						CCanvas.panel.myMember.addElement(member2);
					}
					else
					{
						CCanvas.panel.member.addElement(member2);
					}
				}
				if (CPlayer.myPlayer.clan == null || CPlayer.myPlayer.clan.ID != num132)
				{
					if (CCanvas.panel.currentTabIndex == 0)
					{
						CCanvas.panel.isViewMember = true;
						CCanvas.panel.isSearchClan = false;
						CCanvas.panel.isMessage = false;
						CCanvas.panel.currentListLength = CCanvas.panel.member.size() + 2;
						CCanvas.panel.initTabClansMemberForClanless();
					}
					else if (CCanvas.panel.currentTabIndex == 1)
					{
						CCanvas.panel.topClanMember = true;
						CCanvas.panel.setTabClansTopClanMember();
					}
				}
				break;
			}
			case -113:
			{
				InfoDlg.hide();
				sbyte b43 = msg.reader().readByte();
				CRes.outz("clan = " + b43);
				if (b43 == 0)
				{
					CCanvas.panel.clanReport = L.cannot_find_clan();
					CCanvas.panel.clans = null;
				}
				else
				{
					CCanvas.panel.clans = new Clan[b43];
					CRes.outz("clan search lent= " + CCanvas.panel.clans.Length);
					for (int num70 = 0; num70 < CCanvas.panel.clans.Length; num70++)
					{
						CCanvas.panel.clans[num70] = new Clan();
						CCanvas.panel.clans[num70].ID = msg.reader().readInt();
						CCanvas.panel.clans[num70].name = msg.reader().readUTF();
						CCanvas.panel.clans[num70].slogan = msg.reader().readUTF();
						CCanvas.panel.clans[num70].imgID = msg.reader().readShort();
						CCanvas.panel.clans[num70].powerPoint = msg.reader().readUTF();
						CCanvas.panel.clans[num70].leaderName = msg.reader().readUTF();
						CCanvas.panel.clans[num70].currMember = msg.reader().readUnsignedByte();
						CCanvas.panel.clans[num70].maxMember = msg.reader().readUnsignedByte();
						CCanvas.panel.clans[num70].date = msg.reader().readInt();
					}
				}
				CCanvas.panel.isSearchClan = true;
				CCanvas.panel.isViewMember = false;
				CCanvas.panel.isMessage = false;
				if (CCanvas.panel.isSearchClan)
				{
					CCanvas.panel.initTabClans();
				}
				break;
			}
			case -117:
			{
				sbyte b29 = msg.reader().readByte();
				if (b29 == 0)
				{
					break;
				}
				CCanvas.panel.topClans = new Clan[b29];
				for (int num34 = 0; num34 < b29; num34++)
				{
					CCanvas.panel.topClans[num34] = new Clan();
					CCanvas.panel.topClans[num34].rank = msg.reader().readInt();
					CCanvas.panel.topClans[num34].ID = msg.reader().readInt();
					CCanvas.panel.topClans[num34].name = msg.reader().readUTF();
					CCanvas.panel.topClans[num34].slogan = msg.reader().readUTF();
					CRes.outz("slogan = >" + CCanvas.panel.topClans[num34].slogan + "<");
					if (CCanvas.panel.topClans[num34].slogan != null && !CCanvas.panel.topClans[num34].slogan.Equals(string.Empty) && CCanvas.panel.topClans[num34].slogan.Length >= 80)
					{
						CRes.outz("vo day");
						CCanvas.panel.topClans[num34].sloganSplit = mFont.tahoma_7.splitFontArray(CCanvas.panel.topClans[num34].slogan, 80)[0];
					}
					CCanvas.panel.topClans[num34].imgID = msg.reader().readShort();
					CCanvas.panel.topClans[num34].currMember = msg.reader().readByte();
					CCanvas.panel.topClans[num34].maxMember = msg.reader().readByte();
					CCanvas.panel.topClans[num34].powerPoint = msg.reader().readUTF();
					CCanvas.panel.topClans[num34].date = msg.reader().readInt();
					CCanvas.panel.topClans[num34].leaderName = msg.reader().readUTF();
					CCanvas.panel.topClans[num34].level = msg.reader().readUnsignedByte();
					CCanvas.panel.topClans[num34].percent = msg.reader().readByte();
				}
				break;
			}
			case -103:
			{
				InfoDlg.hide();
				sbyte b67 = msg.reader().readByte();
				CRes.outz("cAction= " + b67);
				if (b67 == 1 || b67 == 3)
				{
					CCanvas.endDlg();
					ClanImage.vClanImage.removeAllElements();
					TabClanIcon.currPage = msg.reader().readByte();
					TabClanIcon.maxPage = msg.reader().readByte();
					int num94 = msg.reader().readUnsignedByte();
					for (int num95 = 0; num95 < num94; num95++)
					{
						ClanImage clanImage = new ClanImage();
						clanImage.idImage = msg.reader().readShort();
						CRes.outz("id icon = " + clanImage.idImage);
						clanImage.name = msg.reader().readUTF();
						if (clanImage.idImage < 0)
						{
							clanImage.name = TabClanIcon.clanName[num95 + 1];
						}
						clanImage.xu = msg.reader().readInt();
						clanImage.luong = msg.reader().readInt();
						if (!ClanImage.isExistClanImage(clanImage.idImage))
						{
							ClanImage.addClanImage(clanImage);
							continue;
						}
						ClanImage.getClanImage((sbyte)clanImage.idImage).name = clanImage.name;
						ClanImage.getClanImage((sbyte)clanImage.idImage).xu = clanImage.xu;
						ClanImage.getClanImage((sbyte)clanImage.idImage).luong = clanImage.luong;
					}
					if (CCanvas.panel.tabIcon == null)
					{
						CCanvas.panel.tabIcon = new TabClanIcon();
					}
					CCanvas.panel.tabIcon.show(false);
					if (CPlayer.myPlayer.clan != null)
					{
						CCanvas.panel.changeIcon();
					}
				}
				if (b67 == 4)
				{
					CPlayer.myPlayer.clan.imgID = msg.reader().readShort();
					CPlayer.myPlayer.clan.slogan = msg.reader().readUTF();
					CRes.outz("change slogan " + CPlayer.myPlayer.clan.slogan);
				}
				break;
			}
			case -115:
				break;
			case -114:
			{
				CRes.outz("UPDATE CLAND ID ");
				int iDDB = msg.reader().readInt();
				if (PM.getPlayerByIDDB(iDDB) != null)
				{
					PM.getPlayerByIDDB(iDDB).clan = new Clan();
					PM.getPlayerByIDDB(iDDB).clanID = msg.reader().readInt();
					PM.getPlayerByIDDB(iDDB).clan.imgID = msg.reader().readShort();
				}
				if (CPlayer.myPlayer.clan != null)
				{
					CPlayer.myPlayer.clan.ID = msg.reader().readInt();
					CPlayer.myPlayer.clan.imgID = msg.reader().readShort();
				}
				break;
			}
			case -102:
				break;
			case -66:
			{
				sbyte b125 = msg.reader().readByte();
				if (b125 == 1)
				{
					int num169 = 0;
					for (int num170 = 0; num170 < CPlayer.arrItemGhepNgoc.Length; num170++)
					{
						Item item5 = CPlayer.arrItemGhepNgoc[num170];
						if (item5 == null)
						{
							continue;
						}
						if (item5.template.type != 12)
						{
							item5.quantity--;
							CRes.outz("so luong bao hiem = " + item5.quantity);
							if (item5.quantity <= 0)
							{
								CRes.outz("vi tri thu " + num170 + " = null");
								CPlayer.arrItemGhepNgoc[num170] = null;
							}
							continue;
						}
						num169++;
						if (num169 == 1)
						{
							item5.quantity -= 5;
							if (item5.quantity <= 0)
							{
								CPlayer.arrItemGhepNgoc[num170] = null;
							}
						}
						else
						{
							item5.quantity--;
							if (item5.quantity <= 0)
							{
								CPlayer.arrItemGhepNgoc[num170] = null;
							}
						}
					}
					break;
				}
				bool flag5 = false;
				for (int num171 = 0; num171 < CPlayer.arrItemGhepNgoc.Length; num171++)
				{
					Item item6 = CPlayer.arrItemGhepNgoc[num171];
					if (item6 != null && item6.template.type == 15)
					{
						flag5 = true;
						break;
					}
				}
				for (int num172 = 0; num172 < CPlayer.arrItemGhepNgoc.Length; num172++)
				{
					Item item7 = CPlayer.arrItemGhepNgoc[num172];
					if (item7 == null)
					{
						continue;
					}
					if (item7.template.type != 12)
					{
						item7.quantity--;
						if (item7.quantity == 0)
						{
							CPlayer.arrItemGhepNgoc[num172] = null;
						}
					}
					else if (!flag5)
					{
						item7.quantity--;
						if (item7.quantity == 0)
						{
							CPlayer.arrItemGhepNgoc[num172] = null;
						}
					}
				}
				break;
			}
			case -59:
			{
				sbyte b87 = msg.reader().readByte();
				if (MyMidlet.myInfo == null)
				{
					MyMidlet.myInfo = new CPlayer();
				}
				switch (b87)
				{
				case 0:
					MyMidlet.myInfo.KD = msg.reader().readUTF();
					MyMidlet.myInfo.KDA = msg.reader().readUTF();
					break;
				case 1:
					InfoDlg.hide();
					MyMidlet.myInfo.avenger = msg.reader().readByte();
					break;
				case 2:
					MyMidlet.myInfo.power = msg.reader().readUnsignedByte();
					PrepareScr.calcBalance();
					break;
				case 3:
				{
					int iDDB2 = msg.reader().readInt();
					int power = msg.reader().readUnsignedByte();
					if (PM.getPlayerByIDDB(iDDB2) != null)
					{
						PM.getPlayerByIDDB(iDDB2).power = power;
					}
					PrepareScr.calcBalance();
					break;
				}
				}
				break;
			}
			case -58:
			{
				LoginScr.gI().isLogin2 = true;
				string text6 = msg.reader().readUTF();
				Rms.saveRMSString("userAo", text6);
				GameService.gI().login(text6, string.Empty, MyMidlet.version, 1);
				CCanvas.startWaitDlgWithoutCancel(L.pleaseWait());
				break;
			}
			case -60:
			{
				sbyte b108 = msg.reader().readByte();
				if (b108 == 0)
				{
					GameScr.vBig = msg.reader().readByte();
					if (CCanvas.loadImage("/Big0.png") != null)
					{
						Rms.saveRMSInt("vcBig", GameScr.vBig);
					}
					CCanvas.serverScreen.dataSize = msg.reader().readUTF();
					GameScr.vcBig = Rms.loadRMSInt("vcBig");
					CRes.outz("vBig= " + GameScr.vBig + " @@ " + CCanvas.serverScreen.dataSize + " @@ vcBig=" + GameScr.vcBig);
					if (GameScr.vBig == GameScr.vcBig || mGraphics.zoomLevel == 1)
					{
						SmallImage.loadBigRMS();
						ServerListScreen.loadScreen = true;
						if (CCanvas.curScr != LoginScr.gI())
						{
							CCanvas.serverScreen.show();
						}
					}
					else
					{
						ServerListScreen.loadScreen = false;
						CCanvas.serverScreen.show2();
					}
				}
				if (b108 == 1)
				{
					ServerListScreen.strWait = L.download();
					GameScr.vcBig = msg.reader().readByte();
					ServerListScreen.nBig = msg.reader().readShort();
				}
				if (b108 == 2 && ServerListScreen.isGetData)
				{
					string filename = msg.reader().readUTF();
					int num145 = msg.reader().readInt();
					sbyte[] data7 = new sbyte[num145];
					msg.reader().read(ref data7, 0, num145);
					Rms.saveRMS(filename, data7);
					ServerListScreen.demPercent++;
					ServerListScreen.percent = ServerListScreen.demPercent * 100 / ServerListScreen.nBig;
					ServerListScreen.p = ServerListScreen.percent;
					if (ServerListScreen.demPercent == ServerListScreen.nBig)
					{
						Rms.saveRMSInt("vcBig", GameScr.vcBig);
						ServerListScreen.bigOk = true;
						SmallImage.loadBigRMS();
						ServerListScreen.loadScreen = true;
						BackgroundNew.loadBG(0);
						CCanvas.serverScreen.show();
					}
					CRes.outz("BIG IMAGE");
				}
				break;
			}
			case -57:
			{
				sbyte b117 = msg.reader().readByte();
				CRes.outz("nTop Name= " + b117);
				CPlayer.arrayTopPlayer = new CPlayer[b117][];
				CCanvas.panel.tabName[18] = new string[b117][];
				for (int num160 = 0; num160 < b117; num160++)
				{
					CCanvas.panel.tabName[18][num160] = new string[2];
					CCanvas.panel.tabName[18][num160][0] = msg.reader().readUTF();
					CCanvas.panel.tabName[18][num160][1] = string.Empty;
				}
				for (int num161 = 0; num161 < b117; num161++)
				{
					sbyte b118 = msg.reader().readByte();
					CRes.outz("i= " + num161 + " top size= " + b118);
					CPlayer.arrayTopPlayer[num161] = new CPlayer[b118];
					for (int num162 = 0; num162 < b118; num162++)
					{
						CPlayer.arrayTopPlayer[num161][num162] = new CPlayer();
						CPlayer.arrayTopPlayer[num161][num162].rank = msg.reader().readInt();
						CPlayer.arrayTopPlayer[num161][num162].IDDB = msg.reader().readInt();
						CPlayer.arrayTopPlayer[num161][num162].name = msg.reader().readUTF();
						CPlayer.arrayTopPlayer[num161][num162].head = msg.reader().readShort();
						CPlayer.arrayTopPlayer[num161][num162].hat = msg.reader().readShort();
						CPlayer.arrayTopPlayer[num161][num162].body = msg.reader().readShort();
						CPlayer.arrayTopPlayer[num161][num162].leg = msg.reader().readShort();
						CPlayer.arrayTopPlayer[num161][num162].wing = msg.reader().readShort();
						CPlayer.arrayTopPlayer[num161][num162].wp = msg.reader().readShort();
						CPlayer.arrayTopPlayer[num161][num162].exp = msg.reader().readInt();
						CPlayer.arrayTopPlayer[num161][num162].getStringLevel();
						CPlayer.arrayTopPlayer[num161][num162].status = msg.reader().readByte();
						CPlayer.arrayTopPlayer[num161][num162].rankValue = msg.reader().readUTF();
						CPlayer.arrayTopPlayer[num161][num162].clan = new Clan();
						CPlayer.arrayTopPlayer[num161][num162].clan.imgID = msg.reader().readShort();
					}
				}
				CRes.outz("doc het");
				InfoDlg.hide();
				CCanvas.panel.setTypeTop();
				CCanvas.panel.show();
				break;
			}
			case -92:
			{
				CRes.outz("LAY LAI CUC DATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT");
				sbyte b70 = msg.reader().readByte();
				if (b70 == 1)
				{
					MM.vHoleInfo.removeAllElements();
				}
				if (b70 != 0)
				{
					break;
				}
				sbyte b71 = msg.reader().readByte();
				for (int num98 = 0; num98 < b71; num98++)
				{
					short index2 = msg.reader().readShort();
					int num99 = msg.reader().readInt();
					((CMap)MM.maps.elementAt(index2)).aMap = new int[num99];
					for (int num100 = 0; num100 < num99; num100++)
					{
						((CMap)MM.maps.elementAt(index2)).aMap[num100] = msg.reader().readInt();
					}
					((CMap)MM.maps.elementAt(index2)).changed = true;
				}
				break;
			}
			case -54:
				break;
			case -55:
				break;
			case -30:
			{
				GameScr.vcData = Rms.loadRMSInt("vcData");
				GameScr.vcItem = Rms.loadRMSInt("vcItem");
				GameScr.vcMap = Rms.loadRMSInt("vcMap");
				GameScr.vData = msg.reader().readByte();
				GameScr.vItem = msg.reader().readByte();
				GameScr.vMap = msg.reader().readByte();
				CRes.outz("server load vMap= " + GameScr.vMap + " vItem= " + GameScr.vItem + " vData= " + GameScr.vData);
				CRes.outz("***************************************: Server " + GameScr.vData);
				if (GameScr.vMap != GameScr.vcMap)
				{
					GameService.gI().requestMapData();
				}
				else
				{
					DataInputStream dataInputStream = new DataInputStream(Rms.loadRMS("dataMap"));
					MM.readDataMap(dataInputStream.r);
					GameScr.isLoadMapData = true;
				}
				if (GameScr.vData != GameScr.vcData)
				{
					GameService.gI().requestData();
				}
				else
				{
					CCanvas.readPart(null);
					SmallImage.readImage(null);
					CCanvas.readFileLevel(null);
					GameScr.isLoadData = true;
				}
				if (GameScr.vItem != GameScr.vcItem)
				{
					GameService.gI().requesItem();
					break;
				}
				DataInputStream dataInputStream2 = new DataInputStream(Rms.loadRMS("dataItem"));
				createItem(dataInputStream2.r);
				GameScr.isLoadItem = true;
				break;
			}
			case -38:
			{
				Rms.saveRMSInt("vcMap", msg.reader().readByte());
				sbyte[] data9 = NinjaUtil.readByteArray(msg.reader());
				Rms.saveRMS("dataMap", data9);
				DataInputStream dataInputStream3 = new DataInputStream(Rms.loadRMS("dataMap"));
				MM.readDataMap(dataInputStream3.r);
				GameScr.isLoadMapData = true;
				break;
			}
			case -31:
			{
				CRes.outz("doc data");
				Rms.saveRMSInt("vcData", msg.reader().readByte());
				sbyte[] data = NinjaUtil.readByteArray(msg.reader());
				sbyte[] data2 = NinjaUtil.readByteArray(msg.reader());
				sbyte[] data3 = NinjaUtil.readByteArray(msg.reader());
				CRes.outz("doc het");
				Rms.saveRMS("dataImage", data);
				Rms.saveRMS("dataPart", data2);
				Rms.saveRMS("dataLevel", data3);
				SmallImage.readImage(data);
				CCanvas.readPart(data2);
				CCanvas.readFileLevel(data3);
				GameScr.isLoadData = true;
				break;
			}
			case -32:
			{
				CRes.outz("doc item option");
				createItem(msg.reader());
				msg.reader().reset();
				sbyte[] data5 = new sbyte[msg.reader().available()];
				msg.reader().readFully(ref data5);
				Rms.saveRMS("dataItem", data5);
				GameScr.isLoadItem = true;
				break;
			}
			case -112:
			{
				CRes.outz("REIEVE eff data");
				short id = msg.reader().readShort();
				sbyte[] data4 = CRes.readByteArray(msg);
				EffectData effDataById = Effect.getEffDataById(id);
				effDataById.readData(data4);
				sbyte[] array8 = CRes.readByteArray(msg);
				effDataById.img = Image.createImage(array8, 0, array8.Length);
				break;
			}
			case -34:
			{
				sbyte b99 = msg.reader().readByte();
				CRes.outz("cAction= " + b99);
				if (CPlayer.myPlayer == null)
				{
					CPlayer.myPlayer = new CPlayer();
				}
				CPlayer.myPlayer.isAvenger = 0;
				CPlayer.myPlayer.cf = 0;
				CPlayer.myPlayer.wp = -1;
				CPlayer.myPlayer.state = 0;
				if (b99 != 0)
				{
					break;
				}
				int num134 = msg.reader().readUnsignedByte();
				CRes.outz("num body = " + num134);
				CPlayer.arrItemBody = new Item[num134];
				for (int num135 = 0; num135 < num134; num135++)
				{
					short num136 = msg.reader().readShort();
					CRes.outz("template id= " + num136 + " i= " + num135);
					if (num136 != -1)
					{
						CPlayer.arrItemBody[num135] = new Item();
						CPlayer.arrItemBody[num135].template = ItemTemplates.get(num136 + string.Empty);
						int num137 = CPlayer.arrItemBody[num135].template.type;
						CPlayer.arrItemBody[num135].quantity = msg.reader().readByte();
						CPlayer.arrItemBody[num135].HP = msg.reader().readByte();
						CPlayer.arrItemBody[num135].info = msg.reader().readUTF();
						CPlayer.arrItemBody[num135].content = msg.reader().readUTF();
						CPlayer.arrItemBody[num135].gems = new MyVector(string.Empty);
						CPlayer.arrItemBody[num135].nSocket = 0;
						CPlayer.arrItemBody[num135].isSocketing = false;
						sbyte b100 = msg.reader().readByte();
						if (b100 != 0)
						{
							CPlayer.arrItemBody[num135].itemOption = new ItemOption[b100];
							for (int num138 = 0; num138 < CPlayer.arrItemBody[num135].itemOption.Length; num138++)
							{
								sbyte b101 = msg.reader().readByte();
								int num139 = msg.reader().readUnsignedShort();
								if (b101 != -1)
								{
									CPlayer.arrItemBody[num135].itemOption[num138] = new ItemOption(b101, num139);
								}
								if (b101 == 16)
								{
									CPlayer.arrItemBody[num135].nSocket++;
									if (num139 != 0)
									{
										ItemTemplate itemTemplate4 = ItemTemplates.get(num139 + string.Empty);
										if (itemTemplate4 != null)
										{
											CPlayer.arrItemBody[num135].gems.addElement(itemTemplate4.iconID + string.Empty);
										}
									}
								}
								if (b101 == 17)
								{
									CPlayer.arrItemBody[num135].level = num139;
								}
							}
						}
						if (num135 == 0)
						{
							CPlayer.myPlayer.head = CPlayer.arrItemBody[0].template.part;
							if (PM.getMyPlayer2() != null)
							{
								PM.getMyPlayer2().head = CPlayer.myPlayer.head;
							}
						}
						if (num135 == 1)
						{
							CPlayer.myPlayer.leg = CPlayer.arrItemBody[1].template.part;
							if (PM.getMyPlayer2() != null)
							{
								PM.getMyPlayer2().leg = CPlayer.myPlayer.leg;
							}
						}
						if (num135 == 2)
						{
							CPlayer.myPlayer.body = CPlayer.arrItemBody[2].template.part;
							if (PM.getMyPlayer2() != null)
							{
								PM.getMyPlayer2().body = CPlayer.myPlayer.body;
							}
						}
						if (num135 == 3)
						{
							CPlayer.myPlayer.hat = CPlayer.arrItemBody[3].template.part;
							if (PM.getMyPlayer2() != null)
							{
								PM.getMyPlayer2().hat = CPlayer.myPlayer.hat;
							}
						}
						if (num135 == 4)
						{
							CPlayer.myPlayer.wing = CPlayer.arrItemBody[4].template.part;
							if (PM.getMyPlayer2() != null)
							{
								PM.getMyPlayer2().wing = CPlayer.myPlayer.wing;
							}
						}
						if (num135 != 5)
						{
							continue;
						}
						if (CPlayer.arrItemBody[5].template.id >= 391 && CPlayer.arrItemBody[5].template.id <= 397)
						{
							CPlayer.myPlayer.wp = -1;
							if (PM.getMyPlayer2() != null)
							{
								PM.getMyPlayer2().wp = -1;
							}
						}
						else
						{
							CPlayer.myPlayer.wp = CPlayer.arrItemBody[5].template.part;
							if (PM.getMyPlayer2() != null)
							{
								PM.getMyPlayer2().wp = CPlayer.myPlayer.wp;
							}
						}
						continue;
					}
					if (num135 == 0)
					{
						CPlayer.myPlayer.head = -1;
						if (PM.getMyPlayer2() != null)
						{
							PM.getMyPlayer2().head = -1;
						}
					}
					if (num135 == 1)
					{
						CPlayer.myPlayer.leg = -1;
						if (PM.getMyPlayer2() != null)
						{
							PM.getMyPlayer2().leg = -1;
						}
					}
					if (num135 == 2)
					{
						CPlayer.myPlayer.body = -1;
						if (PM.getMyPlayer2() != null)
						{
							PM.getMyPlayer2().body = -1;
						}
					}
					if (num135 == 3)
					{
						CPlayer.myPlayer.hat = -1;
						if (PM.getMyPlayer2() != null)
						{
							PM.getMyPlayer2().hat = -1;
						}
					}
					if (num135 == 4)
					{
						CPlayer.myPlayer.wing = -1;
						if (PM.getMyPlayer2() != null)
						{
							PM.getMyPlayer2().wing = -1;
						}
					}
					if (num135 == 5)
					{
						CPlayer.myPlayer.wp = -1;
						if (PM.getMyPlayer2() != null)
						{
							PM.getMyPlayer2().wp = -1;
						}
					}
				}
				InfoDlg.hide();
				break;
			}
			case -35:
			{
				sbyte b33 = msg.reader().readByte();
				CRes.outz("cAction= " + b33);
				if (b33 == 0)
				{
					int num48 = msg.reader().readUnsignedByte();
					CPlayer.arrItemBag = new Item[20];
					CRes.outz("numC=" + num48);
					for (int num49 = 0; num49 < num48; num49++)
					{
						short num50 = msg.reader().readShort();
						if (num50 == -1)
						{
							continue;
						}
						CPlayer.arrItemBag[num49] = new Item();
						CPlayer.arrItemBag[num49].template = ItemTemplates.get(num50 + string.Empty);
						CPlayer.arrItemBag[num49].quantity = msg.reader().readByte();
						CRes.outz("item quaitly= " + CPlayer.arrItemBag[num49].quantity);
						CPlayer.arrItemBag[num49].HP = msg.reader().readByte();
						CPlayer.arrItemBag[num49].info = msg.reader().readUTF();
						CPlayer.arrItemBag[num49].content = msg.reader().readUTF();
						CPlayer.arrItemBag[num49].indexUI = num49;
						CPlayer.arrItemBag[num49].gems = new MyVector(string.Empty);
						CPlayer.arrItemBag[num49].nSocket = 0;
						CPlayer.arrItemBag[num49].isSocketing = false;
						sbyte b34 = msg.reader().readByte();
						if (b34 != 0)
						{
							CPlayer.arrItemBag[num49].itemOption = new ItemOption[b34];
							for (int num51 = 0; num51 < CPlayer.arrItemBag[num49].itemOption.Length; num51++)
							{
								sbyte b35 = msg.reader().readByte();
								int num52 = msg.reader().readUnsignedShort();
								if (b35 != -1)
								{
									CPlayer.arrItemBag[num49].itemOption[num51] = new ItemOption(b35, num52);
								}
								if (b35 == 15)
								{
									CPlayer.arrItemBag[num49].isSocketing = true;
									CPlayer.arrItemBag[num49].daySocket = num52 / 24;
									CPlayer.arrItemBag[num49].hourSocket = num52 % 24;
								}
								if (b35 == 16)
								{
									CPlayer.arrItemBag[num49].nSocket++;
									if (num52 != 0)
									{
										ItemTemplate itemTemplate3 = ItemTemplates.get(num52 + string.Empty);
										if (itemTemplate3 != null)
										{
											CPlayer.arrItemBag[num49].gems.addElement(itemTemplate3.iconID + string.Empty);
										}
									}
								}
								if (b35 == 17)
								{
									CPlayer.arrItemBag[num49].level = num52;
								}
							}
							CPlayer.arrItemBag[num49].compare = CCanvas.panel.getCompare(CPlayer.arrItemBag[num49]);
						}
						if (CPlayer.arrItemBag[num49].template.type != 11)
						{
						}
					}
					for (int num53 = 0; num53 < CPlayer.arrItemBag.Length; num53++)
					{
						if (CPlayer.arrItemBag[num53] != null)
						{
							CPlayer.arrItemBag[num53].isInBalo = false;
						}
					}
					for (int num54 = 0; num54 < CPlayer.arrItemBalo.Length; num54++)
					{
						if (CPlayer.arrItemBalo[num54] == null)
						{
							continue;
						}
						for (int num55 = 0; num55 < CPlayer.arrItemBag.Length; num55++)
						{
							if (CPlayer.arrItemBag[num55] != null && CPlayer.arrItemBalo[num54].indexInBag == num55)
							{
								CPlayer.arrItemBag[num55].isInBalo = true;
							}
						}
					}
					for (int num56 = 0; num56 < CPlayer.arrItemGhepNgoc.Length; num56++)
					{
						CPlayer.arrItemGhepNgoc[num56] = null;
					}
					InfoDlg.hide();
				}
				if (b33 == 2)
				{
					sbyte b36 = msg.reader().readByte();
					sbyte b37 = msg.reader().readByte();
					int quantity = CPlayer.arrItemBag[b36].quantity;
					CPlayer.arrItemBag[b36].quantity = b37;
					if (CPlayer.arrItemBag[b36].quantity == 0)
					{
						CPlayer.arrItemBag[b36] = null;
					}
					InfoDlg.hide();
				}
				break;
			}
			case -36:
			{
				sbyte b30 = msg.reader().readByte();
				CRes.outz("d Action= " + b30);
				if (b30 != 0)
				{
					break;
				}
				int num42 = msg.reader().readUnsignedByte();
				CRes.outz("num box = " + num42);
				CPlayer.arrItemBox = new Item[num42];
				for (int num43 = 0; num43 < num42; num43++)
				{
					short num44 = msg.reader().readShort();
					if (num44 == -1)
					{
						continue;
					}
					CPlayer.arrItemBox[num43] = new Item();
					CPlayer.arrItemBox[num43].template = ItemTemplates.get(num44 + string.Empty);
					int num45 = CPlayer.arrItemBox[num43].template.type;
					CPlayer.arrItemBox[num43].quantity = msg.reader().readByte();
					CPlayer.arrItemBox[num43].HP = msg.reader().readByte();
					CPlayer.arrItemBox[num43].info = msg.reader().readUTF();
					CPlayer.arrItemBox[num43].content = msg.reader().readUTF();
					CPlayer.arrItemBox[num43].gems = new MyVector(string.Empty);
					CPlayer.arrItemBox[num43].nSocket = 0;
					CPlayer.arrItemBox[num43].isSocketing = false;
					sbyte b31 = msg.reader().readByte();
					if (b31 == 0)
					{
						continue;
					}
					CPlayer.arrItemBox[num43].itemOption = new ItemOption[b31];
					for (int num46 = 0; num46 < CPlayer.arrItemBox[num43].itemOption.Length; num46++)
					{
						sbyte b32 = msg.reader().readByte();
						int num47 = msg.reader().readUnsignedShort();
						if (b32 != -1)
						{
							CPlayer.arrItemBox[num43].itemOption[num46] = new ItemOption(b32, num47);
						}
						if (b32 == 16)
						{
							CPlayer.arrItemBox[num43].nSocket++;
							if (num47 != 0)
							{
								ItemTemplate itemTemplate2 = ItemTemplates.get(num47 + string.Empty);
								if (itemTemplate2 != null)
								{
									CPlayer.arrItemBox[num43].gems.addElement(itemTemplate2.iconID + string.Empty);
								}
							}
						}
						if (b32 == 17)
						{
							CPlayer.arrItemBox[num43].level = num47;
						}
					}
				}
				InfoDlg.hide();
				break;
			}
			case -42:
			{
				sbyte b114 = msg.reader().readByte();
				if (b114 != 0)
				{
					break;
				}
				int num151 = msg.reader().readUnsignedByte();
				CPlayer.arrItemBalo = new Item[num151];
				CPlayer.idItemBalo = new int[num151];
				for (int num152 = 0; num152 < num151; num152++)
				{
					short num153 = msg.reader().readShort();
					if (num153 == -1)
					{
						continue;
					}
					CPlayer.arrItemBalo[num152] = new Item();
					CPlayer.arrItemBalo[num152].template = ItemTemplates.get(num153 + string.Empty);
					CPlayer.idItemBalo[num152] = CPlayer.arrItemBalo[num152].template.iconID;
					int num154 = CPlayer.arrItemBalo[num152].template.type;
					CPlayer.arrItemBalo[num152].quantity = msg.reader().readByte();
					CPlayer.arrItemBalo[num152].HP = msg.reader().readByte();
					CPlayer.arrItemBalo[num152].info = msg.reader().readUTF();
					CPlayer.arrItemBalo[num152].content = msg.reader().readUTF();
					CPlayer.arrItemBalo[num152].gems = new MyVector(string.Empty);
					CPlayer.arrItemBalo[num152].nSocket = 0;
					CPlayer.arrItemBalo[num152].isSocketing = false;
					sbyte b115 = msg.reader().readByte();
					if (b115 != 0)
					{
						CPlayer.arrItemBalo[num152].itemOption = new ItemOption[b115];
						for (int num155 = 0; num155 < CPlayer.arrItemBalo[num152].itemOption.Length; num155++)
						{
							sbyte b116 = msg.reader().readByte();
							int num156 = msg.reader().readUnsignedShort();
							if (b116 != -1)
							{
								CPlayer.arrItemBalo[num152].itemOption[num155] = new ItemOption(b116, num156);
							}
							if (b116 == 16)
							{
								CPlayer.arrItemBalo[num152].nSocket++;
								if (num156 != 0)
								{
									ItemTemplate itemTemplate5 = ItemTemplates.get(num156 + string.Empty);
									if (itemTemplate5 != null)
									{
										CPlayer.arrItemBalo[num152].gems.addElement(itemTemplate5.iconID + string.Empty);
									}
								}
							}
							if (b116 == 17)
							{
								CPlayer.arrItemBalo[num152].level = num156;
							}
						}
					}
					CPlayer.arrItemBalo[num152].indexInBag = msg.reader().readByte();
				}
				for (int num157 = 0; num157 < CPlayer.arrItemBag.Length; num157++)
				{
					if (CPlayer.arrItemBag[num157] != null)
					{
						CPlayer.arrItemBag[num157].isInBalo = false;
					}
				}
				for (int num158 = 0; num158 < CPlayer.arrItemBalo.Length; num158++)
				{
					if (CPlayer.arrItemBalo[num158] == null)
					{
						continue;
					}
					for (int num159 = 0; num159 < CPlayer.arrItemBag.Length; num159++)
					{
						if (CPlayer.arrItemBag[num159] != null && CPlayer.arrItemBalo[num158].indexInBag == num159)
						{
							CPlayer.arrItemBag[num159].isInBalo = true;
						}
					}
				}
				if ((CCanvas.curScr == MenuScr.gI() && CCanvas.panel.isShow && CCanvas.panel.type != 8) || (CCanvas.curScr == CCanvas.prepareScr && CCanvas.panel.type != 8))
				{
					InfoDlg.hide();
				}
				GameScr.initPlayItem();
				break;
			}
			case -45:
			{
				sbyte b85 = msg.reader().readByte();
				short gun = msg.reader().readShort();
				PM.p[b85].changeGun(gun);
				CPlayer.idItemBalo[GameScr.curItemSelec] = msg.reader().readShort();
				CRes.outz("change gun index= " + b85 + " gun= " + PM.p[b85].wp + " index chang =" + GameScr.curItemSelec + " icon id= " + CPlayer.idItemBalo[GameScr.curItemSelec]);
				break;
			}
			case 4:
			{
				sbyte b90 = msg.reader().readByte();
				string reason2 = msg.reader().readUTF();
				gameLogicHandler.onLoginFail(reason2);
				break;
			}
			case 3:
			{
				GameService.gI().bangxephang(-1, -1);
				CRes.outz("TOI DAY");
				currt = mSystem.currentTimeMillis();
				MyMidlet.myInfo = new CPlayer();
				CPlayer myInfo = MyMidlet.myInfo;
				myInfo.IDDB = msg.reader().readInt();
				myInfo.name = msg.reader().readUTF();
				CPlayer.myPlayer.name = myInfo.name;
				CPlayer.myPlayer.IDDB = myInfo.IDDB;
				CRes.outz("IDDB= " + myInfo.IDDB);
				myInfo.xu = msg.reader().readInt();
				myInfo.luong = msg.reader().readInt();
				myInfo.exp = msg.reader().readInt();
				myInfo.getStringLevel();
				myInfo.cup = msg.reader().readInt();
				myInfo.clanID = msg.reader().readShort();
				int num112 = msg.reader().readInt();
				int num113 = msg.reader().readInt();
				int num114 = msg.reader().readInt();
				myInfo.strXu = NinjaUtil.getMoneys(myInfo.xu);
				myInfo.strLuong = NinjaUtil.getMoneys(myInfo.luong);
				MenuScr.getIdMenu(0);
				if (PM.p == null)
				{
					PM.p = new CPlayer[PM.MAX_PLAYER];
				}
				MyMidlet.trainingSuccess = msg.reader().readByte() == 0;
				CPlayer.busyHammer = msg.reader().readByte();
				CPlayer.nHammer = msg.reader().readByte();
				gameLogicHandler.onLoginSuccess();
				break;
			}
			case -52:
				break;
			case -53:
			{
				short num105 = msg.reader().readShort();
				SmallImage.newSmallVersion = new sbyte[num105];
				for (int num106 = 0; num106 < num105; num106++)
				{
					SmallImage.newSmallVersion[num106] = msg.reader().readByte();
				}
				break;
			}
			case -28:
			{
				MyVector myVector6 = new MyVector("rommList2");
				sbyte b40 = msg.reader().readByte();
				if (b40 == 1)
				{
					CCanvas.inputDlg.setInfo("Nhập mật khẩu của phòng", new Command(string.Empty, this, 1006, null), new Command(string.Empty, this, 1007, null), TField.INPUT_TYPE_ANY);
					CCanvas.inputDlg.show();
					CCanvas.inputDlg.tfInput.doChangeToTextBox(false);
					break;
				}
				sbyte b41 = -1;
				sbyte b42 = -1;
				RoomInfo roomInfo = new RoomInfo();
				roomInfo.name = "Tìm khu vực";
				myVector6.addElement(roomInfo);
				while (msg.reader().available() > 0)
				{
					RoomInfo roomInfo2 = new RoomInfo();
					roomInfo2.id = msg.reader().readByte();
					CRes.outz("id = " + roomInfo2.id);
					if (roomInfo2.id != -1)
					{
						roomInfo2.boardID = msg.reader().readByte();
						roomInfo2.mapID = msg.reader().readByte();
						roomInfo2.playerMax = msg.reader().readByte() + "/" + msg.reader().readByte();
						roomInfo2.money = msg.reader().readInt();
						CRes.outz("money room= " + roomInfo2.money);
						string text4 = ((roomInfo2.mapID != 100) ? MM.getMapFileByID(roomInfo2.mapID).mapName : "Ngẫu nhiên");
						roomInfo2.name = "P" + roomInfo2.id + "-" + roomInfo2.boardID + " " + ((CCanvas.w <= 200) ? string.Empty : ("(" + text4 + ")"));
						roomInfo2.lv = b41;
						myVector6.addElement(roomInfo2);
					}
					else
					{
						roomInfo2.name = msg.reader().readUTF();
						myVector6.addElement(roomInfo2);
						b42++;
						b41++;
						RoomInfo roomInfo3 = new RoomInfo();
						roomInfo3.name = "Tạo khu vực";
						roomInfo3.lv = b41;
						roomInfo3.boardID = -1;
						myVector6.addElement(roomInfo3);
					}
				}
				CCanvas.panel.roomList = myVector6;
				CCanvas.panel.setTypeRoomlist();
				CCanvas.panel.show();
				if (CCanvas.gameScr != null)
				{
					CCanvas.gameScr.unload();
					CCanvas.gameScr.clearObject();
				}
				InfoDlg.hide();
				break;
			}
			case 6:
				break;
			case 7:
				break;
			case -41:
			{
				CRes.outz("RECIEVE ICON");
				int num39 = msg.reader().readShort();
				sbyte[] array9 = null;
				try
				{
					array9 = CRes.readByteArray(msg);
					if (SmallImage.imgNew != null && SmallImage.imgNew[num39] != null)
					{
						SmallImage.imgNew[num39].img = createImage(array9);
					}
				}
				catch (Exception e)
				{
					Debug.LogError(e);
					array9 = null;
					if (SmallImage.imgNew != null && SmallImage.imgNew[num39] != null)
					{
						SmallImage.imgNew[num39].img = Image.createRGBImage(new int[1] { 8912896 }, 1, 1, true);
					}
				}
				if (array9 != null && mGraphics.zoomLevel > 1)
				{
					Rms.saveRMS(mGraphics.zoomLevel + "Small" + num39, array9);
				}
				break;
			}
			case -90:
			{
				int num185 = msg.reader().readInt();
				short head2 = msg.reader().readShort();
				short leg2 = msg.reader().readShort();
				short body2 = msg.reader().readShort();
				short hat = msg.reader().readShort();
				short wing = msg.reader().readShort();
				short wp = msg.reader().readShort();
				CPlayer.myPlayer.head = head2;
				CPlayer.myPlayer.leg = leg2;
				CPlayer.myPlayer.body = body2;
				CPlayer.myPlayer.hat = hat;
				CPlayer.myPlayer.wing = wing;
				CPlayer.myPlayer.wp = wp;
				CPlayer.myPlayer.isAvenger = msg.reader().readByte();
				if (CPlayer.myPlayer.isFlyAvenger())
				{
					CPlayer.myPlayer.runSpeed = 2;
				}
				if (PM.getMyPlayer2() != null && num185 == PM.getMyPlayer2().IDDB)
				{
					PM.getMyPlayer2().head = head2;
					PM.getMyPlayer2().leg = leg2;
					PM.getMyPlayer2().body = body2;
					PM.getMyPlayer2().hat = hat;
					PM.getMyPlayer2().wing = wing;
					PM.getMyPlayer2().wp = wp;
					PM.getMyPlayer2().isAvenger = CPlayer.myPlayer.isAvenger;
					if (!CPlayer.myPlayer.isFlyAvenger())
					{
						CPlayer.myPlayer.falling = true;
						PM.getMyPlayer2().falling = true;
						break;
					}
					CPlayer.myPlayer.falling = false;
					PM.getMyPlayer2().falling = false;
					PM.getMyPlayer2().nexty = PM.getMyPlayer2().y;
					PM.getMyPlayer2().lasty = (short)PM.getMyPlayer2().y;
				}
				break;
			}
			case 8:
			{
				CRes.outz("JOINT BOARD SUCCESS");
				sbyte b97 = msg.reader().readByte();
				CRes.outz("join index= " + b97);
				PM.p[b97] = new CPlayer();
				PM.p[b97].teamColor = (sbyte)((b97 % 2 != 0) ? 1 : 0);
				PM.p[b97].IDDB = msg.reader().readInt();
				PM.p[b97].name = msg.reader().readUTF();
				PM.p[b97].clanID = msg.reader().readShort();
				PM.p[b97].exp = msg.reader().readInt();
				PM.p[b97].getStringLevel();
				PM.p[b97].head = msg.reader().readShort();
				PM.p[b97].leg = msg.reader().readShort();
				PM.p[b97].body = msg.reader().readShort();
				PM.p[b97].hat = msg.reader().readShort();
				PM.p[b97].wing = msg.reader().readShort();
				PM.p[b97].wp = msg.reader().readShort();
				PM.p[b97].isAvenger = msg.reader().readByte();
				if (PM.p[b97].isFlyAvenger())
				{
					PM.p[b97].runSpeed = 2;
				}
				CRes.outz("joint id= " + PM.p[b97].IDDB + ", name=" + PM.p[b97].name + ", exp=" + PM.p[b97].exp + " head= " + PM.p[b97].head + " leg= " + PM.p[b97].leg + " body=" + PM.p[b97].body + " hat= " + PM.p[b97].hat + " wp= " + PM.p[b97].wp);
				if (PM.p[b97].IDDB == MyMidlet.myInfo.IDDB)
				{
					SmallImage.unload();
					GameScr.myIndex = b97;
					MyMidlet.myInfo.index = b97;
					PM.p[b97].power = MyMidlet.myInfo.power;
				}
				CCanvas.prepareScr.setOwner(msg.reader().readInt());
				CCanvas.prepareScr.currRoom = msg.reader().readByte();
				CCanvas.prepareScr.currZone = msg.reader().readByte();
				CRes.outz("UPDATE CLAND ID ");
				int num131 = msg.reader().readInt();
				if (num131 != -1)
				{
					PM.p[b97].clan = new Clan();
					PM.p[b97].clanID = num131;
					PM.p[b97].clan.imgID = msg.reader().readShort();
				}
				PM.p[b97].pointSeat = msg.reader().readByte();
				CCanvas.prepareScr.addInfo(PM.p[b97].name + " vừa vào bàn.");
				break;
			}
			case 12:
				break;
			case 14:
			{
				int num109 = msg.reader().readInt();
				CRes.outz("ID leave" + num109);
				int owner = msg.reader().readInt();
				CCanvas.prepareScr.playerLeave(num109);
				CCanvas.prepareScr.setOwner(owner);
				if (num109 == MyMidlet.myInfo.IDDB)
				{
					for (int num110 = 0; num110 < PM.p.Length; num110++)
					{
						PM.p[num110] = null;
					}
				}
				else
				{
					if (CCanvas.curScr == CCanvas.gameScr)
					{
						for (int num111 = 0; num111 < PM.p.Length; num111++)
						{
							CPlayer cPlayer5 = PM.p[num111];
							if (cPlayer5 != null && num109 == cPlayer5.IDDB)
							{
								if (PrepareScr.currLevel != 7)
								{
									PM.p[num111].state = 5;
								}
								else
								{
									PM.p[num111] = null;
								}
								break;
							}
						}
					}
					if (PrepareScr.currLevel != 7 && CCanvas.curScr == GameScr.instance && !GameScr.pm.isYourTurn())
					{
						GameScr.cam.setPlayerMode(PM.curP);
					}
				}
				PrepareScr.calcBalance();
				mSystem.mNotifyAll();
				CRes.outz("<< LeaveBoard ID : " + num109);
				break;
			}
			case 16:
			{
				int id2 = msg.reader().readInt();
				bool isReady = msg.reader().readBoolean();
				gameLogicHandler.onSomeOneReady(id2, isReady);
				break;
			}
			case 19:
			{
				msg.reader().readShort();
				int num102 = msg.reader().readInt();
				PrepareScr.currLevel = msg.reader().readByte();
				CCanvas.prepareScr.setMoney(num102);
				CRes.outz("NHAN M - DAT TIEN CUOC: " + num102);
				break;
			}
			case 9:
			{
				int num101 = msg.reader().readInt();
				string text5 = msg.reader().readUTF();
				if (CCanvas.curScr != MenuScr.gI())
				{
					gameLogicHandler.onChatFromBoard(text5, num101);
				}
				break;
			}
			case 11:
			{
				msg.reader().readShort();
				int num93 = msg.reader().readInt();
				string reason = msg.reader().readUTF();
				gameLogicHandler.onKicked(num93, reason);
				CRes.outz("NHAN M KICK id: " + num93);
				break;
			}
			case 29:
			{
				MyVector myVector8 = new MyVector();
				sbyte b55 = msg.reader().readByte();
				for (int num80 = 0; num80 < b55; num80++)
				{
					CPlayer cPlayer4 = new CPlayer();
					cPlayer4.IDDB = msg.reader().readInt();
					cPlayer4.name = msg.reader().readUTF();
					cPlayer4.head = msg.reader().readShort();
					cPlayer4.hat = msg.reader().readShort();
					cPlayer4.body = msg.reader().readShort();
					cPlayer4.leg = msg.reader().readShort();
					cPlayer4.wing = msg.reader().readShort();
					cPlayer4.wp = msg.reader().readShort();
					cPlayer4.exp = msg.reader().readInt();
					cPlayer4.getStringLevel();
					cPlayer4.status = msg.reader().readByte();
					cPlayer4.clan = new Clan();
					cPlayer4.clan.imgID = msg.reader().readShort();
					myVector8.addElement(cPlayer4);
				}
				gameLogicHandler.onFriendList(myVector8);
				InfoDlg.hide();
				break;
			}
			case 36:
			{
				MyVector myVector7 = new MyVector();
				while (msg.reader().available() > 0)
				{
					PlayerInfo playerInfo = new PlayerInfo();
					playerInfo.IDDB = msg.reader().readInt();
					playerInfo.name = msg.reader().readUTF();
					myVector7.addElement(playerInfo);
				}
				gameLogicHandler.onSearchResult(myVector7);
				break;
			}
			case 32:
			{
				sbyte b54 = msg.reader().readByte();
				gameLogicHandler.onAddFriendResult(b54);
				break;
			}
			case 33:
			{
				sbyte b51 = msg.reader().readByte();
				gameLogicHandler.onDelFriendResult(b51);
				break;
			}
			case 5:
			{
				CRes.outz("CHAT TO");
				MsgInfo msgInfo = new MsgInfo();
				msgInfo.fromID = msg.reader().readInt();
				msgInfo.fromName = msg.reader().readUTF();
				msgInfo.message = msg.reader().readUTF();
				gameLogicHandler.onChatFrom(msgInfo);
				break;
			}
			case 45:
				gameLogicHandler.onServerMessage(msg.reader().readUTF());
				break;
			case 48:
				gameLogicHandler.onVersion(msg.reader().readUTF(), msg.reader().readUTF());
				break;
			case 47:
				gameLogicHandler.onAdminCommandResponse(msg.reader().readUTF());
				break;
			case 52:
			{
				int num67 = msg.reader().readInt();
				CRes.outz(num67 + " whoBonus");
				int num68 = msg.reader().readInt();
				int num69 = msg.reader().readInt();
				if (num67 == MyMidlet.myInfo.IDDB)
				{
					MyMidlet.myInfo.xu = num69;
					MyMidlet.myInfo.strXu = NinjaUtil.getMoneys(num69);
				}
				if (CCanvas.curScr == CCanvas.gameScr)
				{
					CCanvas.gameScr.activeMoney2Fly(num68, num67);
				}
				CRes.outz("<< BonusMoney ID " + num67 + " Money " + num68);
				break;
			}
			case 10:
			{
				string text2 = msg.reader().readUTF();
				if (!text2.Equals(string.Empty))
				{
					gameLogicHandler.onSetMoneyError(text2);
				}
				if (InfoDlg.isShow)
				{
					InfoDlg.hide();
				}
				break;
			}
			case 20:
			{
				BulletForGun.nMustGet = 0;
				CRes.outz("START ARMY");
				sbyte b18 = msg.reader().readByte();
				CRes.outz("MAP ID= " + b18);
				sbyte timeInterval = msg.reader().readByte();
				sbyte b19 = 8;
				short[] array = new short[b19];
				short[] array2 = new short[b19];
				short[] array3 = new short[b19];
				short[] array4 = new short[b19];
				short[] array5 = new short[b19];
				for (int num26 = 0; num26 < b19; num26++)
				{
					array[num26] = msg.reader().readShort();
					if (array[num26] != -1)
					{
						array2[num26] = msg.reader().readShort();
						array3[num26] = msg.reader().readShort();
						if (PrepareScr.currLevel == 5)
						{
							array4[num26] = msg.reader().readShort();
						}
						else
						{
							array4[num26] = array3[num26];
						}
						array5[num26] = msg.reader().readShort();
					}
					else
					{
						array2[num26] = -1;
					}
				}
				int bgID = msg.reader().readByte();
				sbyte b20 = msg.reader().readByte();
				CRes.outz("co tong cong " + b20 + " loai sung");
				for (int num27 = 0; num27 < b20; num27++)
				{
					short num28 = msg.reader().readShort();
					CRes.outz("gun ID+ " + num28);
					if (!BulletForGun.isExistBull(num28))
					{
						GameService.gI().getBull(num28);
						BulletForGun.nMustGet++;
					}
				}
				if (CCanvas.gameScr == null)
				{
					CCanvas.gameScr = new GameScr();
				}
				CCanvas.gameScr.initGame(b18, timeInterval, array, array2, array3, array4, array5, 0, bgID);
				CCanvas.menu.showMenu = false;
				BM.removeTornado();
				nextTurnFlag = true;
				break;
			}
			case -40:
			case 0:
			{
				short num40 = msg.reader().readShort();
				sbyte bullType = msg.reader().readByte();
				CRes.outz("get bull image id= " + num40);
				short num41 = msg.reader().readShort();
				CRes.outz("lent image= " + num41);
				sbyte[] data6 = new sbyte[num41];
				msg.reader().read(ref data6, 0, num41);
				Image bullImage = Image.createImage(data6, 0, num41);
				BulletForGun o2 = new BulletForGun(num40, bullImage, bullType);
				BulletForGun.vBulls.addElement(o2);
				BulletForGun.nMustGet--;
				if (BulletForGun.nMustGet == 0 && CCanvas.curScr != CCanvas.gameScr)
				{
					GameService.gI().startGameOk();
					InfoDlg.showWait();
				}
				break;
			}
			case -67:
				CCanvas.gameScr.show();
				CCanvas.panel.hide();
				InfoDlg.hide();
				break;
			case 93:
			{
				sbyte b80 = msg.reader().readByte();
				short num116 = msg.reader().readShort();
				short num117 = msg.reader().readShort();
				CRes.outz("FLY  x= " + num116 + " y= " + num117 + " ?? " + PM.p[b80].x + " , " + PM.p[b80].y);
				if (PM.p[b80].GetType() == typeof(BigBoss) && PM.p[b80].type == 2)
				{
					if (PM.p[b80].xToNow != num116 || PM.p[b80].yToNow != num117)
					{
						PM.p[b80].xToNow = num116;
						PM.p[b80].yToNow = num117;
						PM.p[b80].state = 1;
						GameScr.waitting1000();
					}
				}
				else if (PM.p[b80].isAvenger == 0 || PM.p[b80].isAvenger == 9)
				{
					GameScr.pm.flyTo(b80, num116, num117);
				}
				else if (b80 != MyMidlet.myInfo.index && (PM.p[b80].xToNow != num116 || PM.p[b80].yToNow != num117))
				{
					PM.p[b80].state = 1;
					PM.p[b80].xToNow = num116;
					PM.p[b80].yToNow = num117;
				}
				GameScr.cam.setPlayerMode(b80);
				if (CCanvas.curScr == CCanvas.gameScr && (PM.p[b80].isAvenger == 0 || PM.p[b80].isAvenger == 9) && (PM.p[b80].xToNow != num116 || PM.p[b80].yToNow != num117))
				{
					mSystem.mWait();
				}
				break;
			}
			case 21:
			{
				sbyte b74 = msg.reader().readByte();
				short num107 = msg.reader().readShort();
				short num108 = msg.reader().readShort();
				PM.p[b74].xToNow = num107;
				PM.p[b74].yToNow = num108;
				if (PM.p[b74].x != num107 || PM.p[b74].y != num108)
				{
					GameScr.pm.movePlayer(b74, num107, num108);
					if (b74 != GameScr.myIndex && !PM.p[b74].isRunSpeed)
					{
						mSystem.mWait();
					}
				}
				break;
			}
			case -64:
			{
				sbyte b73 = msg.reader().readByte();
				short num103 = msg.reader().readShort();
				short num104 = msg.reader().readShort();
				PM.p[b73].xToNow = num103;
				PM.p[b73].yToNow = num104;
				PM.p[b73].isRunSpeed = true;
				if (PM.p[b73].x != num103 || PM.p[b73].y != num104)
				{
					GameScr.pm.movePlayer(b73, num103, num104);
					mSystem.mWait();
				}
				break;
			}
			case 53:
			{
				CRes.outz("UPDATE XY");
				sbyte b72 = msg.reader().readByte();
				short x2 = msg.reader().readShort();
				short y2 = msg.reader().readShort();
				GameScr.pm.updatePlayerXY(b72, x2, y2);
				break;
			}
			case 22:
			case 84:
			{
				InfoDlg.hide();
				sbyte b44 = msg.reader().readByte();
				CRes.outz("TYPE SHOOT= " + b44);
				sbyte b45 = msg.reader().readByte();
				CRes.outz("FIRE ARMY critical= " + b45);
				sbyte b46 = msg.reader().readByte();
				sbyte b47 = msg.reader().readByte();
				CRes.outz("BULLET TYPE= " + b47);
				short xP = msg.reader().readShort();
				short yP = msg.reader().readShort();
				short angle = msg.reader().readShort();
				sbyte force = 0;
				if (b47 == 17 || b47 == 19)
				{
					force = msg.reader().readByte();
				}
				if (b47 == 14 || b47 == 40)
				{
					BM.angle = msg.reader().readByte();
					BM.force = msg.reader().readByte();
				}
				if (b47 == 44 || b47 == 45 || b47 == 47)
				{
					BM.angle = msg.reader().readByte();
					CRes.outz("ANGLE= " + BM.angle);
				}
				sbyte numShoot = msg.reader().readByte();
				sbyte b48 = msg.reader().readByte();
				BM.nOrbit = b48;
				CRes.outz("NBULL= " + b48);
				short[][] array11 = new short[b48][];
				short[][] array12 = new short[b48][];
				short[][] array13 = new short[b48][];
				short[][] array14 = new short[b48][];
				for (int num71 = 0; num71 < b48; num71++)
				{
					short num72 = msg.reader().readShort();
					CRes.outz("LENT= " + num72);
					short[] array15 = new short[num72];
					short[] array16 = new short[num72];
					short[] array17 = new short[num72];
					short[] array18 = new short[num72];
					if (b44 == 0)
					{
						for (int num73 = 0; num73 < num72; num73++)
						{
							if (num73 == 0)
							{
								array15[num73] = msg.reader().readShort();
								array16[num73] = msg.reader().readShort();
								array17[num73] = array15[num73];
								array18[num73] = array16[num73];
							}
							else
							{
								if (num73 == num72 - 1 && b47 == 49)
								{
									try
									{
										array17[num73] = msg.reader().readShort();
										array18[num73] = msg.reader().readShort();
										if (b47 == 49)
										{
											Bullet.dXLaser = msg.reader().readByte();
											Bullet.dYLaser = msg.reader().readByte();
											if (CScreen.isUseHighFrameRate())
											{
												Bullet.dXLaser /= 2;
												Bullet.dYLaser /= 2;
											}
										}
									}
									catch (Exception)
									{
										CRes.outz("error");
									}
									break;
								}
								array15[num73] = msg.reader().readByte();
								array16[num73] = msg.reader().readByte();
								array17[num73] = (short)(array17[num73 - 1] + array15[num73]);
								array18[num73] = (short)(array18[num73 - 1] + array16[num73]);
							}
							if (b47 == 17)
							{
								CRes.outz("xPaint= " + array17[num73] + "yPaint= " + array18[num73]);
							}
						}
					}
					if (b44 == 1)
					{
						for (int num74 = 0; num74 < num72; num74++)
						{
							array17[num74] = msg.reader().readShort();
							array18[num74] = msg.reader().readShort();
						}
					}
					array11[num71] = array17;
					array12[num71] = array18;
					if (b47 == 48)
					{
						sbyte b49 = msg.reader().readByte();
						short[] array19 = new short[b49];
						short[] array20 = new short[b49];
						for (int num75 = 0; num75 < b49; num75++)
						{
							array19[num75] = msg.reader().readShort();
							array20[num75] = msg.reader().readShort();
							CRes.outz("xHit= " + array19[num75]);
						}
						array13[num71] = array19;
						array14[num71] = array20;
					}
				}
				sbyte b50 = msg.reader().readByte();
				CRes.outz("type sieu cao= " + b50);
				int num76 = -1;
				int num77 = -1;
				if (b50 == 1 || b50 == 2)
				{
					num76 = msg.reader().readShort();
					num77 = msg.reader().readShort();
					CRes.outz("xsuper= " + num76 + " ysuper= " + num77);
				}
				else if (b50 != 3 && b50 != 4)
				{
				}
				if (PM.p[b46] != null)
				{
					PM.p[b46].shoot(b45, b46, xP, yP, b47, array11, array12, numShoot, force, angle, array13, array14, num76, num77);
					if (CCanvas.curScr == CCanvas.gameScr)
					{
						mSystem.mWait();
					}
				}
				break;
			}
			case 51:
			{
				sbyte b21 = msg.reader().readByte();
				CRes.outz("who update HP= " + b21);
				int num29 = msg.reader().readUnsignedShort();
				sbyte b22 = msg.reader().readByte();
				sbyte b23 = msg.reader().readByte();
				if (PM.p[b21] != null)
				{
					PM.p[b21].updateHP(num29, b22);
					if (PM.p[b21].stateDie == 2 && b23 == 0)
					{
						GameScr.chatList.addElement(PM.p[b21].name + ": Cám ơn đồng đội đã cứu mình!");
					}
					PM.p[b21].stateDie = b23;
					if (b23 == 2)
					{
						PM.p[b21].dieEffect = true;
						PM.p[b21].clipDie = 0;
						PM.p[b21].dyDie = 25;
					}
					else if (b23 == 3 && PM.p[b21] != PM.getMyPlayer())
					{
						PM.p[b21] = null;
					}
					CRes.outz("Nhan Message: UPDATE HP: " + b21 + " nextHP: " + num29 + " pixel= " + b22);
				}
				break;
			}
			case 83:
				MenuScr.gI().show();
				CCanvas.gameScr.clearObject();
				mSystem.mNotify();
				break;
			case 24:
			{
				CRes.outz("NEXT TURN");
				sbyte whoNext = msg.reader().readByte();
				int x3 = msg.reader().readShort();
				int y3 = msg.reader().readShort();
				CPlayer.isShooting = false;
				if (PM.getMyPlayer() != null)
				{
					PM.getMyPlayer().force = 0f;
					PM.getMyPlayer().force_2 = 0f;
					CCanvas.clearAllPointerEvent();
					CCanvas.clearKeyHold();
					CCanvas.clearKeyPressed();
				}
				Music.play(Music.NEXT_TURN, 2f);
				GameScr.pm.setNextPlayer(whoNext, x3, y3);
				sbyte b130 = msg.reader().readByte();
				GameScr.nexPlayerIndex = new int[b130];
				GameScr.currSpeed = new int[b130];
				for (int num173 = 0; num173 < b130; num173++)
				{
					GameScr.nexPlayerIndex[num173] = msg.reader().readByte();
					GameScr.currSpeed[num173] = msg.reader().readShort();
				}
				GameScr.time.seconds = msg.reader().readByte();
				GameScr.bm.nBull = 0;
				if (nextTurnFlag)
				{
					nextTurnFlag = false;
					if (CCanvas.curScr == CCanvas.gameScr)
					{
						CCanvas.endDlg();
					}
				}
				if (GameScr.trainingMode)
				{
					Hint.nextTurn = true;
				}
				break;
			}
			case 25:
			{
				sbyte b128 = msg.reader().readByte();
				sbyte b129 = msg.reader().readByte();
				GameScr.changeWind(b128, b129);
				CRes.outz("Nhan Message: CHANGE WIND: " + b128 + " : " + b129);
				break;
			}
			case 26:
			{
				sbyte b126 = msg.reader().readByte();
				sbyte b127 = msg.reader().readByte();
				short iconUse = msg.reader().readShort();
				CRes.outz("USED ITEM = " + b127);
				PM.p[b126].UseItem(b127, true, 0, iconUse);
				break;
			}
			case 70:
				break;
			case 71:
			{
				int playerID2 = msg.reader().readInt();
				sbyte side = msg.reader().readByte();
				gameLogicHandler.onChangeTeam(playerID2, side);
				PrepareScr.calcBalance();
				break;
			}
			case 50:
			{
				sbyte b119 = msg.reader().readByte();
				short exp = msg.reader().readShort();
				int num163 = msg.reader().readInt();
				short luong = msg.reader().readShort();
				short[] array23 = new short[0];
				sbyte b120 = msg.reader().readByte();
				if (b120 > 0)
				{
					array23 = new short[b120];
					for (int num164 = 0; num164 < array23.Length; num164++)
					{
						array23[num164] = msg.reader().readShort();
					}
				}
				CCanvas.gameScr.setWin(b119, exp, num163, luong, array23);
				CCanvas.prepareScr.resetReady();
				CCanvas.prepareScr.readyDelay = 5;
				CRes.outz("<< team Win " + b119 + " moneyBonus " + num163);
				mSystem.mNotifyAll();
				break;
			}
			case 34:
				break;
			case 72:
			{
				sbyte b110 = msg.reader().readByte();
				CRes.outz("nITEM BUY= " + b110);
				sbyte[] array21 = new sbyte[b110];
				sbyte[] array22 = new sbyte[b110];
				for (int num148 = 0; num148 < b110; num148++)
				{
					array21[num148] = msg.reader().readByte();
					array22[num148] = msg.reader().readByte();
				}
				int num149 = msg.reader().readInt();
				int num150 = msg.reader().readInt();
				InfoDlg.hide();
				break;
			}
			case -51:
				CCanvas.gameScr.showChat(-1, msg.reader().readUTF());
				break;
			case 63:
			{
				string text11 = msg.reader().readUTF();
				string text12 = msg.reader().readUTF();
				string text13 = msg.reader().readUTF();
				CRes.outz("text: " + text11 + "    data: " + text12 + "    to: " + text13);
				break;
			}
			case 75:
				if (CCanvas.curScr != CCanvas.gameScr || GameScr.trainingMode)
				{
					sbyte b107 = msg.reader().readByte();
					CRes.outz("Map ID = " + b107);
					PrepareScr.curMap = b107;
					MM.mapImages.removeAllElements();
					MM.maps.removeAllElements();
					mSystem.gcc();
					GameScr.mm.createMap(b107);
				}
				break;
			case 64:
				break;
			case 76:
			{
				sbyte currentRoom = msg.reader().readByte();
				PrepareScr.currentRoom = currentRoom;
				sbyte b106 = msg.reader().readByte();
				string text10 = msg.reader().readUTF();
				sbyte currLevel = msg.reader().readByte();
				PrepareScr.currLevel = currLevel;
				CRes.outz("boardID= " + b106 + " boardName= " + text10);
				Panel.setBoardName(b106, text10);
				break;
			}
			case 78:
				if (msg.reader().readBoolean())
				{
					sbyte b96 = msg.reader().readByte();
					MyVector myVector14 = new MyVector();
					for (int num129 = 0; num129 < b96; num129++)
					{
						PlayerInfo playerInfo3 = new PlayerInfo();
						playerInfo3.name = msg.reader().readUTF();
						playerInfo3.IDDB = msg.reader().readInt();
						playerInfo3.gun = msg.reader().readByte();
						playerInfo3.xu = msg.reader().readInt();
						playerInfo3.level2 = msg.reader().readUnsignedByte();
						playerInfo3.level2Percen = msg.reader().readUnsignedByte();
						for (int num130 = 0; num130 < 5; num130++)
						{
							playerInfo3.equipID[playerInfo3.gun][num130] = msg.reader().readShort();
						}
						playerInfo3.getQuanHam();
						playerInfo3.getMyEquip();
						playerInfo3.isReady = true;
						myVector14.addElement(playerInfo3);
					}
					CCanvas.endDlg();
					GameLogicHandler.gI().onInviteList(myVector14);
				}
				else
				{
					CRes.outz("Someone invite ");
					string info3 = msg.reader().readUTF();
					sbyte roomInvite = msg.reader().readByte();
					sbyte boardInvite = msg.reader().readByte();
					string boarNameInvite = msg.reader().readUTF();
					InviteInfo inviteInfo = new InviteInfo();
					inviteInfo.roomInvite = roomInvite;
					inviteInfo.boardInvite = boardInvite;
					inviteInfo.boarNameInvite = boarNameInvite;
					CCanvas.startYesNoDlg(info3, new Command(L.yes(), this, 1002, inviteInfo), new Command(L.no(), this, 1001, null));
				}
				break;
			case 86:
			{
				string info2 = msg.reader().readUTF();
				string text9 = msg.reader().readUTF();
				sbyte auto = msg.reader().readByte();
				gameLogicHandler.onURL(info2, text9, auto);
				CRes.outz("B= " + text9);
				break;
			}
			case 87:
			{
				string text8 = msg.reader().readUTF();
				CRes.outz("myName= " + text8);
				MyMidlet.myInfo.name = text8;
				break;
			}
			case 89:
			{
				CPlayer cPlayer6 = new CPlayer();
				cPlayer6.index = msg.reader().readByte();
				sbyte b86 = msg.reader().readByte();
				cPlayer6.head = msg.reader().readShort();
				cPlayer6.x = msg.reader().readShort();
				cPlayer6.y = msg.reader().readShort();
				bool flag3 = msg.reader().readByte() == 0;
				CRes.outz("GIFT x= " + cPlayer6.x + " gift Y= " + cPlayer6.y + "------------------------- index= " + cPlayer6.index);
				bool isCom2 = MyMidlet.myInfo.IDDB != cPlayer6.IDDB;
				cPlayer6.init(cPlayer6.x, cPlayer6.y, isCom2, cPlayer6.look, cPlayer6.maxhp, 1000);
				cPlayer6.isBoss = true;
				PM.p[cPlayer6.index] = cPlayer6;
				if (b86 == 5)
				{
					cPlayer6.setGift1(flag3);
				}
				if (b86 == 6)
				{
					cPlayer6.setGift2(flag3);
				}
				break;
			}
			case 92:
			{
				short num119 = msg.reader().readShort();
				MM.undestroyTile = new short[num119];
				for (int num120 = 0; num120 < num119; num120++)
				{
					MM.undestroyTile[num120] = msg.reader().readShort();
				}
				break;
			}
			case 95:
			{
				CRes.outz("CAPTURE");
				sbyte b79 = msg.reader().readByte();
				sbyte whoCapture = msg.reader().readByte();
				PM.p[b79].capture(whoCapture);
				if (CCanvas.curScr == CCanvas.gameScr)
				{
					mSystem.mWait();
				}
				break;
			}
			case 96:
			{
				sbyte b75 = msg.reader().readByte();
				sbyte b76 = msg.reader().readByte();
				PM.p[b76].isPoison = true;
				PM.p[b76].poisonEff = true;
				PM.p[b75].sLook = CPlayer.SDOWN;
				if (CCanvas.curScr == CCanvas.gameScr)
				{
					mSystem.mWait();
				}
				break;
			}
			case 97:
			{
				int num115 = msg.reader().readShort();
				MyMidlet.myInfo.exp = msg.reader().readInt();
				MyMidlet.myInfo.getStringLevel();
				CRes.outz("expAdd= " + num115);
				sbyte b77 = msg.reader().readByte();
				if (CCanvas.curScr == CCanvas.gameScr && num115 != 0 && PM.p[GameScr.myIndex] != null)
				{
					PM.p[GameScr.myIndex].updateExp(num115);
				}
				break;
			}
			case -46:
			{
				sbyte b68 = msg.reader().readByte();
				if (b68 == 0)
				{
					MyMidlet.myInfo.point = msg.reader().readShort();
					for (int num96 = 0; num96 < 6; num96++)
					{
						CCanvas.panel.tisoPoint[num96] = msg.reader().readByte();
					}
					for (int num97 = 0; num97 < 6; num97++)
					{
						CCanvas.panel.ability[num97] = msg.reader().readShort();
					}
					InfoDlg.hide();
					CCanvas.panel.setTypeLevel();
					if (!CCanvas.panel.isShow)
					{
						CCanvas.panel.show();
					}
				}
				break;
			}
			case 100:
			{
				sbyte b69 = msg.reader().readByte();
				CRes.outz("Lucky " + b69);
				PM.p[b69].lucky();
				GameScr.waitting();
				break;
			}
			case 104:
				break;
			case 101:
				break;
			case 102:
				break;
			case -43:
			{
				InfoDlg.isShow = false;
				sbyte b56 = msg.reader().readByte();
				if (b56 == 4)
				{
					b56 = 0;
				}
				CRes.outz("t Indxe= " + b56);
				Panel.currPageShop[b56] = msg.reader().readByte();
				Panel.maxPageShop[b56] = msg.reader().readByte();
				int num81 = msg.reader().readUnsignedByte();
				CRes.outz("max page= " + Panel.maxPageShop[b56] + " curr page= " + Panel.currPageShop[b56] + " item lent= " + num81);
				CPlayer.arrItemShop[b56] = new Item[num81];
				for (int num82 = 0; num82 < num81; num82++)
				{
					short num83 = msg.reader().readShort();
					CPlayer.arrItemShop[b56][num82] = new Item();
					if (num83 == -1)
					{
						continue;
					}
					CPlayer.arrItemShop[b56][num82] = new Item();
					CPlayer.arrItemShop[b56][num82].template = ItemTemplates.get(num83 + string.Empty);
					CPlayer.arrItemShop[b56][num82].buyCoin = msg.reader().readInt();
					CPlayer.arrItemShop[b56][num82].buyGold = msg.reader().readInt();
					CPlayer.arrItemShop[b56][num82].strbuyCoin = NinjaUtil.getMoneys(CPlayer.arrItemShop[b56][num82].buyCoin);
					CPlayer.arrItemShop[b56][num82].strbuyGold = NinjaUtil.getMoneys(CPlayer.arrItemShop[b56][num82].buyGold);
					sbyte b57 = msg.reader().readByte();
					if (b57 == -1)
					{
						continue;
					}
					CPlayer.arrItemShop[b56][num82].itemOption = new ItemOption[b57];
					for (int num84 = 0; num84 < CPlayer.arrItemShop[b56][num82].itemOption.Length; num84++)
					{
						sbyte b58 = msg.reader().readByte();
						int param2 = msg.reader().readUnsignedShort();
						if (b58 != -1)
						{
							CPlayer.arrItemShop[b56][num82].itemOption[num84] = new ItemOption(b58, param2);
							CPlayer.arrItemShop[b56][num82].compare = CCanvas.panel.getCompare(CPlayer.arrItemShop[b56][num82]);
						}
					}
				}
				CCanvas.panel.setTabShop();
				CCanvas.panel.cmy = (CCanvas.panel.cmtoY = 0);
				break;
			}
			case 103:
			{
				InfoDlg.hide();
				CRes.outz("SHOP EQUIP");
				bool flag2 = false;
				if (CCanvas.w > 2 * Panel.WIDTH_PANEL)
				{
					flag2 = true;
				}
				sbyte typeShop = msg.reader().readByte();
				int num59 = msg.reader().readUnsignedByte();
				CRes.outz("num TS= " + num59);
				CPlayer.arrItemShop = new Item[num59][];
				Panel.shopTabName = new string[num59 + ((!flag2) ? 1 : 0)][];
				for (int num60 = 0; num60 < Panel.shopTabName.Length; num60++)
				{
					Panel.shopTabName[num60] = new string[2];
				}
				if (!flag2)
				{
					Panel.shopTabName[num59] = new string[2] { "Hành", "Trang" };
				}
				Panel.maxPageShop = new int[num59];
				Panel.currPageShop = new int[num59];
				CCanvas.panel.currIndexShop = new int[num59];
				for (int num61 = 0; num61 < num59; num61++)
				{
					CCanvas.panel.currIndexShop[num61] = msg.reader().readByte();
					string text3 = msg.reader().readUTF();
					int num62 = msg.reader().readByte();
					Panel.maxPageShop[num61] = num62;
					CRes.outz("max page= " + num62);
					Panel.currPageShop[num61] = 0;
					CRes.outz("tName= " + text3);
					string[] array10 = CRes.split(text3, "\n", 0);
					if (array10.Length == 2)
					{
						Panel.shopTabName[num61] = array10;
					}
					if (array10.Length == 1)
					{
						Panel.shopTabName[num61][0] = array10[0];
						Panel.shopTabName[num61][1] = string.Empty;
					}
					int num63 = msg.reader().readUnsignedByte();
					CRes.outz("so luong item= " + num63);
					CPlayer.arrItemShop[num61] = new Item[num63];
					for (int num64 = 0; num64 < num63; num64++)
					{
						short num65 = msg.reader().readShort();
						CRes.outz("shop template id= " + num65);
						if (num65 != -1)
						{
							CPlayer.arrItemShop[num61][num64] = new Item();
							CPlayer.arrItemShop[num61][num64].template = ItemTemplates.get(num65 + string.Empty);
							CPlayer.arrItemShop[num61][num64].buyCoin = msg.reader().readInt();
							CPlayer.arrItemShop[num61][num64].buyGold = msg.reader().readInt();
							CPlayer.arrItemShop[num61][num64].strbuyCoin = NinjaUtil.getMoneys(CPlayer.arrItemShop[num61][num64].buyCoin);
							CPlayer.arrItemShop[num61][num64].strbuyGold = NinjaUtil.getMoneys(CPlayer.arrItemShop[num61][num64].buyGold);
						}
						sbyte b38 = msg.reader().readByte();
						CRes.outz("option size= " + b38);
						if (b38 == 0)
						{
							continue;
						}
						CPlayer.arrItemShop[num61][num64].itemOption = new ItemOption[b38];
						for (int num66 = 0; num66 < CPlayer.arrItemShop[num61][num64].itemOption.Length; num66++)
						{
							sbyte b39 = msg.reader().readByte();
							int param = msg.reader().readUnsignedShort();
							if (b39 != -1)
							{
								CPlayer.arrItemShop[num61][num64].itemOption[num66] = new ItemOption(b39, param);
								CPlayer.arrItemShop[num61][num64].compare = CCanvas.panel.getCompare(CPlayer.arrItemShop[num61][num64]);
							}
						}
					}
				}
				if (flag2)
				{
					CCanvas.panel2 = new Panel();
					CCanvas.panel2.tabName[7] = new string[1][] { new string[1] { string.Empty } };
					CCanvas.panel2.setTypeMyEquip();
					CCanvas.panel2.show();
				}
				CCanvas.panel.tabName[0] = (CCanvas.panel.tabName[1] = Panel.shopTabName);
				CCanvas.panel.setTypeShop(typeShop);
				CCanvas.panel.show();
				break;
			}
			case 105:
			{
				int num57 = msg.reader().readInt();
				int num58 = msg.reader().readInt();
				CRes.outz("xu= " + num57 + " luong= " + num58);
				if (CCanvas.curScr == CCanvas.gameScr)
				{
					CCanvas.gameScr.showUpdateMoney(num57, num58);
				}
				MyMidlet.myInfo.xu = num57;
				MyMidlet.myInfo.luong = num58;
				MyMidlet.myInfo.strXu = NinjaUtil.getMoneys(num57);
				MyMidlet.myInfo.strLuong = NinjaUtil.getMoneys(num58);
				CPlayer.busyHammer = msg.reader().readByte();
				CPlayer.nHammer = msg.reader().readByte();
				break;
			}
			case 106:
			{
				sbyte typeSee = msg.reader().readByte();
				sbyte whoCantSee = msg.reader().readByte();
				CCanvas.gameScr.checkEyeSmoke(whoCantSee, typeSee);
				break;
			}
			case 107:
			{
				sbyte type = msg.reader().readByte();
				sbyte whoCantMove = msg.reader().readByte();
				CCanvas.gameScr.checkFreeze(whoCantMove, type);
				break;
			}
			case 108:
			{
				sbyte whoPoison = msg.reader().readByte();
				CCanvas.gameScr.checkPostion(whoPoison);
				break;
			}
			case 109:
			{
				CRes.outz("DAT BOM HEN GIO");
				int num178 = msg.reader().readByte();
				sbyte b134 = msg.reader().readByte();
				if (num178 == 0)
				{
					int num179 = msg.reader().readInt();
					int num180 = msg.reader().readInt();
					sbyte b135 = msg.reader().readByte();
					CRes.outz("bomb x= " + num179 + " bomb y= " + num180);
					TimeBomb bomb = new TimeBomb(b134, num179, num180, b135);
					CCanvas.gameScr.addTimeBomb(bomb);
				}
				if (num178 == 1)
				{
					CRes.outz("BOM EXPLORE id=" + b134);
					sbyte b136 = msg.reader().readByte();
					if (b136 == 0)
					{
						CCanvas.gameScr.explodeTimeBomb(b134);
					}
					if (b136 == 1)
					{
						CCanvas.gameScr.explodeAll(b134);
					}
					int index_x = 0;
					int index_y = 0;
					for (int num181 = 0; num181 < GameScr.timeBombs.size(); num181++)
					{
						TimeBomb timeBomb = (TimeBomb)GameScr.timeBombs.elementAt(num181);
						if (timeBomb.id == b134)
						{
							index_x = timeBomb.x;
							index_y = timeBomb.y;
							break;
						}
					}
					GameScr.cam.setTargetPointMode(index_x, index_y);
					mSystem.mWait();
				}
				if (num178 == 2)
				{
					sbyte b137 = msg.reader().readByte();
					for (int num182 = 0; num182 < GameScr.timeBombs.size(); num182++)
					{
						TimeBomb timeBomb2 = (TimeBomb)GameScr.timeBombs.elementAt(num182);
						if (timeBomb2.id == b134)
						{
							timeBomb2.percentRemove = b137;
							CRes.outz("perCent= " + b137);
							break;
						}
					}
				}
				if (num178 == 3)
				{
					for (int num183 = 0; num183 < GameScr.timeBombs.size(); num183++)
					{
						TimeBomb timeBomb3 = (TimeBomb)GameScr.timeBombs.elementAt(num183);
						if (timeBomb3.id == b134)
						{
							GameScr.timeBombs.removeElementAt(num183);
							break;
						}
					}
				}
				if (num178 != 4)
				{
					break;
				}
				for (int num184 = 0; num184 < GameScr.timeBombs.size(); num184++)
				{
					TimeBomb timeBomb4 = (TimeBomb)GameScr.timeBombs.elementAt(num184);
					if (timeBomb4.id == b134)
					{
						timeBomb4.turn = msg.reader().readByte();
						break;
					}
				}
				break;
			}
			case 113:
			{
				sbyte b131 = msg.reader().readByte();
				sbyte b132 = msg.reader().readByte();
				CRes.outz("angry= " + b132);
				if (PM.p[b131] != null)
				{
					PM.p[b131].updateAngry(b132);
				}
				break;
			}
			case 115:
				break;
			case 110:
				break;
			case 119:
			{
				sbyte b121 = msg.reader().readByte();
				InfoDlg.hide();
				if (CCanvas.panel.isShow)
				{
					CCanvas.panel.hide();
				}
				if (b121 == 0)
				{
					CCanvas.gameScrRPG.initChest();
				}
				if (b121 != 1)
				{
					break;
				}
				Item[] array24 = new Item[9];
				for (int num165 = 0; num165 < 9; num165++)
				{
					short num166 = msg.reader().readShort();
					sbyte b122 = msg.reader().readByte();
					if (num166 != -1)
					{
						array24[num165] = new Item();
						array24[num165].template = ItemTemplates.get(num166 + string.Empty);
						array24[num165].quantity = b122;
					}
					sbyte b123 = msg.reader().readByte();
					if (b123 == 0)
					{
						continue;
					}
					array24[num165].itemOption = new ItemOption[b123];
					for (int num167 = 0; num167 < array24[num165].itemOption.Length; num167++)
					{
						sbyte b124 = msg.reader().readByte();
						int num168 = msg.reader().readUnsignedShort();
						if (b124 != -1)
						{
							array24[num165].itemOption[num167] = new ItemOption(b124, num168);
						}
						if (b124 == 16)
						{
							array24[num165].nSocket++;
							if (num168 != 0)
							{
								ItemTemplate itemTemplate6 = ItemTemplates.get(num168 + string.Empty);
								if (itemTemplate6 != null)
								{
									array24[num165].gems.addElement(itemTemplate6.iconID + string.Empty);
								}
							}
						}
						if (b124 == 17)
						{
							array24[num165].level = num168;
						}
					}
				}
				Item item4 = array24[0];
				array24[0] = array24[CCanvas.gameScrRPG.focusChest];
				array24[CCanvas.gameScrRPG.focusChest] = item4;
				CCanvas.gameScrRPG.resultChest(array24);
				break;
			}
			case -71:
			{
				bool flag4 = msg.reader().readBoolean();
				CRes.outz("isRes= " + flag4);
				if (!flag4)
				{
					CCanvas.startOKDlg(msg.reader().readUTF());
					break;
				}
				Session_ME.gI().close();
				Rms.saveRMSString("userAo", string.Empty);
				CCanvas.endDlg();
				LoginScr.gI().doLogin();
				break;
			}
			case 123:
			{
				CRes.outz("CHAT TO TEAM");
				MsgInfo msgInfo2 = new MsgInfo();
				msgInfo2.fromName = msg.reader().readUTF() + " " + L.chatAll();
				msgInfo2.message = msg.reader().readUTF();
				gameLogicHandler.onChatFrom(msgInfo2);
				break;
			}
			case 124:
			{
				sbyte b112 = msg.reader().readByte();
				sbyte b113 = msg.reader().readByte();
				PM.p[b112].ghostHit(b113);
				PM.p[b112].checkGhostLook(PM.p[b113].x, PM.p[b112].x);
				if (CCanvas.curScr == CCanvas.gameScr)
				{
					mSystem.mWait();
				}
				break;
			}
			case 125:
			{
				sbyte b111 = msg.reader().readByte();
				break;
			}
			case 126:
				if (!PrepareScr.exitFromPrepareScr)
				{
					int num146 = msg.reader().readShort();
					short num147 = msg.reader().readShort();
					CRes.outz("Get material Icon " + num146 + " lent= " + num147);
					sbyte[] data8 = new sbyte[num147];
					msg.reader().read(ref data8, 0, num147);
					Image image = Image.createImage(data8, 0, num147);
					GameScr.mm.addImage(num146, image);
					image = null;
				}
				break;
			case 17:
				break;
			case 27:
				break;
			case 80:
			{
				sbyte whoInvisible = msg.reader().readByte();
				CCanvas.gameScr.checkInvisible2(whoInvisible);
				break;
			}
			case 59:
			{
				sbyte whoVampire = msg.reader().readByte();
				CCanvas.gameScr.checkVampire(whoVampire);
				break;
			}
			case -2:
				break;
			case -3:
				break;
			case -6:
				if (CCanvas.curScr != CCanvas.gameScr)
				{
					CRes.outz("RANDOM MAP");
					sbyte b109 = msg.reader().readByte();
					CRes.outz("tMID= " + b109);
					CCanvas.startWaitDlgWithoutCancel(L.pleaseWait());
					MM.maps.removeAllElements();
					if (CCanvas.curScr == CCanvas.gameScr)
					{
						CCanvas.curScr = CCanvas.prepareScr;
					}
					GameScr.mm.createMap(b109);
					mSystem.gcc();
				}
				break;
			case -7:
				break;
			case -10:
			{
				for (int num144 = 0; num144 < 8; num144++)
				{
					GameScr.num[num144] = msg.reader().readByte();
					CRes.outz("item num= " + GameScr.num[num144]);
				}
				break;
			}
			case -12:
			{
				CRes.outz("nhan shop biet doi");
				CCanvas.endDlg();
				sbyte b105 = msg.reader().readByte();
				CRes.outz("nCL+ " + b105);
				MyVector myVector15 = new MyVector();
				for (int num143 = 0; num143 < b105; num143++)
				{
					ClanItem clanItem = new ClanItem();
					clanItem.id = msg.reader().readByte();
					clanItem.name = msg.reader().readUTF();
					CRes.outz("name= " + clanItem.name);
					clanItem.xu = msg.reader().readInt();
					clanItem.luong = msg.reader().readInt();
					clanItem.expDate = msg.reader().readByte();
					clanItem.levelRequire = msg.reader().readByte();
					myVector15.addElement(clanItem);
				}
				CCanvas.panel.setTypeShopBietDoi(myVector15);
				CCanvas.panel.show();
				break;
			}
			case -14:
			{
				CRes.outz("BANG THANH TICH");
				sbyte b94 = msg.reader().readByte();
				CRes.outz("TypE= " + b94);
				if (b94 == -1)
				{
					sbyte b95 = msg.reader().readByte();
					MenuScr.subMenuString[2] = new string[b95];
					for (int num127 = 0; num127 < b95; num127++)
					{
						MenuScr.subMenuString[2][num127] = msg.reader().readUTF().ToLower();
					}
					break;
				}
				sbyte page = msg.reader().readByte();
				string title = msg.reader().readUTF();
				MyVector myVector13 = new MyVector();
				while (msg.reader().available() > 0)
				{
					PlayerInfo playerInfo2 = new PlayerInfo();
					playerInfo2.IDDB = msg.reader().readInt();
					playerInfo2.name = msg.reader().readUTF();
					playerInfo2.gun = msg.reader().readByte();
					playerInfo2.clanID = msg.reader().readShort();
					playerInfo2.level2 = msg.reader().readUnsignedByte();
					playerInfo2.level2Percen = msg.reader().readByte();
					playerInfo2.getQuanHam();
					playerInfo2.STT = msg.reader().readUnsignedByte();
					for (int num128 = 0; num128 < 5; num128++)
					{
						playerInfo2.equipID[playerInfo2.gun][num128] = msg.reader().readShort();
					}
					playerInfo2.aa = msg.reader().readUTF();
					playerInfo2.isReady = true;
					playerInfo2.getMyEquip();
					myVector13.addElement(playerInfo2);
				}
				gameLogicHandler.onXepHanglist((sbyte)(-b94), page, myVector13, title);
				break;
			}
			case -17:
				break;
			case -18:
				break;
			case -19:
			{
				CRes.outz("Change room name");
				sbyte b91 = msg.reader().readByte();
				for (int num126 = 0; num126 < b91; num126++)
				{
					sbyte b92 = msg.reader().readByte();
					string name = msg.reader().readUTF();
					sbyte b93 = msg.reader().readByte();
					CCanvas.panel.changeName(b92 + b93 + 1, name);
				}
				break;
			}
			case -22:
				break;
			case -23:
			{
				CRes.outz("MISSION");
				CCanvas.endDlg();
				MyVector myVector12 = new MyVector();
				while (msg.reader().available() > 0)
				{
					Mission mission = new Mission();
					mission.id = msg.reader().readByte();
					mission.level = msg.reader().readByte();
					mission.name = msg.reader().readUTF();
					mission.reward = msg.reader().readUTF();
					mission.require = msg.reader().readInt();
					mission.have = msg.reader().readInt();
					mission.isComplete = msg.reader().readBoolean();
					CRes.outz("id = " + mission.id + " level= " + mission.level + " name= " + mission.name + " require=" + mission.require + " have= " + mission.have + " reward= " + mission.reward);
					myVector12.addElement(mission);
				}
				CCanvas.panel.setTypeMission();
				CCanvas.panel.show();
				break;
			}
			case -24:
			{
				sbyte b89 = msg.reader().readByte();
				int num125 = msg.reader().readInt();
				CRes.outz("curr CUP= " + num125);
				MyMidlet.myInfo.cup = num125;
				break;
			}
			case -25:
			{
				int num124 = msg.reader().readInt();
				string info = msg.reader().readUTF();
				string p2 = num124 + string.Empty;
				CCanvas.startYesNoDlg(info, new Command(L.yes(), this, 1003, p2), new Command(L.no(), this, 1001, null));
				break;
			}
			case -100:
				break;
			case -26:
			{
				string text7 = msg.reader().readUTF();
				sbyte b88 = msg.reader().readByte();
				CRes.outz("agent= " + text7 + " provider= " + b88);
				MyMidlet.PROVIDER = b88;
				CRes.saveRMSInt("provider", b88);
				MyMidlet.AGENT = text7;
				CRes.saveRMS_String("agent", text7);
				break;
			}
			case -99:
				CCanvas.endDlg();
				CCanvas.initCharScreen = new CreateCharScr();
				CCanvas.initCharScreen.show();
				break;
			case -47:
			{
				ChatPopupNR.addChatPopup(msg.reader().readUTF(), 100000, 35, 1);
				sbyte b81 = msg.reader().readByte();
				CRes.outz("size=" + b81);
				MyVector myVector11 = new MyVector();
				for (int num118 = 0; num118 < b81; num118++)
				{
					Item item3 = new Item();
					item3.itemId = num118;
					myVector11.addElement(new Command(msg.reader().readUTF(), this, 1004, item3));
				}
				CCanvas.menu.startAt(myVector11, 0);
				if (InfoDlg.isShow)
				{
					InfoDlg.hide();
				}
				if (CCanvas.panel.isDetail)
				{
					CCanvas.panel.closeDetail();
				}
				break;
			}
			case -70:
			{
				CRes.outz("BIG MESSAGE .......................................");
				CCanvas.endDlg();
				string chat2 = msg.reader().readUTF();
				ChatPopupNR.addChatPopup(chat2, 100000, 35, 1);
				sbyte b78 = msg.reader().readByte();
				if (b78 == 0)
				{
					MyVector myVector9 = new MyVector();
					myVector9.addElement(new Command(L.close(), ChatPopupNR.currChatPopup, 1001, null));
					CCanvas.menu.startAt(myVector9, 0);
				}
				if (b78 == 1)
				{
					string p = msg.reader().readUTF();
					string caption = msg.reader().readUTF();
					MyVector myVector10 = new MyVector();
					myVector10.addElement(new Command(caption, ChatPopupNR.currChatPopup, 1000, p));
					myVector10.addElement(new Command(L.close(), ChatPopupNR.currChatPopup, 1001, null));
					CCanvas.menu.startAt(myVector10, 0);
				}
				break;
			}
			case -62:
			{
				string original = msg.reader().readUTF();
				CCanvas.iHuongdan = 0;
				CCanvas.huongdan2 = mFont.split(original, "\n");
				CCanvas.paymentTitle2 = msg.reader().readUTF();
				string original2 = msg.reader().readUTF();
				CCanvas.huongdan1 = mFont.split(original2, "\n");
				CCanvas.paymentTitle1 = msg.reader().readUTF();
				CCanvas.isPayment = true;
				MenuScr.subMenuString[MenuScr.MENU_CUAHANG] = new string[4]
				{
					L.shop(),
					L.trangbi(),
					"Nạp vàng",
					"Nạp ngọc"
				};
				break;
			}
			case -63:
			{
				InfoDlg.hide();
				sbyte b52 = msg.reader().readByte();
				sbyte index = msg.reader().readByte();
				int num79 = msg.reader().readInt();
				CPlayer cPlayer3;
				switch (num79)
				{
				case -54:
					cPlayer3 = new BigBoss(1);
					break;
				case -55:
					cPlayer3 = new BigBoss(2);
					break;
				case -56:
					cPlayer3 = new BigBoss(3);
					break;
				case -57:
					cPlayer3 = new BigBoss(4);
					break;
				default:
					cPlayer3 = new CPlayer();
					break;
				}
				cPlayer3.index = index;
				cPlayer3.IDDB = num79;
				cPlayer3.name = msg.reader().readUTF();
				cPlayer3.head = msg.reader().readShort();
				cPlayer3.leg = msg.reader().readShort();
				cPlayer3.body = msg.reader().readShort();
				cPlayer3.hat = msg.reader().readShort();
				cPlayer3.wing = msg.reader().readShort();
				cPlayer3.wp = msg.reader().readShort();
				cPlayer3.x = msg.reader().readShort();
				cPlayer3.y = msg.reader().readShort();
				cPlayer3.maxhp = msg.reader().readShort();
				sbyte b53 = msg.reader().readByte();
				CRes.outz("BOSS TYPE=================================" + b53 + " hp = " + cPlayer3.maxhp);
				bool isCom = true;
				cPlayer3.init(cPlayer3.x, cPlayer3.y, isCom, cPlayer3.look, cPlayer3.maxhp, 1000);
				if (cPlayer3.IDDB < 0)
				{
					cPlayer3.isBoss = true;
					cPlayer3.teamColor = 2;
				}
				else
				{
					cPlayer3.teamColor = (sbyte)((cPlayer3.index % 2 != 0) ? 1 : 0);
				}
				PM.p[cPlayer3.index] = cPlayer3;
				if (b53 == 0)
				{
					Airplane airplane = new Airplane(0, cPlayer3.y);
					airplane.speed = 0;
					airplane.x = cPlayer3.x - 30;
					airplane.y = cPlayer3.y - 150;
					if (CCanvas.gameScr == null)
					{
						CCanvas.gameScr = new GameScr();
					}
					CCanvas.gameScr.airplanes.addElement(airplane);
					Music.play(Music.HELICOPTER, 10f);
					cPlayer3.ySplash = cPlayer3.y;
					cPlayer3.isSplash = true;
					cPlayer3.init2(cPlayer3.x, cPlayer3.y - 108);
					if (GameScr.cam != null)
					{
						GameScr.cam.setTargetPointMode(cPlayer3.x, cPlayer3.y);
						GameScr.waitting();
					}
					CCanvas.tToWait = 100;
				}
				if (b53 == 3)
				{
					cPlayer3.setBaloonBoss();
				}
				if (b53 == 4)
				{
					cPlayer3.setBaloonGun();
				}
				if (b53 != 10)
				{
					break;
				}
				cPlayer3.isAvenger = msg.reader().readByte();
				cPlayer3.indexOwner = msg.reader().readByte();
				if (cPlayer3.indexOwner == -1)
				{
					break;
				}
				if (PM.p[cPlayer3.indexOwner].isLokiCopy)
				{
					if (PM.getMyPlayer().teamColor == PM.p[cPlayer3.indexOwner].teamColor)
					{
						cPlayer3.teamColor = PM.p[cPlayer3.indexOwner].teamColor;
					}
					else
					{
						cPlayer3.teamColor = PM.p[cPlayer3.indexOwner].pLoki.teamColor;
					}
				}
				else
				{
					cPlayer3.teamColor = PM.p[cPlayer3.indexOwner].teamColor;
				}
				cPlayer3.runSpeed = 3;
				break;
			}
			case 121:
				mSystem.publicID = msg.reader().readUTF();
				mSystem.strAdmob = msg.reader().readUTF();
				mSystem.createAdmob();
				break;
			case 122:
			{
				CCanvas.startWaitDlgWithoutCancel(L.pleaseWait());
				short num78 = msg.reader().readShort();
				CRes.outz("second login = " + num78);
				LoginScr.timeLogin = num78;
				LoginScr.currTimeLogin = (LoginScr.lastTimeLogin = mSystem.currentTimeMillis());
				CCanvas.endDlg();
				break;
			}
			case -91:
			{
				sbyte b24 = msg.reader().readByte();
				InfoDlg.hide();
				if (b24 == 0)
				{
					sbyte b25 = msg.reader().readByte();
					sbyte b26 = msg.reader().readByte();
					if (PM.p[b26] != null && PM.p[b25] != null)
					{
						PM.p[b25].isLokiCopy = true;
						PM.p[b25].pLoki = new CPlayer();
						PM.p[b25].pLoki.head = PM.p[b25].head;
						PM.p[b25].pLoki.leg = PM.p[b25].leg;
						PM.p[b25].pLoki.body = PM.p[b25].body;
						PM.p[b25].pLoki.wp = PM.p[b25].wp;
						PM.p[b25].pLoki.hat = PM.p[b25].hat;
						PM.p[b25].pLoki.wing = PM.p[b25].wing;
						PM.p[b25].pLoki.isAvenger = PM.p[b25].isAvenger;
						PM.p[b25].pLoki.maxhp = PM.p[b25].maxhp;
						PM.p[b25].pLoki.name = PM.p[b26].name;
						if (PM.getMyPlayer().teamColor == PM.p[b25].teamColor)
						{
							PM.p[b25].pLoki.teamColor = PM.p[b25].teamColor;
						}
						else
						{
							PM.p[b25].pLoki.teamColor = PM.p[b26].teamColor;
						}
						PM.p[b25].head = PM.p[b26].head;
						PM.p[b25].leg = PM.p[b26].leg;
						PM.p[b25].body = PM.p[b26].body;
						PM.p[b25].wp = PM.p[b26].wp;
						PM.p[b25].hat = PM.p[b26].hat;
						PM.p[b25].wing = PM.p[b26].wing;
						PM.p[b25].isAvenger = PM.p[b26].isAvenger;
						PM.p[b25].hp = PM.p[b26].hp;
						PM.p[b25].maxhp = PM.p[b26].maxhp;
						PM.p[b25].hpRectW = PM.p[b26].hp * 25 / PM.p[b26].maxhp;
					}
					new Explosion(PM.p[b25].x, PM.p[b25].y, 9);
				}
				if (b24 == 1)
				{
					PM.p[GameScr.myIndex].isHawlSpecial = true;
					MyVector myVector2 = new MyVector(string.Empty);
					myVector2.addElement(new Command("Bắn", CCanvas.gameScr, 1019, null));
					myVector2.addElement(new Command("Chọn mục tiêu", CCanvas.gameScr, 15002, PM.p[GameScr.myIndex]));
					CCanvas.menu.startAt(myVector2, 0);
				}
				if (b24 == 2)
				{
					PM.p[GameScr.myIndex].isUltronSpecial = true;
					MyVector myVector3 = new MyVector(string.Empty);
					myVector3.addElement(new Command("Bắn", CCanvas.gameScr, 1019, null));
					myVector3.addElement(new Command("Nhân bản", CCanvas.gameScr, 15004, PM.p[GameScr.myIndex]));
					CCanvas.menu.startAt(myVector3, 0);
				}
				if (b24 == 3)
				{
					PM.p[GameScr.myIndex].isThorSpecial = true;
					MyVector myVector4 = new MyVector(string.Empty);
					myVector4.addElement(new Command("Bắn", CCanvas.gameScr, 1019, null));
					myVector4.addElement(new Command("Sấm sét", CCanvas.gameScr, 15005, PM.p[GameScr.myIndex]));
					CCanvas.menu.startAt(myVector4, 0);
				}
				if (b24 == 4)
				{
					int num30 = 10;
					sbyte b27 = msg.reader().readByte();
					sbyte bulletType = msg.reader().readByte();
					sbyte b28 = msg.reader().readByte();
					if (b28 > 1)
					{
						Camera.shaking = 4;
					}
					short[] array6 = new short[b28];
					short[] array7 = new short[b28];
					for (int num31 = 0; num31 < b28; num31++)
					{
						array6[num31] = msg.reader().readShort();
						array7[num31] = msg.reader().readShort();
						new Explosion(array6[num31], Camera.y, array6[num31], array7[num31], 17);
						new Explosion(array6[num31], array7[num31], 9);
						GameScr.mm.makeHole(array6[num31], array7[num31], bulletType);
						GameScr.sm.addRock(array6[num31], array7[num31], CRes.random(4 + num30 / 3), CRes.random(-8 - num30 / 3, -5 - num30 / 3), 3);
						GameScr.sm.addRock(array6[num31], array7[num31], CRes.random(3 + num30 / 3), CRes.random(-8 - num30 / 3, -4 - num30 / 3), 3);
						GameScr.sm.addRock(array6[num31], array7[num31], CRes.random(2 + num30 / 3), CRes.random(-8 - num30 / 3, -4 - num30 / 3), 3);
					}
				}
				if (b24 != 5)
				{
					break;
				}
				int num32 = 0;
				for (int num33 = 0; num33 < PM.p.Length; num33++)
				{
					if (PM.p[num33] != null)
					{
						CPlayer cPlayer2 = PM.p[GameScr.myIndex];
						if (PM.p[num33].IDDB != cPlayer2.IDDB && PM.p[num33].IDDB >= -1000000 && PM.p[num33].stateDie == 0 && !PM.p[num33].isBoss && PM.p[num33].hp > 0 && PM.p[num33].teamColor != cPlayer2.teamColor)
						{
							num32++;
						}
					}
				}
				if (num32 != 0)
				{
					PM.p[GameScr.myIndex].isLokiSpecial = true;
					MyVector myVector5 = new MyVector(string.Empty);
					myVector5.addElement(new Command("Bắn", CCanvas.gameScr, 1019, null));
					myVector5.addElement(new Command("Giả dạng", CCanvas.gameScr, 15000, PM.p[GameScr.myIndex]));
					CCanvas.menu.startAt(myVector5, 0);
				}
				break;
			}
			case 88:
			{
				CCanvas.panel.vAchievement = new MyVector();
				sbyte b16 = msg.reader().readByte();
				if (b16 == 0)
				{
					sbyte b17 = msg.reader().readByte();
					for (int num25 = 0; num25 < b17; num25++)
					{
						Achievement achievement = new Achievement();
						achievement.id = msg.reader().readByte();
						achievement.name = msg.reader().readUTF();
						achievement.description = msg.reader().readUTF();
						achievement.des = mFont.tahoma_7_grey.splitFontArray(achievement.description, Panel.WIDTH_PANEL - 10);
						achievement.received = msg.reader().readByte();
						achievement.current = msg.reader().readInt();
						achievement.max = msg.reader().readInt();
						achievement.percent = achievement.current * 100 / achievement.max;
						if (achievement.percent > 100)
						{
							achievement.percent = 100;
						}
						if (achievement.percent < 0)
						{
							achievement.percent = 0;
						}
						achievement.money = msg.reader().readInt();
						achievement.star = msg.reader().readByte();
						achievement.star++;
						CCanvas.panel.vAchievement.addElement(achievement);
					}
				}
				if (!CCanvas.panel.isShow)
				{
					CCanvas.panel.setTypeAchievement();
					CCanvas.panel.show();
				}
				InfoDlg.hide();
				break;
			}
			case -126:
			{
				CPlayer cPlayer = new CPlayer();
				cPlayer.IDDB = msg.reader().readInt();
				cPlayer.name = msg.reader().readUTF();
				cPlayer.head = msg.reader().readShort();
				cPlayer.hat = msg.reader().readShort();
				cPlayer.body = msg.reader().readShort();
				cPlayer.leg = msg.reader().readShort();
				cPlayer.wing = msg.reader().readShort();
				cPlayer.wp = msg.reader().readShort();
				cPlayer.exp = msg.reader().readInt();
				cPlayer.getStringLevel();
				cPlayer.status = msg.reader().readByte();
				cPlayer.clan = new Clan();
				cPlayer.clan.imgID = msg.reader().readShort();
				CCanvas.panel.setTypePlayerInfo(cPlayer);
				CCanvas.panel.show();
				InfoDlg.hide();
				break;
			}
			case -98:
				switch (msg.reader().readByte())
				{
				case 0:
				{
					sbyte b6 = msg.reader().readByte();
					CRes.outz("join index= " + b6);
					PM.p2[b6] = new CPlayer();
					PM.p2[b6].IDDB = msg.reader().readInt();
					PM.p2[b6].name = msg.reader().readUTF();
					PM.p2[b6].clanID = msg.reader().readShort();
					PM.p2[b6].exp = msg.reader().readInt();
					PM.p2[b6].getStringLevel();
					PM.p2[b6].head = msg.reader().readShort();
					PM.p2[b6].leg = msg.reader().readShort();
					PM.p2[b6].body = msg.reader().readShort();
					PM.p2[b6].hat = msg.reader().readShort();
					PM.p2[b6].wing = msg.reader().readShort();
					PM.p2[b6].wp = msg.reader().readShort();
					PM.p2[b6].index = b6;
					PM.p2[b6].isAvenger = msg.reader().readByte();
					if (PM.p2[b6].isFlyAvenger())
					{
						PM.p2[b6].isMoveAvenger = true;
						PM.p2[b6].runSpeed = 2;
						PM.p2[b6].falling = false;
					}
					else
					{
						PM.p2[b6].falling = true;
					}
					CRes.outz("joint id= " + PM.p2[b6].IDDB + ", name=" + PM.p2[b6].name + ", exp=" + PM.p2[b6].exp + " head= " + PM.p2[b6].head + " leg= " + PM.p2[b6].leg + " body=" + PM.p2[b6].body + " hat= " + PM.p2[b6].hat + " wp= " + PM.p2[b6].wp + " ??? isAvenger " + PM.p2[b6].isAvenger);
					if (PM.p2[b6].IDDB == MyMidlet.myInfo.IDDB)
					{
						SmallImage.unload();
						PM.p2[b6].isMe = true;
						GameScrRPG.myIndex = b6;
						MyMidlet.myInfo.index = b6;
						PM.p2[b6].power = MyMidlet.myInfo.power;
						PM.p2[b6].target = CCanvas.gameScrRPG.searchNearTarget();
						MM.maps.removeAllElements();
					}
					PM.p2[b6].isReady = msg.reader().readByte() == 1;
					GameScrRPG.zone = msg.reader().readByte();
					CRes.outz("UPDATE CLAND ID ");
					int num4 = msg.reader().readInt();
					if (num4 != -1)
					{
						PM.p2[b6].clan = new Clan();
						PM.p2[b6].clanID = num4;
						PM.p2[b6].clan.imgID = msg.reader().readShort();
					}
					PM.p2[b6].pointSeat = msg.reader().readByte();
					int num5 = msg.reader().readShort();
					int num6 = msg.reader().readShort();
					CCanvas.prepareScr.addInfo(PM.p2[b6].name + " vừa vào bàn point = " + PM.p2[b6].pointSeat);
					if (PM.p2[b6].isMe)
					{
						CCanvas.gameScrRPG.initGame();
					}
					PM.p2[b6].isCom = MyMidlet.myInfo.IDDB != PM.p2[b6].IDDB;
					if (PM.p2[b6].isFlyAvenger())
					{
						PM.p2[b6].init2(num5, num6);
						PM.p2[b6].falling = false;
					}
					else
					{
						int num7 = num6;
						while ((GameScrRPG.map.tileTypeAtPixel(num5, num7) & 4) != 4)
						{
							num7++;
							if (num7 > 1000)
							{
								break;
							}
						}
						if (num7 > 1000)
						{
							PM.p2[b6].init2(num5, num6);
						}
						else
						{
							PM.p2[b6].init2(num5, num7);
							if (PM.p2[b6].isMe)
							{
								GameService.gI().moveRPG(num5, num7);
							}
							PM.p2[b6].state = 0;
							PM.p2[b6].falling = false;
						}
					}
					if (PM.p2[b6].isMe)
					{
						GameScr.initImage();
						CCanvas.gameScrRPG.show();
					}
					break;
				}
				case 2:
				{
					sbyte b13 = msg.reader().readByte();
					if (PM.p2[b13] == PM.getMyPlayer2())
					{
						break;
					}
					short num15 = msg.reader().readShort();
					short num16 = msg.reader().readShort();
					PM.p2[b13].xToNow = num15;
					PM.p2[b13].yToNow = num16;
					if (PM.p2[b13].x != num15 || PM.p2[b13].y != num16)
					{
						if (PM.p2[b13].isFlyAvenger())
						{
							PM.p2[b13].state = 1;
							PM.p2[b13].xToNow = num15;
							PM.p2[b13].yToNow = num16;
						}
						else
						{
							GameScrRPG.pm.movePlayer2(b13, num15, num16);
						}
					}
					break;
				}
				case 3:
				{
					sbyte b12 = msg.reader().readByte();
					string text = msg.reader().readUTF();
					CCanvas.gameScrRPG.showChat(b12, text);
					break;
				}
				case 1:
				{
					sbyte b7 = msg.reader().readByte();
					if (PM.p2[b7] == null)
					{
						break;
					}
					if (PM.p2[b7].isMe)
					{
						if (CCanvas.curScr == CCanvas.gameScrRPG)
						{
							WaitingScr.gI().show();
						}
						for (int l = 0; l < PM.p2.Length; l++)
						{
							if (PM.p2[l] != null)
							{
								PM.p2[l] = null;
							}
						}
						if (GameScrRPG.map != null)
						{
							GameScrRPG.map.unload();
						}
						if (GameScrRPG.mapItem != null)
						{
							GameScrRPG.mapItem.unload();
						}
						GameScrRPG.vNpc.removeAllElements();
						SmallImage.unload();
					}
					else
					{
						PM.p2[b7] = null;
					}
					break;
				}
				case 4:
				{
					sbyte b2 = msg.reader().readByte();
					if (PM.p2[b2] != null)
					{
						CCanvas.gameScrRPG.perform(2, PM.p2[b2]);
					}
					break;
				}
				case 7:
					InfoDlg.hide();
					try
					{
						Panel.zones = new int[msg.reader().readByte()];
						Panel.pts = new int[Panel.zones.Length];
						Panel.numPlayer = new int[Panel.zones.Length];
						Panel.maxPlayer = new int[Panel.zones.Length];
						for (int num24 = 0; num24 < Panel.zones.Length; num24++)
						{
							Panel.zones[num24] = msg.reader().readByte();
							Panel.pts[num24] = msg.reader().readByte();
							Panel.numPlayer[num24] = msg.reader().readByte();
							Panel.maxPlayer[num24] = msg.reader().readByte();
						}
					}
					catch (Exception ex)
					{
						ex.StackTrace.ToString();
					}
					CCanvas.panel.setTypeZone();
					CCanvas.panel.show();
					break;
				case 9:
				{
					sbyte b8 = msg.reader().readByte();
					CRes.outz("server gui ve giao dich action = " + b8);
					if (b8 == 0)
					{
						int playerID = msg.reader().readInt();
						CCanvas.gameScrRPG.giaodich(playerID);
					}
					if (b8 == 1)
					{
						int num8 = msg.reader().readInt();
						CPlayer playerByIDDB = PM.getPlayerByIDDB2(num8);
						if (playerByIDDB == null)
						{
							break;
						}
						CCanvas.panel.setTypeGiaoDich(playerByIDDB);
						CCanvas.panel.show();
						GameService.gI().getPlayerMenu(num8);
					}
					if (b8 == 2)
					{
						sbyte b9 = msg.reader().readByte();
						for (int m = 0; m < CCanvas.panel.vMyGD.size(); m++)
						{
							Item item = (Item)CCanvas.panel.vMyGD.elementAt(m);
							if (item.indexUI == b9)
							{
								CCanvas.panel.vMyGD.removeElement(item);
								break;
							}
						}
					}
					if (b8 == 5)
					{
					}
					if (b8 == 6)
					{
						CCanvas.panel.isFriendLock = true;
						if (CCanvas.panel2 != null)
						{
							CCanvas.panel2.isFriendLock = true;
						}
						CCanvas.panel.vFriendGD.removeAllElements();
						if (CCanvas.panel2 != null)
						{
							CCanvas.panel2.vFriendGD.removeAllElements();
						}
						int friendMoneyGD = msg.reader().readInt();
						int num9 = msg.reader().readUnsignedByte();
						CRes.outz("numC=" + num9);
						for (int n = 0; n < num9; n++)
						{
							short num10 = msg.reader().readShort();
							if (num10 == -1)
							{
								continue;
							}
							Item item2 = new Item();
							item2.template = ItemTemplates.get(num10 + string.Empty);
							item2.quantity = msg.reader().readByte();
							CRes.outz("item quaitly= " + item2.quantity);
							item2.HP = msg.reader().readByte();
							item2.info = msg.reader().readUTF();
							item2.content = msg.reader().readUTF();
							item2.indexUI = n;
							item2.gems = new MyVector(string.Empty);
							item2.nSocket = 0;
							item2.isSocketing = false;
							sbyte b10 = msg.reader().readByte();
							if (b10 != 0)
							{
								item2.itemOption = new ItemOption[b10];
								for (int num11 = 0; num11 < item2.itemOption.Length; num11++)
								{
									sbyte b11 = msg.reader().readByte();
									int num12 = msg.reader().readUnsignedShort();
									if (b11 != -1)
									{
										item2.itemOption[num11] = new ItemOption(b11, num12);
									}
									if (b11 == 15)
									{
										item2.isSocketing = true;
										item2.daySocket = num12 / 24;
										item2.hourSocket = num12 % 24;
									}
									if (b11 == 16)
									{
										item2.nSocket++;
										if (num12 != 0)
										{
											ItemTemplate itemTemplate = ItemTemplates.get(num12 + string.Empty);
											if (itemTemplate != null)
											{
												item2.gems.addElement(itemTemplate.iconID + string.Empty);
											}
										}
									}
									if (b11 == 17)
									{
										item2.level = num12;
									}
								}
								item2.compare = CCanvas.panel.getCompare(item2);
							}
							if (item2.template.type == 11)
							{
							}
							if (CCanvas.panel2 != null)
							{
								CCanvas.panel2.vFriendGD.addElement(item2);
							}
							else
							{
								CCanvas.panel.vFriendGD.addElement(item2);
							}
						}
						for (int num13 = 0; num13 < CPlayer.arrItemBag.Length; num13++)
						{
							if (CPlayer.arrItemBag[num13] != null)
							{
								CPlayer.arrItemBag[num13].isInBalo = false;
							}
						}
						for (int num14 = 0; num14 < CPlayer.arrItemGhepNgoc.Length; num14++)
						{
							CPlayer.arrItemGhepNgoc[num14] = null;
						}
						InfoDlg.hide();
						if (CCanvas.panel2 != null)
						{
							CCanvas.panel2.setTabGiaoDich(false);
							CCanvas.panel2.friendMoneyGD = friendMoneyGD;
						}
						else
						{
							CCanvas.panel.friendMoneyGD = friendMoneyGD;
							if (CCanvas.panel.currentTabIndex == 2)
							{
								CCanvas.panel.setTabGiaoDich(false);
							}
						}
					}
					if (b8 == 7)
					{
						InfoDlg.hide();
						if (CCanvas.panel.isShow)
						{
							CCanvas.panel.hide();
						}
					}
					break;
				}
				case 10:
				{
					GameScrRPG.vNpc.removeAllElements();
					int num3 = msg.reader().readByte();
					CRes.outz("NPC size= " + num3);
					for (int k = 0; k < num3; k++)
					{
						sbyte b3 = msg.reader().readByte();
						short cx = msg.reader().readShort();
						short cy = msg.reader().readShort();
						sbyte b4 = msg.reader().readByte();
						CRes.outz("template = " + b4);
						short avatar = msg.reader().readShort();
						short head = msg.reader().readShort();
						short body = msg.reader().readShort();
						short leg = msg.reader().readShort();
						if (b4 != 6)
						{
							Npc o = new Npc(k, b3, cx, cy, b4, avatar, head, body, leg);
							GameScrRPG.vNpc.addElement(o);
						}
					}
					break;
				}
				case 12:
				{
					int num = msg.reader().readByte();
					CRes.outz("npc id= " + num);
					for (int i = 0; i < GameScrRPG.vNpc.size(); i++)
					{
						Npc npc = (Npc)GameScrRPG.vNpc.elementAt(i);
						if (npc.templateId != num || !npc.Equals(PM.getMyPlayer2().npcFocus))
						{
							continue;
						}
						string chat = msg.reader().readUTF();
						int num2 = msg.reader().readByte();
						MyVector myVector = new MyVector("menu");
						myVector.addElement(new Command("Chiến đấu", CCanvas.gameScrRPG, 19, null));
						for (int j = 0; j < num2; j++)
						{
							myVector.addElement(new Command(msg.reader().readUTF(), CCanvas.gameScrRPG, 8, null));
						}
						if (!CCanvas.menu.showMenu)
						{
							CCanvas.menu.startAt(myVector, 0);
							ChatPopupNR.addChatPopup(npc.avatar, chat, 100000, npc.x, npc.y - 50);
							if (CPlayer.keyChatNPC)
							{
								CPlayer.keyChatNPC = false;
								CCanvas.menu.menuSelectedItem = 0;
							}
						}
						break;
					}
					break;
				}
				case 13:
				{
					sbyte b5 = msg.reader().readByte();
					if (PM.p2[b5] != null)
					{
						PM.p2[b5].isReady = msg.reader().readByte() == 1;
					}
					break;
				}
				case 14:
				{
					sbyte b14 = msg.reader().readByte();
					if (b14 == 0)
					{
						int num17 = msg.reader().readByte();
						for (int num18 = 0; num18 < MM.mapFiles.size(); num18++)
						{
							MapFile mapFile = (MapFile)MM.mapFiles.elementAt(num18);
							mapFile.isCheckFilter = false;
						}
						for (int num19 = 0; num19 < num17; num19++)
						{
							sbyte b15 = msg.reader().readByte();
							for (int num20 = 0; num20 < MM.mapFiles.size(); num20++)
							{
								MapFile mapFile2 = (MapFile)MM.mapFiles.elementAt(num20);
								if (mapFile2.mapID == b15)
								{
									mapFile2.isCheckFilter = true;
									break;
								}
							}
						}
						if (CCanvas.panel.type != 26)
						{
							CCanvas.panel.setTypeMapFilter();
						}
						if (!CCanvas.panel.isShow)
						{
							CCanvas.panel.show();
						}
					}
					if (b14 == 3)
					{
						int num21 = msg.reader().readByte();
						for (int num22 = 0; num22 < Panel.strMoney.Length; num22++)
						{
							CCanvas.panel.isCheckMoneyFilter[num22] = false;
						}
						for (int num23 = 0; num23 < num21; num23++)
						{
							CCanvas.panel.isCheckMoneyFilter[msg.reader().readByte()] = true;
						}
						if (CCanvas.panel.type != 27)
						{
							CCanvas.panel.setTypeMoneyFilter();
						}
						if (!CCanvas.panel.isShow)
						{
							CCanvas.panel.show();
						}
					}
					break;
				}
				case 15:
				{
					sbyte b = msg.reader().readByte();
					CRes.outz("join index= " + b);
					if (PM.p2[b] == null)
					{
						PM.p2[b] = new CPlayer();
					}
					PM.p2[b].IDDB = msg.reader().readInt();
					PM.p2[b].name = msg.reader().readUTF();
					PM.p2[b].clanID = msg.reader().readShort();
					PM.p2[b].exp = msg.reader().readInt();
					PM.p2[b].getStringLevel();
					PM.p2[b].head = msg.reader().readShort();
					PM.p2[b].leg = msg.reader().readShort();
					PM.p2[b].body = msg.reader().readShort();
					PM.p2[b].hat = msg.reader().readShort();
					PM.p2[b].wing = msg.reader().readShort();
					PM.p2[b].wp = msg.reader().readShort();
					PM.p2[b].index = b;
					PM.p2[b].isAvenger = msg.reader().readByte();
					if (PM.p2[b].isFlyAvenger())
					{
						PM.p2[b].isMoveAvenger = true;
						PM.p2[b].runSpeed = 2;
						PM.p2[b].falling = false;
					}
					else
					{
						PM.p2[b].falling = true;
					}
					CRes.outz("joint id= " + PM.p2[b].IDDB + ", name=" + PM.p2[b].name + ", exp=" + PM.p2[b].exp + " head= " + PM.p2[b].head + " leg= " + PM.p2[b].leg + " body=" + PM.p2[b].body + " hat= " + PM.p2[b].hat + " wp= " + PM.p2[b].wp + " ??? isAvenger " + PM.p2[b].isAvenger);
					if (PM.p2[b].IDDB == MyMidlet.myInfo.IDDB)
					{
						PM.p2[b].isMe = true;
						GameScrRPG.myIndex = b;
						MyMidlet.myInfo.index = b;
						PM.p2[b].power = MyMidlet.myInfo.power;
						PM.getMyPlayer2().target = CCanvas.gameScrRPG.searchNearTarget();
					}
					PM.p2[b].pointSeat = msg.reader().readByte();
					PM.p2[b].isCom = MyMidlet.myInfo.IDDB != PM.p2[b].IDDB;
					if (PM.p2[b].isFlyAvenger())
					{
						PM.getMyPlayer2().nexty = PM.getMyPlayer2().y;
						PM.getMyPlayer2().lasty = (short)PM.getMyPlayer2().y;
						PM.p2[b].falling = false;
					}
					else
					{
						PM.p2[b].falling = true;
					}
					break;
				}
				case 5:
				case 6:
				case 8:
				case 11:
					break;
				}
				break;
			case -125:
			case -124:
			case -123:
			case -122:
			case -120:
			case -116:
			case -110:
			case -109:
			case -104:
			case -101:
			case -97:
			case -96:
			case -95:
			case -94:
			case -93:
			case -88:
			case -87:
			case -86:
			case -85:
			case -84:
			case -83:
			case -82:
			case -81:
			case -80:
			case -79:
			case -78:
			case -77:
			case -76:
			case -75:
			case -74:
			case -73:
			case -72:
			case -69:
			case -65:
			case -61:
			case -56:
			case -50:
			case -49:
			case -48:
			case -44:
			case -39:
			case -37:
			case -33:
			case -29:
			case -27:
			case -21:
			case -20:
			case -16:
			case -15:
			case -13:
			case -11:
			case -9:
			case -8:
			case -5:
			case -4:
			case -1:
			case 1:
			case 13:
			case 15:
			case 18:
			case 23:
			case 28:
			case 30:
			case 31:
			case 35:
			case 37:
			case 38:
			case 39:
			case 40:
			case 41:
			case 42:
			case 44:
			case 46:
			case 49:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 60:
			case 61:
			case 62:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 73:
			case 74:
			case 77:
			case 79:
			case 81:
			case 82:
			case 85:
			case 90:
			case 91:
			case 94:
			case 98:
			case 99:
			case 111:
			case 112:
			case 114:
			case 116:
			case 117:
			case 118:
			case 120:
				break;
			}
		}
		catch (Exception ex4)
		{
			Cout.LogTryCatch("Loi tai cmd: " + msg.command + "    " + ex4.StackTrace.ToString());
		}
	}

	private Image createImage(sbyte[] arr)
	{
		try
		{
			return Image.createImage(arr, 0, arr.Length);
		}
		catch (Exception ex)
		{
			Cout.LogTryCatch("createImage: " + ex.StackTrace);
		}
		return null;
	}

	public void setGameLogicHandler(IGameLogicHandler gameLogicHandler)
	{
		this.gameLogicHandler = gameLogicHandler;
	}

	public void perform(int idAction, object p)
	{
		if (idAction == 1000)
		{
			mySMS mySMS2 = (mySMS)p;
		}
		if (idAction == 1001)
		{
			CCanvas.endDlg();
		}
		if (idAction == 1002)
		{
			InviteInfo inviteInfo = (InviteInfo)p;
			PrepareScr.currentRoom = inviteInfo.roomInvite;
			Panel.setBoardName(inviteInfo.boardInvite, inviteInfo.boarNameInvite);
			GameService.gI().joinBoard(inviteInfo.roomInvite, inviteInfo.boardInvite, string.Empty);
		}
		if (idAction == 1003)
		{
			int id = int.Parse((string)p);
			GameService.gI().get_more_day(1, id);
		}
		if (idAction == 1004)
		{
			GameService.gI().sendNPCMenu((sbyte)((Item)p).itemId);
			ChatPopupNR.currChatPopup = null;
		}
		if (idAction == 1005)
		{
			ChatPopupNR.currChatPopup = null;
		}
		if (idAction == 1006)
		{
			GameService.gI().joinRoomWithPass(CCanvas.inputDlg.tfInput.getText().Trim());
			CCanvas.endDlg();
			CCanvas.startOKDlg(L.pleaseWait());
		}
		if (idAction == 1007)
		{
			InfoDlg.hide();
			CCanvas.endDlg();
		}
	}
}
