One thing this community lacks is creativity and originality of their own codes.. and I aint talking about custom items and crap.
There is way too much relying on others to create work and releasing..
If there is anyone here that deserves any credit for originality of code it would be Graham.
I'll change the way you guys think just a little, catch on...
Every revision of clients and cache is that of the exact same game... Yes? of course.
ok so why do people create completely new servers or ditch their old projects to move onto another revision? lack of creativity, originality aka IQ, not hating on anyone, its just how it is,
think outside the box.
For example if you are working on a 525 and you decide you want to make a 194 project with the legit client. There is no need to create a new server.
You will need to make changes and some of the server code layout, but that is all, and you only need to do it once, and you have full convertability for all revisions...
think sort of like this. (There are many ways to write the same codes, this is just an example)
Code:
public ActionSender showInterface(int id) {
switch(Misc.gameVersion) {
case 194:
PacketBuilder bldr = new PacketBuilder(137);
bldr.putShort(id);
player.getInterfaceState().interfaceOpened(id);
player.interfaceId = id;
break;
case 289:
bldr = new PacketBuilder(119);
bldr.putShort(id);
bldr.putByte(0);
player.write(bldr.toPacket());
player.getInterfaceState().interfaceOpened(id);
player.interfaceId = id;
return this;
case 459:
player.getInterfaceState().interfaceOpened(id);
player.interfaceId = id;
player.write(new PacketBuilder(192).putLEShort(id).toPacket());
return this;
case 525:
if(id > 833) {
this.sendMessage("Interface ID was too high please fix!");
} else {
closeInterfaces();
if(player.getHdType() < 2) {
sendGameInterface_HD(0, 548, 11, id);
} else {
if(player.getHdType() == 1) {
sendGameInterface_HD(0, 746, 6, id);//8
sendGameInterface_HD(0, 746, 11, id);//8
} else {
if(getHDInterfaceScreenSize(id) >= 0) {
sendGameInterface_HD(0, 746, getHDInterfaceScreenSize(id), id);//8
} else {
sendGamePane_HD(id);
}
}
}
player.chatboxInterfaceId = -1;
}
return this;
case 317:
player.getInterfaceState().interfaceOpened(id);
player.write(new PacketBuilder(97).putShort(id).toPacket());
player.interfaceId = id;
return this;
Well that solves the packet problem, what about npcs, emotes, items, gfx everything that changes through the revisions?
Alright you have a few options, dump the data and create matches, easy, but more advanced.
You don't need to be that advanced.
you can create a code as simple as this. ( just an example, it can be done many different ways..)
Code:
public static int getEmote(int id) {
switch(Misc.gameVersion) {
case any revision over 234+:
switch(id) {
case 2846: return -1; //Dragon Axe
case 867: return 604; //Rune Axe
case 869: return 606; //Adamant Axe
case 871: return 608; //Mithril Axe
case 873: return 610; //Black Axe
case 875: return 612; //Steel Axe
case 877: return 614; //Iron Axe
case 879: return 616; //Bronze Axe
//case 457 potentially resting in bed
//case 458 getting off bed
//case 459 potentially resting in bed
//case 460 getting off bed
//case dance return 461;
//case walking: return 463;
//case walking: return 464;
//case sidestep:return 465;
//case sidestep:return 466;
//case running:return 467;
case 397: return 470;//getting hit // guards and normal
//getting hit return 471; //getting hit
that basically converts your 234+ emotes to a 186-194 etc..
No need for a completely new server for this.
ok well thats just emotes, the other stuff is tricky isnt it?? NO
it is not..
heres a basic 194 item conversion.. (this covers most, items not perfect tweak where needed)
Code:
public static int betaItem(int id) {
for(int i = 0; i < 1407; i++) {
if(World.getItemName(id).startsWith(World.getItemName194(i))) {
return i;
}
easy right? don't create a whole new server just to change revisions...
well what about packet sizes and whatever..
Exactally the same thing.. (can be done a number of ways, but here is an example)
This doesn't need to be done with numbers either, you can have it auto detect what is being used.
Code:
public static final int PacketSize(int packet) {
if(Misc.gameVersion == 289) {
return PACKET_SIZES_289[packet];
} else
if(Misc.gameVersion == 317) {
return PACKET_SIZES_317[packet];
} else
if(Misc.gameVersion == 509) {
return PACKET_SIZES_509[packet];
} else
if(Misc.gameVersion == 194) {
return PACKET_SIZES_194[packet];
} else
if(Misc.gameVersion == 195) {
return PACKET_SIZES_195[packet];
} else
if(Misc.gameVersion == 459) {
return PACKET_SIZES_459[packet];
} else
if(Misc.gameVersion == 464) {
return PACKET_SIZES_464[packet];
} else
if(Misc.gameVersion == 474) {
return PACKET_SIZES_474[packet];
} else
if(Misc.gameVersion == 525) {
return PACKET_SIZES_525[packet];
do this everywhere where needed and wow you have multiple clients working on same server...
These are the exact same server, nothing changed, legit clients not look alike.
Attachment 4925
Attachment 4926
Attachment 4927
I can have a calandar and put every date on it, and you can choose any date, and it will load the game almost exact to how it was that very day.
Hopefully people will stop restarting their servers development to change revs.
There is not a need to respond here, I dont want to see your dumb or smart ass responses,
just take what I said and think for your self.
I am in no obligation to help any one think or contribute cache or any information, I just want to start seeing people here evolve a bit c'mon it's 2023.
there may or may not be a very easy way to obtain any full cache you want, (not from grahams rs2 archive) Im very surprised no one has
been able to figure out how to obtain these, not hard.
think outside the box on everything and you can do anything. Just know NOTHING is impossible with coding, you just need to be smart.
When I release my data in the future I hope to change the way everyone can think and open their brains and help the evolution of all future servers here, there is no reason for there not to be a fully completed server with all quests, all revisions, all data in 2023 (which brings me back to the point that there is way too much relying on other peoples work, think for your self and things will get done).
please close this thread and leave the text up.