(06-30-2013, 11:58 AM)YinYin Wrote:You need to brace those or else it will keep pressing A even if it's just in frame 20 and no other conditions are met.
DC-Code:if ((self.mp <= 400) && (self.frame == 21 || self.frame == 20 || self.frame == 22) && (self.x-target.x > 225 && self.z-target.z > 60)) {A();}
I tried that also. But it still doesn't work. It looks like this now:
DC-Code:
else if ((self.mp <= 200) && (self.x-target.x > 225 && self.z-target.z > 60)) {DJA();} //DJA |
And
DC-Code:
if ((self.mp <= 400) && (self.frame == 21 || self.frame == 20 || self.frame == 22) && (self.x-target.x > 225 && self.z-target.z > 60)) {A();} //DJA+A+A.. if ((self.mp <= 400) && (self.frame == 21 || self.frame == 20 || self.frame == 22) && (target.state == 12 || target.state == 14)) {A();} // DJA+A+A.. |
Still keeps charging for unlimited time. And he also starts a new charge when MP is full.
Another detail: I noticed that when the self.z-target.z tag is working, but the self.x-target.x one is not. Now he charges no matter what the distance on the x-axis is. But when it is bigger than +- 225 on the x-axis, he charges slower (only does DJA+DJA). :s
This is the whole code in case you think it's something bigger..
DC-Code:
int ego(){ //close range: if (target.y == 0 && abs(target.z-self.z) < 9 && (self.x-target.x)*((self.facing?1:0)*2-1) < 0 && (self.x-target.x)*((self.facing?1:0)*2-1) < 100 && target.state == 16 && self.mp >= 200){ if (abs(self.x-target.x) > 0 && (self.state == 2 || self.state == 0)){ if (self.x-target.x > 0){left();} //turn back else {right();} } else if (self.x-target.x < 0){left();} //adjust x for D^A else {right();} return 1; }//basic move conditions: else if (target.y == 0 && abs(target.z-self.z) < 9 && (self.x-target.x)*((self.facing?1:0)*2-1) > 0 && (self.x-target.x)*((self.facing?1:0)*2-1) < 120){ if (self.state == 7 && self.bdefend > 20 && self.mp >= 30 && self.mp < 220 && (self.x-target.x)*((self.facing?1:0)*2-1) < 2 && ((self.z-target.z) == 0) && self.x-target.x < 15) {DuA();} if (self.state == 7 && self.bdefend > 20 && self.mp >= 220 && (self.x-target.x)*((self.facing?1:0)*2-1) < 2 && ((self.z-target.z) == 0)) {DuJ();} if ((target.state == 0 || target.state == 1 || target.state == 7 || target.state == 9 || target.state == 16 || target.state == 8) && (self.x-target.x)*(2*(self.facing?1:0)-1) < 120 && (self.x-target.x)*(2*(self.facing?1:0)-1) >= 70 && (self.z-target.z) <= 2 && self.mp >= 120) {DdA();} else if (target.state == 16 && self.mp >= 250){ //adjust x for D^A if (self.x-target.x < 0){left();} else {right();} return 1; } else if ((target.state == 8 || target.state == 16) && (self.x-target.x < 15)) {DuA();} //DuA against DoP and broken defense else if (target.state == 3 && self.mp >= 50){D();} //defend if (self.state == 7 && self.bdefend >= 20){DuA();} //defend + DuA } //long/mid range: else if (self.x-target.x != 0){ if ((self.x-target.x)*(2*(self.facing?1:0)-1) > 120 && ((self.x-target.x)*(2*(self.facing?1:0)-1) < 300) && self.y-target.y == 0) { if (self.x-target.x > 180 && self.x-target.x < 300 && self.mp >= 150 && self.z-target.z < 5) {DdJ();} //high jump else if ((self.x-target.x)*(2*(self.facing?1:0)-1) > 300 && (self.x-target.x)*(2*(self.facing?1:0)-1) >= 150 && self.mp < 200 && self.mp > 80 && (self.z-target.z) == 0) {DrA();} //D>A else if (self.x-target.x > 0){left();} //turn back else {right();} } if (abs(100*(self.z-target.z)/((self.x-target.x)*((self.facing?1:0)*2-1))) <= 15 && abs(self.x-target.x) > 300 && abs(self.x-target.x) < 600){ if (self.mp >= 300 && self.x-target.x > 0){DlJ();} //D<J else if (self.mp >= 300 && self.x-target.x < 0){DrJ();} //D>J else if ((self.mp <= 200) && (self.x-target.x > 225 && self.z-target.z > 60)) {DJA();} //DJA else if (self.x-target.x > 0){right();} //go towards opponent else {left();} } } //instant attacks if (self.state == 5){A();} //dash attack if (self.frame == 121 && self.mp > 200) {DuA();} //DuA catching if (self.frame == 198) {DJA();} //DJA+A+A.. if ((self.mp <= 400) && (self.frame == 21 || self.frame == 20 || self.frame == 22) && (self.x-target.x > 225 && self.z-target.z > 60)) {A();} //DJA+A+A.. if ((self.mp <= 400) && (self.frame == 21 || self.frame == 20 || self.frame == 22) && (target.state == 12 || target.state == 14)) {A();} // DJA+A+A.. if ((self.frame == 290 && self.mp >= 200 && abs(target.z-self.z) < 9 && (self.x-target.x)*((self.facing?1:0)*2-1) > 0 && (self.x-target.x)*((self.facing?1:0)*2-1) < 50)){DuA();} // DvA+D^A if ((self.frame == 292) && target.state == 11 || (target.state == 16)) {A();} //sonic rush + punch down if ((self.frame == 74 || self.frame == 75 && self.mp >= 120 && (target.state == 12 || self.y-target.y > 20) && target.z-target.z < 3)) {A();} // D^A + kame up if (self.frame == 149 && self.mp >= 125 && (self.x-target.x)*((self.facing?1:0)*2-1) > 60 && (self.x-target.x)*((self.facing?1:0)*2-1) < 300 && (abs(self.z-target.z) < 6)) {A();} //jump kame if (self.frame == 244 && (self.mp >= 85) && ((self.z-target.z) > 2) || self.x-target.x < 0) {DuJ();} //IT Kamehameha if (self.frame == 244 && (self.mp >= 85) && target.state == 14) {DuJ();} //IT Kamehameha if (self.frame == 337 || self.frame == 129 || self.frame == 338 || self.frame == 124 && (abs(100*(self.z-target.z)/(self.x-target.x)) <= 15)) {D();} //D>A stop if (self.frame == 337 || self.frame == 129 || self.frame == 338 || self.frame == 124 && (target.state == 14) || target.state == 12) {D();} //D>A stop return 0; } |
PS YinYin, I really appreciate that you're always there to help people out.