[Source]Sammlung

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Source]Sammlung

      Ich mach mal eine Sammlung von Source Edits

      nicht alle von mir einige auch von anderen ( werde Credits angeben ).

      Post Bug Fix
      "Post Bug Fix"


      Ihr sucht nach das hier unten im Worldserver.

      Quellcode

      1. if( pUser->GetGold() < (int)( ( nPostGold + nGold ) ) )
      und macht es zu

      Quellcode

      1. if( pUser->GetGold() < (int)( ( nPostGold + nGold ) ) || nGold>2000000000)
      Copyright by ????? aus Ragezone

      Neue NPC Dialoge [Sehr NICE!]
      "Neue NPC Dialoge [Sehr NICE!
      "]
      [Source]How to add new NPC Dialog's
      So, Hallo erstmal an alle, die hier in der Flyff welt ihre Seele verloren haben

      Ich will euch heute mal zeigen wie man eigene NPC Dialoge via WorldDialog.dll + WorldDialog.txt Addet in paar einfach Schritten, damit es auch 100% jeder Kapiert.

      Als erstes brauchen wie folgende daten:

      - WorldDialog.txt
      - character.txt.txt
      - character.inc
      - WorldDialog.dll (Besser: Source)
      - Mathe Kenntnisse

      So dann fangen wir mal an


      Als erstes öffnen wir mal die "character.inc" dann sieht das am anfang so aus:

      Quellcode

      1. [align=left] //이 파일 수정 시에 절대 EditPlus를 사용하시지 마십시요.
      2. //유니코드 부분에 충돌이 있습니다.
      3. //메모장을 사용하여 주십시요.
      4. /*
      5. 국가별 NPC 출력 설정 방법
      6. SetLang( 국가 디파인 )
      7. SetLang( 국가 디파인, 국가 서브 디파인 )
      8. SetOutput( truth )
      9. setLang으로 국가 설정. SetOutput으로 설정된 국가에만 NPC를 출력 할지(ture), 출력 안할지(false) 설정.
      10. 기본값은 truth임
      11. */
      12. /*
      13. 국가별 MMI 출력 설정 방법
      14. AddMenuLang( LANG_KOR, 0, MMI_XXXX )
      15. 가운데 0은 SUB LANG
      16. 여러국가에서 나와야 하는경우엔 여러개 써야함
      17. AddVendorSlotLang
      18. 설명 : AddVendorSlot( 0, IDS_CHARACTER_INC_000022 );의 확장입니다.
      19. 사용법 : AddVendorSlotLang( LANG_JAP, 0, 0, IDS_CHARACTER_INC_000022 );
      20. // 뒤 2개 인자는 AddVendorSlot과 동일 하고 앞의 두개는
      21. // 국가 디파인, 국가 서브 디파인입니다.
      22. ... usw
      23. [/align]
      Alles anzeigen
      dort scrollen wir mal ganz runter, und adden einen neuen NPC mit diesem Code:

      Quellcode

      1. MaFi_TUT_CRASY
      2. {
      3. setting
      4. {
      5. SetOutput( false );
      6. AddMenu( MMI_DIALOG );
      7. SetImage
      8. (
      9. IDS_CHARACTER_INC_000864
      10. );
      11. m_szDialog= "MaFl_Herold.txt";
      12. }
      13. SetName
      14. (
      15. IDS_CHARACTER_INC_000865
      16. );
      17. }
      Alles anzeigen



      So, das "MaFi_Herold.txt" könnt ihr erstmal ignorieren, das zeig ich euch in meinem nächsten tut.

      Wichtig ist im moment nur:
      Name = "MaFi_TUT_CRASY"
      Figur = "IDS_CHARACTER_INC_000864" (könnt z.b. auch ihn als Aibatt hin haun)
      IG Name = "IDS_CHARACTER_INC_000865"

      als nächstes addet ihr in der "Character.txt.txt" folgendes ganz unten:


      Quellcode

      1. IDS_CHARACTER_INC_000864 Crasy Tut NPC!
      2. IDS_CHARACTER_INC_000865 char_Bill.tga



      Wichtig ist, das die ID hinter "INC_" genau überein stimmt mit der ID in der Character.inc, so nun habt ihr eigentlich schon die Hälfte geschafft, aber zu hauptteil kommen wir erst jetzt.

      Und zwar öffnet ihr nun mal die Source, btw nicht nur ihrgend eine Source sondern die "WorldDialog71.sln" diese findet ihr im Ordner "WORLDDIALOG" in der Source, wenn ihr dies getan habt öffnet ihr an der seite (bei mir rechts) die 2 dateien "NpcScript.cpp" und die dazugehörende ".h" datei, als erstes kommen wir zu der "NpcScript.cpp" datei wenn ihr die offen habt steht am anfang erstmal nur sowas:

      C-Quellcode

      1. [COLOR=#000000][COLOR=#ff8000]#include "stdafx.h"
      2. #include "NpcScript.h"
      3. /////////////////////////////////////////////////////////////////////////////
      4. // extern functions
      5. /////////////////////////////////////////////////////////////////////////////
      6. [/COLOR][COLOR=#0000bb]extern void InitFunctions[/COLOR][COLOR=#007700]();
      7. [/COLOR][COLOR=#0000bb]extern PFN GetFunction[/COLOR][COLOR=#007700]( const [/COLOR][COLOR=#0000bb]char[/COLOR][COLOR=#007700]* [/COLOR][COLOR=#0000bb]szFunction [/COLOR][COLOR=#007700]);
      8. [/COLOR][COLOR=#ff8000]/////////////////////////////////////////////////////////////////////////////
      9. // global variable
      10. [/COLOR][COLOR=#0000bb]usw[/COLOR][COLOR=#007700].. [/COLOR][/COLOR]
      Alles anzeigen



      Das ist für uns aber im moment nicht wichtig.
      Geht nun in dieser datei ans ende bis zu "//Script End" addet vor dem "//Script End" folgenden code:

      Quellcode

      1. [align=left] void CNpcScript::mafl_Crasy_0()
      2. {
      3. Speak( NpcId(), 1267 );
      4. SetScriptTimer( 15 );
      5. }
      6. void CNpcScript::mafl_Crasy_1()
      7. {
      8. }
      9. void CNpcScript::mafl_Crasy_2()
      10. {
      11. AddKey( 9 );
      12. AddKey( 10 );
      13. }
      14. void CNpcScript::mafl_Crasy_3()
      15. {
      16. }
      17. void CNpcScript::mafl_Crasy_4()
      18. {
      19. Say( ZEILE );
      20. }
      21. void CNpcScript::mafl_Crasy_5()
      22. {
      23. }
      24. void CNpcScript::mafl_Crasy_6()
      25. {
      26. }
      27. void CNpcScript::mafl_Crasy_7()
      28. {
      29. }
      30. void CNpcScript::mafl_Crasy_8()
      31. {
      32. }
      33. void CNpcScript::mafl_Crasy_9()
      34. {
      35. Say( ZEILE );
      36. }
      37. void CNpcScript::mafl_Crasy_10()
      38. {
      39. Speak( NpcId(), 1268 );
      40. Exit();
      41. [/align]
      42. }
      Alles anzeigen
      So, dort seht ihr "Say( ZEILE );" dies ist momentan noch nicht wichtig, dazu kommen wir später, nun ist nur wichtig das ihr in der "NpcScript.h" datei folgendes addet ganz unten vor dem "};":



      Quellcode

      1. void mafl_Crasy_0();
      2. void mafl_Crasy_1();
      3. void mafl_Crasy_2();
      4. void mafl_Crasy_3();
      5. void mafl_Crasy_4();
      6. void mafl_Crasy_5();
      7. void mafl_Crasy_6();
      8. void mafl_Crasy_7();
      9. void mafl_Crasy_8();
      10. void mafl_Crasy_9();
      11. void mafl_Crasy_10();
      Alles anzeigen



      so nun öffnet ihr mal die "WorldDialog.txt" datei und addet ganz unten das, was euer NPC sagen soll, ich nehme nun mal einfach "Hallo, mein Name ist: Crasy" und als 2. adde ich darunter "Wie lautet dein Name?" dann sollte das einfach mal so aussehen:


      Quellcode

      1. Hallo, mein Name ist: Crasy
      2. Wie lautet dein Name?



      ihr dürft es nicht hinter einander schreiben!

      Okay, jetzt geht ihr auf den text "Hallo, mein Name ist: Crasy" oder einfach euern 1. Text, wenn ihr das habt macht ihr mal "STRG + G" dann bekomt ihr eine Zeile angezeigt, in meinem Fall sind das die "1251" und "1252", jetzt gehen wir mit diesen 2 zeilen wieder zurück zu unserer "NpcScript.cpp" und da seht ihr, das ich 2x "Say( ZEILE)" addet habe, diese ersetzt ihr nun durch:


      Quellcode

      1. Say(1251) und Say(1252)



      So, ihr habt es eigentlich geschafft, alles speichern und die WorldDialog Compilen, ihr den Res ordner ziehen und fertig, schon kann euer NPC Reden

      Hier noch paar Codes, für die, die nicht auf den lw text stehen:



      Quellcode

      1. #b = Ihr schreibt Fett
      2. #FarbCode = Farbig schreiben, format: Hex
      3. #i = Euer Text ist unterstrichen



      Wer noch, will, das der NPC den text wo ihr wollt öfters Say't dann müsst ihr

      Quellcode

      1. SetScriptTimer( 15 );
      2. zu
      3. SetScriptTimer( 10 );



      ändern, und der NPC ist schneller

      Wer Probleme o. Fragen hat, kann die hier o. per PN stellen.

      Ich werde bald auch ein Tut schreiben wo wir "Speak, AddKey" behandeln, bin im moment zu Müde dafür

      Öhm ja, hier noch Credits:

      Found + Geschrieben von: Crasy 100%
      Wachhalten + Unterhaltung: Cross, danke auch dafür

      So, das wars erstmal bis später.

      Mfg euer Crasy


      Sunkist entfernen / ändern
      "Sunkist entfernen / ändern"

      Ihr sucht in der Neuz nach sunkist und dann werdet ihr das sehen.

      Quellcode

      1. if( strcmpi( szArg1, "sunkist" ) )
      2. return FALSE;
      Kommentiert es aus und ihr könnt die neuz einfach so starten.

      Wenn ihr verändern wollt ändert einfach das wort sunkist

      Quellcode

      1. if( strcmpi( szArg1, "Hiereuersunkistcoderein!" ) )
      2. return FALSE;

      MD5 Hash ändern
      "MD5 Hash ändern"


      Ihr kommt nicht Ingame kommt immer Passwort falsch dan liegt es warscheinlich daran das bei LANG_ENG nicht kikugalanet steht so könnt ihr das ändern.

      Also ihr sucht in der neuz nach kikugalanet und werdet das hier finden und ändert das wort zu Kikugalanet.

      Quellcode

      1. case LANG_ENG:
      2. {
      3. if( ::GetSubLanguage() == LANG_SUB_IND )
      4. {
      5. szKey = "kikugalanet";
      6. }
      7. else
      8. {
      9. szKey = "kikugalanet";
      10. }
      11. }
      12. break;
      Alles anzeigen

      Bow Damage in Propjob.inc hinzufügen
      "Bow Damage hinzufügen"

      Bow Damage in Propjob.inc hinzufügen

      Öffne Moverattack.cpp
      und suche :

      Quellcode

      1. CMover::GetJobPropFactor
      Du wirst was sehen von Job_PROP
      Da musst du den roten Text hinzufügen.

      Quellcode

      1. case JOB_PROP_SWD:
      2. return pProperty->fMeleeSWD;
      3. case JOB_PROP_AXE:
      4. return pProperty->fMeleeAXE;
      5. case JOB_PROP_STAFF:
      6. return pProperty->fMeleeSTAFF;
      7. case JOB_PROP_STICK:
      8. return pProperty->fMeleeSTICK;
      9. case JOB_PROP_KNUCKLE:
      10. return pProperty->fMeleeKNUCKLE;
      11. case JOB_PROP_WAND:
      12. return pProperty->fMagicWAND;
      13. case JOB_PROP_YOYO:
      14. return pProperty->fMeleeYOYO;
      15. [COLOR=red] case JOB_PROP_BOW:
      16. return pProperty->fMeleeBOW;[/COLOR]
      17. case JOB_PROP_BLOCKING:
      18. return pProperty->fBlocking;
      19. case JOB_PROP_CRITICAL:
      20. return pProperty->fCritical;
      Alles anzeigen
      then search for:

      Quellcode

      1. nATK = (int)( (((GetDex()-14)*4.0f + (GetLevel()*1.3f) + (GetStr()*0.2f)) * 0.7f) );
      Du wirst finden :

      Quellcode

      1. case WT_RANGE_BOW:
      2. nATK = (int)( (((GetDex()-14)*4.0f + (GetLevel()*1.3f) + (GetStr()*0.2f)) * 0.7f) );
      3. break;
      Du musst das dan in das hier umwandeln :

      Quellcode

      1. case WT_RANGE_BOW:
      2. nATK = (int)( float(( GetDex() - 14 ) * GetJobPropFactor(JOB_PROP_BOW)) + (float(GetLevel() * 0.7f)) );
      3. break;
      Öffne ProjectDmn.h

      Und suche :

      Quellcode

      1. enum JOB_PROP_TYPE
      Du wirst das finden :

      Quellcode

      1. // 직업에 따른 factor ENUM
      2. enum JOB_PROP_TYPE
      3. {
      4. JOB_PROP_SWD,
      5. JOB_PROP_AXE,
      6. JOB_PROP_STAFF,
      7. JOB_PROP_STICK,
      8. JOB_PROP_KNUCKLE,
      9. JOB_PROP_WAND,
      10. JOB_PROP_BLOCKING,
      11. [COLOR=red] JOB_PROP_BOW,[/COLOR]
      12. JOB_PROP_YOYO,
      13. JOB_PROP_CRITICAL,
      14. };
      Alles anzeigen
      Dann fügst dann den roten Text hinzu.

      Dann such in ProjectCmn.h das hier :

      Quellcode

      1. fMeleeYOYO;
      Du wirst das hier finden :

      Quellcode

      1. // 직업에 따른 프로퍼티 ( propJob.inc에서 읽어들임 )
      2. struct JobProp
      3. {
      4. float fAttackSpeed; //공속
      5. float fFactorMaxHP; //최대 HP 계산에 사용되는 factor
      6. float fFactorMaxMP; //최대 MP 계산에 사용되는 factor
      7. float fFactorMaxFP; //최대 FP 계산에 사용되는 factor
      8. float fFactorDef; //물리 방어력 계산에 사용되는 factor
      9. float fFactorHPRecovery; //HP회복 factor
      10. float fFactorMPRecovery; //MP회복 factor
      11. float fFactorFPRecovery; //FP회복 factor
      12. float fMeleeSWD; //WT_MELEE_SWD의 ATK factor
      13. float fMeleeAXE; //WT_MELEE_AXE의 ATK factor
      14. float fMeleeSTAFF; //WT_MELEE_STAFF의 ATK factor
      15. float fMeleeSTICK; //WT_MELEE_STICK의 ATK factor
      16. float fMeleeKNUCKLE; //WT_MELEE_KNUCKLE의 ATK factor
      17. float fMagicWAND; //WT_MAGIC_WAND의 ATK factor
      18. float fBlocking; //블록킹 factor
      19. float fMeleeYOYO; //요요의 ATK factor
      20. float fCritical; //크리티컬 처리
      21. [COLOR=red] float fMeleeBOW; [/COLOR]
      22. };
      23. Du musst den roten Text hinzufügen.
      24. Dann suchst du das hier :
      25. [CODE] fMeleeYOYO
      Alles anzeigen
      Du wirst das hier finden :

      Quellcode

      1. JobProp* pProperty = &m_aPropJob[nJob];
      2. pProperty->fAttackSpeed = scanner.GetFloat();
      3. pProperty->fFactorMaxHP = scanner.GetFloat();
      4. pProperty->fFactorMaxMP = scanner.GetFloat();
      5. pProperty->fFactorMaxFP = scanner.GetFloat();
      6. pProperty->fFactorDef = scanner.GetFloat();
      7. pProperty->fFactorHPRecovery = scanner.GetFloat();
      8. pProperty->fFactorMPRecovery = scanner.GetFloat();
      9. pProperty->fFactorFPRecovery = scanner.GetFloat();
      10. pProperty->fMeleeSWD = scanner.GetFloat();
      11. pProperty->fMeleeAXE = scanner.GetFloat();
      12. pProperty->fMeleeSTAFF = scanner.GetFloat();
      13. pProperty->fMeleeSTICK = scanner.GetFloat();
      14. pProperty->fMeleeKNUCKLE = scanner.GetFloat();
      15. pProperty->fMagicWAND = scanner.GetFloat();
      16. pProperty->fBlocking = scanner.GetFloat();
      17. pProperty->fMeleeYOYO = scanner.GetFloat();
      18. pProperty->fCritical = scanner.GetFloat();
      19. [COLOR=red] pProperty->fMeleeBOW = scanner.GetFloat();[/COLOR]
      Alles anzeigen
      Den roten Text müsst ihr hinzufügen

      Der Letze Teil des Guides
      Ihr müsst das hier in die probjob.inc hinzufügen.

      Quellcode

      1. BOW
      2. 5.0
      3. 5.0
      4. 5.0
      5. 5.0
      6. 5.0
      7. 5.0
      8. 5.0
      9. 5.0
      10. 5.0
      11. 5.0
      12. 5.0
      13. 5.0
      14. 5.0
      15. 5.0
      16. 5.0
      17. 5.0
      18. 5.0
      19. 5.0
      20. 5.0
      21. 5.0
      22. 5.0
      23. 5.0
      24. 5.0
      25. 5.0
      26. 5.0
      27. 5.0
      28. 5.0
      29. 5.0
      30. 5.0
      31. 5.0
      32. 5.0
      33. 5.0
      Alles anzeigen
      Credits : Mentus
      Ich hab es auf Deutsch nur geschrieben. ^^
      [/CODE]


      Shop Items einzeln hinzufügen
      "Shop Items einzeln hinzufügen"


      Was ist das?
      Kennt ihr das lästige hinzufügen von Items durch AddVendorShop? Es nervt, dass es keine Funktion dafür gibt einzelne Items hinzufügen zu können. Deswegen stelle ich euch hier meine Mod zur Verfügung und ein kleines How To wie ihr sie einfach in euren Source hinzufügen könnt.
      Nach dem einfügen könnt ihr einfach in der character.inc die Funktion AddShopItem benutzen.
      Beispiel: AddShopItem( 0, II_WEA_WOODEN );
      Das würde ein Wooden Sword im Tab 0 hinzufügen



      Ihr sucht nach

      Quellcode

      1. else if( script.Token == "AddTeleport" )



      und nach der Zeile

      Quellcode

      1. #endif // __TELEPORTER



      (am Ende der Funktion) fügt ihr das ein

      Quellcode

      1. #ifdef __ADDSHOPITEM
      2. else if( script.Token == "AddShopItem" )
      3. {
      4. script.GetToken(); // (
      5. int nSlot = script.GetNumber(); script.GetToken(); //
      6. DWORD dwId = script.GetNumber(); script.GetToken(); //
      7. LPVENDOR_ITEM pVendorItem = new VENDOR_ITEM;
      8. pVendorItem->m_dwItemId = dwId;
      9. lpCharacter->m_venderItemAry3[ nSlot ].Add( pVendorItem );
      10. }
      11. #endif
      Alles anzeigen






      Danach sucht ihr nach

      Quellcode

      1. CProject::~CProject()



      und nach der Zeile

      Quellcode

      1. #endif //__CSC_VER11_3



      fügt ihr das ein

      Quellcode

      1. #ifdef __ADDSHOPITEM
      2. for( j = 0; j < MAX_VENDOR_INVENTORY_TAB; j++ )
      3. {
      4. for( i = 0; i < lpCharacter->m_venderItemAry3[ j ].GetSize(); i++)
      5. safe_delete( (LPVENDOR_ITEM)lpCharacter->m_venderItemAry3[ j ].GetAt(i) );
      6. }
      7. #endif








      Dann sucht ihr nach

      Quellcode

      1. void CMover::ProcessRegenItem()



      und nach den Zeilen

      Quellcode

      1. #if __VER >= 11 // __CSC_VER11_3
      2. }
      3. #endif //__CSC_VER11_3



      fügt ihr das ein

      Quellcode

      1. #ifdef __ADDSHOPITEM
      2. if( pCharacter->m_venderItemAry3[i].GetSize() )
      3. {
      4. fShop = TRUE;
      5. for( int j = 0; j < pCharacter->m_venderItemAry3[i].GetSize(); j++)
      6. {
      7. pVendor = (LPVENDOR_ITEM)pCharacter->m_venderItemAry3[i].GetAt(j);
      8. CItemElem itemElem;
      9. itemElem.m_dwItemId = pVendor->m_dwItemId;
      10. itemElem.m_nItemNum = (short)( prj.GetItemProp( pVendor->m_dwItemId )->dwPackMax );
      11. itemElem.m_nHitPoint = prj.GetItemProp( pVendor->m_dwItemId )->dwEndurance;
      12. m_ShopInventory[i]->Add( &itemElem );
      13. }
      14. }
      15. #endif
      Alles anzeigen











      Und zum Schluss sucht ihr

      Quellcode

      1. } CHARACTER,* LPCHARACTER;



      und fügt DRÜBER das ein

      Quellcode

      1. #ifdef __ADDSHOPITEM
      2. CPtrArray m_venderItemAry3[ 4 ];
      3. #endif







      Natürlich müsst ihr noch in jeder VersionCommon.h #define __ADDSHOPITEM hinzufügen
      Nicht vergessen alle Server und die Neuz neu zu kompilieren

      Credits: Flyff-Service


      Hier nochmal GM Name vor den Shout hab ich zwar auch selber herausgefunden finde das TuT von Cross aber einfach toll :D

      "Gm Name hsout"
      Hallo,

      in diesem Tutorial erkläre ich eich einmal wie ihr den GM Namen vor den "/sys" Shout bekommt.

      Zuerst suchen wir in der FuncTextCmd.cpp nach diesem Code:



      Quellcode

      1. BOOL TextCmd_System( CScanner & scanner )
      Dies sagt uns das wir beim befehl /system (= /sys) sind.
      Hier müssen wir nun 2 Teile einfügen.

      1.

      Quellcode

      1. CString strName;
      2. strName = pUser->GetName();
      Dies sucht den Namen des Users und wir binden ihn an die Variable "strName".
      Der gesamtCode sieht nun so aus:


      Quellcode

      1. BOOL TextCmd_System( CScanner & scanner )
      2. {
      3. #ifdef __WORLDSERVER
      4. CHAR szString[512] = "";
      5. CUser* pUser = (CUser*)scanner.dwValue;
      6. CString strName;
      7. strName = pUser->GetName();
      8. scanner.GetLastFull();
      9. if( strlen( scanner.token ) >= 512 )
      10. return TRUE;
      11. strcpy( szString, scanner.token );
      12. StringTrimRight( szString );
      13. g_DPCoreClient.SendSystem( szString );
      14. #endif // __WORLDSERVER
      15. return TRUE;
      16. }
      Alles anzeigen
      2. Jetzt müssen wir noch die ausgabe einfügen.
      dies machen wir mit:


      Quellcode

      1. g_DPCoreClient.SendSystem( "[" + strName + "]" + szString );
      Dieser Code sagt da die ausgabe des befehls /Sys [strName] szString (message) sein soll

      Unser Endcode:


      Quellcode

      1. BOOL TextCmd_System( CScanner & scanner )
      2. {
      3. #ifdef __WORLDSERVER
      4. CHAR szString[512] = "";
      5. CUser* pUser = (CUser*)scanner.dwValue;
      6. CString strName;
      7. strName = pUser->GetName();
      8. scanner.GetLastFull();
      9. if( strlen( scanner.token ) >= 512 )
      10. return TRUE;
      11. strcpy( szString, scanner.token );
      12. StringTrimRight( szString );
      13. g_DPCoreClient.SendSystem( "[" + strName + "]" + szString );
      14. #endif // __WORLDSERVER
      15. return TRUE;
      16. }
      Alles anzeigen
      Credits:
      Schreiben: Cross
      Code: Basis > Aeonsoft
      erweiterung: Cross

      Weitergabe nur mit ausdrücklicher angabe dieser Credits gestattet!
      Greetings,
      cross


      Crash Pakets fixxen
      "Crash Pakets"


      Deutsche Übersetzung für euch: ( von Cross )

      Ok leute, da ich derzeit nichts zu tun habe werde ich hier releasen wie ihr jedes crash/dupe Packet blocken und die/den ID/Nicknamen der Person, die versucht euren Server zu crashen, zu speichern.

      Als erstes benötigt ihr ein installiertes VS.NET 2003 mit Service Pack 1 und den/die Flyff Source

      Um diese packete zu blocken, müsst ihr due DPServer.cpp öffnen, welche sich im WORLDSERVER ordner befinded.


      Equiptment Crash


      Suche nach:

      Quellcode

      1. ar >> dwData >> objid >> nPart;
      2. if( nPart >= MAX_HUMAN_PARTS )
      3. return;
      Füge unter das gefundene hinzu:

      Quellcode

      1. CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
      2. //Crash packet
      3. if ( nPart > 30 || dwData < 0 ) {
      4. Error( "CDPSrvr::OnDoUseItem : Crash Try -> [Player ID: %07d], [Player Name: %s], [Packet used: %d,%d,%d]",
      5. pUser->m_idPlayer, pUser->GetName(), dwData, objid, nPart );
      6. return;
      7. }
      Und kommentiere das erste

      Quellcode

      1. CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
      unter dem eingefügtem aus.





      Buy Crash


      Du musst dieses 2x machen!! Einmal für normale Käufe und einmal für Käufe mit Red Chips!!

      Suche nach:

      Quellcode

      1. ar >> cTab >> nId >> nNum >> dwItemId;
      2. if( cTab >= MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
      3. return;
      Füge darunter hinzu:

      Quellcode

      1. CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
      2. //CRASH
      3. if( cTab > 3 || cTab < 0 || nId < 0 || nNum <= 0 || nNum > 9999 || dwItemId < 0 ) {
      4. Error( "CDPSrvr::OnBuyItem : Crash Try -> [Player ID: %07d], [Player Name: %s], [Packet used: %d,%d,%d,%d]",
      5. pUser->m_idPlayer, pUser->GetName(), cTab, nId, nNum, dwItemId );
      6. return;
      7. }
      Und kommentiere das erste

      Quellcode

      1. CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
      unter dem eingefügtem aus.





      Pocket Crash


      Suche nach:

      Quellcode

      1. ar >> nPocket1 >> nItem >> nNum >> nPocket2;
      2. if( nPocket1 == nPocket2 )
      3. return;
      Füge darunter hinzu:

      Quellcode

      1. //DUPE CODE
      2. if( nNum <= 0 ) {
      3. Error( "CDPSrvr::OnMoveItemOnPocket : Dupe Try -> [Player ID: %07d], [Player Name: %s], [Packet used: %d,%d,%d,%d]",
      4. pUser->m_idPlayer, pUser->GetName(), nPocket1, nItem, nNum, nPocket2 );
      5. return;
      6. }
      7. //CRASH
      8. if( nItem < 0 || nPocket2 > 2 || nPocket1 < -1 || nPocket1 > 52 ) {
      9. Error( "CDPSrvr::OnMoveItemOnPocket : Crash Try -> [Player ID: %07d], [Player Name: %s], [Packet used: %d,%d,%d,%d]",
      10. pUser->m_idPlayer, pUser->GetName(), nPocket1, nItem, nNum, nPocket2 );
      11. return;
      12. }
      Alles anzeigen
      Entschuldigt bitte falls ein paar English-fehler im Text sind, da ich Brasilianer bin.
      Ach, ich würde es gut finden wenn es jemand auf Deutsch übersetzen kann
      kkthbye


      Fenstername ändern
      "Fenstername ändern"

      Also sucht nach :

      Quellcode

      1. m_strWindowTitle = _T( "FLYFF" );
      und ändert es auf euern Namen.


      Homo Couple usw.
      "Homo Lespen Couple"

      Ihr öffnet couplehelper.cpp und sucht nach den 2 If Abfragen

      Quellcode

      1. [COLOR=#000000][COLOR=#007700]if( [/COLOR][COLOR=#0000bb]pUser [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#0000bb]pTarget [/COLOR][COLOR=#007700])
      2. {
      3. [/COLOR][COLOR=#0000bb]pUser[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000bb]AddDefinedText[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000bb]TID_GAME_COUPLE_E01 [/COLOR][COLOR=#007700]); [/COLOR][COLOR=#007700]
      4. }
      5. if( [/COLOR][COLOR=#0000bb]pUser[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000bb]GetSex[/COLOR][COLOR=#007700]() == [/COLOR][COLOR=#0000bb]pTarget[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000bb]GetSex[/COLOR][COLOR=#007700]() )
      6. {
      7. [/COLOR][COLOR=#0000bb]pUser[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000bb]AddDefinedText[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000bb]TID_GAME_COUPLE_E01 [/COLOR][COLOR=#007700]); [/COLOR][COLOR=#ff8000]
      8. [/COLOR][COLOR=#007700]return;
      9. } [/COLOR][/COLOR]
      Nun können alle gleichgeschlechtigen Spielern Couple machen.


      GM Level Anzeige für Normale Spieler
      "GM Anzeige"

      Öffnet WndWorld.cpp und sucht nach

      Quellcode

      1. [COLOR=#000000][COLOR=#ff8000]#if __VER >= 8 // __CSC_VER8_1 [/COLOR][/COLOR]
      Du wirst das hier sehen

      Quellcode

      1. if( g_pPlayer->IsAuthHigher( AUTH_GAMEMASTER ) == TRUE || g_pPlayer->GetLevel() + 20 > pMover->GetLevel() )
      Ändert das AUTH_GAMEMASTER in AUTH_GENERAL und normale Spiele kkönnen das Level Ingame sehen.


      Shop max. Kaufanzahl ändern
      "Shopmax."

      Öffnet WndShop.cpp und sucht nach

      Quellcode

      1. const int MAX_BUY_ITEMCOUNT = 99;
      und ändern das zu euer Zahl.


      Jobchange Statpoints anpassen

      "Jobchangedd"

      Als erstes öffnet ihr die WorldDialog Source dann NPCScript.cpp
      und sucht nach :

      Quellcode

      1. GetPlayerLvl() == 120
      Ihr werdet dann zum Master Jobchange kommen dort seht ihr diese Funktionen :

      Quellcode

      1. ChangeJob( 17 ); // Zu den wechselnde Job
      2. InitStat(); // Initallisieren
      3. SetLevel(60); // So wird das Level gesetzt
      4. AddGPPoint( -120 ); // Hier werden 120 Stats abgesetzt
      So könnt ihr den Spieler mehr GPPoint geben.



      Update 18.03

      Emotion clientcrashfix:
      "Fix"
      Hier zeige ich euch, wie ihr es fixen könnt, dass der Client crasht, wenn ihr im chat !888888888888889 eingebt!
      Als erstes geht ihr in die _Common\DialogMsg.cpp und sucht nach der Funktion:

      Quellcode

      1. void CDialogMsg::AddMessage( CObj* pObj, LPCTSTR lpszMessage, DWORD RGB, int nKind, DWORD dwPStyle )
      <-- Sie befindet sich auf Zeile 813 -->

      Dannach sucht ihr in dieser Funktion nach dieser If-Schleife:

      Quellcode

      1. if( scanner.Token == "!" )
      2. {
      3. int nEmoticonIdx = scanner.GetNumber();
      4. AddEmoticon( pObj, nEmoticonIdx );
      5. return;
      6. }
      <-- Ab Zeile 856 -->

      Nun ersetzt ihr den bereits dastehenden Text durch den text, den ich hier jetzt angebe:

      Quellcode

      1. if( scanner.Token == "!" )
      2. {
      3. int nEmoticonIdx = scanner.GetNumber();
      4. if( nEmoticonIdx > MAX_EMOTICON_NUM )
      5. nEmoticonIdx = MAX_EMOTICON_NUM;
      6. else if( nEmoticonIdx < 0 )
      7. nEmoticonIdx = 0;
      8. AddEmoticon( pObj, nEmoticonIdx );
      9. return;
      10. }
      Alles anzeigen
      Und schon seit ihr fertig!


      Sro Fix[found on RZ]

      "sro fix"

      Quellcode

      1. BOOL TextCmd_SetRandomOption( CScanner & s )
      2. {
      3. #ifdef __WORLDSERVER
      4. CUser* pUser = (CUser*)s.dwValue;
      5. CItemElem* pItemElem = pUser->m_Inventory.GetAt( 0 );
      6. if( pItemElem )
      7. {
      8. int nRandomOptionKind = g_xRandomOptionProperty->GetRandomOptionKind( pItemElem );
      9. if( nRandomOptionKind >= 0 )
      10. {
      11. g_xRandomOptionProperty->InitializeRandomOption( pItemElem->GetRandomOptItemIdPtr() );
      12. int nDst, nAdj;
      13. int cb = 0;
      14. nDst = s.GetNumber();
      15. while( s.tok != FINISHED )
      16. {
      17. nAdj = s.GetNumber();
      18. if( nDst == 48 ) // Broken attribute
      19. break;
      20. if ( nDst > 96 || nDst < 1 ) // v16 max/min dst attribute
      21. break;
      22. if ( nAdj > 512 || nAdj < -512 ) // Prevent integer overflows
      23. break;
      24. g_xRandomOptionProperty->SetParam( pItemElem->GetRandomOptItemIdPtr(), nDst, nAdj );
      25. cb++;
      26. if( cb >= MAX_RANDOM_OPTION )
      27. break;
      28. nDst = s.GetNumber();
      29. }
      30. pUser->UpdateItemEx( (BYTE)( pItemElem->m_dwObjId ), UI_RANDOMOPTITEMID, pItemElem->GetRandomOptItemId() );
      31. }
      32. }
      33. #endif // __WORLDSERVER
      34. return TRUE;
      35. }
      Alles anzeigen

      With this, you will be able to set awakenings, such as:

      Quellcode

      1. /sro 68 50



      Bloomeffeckt verbessern:
      "Bloom"
      Sucht in der Neuz.cpp nach folgendenden Zeilen:

      Quellcode

      1. if( g_Option.m_nBloom == 1 )
      2. {
      3. if( m_d3dCaps.PixelShaderVersion >= D3DPS_VERSION(1,1) )
      4. g_Glare.Create( m_pd3dDevice, D3DFMT_R5G6B5], g_Option.m_nResWidth, g_Option.m_nResHeight - 48 );
      5. else
      6. g_Option.m_nBloom = 0;
      und ersetzt diese durch:

      Quellcode

      1. if( g_Option.m_nBloom == 1 )
      2. {
      3. if( m_d3dCaps.PixelShaderVersion >= D3DPS_VERSION(1,1) )
      4. g_Glare.Create( m_pd3dDevice, D3DFMT_A16B16G16R16F, g_Option.m_nResWidth, g_Option.m_nResHeight - 48 );
      5. else
      6. g_Option.m_nBloom = 0;
      Zuguter letzt müsste ihr noch in der Neuz.ini (im Client) folgende Zeile hinzufügen:

      Quellcode

      1. Bloom 1


      Den Gameguard aus eurem Source verbannen !
      "GG EnTF"
      Ihr müsst nur die Neuz.cpp bearbeiten!
      Sucht nach folgenden Zeilen und löscht sie, oder kommentiert sie aus ("//", "/*,*/"):

      Quellcode

      1. #include "NPGameLib4.h"

      Quellcode

      1. extern void PreInitNProtect();
      2. extern CNPGameLib* GetNProtect();

      Quellcode

      1. void CNeuzApp::InitNProtect()
      2. {
      3. CScript s1;
      4. if( s1.Load(MakePath( DIR_CLIENT, "GameGuard.txt.txt" ) ) )
      5. s1.LoadString();
      6. CScript s2;
      7. if( s2.Load(MakePath( DIR_CLIENT, "GameGuard.inc" ) ) )
      8. {
      9. s2.GetToken();
      10. while( s2.tok != FINISHED )
      11. {
      12. m_strArray.Add( s2.Token );
      13. s2.GetToken();
      14. }
      15. }
      16. PreInitNProtect();
      17. DWORD dwResult = GetNProtect()->Init();
      18. if( dwResult != NPGAMEMON_SUCCESS )
      19. {
      20. TCHAR msg[256];
      21. LPCSTR lpszMsg;
      22. switch (dwResult)
      23. {
      24. case NPGAMEMON_ERROR_EXIST:
      25. lpszMsg = m_strArray.GetAt(0);//"°ÔÀÓ°¡µå°¡ ÀÌ¹Ì ½ÇÇà Áß ÀÔ´Ï´Ù. ÀçºÎÆà ÈÄ ´Ù½Ã ½ÇÇàÇغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      26. break;
      27. case NPGAMEMON_ERROR_GAME_EXIST:
      28. lpszMsg = m_strArray.GetAt(1);//"°ÔÀÓÀÌ Áߺ¹ ½ÇÇàµÇ¾ú°Å³ª °ÔÀÓ°¡µå°¡ ÀÌ¹Ì ½ÇÇà Áß ÀÔ´Ï´Ù. °ÔÀÓ Á¾·á ÈÄ ´Ù½Ã ½ÇÇàÇغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      29. break;
      30. case NPGAMEMON_ERROR_INIT:
      31. lpszMsg = m_strArray.GetAt(2);//"°ÔÀÓ°¡µå ÃʱâÈ¿¡·¯ÀÔ´Ï´Ù. ÀçºÎÆà ÈÄ ´Ù½Ã ½ÇÇàÇغ¸°Å³ª Ãæµ¹ÇÒ ¼ö ÀÖ´Â ´Ù¸¥ ÇÁ·Î±×·¥µéÀ» Á¾·áÇÑ ÈÄ ½ÇÇàÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      32. break;
      33. case NPGAMEMON_ERROR_AUTH_GAMEGUARD:
      34. case NPGAMEMON_ERROR_NFOUND_GG:
      35. case NPGAMEMON_ERROR_AUTH_INI:
      36. case NPGAMEMON_ERROR_NFOUND_INI:
      37. lpszMsg = m_strArray.GetAt(3);//"°ÔÀÓ°¡µå ÆÄÀÏÀÌ ¾ø°Å³ª º¯Á¶µÇ¾ú½À´Ï´Ù. °ÔÀÓ°¡µå ¼Â¾÷ ÆÄÀÏÀ» ¼³Ä¡Çغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      38. break;
      39. case NPGAMEMON_ERROR_CRYPTOAPI:
      40. lpszMsg = m_strArray.GetAt(4);//"À©µµ¿ìÀÇ ÀϺΠ½Ã½ºÅÛ ÆÄÀÏÀÌ ¼Õ»óµÇ¾ú½À´Ï´Ù. ÀÎÅÍ³Ý ÀͽºÇ÷η¯(IE)¸¦ ´Ù½Ã ¼³Ä¡Çغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      41. break;
      42. case NPGAMEMON_ERROR_EXECUTE:
      43. lpszMsg = m_strArray.GetAt(5);//"°ÔÀÓ°¡µå ½ÇÇà¿¡ ½ÇÆÐÇß½À´Ï´Ù. °ÔÀÓ°¡µå ¼Â¾÷ ÆÄÀÏÀ» ´Ù½Ã ¼³Ä¡Çغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      44. break;
      45. case NPGAMEMON_ERROR_ILLEGAL_PRG:
      46. lpszMsg = m_strArray.GetAt(6);//"ºÒ¹ý ÇÁ·Î±×·¥ÀÌ ¹ß°ßµÇ¾ú½À´Ï´Ù. ºÒÇÊ¿äÇÑ ÇÁ·Î±×·¥À» Á¾·áÇÑ ÈÄ ´Ù½Ã ½ÇÇàÇغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      47. break;
      48. case NPGMUP_ERROR_ABORT:
      49. lpszMsg = m_strArray.GetAt(7);//"°ÔÀÓ°¡µå ¾÷µ¥ÀÌÆ®¸¦ Ãë¼ÒÇϼ̽À´Ï´Ù. Á¢¼ÓÀÌ °è¼Ó µÇÁö ¾ÊÀ» °æ¿ì ÀÎÅÍ³Ý ¹× ¹æÈ® »óŸ¦ Á¡°ËÇغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      50. break;
      51. case NPGMUP_ERROR_CONNECT:
      52. case NPGMUP_ERROR_DOWNCFG:
      53. lpszMsg = m_strArray.GetAt(8);//"°ÔÀÓ°¡µå ¾÷µ¥ÀÌÆ® ¼ö Á¢¼Ó¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù. Àá½Ã ÈÄ Àç½Ãµµ Çغ¸°Å³ª, ÀÎÅÍ³Ý ¹× ¹æÈ® »óŸ¦ Á¡°ËÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      54. break;
      55. case NPGMUP_ERROR_AUTH:
      56. lpszMsg = m_strArray.GetAt(9);//"°ÔÀÓ°¡µå ¾÷µ¥ÀÌÆ®¸¦ ¿Ï·áÇÏÁö ¸ø Çß½À´Ï´Ù. ¹ÙÀÌ·¯½º °Ë»ç¸¦ Çغ¸½Ã°Å³ª, PC °ü¸® ÇÁ·Î±×·¥À» »ç¿ëÇÏ½Ã¸é ¼³Á¤À» Á¶Á¤ÇÑ ÈÄ °ÔÀÓÀ» ½ÇÇàÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      57. break;
      58. case NPGAMEMON_ERROR_NPSCAN:
      59. default:
      60. // ÀûÀýÇÑ Á¾·á ¸Þ½ÃÁö Ãâ·Â, UI ÃʱâÈÈĶó¸é MessageBox ´ë½Å °ÔÀÓ UI¸¦ »ç¿ëÇصµ µÊ
      61. //wsprintf( msg, "°ÔÀÓ°¡µå ½ÇÇà ¿¡·¯ : %lu", dwResult );
      62. wsprintf( msg, m_strArray.GetAt(10), dwResult );
      63. lpszMsg = msg;
      64. break;
      65. }
      66. if( lpszMsg )
      67. ::Error( "nProtect GameGuard : %s", lpszMsg );
      68. // MessageBox( GetSafeHwnd(), lpszMsg, "nProtect GameGuard", MB_OK );
      69. ExitProcess( -1 );
      70. }
      71. // GetNProtect()->SetHwnd( GetSafeHwnd() );
      72. }
      Alles anzeigen

      Quellcode

      1. BOOL CALLBACK NPGameMonCallback( DWORD dwMsg, DWORD dwArg )
      2. {
      3. if( g_Neuz.m_strArray.GetSize() == 0 )
      4. return false;
      5. bool bAppExit = false;
      6. TCHAR msg[128];
      7. LPCTSTR lpszMsg = NULL;
      8. switch (dwMsg)
      9. {
      10. case NPGAMEMON_CHECK_CSAUTH2: // ¼ö·Î ÀÎÁõ ÆÐŶÀ» Àü¼Û
      11. {
      12. GG_AUTH_DATA AuthData;
      13. memcpy( &AuthData, (PVOID)dwArg, sizeof(GG_AUTH_DATA) );
      14. BEFORESENDSOLE( ar, PACKETTYPE_AUTHQUERY, DPID_UNKNOWN );
      15. ar.Write( (void*)&AuthData, sizeof(GG_AUTH_DATA) );
      16. SEND( ar, &g_dpLoginClient, DPID_SERVERPLAYER );
      17. if( g_Neuz.m_loginSI.nCount == 1 )
      18. {
      19. ++g_Neuz.m_loginSI.nCount;
      20. g_dpLoginClient.SendGetPlayerList( g_Neuz.m_loginSI.dwID, g_Neuz.m_loginSI.pszAccount, g_Neuz.m_loginSI.pszPassword );
      21. }
      22. return true;
      23. }
      24. case NPGAMEMON_COMM_ERROR:
      25. case NPGAMEMON_COMM_CLOSE:
      26. bAppExit = true;
      27. return false;
      28. case NPGAMEMON_INIT_ERROR: // "°ÔÀÓ°¡µå ÃʱâÈ¿¡·¯
      29. bAppExit = true;
      30. wsprintf( msg, g_Neuz.m_strArray.GetAt(17), dwArg );
      31. lpszMsg = msg;
      32. break;
      33. case NPGAMEMON_SPEEDHACK: // "½ºÇǵåÇÙÀÌ °¨ÁöµÇ¾ú½À´Ï´Ù."
      34. bAppExit = true;
      35. lpszMsg = g_Neuz.m_strArray.GetAt(18);
      36. break;
      37. case NPGAMEMON_GAMEHACK_KILLED: // "°ÔÀÓÇÙÀÌ ¹ß°ßµÇ¾ú½À´Ï´Ù."
      38. case NPGAMEMON_GAMEHACK_DETECT: // "°ÔÀÓÇÙÀÌ ¹ß°ßµÇ¾ú½À´Ï´Ù."
      39. bAppExit = true;
      40. lpszMsg = g_Neuz.m_strArray.GetAt(19);
      41. break;
      42. case NPGAMEMON_GAMEHACK_DOUBT: //"°ÔÀÓÀ̳ª °ÔÀÓ°¡µå°¡ º¯Á¶µÇ¾ú½À´Ï´Ù.";
      43. bAppExit = true;
      44. lpszMsg = g_Neuz.m_strArray.GetAt(20);
      45. break;
      46. }
      47. if( lpszMsg )
      48. MessageBox( g_Neuz.GetSafeHwnd(), lpszMsg, "nProtect GameGuard", MB_OK );
      49. if( bAppExit )
      50. {
      51. ExitProcess( -1 );
      52. return false;
      53. }
      54. return true;
      55. }
      Alles anzeigen
      Und fertig ;)


      Version im Login BG changen
      "Version im Login BG changen"
      Hallo,

      diesmal habe ich ein kleines "ShortTut" für euch ;)

      Hier dreht es sich um die "Version" die beim Login LINKS(!) oben steht.

      Zuerst:

      Was brauchen wir?


      • Ms Visual Studio 2003
      • _\Interface\ITheme.cpp
      • Gehirn,Finger etc.. also das übliche ;)


      Wir öffnen die ITheme.cpp mit Visual Studio 2003 und suchen den folgenden text:

      PHP-Quellcode

      1. void CTheme::SetVersion(int Lang)
      Hier finden wir diesen code:

      PHP-Quellcode

      1. void CTheme::SetVersion(int Lang)
      2. {
      3. sprintf( g_szVersion, "%s %s %d", __DATE__, __TIME__, Lang );
      4. }
      Dies giebt dann im Login Background zb aus [wenn wir die neuz am 18.03.2011 um 17.50 mit Language 1 gebuilded haben]:

      Quellcode

      1. Version 2011 18 MAR, 17:50, 1
      Dies können wir nun zb für Copyright Rechte changen.

      Ein Beispiel:

      PHP-Quellcode

      1. void CTheme::SetVersion(int Lang)
      2. {
      3. sprintf( g_szVersion, "ServerName rev 2|Developed by Cross" );
      4. }
      Die ausgabe hier:

      Quellcode

      1. Version: ServerName rev 2|Developed by Cross
      Das g_szVersion liefert den textbaustein "Version" und sollte daher immer vorne stehen.

      Wir können aber auch zb dies machen:

      PHP-Quellcode

      1. void CTheme::SetVersion(int Lang)
      2. {
      3. sprintf( g_szVersion, "ServerName rev 2|Developed by Cross| %s", __DATE__ );
      4. }
      Damit würden wir die ausgabe auf:

      Quellcode

      1. Version: ServerName rev 2|Developed by Cross| 2011 MAR 17
      umstellen.


      Wie immer gilt:
      C&P nur mit angabe der Credits!
      grüße
      cross


      "Cross Zitat"

      Cross;227608 schrieb:

      ;)

      hab noch was (klein aber fein)

      v15 Wetter system abschalten
      spoil
      hallo,

      viele 'unerfahrene' src Modder die alles C&P nehmen haben ein Problem, weil es weder regnet noch schneit etc.

      Dies liegt daran das in V15 ein neueres wetter system gecoded wurde, aber dies anscheinend nicht fertig ist/funktioniert.

      Hier zeige ich euch als Simples Tutorial wie ihr es abschalten und so auch wieder
      das Schnee und Regen EXP event nutzen könnt.

      Als erstes suchen wir:

      WORLDSERVER\VersionsCommon.h

      dort suchen wir nach:

      PHP-Quellcode

      1. #define __ENVIRONMENT_EFFECT
      Und ändern dies zu:

      PHP-Quellcode

      1. //v15 weather sys
      2. //#define __ENVIRONMENT_EFFECT
      Das //v15 weather sys ist eine gedächtnisstütze
      das // vor dem #define sagt das es nicht gelesen werden soll und somit die funktion nicht in Kraft tritt

      Nun suchen wir die datei:

      Neuz\VersionsCommon.h

      und suchen hier wieder nach:

      PHP-Quellcode

      1. #define __ENVIRONMENT_EFFECT
      Und ändern dies wieder zu:

      PHP-Quellcode

      1. //v15 weather sys
      2. //#define __ENVIRONMENT_EFFECT
      Nun nurnoch Worldserver + Neuz neu builden und das Wetter System ist wieder so, dass es Regnet + Schneit )

      Eigentlich keine große Arbeit, jedoch wissen es die meisten anscheinend nicht ;)

      Credits:
      100% cross (Weiterverbreitung nur unter angabe dieser Credits)
      greetings



      Ich werde es immer updaten.
      Ich hoffe es gefällt euch.

      MFG Luoo
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Infected;227555 schrieb:

      An sich gut gemacht
      aber beim GM vorm Shout hättest statt alles zu erklären [verstehen eh 0,1% der leute] einfach die end definition hinschreiben können und dann sagen wohin und wie man es ersetzen muss
      aber trotzdem danke :)


      da es mein Guide von In Gamers ist:
      Hab es extra in etappen gemacht das es besser zu sehn ist ;)
    • Emotion clientcrashfix:
      "Fix"
      Hier zeige ich euch, wie ihr es fixen könnt, dass der Client crasht, wenn ihr im chat !888888888888889 eingebt!
      Als erstes geht ihr in die _Common\DialogMsg.cpp und sucht nach der Funktion:

      Quellcode

      1. void CDialogMsg::AddMessage( CObj* pObj, LPCTSTR lpszMessage, DWORD RGB, int nKind, DWORD dwPStyle )

      <-- Sie befindet sich auf Zeile 813 -->

      Dannach sucht ihr in dieser Funktion nach dieser If-Schleife:

      Quellcode

      1. if( scanner.Token == "!" )
      2. {
      3. int nEmoticonIdx = scanner.GetNumber();
      4. AddEmoticon( pObj, nEmoticonIdx );
      5. return;
      6. }

      <-- Ab Zeile 856 -->

      Nun ersetzt ihr den bereits dastehenden Text durch den text, den ich hier jetzt angebe:

      Quellcode

      1. if( scanner.Token == "!" )
      2. {
      3. int nEmoticonIdx = scanner.GetNumber();
      4. if( nEmoticonIdx > MAX_EMOTICON_NUM )
      5. nEmoticonIdx = MAX_EMOTICON_NUM;
      6. else if( nEmoticonIdx < 0 )
      7. nEmoticonIdx = 0;
      8. AddEmoticon( pObj, nEmoticonIdx );
      9. return;
      10. }
      Alles anzeigen


      Und schon seit ihr fertig!


      Sro Fix[found on RZ]
      "SRO FIX"

      Quellcode

      1. BOOL TextCmd_SetRandomOption( CScanner & s )
      2. {
      3. #ifdef __WORLDSERVER
      4. CUser* pUser = (CUser*)s.dwValue;
      5. CItemElem* pItemElem = pUser->m_Inventory.GetAt( 0 );
      6. if( pItemElem )
      7. {
      8. int nRandomOptionKind = g_xRandomOptionProperty->GetRandomOptionKind( pItemElem );
      9. if( nRandomOptionKind >= 0 )
      10. {
      11. g_xRandomOptionProperty->InitializeRandomOption( pItemElem->GetRandomOptItemIdPtr() );
      12. int nDst, nAdj;
      13. int cb = 0;
      14. nDst = s.GetNumber();
      15. while( s.tok != FINISHED )
      16. {
      17. nAdj = s.GetNumber();
      18. if( nDst == 48 ) // Broken attribute
      19. break;
      20. if ( nDst > 96 || nDst < 1 ) // v16 max/min dst attribute
      21. break;
      22. if ( nAdj > 512 || nAdj < -512 ) // Prevent integer overflows
      23. break;
      24. g_xRandomOptionProperty->SetParam( pItemElem->GetRandomOptItemIdPtr(), nDst, nAdj );
      25. cb++;
      26. if( cb >= MAX_RANDOM_OPTION )
      27. break;
      28. nDst = s.GetNumber();
      29. }
      30. pUser->UpdateItemEx( (BYTE)( pItemElem->m_dwObjId ), UI_RANDOMOPTITEMID, pItemElem->GetRandomOptItemId() );
      31. }
      32. }
      33. #endif // __WORLDSERVER
      34. return TRUE;
      35. }
      Alles anzeigen

      With this, you will be able to set awakenings, such as:

      Quellcode

      1. /sro 68 50


      Bloomeffeckt verbessern:
      "Bloom"
      Sucht in der Neuz.cpp nach folgendenden Zeilen:

      Quellcode

      1. if( g_Option.m_nBloom == 1 )
      2. {
      3. if( m_d3dCaps.PixelShaderVersion >= D3DPS_VERSION(1,1) )
      4. g_Glare.Create( m_pd3dDevice, D3DFMT_R5G6B5], g_Option.m_nResWidth, g_Option.m_nResHeight - 48 );
      5. else
      6. g_Option.m_nBloom = 0;


      und ersetzt diese durch:

      Quellcode

      1. if( g_Option.m_nBloom == 1 )
      2. {
      3. if( m_d3dCaps.PixelShaderVersion >= D3DPS_VERSION(1,1) )
      4. g_Glare.Create( m_pd3dDevice, D3DFMT_A16B16G16R16F, g_Option.m_nResWidth, g_Option.m_nResHeight - 48 );
      5. else
      6. g_Option.m_nBloom = 0;


      Zuguter letzt müsste ihr noch in der Neuz.ini (im Client) folgende Zeile hinzufügen:

      Quellcode

      1. Bloom 1



      Den Gameguard aus eurem Source verbannen !
      "GG EnTF"
      Ihr müsst nur die Neuz.cpp bearbeiten!
      Sucht nach folgenden Zeilen und löscht sie, oder kommentiert sie aus ("//", "/*,*/"):

      Quellcode

      1. #include "NPGameLib4.h"

      Quellcode

      1. extern void PreInitNProtect();
      2. extern CNPGameLib* GetNProtect();


      Quellcode

      1. void CNeuzApp::InitNProtect()
      2. {
      3. CScript s1;
      4. if( s1.Load(MakePath( DIR_CLIENT, "GameGuard.txt.txt" ) ) )
      5. s1.LoadString();
      6. CScript s2;
      7. if( s2.Load(MakePath( DIR_CLIENT, "GameGuard.inc" ) ) )
      8. {
      9. s2.GetToken();
      10. while( s2.tok != FINISHED )
      11. {
      12. m_strArray.Add( s2.Token );
      13. s2.GetToken();
      14. }
      15. }
      16. PreInitNProtect();
      17. DWORD dwResult = GetNProtect()->Init();
      18. if( dwResult != NPGAMEMON_SUCCESS )
      19. {
      20. TCHAR msg[256];
      21. LPCSTR lpszMsg;
      22. switch (dwResult)
      23. {
      24. case NPGAMEMON_ERROR_EXIST:
      25. lpszMsg = m_strArray.GetAt(0);//"°ÔÀÓ°¡µå°¡ ÀÌ¹Ì ½ÇÇà Áß ÀÔ´Ï´Ù. ÀçºÎÆà ÈÄ ´Ù½Ã ½ÇÇàÇغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      26. break;
      27. case NPGAMEMON_ERROR_GAME_EXIST:
      28. lpszMsg = m_strArray.GetAt(1);//"°ÔÀÓÀÌ Áߺ¹ ½ÇÇàµÇ¾ú°Å³ª °ÔÀÓ°¡µå°¡ ÀÌ¹Ì ½ÇÇà Áß ÀÔ´Ï´Ù. °ÔÀÓ Á¾·á ÈÄ ´Ù½Ã ½ÇÇàÇغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      29. break;
      30. case NPGAMEMON_ERROR_INIT:
      31. lpszMsg = m_strArray.GetAt(2);//"°ÔÀÓ°¡µå ÃʱâÈ¿¡·¯ÀÔ´Ï´Ù. ÀçºÎÆà ÈÄ ´Ù½Ã ½ÇÇàÇغ¸°Å³ª Ãæµ¹ÇÒ ¼ö ÀÖ´Â ´Ù¸¥ ÇÁ·Î±×·¥µéÀ» Á¾·áÇÑ ÈÄ ½ÇÇàÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      32. break;
      33. case NPGAMEMON_ERROR_AUTH_GAMEGUARD:
      34. case NPGAMEMON_ERROR_NFOUND_GG:
      35. case NPGAMEMON_ERROR_AUTH_INI:
      36. case NPGAMEMON_ERROR_NFOUND_INI:
      37. lpszMsg = m_strArray.GetAt(3);//"°ÔÀÓ°¡µå ÆÄÀÏÀÌ ¾ø°Å³ª º¯Á¶µÇ¾ú½À´Ï´Ù. °ÔÀÓ°¡µå ¼Â¾÷ ÆÄÀÏÀ» ¼³Ä¡Çغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      38. break;
      39. case NPGAMEMON_ERROR_CRYPTOAPI:
      40. lpszMsg = m_strArray.GetAt(4);//"À©µµ¿ìÀÇ ÀϺΠ½Ã½ºÅÛ ÆÄÀÏÀÌ ¼Õ»óµÇ¾ú½À´Ï´Ù. ÀÎÅÍ³Ý ÀͽºÇ÷η¯(IE)¸¦ ´Ù½Ã ¼³Ä¡Çغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      41. break;
      42. case NPGAMEMON_ERROR_EXECUTE:
      43. lpszMsg = m_strArray.GetAt(5);//"°ÔÀÓ°¡µå ½ÇÇà¿¡ ½ÇÆÐÇß½À´Ï´Ù. °ÔÀÓ°¡µå ¼Â¾÷ ÆÄÀÏÀ» ´Ù½Ã ¼³Ä¡Çغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      44. break;
      45. case NPGAMEMON_ERROR_ILLEGAL_PRG:
      46. lpszMsg = m_strArray.GetAt(6);//"ºÒ¹ý ÇÁ·Î±×·¥ÀÌ ¹ß°ßµÇ¾ú½À´Ï´Ù. ºÒÇÊ¿äÇÑ ÇÁ·Î±×·¥À» Á¾·áÇÑ ÈÄ ´Ù½Ã ½ÇÇàÇغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      47. break;
      48. case NPGMUP_ERROR_ABORT:
      49. lpszMsg = m_strArray.GetAt(7);//"°ÔÀÓ°¡µå ¾÷µ¥ÀÌÆ®¸¦ Ãë¼ÒÇϼ̽À´Ï´Ù. Á¢¼ÓÀÌ °è¼Ó µÇÁö ¾ÊÀ» °æ¿ì ÀÎÅÍ³Ý ¹× ¹æÈ® »óŸ¦ Á¡°ËÇغ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      50. break;
      51. case NPGMUP_ERROR_CONNECT:
      52. case NPGMUP_ERROR_DOWNCFG:
      53. lpszMsg = m_strArray.GetAt(8);//"°ÔÀÓ°¡µå ¾÷µ¥ÀÌÆ® ¼ö Á¢¼Ó¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù. Àá½Ã ÈÄ Àç½Ãµµ Çغ¸°Å³ª, ÀÎÅÍ³Ý ¹× ¹æÈ® »óŸ¦ Á¡°ËÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      54. break;
      55. case NPGMUP_ERROR_AUTH:
      56. lpszMsg = m_strArray.GetAt(9);//"°ÔÀÓ°¡µå ¾÷µ¥ÀÌÆ®¸¦ ¿Ï·áÇÏÁö ¸ø Çß½À´Ï´Ù. ¹ÙÀÌ·¯½º °Ë»ç¸¦ Çغ¸½Ã°Å³ª, PC °ü¸® ÇÁ·Î±×·¥À» »ç¿ëÇÏ½Ã¸é ¼³Á¤À» Á¶Á¤ÇÑ ÈÄ °ÔÀÓÀ» ½ÇÇàÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.";
      57. break;
      58. case NPGAMEMON_ERROR_NPSCAN:
      59. default:
      60. // ÀûÀýÇÑ Á¾·á ¸Þ½ÃÁö Ãâ·Â, UI ÃʱâÈÈĶó¸é MessageBox ´ë½Å °ÔÀÓ UI¸¦ »ç¿ëÇصµ µÊ
      61. //wsprintf( msg, "°ÔÀÓ°¡µå ½ÇÇà ¿¡·¯ : %lu", dwResult );
      62. wsprintf( msg, m_strArray.GetAt(10), dwResult );
      63. lpszMsg = msg;
      64. break;
      65. }
      66. if( lpszMsg )
      67. ::Error( "nProtect GameGuard : %s", lpszMsg );
      68. // MessageBox( GetSafeHwnd(), lpszMsg, "nProtect GameGuard", MB_OK );
      69. ExitProcess( -1 );
      70. }
      71. // GetNProtect()->SetHwnd( GetSafeHwnd() );
      72. }
      Alles anzeigen


      Sucht nach der Zeile:

      Quellcode

      1. HRESULT CNeuzApp::InitDeviceObjects()

      Und in diesem Anweisungsblock steht folgender Befehl:

      Quellcode

      1. InitNProtect();

      löscht ihn oder kommentiert ihn aus


      Quellcode

      1. BOOL CALLBACK NPGameMonCallback( DWORD dwMsg, DWORD dwArg )
      2. {
      3. if( g_Neuz.m_strArray.GetSize() == 0 )
      4. return false;
      5. bool bAppExit = false;
      6. TCHAR msg[128];
      7. LPCTSTR lpszMsg = NULL;
      8. switch (dwMsg)
      9. {
      10. case NPGAMEMON_CHECK_CSAUTH2: // ¼ö·Î ÀÎÁõ ÆÐŶÀ» Àü¼Û
      11. {
      12. GG_AUTH_DATA AuthData;
      13. memcpy( &AuthData, (PVOID)dwArg, sizeof(GG_AUTH_DATA) );
      14. BEFORESENDSOLE( ar, PACKETTYPE_AUTHQUERY, DPID_UNKNOWN );
      15. ar.Write( (void*)&AuthData, sizeof(GG_AUTH_DATA) );
      16. SEND( ar, &g_dpLoginClient, DPID_SERVERPLAYER );
      17. if( g_Neuz.m_loginSI.nCount == 1 )
      18. {
      19. ++g_Neuz.m_loginSI.nCount;
      20. g_dpLoginClient.SendGetPlayerList( g_Neuz.m_loginSI.dwID, g_Neuz.m_loginSI.pszAccount, g_Neuz.m_loginSI.pszPassword );
      21. }
      22. return true;
      23. }
      24. case NPGAMEMON_COMM_ERROR:
      25. case NPGAMEMON_COMM_CLOSE:
      26. bAppExit = true;
      27. return false;
      28. case NPGAMEMON_INIT_ERROR: // "°ÔÀÓ°¡µå ÃʱâÈ¿¡·¯
      29. bAppExit = true;
      30. wsprintf( msg, g_Neuz.m_strArray.GetAt(17), dwArg );
      31. lpszMsg = msg;
      32. break;
      33. case NPGAMEMON_SPEEDHACK: // "½ºÇǵåÇÙÀÌ °¨ÁöµÇ¾ú½À´Ï´Ù."
      34. bAppExit = true;
      35. lpszMsg = g_Neuz.m_strArray.GetAt(18);
      36. break;
      37. case NPGAMEMON_GAMEHACK_KILLED: // "°ÔÀÓÇÙÀÌ ¹ß°ßµÇ¾ú½À´Ï´Ù."
      38. case NPGAMEMON_GAMEHACK_DETECT: // "°ÔÀÓÇÙÀÌ ¹ß°ßµÇ¾ú½À´Ï´Ù."
      39. bAppExit = true;
      40. lpszMsg = g_Neuz.m_strArray.GetAt(19);
      41. break;
      42. case NPGAMEMON_GAMEHACK_DOUBT: //"°ÔÀÓÀ̳ª °ÔÀÓ°¡µå°¡ º¯Á¶µÇ¾ú½À´Ï´Ù.";
      43. bAppExit = true;
      44. lpszMsg = g_Neuz.m_strArray.GetAt(20);
      45. break;
      46. }
      47. if( lpszMsg )
      48. MessageBox( g_Neuz.GetSafeHwnd(), lpszMsg, "nProtect GameGuard", MB_OK );
      49. if( bAppExit )
      50. {
      51. ExitProcess( -1 );
      52. return false;
      53. }
      54. return true;
      55. }
      Alles anzeigen


      Und fertig ;)


      So das wars erstmal !
      Greetings
    • Simple tut ;)
      (Grade geschrieben :3)
      "Version im Login BG changen"
      Hallo,

      diesmal habe ich ein kleines "ShortTut" für euch ;)

      Hier dreht es sich um die "Version" die beim Login LINKS(!) oben steht.

      Zuerst:

      Was brauchen wir?

      • Ms Visual Studio 2003
      • _\Interface\ITheme.cpp
      • Gehirn,Finger etc.. also das übliche ;)

      Wir öffnen die ITheme.cpp mit Visual Studio 2003 und suchen den folgenden text:

      PHP-Quellcode

      1. void CTheme::SetVersion(int Lang)
      Hier finden wir diesen code:

      PHP-Quellcode

      1. void CTheme::SetVersion(int Lang)
      2. {
      3. sprintf( g_szVersion, "%s %s %d", __DATE__, __TIME__, Lang );
      4. }
      Dies giebt dann im Login Background zb aus [wenn wir die neuz am 18.03.2011 um 17.50 mit Language 1 gebuilded haben]:

      Quellcode

      1. Version 2011 18 MAR, 17:50, 1
      Dies können wir nun zb für Copyright Rechte changen.

      Ein Beispiel:

      PHP-Quellcode

      1. void CTheme::SetVersion(int Lang)
      2. {
      3. sprintf( g_szVersion, "ServerName rev 2|Developed by Cross" );
      4. }
      Die ausgabe hier:

      Quellcode

      1. Version: ServerName rev 2|Developed by Cross
      Das g_szVersion liefert den textbaustein "Version" und sollte daher immer vorne stehen.

      Wir können aber auch zb dies machen:

      PHP-Quellcode

      1. void CTheme::SetVersion(int Lang)
      2. {
      3. sprintf( g_szVersion, "ServerName rev 2|Developed by Cross| %s", __DATE__ );
      4. }
      Damit würden wir die ausgabe auf:

      Quellcode

      1. Version: ServerName rev 2|Developed by Cross| 2011 MAR 17
      umstellen.


      Wie immer gilt:
      C&P nur mit angabe der Credits!
      grüße
      cross
    • Luoo;227606 schrieb:

      Cross das hab ich auch schon gefunden und wollte es morgen posten -.- xD aber nice ;)

      ;)

      hab noch was (klein aber fein)

      v15 Wetter system abschalten
      spoil
      hallo,

      viele 'unerfahrene' src Modder die alles C&P nehmen haben ein Problem, weil es weder regnet noch schneit etc.

      Dies liegt daran das in V15 ein neueres wetter system gecoded wurde, aber dies anscheinend nicht fertig ist/funktioniert.

      Hier zeige ich euch als Simples Tutorial wie ihr es abschalten und so auch wieder
      das Schnee und Regen EXP event nutzen könnt.

      Als erstes suchen wir:

      WORLDSERVER\VersionsCommon.h

      dort suchen wir nach:

      PHP-Quellcode

      1. #define __ENVIRONMENT_EFFECT
      Und ändern dies zu:

      PHP-Quellcode

      1. //v15 weather sys
      2. //#define __ENVIRONMENT_EFFECT
      Das //v15 weather sys ist eine gedächtnisstütze
      das // vor dem #define sagt das es nicht gelesen werden soll und somit die funktion nicht in Kraft tritt

      Nun suchen wir die datei:

      Neuz\VersionsCommon.h

      und suchen hier wieder nach:

      PHP-Quellcode

      1. #define __ENVIRONMENT_EFFECT
      Und ändern dies wieder zu:

      PHP-Quellcode

      1. //v15 weather sys
      2. //#define __ENVIRONMENT_EFFECT
      Nun nurnoch Worldserver + Neuz neu builden und das Wetter System ist wieder so, dass es Regnet + Schneit )

      Eigentlich keine große Arbeit, jedoch wissen es die meisten anscheinend nicht ;)

      Credits:
      100% cross (Weiterverbreitung nur unter angabe dieser Credits)
      greetings
    • Such nach

      Quellcode

      1. g_Neuz.m_bGPotatoAuth = ::GetLanguage() == LANG_GER || ::GetLanguage() == LANG_FRE;

      Du wirst das finden

      Quellcode

      1. if( g_Neuz.m_bGPotatoAuth )
      2. g_Neuz.m_bEncryptPWD = FALSE;

      änder es zu

      Quellcode

      1. if( g_Neuz.m_bGPotatoAuth )
      2. g_Neuz.m_bEncryptPWD = TRUE;


      und PW wird gecryptet auf Lang 6
    • @Luoo,

      muss in der Worldserver.ini die Lang auch auf 6 sein?

      // edit:

      habe beides ausprobiert zwar kommt jetzt nicht mehr "Passwort falsch" sondern direkt beim login drücken (bei acc und pw eingabe) freezt das fenster , musik läuft weiter, dann kurze zeit später crasht die neuz und einzig und allein steht dieser error in der error.txt:


      2011/ 4/10 20:01:39 CDPCertified.OnSrvrList
      Woran könnte das liegen q.q

      Quellcode

      1. // Handlers
      2. void CDPCertified::OnSrvrList( CAr & ar, DPID )
      3. {
      4. g_bRecvSvrList = TRUE;
      5. ar >> g_Neuz.m_dwAuthKey;
      6. ar >> g_Neuz.m_cbAccountFlag;
      7. long lTimeSpan = 0;
      8. #ifdef __BILLING0712
      9. // °áÀç°¡ 1ÀÏ ¹Ì¸¸ ³²Àº°æ¿ì, À¯Àú°¡ ·Î±×ÀÎ ÇÒ¶§ ¸î½Ã°£ ¸îºÐ ³²¾Ò½À´Ï´Ù ¶ó´Â ¸Þ¼¼Áö¸¦ º¸¿©ÁÖ´Â °Í
      10. ar >> lTimeSpan;
      11. #endif // __BILLING0712
      12. #ifdef __GPAUTH_01
      13. if( g_Neuz.m_bGPotatoAuth )
      14. {
      15. ar.ReadString( g_Neuz.m_szGPotatoNo, 10 );
      16. #ifdef __GPAUTH_02
      17. ar.ReadString( g_Neuz.m_szCheck, 255 );
      18. #endif // __GPAUTH_02
      19. }
      20. #ifdef __EUROPE_0514
      21. char szBak[MAX_ACCOUNT] = { 0,};
      22. ar.ReadString( szBak, MAX_ACCOUNT );
      23. if( lstrcmp( g_Neuz.m_szAccount, szBak ) )
      24. {
      25. Error( "CDPCertified.OnSrvrList" );
      26. exit( 0 );
      27. }
      28. #endif // __EUROPE_0514
      Alles anzeigen


      Teil in der Source
    • Offtopic:

      Kannst du mal mit deinem Kindergartenverhalten hier aufhören???!!!!
      Kriegst du nichts alleine gebacken oder was?

      B2T:

      habe beides ausprobiert zwar kommt jetzt nicht mehr "Passwort falsch" sondern direkt beim login drücken (bei acc und pw eingabe) freezt das fenster , musik läuft weiter, dann kurze zeit später crasht die neuz und einzig und allein steht dieser error in der error.txt:


      2011/ 4/10 20:01:39 CDPCertified.OnSrvrList
      Woran könnte das liegen q.q

      Quellcode

      1. // Handlers
      2. void CDPCertified::OnSrvrList( CAr & ar, DPID )
      3. {
      4. g_bRecvSvrList = TRUE;
      5. ar >> g_Neuz.m_dwAuthKey;
      6. ar >> g_Neuz.m_cbAccountFlag;
      7. long lTimeSpan = 0;
      8. #ifdef __BILLING0712
      9. // °áÀç°¡ 1ÀÏ ¹Ì¸¸ ³²Àº°æ¿ì, À¯Àú°¡ ·Î±×ÀÎ ÇÒ¶§ ¸î½Ã°£ ¸îºÐ ³²¾Ò½À´Ï´Ù ¶ó´Â ¸Þ¼¼Áö¸¦ º¸¿©ÁÖ´Â °Í
      10. ar >> lTimeSpan;
      11. #endif // __BILLING0712
      12. #ifdef __GPAUTH_01
      13. if( g_Neuz.m_bGPotatoAuth )
      14. {
      15. ar.ReadString( g_Neuz.m_szGPotatoNo, 10 );
      16. #ifdef __GPAUTH_02
      17. ar.ReadString( g_Neuz.m_szCheck, 255 );
      18. #endif // __GPAUTH_02
      19. }
      20. #ifdef __EUROPE_0514
      21. char szBak[MAX_ACCOUNT] = { 0,};
      22. ar.ReadString( szBak, MAX_ACCOUNT );
      23. if( lstrcmp( g_Neuz.m_szAccount, szBak ) )
      24. {
      25. Error( "CDPCertified.OnSrvrList" );
      26. exit( 0 );
      27. }
      28. #endif // __EUROPE_0514
      Alles anzeigen
      Teil in der Source

      Brauche immer noch ne Lösung fürs Problem:
    • Luoo;227172 schrieb:


      Bloomeffeckt verbessern:
      "Bloom"
      Sucht in der Neuz.cpp nach folgendenden Zeilen:

      Quellcode

      1. if( g_Option.m_nBloom == 1 )
      2. {
      3. if( m_d3dCaps.PixelShaderVersion >= D3DPS_VERSION(1,1) )
      4. g_Glare.Create( m_pd3dDevice, D3DFMT_R5G6B5], g_Option.m_nResWidth, g_Option.m_nResHeight - 48 );
      5. else
      6. g_Option.m_nBloom = 0;
      und ersetzt diese durch:

      Quellcode

      1. if( g_Option.m_nBloom == 1 )
      2. {
      3. if( m_d3dCaps.PixelShaderVersion >= D3DPS_VERSION(1,1) )
      4. g_Glare.Create( m_pd3dDevice, D3DFMT_A16B16G16R16F, g_Option.m_nResWidth, g_Option.m_nResHeight - 48 );
      5. else
      6. g_Option.m_nBloom = 0;
      Zuguter letzt müsste ihr noch in der Neuz.ini (im Client) folgende Zeile hinzufügen:

      Quellcode

      1. Bloom 1

      MFG Luoo


      Kann vllt jemand mal sagen was nen Bloomefeckt ist ? :D

      MFG