Jump to content

eressea

Legendary Member
  • Posts

    534
  • Credits

  • Joined

  • Last visited

  • Days Won

    8
  • Feedback

    0%

Everything posted by eressea

  1. Also every sane admin will require only instructions how to reproduce the bug - definitely not testing it in wild by changing some char's level (and it could be considered supporting a player that wants to delevel quickly) :D
  2. You're right, there's no such command (at least in leaked Gracia Final)
  3. How do you mean that? You need NPC with multisell with all S grade recipes? If so, make a list of recpies you need there (you can find names in item_pch.txt), create your own multisell (in multisell.txt, give it ID 1000+), create some npc (copy existing npc that is merchant in npcdata.txt and npc_pch.txt), create AI class for it (can be just empty class derived from citizen) or set it's class to be just citizen and create html for it that will contain <a action="bypass -h menu_select?ask=-303&reply=YOURMULTISELLID">Buy recipes</a>
  4. We've used l2server_l2off_gracia_final_83, unfortunately I don't have it (we've made lot of fixes there, some quest rates etc), now we're using Epilogue data mixed from GF data, Freya leak and AdvExt Epilogue from year 2016 (found somewhere on net)
  5. My fault, there was conflict because of CUser.obj from Server and CUser.obj (newly added) from Cached. As I compile it in Visual Studio 2015, I haven't noticed. Fixed, just git pull and it should compile.
  6. Nice servers we have in 2017 :D
  7. Do you have header there? Create header.txt in ai folder: SizeofPointer 8 SharedFactoryVersion 69 NPCHVersion 79 NASCVersion 2 NPCEventHVersion 2 Debug 0 and add it as first file loaded in classes.txt
  8. That was true on Gracia Final, on Epilogue the buy/sell/refund window doesn't close and shows the message that transaction was done.
  9. MyExt64 now supports Item Refund, if you find any bug, please let me know :)
  10. It's 3 different instances, you select which one you want before you enter. I also haven't play official but there's Freya leak and it's visible there <html> <head></head> <body> Pathfinder Worker:<br> Pirate King Zaken once lived here. But it's been said that he may have allied himself with the invaders from the Dream World, which is why adventurers seeking to challenge him now cannot find him.<br> We believe that he has now created a giant Dream Dimension by drawing on the power of night.<br> Because of that, Zaken was separated into two individuals, a corporeal one during the day and the other one during the night. He is more powerful now than ever, and he has been attacking the real world from the Dream Dimension.<br> <a action="link zaken_enter002.htm">Ask how to fight Nighttime Zaken.</a><br> <a action="link zaken_enter002a.htm">Ask how to fight Daytime Zaken.</a><br> <a action="link zaken_enter002b.htm">Ask how to fight Daytime Zaken (Difficult).</a> </body> </html> There's no leak for Epilogue but it's generally known that there was no level 83 Zaken ("Daytime Zaken Difficult") and it was added on Freya. Also thanks for the offer but I even don't have java installed on the server :D
  11. On Gracia Final there was just one Zaken and wasn't instanced (so it was same as on C4). On Gracia Epilogue it was made an instance and you can pick Daytime Zaken which is relatively easy, but drops Zaken Earring with just 0.09 % chance or Night Zaken which is designed for whole command channel, where the chance of dropping epic jewel is much greater (I think 85 %). On Freya there's also Day Zaken level 83 but there's low chance (0.09 %) too. From H5 on I don't know...
  12. Probably not 100% accurate: Kill gremlin, wait when it respawns, kill it again, if it respawns always on the same spot, it's probably l2j
  13. Open GeneralSettings.ini and set DISABLE_ADVEXT_AD=true
  14. That error has nothing to do with cached. Also I currently do almost nothing with cached https://bitbucket.org/l2shrine/extender-public/src/10b68191202e0796c0f447825420187efc124ee3/MyExt64/Cached/Cached.cpp?at=master&fileviewer=file-view-default
  15. I'd say it's way too custom to call it so, also it seems it's java emulator
  16. 1172 online now, usually around 1500 during evening bit better than my server - but we'll see in 2018 :)
  17. Ofc, where do you play atm? Just ignore this wyzard
  18. What's the purpose of the forum? It's for your server players? Or who? Btw phpbb default skin, srsly?
  19. Screenshot? Do you have VS2005 SP1 installed?
  20. Did you try using updated system with protocol 87? Unfortunately I don't have link
  21. It doesn't create exe files, it creates only MyExt64.dll. Use exe files from here: http://download.l2shrine.com/L2ServerMyExt64.exe http://download.l2shrine.com/CachedMyExt64.exe http://download.l2shrine.com/L2NPCMyExt64.exe
  22. You can't run DLL file. Did it create MyExt64.dll in server directory? If so, you're done :)
  23. Hi, I've found a nice way to get better GPF crash reports from the client: It's simple, there are just few things that must be done to get it working. 1. Create buffer for register and modules dump and function that fills it: wchar_t MyExceptionBuffer[0x1000]; LONG WINAPI MyUnhandledExceptionFilter(_In_ struct _EXCEPTION_POINTERS *ExceptionInfo) { if (ExceptionInfo->ExceptionRecord->ExceptionCode == EXCEPTION_ACCESS_VIOLATION) { wsprintf( MyExceptionBuffer, L"EAX=0x%08X CS=0x%04X EIP=0x%08X EFLGS=0x%08X\r\n" L"EBX=0x%08X SS=0x%04X ESP=0x%08X EBP=0x%08X\r\n" L"ECX=0x%08X DS=0x%04X ESI=0x%08X FS=0x%04X\r\n" L"EDX=0x%08X ES=0x%04X EDI=0x%08X GS=0x%04X\r\n" L"\r\n" L"l2.exe: 0x%08X\r\n" L"core.dll: 0x%08X\r\n" L"engine.dll: 0x%08X\r\n" L"nwindow.dll: 0x%08X\r\n", ExceptionInfo->ContextRecord->Eax, ExceptionInfo->ContextRecord->SegCs, ExceptionInfo->ContextRecord->Eip, ExceptionInfo->ContextRecord->EFlags, ExceptionInfo->ContextRecord->Ebx, ExceptionInfo->ContextRecord->SegSs, ExceptionInfo->ContextRecord->Esp, ExceptionInfo->ContextRecord->Ebp, ExceptionInfo->ContextRecord->Ecx, ExceptionInfo->ContextRecord->SegDs, ExceptionInfo->ContextRecord->Esi, ExceptionInfo->ContextRecord->SegFs, ExceptionInfo->ContextRecord->Edx, ExceptionInfo->ContextRecord->SegEs, ExceptionInfo->ContextRecord->Edi, ExceptionInfo->ContextRecord->SegGs, GetModuleHandleA("l2.exe"), GetModuleHandleA("core.dll"), GetModuleHandleA("engine.dll"), GetModuleHandleA("nwindow.dll")); } return 0; } 2. Call AddVectoredExceptionHandler: AddVectoredExceptionHandler(1, MyUnhandledExceptionFilter); 3. Don't forget to initialize the buffer MyExceptionBuffer[0] = 0; 4. Now if it crashes, MyExceptionBuffer will be filled with register dump - now we have to hack it so it will be shown. Create function that wraps appStrncat: wchar_t* appStrncatWrapper(wchar_t *destination, const wchar_t *source, int maxCount) { if (std::wstring(L"MainLoop") != source || !MyExceptionBuffer[0]) { return wcsncat(destination, source, maxCount); } std::wstring data(source); data += L"\r\n\r\n"; data += MyExceptionBuffer; return wcsncat(destination, data.c_str(), maxCount); } 5. Hook our appStrncatWrapper function to the right place - this example is for interlude, for other clients you have to use IDA and find the same code: WriteInstructionCall(reinterpret_cast<UINT32>(GetModuleHandle(L"core.dll")) + 0x52287, reinterpret_cast<UINT32>(appStrncatWrapper)); Now when the client crashes with GPF error (access violation) and the code is called from MainLoop, you'll see nice crash info with details :) Enjoy!
  24. I think this worked https://uloz.to/!sie8CPwYt/visual-studio-2005-professional-edition-zip
×
×
  • Create New...