Jump to content

Recommended Posts

Posted (edited)

LINEAGE 2 QUEST DROP RATE CHANGER

Cvu4hH8.jpg

 

FOR WHAT DO YOU NEED THIS ? :
If you want increase quest item drop rate automatically , this program will be usefull ,
since to edit quest item drop rate you need edit ai.obj , find target random function ,
and taking in account that Lineage II (c4) have :
-305 quests.
-967 random functions related to quest item drop chance. (aprox value)
-650 npcs that gives one or more quest items. (aprox value)

Can be really weird task to adjust all quest drop rates of your server ,  and users just will ignore quets since usually them do not match with server rates , they probably level up 2 or 3 times before end quests of their level , and even if you increase quest reward probably doing a quest do not worth so L2 at least old chronicles ,  became just farm game .

---------------------------------------------------------


WHAT THIS PROGRAM DOES :
This program is able to scan all AI.obj NPC classes and determine the exact random function where each NPC decide to drop a quest item once he die.
Then it find the random function and replace constant numbers for a variable that user can understand and edit example :


class 1 medusa : warrior_agresive{

int 2_1_testimony_of_fate_medusa_ichor = 2;  //==
                       

int 100_50_test_of_the_war_spirit_hermodts_rib_bone = 50;  //>


EventHandler MY_DYING         

              i0 = gg::Rand( 100 );
              

          if( i0 > 100_50_test_of_the_war_spirit_hermodts_rib_bone)
              
          {
             
                  if( myself::OwnItemCount( c1, @hermodts_rib_bone ) == 0 )
                
              {

                  
              myself::GiveItem1( c1, @hermodts_rib_bone, 1 );
              }
              }

}


EXAPLANATION :

int 100_50_test_of_the_war_spirit_hermodts_rib_bone = 50;  //>   //This is the parameter , a variable number that can be easily edited

-int = integer value .
-100_50 represent the original values of the random function example : "i0 = gg::Rand( 100 );"  and "if( i0 > 100_50_test_of_the_war_spirit_hermodts_rib_bone)"  , originally was : "i0 = gg::Rand( 100 );"  ,  "if( i0 > 50)" .
-"//>" means the kind of condition in this case > that means MAJOR THAN so : if number between 1-100 , is major than 50 it will drop quest item.
-If we want increase rate we should lower the parameter and change 50 for 40  result will be 60% instead of 50% , math  formula : 100-(40/100)*100) = chance , be sure of undersand the kind of condition before edit a parameter , the parameter value do not represent its percent ...

 

i0 = gg::Rand( 100 );      // variable i0 = random number between 0 and 100

if( i0 > 100_50_test_of_the_war_spirit_hermodts_rib_bone)        // if 0-100 variable number  Major than 50 , user will receive item : @hermodts_rib_bone,

--------------------------------------------------------

CHRONICLE COMPATIBILITY:

C4 : Working and tested

INTERLUDE : AI (vanganth) : Working . But need decompile with decompiler modified for c6 (inside vanganth pack)

INTERLUDE : AI (depmax)  : The same than IL vanganth and if you compiled with depmax compiler , need setup it as compiler/decompiler on program

GF : AI vanganth : would need setup vanganth GF decompiler

GF : AI (depmax) : would need setup depmax H5/GF decompiler

H5 : AI (depmax) : would need setup depmax H5/GF decompiler
 

-----------------------------------------------------------------------------------------------

TO WORK WITH  GF / HF  of vanganth/depmax:

At GUI interface just setup COMPILER / DECOMPILER path for ones thats work with the chronicle and extender that you need.
But probably if you use other compiler/decompiler than default (c4) , the predefined commands that the program uses will not works if the compiler is different , so you need to replace default compiler parameters on config file of the program (there is not graphic interface for this)

This is advanced config parameters that you can change at config.ini

compile_parameter$NASC.exe -file    //For vanganth compiler it may "NC.exe -target "   *Important add the space too

decompile_parameter$denasc.exe -f   //For depmax compiler it may "DECOMPILE.bat -file "

nasc_rand$gg::Rand                  //For depmax compiler is "Rand"

nasc_dot$::                         //For depmax compiler is "."  //single dot


Those are the output text strings that the compiler gives after some error , or on sucess compile , if you using other compiler than default , run compiler manually , and check what output it gives when sucess and when error , and edit config.ini

compiler_error_message$ID Error

compiler_ok_message$Done in


---------------------------------------------------------

INSTRUCTIONS :

SETUP:
-OPEN SELECT AI FILE : click here to select the target ai.obj file  , it can be ai.obj (but in ASCII format , you can change format with notepad ) , or directly with already decompiled ai.nasc file
-DECOMPILER : Select decompiler program path
-Compiler : select compiler program path

BUILD AI MODES:
-MERGE RESULT WITH CURRENT AI : This method will process ai file , modify the ai classes that meets the conditions , compile them  , and finally will ask you to select ai.obj file (not decompiled) to replace original classes for modified ones. If some nasc class have compiler error , program will not merge it.
-BUILD NEW FULL AI.OBJ : This method will process ai file , modify the ai classes that meets the conditions , compile them , and build new ai.obj file from 0  (this method is not recommended because many of AI files can give errors during compile even if program do not modify them like : queen_ant , valakas , etc... and it would need to check all compiler errors and a lot of manual work , before have full working ai

PARAMETER MODES:
-PARAMETER PER CLASS : This mode will add drop item parameters on each npc class that have quest example :
class 1 medusa{
int 100_3 quest_medusa_1 = 33;
}
-DEFAULT NPC PARAMETERS : This mode will store all parameters on a file , then you must copy all parameters on default npc ,it may overload a npc.exe since quest parameters amount can be like 600-800 , and setup 600-800 parameters on all npc that descent from default npc ... , but it would be easier to edit manually when needed since all parameters are on a single class
-REPLACE PARAMETERS : This method will not setup parameters , just will replace old values for new ones acording to the multiplier , and conditions you setup. (I recomend run this mode , if you want to parse ai.obj more than one time , since once you add parameters on ai.obj you couldn't not parse again with this program)

QUEST DROP ITM RATES:
-RATE MULTIPLIER : On this field you setup the multiplier , default x3 so : int 100_3 quest_medusa_1 = 3;  ----> (3/100 * 100 = 3%)   We multiply the rate -------> (3*multiplier / 100 *100 = 9%)   -----> parameter value int 100_3 quest_medusa_1 = 30;
-RATE PERCENT TRIGGER : Here you must setup the minimum rate percent where program should apply multiplier , by default 15% so program will only multiply rates below 15% chance.
-MAX RATE PERCENT : Is needed because program may multiply rate value , if new chance value more than MAX RATE PERCENT , new chance will be adjusted to MAX RATE PERCENT.

MISC OPTIONS :
-SHOW CONSOLE : Check this , if you want see all compiler output (it will slow down the program)
-QUICK TEST : This is very interesting feature , check this if you dont want to compile , just generate a parsed ai file without compile it , so you can see all changes that the program does to ai , on nasc format that is readable for humans :)

 

 

 

Edited by madocter
  • Like 1
  • Upvote 3
Posted
2 hours ago, Akar0 said:

any links to download and try this software..??

 

Is not shareware , contact me to acquire : skype: madocter

  • 6 months later...
  • 3 weeks later...
Posted

Very nice tool, altho you can't really automate this procedure if you want a good result, you still have to manually tweak a lot of the quests to achieve balanced rewards in regards to quest time/difficulty. But gj nonetheless.

 

Since this is not shared, you mean you are selling it then?

  • Upvote 1
  • 4 months later...
Posted
On 6/23/2018 at 12:58 AM, sepultribe said:

Very nice tool, altho you can't really automate this procedure if you want a good result, you still have to manually tweak a lot of the quests to achieve balanced rewards in regards to quest time/difficulty. But gj nonetheless.

 

Since this is not shared, you mean you are selling it then?


Yes because it cost me weeks of work, well this program can create parameters for all quests it found and then you can put all parameters on default npc , and eventually change parameters from there by just edit ai.obj on txt without need of compile/decompile.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Posts

    • how do I make it so that you only deal damage to a mob if you have the right items equipped, like jewels, belt, underwear, bracelet, so if you don't have one of those items equipped, you don't deal any damage to the mob thanks
    • I always welcome bug reports and never ban ppl - until proven leaker - not sure where the "arrogant" part comes from, I would like to know what exactly let you think that (quote me please, and not 12y old quotes as the other frog meme dude). I request bug reports to be properly detailed, otherwise it's a waste of time. Other than that, I don't see where I have been arrogant. I got proper discussions with many ppl, not sure why you wouldn't be one of them.   I got 76 bug reports in my list (21 on forums, 55 on gitlab).   I have a single bug report regarding lvl 4 clan quest, which has to be tested since it's not even clear about what is supposed to be broken. Seven Signs was never reworked and is basically L2J based (we got a rework branch to test/commit with reworked AIs). Geoengine got no specific issues (at my knowledge), pathfinding was reworked lately to be way more performant, and I still try to improve performance using some pool system. Movement was partially fixed in latest 410, and probably will get another rework soon (notably reverting to the task wallclock).   "I" surely didn't spend 12y over geoengine - Hasha cared about geoengine during rev 334 / 354 / 390 / 395 and 397. It is solely his work, and always tagged as it. He was rewarded with money for his work, and almost a decade of aCis access.   aCis is a community work, things tagged with Tryskell is my work, the leftover is someone else work. 22 ppl worked as developers in this project over 14 years.   I would gladly accept whatever list of fixes/reports you have to share. You will even be rewarded (you probably know about cookie system), as anyone else sharing bug report or fixes.   My main concerns lately is the lack of decent L2OFF IL data, it is my main bottleneck actually. If you're aware about decent L2OFF data to parse, let me know.   Eventually reach me over Discord to speak, I don't want to continue the offtopic over that help request.
    • Your project doesn't compare to aCis; you have to be an idiot to use that. I know someone who bought the High Five "PREMIUM" version, which has the same bugs as the free version. If you want, I can share his latest premium version. Players are going through walls with their bad geoengine, falling under the Olympiad. If you want, I can record and prove what I'm saying. The aCis project is 50 steps ahead of yours and it's not even stable...
    • l2jteon, l2joneo l2jscoria etc etc. and from that we went to this 
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock