b.java

来自「很好的3款手机游戏源码」· Java 代码 · 共 848 行

JAVA
848
字号
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 

import java.util.Vector;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class b
	implements d
{

	private a O;
	private static Image af;
	public int S[];
	public int L[];
	private c ai;
	private Image Y;
	public int ad[];
	public static a M;
	public int V;
	public int U;
	public int aj;
	private int J;
	public static int Q[];
	public static int aa = 0;
	public static boolean ah = false;
	public static boolean ab;
	private static Image N;
	public static String X = " / ";
	public static String T[] = {
		"购买'双倍经验',可以更加快速的提升等级,信息费1元/次,是否支付?", "购买'兑换金钱',可以增加金钱'400',能够到阴阳寮仓库管理员处购买高级装备,信息费1元/次,是否支付?", "购买'快速升级',可以快速提升1级,享受一下高等及杀怪的快感,信息费1元/次,是否支付?", "购买费用'1元',能够自由出入其余普通场景,是否支付?", "购买费用'1元',能够进入'恶灵的斋院'跟终极BOSS进行战斗,是否支付?"
	};
	public static String ag[] = {
		"双倍经验", "兑换金钱", "快速升级"
	};
	public static boolean R = false;
	public static boolean P = false;
	public static boolean K = false;
	private static boolean ae = false;
	public static boolean W = false;
	public static int Z = 0;
	private static boolean ac = false;

	public b(c c1)
	{
		S = new int[4];
		L = new int[24];
		V = 0;
		aj = 0;
		U = 0;
		ai = c1;
		O = new a(c.a("/images/product.png"), 18, 18);
		af = c.a("/images/product1.png");
		M = new a(c.a("/images/bagtitle.png"), 29, 17);
		Y = c.a("/images/gold.png");
		N = c.a("/images/wen.png");
	}

	public void try(int j)
	{
		if (for(j, 0) != 0)
		{
			b  = this;
			c.bB.null(0, for(j, 0));
		}
		if (for(j, 1) != 0)
		{
			b 1 = this;
			c.bB.null(1, for(j, 1));
		}
		L[j]--;
	}

	public int for(int j, int l)
	{
		switch (l)
		{
		case 0: // '\0'
			return c.bu.case[j][0] >> 16;

		case 1: // '\001'
			return (c.bu.case[j][0] & 0xff00) >> 8;

		case 2: // '\002'
			return c.bu.case[j][0] & 0xff;

		case 3: // '\003'
			return c.bu.case[j][1] >> 16;

		case 4: // '\004'
			return (c.bu.case[j][1] & 0xff00) >> 8;
		}
		return 0;
	}

	public void int()
	{
		L = null;
		L = new int[24];
		S = (new int[] {
			-1, -1, -1, -1
		});
		ad = (new int[] {
			1, 1, 1, 0, 0, 0, 0
		});
	}

	private boolean if(int j)
	{
		int l = j / 5;
		if (S[l] == -1)
		{
			S[l] = j;
			L[j]--;
		} else
		{
			L[S[l]]++;
			S[l] = j;
			L[j]--;
		}
		b  = this;
		c.bB.H();
		return true;
	}

	private boolean for(int j)
	{
		L[S[j]]++;
		S[j] = -1;
		b  = this;
		c.bB.H();
		return true;
	}

	public void do(Graphics g)
	{
		if (ab)
			for(g);
		else
			int(g);
	}

	public void for(Graphics g)
	{
		a(g, 2, V, U, Q);
		if (V < Q.length)
			a(g, Q[V], 1);
		ai.do(g, 2, 4);
		M.try(g, 16, 13, 6);
		M.try(g, 45, 13, 7);
		M.try(g, 16, 13, 8);
		if(g, 110, 30);
	}

	public void int(Graphics g)
	{
		a(g, 0, V, U, Q);
		if (V < Q.length)
			a(g, Q[V], 2);
		ai.do(g, 3, 4);
		M.try(g, 16, 13, 6);
		M.try(g, 45, 13, 7);
		M.try(g, 45, 13, 8);
		if(g, 110, 30);
	}

	private void if(Graphics g, int j, int l)
	{
		g.setColor(0xffffff);
		g.drawString("金钱:", j, l, 40);
		ai.a(g, c.bN, j, l - 10, 0, 1);
	}

	private boolean do(int j, int l)
	{
		if (c.bu.case[j][2] * l <= c.bN && if(j, l))
		{
			c.bN -= c.bu.case[j][2] * l;
			return true;
		} else
		{
			return false;
		}
	}

	public boolean if(int j, int l)
	{
		if (L[j] + l > 999)
		{
			return false;
		} else
		{
			L[j] += l;
			return true;
		}
	}

	private void a(int j, int l)
	{
		if (L[j] > 0)
		{
			c.bN += (c.bu.case[j][2] / 4) * l;
			L[j] -= l;
		} else
		{
			return;
		}
	}

	private void new(Graphics g)
	{
		a(g, true, V, V, 4);
		for (int j = 0; j < c.bu.if.length; j++)
		{
			if (V == j)
				g.setColor(0x663300);
			else
				g.setColor(0xffffff);
			O.try(g, 22, j * 24 + 37, j);
			g.drawString(c.bu.if[j], 45, j * 24 + 37, 20);
			g.drawString(S[j] >= 0 ? c.bu.goto[S[j]] : "", 148, j * 24 + 37, 24);
			if (j == V && S[j] >= 0)
				a(g, S[j], 0);
		}

		if (S[V] >= 0)
			ai.do(g, 6, 4);
		else
			ai.do(g, -1, 4);
	}

	public void a(Graphics g, int j, int l)
	{
		g.drawImage(c.a8, 0, 160, 20);
		int i1 = 0;
		if (j < 20)
			i1 = j / 5;
		else
		if (j < 22)
			i1 = 4;
		else
			i1 = 5;
		g.setColor(0xffffff);
		g.drawRect(6, 163, 26, 26);
		g.drawImage(af, 8, 165, 20);
		O.try(g, 10, 167, i1);
		int j1 = 0;
		for (int k1 = 0; k1 < 5; k1++)
			if (for(j, k1) != 0)
			{
				g.drawString(c.bu.a[k1] + ":" + for(j, k1), 55 + 50 * (j1 / 2), 168 + 18 * (j1 % 2), 0);
				j1++;
			}

		if (l > 0)
		{
			g.drawImage(Y, 120, 183, 0);
			ai.a(g, l == 1 ? c.bu.case[j][2] : c.bu.case[j][2] / 4, 132, 185, 0, 2);
		}
	}

	private void try(Graphics g)
	{
		a(g, 0, V, U, Q);
		if (V < Q.length && L[Q[V]] > 0)
			a(g, Q[V], 0);
		if (Q.length > 0)
			if (L[Q[V]] == 0)
				ai.do(g, -1, 4);
			else
			if (Q[V] < 20)
				ai.do(g, 5, 4);
			else
				ai.do(g, 7, 4);
	}

	private void a(Graphics g, boolean flag, int j, int l, int i1)
	{
		g.setClip(0, 0, 176, 208);
		g.setColor(0x606030);
		g.fillRect(13, 10, 151, 148);
		g.setColor(0x2b2313);
		g.drawRect(13, 10, 150, 147);
		g.drawLine(14, 30, 162, 30);
		g.drawRect(15, 12, 146, 18);
		g.drawRect(15, 32, 146, 123);
		g.drawRect(20, 35, 132, 117);
		g.setColor(0x915622);
		g.fillRect(21, 36, 131, 116);
		g.setColor(0x323212);
		g.fillRect(154, 35, 6, 118);
		if (flag)
		{
			for (int j1 = 0; j1 < 4; j1++)
			{
				g.setColor(0xaa7445);
				g.drawLine(21, 56 + 24 * j1, 151, 56 + 24 * j1);
				g.setColor(0x723f12);
				g.drawLine(21, 57 + 24 * j1, 151, 57 + 24 * j1);
				g.setColor(0x433816);
				g.drawLine(21, 58 + 24 * j1, 151, 58 + 24 * j1);
				g.setColor(0x2b2313);
				g.drawLine(21, 59 + 24 * j1, 151, 59 + 24 * j1);
			}

			g.setColor(0xe8b283);
			g.fillRect(21, 36 + 24 * j, 130, 19);
			g.setColor(0x915622);
			g.drawRect(23, 36 + 24 * j, 126, 19);
			if (i1 > 5)
			{
				g.setColor(0x8f8f63);
				g.fillRect(154, 35 + (118 * l) / i1, 6, 118 / i1);
			}
		}
		a(g, 39, 10, true);
		a(g, 126, 10, true);
		a(g, 39, 30, true);
		a(g, 126, 30, true);
		a(g, 39, 153, false);
		a(g, 126, 153, false);
	}

	private void a(Graphics g, int j, int l, boolean flag)
	{
		g.setClip(j, l, 12, 4);
		if (flag)
			g.drawImage(N, j, l, 20);
		else
			g.drawImage(N, j, l - 4, 20);
		g.setClip(0, 0, 176, 208);
	}

	public void a(Graphics g, int j, int l, int i1, int ai1[])
	{
		a(g, true, l - i1, l, ai1.length);
		g.setColor(0xffffff);
		for (int j1 = i1; j1 < (ai1.length - i1 < 5 ? ai1.length : 5 + i1); j1++)
		{
			if (l == j1)
				g.setColor(0x663300);
			else
				g.setColor(0xffffff);
			if (j == 0 && L[ai1[j1]] > 0)
			{
				g.drawString(c.bu.goto[ai1[j1]], 26, (j1 - i1) * 24 + 37, 20);
				g.drawString(String.valueOf(L[ai1[j1]]), 148, (j1 - i1) * 24 + 37, 24);
			}
			if (j == 1)
			{
				b  = this;
				c.bB.getClass();
				b 1 = this;
				c.bB.getClass();
				b 2 = this;
				if (c.bB.dn[1] < c.bu.new[ai1[j1]])
					g.setColor(0x29454a);
				g.drawString(c.bu.int[ai1[j1]], 26, (j1 - i1) * 24 + 37, 20);
				b 3 = this;
				g.drawString(String.valueOf(c.bu.new[ai1[j1]]) + X + c.bB.dn[1], 148, (j1 - i1) * 24 + 37, 24);
			}
			if (j == 2)
			{
				g.drawString(c.bu.goto[ai1[j1]], 26, (j1 - i1) * 24 + 37, 20);
				g.drawString(String.valueOf(L[ai1[j1]]), 148, (j1 - i1) * 24 + 37, 24);
			}
		}

	}

	private void a(int j)
	{
		if (j != -1 && j != 1)
			return;
		J = Q.length;
		if (j == -1 && V > 0)
		{
			V--;
			if (V - U < 0)
				U--;
		} else
		if (j == 1 && V < J - 1)
		{
			V++;
			if (V - U >= 5)
				U++;
		}
	}

	public void a(Graphics g)
	{
		switch (aj)
		{
		default:
			break;

		case 1: // '\001'
			a(g, false, 0, 0, 0);
			ai.case(g);
			g.setColor(255, 255, 255);
			b  = this;
			b 1 = this;
			g.drawString("生命:" + c.bB.dn[0] + X + c.bB.dn[2], 28, 38, 0);
			b 2 = this;
			b 3 = this;
			g.drawString("魔法:" + c.bB.dn[1] + X + c.bB.dn[3], 28, 57, 0);
			b 4 = this;
			g.drawString("物攻:" + c.bB.dn[4], 28, 76, 0);
			b 5 = this;
			g.drawString("魔攻:" + c.bB.dn[5], 28, 95, 0);
			b 6 = this;
			g.drawString("防御:" + c.bB.dn[6], 28, 114, 0);
			b 7 = this;
			b 8 = this;
			g.drawString("经验:" + k.dl + X + c.bB.dq[k.c6 - 1], 28, 133, 0);
			ai.do(g, -1, 4);
			break;

		case 0: // '\0'
			new(g);
			break;

		case 2: // '\002'
			ai.case(g);
			a(g, 1, V, U, Q);
			ai.do(g, -1, 4);
			break;

		case 3: // '\003'
			try(g);
			break;

		case 4: // '\004'
			a(g, false, 0, 0, 0);
			ai.case(g);
			g.setColor(0xffffff);
			for (int j = 0; j < ai.br.size(); j++)
				g.drawString((String)ai.br.elementAt(j), 25, 36 + j * 24, 0);

			ai.do(g, -1, 4);
			break;
		}
		M.try(g, 74, 13, aj + 1);
		M.try(g, 74, 13, 8);
		if (aj == 5)
			if(g);
	}

	private void if(Graphics g)
	{
		g.setColor(0);
		g.fillRect(0, 0, 176, 208);
		if (!ac)
		{
			if (W)
				ai.do(g, 5, 30, false);
			else
			if (!ae)
			{
				for (int j = 0; j < ag.length; j++)
				{
					if (j == Z)
						g.setColor(0xff0000);
					else
						g.setColor(65280);
					if (j == 0 && K)
						g.setColor(255);
					g.drawString(ag[j], 88, 74 + 30 * j, 17);
				}

			} else
			{
				g.drawString(ag[Z], 88, 5, 17);
				ai.do(g, 5, 30, false);
			}
			ai.do(g, 0, 4);
		} else
		{
			ai.do(g, 5, 30, false);
			ai.do(g, 1, 4);
		}
	}

	private void for()
	{
		switch (aj)
		{
		case 1: // '\001'
		case 2: // '\002'
		case 4: // '\004'
		default:
			break;

		case 0: // '\0'
			if (S[V] >= 0)
				c.aw.for(V);
			break;

		case 3: // '\003'
			if (L[Q[V]] <= 0)
				break;
			if (Q[V] < 20)
				if(Q[V]);
			else
				try(Q[V]);
			break;

		case 5: // '\005'
			b  = this;
			c.bd = false;
			ai.try();
			if (!ac)
			{
				if (W)
				{
					ai.a(T[Z], 150, 5);
					ac = true;
				} else
				{
					ae = true;
					b 1 = this;
					c.bd = false;
					ai.try();
					ai.a(T[Z], 150, 5);
					ac = true;
				}
			} else
			{
				a();
				ac = false;
			}
			break;
		}
	}

	private void a()
	{
		switch (Z)
		{
		default:
			break;

		case 0: // '\0'
			c  = ai;
			if (i.a())
			{
				K = true;
				ae = false;
				ai.f();
				Z++;
				ai.do("双倍经验功能开启");
			} else
			{
				ai.do("短信发送失败");
			}
			break;

		case 1: // '\001'
			b 1 = this;
			if (c.bN + 400 > 0x1869f)
			{
				ai.do("已是最大金币");
				break;
			}
			c 2 = ai;
			if (i.a())
			{
				b 3 = this;
				c.bN += 400;
				ae = false;
				ai.do("购买400金币成功");
			} else
			{
				ai.do("短信发送失败");
			}
			break;

		case 2: // '\002'
			b 4 = this;
			if (k.c6 >= 20)
			{
				ai.do("已是最高等级");
				break;
			}
			c 5 = ai;
			if (i.a())
			{
				b 6 = this;
				k.c6++;
				b 7 = this;
				c.bB.H();
				b 8 = this;
				c.bB.K();
				b 9 = this;
				c.bB.M();
				ae = false;
				ai.do("等级提升1级");
			} else
			{
				ai.do("短信发送失败");
			}
			break;

		case 3: // '\003'
			c 10 = ai;
			if (i.a())
			{
				R = true;
				ai.f();
				ai.do("短信发送成功");
				b 11 = this;
				c.bd = false;
				ai.try();
				c.aB = 0;
			} else
			{
				ai.do("短信发送失败");
				c.aL = false;
			}
			do();
			W = false;
			break;

		case 4: // '\004'
			c 12 = ai;
			if (i.a())
			{
				P = true;
				ai.f();
				ai.do("短信发送成功");
				b 13 = this;
				c.bd = false;
				ai.try();
				c.aB = 0;
			} else
			{
				ai.do("短信发送失败");
				c.aL = false;
			}
			do();
			W = false;
			break;
		}
	}

	public void if()
	{
		J = 1;
		switch (aj)
		{
		case 3: // '\003'
			Q = a(L, 0, L.length);
			break;

		case 2: // '\002'
			Q = a(ad, 0, ad.length);
			break;

		case 5: // '\005'
			if (K)
				Z = 1;
			else
				Z = 0;
			break;

		case 4: // '\004'
			b  = this;
			ai.a(e.byte[aa], 130);
			break;

		default:
			ai.br.removeAllElements();
			break;
		}
		V = 0;
		U = 0;
	}

	private void do(int j)
	{
		J = 1;
		if (aj == 3 || aj == 2)
		{
			a(j);
			return;
		}
		switch (aj)
		{
		case 0: // '\0'
			J = c.bu.if.length;
			break;

		case 5: // '\005'
			if (!ac && !ae)
				if (K)
					Z = Z++ % 2 + 1;
				else
					Z = (Z + j + 3) % 3;
			break;
		}
		if (aj != 3 && J != 0 && aj != 2)
			V = (V + j + J) % J;
	}

	public int[] a(int ai1[], int j, int l)
	{
		int i1 = 0;
		for (int j1 = j; j1 < l; j1++)
			if (ai1[j1] > 0)
				i1++;

		int ai2[] = (int[])null;
		ai2 = new int[i1];
		i1 = 0;
		for (int k1 = j; k1 < l; k1++)
			if (ai1[k1] > 0)
			{
				ai2[i1] = k1;
				i1++;
			}

		return ai2;
	}

	public boolean new(int j)
	{
		switch (j)
		{
		case 1: // '\001'
			a(-1);
			return true;

		case 6: // '\006'
			a(1);
			return true;

		case 2: // '\002'
		case 5: // '\005'
			ab = !ab;
			if (ab)
				Q = c.bu.do[c.ax];
			else
				Q = a(L, 0, L.length);
			V = 0;
			U = 0;
			return true;

		case -6: 
			if (c.aB == 4)
				if (ab)
				{
					do(Q[V], 1);
					return true;
				} else
				{
					a(Q[V], 1);
					return true;
				}
			// fall through

		case -7: 
			ah = false;
			c.aB = 0;
			return true;

		case -5: 
		case -4: 
		case -3: 
		case -2: 
		case -1: 
		case 0: // '\0'
		case 3: // '\003'
		case 4: // '\004'
		default:
			return false;
		}
	}

	public boolean int(int j)
	{
		switch (j)
		{
		case 1: // '\001'
		case 2: // '\002'
			do(-1);
			return true;

		case 5: // '\005'
		case 6: // '\006'
			do(1);
			return true;

		case -6: 
			for();
			return true;

		case -7: 
			ai.br.removeAllElements();
			if (aj == 5)
			{
				if (W)
				{
					c.aL = false;
					do();
					W = false;
				} else
				if (ae)
					ae = false;
				else
					do();
				ac = false;
			} else
			if (aj == 4)
			{
				h.cB = 0;
				c.aB = 0;
			} else
			{
				h.cB = 9;
				c.aB = 1;
			}
			return true;

		case -5: 
		case -4: 
		case -3: 
		case -2: 
		case -1: 
		case 0: // '\0'
		case 3: // '\003'
		case 4: // '\004'
		default:
			return false;
		}
	}

	private void do()
	{
		h.cB = 0;
		b  = this;
		c.bd = false;
		ai.try();
		c.aB = 0;
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?