-
Item Data Dump Method
Sorry its so long, I made it too quick to put any effort into making it more efficient, it works.
Make a new folder where all the client files are named: ItemData
Client.java:
Code:
public void dumpItemData(int i) {
ItemDef itemDef = ItemDef.forID(i);
BufferedWriter itemFile = null;
try {
itemFile = new BufferedWriter(new FileWriter("./ItemData/" + i + ".txt"));
itemFile.write("case ", 0, 5);
itemFile.write(Integer.toString(i) + ":", 0, Integer.toString(i).length() + 1);
itemFile.newLine();
itemFile.write(" itemDef.name = ", 0, 16);
itemFile.write("\"" + itemDef.name + "\";", 0, itemDef.name.length() + 4);
itemFile.newLine();
itemFile.write(" itemDef.description = ", 0, 23);
itemFile.write("\"" + itemDef.name + ".\".getBytes();", 0, itemDef.name.length() + 15);
itemFile.newLine();
itemFile.write(" itemDef.actions = new String[5];", 0, 33);
itemFile.newLine();
itemFile.write(" itemDef.actions[1] = \"", 0, 23);
itemFile.write(itemDef.actions[1] + "\";", 0, itemDef.actions[1].length() + 2);
itemFile.newLine();
itemFile.write(" itemDef.modelID = ", 0, 19);
itemFile.write(Integer.toString(itemDef.modelID) + ";", 0, Integer.toString(itemDef.modelID).length() + 1);
itemFile.newLine();
itemFile.write(" itemDef.maleEquip1 = ", 0, 22);
itemFile.write(Integer.toString(itemDef.maleEquip1) + ";", 0, Integer.toString(itemDef.maleEquip1).length() + 1);
itemFile.newLine();
itemFile.write(" itemDef.maleEquip2 = ", 0, 22);
itemFile.write(Integer.toString(itemDef.maleEquip2) + ";", 0, Integer.toString(itemDef.maleEquip2).length() + 1);
itemFile.newLine();
itemFile.write(" itemDef.femaleEquip1 = ", 0, 24);
itemFile.write(Integer.toString(itemDef.femaleEquip1) + ";", 0, Integer.toString(itemDef.femaleEquip1).length() + 1);
itemFile.newLine();
itemFile.write(" itemDef.femaleEquip2 = ", 0, 24);
itemFile.write(Integer.toString(itemDef.femaleEquip2) + ";", 0, Integer.toString(itemDef.femaleEquip2).length() + 1);
itemFile.newLine();
itemFile.write(" itemDef.modelZoom = ", 0, 21);
itemFile.write(Integer.toString(itemDef.modelZoom) + ";", 0, Integer.toString(itemDef.modelZoom).length() + 1);
itemFile.newLine();
itemFile.write(" itemDef.modelRotation1 = ", 0, 26);
itemFile.write(Integer.toString(itemDef.modelRotation1) + ";", 0, Integer.toString(itemDef.modelRotation1).length() + 1);
itemFile.newLine();
itemFile.write(" itemDef.modelRotation2 = ", 0, 26);
itemFile.write(Integer.toString(itemDef.modelRotation2) + ";", 0, Integer.toString(itemDef.modelRotation2).length() + 1);
itemFile.newLine();
itemFile.write(" itemDef.modelOffset1 = ", 0, 24);
itemFile.write(Integer.toString(itemDef.modelOffset1) + ";", 0, Integer.toString(itemDef.modelOffset1).length() + 1);
itemFile.newLine();
itemFile.write(" itemDef.modelOffset2 = ", 0, 24);
itemFile.write(Integer.toString(itemDef.modelOffset2) + ";", 0, Integer.toString(itemDef.modelOffset2).length() + 1);
itemFile.newLine();
itemFile.write(" itemDef.anInt204 = ", 0, 20);
itemFile.write(Integer.toString(itemDef.anInt204) + ";", 0, Integer.toString(itemDef.anInt204).length() + 1);
itemFile.newLine();
itemFile.write(" break;", 0, 7);
itemFile.close();
} catch (Exception e) {
System.out.println("Failed to write item data");
}
}
Find 'if(inputString.equals("::clientdrop"))', above that, add:
Code:
if(inputString.startsWith("::dumpdata")) {
String[] args = inputString.split(" ");
if (args.length == 2) {
int itemDumpID = Integer.parseInt(args[1]);
dumpItemData(itemDumpID);
pushMessage("Dumped data for item " + itemDumpID + ".", 0, "");
}
}
Use it as ::dumpdata #### in game. For example ::dumpdata 4087 will dump the item data for dragon platelegs into a text file.
It dumps it like this in the text file:
Code:
case 1331:
itemDef.name = "Adamant scimitar";
itemDef.description = "Adamant scimitar.".getBytes();
itemDef.actions = new String[5];
itemDef.actions[1] = "Wield";
itemDef.modelID = 2373;
itemDef.maleEquip1 = 490;
itemDef.maleEquip2 = -1;
itemDef.femaleEquip1 = 490;
itemDef.femaleEquip2 = -1;
itemDef.modelZoom = 1180;
itemDef.modelRotation1 = 300;
itemDef.modelRotation2 = 1120;
itemDef.modelOffset1 = -6;
itemDef.modelOffset2 = 4;
itemDef.anInt204 = 0;
break;
-
-
Very nice, Will be using this! Thanks Galkon
-
simple but effective, dont need it though, not gona use customs but thanks anyway
-
I get this error:
Code:
client.java:138: modelID has private access in ItemDef
itemFile.write(Integer.toString(itemDef.modelID) + ";", 0, Integer.t
oString(itemDef.modelID).length() + 1);
^
client.java:138: modelID has private access in ItemDef
itemFile.write(Integer.toString(itemDef.modelID) + ";", 0, Integer.t
oString(itemDef.modelID).length() + 1);
^
client.java:141: maleEquip1 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.maleEquip1) + ";", 0, Intege
r.toString(itemDef.maleEquip1).length() + 1);
^
client.java:141: maleEquip1 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.maleEquip1) + ";", 0, Intege
r.toString(itemDef.maleEquip1).length() + 1);
^
client.java:144: maleEquip2 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.maleEquip2) + ";", 0, Intege
r.toString(itemDef.maleEquip2).length() + 1);
^
client.java:144: maleEquip2 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.maleEquip2) + ";", 0, Intege
r.toString(itemDef.maleEquip2).length() + 1);
^
client.java:147: femaleEquip1 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.femaleEquip1) + ";", 0, Inte
ger.toString(itemDef.femaleEquip1).length() + 1);
^
client.java:147: femaleEquip1 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.femaleEquip1) + ";", 0, Inte
ger.toString(itemDef.femaleEquip1).length() + 1);
^
client.java:150: femaleEquip2 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.femaleEquip2) + ";", 0, Inte
ger.toString(itemDef.femaleEquip2).length() + 1);
^
client.java:150: femaleEquip2 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.femaleEquip2) + ";", 0, Inte
ger.toString(itemDef.femaleEquip2).length() + 1);
^
client.java:162: modelOffset1 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.modelOffset1) + ";", 0, Inte
ger.toString(itemDef.modelOffset1).length() + 1);
^
client.java:162: modelOffset1 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.modelOffset1) + ";", 0, Inte
ger.toString(itemDef.modelOffset1).length() + 1);
^
client.java:165: modelOffset2 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.modelOffset2) + ";", 0, Inte
ger.toString(itemDef.modelOffset2).length() + 1);
^
client.java:165: modelOffset2 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.modelOffset2) + ";", 0, Inte
ger.toString(itemDef.modelOffset2).length() + 1);
^
client.java:168: anInt204 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.anInt204) + ";", 0, Integer.
toString(itemDef.anInt204).length() + 1);
^
client.java:168: anInt204 has private access in ItemDef
itemFile.write(Integer.toString(itemDef.anInt204) + ";", 0, Integer.
toString(itemDef.anInt204).length() + 1);
^
16 errors
Press any key to continue . . .
I'm using your client.
-
Change the private variables to public?..
-
-
My cmd box gives me error dumping data.
-
-