-
Posts
158 -
Joined
-
Last visited
-
Days Won
5 -
Feedback
100%
Content Type
Articles
Profiles
Forums
Store
Everything posted by MasterToma
-
Share [L2Off] L2 C1 Source Code
MasterToma replied to MasterToma's topic in Server Shares & Files [L2OFF]
@T1g3r7th This is ORIGINAL restored code, not a NEW one, written by me. NCSoft uses WinSocks everywhere, without any libraries and it uses Visual Studio 2003 for it :) -
Help [BUG] Seven Signs Mobs
MasterToma replied to Nevermind25's question in Request Server Development Help [L2OFF]
Do you use C4 PTS as a base? It's common problem on C4 original files, so maybe just a "some custom" won't be enough. Also, problem doesn't reproduce at 100%, according to my experience it's about 5% (so each 15-20 train), also - not at all catacombs. I saw it only in catacombs in near Giran harbor (40+ lvl if I remember correctly). 50+ lvl catacombs were good. So, most probably it's a geo-data or path nodes issue. How geo-data can affect AI? L2NPC has logic: 1. Follow the target using path-finding 2. If path wasn't found, increment failure counter, and try again 3. If path-finding failed 10 times, then AI tries to do recovery and tries to teleport to the attacker or to the some random spawn point in his territory. 4. All this is quite complex, catacombs have multi-layered geo, with a lot of corners and walls, so when user does train, he goes into some corner, maybe there pathfinding stops working. Also, due to bug in geo, Mob can't teleport to user (he is in corner - no good places), so mob "hangs", and can't act. @Nevermind25, could you provide more info? Do you see this bug only in some special catacombs, as I mentioned, or in all of them? Does it happen, when user goes into some corner, or when uses some complicated path to get the train? -
Help [BUG] Seven Signs Mobs
MasterToma replied to Nevermind25's question in Request Server Development Help [L2OFF]
I saw this also on retail PTS servers. Unfortunately, I'm far from C4 now, so can't help you here now. It might be geodata or AI related. For AI you can try to add debug prints to check, if attack desire event comes -
LF Quests & Items for Webpage
MasterToma replied to Mochuelo's question in Request Server Development Help [L2OFF]
https://mmo-dev.info/resources/lin-info.640/download -
Looking for help or skilled developer
MasterToma replied to Nevermind25's question in Request Server Development Help [L2OFF]
Usersockets - you are absolutely right here. L2Server (c1 and c4) doesn't always release sockets. Easiest way to do it - send CharacterSelect two times (ofc you need some booting tool here). Server will kick such a user, but socket will never be released. It's the only one of example. So some-one might just send those 2 CharacterSelect packets even with a good delay to avoid DDoS protection, but still might cause thousands of leaked sockets just in few hours (each socket instance occupies OS IO resoures). Why would some-one send this packet many times? First - to harm your server (memory/OS handlers leaks). Second - this is a popular trick to character dupe. Some-one might try to dupe character. Even if you have dupe-protection, socket still will be leaked -
Share [L2OFF C1/C4] PathMaker
MasterToma replied to MasterToma's topic in Server Shares & Files [L2OFF]
Hi, @pada I have tried to build only C1 geodata. -
Are you high? It's some random trash from PP extenders and L2Filter.exe app.
-
Received this message from INNOVA - Real or Fake?
MasterToma replied to AdenaBrinks's topic in General Discussion [English]
that's weird, man. Keep us updated. Here is one more thread on Ru forum about warnings from INNOVA :( -
Share [L2OFF C1/C4] PathMaker
MasterToma replied to MasterToma's topic in Server Shares & Files [L2OFF]
GF/GF-H5 compatible version is added. This version generates indexes with x_26 support, therefore is not compatible with C0-C6 L2Servers. MD5 of 77 zones are the same, as from original PathMaker64.exe panthode.bin MD5 6e f4 cb 8d 34 c1 85 36 42 d3 00 1d ae ae 88 11 pathnode.idx MD5 f8 2c f7 6c 9f 0b bc 69 2f 23 18 f7 e3 73 93 08 -
Hello, Finally I crashed PathMaker algo, and managed to reconstruct it. I checked files, produced by leaked C4 PathMaker.exe, they are the same as chechsums of files, produced by my PathMaker (77 zones): panthode.bin MD5 6e f4 cb 8d 34 c1 85 36 42 d3 00 1d ae ae 88 11 pathnode.idx MD5 d5 fe 45 50 d2 bd ad 25 e8 ed ef 6c 86 de 0e 31 So, this PathMaker is 100% compatible with C4 This time I also share algo overview together with PathMaker tool itself: For those of you, who knows geodata format, this description should be enough. At run-time, L2Server uses A-* pathfinding algo in order to navigate from point A to point B, using PathNodes and links between them in order to bypass obstacles. Detailed description of algo might be found here, unfortunately I don't have time to translate it to English.
-
Share Lineage 2 GF AI Decompiler
MasterToma replied to verbrannt's topic in Server Shares & Files [L2OFF]
Just add those custom functions as "func_26863220" into data/, and later on either skip them or figure out what they are needed for. Probably they are for Advext customs, so might be removed from decompiled code -
Sorry, topic is removed due to problems with "Innova" company. @Admins, please remove this topic.
- 4 replies
-
- 10
-
-
-
-
Are you sure it's "official"?
-
Request L2OFF Exp loss formula
MasterToma replied to Rootware's question in Request Server Development Help [L2OFF]
If he only would know it :D (exp loss depends on shieldDefenceRate? something new). But you are right about v14 - is "killedInDuel", v16 - is "arenaZones". As I wrote in first post, 1/4 exp loss is for PvP (including sieges). In C4 the same, as in C1. If you have some issues with exp loss on 10th level - do math itself using exp tables from C4 and provided formulas. I got about 8% for 10 lvl BTW: go to MMO-dev russian forum, there are plenty of decompiled code -
Request L2OFF Exp loss formula
MasterToma replied to Rootware's question in Request Server Development Help [L2OFF]
So, as expected - raw penalty formula in C4 is the same as in C1. Trick is, that calculated by GetExpDiePenalty() value is modified later on, taking into account other factors (it's only pve/pvp factors in C1, in C4 might be more) -
Request L2OFF Exp loss formula
MasterToma replied to Rootware's question in Request Server Development Help [L2OFF]
double __cdecl GetExpDiePenalty(int level) { double levelFactor; // st7@1 levelFactor = 10.0 - (double)(level - 1) * 0.125; if ( levelFactor <= 4.0 ) { levelFactor = 4.0; } return -((double)(g_expPenalty[level + 1] - g_expPenalty[level]) * (levelFactor * 0.01)); } int g_expPenalty = { 0, // 0 0, // 1 68, // 2 363, // 3 1168, // 4 2884, // 5 6038, // 6 11287, // 7 19423, // 8 31378, // 9 48229, // 10 71202, // 11 101677, // 12 141193, // 13 191454, // 14 254330, // 15 331867, // 16 426288, // 17 540000, // 18 675596, // 19 835862, // 20 1023784, // 21 1242546, // 22 1495543, // 23 1786379, // 24 2118876, // 25 2497077, // 26 2925250, // 27 3407897, // 28 3949754, // 29 4555796, // 30 5231246, // 31 5981576, // 32 6812513, // 33 7730044, // 34 8740422, // 35 9850166, // 36 11066072, // 37 12395215, // 38 13844951, // 39 15422929, // 40 17137087, // 41 18995665, // 42 21007203, // 43 23180550, // 44 25524868, // 45 28049635, // 46 30764654, // 47 33680052, // 48 36806289, // 49 40154162, // 50 45525133, // 51 51262490, // 52 57383988, // 53 63907911, // 54 70853089, // 55 80700831, // 56 91162654, // 57 102265881, // 58 114038596, // 59 126509653, // 60 146308200, // 61 167244337, // 62 189364894, // 63 212717908, // 64 237352644, // 65 271975263, // 66 308443198, // 67 346827154, // 68 387199547, // 69 429634523, // 70 474207979, // 71 532694979, // 72 606322775, // 73 696381369, // 74 804225364, // 75 931275828, // 76 1108571463, // 77 1309482881, // 78 1535687304, // 79 1788937098, // 80 2071061777, // 81 0, // 82 }; C1 code right from IDA, for PvE. For PvP/PK/Sieges it's 1/4 of calculated value -
Help L2OFF - Change l2server.exe name process.
MasterToma replied to dandiarena's question in Request Server Development Help [L2OFF]
As it was written - you have to rename all global (inside single OS instance) objects. To find them, open L2Server in IDA, find imported CreateFileMappingW/CreateMutexW functions. They accept hard-coded string. Now, you have to write extender to take those strings from config file instead of being hard-coded. You have to do the same with L2NPC as well, but look for OpenFileMappingW/CreateMutexW instead. Or you can skip "extender" part and just replace hard-coded strings in binary itself using some notepad++. Eg. change _L2SERVER_EXE_ to _L3SERVER_EXE_ - this small change allows you to run 2 instances. However, to be ran properly, all other shared memory objects should be changed as well -
Hello, I'm on the last stage for now with L2Server, and working with tooling as well, since I have all parsers done. So, next tool, which I share to public is l2cc: Lineage2 compiler collection for C1 format (C4 comes soon). It can produce all pre-compiled headers (PCH): category, item, skill and npc. It parses *data.txt using original L2Server ayacc parser specification, and produces pre-compiled headers, used by L2NPC component. Easiest way to use: copy l2cc.exe to the Script/ directory, and call l2cc.exe -c ./ -o ./ l2cc.exe -i ./ -o ./ l2cc.exe -n ./ -o ./ l2cc.exe -s ./ -o ./ It will read all neded files (./ argument) and store pch at ./ (-o argument) Use l2cc.exe -h for help Note: since l2cc.exe uses original L2Server ayacc parser specification, it also could be used for quick check, if your *data.txt is written according to grammar.
-
Share To learn IDA and C ++ ! Surprise !!
MasterToma replied to guytis's topic in Server Shares & Files [L2OFF]
I shared fixed CacheD, fixed L2NPC, fixed L2AuthD, fixed Quest/Macro compier, fixed NASC... what else.. I shared every fixed binary, I've got. I didn't share server, because I still haven't completed it. -
Share To learn IDA and C ++ ! Surprise !!
MasterToma replied to guytis's topic in Server Shares & Files [L2OFF]
First you published them (3 times only on this forum), then you wrote to me "I didn't want, sorry. It's my mouse clicked, it's not me!" Please, stop excuse yourself, it sounds miserable. I quit -
Share To learn IDA and C ++ ! Surprise !!
MasterToma replied to guytis's topic in Server Shares & Files [L2OFF]
@guytis, you missed something. When I shared that stuff with you, you wrote me many many times, that you will never share it without my approval. That's the key. I have full skype of your swears, that you would never share it. I can't demand you to contribute. It's your decision. You can leave. No-one contributes to project JUST from scratch. I always GIVE more, and GIVE first. And when you decided to quit, instead of leave/stop working on project, like other (you get a lot for nothing), you started blaming me, cursing and blackmailing me. I don't care about pathetic persons like you. My comments here are just a warnings for other, that your word costs nothing, and that you are quite sneaky. Warnings, nothing more. You started this PR, and did bring it to public. PS: just few works about my status (not related to topic, but to my work): I'm going to publish original NASC for C4 in few weeks. There are plenty of my leaks here and there, but I'm not going to stop my work, because it's my hobby ;) -
Share To learn IDA and C ++ ! Surprise !!
MasterToma replied to guytis's topic in Server Shares & Files [L2OFF]
Check my shares and contributions (1, 2, 3, 4, 5, 6, 7) and the gustavo ones. He didn't share anything apart from this work. Now ask the question - would some one share his job? Maybe, but not the gustavo. 95% of shared content belongs to me and ppl from CONTRIBUTORs file (old one, from 06.2018, nowadays more ppl helped me, including @zconll and other) Master Toma <master.toma87@gmail.com> Smelyj # helping with porting AuthD to support C1-C4, C6 client protocols with extenders (based on C1, like SINA) Volodymyr Melnychenko <lordofdest@gmail.com> # porting numerous of CacheD packeet handlers Renege # porting all admin packets, BBS packets Pulentolento <pulentolento@gmail.com> # Supported on CacheD admin packet handlers And Gustavo is missed there, since he did nothing. After few months of guiding and helping, gustavo finally completed copy-paste from C1 to C4 IDA to LogD and AuthD with my overview. Then I fixed most of C4 new methods. I prepared CacheD C4, sent it to him together with C1. But then gustavo imagined, that he is a King of RE, and would be able to decompile it by himself. So he ignored me for 2 months, saying that his grandma was sick, etc etc. And then he wrote that I exploit every one (hey, c'mon, whom did I exploit? Please write here in that topic!). Check the dates of files, especially C4 IDA's - they are all old, mostly done by me. C4 CacheD is 100% of mine (even thought it's quite empty - no value at all). Few days ago he was pissed off, since he realized, how miserable his RE/C++ skills, and I declined to help him. He tried to blackmail me, writing that he would share this stuff. I don't care much about this share, since one should be quite intelligent to use it. This PR should remind you how sneaky gustavo is. Now listen to his lie, since he didn't have literally anything to say. Cheated, lied, shared. Be aware of this guy. He will do the same again. -
Share [L2Off] L2 C1 Source Code
MasterToma replied to MasterToma's topic in Server Shares & Files [L2OFF]
@guytis Bless you -
Help Hour Lag
MasterToma replied to Nevermind25's question in Request Server Development Help [L2OFF]
There are IO buffer pools, limited to 4, 8 or 16 instances (depending on your machine and chronicles) and the same amount of IO threads. So simultaneously you can send 4 or 8 or 16 packets. And if you have 100 ppl online, at the 00:00 EXTRA 100 packets will be sent (apart from other packets, which are sending or queued for sending). Also, for L2Server MAX IO thread number depends on number of (virtual as well) processors. So, if you have machine with 4 cores, you will have only 4 IO buffer pools and 4 IO threads. This is pretty the reason for lag. Also, network throughput might be an issue as well. Bot most probably, both. -
Help Hour Lag
MasterToma replied to Nevermind25's question in Request Server Development Help [L2OFF]
00:00 and 06:00 are sunrise/sunset events - there are broadcasts to ALL users. This might be a bottleneck
