Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.02 KB | None | 0 0
  1.         start(){
  2.             set waitfor = FALSE;
  3.  
  4.             var
  5.                 fakeCount = fakeDifficulty(mobRef.difficultyLevel);
  6.                 cFake = 0;
  7.                 fakeTime = 0;
  8.  
  9.             checkFlightDensity();
  10.             checkTarget();
  11.  
  12.             refreshTime = (world.time + 1 SECONDS);
  13.  
  14.             RUNNING = TRUE;
  15.  
  16.             sleep(5); // AI initial delay.
  17.  
  18.             while(RUNNING && src && mobRef){
  19.  
  20.                 if(mobRef && !mobRef.fCombat.hostileTargets.len){
  21.                     reset();
  22.                     RUNNING = FALSE;
  23.                 }
  24.  
  25.                 if(mobRef && mobRef.fCombat.lastTarget && !mobRef.resting && mobRef.fCombat.lastTarget:stunned && !mobRef.fCombat.comboList["[mobRef.fCombat.lastTarget:ID]"] && mobRef.curreng < 50){
  26.                     alaparser.parse(mobRef, "rest", list());
  27.                     while(mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:stunned){ sleep(world.tick_lag); }
  28.                 }
  29.  
  30.                 if(mobRef && mobRef.resting && mobRef.loc == mobRef.fCombat.lastTarget:loc || mobRef && mobRef.resting && mobRef.fCombat.lastTarget:loc != mobRef.loc && mobRef.curreng > 50){
  31.                     alaparser.parse(mobRef, "wake", list());
  32.                 }
  33.  
  34.                 if(mobRef && mobRef.fCombat.lastTarget && length(mobRef.kiAttks) > 0 && mobRef.fCombat.lastTarget:stunned && mobRef.curreng > 40 && !cooldownLen(mobRef.name) && mobRef.difficultyLevel > EASY){
  35.                     while(mobRef.atkDat) { sleep(world.tick_lag); }
  36.  
  37.                     /* GOTO DIFF ROOM? */
  38.                     var/dir = pick("n","s","e","w");
  39.                     if(mobRef.density){ alaparser.parse(mobRef, "fly", list()); }
  40.                     alaparser.parse(mobRef, "fly 5 [dir]", list());
  41.                     /* GOTO DIFF ROOM? */
  42.  
  43.                     /* CHARGE OUR ATTACK? */
  44.                     var/kiAttkx = pick(mobRef.kiAttks);
  45.                     alaparser.parse(mobRef, "[kiAttkx] [mobRef.fCombat.lastTarget:name]", list());
  46.                     while(mobRef.kiAttk && mobRef.kiAttk.chCount < mobRef.kiAttk.mnCh) { sleep(world.tick_lag); }
  47.                     alaparser.parse(mobRef, "[kiAttkx] [mobRef.fCombat.lastTarget:name]", list());
  48.                     /* CHARGE OUR ATTACK? */
  49.                 }
  50.  
  51.                 sleep(8); // Delay before starting a new attack loop;
  52.  
  53.                 if(src && mobRef){
  54.  
  55.                     if(mobRef && !mobRef.fCombat.lastTarget && length(mobRef.fCombat.hostileTargets) > 0){
  56.                         mobRef.fCombat.lastTarget = pick(mobRef.fCombat.hostileTargets)
  57.                     }
  58.  
  59.                     if(mobRef && mobRef.fCombat.lastTarget){
  60.                         mobRef.simultaneous = mobRef.fCombat.lastTarget:simultaneous
  61.                     }
  62.  
  63.                     while(mobRef && mobRef.checkTargeted(ENERGY) && mobRef.loc != mobRef.fCombat.lastTarget:loc){ sleep(world.tick_lag) }
  64.  
  65.                     if(mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:unconscious && mobRef.difficultyLevel > EASY){
  66.                         alaparser.parse(mobRef, "snapneck [mobRef.fCombat.lastTarget:name]", list());
  67.                     }else if(mobRef && mobRef.fCombat.lastTarget && (/Command/Technique/elbow in mobRef.techniques) && a_get_dist(mobRef,mobRef.fCombat.lastTarget) <= 8 && a_get_dist(mobRef,mobRef.fCombat.lastTarget) >= 1){
  68.                         alaparser.parse(mobRef, "elbow [mobRef.fCombat.lastTarget:name]", list())
  69.                     }else if(mobRef && mobRef.fCombat.lastTarget && mobRef.loc == mobRef.fCombat.lastTarget:loc){
  70.                         if(mobRef.density && mobRef.fCombat.lastTarget:density || !mobRef.density && !mobRef.fCombat.lastTarget:density){
  71.  
  72.                             if(mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:stunned){
  73.                                 if((locate(/Command/Technique/blast) in mobRef.techniques) && prob(25)){
  74.                                     alaparser.parse(mobRef, "blast [mobRef.fCombat.lastTarget:name]", list());
  75.                                     while(mobRef.kiAttk){sleep(world.tick_lag)}
  76.                                 }else if((locate(/Command/Technique/drain) in mobRef.techniques) && prob(60)){
  77.                                     alaparser.parse(mobRef, "drain [mobRef.fCombat.lastTarget:name]", list());
  78.                                     while(mobRef.atkDat){sleep(world.tick_lag)}
  79.                                 }else if((locate(/Command/Technique/self_destruct) in mobRef.techniques) && prob(50) && percent(mobRef.currpl,mobRef.getMaxPL()) <= 30.00){
  80.                                     alaparser.parse(mobRef, "selfdestruct [mobRef.fCombat.lastTarget:name]", list());
  81.                                     while(mobRef.atkDat){sleep(world.tick_lag)}
  82.                                 }else if(!mobRef.fCombat.lastTarget:density && (locate(/Command/Technique/hammer) in mobRef.techniques) && prob(75) && !mobRef.fCombat.comboList["[mobRef.fCombat.lastTarget:ID]"]){
  83.                                     alaparser.parse(mobRef, "hammer [mobRef.fCombat.lastTarget:name]", list());
  84.                                     while(mobRef.atkDat){sleep(world.tick_lag)}
  85.                                 }else if((locate(/Command/Technique/siphon) in mobRef.techniques) && prob(60)){
  86.                                     alaparser.parse(mobRef, "siphon [mobRef.fCombat.lastTarget:name]", list());
  87.                                     while(mobRef.atkDat){sleep(world.tick_lag)}
  88.                                 }
  89.                             }
  90.  
  91.                             if(mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:atkDat && mobRef.fCombat.lastTarget:atkDat:type == /atkDatum/roundhouse){
  92.                                 alaparser.parse(mobRef, "sweep [mobRef.fCombat.lastTarget:name]", list());
  93.                                 while(mobRef.atkDat){sleep(world.tick_lag)}
  94.                             }
  95.  
  96.                             if(mobRef && mobRef.fCombat.lastTarget && mobRef.techniques.Find(/Command/Technique/spin_kick) && mobRef.fCombat.lastTarget:atkDat && mobRef.fCombat.lastTarget:atkDat:type == /atkDatum/sweep){
  97.                                 alaparser.parse(mobRef, "spinkick [mobRef.fCombat.lastTarget:name]", list());
  98.                                 while(mobRef.atkDat){sleep(world.tick_lag)}
  99.                             }
  100.  
  101.                             if(mobRef && mobRef.fCombat.lastTarget && mobRef.difficultyLevel > EASY){
  102.                                 while(src && mobRef && mobRef.fCombat.lastTarget:stunned && mobRef.fCombat.comboList["[mobRef.fCombat.lastTarget:ID]"]){
  103.                                     var/comboL[] = mobRef.fCombat.comboList["[mobRef.fCombat.lastTarget:ID]"]
  104.  
  105.                                     if(!mobRef.shyouken && mobRef.techniques.Find(/Command/Technique/shyouken)){
  106.                                         alaparser.parse(mobRef, "shyouken", list());
  107.                                     }
  108.  
  109.                                     if(mobRef.techniques.Find(/Command/Technique/kaioken) && !(mobRef.form in list("Kaioken x2", "Kaioken x3", "Kaioken x4")) && mobRef.curreng > 60){
  110.                                         alaparser.parse(mobRef, "kaioken 4", list());
  111.                                     }
  112.  
  113.                                     if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "lp"){
  114.                                         alaparser.parse(mobRef, "punch left [mobRef.fCombat.lastTarget:name]", list());
  115.                                     }
  116.                                     else if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "rp"){
  117.                                         alaparser.parse(mobRef, "punch right [mobRef.fCombat.lastTarget:name]", list());
  118.                                     }
  119.                                     else if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "r"){
  120.                                         alaparser.parse(mobRef, "roundhouse [mobRef.fCombat.lastTarget:name]", list());
  121.                                     }
  122.                                     else if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "s"){
  123.                                         alaparser.parse(mobRef, "sweep [mobRef.fCombat.lastTarget:name]", list());
  124.                                     }
  125.                                     else if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "ham"){
  126.                                         alaparser.parse(mobRef, "hammer [mobRef.fCombat.lastTarget:name]", list());
  127.                                     }
  128.                                     else if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "up"){
  129.                                         alaparser.parse(mobRef, "uppercut [mobRef.fCombat.lastTarget:name]", list());
  130.                                     }
  131.                                     else if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "zw"){
  132.                                         alaparser.parse(mobRef, "zanzoken [mobRef.fCombat.lastTarget:name]", list());
  133.                                     }
  134.  
  135.                                     sleep(pick(0.3 SECONDS, 0.6 SECONDS))
  136.                                 }
  137.                             }
  138.  
  139.                             if(mobRef && mobRef.techniques.Find(/Command/Technique/kaioken) && (mobRef.form in list("Kaioken x2", "Kaioken x3", "Kaioken x4", "Super Kaioken"))){
  140.                                 alaparser.parse(mobRef, "revert", list());
  141.                             }
  142.  
  143.                             if(!FAKING && prob(mobRef.fakeChance) && !mobRef.fCombat.lastTarget:stunned && !mobRef.fCombat.lastTarget:checkLocked(TRUE) && percent(mobRef.curreng,mobRef.getMaxEN()) > 30){
  144.                                 FAKING = TRUE;
  145.                                 fakeTime = world.time;
  146.                                 cFake = rand(2,fakeCount);
  147.                                 while(mobRef && mobRef.fCombat.lastTarget && FAKING){
  148.                                     if(world.time >= fakeTime){
  149.                                         alaparser.parse(mobRef, "[pick(mobRef.meleeAttks)] [mobRef.fCombat.lastTarget:name]", list());
  150.                                         cFake--;
  151.                                         fakeTime = (world.time + pick(1.5 SECONDS, 2.0 SECONDS, 2.8 SECONDS))
  152.                                     }
  153.                                     if(cFake < 1 || mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:checkLocked(TRUE) || mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:stunned){
  154.                                         FAKING = FALSE;
  155.                                     }
  156.                                     sleep(world.tick_lag);
  157.                                 }
  158.                             }else{
  159.                                 alaparser.parse(mobRef, "[pick(mobRef.meleeAttks)] [mobRef.fCombat.lastTarget:name]", list());
  160.                             }
  161.                         }else{
  162.                             if(!mobRef.resting && !mobRef.powering && mobRef.curreng < 50){
  163.                                 alaparser.parse(mobRef, "rest", list());
  164.                             }
  165.  
  166.                             if(!mobRef.resting && mobRef.curreng >= 20 && percent(mobRef.currpl,mobRef.getMaxPL()) < 60){
  167.                                 alaparser.parse(mobRef, "power up", list());
  168.                             }
  169.  
  170.                             if(mobRef.powering && mobRef.curreng < 45){
  171.                                 alaparser.parse(mobRef, "power stop", list());
  172.                             }
  173.                         }
  174.                     }
  175.  
  176.                     while(mobRef && mobRef.atkDat || mobRef && mobRef.kiAttk || mobRef && mobRef.stunned || mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:checkTargeted()){ sleep(world.tick_lag) }
  177.                 }
  178.                 sleep(world.tick_lag)
  179.             }
  180.  
  181.             del(src);
  182.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement