Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server > Metin2 PServer Guides & Strategies
You last visited: Today at 10:47

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

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.

Reply
 
Old   #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 thispint a2char vid, const char *lvltextint a5);
    
typedef int  (__stdcall MultiByteToWideChar_Detour_Type)(UINT CodePageDWORD dwFlagsLPCSTR lpMultiByteStrint cbMultiByteLPWSTR lpWideCharStrint 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 CodePageDWORD dwFlagsLPCSTR lpMultiByteStrint cbMultiByteLPWSTR lpWideCharStrint 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 thispint a2char vid, const char *lvltextint 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(itlvltextthispa2vida5);

            if (
it->GuildValue != 1)
                if (
it->PlayerName.compare(CurrPlayerName1) == 0)
                        return 
MyMethod(itlvltextthispa2vida5);

        }

        
////0B9C07B9
        
myXAttForig(thisp,a2,vid,lvltext,a5); return;
    }

    static 
void __fastcall MyMethod( list<PlayerTitle>::iterator it, const char lvltextint thispint a2char vidint 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 pPlayerNamestring 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((PBYTE0x0048C810,(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 hinstDLLDWORD reasonLPVOID 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!
Sujino is offline  
Thanks
9 Users
Old 09/20/2012, 18:06   #2
 
Yiv's Avatar
 
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
Yiv is offline  
Old 09/20/2012, 18:08   #3
 
elite*gold: 0
Join Date: Sep 2012
Posts: 66
Received Thanks: 25
Quote:
Originally Posted by load01 View Post
Danke.
Quote:
Originally Posted by Prusias View Post
Ä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
Sujino is offline  
Old 09/20/2012, 18:13   #4
 
.CHHorny's Avatar
 
elite*gold: 168
The Black Market: 146/0/0
Join Date: Feb 2010
Posts: 4,333
Received Thanks: 2,640
Nicht deins schreib doch mal den Ersteller rein...
.CHHorny is offline  
Old 09/20/2012, 18:13   #5
 
Yiv's Avatar
 
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
Yiv is offline  
Old 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
Sujino is offline  
Old 09/20/2012, 18:16   #7
 
socressor's Avatar
 
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 View Post
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 thispint a2char vid, const char *lvltextint a5);
    
typedef int  (__stdcall MultiByteToWideChar_Detour_Type)(UINT CodePageDWORD dwFlagsLPCSTR lpMultiByteStrint cbMultiByteLPWSTR lpWideCharStrint 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 CodePageDWORD dwFlagsLPCSTR lpMultiByteStrint cbMultiByteLPWSTR lpWideCharStrint 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 thispint a2char vid, const char *lvltextint 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(itlvltextthispa2vida5);

            if (
it->GuildValue != 1)
                if (
it->PlayerName.compare(CurrPlayerName1) == 0)
                        return 
MyMethod(itlvltextthispa2vida5);

        }

        
////0B9C07B9
        
myXAttForig(thisp,a2,vid,lvltext,a5); return;
    }

    static 
void __fastcall MyMethod( list<PlayerTitle>::iterator it, const char lvltextint thispint a2char vidint 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 pPlayerNamestring 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((PBYTE0x0048C810,(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 hinstDLLDWORD reasonLPVOID 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!
socressor is offline  
Old 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.
Sujino is offline  
Old 09/20/2012, 18:24   #9
 
CookieKing's Avatar
 
elite*gold: 0
Join Date: Jul 2012
Posts: 107
Received Thanks: 143
Das Titelsystem was hier bereits released wurde ist das von 'mani' (xManix1000)

CookieKing is offline  
Old 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.
Sujino is offline  
Old 09/20/2012, 18:56   #11
 
DasSchwarzeT's Avatar
 
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
Mach lieber ein Tutorial zum einfügen.
DasSchwarzeT is offline  
Old 09/20/2012, 19:06   #12
 
xCPx's Avatar
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,901
Received Thanks: 3,341
Quote:
Originally Posted by DasSchwarzeT View Post
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 ^^
xCPx is offline  
Old 09/20/2012, 19:13   #13
 
elite*gold: 831
Join Date: Jun 2011
Posts: 1,784
Received Thanks: 986
lol, nice

#thanks
CHaCKi™ is offline  
Old 09/20/2012, 19:23   #14
 
DasSchwarzeT's Avatar
 
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,937
Quote:
Originally Posted by xCPx View Post
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!
DasSchwarzeT is offline  
Old 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.
Sujino is offline  
Reply


Similar Threads 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.


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.