diff --git a/bin/sig/RabiRandomTeleportation.class b/bin/sig/RabiRandomTeleportation.class index 5b3b164..a032d99 100644 Binary files a/bin/sig/RabiRandomTeleportation.class and b/bin/sig/RabiRandomTeleportation.class differ diff --git a/src/sig/RabiRandomTeleportation.java b/src/sig/RabiRandomTeleportation.java index f67302f..38e364d 100644 --- a/src/sig/RabiRandomTeleportation.java +++ b/src/sig/RabiRandomTeleportation.java @@ -33,6 +33,8 @@ public class RabiRandomTeleportation { long mapAreaXAddress = 0; long mapAreaYAddress = 0; long bunnyTeleportingAddress = 0; + long areaAddress = 0; + long fightingBossAddress = 0; long MIN_ALIVE_TIME=4500; long MAX_ALIVE_TIME=7500; @@ -200,17 +202,24 @@ public class RabiRandomTeleportation { //Room X:17, Room Y:13 entityArrayPtr = 0x96DA3C; bunnyTeleportingAddress = 0xA73054; + fightingBossAddress = 0xA72E08; + areaAddress = 0xA600AC; System.out.println("Erina X:"+readFloatFromPointer(0xC,entityArrayPtr)); System.out.println("Erina Y:"+readFloatFromPointer(0xC+0x4,entityArrayPtr)); System.out.println("Map: "+readIntFromMemory(mapAreaXAddress)+","+readIntFromMemory(mapAreaYAddress)); - //writeFloatToMemory(entityArrayPtrOffset+0xC+0x4,5000); + long entityArrayPtrOffset = readIntFromMemory(0x96DA3C)-rabiRibiMemOffset; + writeFloatToMemory(entityArrayPtrOffset+0xC,9600); + writeFloatToMemory(entityArrayPtrOffset+0xC+0x4,9240); //updateEventValue((short)166,16,12,15,7); //20x11 //TeleportBunnyToRandomLocation(); while (true) { - if (System.currentTimeMillis()>NEXT_TELEPORT_TIME) { + System.out.println(System.currentTimeMillis()+"/"+NEXT_TELEPORT_TIME); + if (System.currentTimeMillis()>NEXT_TELEPORT_TIME&&readIntFromMemory(fightingBossAddress)!=1) { TeleportBunnyToRandomLocation(); + LAST_TELEPORT_TIME=System.currentTimeMillis(); NEXT_TELEPORT_TIME=(long)(Math.random()*(MAX_ALIVE_TIME-MIN_ALIVE_TIME))+MIN_ALIVE_TIME+LAST_TELEPORT_TIME; + //System.out.println(NEXT_TELEPORT_TIME); } try { Thread.sleep(1000); @@ -228,21 +237,29 @@ public class RabiRandomTeleportation { updateEventValue((short)(161+chosenLoc.area),readIntFromMemory(mapAreaXAddress),readIntFromMemory(mapAreaYAddress),x,y); } } + int tries=0; do { try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } - } while (readIntFromMemory(bunnyTeleportingAddress)!=420); - - //Thread.sleep(1000); + tries++; + } while (tries<200&&readIntFromMemory(areaAddress)!=chosenLoc.area); - System.out.println(chosenLoc); + try { + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } - //1280 width per room, 800 height per room. - writeFloatToMemory(entityArrayPtrOffset+0xC,1280*chosenLoc.roomX+640); - writeFloatToMemory(entityArrayPtrOffset+0xC+0x4,720*chosenLoc.roomY-360); + if (tries<200) { + System.out.println(chosenLoc); + + //1280 width per room, 800 height per room. + writeFloatToMemory(entityArrayPtrOffset+0xC,1280*chosenLoc.roomX+640); + writeFloatToMemory(entityArrayPtrOffset+0xC+0x4,720*chosenLoc.roomY+600); + } } public static void main(String[] args) {