GM_MOB_SPAWN

08/09/2014 22:24 soly95#1
Enough of this Drama, and here is a real job to start from instead of depending on others :-

only few know what is this

Code:
struct MSG_CTRL_MONSTER_SPAWN
{
	_sHeader			header;
	u_char				ucMessage;

	short				sMobType;			// ¼ÒȯÇÒ ¸ó½ºÅÍ Å¸ÀÔ

	float				fX;
	float				fZ;

	char				cNumber;			// ¼ÒȯÇÒ ¸¶¸®¼ö : ÃÖ´ë 24
others learn how to make this work, you might be able to run a Server like a real GM someday :cool: xD
08/09/2014 22:48 Adek#2
So, what about that simple C struct?

PS. Why didn't you post it on RZone? Or did I just miss that thing?
08/09/2014 23:05 soly95#3
cause RZ is dead.
08/09/2014 23:16 Adek#4
Quote:
Originally Posted by soly95 View Post
cause RZ is dead.
But there are more people who knows SOMETHING about things like that. I guess no more than 4-5 people here can at least understand what's included in that structure. And same: no more than 10 people here know, what the f... is struct and what language it is.
08/10/2014 09:55 Adek#5
Quote:
Originally Posted by xtJamie View Post
The language is C++ and a struct is a data structure which basically means a bunch of things grouped together as members and each member has its own length and type.

In the above code Soly posted, the struct is being declared as "MSG_CTRL_MONSTER_SPAWN" and has a series of elements grouped inside of it. The elements look like the header which means it is visible to the other .cpp files using it and then a series of types.

So we are declaring a struct called "MSG_CTRL_MONSTER_SPAWN" and the variables are listed under as short, float and char.

This snippet looks like you are spawning a mob using the variable (members) by including the char name, the type of mob and then the id of the mobs but don't hold me on that.
it also could be C imo.

And I didn't tell YOU can't understand, but only a few can do it.

Don't forget about 'fX' and 'fZ' variables. I guess these are coords. :rolleyes:
08/10/2014 12:04 [Arceus]#6
Thanks for sharing bro. Got to look into this after my exams.
08/10/2014 12:17 soly95#7
Code:
struct _sHeader
{
	u_short	sLength : 12;		// -2048 - 2047
	u_short	sCrypto : 2;		// 0 : false, ³ª¸ÓÁö´Â true
	u_short	sCompressed : 2;	// 0 : flase, ³ª¸ÓÁö´Â true
	
	_sHeader() {}
	_sHeader(u_short len) : sLength(len), sCrypto(0), sCompressed(0) {}
};
08/11/2014 13:17 9D_player#8
What's more interesting for people who don't run their own server will be the actual packet with this message, so it could be injected :D That way if someone has a table with mob IDs, he can spawn himself whatever he likes
08/11/2014 14:23 soly95#9
Quote:
Originally Posted by 9D_player View Post
What's more interesting for people who don't run their own server will be the actual packet with this message, so it could be injected :D That way if someone has a table with mob IDs, he can spawn himself whatever he likes
Mob's ID is easy to get :).

but i doubt any one but few can build a packet out of this code.

this code is just a tip on how to build a Mob spawn packet but rest of the job depends on packet analyzing, how 9Dragons packet structure looks like
08/11/2014 15:15 Adek#10
Quote:
Originally Posted by soly95 View Post
Mob's ID is easy to get :).

but i doubt any one but few can build a packet out of this code.

this code is just a tip on how to build a Mob spawn packet but rest of the job depends on packet analyzing, how 9Dragons packet structure looks like
Nice idea. Why won't we try?
08/11/2014 15:29 soly95#11
Quote:
Originally Posted by adek1994 View Post
Nice idea. Why won't we try?
Go ahead.
08/11/2014 17:18 Luis Fernando Lopez#12
Maybe once we're gonna be able to play on GM accounts.
08/12/2014 08:11 9D_player#13
Quote:
Originally Posted by soly95 View Post
Mob's ID is easy to get :).

but i doubt any one but few can build a packet out of this code.

this code is just a tip on how to build a Mob spawn packet but rest of the job depends on packet analyzing, how 9Dragons packet structure looks like
You won't build a packet from scratch. I used to have tons of material collected back when I made my injector. The only thing to be aware is the command counter. Else one can get most of the packets easily (wireshark is the easiest method) and using something like a middle-server can duplicate and inject them. Problem is that most of the time one gets DC, because of the collision with packets sent and expected from the server.
09/02/2014 21:12 bogdy18#14
[Only registered and activated users can see links. Click Here To Register...]
^Monster Manage... That's the part of the source that is/was responsable for spawning mobs