Beiträge von Quget

    I've reported and reported problems to eFlyff. They didn't listen and now they will pay.
    Here I explain my simple client modification how to get it to work and is undetectable by the server.
    I use it at this moment at eFlyff so it works.


    How to get as much coupons as you want whenever you want
    step 1: download this file :MediaFire - Online Space for your documents, photos, videos, and music.
    step 2: place it in your flyff main folder
    step 3:Login and get many sunstones
    step 4:get your buff pet out and open his menu
    step 5: Select Exchange event item
    step 6:trade your sunstones in for coupons
    step 7: select "Rock-Paper-Scissors"
    step 8: ????
    step 9: enjoy


    Scan: It is plain text file open it in notepad if you don't trust me


    Plain but simple


    To the ones who are against this release
    My intentions are not to harm the game even tough that is kinda hard at this very moment.
    Flyff's Economy is already broken, Penya spammers all over and many random account hackers. I release this to bring attention to the developers make them pay and work.


    All credits goes to me Misterkid aka Quget aka Darking1assist


    How to
    Needed tools
    Notepad(Notepad ++ preferred)
    Flyff .res Editor download: Flyff ResEditor.exe download - 2shared


    1. start flyff res editor
    2. open dataSub1.res file in your flyff folder (File -> Open)
    3. Search for character.inc select it and extract it in your flyff folder(Actions->Extract selected file)
    4. Open the file in a text editor(notepad)
    5. Look for the npc you want to edit(In my case a buffpet (MaFl_BuffPet))
    6. At the npc under Setting{ add the Menu's you want the npc to have.
    for example

    Code
    MaFl_BuffPet
    {
    	setting
    	{
    		AddMenu( MMI_KAWIBAWIBO );//Rock paper scissors
    		AddMenu( MMI_EVENT_TRADE_KOR ); //sunstones for coupons
    		AddMenu( MMI_FIVESYSTEM );//Dice event system
    	}
    }


    7. Save the file after your edit.
    8. start flyff normaly


    There is no need to test file edit on skills and items. They won't work as those are server sided.
    Some menu's don't work at all since there is a check server sided somehow.


    I hope this creates a better understanding of what I did.


    The exploit have been blocked ages ago but since Flyff gold(I think) it is possible again to abuse it.

    Deutsch
    Hallo,


    Ich habe eine Konsole-Anwendung, die sendkeywait verwendet, um in eFlyff Chat, indem sie Argumente mit ihr Typ.
    Wie: FlyffCommandApi.exe "chat", "FLYFF" "Quget" "Hallo" "3" "Eine riesige Liste"
    Er wird sagen: Hallo zusammen 3 mal ingame :) Es funktioniert.
    Aber wenn ich es Rinne laufen meine WinForms-Anwendung soll ich einen unbekannten invissable Fehler. Erst wenn Gameguard läuft. Zu umgehen, dass Sie als Administrator werden rannte müssen. Aber meine Konsole-Anwendung scheint nicht das zu tun: (Ich habe bereits das Manifest Dinge right.This ist das, was ich habe.


    Ich weiß, es wurde getestet alles :/
    Es funktioniert auf Notizbuch harten ohne gg Lauf.

    PHP
    public void CommandApiInit()        {            procInfo.CreateNoWindow = true;            procInfo.UseShellExecute = true;            procInfo.RedirectStandardOutput = false;            procInfo.FileName = @"FlyffCommandApi.exe";//exe";            procInfo.Verb = "runas";           // procInfo.WorkingDirectory = Environment.CurrentDirectory;            commandApiProg.StartInfo = procInfo;        }
            public void startApi(string args)        {            procInfo.Arguments = args;            procInfo.Verb = "runas";            commandApiProg.StartInfo = procInfo;            try            {                commandApiProg.StartInfo.Verb = "runas";                commandApiProg.Start();                commandApiProg.WaitForExit();            }            catch (Exception ex)            {                MessageBox.Show(ex.Message.ToString());            }        }


    English
    Hi,

    I made a console application which uses sendkeywait to typ in eFlyff chat by getting arguments with it.
    Like : FlyffCommandApi.exe "chat" "FLYFF" "Quget" "Hi there" "3" "A huge list"
    It will say Hi there 3 times ingame :) It works.
    But when I want to run it trough my winforms application I get a unkown invissable error. It is only when Gameguard is running. Too bypass that It need to be ran as admin. But my console application doesn't seem to do that :( I already did the manifest things right.This is what I have.

    I know it was testing everything :/
    It works on notepad tough without gg running.

    PHP
    public void CommandApiInit()        {            procInfo.CreateNoWindow = true;            procInfo.UseShellExecute = true;            procInfo.RedirectStandardOutput = false;            procInfo.FileName = @"FlyffCommandApi.exe";//exe";            procInfo.Verb = "runas";           // procInfo.WorkingDirectory = Environment.CurrentDirectory;            commandApiProg.StartInfo = procInfo;        }
            public void startApi(string args)        {            procInfo.Arguments = args;            procInfo.Verb = "runas";            commandApiProg.StartInfo = procInfo;            try            {                commandApiProg.StartInfo.Verb = "runas";                commandApiProg.Start();                commandApiProg.WaitForExit();            }            catch (Exception ex)            {                MessageBox.Show(ex.Message.ToString());            }        }


    ps
    The english section won't work -.-"

    That is too much work to make a virtual machine....

    I compiled it in 64 bit and it bypassed gameguard.
    But after doing my action ones it get blocked at the 2nd time :( xD

    Well I tried to make a Korean.def.
    I dont know if it would work or how the def files exactly works too much blah blah :S.
    Doesn't work :( ...

    Also my gpu is not supported x.x

    Alright thought I release another simple part :)
    It creates a console window and print the errors out in the console.
    If you want you can add some printf("Sumlog %s",someshit); like when someone logs in you be able to see that.


    In worldserver open versionCommon.h
    add

    Code
    #define __QUGET_CONSOLE


    Open worldserver.cpp and look for

    Code
    // float point ¿¡·¯°¡ exceptionÀ» ³»°Ô ÇÑ´Ù.
    void EnableFloatException()
    {
    	int cw = _controlfp( 0, 0 );
    	cw &= ~(EM_OVERFLOW|EM_UNDERFLOW|EM_ZERODIVIDE|EM_DENORMAL);
    	_controlfp( cw, MCW_EM );
    }


    Add this under it


    In the same file look for


    Code
    BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
    {


    And add this under it

    Code
    #ifdef __QUGET_CONSOLE
    	CreateConsole();
    	SetProcessWorkingSetSize(hInstance, -1, -1);
    	printf("Quget Server Console.\n");
    #endif // __QUGET_CONSOLE


    Open xUtil.cpp


    Look for



    And add this under it


    Code
    #ifdef __QUGET_CONSOLE
    		printf(szStr);
    #endif


    Now the console will print all errors :)


    An example too add extra logs(Some extra features!)


    For showing who logged in and out


    Look for



    And add this under it


    Code
    #ifdef __QUGET_CONSOLE
    	printf("Logged out:[%s],Gold:[%d],JobId:[%d],Level:[%d],Autht:[%d] \n",pUser->GetName(),pUser->GetGold(),pUser->GetJob(),pUser->GetLevel(),pUser->m_dwAuthorization);
    #endif //__QUGET_CONSOLE


    Now for the log in Look for



    And add this under it


    Code
    #ifdef __QUGET_CONSOLE
    		printf("Character logged in:[%s] Gold:[%d] JobId:[%d] level:[%d] Auth:[%d] \n",pUser->GetName(),pUser->GetGold(),pUser->GetJob(),pUser->GetLevel(),pUser->m_dwAuthorization);
    #endif //__QUGET_CONSOLE


    Now you are all done having a wolrdserver with a console window printing everything that goes in error%%%.txt and showing who logged in and off :)


    Credits:
    70% Quget aka Misterkid
    30% Google and some hack source code for giving me the idea.

    Hi,
    My german is so bad so this guide will be in English :P
    Since my server died I tought I do release it here. None of the players actually used to quest :(.
    what does it do?
    It reads contant.inc and then loads the quest rates / other rates.
    Why load rates using constant.inc?
    Because doing rates via event.lua is just wrong :) event.lua is for events.
    Add the quest rates in event.lua yourself it won't be hard ^^


    Bugs: Penya and exp won't be shown correctly if I'm right. You can fix this easily in the source.(Not Sure)


    First define __QUGETQUESTFACTOR in versionCommon.h


    WorldServer


    VerisonCommon.h

    Code
    //Epic Quest factor
    #define __QUGETQUESTFACTOR


    Open DPCoreClient.cpp
    Look for


    And add this below it



    Now open up DPDatabaseClient.cpp
    Look for

    Code
    g_UserMng.AddGameRate( prj.m_fMonsterExpRate, GAME_RATE_MONSTEREXP );
    g_UserMng.AddGameRate( prj.m_fGoldDropRate, GAME_RATE_GOLDDROP );
    g_UserMng.AddGameRate( prj.m_fItemDropRate, GAME_RATE_ITEMDROP );    
    g_UserMng.AddGameRate( prj.m_fMonsterHitRate, GAME_RATE_MONSTERHIT );


    And add this below

    Code
    #ifdef __QUGETQUESTFACTOR
            g_UserMng.AddGameRate( prj.m_fQuestExpRate, GAME_RATE_QUEST_EXP );
            g_UserMng.AddGameRate( prj.m_fQuestPenRate, GAME_RATE_QUEST_PEN );
    #endif


    Open User.cpp and look for

    Code
    if( ((CMover*)this)->IsAuthHigher( AUTH_GAMEMASTER ) )
        {
            AddGameRate( prj.m_fItemDropRate, GAME_RATE_ITEMDROP );
            AddGameRate( prj.m_fGoldDropRate, GAME_RATE_GOLDDROP );
            AddGameRate( prj.m_fMonsterExpRate, GAME_RATE_MONSTEREXP );
            AddGameRate( prj.m_fMonsterHitRate, GAME_RATE_MONSTERHIT );


    And add this below


    Code
    #ifdef __QUGETQUESTFACTOR
            AddGameRate( prj.m_fQuestExpRate, GAME_RATE_QUEST_EXP );
            AddGameRate( prj.m_fQuestPenRate, GAME_RATE_QUEST_PEN );
    #endif


    Open MsgHdr.h and look for

    Code
    #define GAME_SKILL_EXPERTSP        (BYTE)0x11
    #define GAME_SKILL_PROSP        (BYTE)0x12
    
    
    
    
    #define GAME_RATE_SHOP_BUY        (BYTE)0x13
    #define GAME_RATE_SHOP_SELL        (BYTE)0x14


    And add this under it

    Code
    //#ifdef __QUGETQUESTFACTOR//IT might be better not to do a #if here ?:S
    #define GAME_RATE_QUEST_EXP        (BYTE)0x15
    #define GAME_RATE_QUEST_PEN        (BYTE)0x16
    //#endif


    Now open up Project.cpp
    Look for


    Code
    FLOAT    CProject::m_fItemDropRate = 1.0f;        // ¸ó½ºÅÍ ¾ÆÀÌÅÛ µå·Ó·ü
    FLOAT    CProject::m_fGoldDropRate = 1.0f;        // ¸ó½ºÅÍ Æä³Ä µå·Ó·ü
    FLOAT    CProject::m_fMonsterExpRate = 1.0f;        // ¸ó½ºÅÍ °æÇèÄ¡·ê
    FLOAT    CProject::m_fMonsterHitRate = 1.0f;        // ¸ó½ºÅÍ °ø°Ý·ü


    And add this under it


    Code
    #ifdef __QUGETQUESTFACTOR
    FLOAT    CProject::m_fQuestExpRate = 1.0f;
    FLOAT    CProject::m_fQuestPenRate = 1.0f;
    #endif


    In the same file look for

    Code
    #ifdef __WORLDSERVER
    void CProject::SetGlobal( UINT type, float fValue )
    {
        if( fValue < 0.1f )
            fValue = 0.1f;
        switch( type )
        {


    and this below


    Code
    #ifdef __QUGETQUESTFACTOR
        case GAME_RATE_QUEST_EXP:
            m_fQuestExpRate = fValue;
            printf("QuestPen:[%f]",m_fQuestExpRate);
            break;
        case GAME_RATE_QUEST_PEN:
            m_fQuestPenRate = fValue;
            printf("QuestPen:[%f]",m_fQuestPenRate);
            break;
    #endif


    In the same file look for


    And add



    Still in the same file :P hehe xD
    Look for

    Code
    script.GetToken(); // (
                    propQuest.m_nEndRewardGoldMin = script.GetNumber();
                    script.GetToken(); // ,
                    propQuest.m_nEndRewardGoldMax = script.GetNumber();


    And REPLACE it with


    Now look for


    Code
    script.GetToken(); // (
                    propQuest.m_nEndRewardExpMin = script.GetNumber();
                    script.GetToken(); // ,
                    propQuest.m_nEndRewardExpMax = script.GetNumber();


    REPLACE it with



    Now look for


    Code
    script.GetToken(); // (
                    propQuest.m_nEndRemoveGold = script.GetNumber();


    REPLACE it with



    yay we are done with project.cpp.


    Now open up project.h


    Look for


    Code
    public:
        static FLOAT                m_fItemDropRate;            // ¸ó½ºÅÍ ¾ÆÀÌÅÛ µå·Ó·ü
        static FLOAT                m_fGoldDropRate;            // ¸ó½ºÅÍ Æä³Ä µå·Ó·ü
        static FLOAT                m_fMonsterExpRate;            // ¸ó½ºÅÍ °æÇèÄ¡·ê
        static FLOAT                m_fMonsterHitRate;            // ¸ó½ºÅÍ °ø°Ý·ü


    And ADD under it

    Code
    #ifdef __QUGETQUESTFACTOR
        static    FLOAT                m_fQuestExpRate;
        static    FLOAT                m_fQuestPenRate;
    #endif


    Neuz
    VerisonCommon.h

    Code
    //Epic Quest factor
    #define __QUGETQUESTFACTOR


    Now check this for 4 seconds

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    You are all done but wait! there is more
    open your Project.cpp
    find

    Code
    LoadConstant( "Constant.inc" );


    replace it with

    Code
    #ifndef __QUGETQUESTFACTOR
        LoadConstant( "Constant.inc" );
    #endif


    Now look for


    Code
    BOOL CProject::OpenProject( LPCTSTR lpszFileName )
    {
        CScanner scanner;
        if(scanner.Load( lpszFileName )==FALSE)
            return FALSE;
    #if !defined(__CLIENT)
        LoadPreFiles();
    #endif


    and add this under it


    Code
    #ifdef __QUGETQUESTFACTOR
    #ifdef __WORLDSERVER
        LoadConstant( "Constant.inc" );
    #endif
    #endif


    Now you are done with the source


    Now open up Constant.inc from your resource folder
    and add this at the bottom



    FAQ
    -Q what visual bugs occur?
    -A penya and exp you get won't be shown right.
    -
    -
    -
    -


    Credits
    Quget aka Misterkid 95% for making this and release it.
    Rose 5% for daring me to make this.

    Hi,


    I thought I release the source code now as I promised it ones :ott1:
    I'm not working on this project anymore so no reason to keep it for myself.
    Well I hope you all can use it well or even improve it if you like too.
    If you are going to use this source don't forget to give me some credits :wink:


    Download: http://ompldr.org/vYnY5Nw


    You need visual studio to compile it.


    This source can be used for most games
    Lol its not really big its simple and messy in my view.


    Don't forget to like this post for the release

    Hi I fixed the swap bug a long time ago it got tested on my server and it worked :thumbup1:
    I posted this because someone kinda posted a youtube thingy about it :O.

    Find this in DPSrv.cpp @ worldserver


    And put this under it


    find this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
    and add under

    Code
    if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
                {
                    CMover::UpdateParts( pPlayer->GetSex(), pPlayer->m_dwSkinSet, pPlayer->m_dwFace, pPlayer->m_dwHairMesh, pPlayer->m_dwHeadMesh, pPlayer->m_aEquipInfo, g_WndMng.m_pWndBeautyShop->m_pModel, &pPlayer->m_Inventory );
                }


    this

    and then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver

    :) Released by Misterkid aka me

    Zitat von MisterKid;6518712

    I get lots of questions about this on msn.
    So I tought i release it here
    This makes you able to read the new resdata.inc
    have fun

    in ResManager.cpp look for "BOOL CResManager::Load"
    and replace with

    10 seconds my ass
    You know where those stuff are ~ if you didn't know you had to find out with ones are working.
    Database ? well I just took v11 ones and rebuillded it a little.
    Btw if you did it in 10 seconds you didn't release it ? in 10 seconds wait you didn't at all so you probably couldn't get it working.
    -never unpacked any executable- -> learns it
    Unpacks neuz.exe ->failing neuz
    Unpacks another neuz.exe -> omg i can get into world ->no sound
    Unpacks another neuz.exe -> can't get into world
    Finaly unpacks the right neuz.exe

    Unpack a neuz.exe in 10 seconds?