SigIRC Rabi Race updates - should be stable.

master
sigonasr2 5 years ago
parent 4d1f82d3e8
commit c0e653e31c
  1. BIN
      sigIRCv2.jar
  2. 1
      src/sig/modules/RabiRace/Profile.java
  3. 4
      src/sig/modules/RabiRace/Session.java
  4. 29
      src/sig/modules/RabiRaceModule.java
  5. 4
      src/sig/modules/RabiRibi/MemoryOffset.java

Binary file not shown.

@ -289,6 +289,7 @@ public class Profile {
while (!nextval.equalsIgnoreCase("UPDATES:")); while (!nextval.equalsIgnoreCase("UPDATES:"));
} }
lastWebUpdate = System.currentTimeMillis(); lastWebUpdate = System.currentTimeMillis();
return true; return true;
} }
} }

@ -5,6 +5,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import sig.sigIRC;
import sig.modules.RabiRaceModule; import sig.modules.RabiRaceModule;
import sig.utils.ReflectUtils; import sig.utils.ReflectUtils;
@ -53,6 +54,9 @@ public class Session {
//System.out.println("Player "+p.username); //System.out.println("Player "+p.username);
DownloadAndAddPlayer(p); DownloadAndAddPlayer(p);
} }
if (RabiRaceModule.syncItems) {
RabiRaceModule.module.SyncItemsWithOtherPlayers();
}
} }
if (split.length>=8) { if (split.length>=8) {
difficulty = Float.parseFloat(split[i++]); difficulty = Float.parseFloat(split[i++]);

@ -75,6 +75,7 @@ public class RabiRaceModule extends Module{
boolean mouseoverAvatar=false; boolean mouseoverAvatar=false;
public static boolean avatarRetrieved=false; public static boolean avatarRetrieved=false;
public static int CLIENT_SERVER_READTIME = -1; public static int CLIENT_SERVER_READTIME = -1;
public static boolean syncItems = false;
public SessionListData session_listing = new SessionListData(); public SessionListData session_listing = new SessionListData();
@ -223,54 +224,72 @@ public class RabiRaceModule extends Module{
e.printStackTrace(); e.printStackTrace();
} }
String[] data = FileUtils.readFromFile(sigIRC.BASEDIR+"sigIRC/messages"); String[] data = FileUtils.readFromFile(sigIRC.BASEDIR+"sigIRC/messages");
boolean message_played=false; //boolean message_played=false;
for (String s : data) { for (String s : data) {
if (s.length()>0) { if (s.length()>0) {
messages.add(new ScrollingText(s,(int)(lastScrollX+position.getWidth()+24),(int)(position.getHeight()-28))); messages.add(new ScrollingText(s,(int)(lastScrollX+position.getWidth()+24),(int)(position.getHeight()-28)));
message_played=true; /*message_played=true;
System.out.println("Perform item sync with other players."); System.out.println("Perform item sync with other players.");
SyncItemsWithOtherPlayers(); SyncItemsWithOtherPlayers();*/
syncItems=true;
} }
} }
if (message_played && mySession.isCoop()) { /*if (message_played && mySession.isCoop()) {
SoundUtils.playSound(sigIRC.BASEDIR+"sigIRC/collect_item.wav"); SoundUtils.playSound(sigIRC.BASEDIR+"sigIRC/collect_item.wav");
} }*/
} }
public void SyncItemsWithOtherPlayers() { public void SyncItemsWithOtherPlayers() {
boolean soundPlayed=false;
for (Profile p : mySession.getPlayers()) { for (Profile p : mySession.getPlayers()) {
if (p!=myProfile && !p.isPaused) { if (p!=myProfile && !p.isPaused) {
boolean updateRequired=false;
for (MemoryData m : p.key_items.keySet()) { for (MemoryData m : p.key_items.keySet()) {
if (p.key_items.get(m)!=0 && (!myProfile.key_items.containsKey(m) || myProfile.key_items.get(m)==0)) { if (p.key_items.get(m)!=0 && (!myProfile.key_items.containsKey(m) || myProfile.key_items.get(m)==0)) {
System.out.println("You do not have a "+m.name+". Syncing from "+p.displayName+"."); System.out.println("You do not have a "+m.name+". Syncing from "+p.displayName+".");
writeIntToMemory(m.mem.getOffset(),Math.abs(p.key_items.get(m))); writeIntToMemory(m.mem.getOffset(),Math.abs(p.key_items.get(m)));
updateRequired=true;
} }
} }
for (MemoryData m : p.badges.keySet()) { for (MemoryData m : p.badges.keySet()) {
if (p.badges.get(m)!=0 && (!myProfile.badges.containsKey(m) || myProfile.badges.get(m)==0)) { if (p.badges.get(m)!=0 && (!myProfile.badges.containsKey(m) || myProfile.badges.get(m)==0)) {
System.out.println("You do not have a "+m.name+". Syncing from "+p.displayName+"."); System.out.println("You do not have a "+m.name+". Syncing from "+p.displayName+".");
writeIntToMemory(m.mem.getOffset(),Math.abs(p.badges.get(m))); writeIntToMemory(m.mem.getOffset(),Math.abs(p.badges.get(m)));
updateRequired=true;
} }
} }
if (p.healthUps>myProfile.healthUps) { if (p.healthUps>myProfile.healthUps) {
System.out.println("You do not have the correct amount of health ups. Syncing to ("+p.healthUps+") from "+p.displayName+"."); System.out.println("You do not have the correct amount of health ups. Syncing to ("+p.healthUps+") from "+p.displayName+".");
UpdateRange(MemoryOffset.HEALTHUP_START,MemoryOffset.HEALTHUP_END,p.healthUps-myProfile.healthUps); UpdateRange(MemoryOffset.HEALTHUP_START,MemoryOffset.HEALTHUP_END,p.healthUps-myProfile.healthUps);
updateRequired=true;
} }
if (p.manaUps>myProfile.manaUps) { if (p.manaUps>myProfile.manaUps) {
System.out.println("You do not have the correct amount of mana ups. Syncing to ("+p.manaUps+") from "+p.displayName+"."); System.out.println("You do not have the correct amount of mana ups. Syncing to ("+p.manaUps+") from "+p.displayName+".");
UpdateRange(MemoryOffset.MANAUP_START,MemoryOffset.MANAUP_END,p.manaUps-myProfile.manaUps); UpdateRange(MemoryOffset.MANAUP_START,MemoryOffset.MANAUP_END,p.manaUps-myProfile.manaUps);
updateRequired=true;
} }
if (p.regenUps>myProfile.regenUps) { if (p.regenUps>myProfile.regenUps) {
System.out.println("You do not have the correct amount of regen ups. Syncing to ("+p.regenUps+") from "+p.displayName+"."); System.out.println("You do not have the correct amount of regen ups. Syncing to ("+p.regenUps+") from "+p.displayName+".");
UpdateRange(MemoryOffset.REGENUP_START,MemoryOffset.REGENUP_END,p.regenUps-myProfile.regenUps); UpdateRange(MemoryOffset.REGENUP_START,MemoryOffset.REGENUP_END,p.regenUps-myProfile.regenUps);
updateRequired=true;
} }
if (p.packUps>myProfile.packUps) { if (p.packUps>myProfile.packUps) {
System.out.println("You do not have the correct amount of pack ups. Syncing to ("+p.packUps+") from "+p.displayName+"."); System.out.println("You do not have the correct amount of pack ups. Syncing to ("+p.packUps+") from "+p.displayName+".");
UpdateRange(MemoryOffset.PACKUP_START,MemoryOffset.PACKUP_END,p.packUps-myProfile.packUps); UpdateRange(MemoryOffset.PACKUP_START,MemoryOffset.PACKUP_END,p.packUps-myProfile.packUps);
updateRequired=true;
} }
if (p.attackUps>myProfile.attackUps) { if (p.attackUps>myProfile.attackUps) {
System.out.println("You do not have the correct amount of attack ups. Syncing to ("+p.attackUps+") from "+p.displayName+"."); System.out.println("You do not have the correct amount of attack ups. Syncing to ("+p.attackUps+") from "+p.displayName+".");
UpdateRange(MemoryOffset.ATTACKUP_START,MemoryOffset.ATTACKUP_END,p.attackUps-myProfile.attackUps); UpdateRange(MemoryOffset.ATTACKUP_START,MemoryOffset.ATTACKUP_END,p.attackUps-myProfile.attackUps);
updateRequired=true;
}
if (updateRequired && mySession.isCoop()) {
if (!soundPlayed) {
SoundUtils.playSound(sigIRC.BASEDIR+"sigIRC/collect_item.wav");
soundPlayed=true;
}
updateRequired=false;
} }
} }
} }

@ -140,8 +140,8 @@ public enum MemoryOffset {
PACKUP_END(0xD63928,0xD63928+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851,0xD63928+OffsetHelper.MEMORY_OFFSET_V175_TO_V1881,0xD63928+OffsetHelper.MEMORY_OFFSET_V175_TO_V190,OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V199,OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V199T), PACKUP_END(0xD63928,0xD63928+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851,0xD63928+OffsetHelper.MEMORY_OFFSET_V175_TO_V1881,0xD63928+OffsetHelper.MEMORY_OFFSET_V175_TO_V190,OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V199,OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V199T),
//13413E8 //13413E8
ITEM_PERCENT(0x16E807C,0x13413E8,0x1342408+OffsetHelper.MEMORY_OFFSET_V188_TO_V1881,0x1366408,0x16E4900,0), //Float ITEM_PERCENT(0x16E8080,0x13413E8,0x1342408+OffsetHelper.MEMORY_OFFSET_V188_TO_V1881,0x1366408,0x16E4900,0), //Float
MAP_PERCENT(0x16E8080,0x13413E4,0x1342404+OffsetHelper.MEMORY_OFFSET_V188_TO_V1881,0x1366404,0x16E48FC,0), //Float MAP_PERCENT(0x16E807C,0x13413E4,0x1342404+OffsetHelper.MEMORY_OFFSET_V188_TO_V1881,0x1366404,0x16E48FC,0), //Float
RAINBOW_EGG_COUNT(0xD65FD4,0xD65FD4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851,0xD65FD4+OffsetHelper.MEMORY_OFFSET_V175_TO_V1881,0xD65FD4+OffsetHelper.MEMORY_OFFSET_V175_TO_V190,OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V199,OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V199T), RAINBOW_EGG_COUNT(0xD65FD4,0xD65FD4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851,0xD65FD4+OffsetHelper.MEMORY_OFFSET_V175_TO_V1881,0xD65FD4+OffsetHelper.MEMORY_OFFSET_V175_TO_V190,OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V199,OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V199T),
PAUSED(0x1038D88,0xC969A0,0xC979A0,0xCBB9AC,0x1036D88,0), PAUSED(0x1038D88,0xC969A0,0xC979A0,0xCBB9AC,0x1036D88,0),
TITLE_SCREEN(0x16893F4,0,0,0,0,0), TITLE_SCREEN(0x16893F4,0,0,0,0,0),

Loading…
Cancel
Save