Same SBoT.jar, decompiled with jad instead of CFR for comparison -- jad is the same decompiler the community used on RSC client dumps back in 2004 (see DeobedMC201.rar). A few methods didn't fully resolve (jad is much less capable than CFR on complex control flow); those are marked inline where jad gave up.
1126 lines
20 KiB
Java
1126 lines
20 KiB
Java
// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
|
|
// Jad home page: http://www.geocities.com/kpdus/jad.html
|
|
// Decompiler options: packimports(3)
|
|
// Source File Name: Script.java
|
|
|
|
import java.io.PrintStream;
|
|
|
|
public abstract class Script
|
|
{
|
|
|
|
public Script(mudclient mudclient1)
|
|
{
|
|
a = mudclient1;
|
|
}
|
|
|
|
public void start(String s, String as[])
|
|
{
|
|
}
|
|
|
|
public String[] getCommands()
|
|
{
|
|
return new String[0];
|
|
}
|
|
|
|
public void init()
|
|
{
|
|
}
|
|
|
|
public void stop()
|
|
{
|
|
}
|
|
|
|
public void ServerMessage(String s)
|
|
{
|
|
}
|
|
|
|
public void Wait(int i)
|
|
{
|
|
try
|
|
{
|
|
Thread.sleep(i);
|
|
}
|
|
catch(InterruptedException interruptedexception) { }
|
|
}
|
|
|
|
public void DisplayMessage(String s, int i)
|
|
{
|
|
a.b(s, 3);
|
|
}
|
|
|
|
public void SetFightMode(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.i(i);
|
|
}
|
|
|
|
public int GetFightMode()
|
|
{
|
|
WaitForLoad();
|
|
return a.Cd;
|
|
}
|
|
|
|
public void AtObject(int i, int j)
|
|
{
|
|
boolean flag;
|
|
flag = q.d;
|
|
WaitForLoad();
|
|
a;
|
|
if(flag) goto _L2; else goto _L1
|
|
_L1:
|
|
i;
|
|
j;
|
|
d();
|
|
-1;
|
|
JVM INSTR icmpeq 38;
|
|
goto _L3 _L4
|
|
_L3:
|
|
a.h(i, j);
|
|
if(!flag) goto _L5; else goto _L4
|
|
_L4:
|
|
a;
|
|
_L2:
|
|
z[0] + i + z[1] + j;
|
|
3;
|
|
b();
|
|
_L5:
|
|
}
|
|
|
|
public void AtObject(int ai[])
|
|
{
|
|
boolean flag;
|
|
flag = q.d;
|
|
WaitForLoad();
|
|
a;
|
|
if(flag) goto _L2; else goto _L1
|
|
_L1:
|
|
ai[0];
|
|
ai[1];
|
|
d();
|
|
-1;
|
|
JVM INSTR icmpeq 46;
|
|
goto _L3 _L4
|
|
_L3:
|
|
a.h(ai[0], ai[1]);
|
|
if(!flag) goto _L5; else goto _L4
|
|
_L4:
|
|
a;
|
|
_L2:
|
|
z[0] + ai[0] + z[1] + ai[1];
|
|
3;
|
|
b();
|
|
_L5:
|
|
}
|
|
|
|
public void AtObject2(int i, int j)
|
|
{
|
|
boolean flag;
|
|
flag = q.d;
|
|
WaitForLoad();
|
|
a;
|
|
if(flag) goto _L2; else goto _L1
|
|
_L1:
|
|
i;
|
|
j;
|
|
d();
|
|
-1;
|
|
JVM INSTR icmpeq 38;
|
|
goto _L3 _L4
|
|
_L3:
|
|
a.i(i, j);
|
|
if(!flag) goto _L5; else goto _L4
|
|
_L4:
|
|
a;
|
|
_L2:
|
|
z[0] + i + z[1] + j;
|
|
3;
|
|
b();
|
|
_L5:
|
|
}
|
|
|
|
public void AtObject2(int ai[])
|
|
{
|
|
boolean flag;
|
|
flag = q.d;
|
|
WaitForLoad();
|
|
a;
|
|
if(flag) goto _L2; else goto _L1
|
|
_L1:
|
|
ai[0];
|
|
ai[1];
|
|
d();
|
|
-1;
|
|
JVM INSTR icmpeq 46;
|
|
goto _L3 _L4
|
|
_L3:
|
|
a.i(ai[0], ai[1]);
|
|
if(!flag) goto _L5; else goto _L4
|
|
_L4:
|
|
a;
|
|
_L2:
|
|
z[0] + ai[0] + z[1] + ai[1];
|
|
3;
|
|
b();
|
|
_L5:
|
|
}
|
|
|
|
public void Walk(int i, int j)
|
|
{
|
|
boolean flag;
|
|
flag = q.d;
|
|
WaitForLoad();
|
|
_L5:
|
|
if(a.pb() == i)
|
|
break; /* Loop/switch isn't completed */
|
|
a;
|
|
if(flag) goto _L2; else goto _L1
|
|
_L1:
|
|
qb();
|
|
j;
|
|
JVM INSTR icmpeq 64;
|
|
goto _L3 _L4
|
|
_L3:
|
|
break MISSING_BLOCK_LABEL_36;
|
|
_L4:
|
|
break; /* Loop/switch isn't completed */
|
|
WaitForLoad();
|
|
a;
|
|
_L2:
|
|
i;
|
|
j;
|
|
j();
|
|
Thread.sleep(1000L);
|
|
goto _L5
|
|
InterruptedException interruptedexception;
|
|
interruptedexception;
|
|
if(!flag) goto _L5; else goto _L6
|
|
_L6:
|
|
}
|
|
|
|
public void Walk(int i, int j, int k)
|
|
{
|
|
boolean flag;
|
|
flag = q.d;
|
|
WaitForLoad();
|
|
_L5:
|
|
if(a.pb() == i)
|
|
break; /* Loop/switch isn't completed */
|
|
a.qb();
|
|
if(flag) goto _L2; else goto _L1
|
|
_L1:
|
|
j;
|
|
JVM INSTR icmpeq 64;
|
|
goto _L3 _L4
|
|
_L3:
|
|
break MISSING_BLOCK_LABEL_36;
|
|
_L4:
|
|
break; /* Loop/switch isn't completed */
|
|
WaitForLoad();
|
|
a.j(i, j);
|
|
k;
|
|
_L2:
|
|
(long);
|
|
Thread.sleep();
|
|
goto _L5
|
|
InterruptedException interruptedexception;
|
|
interruptedexception;
|
|
if(!flag) goto _L5; else goto _L6
|
|
_L6:
|
|
}
|
|
|
|
public void WalkNoWait(int i, int j)
|
|
{
|
|
WaitForLoad();
|
|
a.j(i, j);
|
|
}
|
|
|
|
public void WalkEmpty(int i, int j, int k, int l)
|
|
{
|
|
boolean flag;
|
|
int i1;
|
|
boolean flag1;
|
|
flag1 = q.d;
|
|
WaitForLoad();
|
|
flag = false;
|
|
i1 = i;
|
|
_L14:
|
|
i1;
|
|
k;
|
|
_L8:
|
|
JVM INSTR icmpgt 80;
|
|
goto _L1 _L2
|
|
_L1:
|
|
break MISSING_BLOCK_LABEL_21;
|
|
_L2:
|
|
break; /* Loop/switch isn't completed */
|
|
j;
|
|
if(flag1) goto _L4; else goto _L3
|
|
_L3:
|
|
int j1;
|
|
j1;
|
|
_L12:
|
|
if(j1 > l)
|
|
break; /* Loop/switch isn't completed */
|
|
a.g(i1, j1);
|
|
if(flag1) goto _L6; else goto _L5
|
|
_L5:
|
|
true;
|
|
if(flag1) goto _L8; else goto _L7
|
|
_L7:
|
|
JVM INSTR icmpne 64;
|
|
goto _L9 _L10
|
|
_L9:
|
|
true;
|
|
_L6:
|
|
flag;
|
|
_L10:
|
|
j1++;
|
|
if(!flag1) goto _L12; else goto _L11
|
|
_L11:
|
|
i1++;
|
|
if(!flag1) goto _L14; else goto _L13
|
|
_L13:
|
|
flag;
|
|
_L4:
|
|
if(flag1) goto _L16; else goto _L15
|
|
_L15:
|
|
1;
|
|
JVM INSTR icmpne 151;
|
|
goto _L17 _L18
|
|
_L17:
|
|
false;
|
|
_L16:
|
|
i1;
|
|
_L20:
|
|
if(i1 != 0)
|
|
break; /* Loop/switch isn't completed */
|
|
WaitForLoad();
|
|
int k1 = Rand(i, k);
|
|
int l1 = Rand(j, l);
|
|
if(!a.g(k1, l1))
|
|
continue; /* Loop/switch isn't completed */
|
|
Walk(k1, l1);
|
|
i1 = 1;
|
|
if(!flag1)
|
|
continue; /* Loop/switch isn't completed */
|
|
_L18:
|
|
System.out.println(z[2]);
|
|
Walk(Rand(i, k), Rand(j, l));
|
|
break; /* Loop/switch isn't completed */
|
|
if(true) goto _L20; else goto _L19
|
|
_L19:
|
|
}
|
|
|
|
public void WalkEmptyNoWait(int i, int j, int k, int l)
|
|
{
|
|
boolean flag;
|
|
int i1;
|
|
boolean flag1;
|
|
flag1 = q.d;
|
|
WaitForLoad();
|
|
flag = false;
|
|
i1 = i;
|
|
_L14:
|
|
i1;
|
|
k;
|
|
_L8:
|
|
JVM INSTR icmpgt 80;
|
|
goto _L1 _L2
|
|
_L1:
|
|
break MISSING_BLOCK_LABEL_21;
|
|
_L2:
|
|
break; /* Loop/switch isn't completed */
|
|
j;
|
|
if(flag1) goto _L4; else goto _L3
|
|
_L3:
|
|
int j1;
|
|
j1;
|
|
_L12:
|
|
if(j1 > l)
|
|
break; /* Loop/switch isn't completed */
|
|
a.g(i1, j1);
|
|
if(flag1) goto _L6; else goto _L5
|
|
_L5:
|
|
true;
|
|
if(flag1) goto _L8; else goto _L7
|
|
_L7:
|
|
JVM INSTR icmpne 64;
|
|
goto _L9 _L10
|
|
_L9:
|
|
true;
|
|
_L6:
|
|
flag;
|
|
_L10:
|
|
j1++;
|
|
if(!flag1) goto _L12; else goto _L11
|
|
_L11:
|
|
i1++;
|
|
if(!flag1) goto _L14; else goto _L13
|
|
_L13:
|
|
flag;
|
|
_L4:
|
|
if(flag1) goto _L16; else goto _L15
|
|
_L15:
|
|
1;
|
|
JVM INSTR icmpne 154;
|
|
goto _L17 _L18
|
|
_L17:
|
|
false;
|
|
_L16:
|
|
i1;
|
|
_L20:
|
|
if(i1 != 0)
|
|
break; /* Loop/switch isn't completed */
|
|
WaitForLoad();
|
|
int k1 = Rand(i, k);
|
|
int l1 = Rand(j, l);
|
|
if(!a.g(k1, l1))
|
|
continue; /* Loop/switch isn't completed */
|
|
a.j(k1, l1);
|
|
i1 = 1;
|
|
if(!flag1)
|
|
continue; /* Loop/switch isn't completed */
|
|
_L18:
|
|
System.out.println(z[2]);
|
|
a.j(Rand(i, k), Rand(j, l));
|
|
break; /* Loop/switch isn't completed */
|
|
if(true) goto _L20; else goto _L19
|
|
_L19:
|
|
}
|
|
|
|
public int GetX()
|
|
{
|
|
WaitForLoad();
|
|
return a.pb();
|
|
}
|
|
|
|
public int GetY()
|
|
{
|
|
WaitForLoad();
|
|
return a.qb();
|
|
}
|
|
|
|
public int Rand(int i, int j)
|
|
{
|
|
WaitForLoad();
|
|
return a.k(i, j);
|
|
}
|
|
|
|
public void Say(String s)
|
|
{
|
|
WaitForLoad();
|
|
a.f(s);
|
|
}
|
|
|
|
public boolean EmptyTile(int i, int j)
|
|
{
|
|
WaitForLoad();
|
|
return a.g(i, j);
|
|
}
|
|
|
|
public void MagicPlayer(int i, int j)
|
|
{
|
|
WaitForLoad();
|
|
a.l(i, j);
|
|
}
|
|
|
|
public void UseOnPlayer(int i, int j)
|
|
{
|
|
WaitForLoad();
|
|
a.m(i, j);
|
|
}
|
|
|
|
public void AttackPlayer(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.l(i);
|
|
}
|
|
|
|
public void DuelPlayer(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.m(i);
|
|
}
|
|
|
|
public void TradePlayer(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.n(i);
|
|
}
|
|
|
|
public void FollowPlayer(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.o(i);
|
|
}
|
|
|
|
public void MagicItem(int i, int j, int k, int l)
|
|
{
|
|
WaitForLoad();
|
|
a.d(i, j, k, l);
|
|
}
|
|
|
|
public void UseOnItem(int i, int j, int k, int l)
|
|
{
|
|
WaitForLoad();
|
|
a.e(i, j, k, l);
|
|
}
|
|
|
|
public void TakeItem(int i, int j, int k)
|
|
{
|
|
WaitForLoad();
|
|
a.e(i, j, k);
|
|
}
|
|
|
|
public void TakeItem(int ai[], int i)
|
|
{
|
|
WaitForLoad();
|
|
a.e(ai[0], ai[1], i);
|
|
}
|
|
|
|
public void MagicNPC(int i, int j)
|
|
{
|
|
WaitForLoad();
|
|
a.n(i, j);
|
|
}
|
|
|
|
public void UseOnNPC(int i, int j)
|
|
{
|
|
WaitForLoad();
|
|
a.o(i, j);
|
|
}
|
|
|
|
public void TalkToNPC(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.q(i);
|
|
}
|
|
|
|
public void AttackNPC(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.r(i);
|
|
}
|
|
|
|
public void ThieveNPC(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.s(i);
|
|
}
|
|
|
|
public void MagicDoor(int i, int j, int k, int l)
|
|
{
|
|
WaitForLoad();
|
|
a.f(i, j, k, l);
|
|
}
|
|
|
|
public void UseOnDoor(int i, int j, int k, int l)
|
|
{
|
|
WaitForLoad();
|
|
a.g(i, j, k, l);
|
|
}
|
|
|
|
public void OpenDoor(int i, int j, int k)
|
|
{
|
|
WaitForLoad();
|
|
a.f(i, j, k);
|
|
}
|
|
|
|
public void CloseDoor(int i, int j, int k)
|
|
{
|
|
WaitForLoad();
|
|
a.g(i, j, k);
|
|
}
|
|
|
|
public void MagicObject(int i, int j, int k)
|
|
{
|
|
WaitForLoad();
|
|
a.h(i, j, k);
|
|
}
|
|
|
|
public void UseOnObject(int i, int j, int k)
|
|
{
|
|
WaitForLoad();
|
|
a.i(i, j, k);
|
|
}
|
|
|
|
public void Magic(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.t(i);
|
|
}
|
|
|
|
public boolean QuestMenu()
|
|
{
|
|
WaitForLoad();
|
|
return a.tf;
|
|
}
|
|
|
|
public void Answer(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.u(i);
|
|
}
|
|
|
|
public void MagicInventory(int i, int j)
|
|
{
|
|
WaitForLoad();
|
|
a.q(i, j);
|
|
}
|
|
|
|
public void UseWithInventory(int i, int j)
|
|
{
|
|
WaitForLoad();
|
|
a.r(i, j);
|
|
}
|
|
|
|
public void Remove(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.v(i);
|
|
}
|
|
|
|
public void Wield(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.w(i);
|
|
}
|
|
|
|
public void Use(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.x(i);
|
|
}
|
|
|
|
public void Drop(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.y(i);
|
|
}
|
|
|
|
public void Deposit(int i, int j)
|
|
{
|
|
WaitForLoad();
|
|
a.s(i, j);
|
|
}
|
|
|
|
public void Withdraw(int i, int j)
|
|
{
|
|
WaitForLoad();
|
|
a.t(i, j);
|
|
}
|
|
|
|
public int InvCount(int i)
|
|
{
|
|
WaitForLoad();
|
|
return a.f(i);
|
|
}
|
|
|
|
public int InvCount()
|
|
{
|
|
WaitForLoad();
|
|
return a.f(0);
|
|
}
|
|
|
|
public void Logout()
|
|
{
|
|
WaitForLoad();
|
|
a.V();
|
|
}
|
|
|
|
public int[] GetNearestObject(int i)
|
|
{
|
|
WaitForLoad();
|
|
int ai[] = {
|
|
i
|
|
};
|
|
return (new int[] {
|
|
a.a(ai, true, 0, 0, 9999, 9999), a.a(ai, false, 0, 0, 9999, 9999)
|
|
});
|
|
}
|
|
|
|
public int[] GetNearestObject(int ai[])
|
|
{
|
|
WaitForLoad();
|
|
return (new int[] {
|
|
a.a(ai, true, 0, 0, 9999, 9999), a.a(ai, false, 0, 0, 9999, 9999)
|
|
});
|
|
}
|
|
|
|
public int[] GetNearestObject(int i, int j, int k, int l, int i1)
|
|
{
|
|
WaitForLoad();
|
|
int ai[] = {
|
|
i
|
|
};
|
|
return (new int[] {
|
|
a.a(ai, true, j, k, l, i1), a.a(ai, false, j, k, l, i1)
|
|
});
|
|
}
|
|
|
|
public int[] GetNearestObject(int ai[], int i, int j, int k, int l)
|
|
{
|
|
WaitForLoad();
|
|
return (new int[] {
|
|
a.a(ai, true, i, j, k, l), a.a(ai, false, i, j, k, l)
|
|
});
|
|
}
|
|
|
|
public int GetNearestNPC(int i)
|
|
{
|
|
WaitForLoad();
|
|
int ai[] = {
|
|
i
|
|
};
|
|
return a.a(ai, 0, 0, 9999, 9999);
|
|
}
|
|
|
|
public int GetNearestNPC(int ai[])
|
|
{
|
|
WaitForLoad();
|
|
return a.a(ai, 0, 0, 9999, 9999);
|
|
}
|
|
|
|
public int GetNearestNPC(int i, int j, int k, int l, int i1)
|
|
{
|
|
WaitForLoad();
|
|
int ai[] = {
|
|
i
|
|
};
|
|
return a.a(ai, j, i1, l, i1);
|
|
}
|
|
|
|
public int GetNearestNPC(int ai[], int i, int j, int k, int l)
|
|
{
|
|
WaitForLoad();
|
|
return a.a(ai, k, j, k, l);
|
|
}
|
|
|
|
public int[] GetNearestItem(int i)
|
|
{
|
|
WaitForLoad();
|
|
return (new int[] {
|
|
a.a(i, true), a.a(i, false)
|
|
});
|
|
}
|
|
|
|
public void CloseShop()
|
|
{
|
|
WaitForLoad();
|
|
a.tb();
|
|
}
|
|
|
|
public void CloseBank()
|
|
{
|
|
WaitForLoad();
|
|
a.sb();
|
|
}
|
|
|
|
public void Buy(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.A(i);
|
|
}
|
|
|
|
public void Sell(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.F(i);
|
|
}
|
|
|
|
public boolean Bank()
|
|
{
|
|
WaitForLoad();
|
|
return a.af;
|
|
}
|
|
|
|
public boolean Shop()
|
|
{
|
|
WaitForLoad();
|
|
return a.Zg;
|
|
}
|
|
|
|
public void Sex0rPR4Y()
|
|
{
|
|
a.Hb = true;
|
|
}
|
|
|
|
public int DoorAt(int i, int j, int k)
|
|
{
|
|
WaitForLoad();
|
|
return a.j(i, j, k);
|
|
}
|
|
|
|
public int ObjectAt(int i, int j)
|
|
{
|
|
WaitForLoad();
|
|
return a.u(i, j);
|
|
}
|
|
|
|
public int PlayerByName(String s)
|
|
{
|
|
WaitForLoad();
|
|
return a.g(s);
|
|
}
|
|
|
|
public int GetCurrentStat(int i)
|
|
{
|
|
WaitForLoad();
|
|
return a.M(i);
|
|
}
|
|
|
|
public int GetStat(int i)
|
|
{
|
|
WaitForLoad();
|
|
return a.N(i);
|
|
}
|
|
|
|
public int PlayerHP(int i)
|
|
{
|
|
WaitForLoad();
|
|
return a.H(i);
|
|
}
|
|
|
|
public boolean InCombat()
|
|
{
|
|
WaitForLoad();
|
|
return a.ub();
|
|
}
|
|
|
|
public boolean PlayerInCombat(int i)
|
|
{
|
|
WaitForLoad();
|
|
return a.G(i);
|
|
}
|
|
|
|
public int PlayerX(int i)
|
|
{
|
|
WaitForLoad();
|
|
return a.I(i);
|
|
}
|
|
|
|
public int PlayerY(int i)
|
|
{
|
|
WaitForLoad();
|
|
return a.J(i);
|
|
}
|
|
|
|
public int PlayerDestX(int i)
|
|
{
|
|
WaitForLoad();
|
|
return a.K(i);
|
|
}
|
|
|
|
public int PlayerDestY(int i)
|
|
{
|
|
WaitForLoad();
|
|
return a.L(i);
|
|
}
|
|
|
|
public String LastServerMessage()
|
|
{
|
|
WaitForLoad();
|
|
return a.Lb;
|
|
}
|
|
|
|
public void ResetLastServerMessage()
|
|
{
|
|
WaitForLoad();
|
|
a.Lb = null;
|
|
}
|
|
|
|
public void WaitForServerMessage(int i)
|
|
{
|
|
a.Jb = false;
|
|
a.Kb = true;
|
|
long l = System.currentTimeMillis();
|
|
do
|
|
{
|
|
if(a.Jb || System.currentTimeMillis() - l > (long)i)
|
|
break;
|
|
Wait(10);
|
|
} while(!q.d);
|
|
}
|
|
|
|
public boolean InLastServerMessage(String s)
|
|
{
|
|
a.Lb.indexOf(s);
|
|
if(q.d) goto _L2; else goto _L1
|
|
_L1:
|
|
JVM INSTR iflt 22;
|
|
goto _L3 _L4
|
|
_L3:
|
|
break MISSING_BLOCK_LABEL_20;
|
|
_L4:
|
|
break MISSING_BLOCK_LABEL_22;
|
|
return true;
|
|
false;
|
|
_L2:
|
|
return;
|
|
}
|
|
|
|
public int FindInv(int i)
|
|
{
|
|
WaitForLoad();
|
|
return a.j(i);
|
|
}
|
|
|
|
public boolean Running()
|
|
{
|
|
WaitForLoad();
|
|
return a.Bb;
|
|
}
|
|
|
|
public void CheckFighters(boolean flag)
|
|
{
|
|
WaitForLoad();
|
|
a.Cb = flag;
|
|
}
|
|
|
|
public void SleepWord()
|
|
{
|
|
WaitForLoad();
|
|
a.rb();
|
|
}
|
|
|
|
public boolean Sleeping()
|
|
{
|
|
WaitForLoad();
|
|
return a.dg;
|
|
}
|
|
|
|
public int Fatigue()
|
|
{
|
|
WaitForLoad();
|
|
return (a.Ih * 100) / 750;
|
|
}
|
|
|
|
public boolean Loading()
|
|
{
|
|
boolean flag = q.d;
|
|
a.Gi;
|
|
if(flag) goto _L2; else goto _L1
|
|
_L1:
|
|
if(a.Gi != 0)
|
|
{
|
|
a.Eg.q = false;
|
|
return true;
|
|
}
|
|
a.bh;
|
|
_L2:
|
|
if(flag) goto _L4; else goto _L3
|
|
_L3:
|
|
1;
|
|
JVM INSTR icmpeq 48;
|
|
goto _L5 _L6
|
|
_L5:
|
|
break MISSING_BLOCK_LABEL_46;
|
|
_L6:
|
|
break MISSING_BLOCK_LABEL_48;
|
|
return true;
|
|
a.vi;
|
|
_L4:
|
|
int i;
|
|
i;
|
|
int j;
|
|
j = a.wi;
|
|
a.Dd = false;
|
|
i += a.id;
|
|
j += a.jd;
|
|
a.ld;
|
|
if(flag) goto _L8; else goto _L7
|
|
_L7:
|
|
a.Wg;
|
|
JVM INSTR icmpne 186;
|
|
goto _L9 _L10
|
|
_L9:
|
|
i;
|
|
if(flag) goto _L8; else goto _L11
|
|
_L11:
|
|
a.yd;
|
|
JVM INSTR icmple 186;
|
|
goto _L12 _L10
|
|
_L12:
|
|
i;
|
|
if(flag) goto _L8; else goto _L13
|
|
_L13:
|
|
a.Ad;
|
|
JVM INSTR icmpge 186;
|
|
goto _L14 _L10
|
|
_L14:
|
|
j;
|
|
if(flag) goto _L8; else goto _L15
|
|
_L15:
|
|
a.zd;
|
|
JVM INSTR icmple 186;
|
|
goto _L16 _L10
|
|
_L16:
|
|
j;
|
|
if(flag) goto _L8; else goto _L17
|
|
_L17:
|
|
a.Bd;
|
|
JVM INSTR icmpge 186;
|
|
goto _L18 _L10
|
|
_L18:
|
|
a.Eg.q = true;
|
|
return true;
|
|
_L10:
|
|
false;
|
|
_L8:
|
|
return;
|
|
}
|
|
|
|
public void WaitForLoad()
|
|
{
|
|
do
|
|
{
|
|
if(!Loading())
|
|
break;
|
|
Wait(10);
|
|
} while(!q.d);
|
|
}
|
|
|
|
public void PrayerOn(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.C(i);
|
|
}
|
|
|
|
public void PrayerOff(int i)
|
|
{
|
|
WaitForLoad();
|
|
a.D(i);
|
|
}
|
|
|
|
public boolean Prayer(int i)
|
|
{
|
|
WaitForLoad();
|
|
return a.E(i);
|
|
}
|
|
|
|
public int ShopCount(int i)
|
|
{
|
|
WaitForLoad();
|
|
return a.B(i);
|
|
}
|
|
|
|
public void SetWorld(int i)
|
|
{
|
|
z.a(i);
|
|
}
|
|
|
|
public int LastPlayerAttacked()
|
|
{
|
|
return a.Pb;
|
|
}
|
|
|
|
public void ResetLastPlayerAttacked()
|
|
{
|
|
a.Pb = -1;
|
|
}
|
|
|
|
public void Login(String s, String s1)
|
|
{
|
|
a.a(s, s1, false);
|
|
}
|
|
|
|
public boolean LoggedIn()
|
|
{
|
|
a.bh;
|
|
if(q.d) goto _L2; else goto _L1
|
|
_L1:
|
|
1;
|
|
JVM INSTR icmpne 19;
|
|
goto _L3 _L4
|
|
_L3:
|
|
break MISSING_BLOCK_LABEL_17;
|
|
_L4:
|
|
break MISSING_BLOCK_LABEL_19;
|
|
return true;
|
|
false;
|
|
_L2:
|
|
return;
|
|
}
|
|
|
|
protected mudclient a;
|
|
private static String z[];
|
|
|
|
static
|
|
{
|
|
local;
|
|
toCharArray();
|
|
JVM INSTR dup ;
|
|
JVM INSTR arraylength .length;
|
|
JVM INSTR swap ;
|
|
i = 0;
|
|
JVM INSTR swap ;
|
|
JVM INSTR dup_x1 ;
|
|
1;
|
|
JVM INSTR icmpgt 124;
|
|
goto _L1 _L2
|
|
_L1:
|
|
JVM INSTR dup ;
|
|
i;
|
|
_L10:
|
|
JVM INSTR dup2 ;
|
|
JVM INSTR caload ;
|
|
i % 5;
|
|
JVM INSTR tableswitch 0 3: default 107
|
|
// 0 88
|
|
// 1 93
|
|
// 2 97
|
|
// 3 102;
|
|
goto _L3 _L4 _L5 _L6 _L7
|
|
_L4:
|
|
byte0 = 0x79;
|
|
goto _L8
|
|
_L5:
|
|
byte0 = 4;
|
|
goto _L8
|
|
_L6:
|
|
byte0 = 16;
|
|
goto _L8
|
|
_L7:
|
|
byte0 = 110;
|
|
goto _L8
|
|
_L3:
|
|
byte0 = 3;
|
|
_L8:
|
|
byte0;
|
|
JVM INSTR ixor ;
|
|
(char);
|
|
JVM INSTR castore ;
|
|
i++;
|
|
JVM INSTR swap ;
|
|
JVM INSTR dup_x1 ;
|
|
JVM INSTR ifne 124;
|
|
goto _L9 _L2
|
|
_L9:
|
|
JVM INSTR dup2 ;
|
|
JVM INSTR swap ;
|
|
goto _L10
|
|
_L2:
|
|
JVM INSTR swap ;
|
|
JVM INSTR dup_x1 ;
|
|
i;
|
|
JVM INSTR icmpgt 49;
|
|
goto _L11 _L1
|
|
_L11:
|
|
JVM INSTR new #3 <Class String>;
|
|
JVM INSTR dup_x1 ;
|
|
JVM INSTR swap ;
|
|
String();
|
|
intern();
|
|
JVM INSTR swap ;
|
|
JVM INSTR pop ;
|
|
JVM INSTR ret 0;
|
|
String as[] = new String[3];
|
|
as[0] = "9vu\nC<VB!QC$P\031k\020D^\001#\026fz\013`\r$v\001v\027`0\017wC$P\027f\025D";
|
|
as[1] = "U$";
|
|
as[2] = ".eb\000j\027c*NM\026$U\003s\r}0:j\025acNE\026q~\n";
|
|
int i;
|
|
byte byte0;
|
|
z = as;
|
|
}
|
|
}
|