Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 21:08

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C++] Metin2 Klasse

Discussion on [C++] Metin2 Klasse within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
xWaffeleisen's Avatar
 
elite*gold: 320
Join Date: Oct 2009
Posts: 697
Received Thanks: 1,643
[C++] Metin2 Klasse

HeyHo,

ich hab hier mal eine bis jetzt noch sehr kurze, aber trotzdem sehr sinnvolle Metin2 Klasse für C++ gemacht.
Mithilfe dieser Klasse kann man einfach Items "benutzen" d.h. z.B ein Schwert anzuziehen oder einen Trank zu trinken. Außerdem kann man einfach Items fallen lassen und den Druck der Leertaste simulieren um z.B. zu schlagen oder die Angel hinein zuwerfen oder heraus zuziehen.
Weitere Funktionen folgen noch.

Metin2.h:
Metin2.cpp:


Und hier noch ein kleines Beispiel (main.cpp):

Erstellt und getestet mit Visual Studio 2008.
Projekttyp: Win32 Projekt / DLL
Sollte auch mit VC++ Express gehen. Bei anderen Compilern muss man evtl. paar Sachen umschreiben.

Die DLL muss dann in den Metin2 Prozess injected werden (z.B mit Winject, PerX, OSI)

Wer Fragen hat, kann die gerne hier posten

Have fun

PS: Um die Adressen zu finden (für andere Versionen oder neuere) schaut euch mein Video Tutorial an ()

EDIT: Neue Funktionen hinzugefügt
xWaffeleisen is offline  
Thanks
20 Users
Old 03/01/2010, 21:45   #2
 
Tohu's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 1,107
Received Thanks: 522
nicht schlecht, ist für anfänger (wie mich) schon eine große hilfe bzw. erleichterung^^
Tohu is offline  
Old 03/02/2010, 01:24   #3
 
elite*gold: 0
Join Date: May 2008
Posts: 489
Received Thanks: 210
Lies 'mal was über Klassendesign. Ist ja grauenhaft.
schlurmann is offline  
Thanks
1 User
Old 03/02/2010, 07:13   #4
 
flo8464's Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 161
Received Thanks: 38
Functionpointer > inline ASM

Und Addressen lagert man besser in ein enum aus, warum den Speicher dafür vollmüllen?
flo8464 is offline  
Old 03/02/2010, 17:23   #5
 
xWaffeleisen's Avatar
 
elite*gold: 320
Join Date: Oct 2009
Posts: 697
Received Thanks: 1,643
Quote:
Originally Posted by schlurmann View Post
Lies 'mal was über Klassendesign. Ist ja grauenhaft.
Joa ist meine 1. Klasse^^ Ich mach C++ auch noch nicht so lange, aber was meinste mit Design? Die Anordnung oder wie?

Quote:
Originally Posted by flo8464 View Post
Functionpointer > inline ASM

Und Addressen lagert man besser in ein enum aus, warum den Speicher dafür vollmüllen?

Joa siehe oben, muss ich mich mal besser darin einarbeiten ^^
xWaffeleisen is offline  
Old 03/02/2010, 17:29   #6
 
Xereon's Avatar
 
elite*gold: 0
Join Date: Apr 2009
Posts: 793
Received Thanks: 366
Quote:
Originally Posted by xWaffeleisen View Post
Joa ist meine 1. Klasse^^
Ist das dein Ernst? o.O
Xereon is offline  
Old 03/02/2010, 17:31   #7
 
xWaffeleisen's Avatar
 
elite*gold: 320
Join Date: Oct 2009
Posts: 697
Received Thanks: 1,643
Ähm ja
Hab erst jetzt angefangen mich mit Klassen zu beschäftigen. Ich hab vor nichtmal einem halben Jahr angefangen und hab noch nicht besonders viel gemacht (Grundlagen von C eben).
xWaffeleisen is offline  
Old 03/02/2010, 17:50   #8


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Ähm...nimm doch gleich ne struct, wenn du eh alles public machst.
Und wie schlurmann schon sagte, lies mal erst was übers design nach
Eine klasse versteckt ihre Implementation.
So ist das wie gesagt nur ne struct und structs nutzt man eher für datensätze.

Wenn du noch nie eine klasse geschrieben hast, dann lern es doch erst richtig, bevor du eine released.
Das ist ein Vorteil von Büchern, gegenüber Tutorials: Sie vermitteln normalerweise einen guten Stil

edit: mit Design ist der Aufbau gemeint.
Bei einer Klasse macht man wie gesagt nicht alles public!

normalerweise gibts Methoden, mit denen man Werte setzt oder ausgibt:

Code:
class foo
{
int x;
};

foo f;
f.x = 1;
schlechte klasse

bessere:

Code:
class foo
{
int x;

int getX();
void setX(int i);
};

foo f;
f.setX(1);
}
natürlich müssten die methoden erst implementiert werden
MrSm!th is offline  
Old 03/02/2010, 18:14   #9
 
xWaffeleisen's Avatar
 
elite*gold: 320
Join Date: Oct 2009
Posts: 697
Received Thanks: 1,643
Quote:
Originally Posted by MrSm!th View Post
Ähm...nimm doch gleich ne struct, wenn du eh alles public machst.
Und wie schlurmann schon sagte, lies mal erst was übers design nach
Eine klasse versteckt ihre Implementation.
So ist das wie gesagt nur ne struct und structs nutzt man eher für datensätze.

Wenn du noch nie eine klasse geschrieben hast, dann lern es doch erst richtig, bevor du eine released.
Das ist ein Vorteil von Büchern, gegenüber Tutorials: Sie vermitteln normalerweise einen guten Stil

edit: mit Design ist der Aufbau gemeint.
Bei einer Klasse macht man wie gesagt nicht alles public!

normalerweise gibts Methoden, mit denen man Werte setzt oder ausgibt:

Code:
class foo
{
int x;
};

foo f;
f.x = 1;
schlechte klasse

bessere:

Code:
class foo
{
int x;

int getX();
void setX(int i);
};

foo f;
f.setX(1);
}
natürlich müssten die methoden erst implementiert werden
Achso ja daran hab ich auch schon gedacht. Hab jetzt eben erstmal alles public gemacht aber besser wäre ja dann hier ne Funktion z.B SetUseItemAddr(Addr1, Addr2, Addr3) oder?

Muss ich alles mal noch überarbeiten, wenn ich Zeit habe^^
xWaffeleisen is offline  
Old 03/02/2010, 19:22   #10


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Originally Posted by xWaffeleisen View Post
Achso ja daran hab ich auch schon gedacht. Hab jetzt eben erstmal alles public gemacht aber besser wäre ja dann hier ne Funktion z.B SetUseItemAddr(Addr1, Addr2, Addr3) oder?

Muss ich alles mal noch überarbeiten, wenn ich Zeit habe^^
wie gesagt, für adressen eine enum

ich würde für die paar funktionen gar keine klasse nehmen
lieber typdefs für funktionspointer und dann ruft man die funktion so auf^^
MrSm!th is offline  
Old 03/02/2010, 21:34   #11
 
flo8464's Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 161
Received Thanks: 38
Also statt

Code:
void Metin2::PickUp(void)
{
	DWORD Addr1 = this->dwPickUpAddr1;
	DWORD Addr2 = this->dwPickUpAddr2;

	__asm
	{
		MOV EAX, Addr2
		MOV ECX,DWORD PTR DS:[EAX]
		CALL Addr1
	}
}
Einfach ein (Ich gehe mal davon aus, dass das ein Fastcall ist, sieht so aus)

Code:
enum MetinStaticAddresses
{
    METIN_PICKUP1 = 0xDEADBEEF,
    METIN_PICKUP2 = 0xDEADBEEF
};

void PickUp()
{
    typedef void (__fastcall *PickUpPtr)(DWORD arg);
    PickUpPtr fPickUp = reinterpret_cast<PickUpPtr>(METIN_PICKUP1);

    fPickUp(*reinterpret_cast<DWORD*>(METIN_PICKUP2));
}
Voila, das Ganze ist deutlich sicherer.
flo8464 is offline  
Thanks
1 User
Old 03/04/2010, 19:48   #12
 
elite*gold: 18
Join Date: Dec 2009
Posts: 3,016
Received Thanks: 404
lol verstehe nicht was das genau sein soll
XxxXHakanXxxX is offline  
Old 03/04/2010, 23:14   #13
 
flo8464's Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 161
Received Thanks: 38
Quote:
Originally Posted by XxxXHakanXxxX View Post
lol verstehe nicht was das genau sein soll
Mein Code?
flo8464 is offline  
Old 03/16/2010, 15:51   #14
 
elite*gold: 0
Join Date: Mar 2010
Posts: 365
Received Thanks: 40
wo kommt das rein?^^
.Kartoffel is offline  
Old 03/16/2010, 17:35   #15


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Originally Posted by 05JUMPER09 View Post
wo kommt das rein?^^
wenn du das nicht weißt, kannst dus eh nicht nutzen
MrSm!th is offline  
Reply

Tags
c++, metin2


Similar Threads Similar Threads
[C++]Funktion einer Klasse in einer anderen Funktion der Klasse verwenden, aber wie?
07/25/2010 - C/C++ - 3 Replies
Mein Problem ist eigentlich recht simpel und die Lösung wahrscheinlich auch. Da ich bisher fast 0 mit Klassen am Hut hatte, wollte ich mich doch mit dem Thema anfreunden und hatte gleich angefangen: int test::Funktion2() { int temp; cin>>temp; return temp; }
Welche Klasse ist die Beste Klasse
07/06/2010 - Metin2 - 6 Replies
Hallo ich habe heute mal angefangen Metin 2 angefangen und wollte fragen welche klasse ist die beste meine Vorstellung Menge Deff Wird Mich freuen auf Antwort
[Metin2.de]Klasse
06/13/2010 - Metin2 Private Server - 7 Replies
Hallo, ich wollte gerne erfahren, welche der 4 Klassen die beste im,: Leveln und im PvP sind.. Also ich denke an Ninja oder Krieger.. Heil Schamanen sind natürlich auch PvP bomben.. Was denkt ihr wenn ich alleine oder mit einem Freund spiele?.. Thanks 100% Garantiert
LVL/Name/Klasse in Metin2
04/01/2010 - Metin2 - 6 Replies
Mein Char: LvL:14 Name:xProBuffx Klasse:Schamane Schreibt doch euren sachen auch rein..:)



All times are GMT +1. The time now is 21:08.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.