-
Posts
534 -
Credits
0 -
Joined
-
Last visited
-
Days Won
7 -
Feedback
0%
Content Type
Articles
Profiles
Forums
Store
Posts posted by eressea
-
-
no gamma patch = no more brightness in other windows when l2 is open? If yes = awesome.
Yes, exactly.
-
I'd have killed for this info in the past when I began playing with it.
Your droprate system is good that you dont need to mass-add drops to the npcdata if the server pop is too small or unstable for the korean system to work well. Lovely.
edit: rabbits event do work, I used it 2years ago or so
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?
-
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));
-
1
-
-
I figured I'd add one just for the hell of it...
No //announce character limit
Original: 4C 8B CB 4C 8B C6 BA 40 00 00 00 48 8D 8C 24 E0 00 00 00 E8 83 13 55 00 48 8D 8C 24 E0 00 00 00 E8 E6 0A 42 00Replace: 48 8B CE 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 E8 E6 0A 42 00Never was a big fan of random hex editing, way too lazy to write another extender guide though soI'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
-
engine dll maybe unpacked but seems packed again
You must be looking at a wrong file, I can easily debug it in IDA Pro
-
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
-
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
-
do you even know what that code is doing ? originaly , just setting to zero wouldnt explain the crash.
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 :))
-
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)
-
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 lineengine.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 == 0engine.dll:00CE80B6 mov ecx, [ecx+1Ch] <----- read dword ptr [0+1ch] -> CRASHengine.dll:00CE80B9 test ecx, 0x4000000engine.dll:00CE80BF jnz short loc_CE80C8engine.dll:00CE80C1 mov dword ptr [eax+10h], 0It 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 memoryengine.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 ecxengine.dll:00CE80B5 test ecx, 0x4000000engine.dll:00CE80BB jne 0CE80C8hengine.dll:00CE80BD nopengine.dll:00CE80BE nop <----- we saved 4 bytes :)engine.dll:00CE80BF nopengine.dll:00CE80C0 nopengine.dll:00CE80C1 mov dword ptr [eax+10h], 0There 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 07new: 8B 48 10 E3 16 8B 49 1C F7 C1 00 00 00 04 75 0B 90 90 90 90old: 83 78 10 00 74 13 8B 48 10 F7 41 1C 00 00 00 04 75 07new: 8B 48 10 E3 14 F7 41 1C 00 00 00 04 75 0b 90 90 90 90Enjoy ;) -
Can you please share the system folder you are using to run in windows 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)
-
Thank you.
What OS are you using to play L2?
I run the client on Win 10 (64bit) and the server on Win 2k8 SP2 server (64bit as well)
-
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 900x8abc4a:disable = 3B CE 45 0F 4C F1 (original)enable = 8D 74 24 A0 31 FFenjoy :)
-
It really works if you manage just to change the blowfish key? I don't think so
-
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 ;)
Gf Rev 83 Events
in Server Shares & Files [L2OFF]
Posted
Nice, thanks :)