|
You last visited: Today at 10:47
Advertisement
[Release]Metin2 Titelsystem (funktionstüchtig)
Discussion on [Release]Metin2 Titelsystem (funktionstüchtig) within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
09/20/2012, 18:02
|
#1
|
elite*gold: 0
Join Date: Sep 2012
Posts: 66
Received Thanks: 25
|
[Release]Metin2 Titelsystem (funktionstüchtig)
Ich bin´s wieder, nachdem ich meine Festplatte durchstöbert habe ist mir
das Titlesystem, welches hier released wurde aufgefallen, nur dass meine
Version vollständig funktionstüchtig ist, so das niemand überlegen muss
und es auch jeder ohne Vorkenntnisse benutzen kann.
Wichtig ist nur, dass ihr es als DLL abspeichert und es dann in als EPX
erneut speichert (Glaube es war Epx .....) z.B.
Titel.dll ----> Titel.epx
Diese fügt ihr dann einfach in den Mainordner eures Clienten´s ein!
Hier die Source der CTitelMain.h (ALSO HEADERDATEI!!!!!)
PHP Code:
#include <Windows.h>
#include <iostream>
#include <list>
#include <detours.h>
#pragma once
#define GuildFlag_Unknown -1
#define GuildFlag_1 1
#define GuildFlag_0 0
using namespace std;
class CTitleMain
{
private:
typedef void (__fastcall * myXAttFType)(int thisp, int a2, char vid, const char *lvltext, int a5);
typedef int (__stdcall * MultiByteToWideChar_Detour_Type)(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar);
static MultiByteToWideChar_Detour_Type MultiByteToWideChar_Orig;
static myXAttFType myXAttForig;
static char CurrPlayerName[50];
static char CurrPlayerName1[50];
typedef struct PlayerTitle
{
string PlayerName;
string TitleName;
unsigned char GuildValue;
unsigned char ShowTitle;
};
static list<PlayerTitle>* TitleList;
static int __stdcall MultiByteToWideChar_Detoured (UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar)
{
if (strlen(lpMultiByteStr) < 50)
{
strncpy(CurrPlayerName1,CurrPlayerName,49);
strncpy(CurrPlayerName,lpMultiByteStr,49);
CurrPlayerName1[50] = 0;
CurrPlayerName[50] = 0;
}
//if (strcmp (lpMultiByteStr,"xSomnusx1000") == 0)
// return MultiByteToWideChar_Orig(CodePage,dwFlags,"xSumnusX1000",cbMultiByte,lpWideCharStr,cchWideChar);
return MultiByteToWideChar_Orig(CodePage,dwFlags,lpMultiByteStr,cbMultiByte,lpWideCharStr,cchWideChar);
}
static void __fastcall myXAttF(int thisp, int a2, char vid, const char *lvltext, int a5)
{
#if MPATCH_DEBUG
//printf("call: %s ; %s \n",CurrPlayerName,CurrPlayerName1);
#endif
list<PlayerTitle>::iterator it;
for (it = TitleList->begin(); it != TitleList->end();it++)
{
if (it->GuildValue != 0)
if (it->PlayerName.compare(CurrPlayerName) == 0)
return MyMethod(it, lvltext, thisp, a2, vid, a5);
if (it->GuildValue != 1)
if (it->PlayerName.compare(CurrPlayerName1) == 0)
return MyMethod(it, lvltext, thisp, a2, vid, a5);
}
////0B9C07B9
myXAttForig(thisp,a2,vid,lvltext,a5); return;
}
static void __fastcall MyMethod( list<PlayerTitle>::iterator it, const char * lvltext, int thisp, int a2, char vid, int a5 )
{
char buf[50];
sprintf(buf, "%s %s",it->TitleName.c_str(),lvltext);
myXAttForig(thisp,a2,vid,(const char*)&buf,a5); return;
}
public:
static void SetTitle(string pPlayerName, string pTitleName)
{
list<PlayerTitle>::iterator it;
for (it = TitleList->begin(); it != TitleList->end(); it++)
{
if (it->PlayerName.compare(pPlayerName) == 0)
{
it->TitleName = pTitleName;
it->GuildValue = GuildFlag_Unknown;
return;
}
}
PlayerTitle title;
title.PlayerName = pPlayerName;
title.TitleName = pTitleName;
TitleList->push_back(title);
}
static void Init()
{
if (myXAttForig == NULL)
myXAttForig = reinterpret_cast<myXAttFType>(DetourFunction((PBYTE) 0x0048C810,(PBYTE)&myXAttF));
if (MultiByteToWideChar_Orig == NULL)
MultiByteToWideChar_Orig = reinterpret_cast<MultiByteToWideChar_Detour_Type>(DetourFunction((PBYTE)&MultiByteToWideChar,(PBYTE)&MultiByteToWideChar_Detoured));
if (TitleList == NULL)
TitleList = new list<PlayerTitle>;
}
};
Und hier der Source der CTitelMain.cpp
PHP Code:
#include "CTitleMain.h"
CTitleMain::MultiByteToWideChar_Detour_Type CTitleMain::MultiByteToWideChar_Orig;
CTitleMain::myXAttFType CTitleMain::myXAttForig;
char CTitleMain::CurrPlayerName[50];
char CTitleMain::CurrPlayerName1[50];
list<CTitleMain::PlayerTitle>* CTitleMain::TitleList;
bool WINAPI DllMain(HINSTANCE hinstDLL, DWORD reason, LPVOID lpReserved)
{
switch(reason)
{
case DLL_PROCESS_ATTACH:
CTitleMain::Init();
CTitleMain::SetTitle("NAME", "|cFFFF0000|H|h EPVPUSER |cFF99CC33");
return TRUE;
case DLL_PROCESS_DETACH:
return TRUE;
}
}
PS: Das ganze wurde mit Microsoft Visual Studio 2010 getestet!
|
|
|
09/20/2012, 18:06
|
#2
|
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
|
Ähm, ich würde gerne wissen, was das denn bringt
MfG
|
|
|
09/20/2012, 18:08
|
#3
|
elite*gold: 0
Join Date: Sep 2012
Posts: 66
Received Thanks: 25
|
Quote:
Originally Posted by load01
Danke.
|
Quote:
Originally Posted by Prusias
Ähm, ich würde gerne wissen, was das denn bringt
MfG
|
Erstmal, dafür gibts nen Button
Und was es dir bringt, ist ein Rang wie EPVPUSER vor der Levelanzeige, also
EPVPUSER Lv. 99 EPVPGILDE Sujino
|
|
|
09/20/2012, 18:13
|
#4
|
elite*gold: 168
Join Date: Feb 2010
Posts: 4,333
Received Thanks: 2,640
|
Nicht deins schreib doch mal den Ersteller rein...
|
|
|
09/20/2012, 18:13
|
#5
|
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
|
 Danke
Noch eine Frage: Wie baut man das ein? Es gibt keinen download. Soll ich einfach ein Textdokument erstellen und das alles einfügen und dann als DLL speichern?
MfG
|
|
|
09/20/2012, 18:16
|
#6
|
elite*gold: 0
Join Date: Sep 2012
Posts: 66
Received Thanks: 25
|
Nein, du brauchst einen Compiler und einen Linker, dann speicherst du es damit als Dll ab
und nennst es dann einfach um.
Ich würde sagen, du nimmst das gleiche Programm wie ich....
Microsoft Visual Studio 2010 Ultimate
|
|
|
09/20/2012, 18:16
|
#7
|
elite*gold: 1300
Join Date: Sep 2008
Posts: 927
Received Thanks: 379
|
Hast du mal den Ersteller (mani) gefragt ob du das releasen darfst?....
Quote:
Originally Posted by Sujino
Ich bin´s wieder, nachdem ich meine Festplatte durchstöbert habe ist mir
das Titlesystem, welches hier released wurde aufgefallen, nur dass meine
Version vollständig funktionstüchtig ist, so das niemand überlegen muss
und es auch jeder ohne Vorkenntnisse benutzen kann.
Wichtig ist nur, dass ihr es als DLL abspeichert und es dann in als EPX
erneut speichert (Glaube es war Epx .....) z.B.
Titel.dll ----> Titel.epx
Diese fügt ihr dann einfach in den Mainordner eures Clienten´s ein!
Hier die Source der CTitelMain.h (ALSO HEADERDATEI!!!!!)
PHP Code:
#include <Windows.h>
#include <iostream>
#include <list>
#include <detours.h>
#pragma once
#define GuildFlag_Unknown -1
#define GuildFlag_1 1
#define GuildFlag_0 0
using namespace std;
class CTitleMain
{
private:
typedef void (__fastcall * myXAttFType)(int thisp, int a2, char vid, const char *lvltext, int a5);
typedef int (__stdcall * MultiByteToWideChar_Detour_Type)(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar);
static MultiByteToWideChar_Detour_Type MultiByteToWideChar_Orig;
static myXAttFType myXAttForig;
static char CurrPlayerName[50];
static char CurrPlayerName1[50];
typedef struct PlayerTitle
{
string PlayerName;
string TitleName;
unsigned char GuildValue;
unsigned char ShowTitle;
};
static list<PlayerTitle>* TitleList;
static int __stdcall MultiByteToWideChar_Detoured (UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar)
{
if (strlen(lpMultiByteStr) < 50)
{
strncpy(CurrPlayerName1,CurrPlayerName,49);
strncpy(CurrPlayerName,lpMultiByteStr,49);
CurrPlayerName1[50] = 0;
CurrPlayerName[50] = 0;
}
//if (strcmp (lpMultiByteStr,"xSomnusx1000") == 0)
// return MultiByteToWideChar_Orig(CodePage,dwFlags,"xSumnusX1000",cbMultiByte,lpWideCharStr,cchWideChar);
return MultiByteToWideChar_Orig(CodePage,dwFlags,lpMultiByteStr,cbMultiByte,lpWideCharStr,cchWideChar);
}
static void __fastcall myXAttF(int thisp, int a2, char vid, const char *lvltext, int a5)
{
#if MPATCH_DEBUG
//printf("call: %s ; %s \n",CurrPlayerName,CurrPlayerName1);
#endif
list<PlayerTitle>::iterator it;
for (it = TitleList->begin(); it != TitleList->end();it++)
{
if (it->GuildValue != 0)
if (it->PlayerName.compare(CurrPlayerName) == 0)
return MyMethod(it, lvltext, thisp, a2, vid, a5);
if (it->GuildValue != 1)
if (it->PlayerName.compare(CurrPlayerName1) == 0)
return MyMethod(it, lvltext, thisp, a2, vid, a5);
}
////0B9C07B9
myXAttForig(thisp,a2,vid,lvltext,a5); return;
}
static void __fastcall MyMethod( list<PlayerTitle>::iterator it, const char * lvltext, int thisp, int a2, char vid, int a5 )
{
char buf[50];
sprintf(buf, "%s %s",it->TitleName.c_str(),lvltext);
myXAttForig(thisp,a2,vid,(const char*)&buf,a5); return;
}
public:
static void SetTitle(string pPlayerName, string pTitleName)
{
list<PlayerTitle>::iterator it;
for (it = TitleList->begin(); it != TitleList->end(); it++)
{
if (it->PlayerName.compare(pPlayerName) == 0)
{
it->TitleName = pTitleName;
it->GuildValue = GuildFlag_Unknown;
return;
}
}
PlayerTitle title;
title.PlayerName = pPlayerName;
title.TitleName = pTitleName;
TitleList->push_back(title);
}
static void Init()
{
if (myXAttForig == NULL)
myXAttForig = reinterpret_cast<myXAttFType>(DetourFunction((PBYTE) 0x0048C810,(PBYTE)&myXAttF));
if (MultiByteToWideChar_Orig == NULL)
MultiByteToWideChar_Orig = reinterpret_cast<MultiByteToWideChar_Detour_Type>(DetourFunction((PBYTE)&MultiByteToWideChar,(PBYTE)&MultiByteToWideChar_Detoured));
if (TitleList == NULL)
TitleList = new list<PlayerTitle>;
}
};
Und hier der Source der CTitelMain.cpp
PHP Code:
#include "CTitleMain.h"
CTitleMain::MultiByteToWideChar_Detour_Type CTitleMain::MultiByteToWideChar_Orig;
CTitleMain::myXAttFType CTitleMain::myXAttForig;
char CTitleMain::CurrPlayerName[50];
char CTitleMain::CurrPlayerName1[50];
list<CTitleMain::PlayerTitle>* CTitleMain::TitleList;
bool WINAPI DllMain(HINSTANCE hinstDLL, DWORD reason, LPVOID lpReserved)
{
switch(reason)
{
case DLL_PROCESS_ATTACH:
CTitleMain::Init();
CTitleMain::SetTitle("NAME", "|cFFFF0000|H|h EPVPUSER |cFF99CC33");
return TRUE;
case DLL_PROCESS_DETACH:
return TRUE;
}
}
PS: Das ganze wurde mit Microsoft Visual Studio 2010 getestet!
|
|
|
|
09/20/2012, 18:20
|
#8
|
elite*gold: 0
Join Date: Sep 2012
Posts: 66
Received Thanks: 25
|
Das ist nicht das von Mani (kenne ihn nichtmal), das ist meine Vollständige Version, welche
ich aus dem Teil gebastelt habe, was hier mal jemand released hat.
|
|
|
09/20/2012, 18:24
|
#9
|
elite*gold: 0
Join Date: Jul 2012
Posts: 107
Received Thanks: 143
|
Das Titelsystem was hier bereits released wurde ist das von 'mani' (xManix1000)
|
|
|
09/20/2012, 18:30
|
#10
|
elite*gold: 0
Join Date: Sep 2012
Posts: 66
Received Thanks: 25
|
Achso...
Habe es auch nur jetzt Released, da seine Version nicht vollständig ist, wie sie hier released wurde....
Könnte jemand dann in meinem Namen Mani fragen, ob dieser Thread so okey ist, da
es auf meiner Ausarbeitung beruht und auf seiner puplished Grundlage.
|
|
|
09/20/2012, 18:56
|
#11
|
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
|
Mach lieber ein Tutorial zum einfügen.
|
|
|
09/20/2012, 19:06
|
#12
|
elite*gold: 20
Join Date: Jun 2011
Posts: 2,901
Received Thanks: 3,341
|
Quote:
Originally Posted by DasSchwarzeT
Mach lieber ein Tutorial zum einfügen.
|
Kennsu Lesen?
OO er erklärt es doch oO
@ Tread: ned schlecht, nur geht dasselbe in py fast sogar einfacher ^^
|
|
|
09/20/2012, 19:13
|
#13
|
elite*gold: 831
Join Date: Jun 2011
Posts: 1,784
Received Thanks: 986
|
lol, nice
#thanks
|
|
|
09/20/2012, 19:23
|
#14
|
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
|
Quote:
Originally Posted by xCPx
Kennsu Lesen?
OO er erklärt es doch oO
@ Tread: ned schlecht, nur geht dasselbe in py fast sogar einfacher ^^
|
Naja ich meine ein richtiges Tutorial.. Nicht so in 2 Sätzen dahingeklatscht!
|
|
|
09/20/2012, 19:35
|
#15
|
elite*gold: 0
Join Date: Sep 2012
Posts: 66
Received Thanks: 25
|
Viel mehr gibt es dazu nicht zusagen.....
Und in Py ist es zwar möglich kostet aber Leistung und mit den Befehl zum
Namen ändern, welcher dir wohl bekannt sein wird, änderst du den Namen
nur für dich und nicht für andere, falls du darauf anspielen willst.
|
|
|
 |
|
Similar Threads
|
[Zwang-Release]Titelsystem V1
07/17/2012 - Metin2 PServer Guides & Strategies - 91 Replies
Hallo Epvp,
Da nun das Titelsystem von Istaria nachgecodet wurde von Passy305, werd ich nun Titelsystem V1 Releasen.
Es wurde alles in c++ geschrieben & Ihr werdet nur die c++ Datei erhalten.
Den Rest, wie man es einfügt usw. müsst ihr selber herausfinden, da es nur ein Zwangrelease ist & kein normaler Release.
Hersteller: xManix1000
Eigentümer: xSomnusx1000
Nutzung des Servers : Istaria
|
777 Titelsystem
01/30/2012 - Last Chaos - 6 Replies
hi wollte fragen wie ich schneeflocke von lakin werden kann in 777 da steht nur im guide das man 1.500.000 punkte im tarian sammelsystem haben muss , aber muss ich mich da irgendwo anmelden? wo sind die punkte die ich schon habe
und wegen Gut/böse titel was bringt es genau wenn ich 32.000 punkte + im pvp system habe was bringt das in pvp?
danke für alle antw kriegt auchn thanks wenns gute sind
|
Metin2 Moblock noch funktionstüchtig?
12/28/2011 - Metin2 - 15 Replies
Hallo,
Wie ihr ja alle schon bemerkt habt ist es dank Crank wieder möglich in Metin2 zu hacken :D . Ich habe auch schon viele Hacks etc. wieder aber ich finde keinen gescheiten Moblock...
Meine Frage ist jetzt also:
Ob ihr wisst ob es noch einen funtionierenden Moblock gibt oder Mobberhack etc.??
thx im vorraus :D :handsdown:
|
make.sh nicht funktionstüchtig
03/07/2011 - Metin2 PServer Guides & Strategies - 7 Replies
hey com,
Ich wollte gerade die Willkommensnachricht ändern
und dazu muss man ja make.sh befehl in Vp ausführen aber der befehl geht bei mir nicht
ich benutze die serverfiles von profizocker v1
Pls help me :)
|
Verkaufe Xbox 360 [Funktionstüchtig]
03/22/2010 - Consoles Trading - 14 Replies
Da ich umziehe brauch ich meine Xbox 360 nichtmehr und würde sie hier verkauen für angebote. Nehme bei einem GUTEN angebot auch Guild Wars Ektos. Aber Euro wären um jeden fall besser.
|
All times are GMT +1. The time now is 10:49.
|
|