Jump to content

eressea

Legendary Member
  • Posts

    534
  • Credits

  • Joined

  • Last visited

  • Days Won

    7
  • Feedback

    0%

Everything posted by eressea

  1. Just fixed one last problem with rabbit event (added droptime + rename event_search -> event_search_manager) Do you have some tested events you can add?
  2. Maybe I'm bringing owls to Athens, but if it helped anyone... Ignore the [drop] section, it's my custom event drop system (percent, not korea based), just use droptime_... variables OR look down below the settings (if you're experienced) [coretimeteleport] eventperiod = 2006/08/15-00:01 ~ 2010/12/31-23:59 coretime = 20:0 ~ 23:59 priceratio = 50 dayoption = 1 ~ 5 [PCCafeCouponEvent] EventPeriod = 2006/08/15-00:01 ~ 2010/12/31-23:59 EventAddedPeriod = 2006/08/15-00:01 ~ 2010/12/31-23:59 EventOrdinal = 0 coupon_item_info = 0 [XmasSantaEvent] EventPeriod = 2006/08/14-00:01 ~ 2010/12/31-23:59 ;EventPeriod = 2016/05/25-00:00 ~ 2016/06/29-23:59 buff_id_count = 1 buff_id1 = 78905346 delay_time = 30 [YearCatchEvent] EventPeriod = 2006/08/14-00:01 ~ 2010/12/31-23:59 delay_time = 30 ; FIREWORKS ;[event] ;eventname = fireworks_event ;eventnpcname = fire_event ;flagsettingtime = 120000 ;event_doing = 1 ;dropitem_count = 0 ;droptime_count = 0 ;npctime_count = 1 ;npctime0= 2016/05/25-00:00 ~ 2016/06/29-23:59 ;timevariable_count = 0 ;[npcsetting] ;npcsetting_count = 1 ;npceventname0 = fire_event ;[drop] ;maxleveldifference = 8 ;count = 3 ;item0 = 6403 ;chance0 = 5.0 ;item1 = 6404 ;chance1 = 4.0 ;item2 = 6405 ;chance2 = 1.0 ; CHRISTMASS [trees, agathion] ;[event] ;eventname = christmas ;eventnpcname = christmas ;flagsettingtime = 120000 ;event_doing = 1 ;dropitem_count = 0 ;droptime_count = 0 ;npctime_count = 1 ;npctime0 = 2016/05/25-00:00 ~ 2016/06/29-23:59 ;timevariable_count = 0 ;[npcsetting] ;npcsetting_count = 1 ;npceventname0 = christmas ;[drop] ;maxleveldifference = 8 ;count = 4 ;item0 = 5556 ;chance0 = 6.0 ;item1 = 5557 ;chance1 = 6.0 ;item2 = 5558 ;chance2 = 15.0 ;item3 = 5559 ;chance3 = 3.0 ; CHRISTMASS [turkey] ;[event] ;eventname = br_xmas_event ;eventnpcname = br_xmas_event ;flagsettingtime = 600000 ;event_doing = 1 ;dropitem_count = 0 ;droptime_count = 1 ;droptime0 = 2016/05/25-00:00 ~ 2016/06/29-23:59 ;npctime_count = 1 ;npctime0 = 2016/05/25-00:00 ~ 2016/06/29-23:59 ;timevariable_count = 0 ; PIG EVENT ;[event] ;eventname = event_mutant_pig ;eventnpcname = event_mutant_pig ;flagsettingtime = 600000 ;event_doing = 1 ;dropitem_count = 0 ;droptime_count = 0 ;npctime_count = 9 ;npctime0 = 2016/06/11-20:00 ~ 2016/06/11-23:00 ;npctime1 = 2016/06/12-16:00 ~ 2016/06/12-17:00 ;npctime2 = 2016/06/12-20:00 ~ 2016/06/12-21:00 ;npctime3 = 2016/06/13-16:00 ~ 2016/06/13-17:00 ;npctime4 = 2016/06/13-20:00 ~ 2016/06/13-21:00 ;npctime5 = 2016/06/14-16:00 ~ 2016/06/14-17:00 ;npctime6 = 2016/06/14-20:00 ~ 2016/06/14-21:00 ;npctime7 = 2016/06/15-16:00 ~ 2016/06/15-17:00 ;npctime8 = 2016/06/15-20:00 ~ 2016/06/15-21:00 ;eventperiod = 2016/06/11-00:00 ~ 2016/06/18-23:59 ;timevariable_count = 0 ; ;[npcsetting] ;npcsetting_count = 1 ;npc_eventname0 = event_mutant_pig_manager ;; RAT EVENT ; ;[event] ;eventname = event_mutant_rat ;eventnpcname = event_mutant_rat ;flagsettingtime = 600000 ;event_doing = 1 ;dropitem_count = 0 ;droptime_count = 0 ;npctime_count = 9 ;npctime0 = 2016/06/12-12:00 ~ 2016/06/12-17:50 ;npctime1 = 2016/06/12-18:00 ~ 2016/06/12-23:50 ;npctime2 = 2016/06/13-00:00 ~ 2016/06/13-23:50 ;npctime3 = 2016/06/14-00:00 ~ 2016/06/14-22:00 ;npctime4 = 2016/06/14-23:30 ~ 2016/06/15-00:30 ;npctime5 = 2016/06/15-10:00 ~ 2016/06/15-11:00 ;npctime6 = 2016/06/15-12:00 ~ 2016/06/15-13:00 ;npctime7 = 2016/06/15-14:00 ~ 2016/06/15-15:00 ;npctime8 = 2016/06/15-16:00 ~ 2016/06/15-17:00 ;eventperiod = 2016/06/12-00:00 ~ 2016/06/16-23:59 ;timevariable_count = 0 ; ;[npcsetting] ;npcsetting_count = 1 ;npc_eventname0 = event_mutant_rat_manager ; SEARCH EVENT - rabbits - MAYBE DOESN'T WORK AS EXPECTED, I'M STILL TESTING IT ; you need to go through npcpos.txt and change [EventName]=[event_search] ; to [EventName]=[event_search_manager] everywhere EXCEPT npc event_search_thing [event] eventname = event_search eventnpcname = event_search flagsettingtime = 600000 event_doing = 1 dropitem_count = 0 droptime_count = 1 droptime0 = 2016/06/14-00:00 ~ 2016/06/19-23:59 npctime_count = 8 npctime0 = 2016/06/15-00:00 ~ 2016/06/15-13:00 npctime1 = 2016/06/15-14:00 ~ 2016/06/15-23:00 npctime2 = 2016/06/16-00:00 ~ 2016/06/16-13:00 npctime3 = 2016/06/16-14:30 ~ 2016/06/16-23:30 npctime4 = 2016/06/17-10:00 ~ 2016/06/17-13:00 npctime5 = 2016/06/17-14:00 ~ 2016/06/17-23:00 npctime6 = 2016/06/18-00:00 ~ 2016/06/18-13:00 npctime7 = 2016/06/18-14:00 ~ 2016/06/18-23:00 eventperiod = 2016/06/14-00:00 ~ 2016/06/19-23:59 timevariable_count = 0 [npcsetting] npcsetting_count = 1 npc_eventname0 = event_search_manager I'll probably add more when I test it Okay, if you want my event drop system (flat probability based): hook bool CNPC::Die(CCreature *killer) at 0x72972C, do some random rolling and if desired, call 0x533E44 (add drop to given NPC) BEFORE proceeding to 0x72972C: typedef bool(__thiscall *t)(CCreature*, int, UINT64, bool, int, int, int, void*, int, void*); t f = (t) 0x00533E44; UINT32 itemOptionKey[2]; itemOptionKey[0] = 0; itemOptionKey[1] = 0; UINT16 baseAttribute[8]; baseAttribute[0] = 0xfffe; for (size_t i = 1 ; i < 8 ; ++i) { baseAttribute[i] = 0; } return f(this, itemId, count, false, 0, 0, 0, reinterpret_cast<void*>(itemOptionKey), 0, reinterpret_cast<void*>(baseAttribute));
  3. I'm no fan of hex editing, I do everything inside my extender. These are only some tiny bits that can be used without any C++ coding, function hooking, fake vtables etc. EDIT: Brand new one (BUT NOT TESTED YET, JUST PATCHED LIVE IN MEMORY ON MY TESTERVER :)) Original: 84 C0 74 47 41 B8 74 00 00 00 48 8D 15 6A E7 4F Remove annoying //load_npcsetting time condition ("can't load npc setting within 12 min."): 30 C0 74 47 41 B8 74 00 00 00 48 8D 15 6A E7 4F
  4. You must be looking at a wrong file, I can easily debug it in IDA Pro
  5. Hi, people ask me for client files I use, you can download it here: https://osamelahora.cz/gracia-client-w10.zip it contains - unpacked l2.exe (not by me) - unpacked engine.dll (not by me) with my crash fix - unpacked nwindow.dll (not by me) - d3ddrv.dll with my nogamma patch + agp message removed
  6. Hi, you can freely use these (just hexedit GF rev 83 l2server.exe and replace what you want): Original: 84 C0 74 23 48 8B 03 BA A8 0A 00 00 48 8B CB FF Allow skills on airships: 30 C0 74 23 48 8B 03 BA A8 0A 00 00 48 8B CB FF Original: 00 00 41 8A D7 49 8B CC E8 DF F7 FF FF Keep buffs on mount: 00 00 41 8A D7 49 8B CC 90 90 90 90 90 Original: F8 E6 01 B2 01 48 8B CD E8 67 D7 FE FF Keep buffs on dismount: F8 E6 01 B2 01 48 8B CD 90 90 90 90 90 Original: 8B 07 BA EC 02 00 00 48 8B CF FF 90 F8 07 00 00 90 If mob moves and skill fails (distance), at least auto attack it: 89 FA 4C 89 E9 90 90 90 90 90 B8 9C 0A 71 00 FF D0 Original: C7 43 18 1E 00 00 00 BA E8 03 00 00 41 B8 02 00 Shutdown 180 seconds: C7 43 18 B4 00 00 00 BA E8 03 00 00 41 B8 02 00 Shutdown n seconds: C7 43 18 nn0 nn1 nn2 nn3 BA E8 03 00 00 41 B8 02 00
  7. Not in the global scope, but for example the first one is in UGameEngine::LoadMapThread. They call something like UObjectLoader *res = UObject::GetLoader(something); if (res->var84h[something2]->var10h) { here they access res->var84h[something2]->var10h->var1c which is totally wrong if you don't have mutex here } so my fix does simply this: void *someptr = res->var84h[something2]->var10h; if (*someptr) { now i work with someptr which is copy } the best solution would be to add mutexes, but I don't have the source code :))
  8. Problems - you mean EXP bar showing only percent sign? Unfortunatelly I don't know where I found these files - it's not my work (except d3ddrv.dll where I removed the annoying AGP message and disabled gamma correction)
  9. There's a race condition error in engine.dll: engine.dll:00CE80AA lea eax, [eax+edx*4] engine.dll:00CE80AD cmp dword ptr [eax+10h], 0 <----- now it's not 0, so it won't jump on the next line engine.dll:00CE80B1 jz 0CE80C8h -- meanwhile some other thread sets dword ptr [eax+10h] to 0 -- engine.dll:00CE80B3 mov ecx, [eax+10h] <----- so now we have ecx == 0 engine.dll:00CE80B6 mov ecx, [ecx+1Ch] <----- read dword ptr [0+1ch] -> CRASH engine.dll:00CE80B9 test ecx, 0x4000000 engine.dll:00CE80BF jnz short loc_CE80C8 engine.dll:00CE80C1 mov dword ptr [eax+10h], 0 It can be fixed this way: engine.dll:00CE80AA lea eax, [eax+edx*4] engine.dll:00CE80AD mov ecx, [eax+10h] <----- we copy that value from memory engine.dll:00CE80B0 jecxz 0CE80C8h <----- and compare it this way - jecxz is a nice instruction :) engine.dll:00CE80B2 mov ecx, [ecx+1ch] <----- even if some other thread resets dword ptr [eax+10h], we have still copy in ecx engine.dll:00CE80B5 test ecx, 0x4000000 engine.dll:00CE80BB jne 0CE80C8h engine.dll:00CE80BD nop engine.dll:00CE80BE nop <----- we saved 4 bytes :) engine.dll:00CE80BF nop engine.dll:00CE80C0 nop engine.dll:00CE80C1 mov dword ptr [eax+10h], 0 There are two occurrences of this bug in engine.dll, to fix them both replace following (in unpacked engine.dll ofc) old: 83 78 10 00 74 15 8B 48 10 8B 49 1C F7 C1 00 00 00 04 75 07 new: 8B 48 10 E3 16 8B 49 1C F7 C1 00 00 00 04 75 0B 90 90 90 90 old: 83 78 10 00 74 13 8B 48 10 F7 41 1C 00 00 00 04 75 07 new: 8B 48 10 E3 14 F7 41 1C 00 00 00 04 75 0b 90 90 90 90 Enjoy ;)
  10. Gracia Final Windows 10 fix: https://osamelahora.cz/update-nogamma/files/system-oh/engine.dll (needed for W10) https://osamelahora.cz/update-nogamma/files/system-oh/l2.bin (needed for W10, rename it to l2.exe if you don't have l2.bin in your system) https://osamelahora.cz/update-nogamma/files/system-oh/NWindow.dll (needed for W10) https://osamelahora.cz/update-nogamma/files/system-oh/D3DDrv.dll (some fixes)
  11. I run the client on Win 10 (64bit) and the server on Win 2k8 SP2 server (64bit as well)
  12. hello, just didn't want to keep this for myself (took 3 hours with assembler) global shout disable/enable: 0x8abc3a: disable = 45 3B D4 45 0F 4C E2 (original) enable = 31 DB 89 5C 24 3C 90 0x8abc4a: disable = 3B CE 45 0F 4C F1 (original) enable = 8D 74 24 A0 31 FF enjoy :)
  13. It really works if you manage just to change the blowfish key? I don't think so
  14. Hi guys, here the hated lame admin :) I can't give you link to system.zip, cause we're not using it anymore, so you'll have to use http://eressea.cz/Launcher.exe, I'm pretty sure you'll figure out what to do. I'm curious how much time will you need to break in ;)
×
×
  • Create New...