Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- start(){
- set waitfor = FALSE;
- var
- fakeCount = fakeDifficulty(mobRef.difficultyLevel);
- cFake = 0;
- fakeTime = 0;
- checkFlightDensity();
- checkTarget();
- refreshTime = (world.time + 1 SECONDS);
- RUNNING = TRUE;
- sleep(5); // AI initial delay.
- while(RUNNING && src && mobRef){
- if(mobRef && !mobRef.fCombat.hostileTargets.len){
- reset();
- RUNNING = FALSE;
- }
- if(mobRef && mobRef.fCombat.lastTarget && !mobRef.resting && mobRef.fCombat.lastTarget:stunned && !mobRef.fCombat.comboList["[mobRef.fCombat.lastTarget:ID]"] && mobRef.curreng < 50){
- alaparser.parse(mobRef, "rest", list());
- while(mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:stunned){ sleep(world.tick_lag); }
- }
- if(mobRef && mobRef.resting && mobRef.loc == mobRef.fCombat.lastTarget:loc || mobRef && mobRef.resting && mobRef.fCombat.lastTarget:loc != mobRef.loc && mobRef.curreng > 50){
- alaparser.parse(mobRef, "wake", list());
- }
- if(mobRef && mobRef.fCombat.lastTarget && length(mobRef.kiAttks) > 0 && mobRef.fCombat.lastTarget:stunned && mobRef.curreng > 40 && !cooldownLen(mobRef.name) && mobRef.difficultyLevel > EASY){
- while(mobRef.atkDat) { sleep(world.tick_lag); }
- /* GOTO DIFF ROOM? */
- var/dir = pick("n","s","e","w");
- if(mobRef.density){ alaparser.parse(mobRef, "fly", list()); }
- alaparser.parse(mobRef, "fly 5 [dir]", list());
- /* GOTO DIFF ROOM? */
- /* CHARGE OUR ATTACK? */
- var/kiAttkx = pick(mobRef.kiAttks);
- alaparser.parse(mobRef, "[kiAttkx] [mobRef.fCombat.lastTarget:name]", list());
- while(mobRef.kiAttk && mobRef.kiAttk.chCount < mobRef.kiAttk.mnCh) { sleep(world.tick_lag); }
- alaparser.parse(mobRef, "[kiAttkx] [mobRef.fCombat.lastTarget:name]", list());
- /* CHARGE OUR ATTACK? */
- }
- sleep(8); // Delay before starting a new attack loop;
- if(src && mobRef){
- if(mobRef && !mobRef.fCombat.lastTarget && length(mobRef.fCombat.hostileTargets) > 0){
- mobRef.fCombat.lastTarget = pick(mobRef.fCombat.hostileTargets)
- }
- if(mobRef && mobRef.fCombat.lastTarget){
- mobRef.simultaneous = mobRef.fCombat.lastTarget:simultaneous
- }
- while(mobRef && mobRef.checkTargeted(ENERGY) && mobRef.loc != mobRef.fCombat.lastTarget:loc){ sleep(world.tick_lag) }
- if(mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:unconscious && mobRef.difficultyLevel > EASY){
- alaparser.parse(mobRef, "snapneck [mobRef.fCombat.lastTarget:name]", list());
- }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){
- alaparser.parse(mobRef, "elbow [mobRef.fCombat.lastTarget:name]", list())
- }else if(mobRef && mobRef.fCombat.lastTarget && mobRef.loc == mobRef.fCombat.lastTarget:loc){
- if(mobRef.density && mobRef.fCombat.lastTarget:density || !mobRef.density && !mobRef.fCombat.lastTarget:density){
- if(mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:stunned){
- if((locate(/Command/Technique/blast) in mobRef.techniques) && prob(25)){
- alaparser.parse(mobRef, "blast [mobRef.fCombat.lastTarget:name]", list());
- while(mobRef.kiAttk){sleep(world.tick_lag)}
- }else if((locate(/Command/Technique/drain) in mobRef.techniques) && prob(60)){
- alaparser.parse(mobRef, "drain [mobRef.fCombat.lastTarget:name]", list());
- while(mobRef.atkDat){sleep(world.tick_lag)}
- }else if((locate(/Command/Technique/self_destruct) in mobRef.techniques) && prob(50) && percent(mobRef.currpl,mobRef.getMaxPL()) <= 30.00){
- alaparser.parse(mobRef, "selfdestruct [mobRef.fCombat.lastTarget:name]", list());
- while(mobRef.atkDat){sleep(world.tick_lag)}
- }else if(!mobRef.fCombat.lastTarget:density && (locate(/Command/Technique/hammer) in mobRef.techniques) && prob(75) && !mobRef.fCombat.comboList["[mobRef.fCombat.lastTarget:ID]"]){
- alaparser.parse(mobRef, "hammer [mobRef.fCombat.lastTarget:name]", list());
- while(mobRef.atkDat){sleep(world.tick_lag)}
- }else if((locate(/Command/Technique/siphon) in mobRef.techniques) && prob(60)){
- alaparser.parse(mobRef, "siphon [mobRef.fCombat.lastTarget:name]", list());
- while(mobRef.atkDat){sleep(world.tick_lag)}
- }
- }
- if(mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:atkDat && mobRef.fCombat.lastTarget:atkDat:type == /atkDatum/roundhouse){
- alaparser.parse(mobRef, "sweep [mobRef.fCombat.lastTarget:name]", list());
- while(mobRef.atkDat){sleep(world.tick_lag)}
- }
- if(mobRef && mobRef.fCombat.lastTarget && mobRef.techniques.Find(/Command/Technique/spin_kick) && mobRef.fCombat.lastTarget:atkDat && mobRef.fCombat.lastTarget:atkDat:type == /atkDatum/sweep){
- alaparser.parse(mobRef, "spinkick [mobRef.fCombat.lastTarget:name]", list());
- while(mobRef.atkDat){sleep(world.tick_lag)}
- }
- if(mobRef && mobRef.fCombat.lastTarget && mobRef.difficultyLevel > EASY){
- while(src && mobRef && mobRef.fCombat.lastTarget:stunned && mobRef.fCombat.comboList["[mobRef.fCombat.lastTarget:ID]"]){
- var/comboL[] = mobRef.fCombat.comboList["[mobRef.fCombat.lastTarget:ID]"]
- if(!mobRef.shyouken && mobRef.techniques.Find(/Command/Technique/shyouken)){
- alaparser.parse(mobRef, "shyouken", list());
- }
- if(mobRef.techniques.Find(/Command/Technique/kaioken) && !(mobRef.form in list("Kaioken x2", "Kaioken x3", "Kaioken x4")) && mobRef.curreng > 60){
- alaparser.parse(mobRef, "kaioken 4", list());
- }
- if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "lp"){
- alaparser.parse(mobRef, "punch left [mobRef.fCombat.lastTarget:name]", list());
- }
- else if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "rp"){
- alaparser.parse(mobRef, "punch right [mobRef.fCombat.lastTarget:name]", list());
- }
- else if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "r"){
- alaparser.parse(mobRef, "roundhouse [mobRef.fCombat.lastTarget:name]", list());
- }
- else if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "s"){
- alaparser.parse(mobRef, "sweep [mobRef.fCombat.lastTarget:name]", list());
- }
- else if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "ham"){
- alaparser.parse(mobRef, "hammer [mobRef.fCombat.lastTarget:name]", list());
- }
- else if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "up"){
- alaparser.parse(mobRef, "uppercut [mobRef.fCombat.lastTarget:name]", list());
- }
- else if(comboL[mobRef.fCombat.comboCount["[mobRef.fCombat.lastTarget:ID]"]] == "zw"){
- alaparser.parse(mobRef, "zanzoken [mobRef.fCombat.lastTarget:name]", list());
- }
- sleep(pick(0.3 SECONDS, 0.6 SECONDS))
- }
- }
- if(mobRef && mobRef.techniques.Find(/Command/Technique/kaioken) && (mobRef.form in list("Kaioken x2", "Kaioken x3", "Kaioken x4", "Super Kaioken"))){
- alaparser.parse(mobRef, "revert", list());
- }
- if(!FAKING && prob(mobRef.fakeChance) && !mobRef.fCombat.lastTarget:stunned && !mobRef.fCombat.lastTarget:checkLocked(TRUE) && percent(mobRef.curreng,mobRef.getMaxEN()) > 30){
- FAKING = TRUE;
- fakeTime = world.time;
- cFake = rand(2,fakeCount);
- while(mobRef && mobRef.fCombat.lastTarget && FAKING){
- if(world.time >= fakeTime){
- alaparser.parse(mobRef, "[pick(mobRef.meleeAttks)] [mobRef.fCombat.lastTarget:name]", list());
- cFake--;
- fakeTime = (world.time + pick(1.5 SECONDS, 2.0 SECONDS, 2.8 SECONDS))
- }
- if(cFake < 1 || mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:checkLocked(TRUE) || mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:stunned){
- FAKING = FALSE;
- }
- sleep(world.tick_lag);
- }
- }else{
- alaparser.parse(mobRef, "[pick(mobRef.meleeAttks)] [mobRef.fCombat.lastTarget:name]", list());
- }
- }else{
- if(!mobRef.resting && !mobRef.powering && mobRef.curreng < 50){
- alaparser.parse(mobRef, "rest", list());
- }
- if(!mobRef.resting && mobRef.curreng >= 20 && percent(mobRef.currpl,mobRef.getMaxPL()) < 60){
- alaparser.parse(mobRef, "power up", list());
- }
- if(mobRef.powering && mobRef.curreng < 45){
- alaparser.parse(mobRef, "power stop", list());
- }
- }
- }
- while(mobRef && mobRef.atkDat || mobRef && mobRef.kiAttk || mobRef && mobRef.stunned || mobRef && mobRef.fCombat.lastTarget && mobRef.fCombat.lastTarget:checkTargeted()){ sleep(world.tick_lag) }
- }
- sleep(world.tick_lag)
- }
- del(src);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement