Implemented server-side data handling and client-side data receiving.
Implemented displays of player data and multiple panels displayed in a single view.
This commit is contained in:
parent
53c5b598e6
commit
4c38344c22
BIN
sigIRCv2.jar
BIN
sigIRCv2.jar
Binary file not shown.
@ -18,7 +18,7 @@ import sig.utils.DrawUtils;
|
|||||||
import sig.utils.TextUtils;
|
import sig.utils.TextUtils;
|
||||||
|
|
||||||
public class Module {
|
public class Module {
|
||||||
protected Rectangle2D position;
|
public Rectangle2D position;
|
||||||
protected boolean enabled;
|
protected boolean enabled;
|
||||||
protected String name;
|
protected String name;
|
||||||
public static BufferedImage IMG_DRAGBAR;
|
public static BufferedImage IMG_DRAGBAR;
|
||||||
|
@ -40,6 +40,7 @@ public class MyPanel extends JPanel implements MouseListener, ActionListener, Mo
|
|||||||
final public static Font userFont = new Font(sigIRC.usernameFont,0,16);
|
final public static Font userFont = new Font(sigIRC.usernameFont,0,16);
|
||||||
final public static Font smallFont = new Font(sigIRC.touhoumotherConsoleFont,0,12);
|
final public static Font smallFont = new Font(sigIRC.touhoumotherConsoleFont,0,12);
|
||||||
final public static Font rabiRibiMoneyDisplayFont = new Font("CP Font",0,16);
|
final public static Font rabiRibiMoneyDisplayFont = new Font("CP Font",0,16);
|
||||||
|
final public static Font rabiRibiTinyDisplayFont = new Font("CP Font",0,12);
|
||||||
public int lastMouseX = 0;
|
public int lastMouseX = 0;
|
||||||
public int lastMouseY = 0;
|
public int lastMouseY = 0;
|
||||||
|
|
||||||
|
@ -121,9 +121,9 @@ public class ScrollingText {
|
|||||||
FileUtils.logToFile(message, sigIRC.BASEDIR+"sigIRC/logs/log_"+(cal.get(Calendar.MONTH)+1)+"_"+cal.get(Calendar.DAY_OF_MONTH)+"_"+cal.get(Calendar.YEAR)+".txt",true);
|
FileUtils.logToFile(message, sigIRC.BASEDIR+"sigIRC/logs/log_"+(cal.get(Calendar.MONTH)+1)+"_"+cal.get(Calendar.DAY_OF_MONTH)+"_"+cal.get(Calendar.YEAR)+".txt",true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Color GetUserNameColor(String username) {
|
public static Color GetUserNameColor(String username) {
|
||||||
Random r = new Random();
|
Random r = new Random();
|
||||||
r.setSeed(username.hashCode());
|
r.setSeed(username.toLowerCase().hashCode());
|
||||||
int randomnumb = r.nextInt(3);
|
int randomnumb = r.nextInt(3);
|
||||||
Color col;
|
Color col;
|
||||||
switch (randomnumb) {
|
switch (randomnumb) {
|
||||||
|
@ -5,6 +5,7 @@ import java.awt.Graphics;
|
|||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
|
|
||||||
|
import sig.Module;
|
||||||
import sig.sigIRC;
|
import sig.sigIRC;
|
||||||
import sig.modules.ControllerModule;
|
import sig.modules.ControllerModule;
|
||||||
import sig.utils.DrawUtils;
|
import sig.utils.DrawUtils;
|
||||||
@ -13,9 +14,9 @@ import sig.utils.TextUtils;
|
|||||||
public class ClickableButton {
|
public class ClickableButton {
|
||||||
protected int x,y,width,height;
|
protected int x,y,width,height;
|
||||||
protected String label;
|
protected String label;
|
||||||
protected ControllerModule module;
|
protected Module module;
|
||||||
|
|
||||||
public ClickableButton(Rectangle position, String button_label, ControllerModule parent_module) {
|
public ClickableButton(Rectangle position, String button_label, Module parent_module) {
|
||||||
this.x = (int)position.getX();
|
this.x = (int)position.getX();
|
||||||
this.y = (int)position.getY();
|
this.y = (int)position.getY();
|
||||||
this.width = (int)position.getWidth();
|
this.width = (int)position.getWidth();
|
||||||
@ -30,7 +31,11 @@ public class ClickableButton {
|
|||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean mouseInsideBounds(MouseEvent ev) {
|
public void setButtonLabel(String text) {
|
||||||
|
this.label = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean mouseInsideBounds(MouseEvent ev) {
|
||||||
return ev.getX()>=module.getPosition().getX()+x && ev.getX()<=module.getPosition().getX()+x+width &&
|
return ev.getX()>=module.getPosition().getX()+x && ev.getX()<=module.getPosition().getX()+x+width &&
|
||||||
ev.getY()>=module.getPosition().getY()+y && ev.getY()<=module.getPosition().getY()+y+height;
|
ev.getY()>=module.getPosition().getY()+y && ev.getY()<=module.getPosition().getY()+y+height;
|
||||||
}
|
}
|
||||||
|
18
src/sig/modules/RabiRace/CreateButton.java
Normal file
18
src/sig/modules/RabiRace/CreateButton.java
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
package sig.modules.RabiRace;
|
||||||
|
|
||||||
|
import java.awt.Rectangle;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
|
||||||
|
import sig.Module;
|
||||||
|
import sig.modules.Controller.ClickableButton;
|
||||||
|
|
||||||
|
public class CreateButton extends ClickableButton{
|
||||||
|
|
||||||
|
public CreateButton(Rectangle position, String button_label, Module parent_module) {
|
||||||
|
super(position, button_label, parent_module);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onClickEvent(MouseEvent ev) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
19
src/sig/modules/RabiRace/JoinButton.java
Normal file
19
src/sig/modules/RabiRace/JoinButton.java
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package sig.modules.RabiRace;
|
||||||
|
|
||||||
|
import java.awt.Rectangle;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
|
||||||
|
import sig.Module;
|
||||||
|
import sig.modules.RabiRaceModule;
|
||||||
|
import sig.modules.Controller.ClickableButton;
|
||||||
|
|
||||||
|
public class JoinButton extends ClickableButton{
|
||||||
|
|
||||||
|
public JoinButton(Rectangle position, String button_label, Module parent_module) {
|
||||||
|
super(position, button_label, parent_module);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onClickEvent(MouseEvent ev) {
|
||||||
|
RabiRaceModule.module.window.setVisible(true);
|
||||||
|
}
|
||||||
|
}
|
@ -47,6 +47,8 @@ public enum MemoryData {
|
|||||||
DLC_ITEM4(MemoryOffset.DLC_ITEM4,"","",true),*/
|
DLC_ITEM4(MemoryOffset.DLC_ITEM4,"","",true),*/
|
||||||
BUNNY_CLOVER(MemoryOffset.BUNNY_CLOVER,"Bunny Clover","bunny_clover.png",true),
|
BUNNY_CLOVER(MemoryOffset.BUNNY_CLOVER,"Bunny Clover","bunny_clover.png",true),
|
||||||
FAIRYS_FLUTE(MemoryOffset.FAIRYS_FLUTE,"Fairy's Flute","fairy_s_flute.png",true),
|
FAIRYS_FLUTE(MemoryOffset.FAIRYS_FLUTE,"Fairy's Flute","fairy_s_flute.png",true),
|
||||||
|
BUNNY_MEMORIES(MemoryOffset.BUNNY_MEMORIES,"Bunny Memories","bunny_memories.png",true),
|
||||||
|
WIND_BLESSING(MemoryOffset.WIND_BLESSING,"Wind Blessing","wind_blessing.png",true),
|
||||||
BADGE_HEALTH_PLUS(MemoryOffset.BADGE_HEALTH_PLUS,"Health Plus","health_plus.png",false),
|
BADGE_HEALTH_PLUS(MemoryOffset.BADGE_HEALTH_PLUS,"Health Plus","health_plus.png",false),
|
||||||
BADGE_HEALTH_SURGE(MemoryOffset.BADGE_HEALTH_SURGE,"Health Surge","health_surge.png",false),
|
BADGE_HEALTH_SURGE(MemoryOffset.BADGE_HEALTH_SURGE,"Health Surge","health_surge.png",false),
|
||||||
BADGE_MANA_PLUS(MemoryOffset.BADGE_MANA_PLUS,"Mana Plus","mana_plus.png",false),
|
BADGE_MANA_PLUS(MemoryOffset.BADGE_MANA_PLUS,"Mana Plus","mana_plus.png",false),
|
||||||
|
5
src/sig/modules/RabiRace/Player.java
Normal file
5
src/sig/modules/RabiRace/Player.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package sig.modules.RabiRace;
|
||||||
|
|
||||||
|
public class Player {
|
||||||
|
|
||||||
|
}
|
@ -1,10 +1,34 @@
|
|||||||
package sig.modules.RabiRace;
|
package sig.modules.RabiRace;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Graphics;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.Image;
|
||||||
|
import java.awt.Point;
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.ConcurrentModificationException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import sig.ScrollingText;
|
||||||
|
import sig.sigIRC;
|
||||||
import sig.modules.RabiRaceModule;
|
import sig.modules.RabiRaceModule;
|
||||||
|
import sig.utils.DrawUtils;
|
||||||
|
import sig.utils.FileUtils;
|
||||||
|
import sig.utils.TextUtils;
|
||||||
|
|
||||||
public class Profile {
|
public class Profile {
|
||||||
|
public String username = sigIRC.nickname.toLowerCase();
|
||||||
|
public String displayName = sigIRC.nickname.toLowerCase();
|
||||||
|
public int avatar = 0;
|
||||||
public int playtime = 0;
|
public int playtime = 0;
|
||||||
public int healthUps = 0;
|
public int healthUps = 0;
|
||||||
public int attackUps = 0;
|
public int attackUps = 0;
|
||||||
@ -17,9 +41,12 @@ public class Profile {
|
|||||||
public int loop = 0;
|
public int loop = 0;
|
||||||
public float itempct = 0;
|
public float itempct = 0;
|
||||||
public float mappct = 0;
|
public float mappct = 0;
|
||||||
public HashMap<String,MemoryData> key_items = new HashMap<String,MemoryData>();
|
public HashMap<MemoryData,Integer> key_items = new HashMap<MemoryData,Integer>();
|
||||||
public HashMap<String,MemoryData> badges = new HashMap<String,MemoryData>();
|
public HashMap<MemoryData,Integer> badges = new HashMap<MemoryData,Integer>();
|
||||||
|
public List<String> updates = new ArrayList<String>();
|
||||||
RabiRaceModule parent;
|
RabiRaceModule parent;
|
||||||
|
public long lastWebUpdate = System.currentTimeMillis();
|
||||||
|
DecimalFormat df = new DecimalFormat("00.0");
|
||||||
|
|
||||||
public Profile(RabiRaceModule module) {
|
public Profile(RabiRaceModule module) {
|
||||||
this.parent = module;
|
this.parent = module;
|
||||||
@ -28,19 +55,277 @@ public class Profile {
|
|||||||
public void updateClientValues() {
|
public void updateClientValues() {
|
||||||
for (MemoryData md : RabiRaceModule.key_items_list) {
|
for (MemoryData md : RabiRaceModule.key_items_list) {
|
||||||
//System.out.println("Checking "+md.getDisplayName());
|
//System.out.println("Checking "+md.getDisplayName());
|
||||||
if (parent.readIntFromMemory(md.mem)!=0) {
|
int val = parent.readIntFromMemory(md.mem);
|
||||||
key_items.put(md.name, md);
|
if (val!=0) {
|
||||||
|
key_items.put(md, val);
|
||||||
//System.out.println("Obtained "+md.getDisplayName());
|
//System.out.println("Obtained "+md.getDisplayName());
|
||||||
} else {
|
} else {
|
||||||
key_items.remove(md.name);
|
key_items.remove(md);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (MemoryData md : RabiRaceModule.badges_list) {
|
for (MemoryData md : RabiRaceModule.badges_list) {
|
||||||
if (parent.readIntFromMemory(md.mem)!=0) {
|
int val = parent.readIntFromMemory(md.mem);
|
||||||
badges.put(md.name, md);
|
if (val!=0) {
|
||||||
|
badges.put(md, val);
|
||||||
//System.out.println("Obtained "+md.getDisplayName());
|
//System.out.println("Obtained "+md.getDisplayName());
|
||||||
} else {
|
} else {
|
||||||
badges.remove(md.name);
|
badges.remove(md);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void uploadProfile() {
|
||||||
|
if (sigIRC.authenticated) {
|
||||||
|
File file = new File(sigIRC.BASEDIR+"tmp");
|
||||||
|
try {
|
||||||
|
org.apache.commons.io.FileUtils.copyURLToFile(new URL("http://45.33.13.215/rabirace/send.php?key=playerdata&name="+sigIRC.nickname.toLowerCase()+"&data="+getDataString()),file);
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void downloadProfile() {
|
||||||
|
if (sigIRC.authenticated) {
|
||||||
|
File file = new File(sigIRC.BASEDIR+"tmp");
|
||||||
|
try {
|
||||||
|
org.apache.commons.io.FileUtils.copyURLToFile(new URL("http://45.33.13.215/rabirace/send.php?key=retrievedata&name="+username.toLowerCase()),file);
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
String[] data = FileUtils.readFromFile(sigIRC.BASEDIR+"tmp");
|
||||||
|
System.out.println(Arrays.toString(data));
|
||||||
|
if (data.length>=18) {
|
||||||
|
int i=0;
|
||||||
|
displayName = data[i++];
|
||||||
|
avatar = Integer.parseInt(data[i++]);
|
||||||
|
playtime = Integer.parseInt(data[i++]);
|
||||||
|
healthUps = Integer.parseInt(data[i++]);
|
||||||
|
manaUps = Integer.parseInt(data[i++]);
|
||||||
|
regenUps = Integer.parseInt(data[i++]);
|
||||||
|
packUps = Integer.parseInt(data[i++]);
|
||||||
|
attackUps = Integer.parseInt(data[i++]);
|
||||||
|
rainbowEggCount = Integer.parseInt(data[i++]);
|
||||||
|
isPaused = Boolean.parseBoolean(data[i++]);
|
||||||
|
difficulty = Integer.parseInt(data[i++]);
|
||||||
|
loop = Integer.parseInt(data[i++]);
|
||||||
|
itempct = Float.parseFloat(data[i++]);
|
||||||
|
mappct = Float.parseFloat(data[i++]);
|
||||||
|
i+=2;
|
||||||
|
String nextval = data[i++];
|
||||||
|
if (!nextval.equalsIgnoreCase("BADGES:")) {
|
||||||
|
do {
|
||||||
|
String[] parse = nextval.split(";");
|
||||||
|
key_items.put(MemoryData.valueOf(parse[0]), Integer.parseInt(parse[1]));
|
||||||
|
System.out.println("Added "+Arrays.toString(parse));
|
||||||
|
nextval = data[i++];
|
||||||
|
}
|
||||||
|
while (!nextval.equalsIgnoreCase("BADGES:"));
|
||||||
|
}
|
||||||
|
nextval = data[i++];
|
||||||
|
if (!nextval.equalsIgnoreCase("UPDATES:")) {
|
||||||
|
do {
|
||||||
|
String[] parse = nextval.split(";");
|
||||||
|
badges.put(MemoryData.valueOf(parse[0]), Integer.parseInt(parse[1]));
|
||||||
|
System.out.println("Added "+Arrays.toString(parse));
|
||||||
|
nextval = data[i++];
|
||||||
|
}
|
||||||
|
while (!nextval.equalsIgnoreCase("UPDATES:"));
|
||||||
|
}
|
||||||
|
lastWebUpdate = System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getDataString() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
appendData(sigIRC.nickname,sb);
|
||||||
|
appendData(avatar,sb);
|
||||||
|
appendData(playtime,sb);
|
||||||
|
appendData(healthUps,sb);
|
||||||
|
appendData(manaUps,sb);
|
||||||
|
appendData(regenUps,sb);
|
||||||
|
appendData(packUps,sb);
|
||||||
|
appendData(attackUps,sb);
|
||||||
|
appendData(rainbowEggCount,sb);
|
||||||
|
appendData(isPaused,sb);
|
||||||
|
appendData(difficulty,sb);
|
||||||
|
appendData(loop,sb);
|
||||||
|
appendData(itempct,sb);
|
||||||
|
appendData(mappct,sb);
|
||||||
|
appendData(0,sb);
|
||||||
|
appendData("KEYITEMS:",sb);
|
||||||
|
for (MemoryData data : key_items.keySet()) {
|
||||||
|
Integer val = key_items.get(data);
|
||||||
|
appendData(data.name()+";"+val,sb);
|
||||||
|
}
|
||||||
|
appendData("BADGES:",sb);
|
||||||
|
for (MemoryData data : badges.keySet()) {
|
||||||
|
Integer val = badges.get(data);
|
||||||
|
appendData(data.name()+";"+val,sb);
|
||||||
|
}
|
||||||
|
appendData("UPDATES:",sb);
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void appendData(Object data, StringBuilder str) {
|
||||||
|
if (str.length()!=0) {
|
||||||
|
str.append(",");
|
||||||
|
}
|
||||||
|
str.append(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Image getStatText(int w) {
|
||||||
|
BufferedImage tmp = new BufferedImage(400,175,BufferedImage.TYPE_INT_ARGB);
|
||||||
|
Graphics2D g2 = tmp.createGraphics();
|
||||||
|
|
||||||
|
g2.setColor(Color.BLACK);
|
||||||
|
g2.fillRect(1, 1, 32, 32);
|
||||||
|
g2.setColor(ScrollingText.GetUserNameColor(displayName));
|
||||||
|
DrawUtils.drawOutlineText(g2, sigIRC.panel.rabiRibiMoneyDisplayFont, 36, 26, 1, g2.getColor(), Color.BLACK, displayName);
|
||||||
|
String text = TextUtils.convertSecondsToTimeFormat(playtime/60);
|
||||||
|
if (isPaused) {
|
||||||
|
g2.setColor(new Color(128,96,0));
|
||||||
|
} else {
|
||||||
|
g2.setColor(Color.BLACK);
|
||||||
|
}
|
||||||
|
DrawUtils.drawOutlineText(g2, sigIRC.panel.rabiRibiMoneyDisplayFont, (int)(tmp.getWidth() - TextUtils.calculateStringBoundsFont(text, sigIRC.panel.rabiRibiMoneyDisplayFont).getWidth()) - 2, 16, 1, g2.getColor(), Color.GRAY, text);
|
||||||
|
text = "Map "+df.format(mappct)+"% Item "+df.format(itempct)+"%";
|
||||||
|
//DrawUtils.drawOutlineText(g2, sigIRC.panel.rabiRibiMoneyDisplayFont, (int)(parent.position.getWidth() - TextUtils.calculateStringBoundsFont(text, sigIRC.panel.rabiRibiMoneyDisplayFont).getWidth()) - 2, 16, 1, g2.getColor(), Color.GRAY, text);
|
||||||
|
DrawUtils.drawCenteredOutlineText(g2, sigIRC.panel.rabiRibiTinyDisplayFont, (int)(tmp.getWidth()*0.6), 50, 2, Color.WHITE, Color.BLACK, text);
|
||||||
|
|
||||||
|
return tmp.getScaledInstance(w, -1, Image.SCALE_AREA_AVERAGING);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Image getStatPanel(int w) {
|
||||||
|
//DrawUtils.drawTextFont(g, sigIRC.panel.userFont, parent.position.getX(), parent.position.getY()+26, Color.BLACK, "Values: "+readIntFromMemory(MemoryOffset.DLC_ITEM1)+","+readIntFromMemory(MemoryOffset.DLC_ITEM2)+","+readIntFromMemory(MemoryOffset.DLC_ITEM3)+","+readIntFromMemory(MemoryOffset.DLC_ITEM4));
|
||||||
|
BufferedImage tmp = new BufferedImage(400,175,BufferedImage.TYPE_INT_ARGB);
|
||||||
|
Graphics2D g2 = tmp.createGraphics();
|
||||||
|
final int border=20;
|
||||||
|
final int width=(int)(tmp.getWidth()-border*2);
|
||||||
|
final int spacing=width/5;
|
||||||
|
for (int i=0;i<5;i++) {
|
||||||
|
Image img = RabiRaceModule.image_map.get("easter_egg.png");
|
||||||
|
Color col = (rainbowEggCount>i)?RabiRaceModule.rainbowcycler.getCycleColor():new Color(0,0,0,192);
|
||||||
|
DrawUtils.drawImage(g2, img, (int)(border+i*spacing-img.getWidth(sigIRC.panel)/4),(int)(36),col,sigIRC.panel);
|
||||||
|
}
|
||||||
|
int size = key_items.size();
|
||||||
|
final int icon_size = 24;
|
||||||
|
int count = 0;
|
||||||
|
try {
|
||||||
|
for (MemoryData data : key_items.keySet()) {
|
||||||
|
if (key_items.get(data)<0) {
|
||||||
|
Image img = data.getImage().getScaledInstance(icon_size, icon_size, Image.SCALE_DEFAULT);
|
||||||
|
if (size*icon_size<width) {
|
||||||
|
DrawUtils.drawImage(g2, img, (int)(+border+((count++)*icon_size)), (int)(+96+8), new Color(0,0,0,128), sigIRC.panel);
|
||||||
|
} else {
|
||||||
|
DrawUtils.drawImage(g2, img, (int)(+border+((width/size)*(count++))), (int)(+96+8), new Color(0,0,0,128), sigIRC.panel);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (size*icon_size<width) {
|
||||||
|
g2.drawImage(data.getImage(), (int)(+border+((count++)*icon_size)), (int)(+96+8), (int)icon_size, (int)icon_size, sigIRC.panel);
|
||||||
|
} else {
|
||||||
|
g2.drawImage(data.getImage(), (int)(+border+((width/size)*(count++))), (int)(+96+8), (int)icon_size, (int)icon_size, sigIRC.panel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
count=0;
|
||||||
|
size = badges.size();
|
||||||
|
for (MemoryData data : badges.keySet()) {
|
||||||
|
if (size*icon_size<width) {
|
||||||
|
g2.drawImage(data.getImage(), (int)(+border+((count++)*icon_size)), (int)(+96+32), (int)icon_size, (int)icon_size, sigIRC.panel);
|
||||||
|
} else {
|
||||||
|
g2.drawImage(data.getImage(), (int)(+border+((width/size)*(count++))), (int)(+96+32), (int)icon_size, (int)icon_size, sigIRC.panel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int i=0;
|
||||||
|
Image[] imgs = new Image[]{RabiRaceModule.image_map.get("health_up.png"),
|
||||||
|
RabiRaceModule.image_map.get("mana_up.png"),
|
||||||
|
RabiRaceModule.image_map.get("regen_up.png"),
|
||||||
|
RabiRaceModule.image_map.get("pack_up.png"),
|
||||||
|
RabiRaceModule.image_map.get("attack_up.png")};
|
||||||
|
int[] amts = new int[]{
|
||||||
|
healthUps,
|
||||||
|
manaUps,
|
||||||
|
regenUps,
|
||||||
|
packUps,
|
||||||
|
attackUps,
|
||||||
|
};
|
||||||
|
//g2.drawImage(RabiRaceModule.image_map.get("bunny_strike.png"),(int)(+border+(i++)*(spacing)-img2.getWidth(sigIRC.panel)/4),(int)(+96+56), (int)icon_size, (int)icon_size, sigIRC.panel);
|
||||||
|
for (Image img : imgs) {
|
||||||
|
g2.drawImage(img,(int)(+border+((i)*(spacing))-icon_size/2),(int)(+96+56), (int)icon_size, (int)icon_size, sigIRC.panel);
|
||||||
|
DrawUtils.drawCenteredOutlineText(g2, sigIRC.panel.programFont, (int)((+border+((i)*(spacing))-icon_size/2)+(spacing/2)+4), (int)(+96+56+icon_size+12), 1, Color.WHITE, Color.BLUE, Integer.toString(amts[i++]));
|
||||||
|
}
|
||||||
|
} catch (ConcurrentModificationException e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
return tmp.getScaledInstance(w, -1, Image.SCALE_AREA_AVERAGING);
|
||||||
|
//g.drawImage(tmp, (int)parent.position.getX(), (int)parent.position.getY(), 120, 64, sigIRC.panel);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append(this.getClass().getName()+"(");
|
||||||
|
boolean first=false;
|
||||||
|
for (Field f : this.getClass().getDeclaredFields()) {
|
||||||
|
if (!first) {
|
||||||
|
try {
|
||||||
|
sb.append(f.getName()+"="+f.get(this));
|
||||||
|
first=true;
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
sb.append(","+f.getName()+"="+f.get(this));
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Point calculateMultiPanelView(int elements) {
|
||||||
|
int x = 1;
|
||||||
|
int y = 1;
|
||||||
|
while (x*y<elements) {
|
||||||
|
if (x==y) {
|
||||||
|
y++;
|
||||||
|
} else {
|
||||||
|
x++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//System.out.println(x+","+y);
|
||||||
|
return new Point(x,y);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DrawMultiPanel(Graphics g, int x, int y, int w, List<Profile> players) {
|
||||||
|
int cols = calculateMultiPanelView(players.size()).x;
|
||||||
|
int rows = calculateMultiPanelView(players.size()).y;
|
||||||
|
|
||||||
|
int xx = 0;
|
||||||
|
int yy = 0;
|
||||||
|
|
||||||
|
for (Profile p : players) {
|
||||||
|
Image panel = p.getStatPanel(w);
|
||||||
|
Image panel2 = p.getStatText(w);
|
||||||
|
g.drawImage(panel,(int)(x+xx*panel.getWidth(sigIRC.panel)/((rows+cols)/2d)),(int)(y+yy*panel.getHeight(sigIRC.panel)/((rows+cols)/2d)),(int)(panel.getWidth(sigIRC.panel)/((rows+cols)/2d)),(int)(panel.getHeight(sigIRC.panel)/((rows+cols)/2d)),sigIRC.panel);
|
||||||
|
g.drawImage(panel2,(int)(x+xx*panel2.getWidth(sigIRC.panel)/((rows+cols)/2d)),(int)(y+yy*panel2.getHeight(sigIRC.panel)/((rows+cols)/2d)),(int)(panel2.getWidth(sigIRC.panel)/((rows+cols)/2d)),(int)(panel2.getHeight(sigIRC.panel)/((rows+cols)/2d)),sigIRC.panel);
|
||||||
|
if (xx+1<cols) {
|
||||||
|
xx++;
|
||||||
|
} else {
|
||||||
|
yy++;
|
||||||
|
xx=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
83
src/sig/modules/RabiRace/Session.java
Normal file
83
src/sig/modules/RabiRace/Session.java
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
package sig.modules.RabiRace;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import sig.modules.RabiRaceModule;
|
||||||
|
import sig.utils.ReflectUtils;
|
||||||
|
|
||||||
|
public class Session {
|
||||||
|
long creationTime = 0;
|
||||||
|
long updateTime = 0;
|
||||||
|
String name = "";
|
||||||
|
int maxPlayers = 0;
|
||||||
|
String password = "";
|
||||||
|
int id = 0;
|
||||||
|
List<Profile> players = new ArrayList<Profile>();
|
||||||
|
|
||||||
|
public Session(String dataString) {
|
||||||
|
String[] split = dataString.split(",");
|
||||||
|
|
||||||
|
int i=0;
|
||||||
|
|
||||||
|
id = Integer.parseInt(split[i++]);
|
||||||
|
creationTime = Long.parseLong(split[i++]);
|
||||||
|
updateTime = Long.parseLong(split[i++]);
|
||||||
|
name = split[i++];
|
||||||
|
maxPlayers = Integer.parseInt(split[i++]);
|
||||||
|
password = split[i++];
|
||||||
|
//System.out.println(this.toString());
|
||||||
|
if (split.length>=7) {
|
||||||
|
String val = split[i++];
|
||||||
|
String[] playerlist = val.split(";");
|
||||||
|
//System.out.println(Arrays.toString(playerlist));
|
||||||
|
if (playerlist.length>0) {
|
||||||
|
for (String s : playerlist) {
|
||||||
|
Profile p = new Profile(RabiRaceModule.module);
|
||||||
|
p.username=s;
|
||||||
|
System.out.println("Player "+p.username);
|
||||||
|
p.downloadProfile();
|
||||||
|
System.out.println("Adding Player "+p);
|
||||||
|
players.add(p);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Profile p = new Profile(RabiRaceModule.module);
|
||||||
|
p.username=val;
|
||||||
|
System.out.println("Player "+p.username);
|
||||||
|
p.downloadProfile();
|
||||||
|
System.out.println("Adding Player "+p);
|
||||||
|
players.add(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append(this.getClass().getName()+"(");
|
||||||
|
boolean first=false;
|
||||||
|
for (Field f : this.getClass().getDeclaredFields()) {
|
||||||
|
if (!first) {
|
||||||
|
try {
|
||||||
|
sb.append(f.getName()+"="+f.get(this));
|
||||||
|
first=true;
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
sb.append(","+f.getName()+"="+f.get(this));
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sb.append(")");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
}
|
27
src/sig/modules/RabiRace/SessionListData.java
Normal file
27
src/sig/modules/RabiRace/SessionListData.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package sig.modules.RabiRace;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SessionListData {
|
||||||
|
List<Session> data = new ArrayList<Session>();
|
||||||
|
|
||||||
|
public SessionListData() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateData(String[] data) {
|
||||||
|
this.data.clear();
|
||||||
|
for (String session : data) {
|
||||||
|
if (session.length()>0) {
|
||||||
|
//System.out.println("Adding session "+session);
|
||||||
|
this.data.add(new Session(session));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//System.out.println(this.data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Session> getSessions() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
77
src/sig/modules/RabiRace/SessionListWindow.java
Normal file
77
src/sig/modules/RabiRace/SessionListWindow.java
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
package sig.modules.RabiRace;
|
||||||
|
|
||||||
|
import java.awt.Dimension;
|
||||||
|
import java.awt.Graphics;
|
||||||
|
|
||||||
|
import javax.swing.DefaultListModel;
|
||||||
|
import javax.swing.JFrame;
|
||||||
|
import javax.swing.JList;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.ListSelectionModel;
|
||||||
|
|
||||||
|
import sig.modules.RabiRaceModule;
|
||||||
|
import sig.modules.Controller.Axis;
|
||||||
|
import sig.modules.Controller.ControlConfigurationWindow;
|
||||||
|
|
||||||
|
public class SessionListWindow extends JFrame{
|
||||||
|
JPanel container = new JPanel();
|
||||||
|
public JList<String> sessionlist = new JList<String>();
|
||||||
|
public DefaultListModel<String> sessionlist_model = new DefaultListModel<String>();
|
||||||
|
public int selected = -1;
|
||||||
|
public DataPanel previewPanel = new DataPanel();
|
||||||
|
|
||||||
|
public SessionListWindow(){
|
||||||
|
|
||||||
|
previewPanel.setWindow(this);
|
||||||
|
|
||||||
|
sessionlist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
||||||
|
sessionlist.setLayoutOrientation(JList.VERTICAL);
|
||||||
|
|
||||||
|
UpdateSessionList();
|
||||||
|
|
||||||
|
sessionlist.setModel(sessionlist_model);
|
||||||
|
|
||||||
|
container.add(sessionlist);
|
||||||
|
container.add(previewPanel);
|
||||||
|
previewPanel.setPreferredSize(new Dimension(400,300));
|
||||||
|
|
||||||
|
|
||||||
|
this.add(container);
|
||||||
|
this.setMinimumSize(new Dimension(640,480));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
this.repaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateSessionList() {
|
||||||
|
selected = sessionlist.getSelectedIndex();
|
||||||
|
sessionlist_model.clear();
|
||||||
|
int count=0;
|
||||||
|
for (Session session : RabiRaceModule.module.session_listing.data) {
|
||||||
|
sessionlist_model.addElement(session.id+" - "+session.name+" ("+session.players.size()+"/"+session.maxPlayers+")");
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
if (count>=selected) {
|
||||||
|
sessionlist.setSelectedIndex(selected);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DataPanel extends JPanel{
|
||||||
|
SessionListWindow window;
|
||||||
|
public void setWindow(SessionListWindow window) {
|
||||||
|
this.window=window;
|
||||||
|
}
|
||||||
|
public void paintComponent(Graphics g) {
|
||||||
|
super.paintComponent(g);
|
||||||
|
//Axis.GetAxisDisplay(g,window.ConstructTemporaryAxis(),0,0,window.axis_width,window.axis_height);
|
||||||
|
//Axis.GetAxisIndicatorDisplay(g,window.ConstructTemporaryAxis(),0,0,window.axis_width,window.axis_height);
|
||||||
|
if (sessionlist.getSelectedIndex()!=-1) {
|
||||||
|
//Get the players from that session.
|
||||||
|
Session s = RabiRaceModule.module.session_listing.data.get(sessionlist.getSelectedIndex());
|
||||||
|
|
||||||
|
Profile.DrawMultiPanel(g,0,0,400,s.players);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -3,11 +3,15 @@ package sig.modules;
|
|||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Image;
|
import java.awt.Image;
|
||||||
|
import java.awt.Rectangle;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
import java.awt.geom.Rectangle2D;
|
import java.awt.geom.Rectangle2D;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.ConcurrentModificationException;
|
import java.util.ConcurrentModificationException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -26,13 +30,19 @@ import com.sun.jna.platform.win32.WinNT.HANDLE;
|
|||||||
import sig.FileManager;
|
import sig.FileManager;
|
||||||
import sig.Module;
|
import sig.Module;
|
||||||
import sig.sigIRC;
|
import sig.sigIRC;
|
||||||
|
import sig.modules.Controller.ClickableButton;
|
||||||
import sig.modules.RabiRace.ColorCycler;
|
import sig.modules.RabiRace.ColorCycler;
|
||||||
|
import sig.modules.RabiRace.CreateButton;
|
||||||
|
import sig.modules.RabiRace.JoinButton;
|
||||||
import sig.modules.RabiRace.MemoryData;
|
import sig.modules.RabiRace.MemoryData;
|
||||||
import sig.modules.RabiRace.Profile;
|
import sig.modules.RabiRace.Profile;
|
||||||
|
import sig.modules.RabiRace.SessionListData;
|
||||||
|
import sig.modules.RabiRace.SessionListWindow;
|
||||||
import sig.modules.RabiRibi.MemoryOffset;
|
import sig.modules.RabiRibi.MemoryOffset;
|
||||||
import sig.modules.RabiRibi.MemoryType;
|
import sig.modules.RabiRibi.MemoryType;
|
||||||
import sig.modules.utils.PsapiTools;
|
import sig.modules.utils.PsapiTools;
|
||||||
import sig.utils.DrawUtils;
|
import sig.utils.DrawUtils;
|
||||||
|
import sig.utils.FileUtils;
|
||||||
|
|
||||||
public class RabiRaceModule extends Module{
|
public class RabiRaceModule extends Module{
|
||||||
final static String ITEMS_DIRECTORY = sigIRC.BASEDIR+"sigIRC/rabi-ribi/items/";
|
final static String ITEMS_DIRECTORY = sigIRC.BASEDIR+"sigIRC/rabi-ribi/items/";
|
||||||
@ -42,8 +52,14 @@ public class RabiRaceModule extends Module{
|
|||||||
long rabiRibiMemOffset = 0;
|
long rabiRibiMemOffset = 0;
|
||||||
public HANDLE rabiribiProcess = null;
|
public HANDLE rabiribiProcess = null;
|
||||||
public static HashMap<String,Image> image_map = new HashMap<String,Image>();
|
public static HashMap<String,Image> image_map = new HashMap<String,Image>();
|
||||||
ColorCycler rainbowcycler = new ColorCycler(new Color(255,0,0,96),8);
|
public static ColorCycler rainbowcycler = new ColorCycler(new Color(255,0,0,96),8);
|
||||||
Profile myProfile = new Profile(this);
|
Profile myProfile = new Profile(this);
|
||||||
|
public static RabiRaceModule module;
|
||||||
|
public static SessionListWindow window;
|
||||||
|
|
||||||
|
public SessionListData session_listing = new SessionListData();
|
||||||
|
|
||||||
|
ClickableButton join_button,create_button;
|
||||||
|
|
||||||
public static List<MemoryData> key_items_list = new ArrayList<MemoryData>();
|
public static List<MemoryData> key_items_list = new ArrayList<MemoryData>();
|
||||||
public static List<MemoryData> badges_list = new ArrayList<MemoryData>();
|
public static List<MemoryData> badges_list = new ArrayList<MemoryData>();
|
||||||
@ -52,7 +68,9 @@ public class RabiRaceModule extends Module{
|
|||||||
super(bounds, moduleName);
|
super(bounds, moduleName);
|
||||||
//Initialize();
|
//Initialize();
|
||||||
Initialize();
|
Initialize();
|
||||||
|
module = this;
|
||||||
|
window = new SessionListWindow();
|
||||||
|
window.setVisible(false);
|
||||||
//System.out.println("Money value is: "+readIntFromMemory(MemoryOffset.MONEY));
|
//System.out.println("Money value is: "+readIntFromMemory(MemoryOffset.MONEY));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +80,10 @@ public class RabiRaceModule extends Module{
|
|||||||
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
|
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
|
||||||
scheduler.scheduleWithFixedDelay(()->{
|
scheduler.scheduleWithFixedDelay(()->{
|
||||||
CheckRabiRibiClient();
|
CheckRabiRibiClient();
|
||||||
UpdateMyProfile();
|
if (foundRabiRibi) {
|
||||||
|
myProfile.uploadProfile();
|
||||||
|
getSessionList();
|
||||||
|
}
|
||||||
}, 5000, 5000, TimeUnit.MILLISECONDS);
|
}, 5000, 5000, TimeUnit.MILLISECONDS);
|
||||||
|
|
||||||
File dir = new File(ITEMS_DIRECTORY);
|
File dir = new File(ITEMS_DIRECTORY);
|
||||||
@ -103,6 +124,32 @@ public class RabiRaceModule extends Module{
|
|||||||
badges_list.add(md);
|
badges_list.add(md);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
join_button = new JoinButton(new Rectangle(2,(int)(position.getHeight()-18),120,18),"Join Session (0)",this);
|
||||||
|
create_button = new CreateButton(new Rectangle(122,(int)(position.getHeight()-18),120,18),"Create Session",this);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getSessionList() {
|
||||||
|
File file = new File(sigIRC.BASEDIR+"sessions");
|
||||||
|
try {
|
||||||
|
org.apache.commons.io.FileUtils.copyURLToFile(new URL("http://45.33.13.215/rabirace/send.php?key=getsessions"),file);
|
||||||
|
String[] data = FileUtils.readFromFile(sigIRC.BASEDIR+"sessions");
|
||||||
|
//System.out.println("Data is "+Arrays.toString(data));
|
||||||
|
session_listing.UpdateData(data);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
join_button.setButtonLabel("Join Session ("+session_listing.getSessions().size()+")");
|
||||||
|
window.UpdateSessionList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void mousePressed(MouseEvent ev) {
|
||||||
|
if (join_button.mouseInsideBounds(ev)) {
|
||||||
|
join_button.onClickEvent(ev);
|
||||||
|
}
|
||||||
|
if (create_button.mouseInsideBounds(ev)) {
|
||||||
|
create_button.onClickEvent(ev);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CheckRabiRibiClient() {
|
private void CheckRabiRibiClient() {
|
||||||
@ -152,26 +199,40 @@ public class RabiRaceModule extends Module{
|
|||||||
public void run() {
|
public void run() {
|
||||||
if (foundRabiRibi) {
|
if (foundRabiRibi) {
|
||||||
rainbowcycler.run();
|
rainbowcycler.run();
|
||||||
|
UpdateMyProfile();
|
||||||
|
if (window!=null) {
|
||||||
|
window.run();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateMyProfile() {
|
private void UpdateMyProfile() {
|
||||||
if (foundRabiRibi) {
|
if (foundRabiRibi) {
|
||||||
//System.out.println("Called.");
|
//System.out.println("Called.");
|
||||||
myProfile.rainbowEggCount = readIntFromMemory(MemoryOffset.RAINBOW_EGG_COUNT);
|
int warp_counter = readIntFromMemory(MemoryOffset.WARP_TRANSITION_COUNTER);
|
||||||
myProfile.attackUps = readItemCountFromMemory(MemoryOffset.ATTACKUP_START,MemoryOffset.ATTACKUP_END);
|
if (warp_counter==203 || warp_counter==141) {
|
||||||
myProfile.healthUps = readItemCountFromMemory(MemoryOffset.HEALTHUP_START,MemoryOffset.HEALTHUP_END);
|
myProfile.rainbowEggCount = readIntFromMemory(MemoryOffset.RAINBOW_EGG_COUNT);
|
||||||
myProfile.manaUps = readItemCountFromMemory(MemoryOffset.MANAUP_START,MemoryOffset.MANAUP_END);
|
myProfile.attackUps = readItemCountFromMemory(MemoryOffset.ATTACKUP_START,MemoryOffset.ATTACKUP_END);
|
||||||
myProfile.regenUps = readItemCountFromMemory(MemoryOffset.REGENUP_START,MemoryOffset.REGENUP_END);
|
myProfile.healthUps = readItemCountFromMemory(MemoryOffset.HEALTHUP_START,MemoryOffset.HEALTHUP_END);
|
||||||
myProfile.packUps = readItemCountFromMemory(MemoryOffset.PACKUP_START,MemoryOffset.PACKUP_END);
|
myProfile.manaUps = readItemCountFromMemory(MemoryOffset.MANAUP_START,MemoryOffset.MANAUP_END);
|
||||||
myProfile.isPaused = readIntFromMemory(MemoryOffset.WARP_TRANSITION_COUNTER)==141;
|
myProfile.regenUps = readItemCountFromMemory(MemoryOffset.REGENUP_START,MemoryOffset.REGENUP_END);
|
||||||
myProfile.itempct = readFloatFromMemory(MemoryOffset.ITEM_PERCENT);
|
myProfile.packUps = readItemCountFromMemory(MemoryOffset.PACKUP_START,MemoryOffset.PACKUP_END);
|
||||||
myProfile.mappct = readFloatFromMemory(MemoryOffset.MAP_PERCENT);
|
myProfile.isPaused = readIntFromMemory(MemoryOffset.WARP_TRANSITION_COUNTER)==141;
|
||||||
myProfile.playtime = readIntFromMemory(MemoryOffset.PLAYTIME);
|
myProfile.itempct = readFloatFromMemory(MemoryOffset.ITEM_PERCENT);
|
||||||
myProfile.updateClientValues();
|
myProfile.mappct = readFloatFromMemory(MemoryOffset.MAP_PERCENT);
|
||||||
|
myProfile.playtime = readIntFromMemory(MemoryOffset.PLAYTIME);
|
||||||
|
myProfile.updateClientValues();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ApplyConfigWindowProperties() {
|
||||||
|
sigIRC.rabiracemodule_X=(int)position.getX();
|
||||||
|
sigIRC.rabiracemodule_Y=(int)position.getY();
|
||||||
|
sigIRC.config.setInteger("RABIRACE_module_X", sigIRC.rabiracemodule_X);
|
||||||
|
sigIRC.config.setInteger("RABIRACE_module_Y", sigIRC.rabiracemodule_Y);
|
||||||
|
}
|
||||||
|
|
||||||
/*public int readIntFromErinaData(MemoryOffset val) {
|
/*public int readIntFromErinaData(MemoryOffset val) {
|
||||||
return readIntFromPointer(val,MemoryOffset.ENTITY_ARRAY);
|
return readIntFromPointer(val,MemoryOffset.ENTITY_ARRAY);
|
||||||
}
|
}
|
||||||
@ -266,67 +327,15 @@ public class RabiRaceModule extends Module{
|
|||||||
if (!foundRabiRibi) {
|
if (!foundRabiRibi) {
|
||||||
DrawUtils.drawTextFont(g, sigIRC.panel.userFont, position.getX(), position.getY()+26, Color.BLACK, "Rabi-Ribi not found! Please start it.");
|
DrawUtils.drawTextFont(g, sigIRC.panel.userFont, position.getX(), position.getY()+26, Color.BLACK, "Rabi-Ribi not found! Please start it.");
|
||||||
} else {
|
} else {
|
||||||
//DrawUtils.drawTextFont(g, sigIRC.panel.userFont, position.getX(), position.getY()+26, Color.BLACK, "Values: "+readIntFromMemory(MemoryOffset.DLC_ITEM1)+","+readIntFromMemory(MemoryOffset.DLC_ITEM2)+","+readIntFromMemory(MemoryOffset.DLC_ITEM3)+","+readIntFromMemory(MemoryOffset.DLC_ITEM4));
|
//myProfile.draw(g);
|
||||||
final int border=20;
|
Image panel = myProfile.getStatPanel((int)position.getWidth());
|
||||||
final int width=(int)(position.getWidth()-border*2);
|
g.drawImage(panel, (int)position.getX(), (int)position.getY(), sigIRC.panel);
|
||||||
final int spacing=width/5;
|
g.drawImage(myProfile.getStatText((int)position.getWidth()), (int)position.getX(), (int)position.getY(), sigIRC.panel);
|
||||||
for (int i=0;i<5;i++) {
|
|
||||||
Image img = image_map.get("easter_egg.png");
|
|
||||||
Color col = (myProfile.rainbowEggCount>i)?rainbowcycler.getCycleColor():new Color(0,0,0,192);
|
|
||||||
DrawUtils.drawImage(g, img, (int)(position.getX()+border+i*spacing-img.getWidth(sigIRC.panel)/4),(int)(position.getY()+36),col,sigIRC.panel);
|
|
||||||
}
|
|
||||||
int size = myProfile.key_items.size();
|
|
||||||
final int icon_size = 24;
|
|
||||||
int count = 0;
|
|
||||||
try {
|
|
||||||
for (String key : myProfile.key_items.keySet()) {
|
|
||||||
MemoryData data = myProfile.key_items.get(key);
|
|
||||||
if (readIntFromMemory(data.mem)<0) {
|
|
||||||
Image img = data.getImage().getScaledInstance(icon_size, icon_size, Image.SCALE_DEFAULT);
|
|
||||||
if (size*icon_size<width) {
|
|
||||||
DrawUtils.drawImage(g, img, (int)(position.getX()+border+((count++)*icon_size)), (int)(position.getY()+96+8), new Color(0,0,0,128), sigIRC.panel);
|
|
||||||
} else {
|
|
||||||
DrawUtils.drawImage(g, img, (int)(position.getX()+border+((width/size)*(count++))), (int)(position.getY()+96+8), new Color(0,0,0,128), sigIRC.panel);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (size*icon_size<width) {
|
|
||||||
g.drawImage(data.getImage(), (int)(position.getX()+border+((count++)*icon_size)), (int)(position.getY()+96+8), (int)icon_size, (int)icon_size, sigIRC.panel);
|
|
||||||
} else {
|
|
||||||
g.drawImage(data.getImage(), (int)(position.getX()+border+((width/size)*(count++))), (int)(position.getY()+96+8), (int)icon_size, (int)icon_size, sigIRC.panel);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
count=0;
|
|
||||||
size = myProfile.badges.size();
|
|
||||||
for (String key : myProfile.badges.keySet()) {
|
|
||||||
MemoryData data = myProfile.badges.get(key);
|
|
||||||
if (size*icon_size<width) {
|
|
||||||
g.drawImage(data.getImage(), (int)(position.getX()+border+((count++)*icon_size)), (int)(position.getY()+96+32), (int)icon_size, (int)icon_size, sigIRC.panel);
|
|
||||||
} else {
|
|
||||||
g.drawImage(data.getImage(), (int)(position.getX()+border+((width/size)*(count++))), (int)(position.getY()+96+32), (int)icon_size, (int)icon_size, sigIRC.panel);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int i=0;
|
|
||||||
Image[] imgs = new Image[]{image_map.get("health_up.png"),
|
|
||||||
image_map.get("mana_up.png"),
|
|
||||||
image_map.get("regen_up.png"),
|
|
||||||
image_map.get("pack_up.png"),
|
|
||||||
image_map.get("attack_up.png")};
|
|
||||||
int[] amts = new int[]{
|
|
||||||
myProfile.healthUps,
|
|
||||||
myProfile.manaUps,
|
|
||||||
myProfile.regenUps,
|
|
||||||
myProfile.packUps,
|
|
||||||
myProfile.attackUps,
|
|
||||||
};
|
|
||||||
//g.drawImage(image_map.get("bunny_strike.png"),(int)(position.getX()+border+(i++)*(spacing)-img.getWidth(sigIRC.panel)/4),(int)(position.getY()+96+56), (int)icon_size, (int)icon_size, sigIRC.panel);
|
|
||||||
for (Image img : imgs) {
|
|
||||||
g.drawImage(img,(int)(position.getX()+border+((i)*(spacing))-icon_size/2),(int)(position.getY()+96+56), (int)icon_size, (int)icon_size, sigIRC.panel);
|
|
||||||
DrawUtils.drawCenteredOutlineText(g, sigIRC.panel.userFont, (int)((position.getX()+border+((i)*(spacing))-icon_size/2)+(spacing/2)), (int)(position.getY()+96+56+icon_size+6), 1, Color.WHITE, Color.BLUE, "x"+amts[i++]);
|
|
||||||
}
|
|
||||||
} catch (ConcurrentModificationException e) {
|
|
||||||
|
|
||||||
}
|
//Profile.DrawMultiPanel(g, (int)(position.getX()), (int)(position.getY())+panel.getHeight(sigIRC.panel), (int)position.getWidth(), testing);
|
||||||
|
|
||||||
|
join_button.draw(g);
|
||||||
|
create_button.draw(g);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
package sig.modules.RabiRibi;
|
package sig.modules.RabiRibi;
|
||||||
|
|
||||||
public enum MemoryOffset {
|
public enum MemoryOffset {
|
||||||
MONEY(0xD654CC,0x12DA99C),
|
MONEY(0xD654CC,0x12DA99C+OffsetHelper.KEY_ITEM_OFFSET_V185_TO_V1851),
|
||||||
PLAYTIME(0xD642D8,0x12D97A8), //In frames (Rabi-Ribi runs at 60FPS).
|
PLAYTIME(0xD642D8,0x12D97A8+OffsetHelper.KEY_ITEM_OFFSET_V185_TO_V1851), //In frames (Rabi-Ribi runs at 60FPS).
|
||||||
//UNKNOWN1(0xD65BDC), //???? Originally assumed to be "Health Ups".
|
//UNKNOWN1(0xD65BDC), //???? Originally assumed to be "Health Ups".
|
||||||
HEALTHUP_START(0xD6342C,0xD6342C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
HEALTHUP_START(0xD6342C,0xD6342C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
HEALTHUP_END(0xD63528,0xD63528+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
HEALTHUP_END(0xD63528,0xD63528+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
ATTACKUP_START(0xD6352C,0xD6352C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
ATTACKUP_START(0xD6352C,0xD6352C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
ATTACKUP_END(0xD63628,0xD63628+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
ATTACKUP_END(0xD63628,0xD63628+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
MANAUP_START(0xD6362C,0xD6362C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
MANAUP_START(0xD6362C,0xD6362C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
MANAUP_END(0xD63728,0xD63728+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
MANAUP_END(0xD63728,0xD63728+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
REGENUP_START(0xD6372C,0xD6372C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
REGENUP_START(0xD6372C,0xD6372C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
REGENUP_END(0xD63828,0xD63828+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
REGENUP_END(0xD63828,0xD63828+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
PACKUP_START(0xD6382C,0xD6382C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
PACKUP_START(0xD6382C,0xD6382C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
PACKUP_END(0xD63928,0xD63928+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
PACKUP_END(0xD63928,0xD63928+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
/*ENTITY_ARRAY(0x0096DA3C), //Erina Data Pointer.
|
/*ENTITY_ARRAY(0x0096DA3C), //Erina Data Pointer.
|
||||||
ERINA_HP(0x4D8),
|
ERINA_HP(0x4D8),
|
||||||
ERINA_MAXHP(0x4E8),
|
ERINA_MAXHP(0x4E8),
|
||||||
@ -34,111 +34,113 @@ public enum MemoryOffset {
|
|||||||
ENTITY_YPOS(0x10),
|
ENTITY_YPOS(0x10),
|
||||||
ENTITY_COLOR(0x1C),
|
ENTITY_COLOR(0x1C),
|
||||||
TRANSITION_COUNTER(0xA7661C),*/
|
TRANSITION_COUNTER(0xA7661C),*/
|
||||||
WARP_TRANSITION_COUNTER(0,0x582CE0), //Detects pausing
|
WARP_TRANSITION_COUNTER(0,0x582CE0+OffsetHelper.KEY_ITEM_OFFSET_V185_TO_V1851), //Detects pausing
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GAME_DIFFICULTY(0xD64338,0xD64338+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
GAME_DIFFICULTY(0xD64338,0xD64338+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
GAME_LOOP(0xD6D05C,0xD6D05C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
GAME_LOOP(0xD6D05C,0xD6D05C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
|
|
||||||
HAMMER(0xD632B0,0xD632B0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
HAMMER(0xD632B0,0xD632B0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
AIR_JUMP(0xD632B4,0xD632B4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
AIR_JUMP(0xD632B4,0xD632B4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
SLIDING_POWDER(0xD632B8,0xD632B8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
SLIDING_POWDER(0xD632B8,0xD632B8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
CARROT_BOMB(0xD632BC,0xD632BC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
CARROT_BOMB(0xD632BC,0xD632BC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
HOURGLASS(0xD632C0,0xD632C0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
HOURGLASS(0xD632C0,0xD632C0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
SPEED_BOOST(0xD632C4,0xD632C4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
SPEED_BOOST(0xD632C4,0xD632C4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
AUTO_EARRINGS(0xD632C8,0xD632C8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
AUTO_EARRINGS(0xD632C8,0xD632C8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
RIBBON(0xD632CC,0xD632CC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
RIBBON(0xD632CC,0xD632CC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
SOUL_HEART(0xD632D0,0xD632D0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
SOUL_HEART(0xD632D0,0xD632D0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
RABI_SLIPPERS(0xD632D4,0xD632D4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
RABI_SLIPPERS(0xD632D4,0xD632D4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BUNNY_WHIRL(0xD632D8,0xD632D8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BUNNY_WHIRL(0xD632D8,0xD632D8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
QUICK_BARETTE(0xD632DC,0xD632DC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
QUICK_BARETTE(0xD632DC,0xD632DC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BOOK_OF_CARROT(0xD632E0,0xD632E0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BOOK_OF_CARROT(0xD632E0,0xD632E0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
CHAOS_ROD(0xD632E4,0xD632E4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
CHAOS_ROD(0xD632E4,0xD632E4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
HAMMER_WAVE(0xD632E8,0xD632E8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
HAMMER_WAVE(0xD632E8,0xD632E8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
HAMMER_ROLL(0xD632EC,0xD632EC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
HAMMER_ROLL(0xD632EC,0xD632EC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
LIGHT_ORB(0xD632F0,0xD632F0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
LIGHT_ORB(0xD632F0,0xD632F0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
WATER_ORB(0xD632F4,0xD632F4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
WATER_ORB(0xD632F4,0xD632F4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
FIRE_ORB(0xD632F8,0xD632F8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
FIRE_ORB(0xD632F8,0xD632F8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
NATURE_ORB(0xD632FC,0xD632FC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
NATURE_ORB(0xD632FC,0xD632FC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
P_HAIRPIN(0xD63300,0x12D87D0),
|
P_HAIRPIN(0xD63300,0x12D87D0+OffsetHelper.KEY_ITEM_OFFSET_V185_TO_V1851),
|
||||||
SUNNY_BEAM(0xD63304,0xD63304+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
SUNNY_BEAM(0xD63304,0xD63304+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
PLUS_NECKLACE(0xD63308,0xD63308+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
PLUS_NECKLACE(0xD63308,0xD63308+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
CYBER_FLOWER(0xD6330C,0xD6330C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
CYBER_FLOWER(0xD6330C,0xD6330C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
HEALING_STAFF(0xD63310,0xD63310+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
HEALING_STAFF(0xD63310,0xD63310+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
MAX_BRACELET(0xD63314,0xD63314+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
MAX_BRACELET(0xD63314,0xD63314+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
EXPLODE_SHOT(0xD63318,0xD63318+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
EXPLODE_SHOT(0xD63318,0xD63318+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
AIR_DASH(0xD6331C,0xD6331C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
AIR_DASH(0xD6331C,0xD6331C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BUNNY_STRIKE(0xD63320,0xD63320+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BUNNY_STRIKE(0xD63320,0xD63320+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
STRANGE_BOX(0xD63324,0xD63324+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
STRANGE_BOX(0xD63324,0xD63324+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
WALL_JUMP(0xD63328,0xD63328+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
WALL_JUMP(0xD63328,0xD63328+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
SPIKE_BARRIER(0xD6332C,0xD6332C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
SPIKE_BARRIER(0xD6332C,0xD6332C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BUNNY_AMULET(0xD63330,0xD63330+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BUNNY_AMULET(0xD63330,0xD63330+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
CHARGE_RING(0xD63334,0xD63334+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
CHARGE_RING(0xD63334,0xD63334+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
CARROT_SHOOTER(0xD63338,0xD63338+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
CARROT_SHOOTER(0xD63338,0xD63338+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
SUPER_CARROT(0xD6333C,0xD6333C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
SUPER_CARROT(0xD6333C,0xD6333C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
RUMI_DONUT(0xD63340,0xD63340+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
RUMI_DONUT(0xD63340,0xD63340+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
RUMI_CAKE(0xD63344,0xD63344+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
RUMI_CAKE(0xD63344,0xD63344+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
GOLD_CARROT(0xD63348,0xD63348+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
GOLD_CARROT(0xD63348,0xD63348+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
COCOA_BOMB(0xD6334C,0xD6334C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
COCOA_BOMB(0xD6334C,0xD6334C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM1(0xD63350,0xD63350+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM1(0xD63350,0xD63350+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
TROPHY(0xD63354,0xD63354+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
TROPHY(0xD63354,0xD63354+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
EXCLAMATION_POINT(0xD63358,0xD63358+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
EXCLAMATION_POINT(0xD63358,0xD63358+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM2(0xD6335C,0xD6335C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM2(0xD6335C,0xD6335C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM3(0xD63360,0xD63360+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM3(0xD63360,0xD63360+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM4(0xD63364,0xD63364+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM4(0xD63364,0xD63364+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
RAINBOW_MAGIC(0xD63368,0xD63368+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
RAINBOW_MAGIC(0xD63368,0xD63368+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM5(0xD6336C,0xD6336C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM5(0xD6336C,0xD6336C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM6(0xD63370,0xD63370+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM6(0xD63370,0xD63370+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM7(0xD63374,0xD63374+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM7(0xD63374,0xD63374+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM8(0xD63378,0xD63378+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM8(0xD63378,0xD63378+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM9(0xD6337C,0xD6337C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM9(0xD6337C,0xD6337C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM10(0xD63380,0xD63380+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM10(0xD63380,0xD63380+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM11(0xD63384,0xD63384+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM11(0xD63384,0xD63384+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM12(0xD63388,0xD63388+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM12(0xD63388,0xD63388+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM13(0xD6338C,0xD6338C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM13(0xD6338C,0xD6338C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
UNKNOWN_ITEM14(0xD63390,0xD63390+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
UNKNOWN_ITEM14(0xD63390,0xD63390+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
DLC_ITEM1(0xD63394,0xD63394+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
/*DLC_ITEM1(0xD63394,0xD63394+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
DLC_ITEM2(0xD63398,0xD63398+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
DLC_ITEM2(0xD63398,0xD63398+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),*/
|
||||||
BUNNY_CLOVER(0xD6339C,0xD6339C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BUNNY_CLOVER(0xD6339C,0xD6339C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
FAIRYS_FLUTE(0,0x12D8874),
|
FAIRYS_FLUTE(0,0x12D8874+OffsetHelper.KEY_ITEM_OFFSET_V185_TO_V1851),
|
||||||
DLC_ITEM4(0xD633A0,0xD633A0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BUNNY_MEMORIES(0,0x12D7878),
|
||||||
BADGE_HEALTH_PLUS(0xD633AC,0xD633AC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
WIND_BLESSING(0,0x12D7870),
|
||||||
BADGE_HEALTH_SURGE(0xD633B0,0xD633B0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
DLC_ITEM4(0xD633A0,0xD633A0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_MANA_PLUS(0xD633B4,0xD633B4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_HEALTH_PLUS(0xD633AC,0xD633AC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_MANA_SURGE(0xD633B8,0xD633B8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_HEALTH_SURGE(0xD633B0,0xD633B0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_CRISIS_BOOST(0xD633BC,0xD633BC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_MANA_PLUS(0xD633B4,0xD633B4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_ATK_GROW(0xD633C0,0xD633C0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_MANA_SURGE(0xD633B8,0xD633B8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_DEF_GROW(0xD633C4,0xD633C4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_CRISIS_BOOST(0xD633BC,0xD633BC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_ATK_TRADE(0xD633C8,0xD633C8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_ATK_GROW(0xD633C0,0xD633C0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_DEF_TRADE(0xD633CC,0xD633CC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_DEF_GROW(0xD633C4,0xD633C4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_ARM_STRENGTH(0xD633D0,0xD633D0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_ATK_TRADE(0xD633C8,0xD633C8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_CARROT_BOOST(0xD633D4,0xD633D4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_DEF_TRADE(0xD633CC,0xD633CC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_WEAKEN(0xD633D8,0xD633D8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_ARM_STRENGTH(0xD633D0,0xD633D0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_SELF_DEFENSE(0xD633DC,0xD633DC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_CARROT_BOOST(0xD633D4,0xD633D4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_ARMORED(0xD633E0,0xD633E0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_WEAKEN(0xD633D8,0xD633D8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_LUCKY_SEVEN(0xD633E4,0xD633E4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_SELF_DEFENSE(0xD633DC,0xD633DC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_HEX_CANCEL(0xD633E8,0xD633E8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_ARMORED(0xD633E0,0xD633E0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_PURE_LOVE(0xD633EC,0xD633EC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_LUCKY_SEVEN(0xD633E4,0xD633E4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_TOXIC_STRIKE(0xD633F0,0xD633F0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_HEX_CANCEL(0xD633E8,0xD633E8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_FRAME_CANCEL(0xD633F4,0xD633F4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_PURE_LOVE(0xD633EC,0xD633EC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_HEALTH_WAGER(0xD633F8,0xD633F8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_TOXIC_STRIKE(0xD633F0,0xD633F0+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_MANA_WAGER(0xD633FC,0xD633FC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_FRAME_CANCEL(0xD633F4,0xD633F4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_STAMINA_PLUS(0xD63400,0xD63400+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_HEALTH_WAGER(0xD633F8,0xD633F8+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_BLESSED(0xD63404,0xD63404+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_MANA_WAGER(0xD633FC,0xD633FC+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_HITBOX_DOWN(0xD63408,0xD63408+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_STAMINA_PLUS(0xD63400,0xD63400+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_CASHBACK(0xD6340C,0xD6340C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_BLESSED(0xD63404,0xD63404+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_SURVIVAL(0xD63410,0xD63410+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_HITBOX_DOWN(0xD63408,0xD63408+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_TOP_FORM(0xD63414,0xD63414+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_CASHBACK(0xD6340C,0xD6340C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_TOUGH_SKIN(0xD63418,0xD63418+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_SURVIVAL(0xD63410,0xD63410+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_ERINA_BADGE(0xD6341C,0xD6341C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_TOP_FORM(0xD63414,0xD63414+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_RIBBON_BADGE(0xD63420,0xD63420+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_TOUGH_SKIN(0xD63418,0xD63418+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_AUTO_TRIGGER(0xD63424,0xD63424+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_ERINA_BADGE(0xD6341C,0xD6341C+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
BADGE_LILITHS_GIFT(0xD63428,0xD63428+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
BADGE_RIBBON_BADGE(0xD63420,0xD63420+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
|
BADGE_AUTO_TRIGGER(0xD63424,0xD63424+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
ITEM_PERCENT(0,0x13423F0),
|
BADGE_LILITHS_GIFT(0xD63428,0xD63428+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
MAP_PERCENT(0,0x13423EC),
|
//13413E8
|
||||||
RAINBOW_EGG_COUNT(0xD65FD4,0xD65FD4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V185),
|
ITEM_PERCENT(0,0x13413E8),
|
||||||
|
MAP_PERCENT(0,0x13413E4),
|
||||||
|
RAINBOW_EGG_COUNT(0xD65FD4,0xD65FD4+OffsetHelper.KEY_ITEM_OFFSET_V175_TO_V1851),
|
||||||
;
|
;
|
||||||
|
|
||||||
long offset;
|
long offset;
|
||||||
@ -168,4 +170,6 @@ public enum MemoryOffset {
|
|||||||
|
|
||||||
class OffsetHelper{
|
class OffsetHelper{
|
||||||
final static long KEY_ITEM_OFFSET_V175_TO_V185 = 0x5754D0;
|
final static long KEY_ITEM_OFFSET_V175_TO_V185 = 0x5754D0;
|
||||||
|
final static long KEY_ITEM_OFFSET_V175_TO_V1851 = 0x5744D0;
|
||||||
|
final static long KEY_ITEM_OFFSET_V185_TO_V1851 = -0x1000;
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ public class sigIRC{
|
|||||||
public final static String PROGRAM_EXECUTABLE_URL = "https://github.com/sigonasr2/sigIRCv2/raw/master/sigIRCv2.jar";
|
public final static String PROGRAM_EXECUTABLE_URL = "https://github.com/sigonasr2/sigIRCv2/raw/master/sigIRCv2.jar";
|
||||||
public static ConfigFile config;
|
public static ConfigFile config;
|
||||||
static String server;
|
static String server;
|
||||||
static String nickname;
|
public static String nickname;
|
||||||
public static String channel;
|
public static String channel;
|
||||||
public static boolean authenticated=false;
|
public static boolean authenticated=false;
|
||||||
public static int lastPlayedDing=0;
|
public static int lastPlayedDing=0;
|
||||||
@ -187,7 +187,7 @@ public class sigIRC{
|
|||||||
dingThreshold = Integer.parseInt(config.getProperty("dingThreshold"));
|
dingThreshold = Integer.parseInt(config.getProperty("dingThreshold"));
|
||||||
backgroundcol = new Color(Integer.parseInt(config.getProperty("backgroundColor")));
|
backgroundcol = new Color(Integer.parseInt(config.getProperty("backgroundColor")));
|
||||||
messageFont = config.getProperty("messageFont","Gill Sans Ultra Bold Condensed");
|
messageFont = config.getProperty("messageFont","Gill Sans Ultra Bold Condensed");
|
||||||
usernameFont = config.getProperty("usernameFont","Gill Sans");
|
usernameFont = config.getProperty("usernameFont","Segoe UI Semibold");
|
||||||
touhoumotherConsoleFont = config.getProperty("touhoumotherConsoleFont","Agency FB Bold");
|
touhoumotherConsoleFont = config.getProperty("touhoumotherConsoleFont","Agency FB Bold");
|
||||||
touhoumothermodule_enabled = config.getBoolean("Module_touhoumother_Enabled",false);
|
touhoumothermodule_enabled = config.getBoolean("Module_touhoumother_Enabled",false);
|
||||||
controllermodule_enabled = config.getBoolean("Module_controller_Enabled",false);
|
controllermodule_enabled = config.getBoolean("Module_controller_Enabled",false);
|
||||||
@ -302,6 +302,7 @@ public class sigIRC{
|
|||||||
manager = new FileManager("sigIRC/controller/4-way_axis.png"); manager.verifyAndFetchFileFromServer();
|
manager = new FileManager("sigIRC/controller/4-way_axis.png"); manager.verifyAndFetchFileFromServer();
|
||||||
manager = new FileManager("sigIRC/controller/controller_overlay.png"); manager.verifyAndFetchFileFromServer();
|
manager = new FileManager("sigIRC/controller/controller_overlay.png"); manager.verifyAndFetchFileFromServer();
|
||||||
manager = new FileManager("sigIRC/controller/controller_template.png"); manager.verifyAndFetchFileFromServer();
|
manager = new FileManager("sigIRC/controller/controller_template.png"); manager.verifyAndFetchFileFromServer();
|
||||||
|
manager = new FileManager("sigIRC/CP Font.ttf"); manager.verifyAndFetchFileFromServer();
|
||||||
manager = new FileManager("kill.png"); manager.verifyAndFetchFileFromServer();
|
manager = new FileManager("kill.png"); manager.verifyAndFetchFileFromServer();
|
||||||
manager = new FileManager("memory"); manager.verifyAndFetchFileFromServer();
|
manager = new FileManager("memory"); manager.verifyAndFetchFileFromServer();
|
||||||
manager = new FileManager("swap.png"); manager.verifyAndFetchFileFromServer();
|
manager = new FileManager("swap.png"); manager.verifyAndFetchFileFromServer();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user