Everything posted by verbrannt
-
Geodata Builder [Pre-Release]
https://github.com/madyanov/l2mapconv-public/releases Tool for building geodata from client files. Features: - Preview of the L2 map. - Preview of the existing L2J geodata. - Building new L2J geodata based on the loaded map geometry. See https://github.com/madyanov/l2mapconv-public for more information.
-
Simple Lineage 2 bot based on OpenCV
Thank you. Right now I can't record installation & configuration video tutorial. But you still can read documentation here: https://github.com/madyanov/l2-cv-bot/blob/master/README.md Yeah. You need to compile for 32-bit arch to get work. Also don't forget to use 32-bit OpenCV binaries. To compile read instructions in link I've provided above.
-
Simple Lineage 2 bot based on OpenCV
New version: https://github.com/madyanov/l2-cv-bot/releases/tag/v0.2 Features: * Far targets detection * NextTarget command support * Spoil & drop support * HP/CP/MP restoring Demo video:
-
Simple Lineage 2 bot based on OpenCV
Thx guys. I'm working now on far target detection algorithm, so hopefully it will be included in next release. It has much more false positives, but can be used as secondary target detection algorithm (with some heuristic rules) when primary can't find anything.
-
Simple Lineage 2 bot based on OpenCV
Simple Lineage II bot that uses Computer Vision to find possible targets and monitor HP/MP/CP. Written to learn C++ basics, but can be useful for someone. Download: https://github.com/madyanov/l2-cv-bot/releases Features NPC detection HP/MP/CP monitoring Mouse and keyboard emulation Stuck resolving TTS alarm subsystem (captcha, low HP, CP decreasing, etc.) Custom behavior support (LUA scripts) Buffs/debuffs monitoring How to use Interception driver is required for mouse and keyboard emulation. Install Interception driver (start `cmd.exe` as Administrator, then run `install-interception.exe /install`) and reboot Run Lineage II client, select character and teleport to any exp/farm location Run `run.bat "<title of the Lineage II client window>"` HP/CP/MP bars must be 100% at the moment of bot start, but if not, you should wait until they will be 100% and then press Space to reset bars position To stop press ESC or move mouse Customization Current version developed and tested using Windows 10 and Gracia Epilogue client, so with another Windows or Lineage II client it may not work. Edit `run.bat` file to customize CV for another client. Note that for colors used HSV and BGR color models Edit `Brain.cpp` to customize bot behavior. Custom runtime behavior scripts are not supported OS related stuff placed in these files: `Window.cpp`, `Capture.cpp`, `Input.cpp`, `Intercept.cpp`
-
legacy.lineage2.com
https://web.archive.org/web/*/legacy.lineage2.com
-
Lineage 2 GF AI Decompiler
Now working fine. Thx. It's because of bad original GF ai.obj. It has some classes at the end, that was written manually without compiler by RPG-Club team, and these classes contains some errors. BTW I can fix it by checking used, but not declared variables, and declare them if needed.
-
Lineage 2 GF AI Decompiler
After I've impletented this, I found, that compiler (GF by @eressea) doesn't work properly with {int, int, int, int} syntax of TelPosList property. I've got many errors during compilation: [d:\vss\globalbranch\work\overseas\ct2_final_0109\program\server\l2npc\fstring.h][112] Can't allocate buffer for fstring Compiler allocates buffer only for first 38 strings, any next string in OBJ file is empty. NASC that I'm trying to compile: https://mega.nz/#!WeA1WQKQ!2UxWCjQ8x6Y1IBFlJ7nvj8oIYQM6tKyESGleUmaOPhs
-
Lineage 2 GF AI Decompiler
Fixed.
-
Lineage 2 GF AI Decompiler
Yeah, wrong release title :) C1 support now only in c1-support branch.
-
Lineage 2 GF AI Decompiler
New release: https://github.com/madyanov/nasc-decompiler/releases/tag/v1.5 Fixed broken precedence & associativity (thx @master-toma for feedback) Recompiled AI now almost the same as original AI (at least C1, thx @master-toma for feedback) GF AI now decompiles without errors (no ignored classes) C1 datapack by @master-toma GD datapack updates by @ChaosPaladin Datapack format changes (enums.json -> pch.json, manual_pch.txt now parsed automatically) AI chronicles now detected automatically Added --output, --ignore & --config options --chronicle option renamed to --chronicles Decompiled AI examples: MEGA Your feedback & PRs are welcome.
-
[L2Off][Advext64][Vanganth] Il, Gf, Ge, Hf, Vanganth Il
Epilogue trial has missing border_of_nightmare area in settings.txt. So when you use SOE in Delusion Chamber, you appearing in Dimensional Rift.
-
Lineage 2 GF AI Decompiler
I've added issue for this. Result should have comment with original string like this: {1000003; -80749; 149834; 0} // 1000003 - 古鲁丁城镇
-
Lineage 2 GF AI Decompiler
Yeah. Associativity & precedence was broken. Fix in master.
-
Lineage 2 GF AI Decompiler
I've shared compiled OBJs right before your post. There's only 19 differences, and all is missing jump. Those missing jumps might be a breaks inside if inside select. I have an old issue for it. Idk, may be we're using different decompilers or something :) Anyway, smiles mode now enabled by default in branch c1-support. And you have only 35 files of 2200, I think it's not so bad.
-
Lineage 2 GF AI Decompiler
Original OBJ + Decompiled source + Recompiled OBJ: https://mega.nz/#!SSJ0FQ7L!EPXTDOTcGmy4QGJPIgZ7jMY7-AVQ9pcq_xfEHilwJzQ Almost no differences. Only missed jump, as you mentioned. Replaces made on both OBJs: L\d+ -> L0 S\d+ -> L0 \r\nL0\r\n -> \r\n Hope you would like the "((((((((((((((((((((((((((((((((((((((((" in decompiled source :D.
-
Lineage 2 GF AI Decompiler
Ok here I see difference. Looks like not logical operators bug, but IF statement bug. Also if c1 ai.obj was compiled with another compiler than you have, this differences can occur. Anyway original OBJ and recompiled OBJ produces same decompiled code. Do you have leaked (original) source of this class? UPD original code that produces identical to your ai.obj result: (HaveMemo(talker, @trial_of_scholar) == 1 && (OwnItemCount(talker, @dieters_diary) >= 1 && OwnItemCount(talker, @scripture_chapter_1) >= 1 && OwnItemCount(talker, @strong_liquor) >= 1)) So there's useless braces in the original ai.obj.
-
Lineage 2 GF AI Decompiler
Yes, of course. I know this. I've tried compile-decompile-recompile this code class guard_babenco { handler: EventHandler TALK_SELECTED(talker) { if (1 && 2 || 3 || 4) { Say("Hello"); } if (1 && (2 || 3 || 4)) { Say("Hello"); } } } And nothing changed. I've got same obj file as before decompilation. But if you have any unfixed example of broken nesting of logical operators, provide an obj. Of course if in OBJ we have something like 1 && (2 || 3 || 4) but after decompilation got 1 && 2 || 3 || 4 - it's a bug, and I need example. But if we have (1 && 2) || 3 || 4 in OBJ and after decompilation got 1 && 2 || 3 || 4 - it's not a bug.
-
Lineage 2 GF AI Decompiler
Idk what you're talking about :) I've fixed every bug from your feedback, even not bugs (like increment/decrement & select with one case). When you'll find another different obj code of course if will fix that.
-
Lineage 2 GF AI Decompiler
With modulo was different case. Modulo has same precedence as multiplication and division. I've tested it: 1 && 2 || 3; (1 && 2) || 3; 1 || 2 && 3; 1 || (2 && 3); 1 && (2 || 3); (1 || 2) && 3; First two lines compiles in absolutely identical stack machine code. Also line 3 == line 4. It's because the decompiler, that was used to produce that leaked code, has no checks of operator precedence. It just adds braces everywhere after each operands pop from stack.
-
Lineage 2 GF AI Decompiler
Fix of the select with one case in master. Modulo precedence fix in master. This only will be problem if multiplication in NASC compiler has the same precedence as addition. This only will be problem if OR has the same precedence as AND.
-
Lineage 2 GF AI Decompiler
Replace if (_code == 0) { if (_from_choice == 0 || HaveMemo(talker, @path_to_elven_scout) == 1 && GetMemoState(talker, @path_to_elven_scout) == 1) { ShowPage(talker, "guard_babenco_q0407_01.htm"); } } with select (_code) { case 0: if (_from_choice == 0 || HaveMemo(talker, @path_to_elven_scout) == 1 && GetMemoState(talker, @path_to_elven_scout) == 1) { ShowPage(talker, "guard_babenco_q0407_01.htm"); } break; } & check compiled code
-
Lineage 2 GF AI Decompiler
I think last “if” in this class should be “select” with one case inside. Jumps looks like “break” inside that case. I can’t test it today tho.
-
Lineage 2 GF AI Decompiler
Looks like nothing serious, only one missing shift stack pointer command :D I think is always at the end of the handlers? Can you post second type of difference?
-
Lineage 2 GF AI Decompiler
Comment from the start of the string? Can you post a part/class of your ai.obj where it fails. I'll fix it.