View Single Post
  #5  
Old 05-18-2011, 11:08 PM
skillmaster19 skillmaster19 is offline
Registered User
Join Date: Oct 2010
Posts: 392
skillmaster19 will become famous soon enough
Fixes, and it wont let me edit my original post.
PHP Code:
function onCreated() {
  
this.outsidetargetmodes = {
    
"targetingup""targetingdown""targetingleft""targetingright""charge"
  
};
  
showcharacter();
  
swordimg "sword1.png";
  
this.hp 10;
  
this.movementSpeed 1;
  
swordpower 1;
  
setTimer(0.9);
}

function 
onTimeOut() {
  
this.resettarget++;
  if (
this.resettarget 30) {
    
this.mode "waiting";
    
this.resettarget 0;
  }
  
this.swordfreezetime--;
  if (
players.size() > 0setTimer(0.1);
  else 
setTimer(0);
  if (
this.hp 0) {
    
this.ani "walk";
    
this.closestplayer findnearestplayer(this.xthis.y);
    
this.plyr this.closestplayer;
    if (!
getMode) {
      if (
int(random(0100)) < 30) {
        
this.mode "charge";
      } else {
        
temp.wheretoattack int(random(0100));
        if (
temp.wheretoattack >= 50) {
          if (
this.dir || this.dir 2) {
            
this.mode "targetingright";
          }
          if (
this.dir || this.dir 3) {
            
this.mode "targetingdown";
          }
        }
        if (
temp.wheretoattack <= 49) {
          if (
this.dir || this.dir 2) {
            
this.mode "targetingleft";
          }
          if (
this.dir || this.dir 3) {
            
this.mode "targetingup";
          }
        }
      }
    }
    
this.toright this.plyr.5;
    
this.todown this.plyr.5;
    
this.toup this.plyr.5;
    
this.toleft this.plyr.5;
    switch (
this.mode) {
    case 
"targetingleft":
      
this.targetx this.toleft;
      
this.targety this.plyr.y;
      break;
    case 
"targetingright":
      
this.targetx this.toright;
      
this.targety this.plyr.y;
      break;
    case 
"targetingdown":
      
this.targety this.todown;
      
this.targetx this.plyr.x;
      break;
    case 
"targetingup":
      
this.targety this.toup;
      
this.targetx this.plyr.x;
      break;
    case 
"charge":
      
this.targetx this.plyr.x;
      
this.targety this.plyr.y;
      break;
    }
    
this.distx = (this.targetx) - this.x;
    
this.disty this.targety this.y;
    
this.plyrdistx this.plyr.this.x;
    
this.plyrdisty this.plyr.this.y;
    
this.len = (this.distx this.distx this.disty this.disty) ^ 0.5;
    
this.movex = (this.distx this.len);
    
this.fixed_x this.1.5;
    
this.fixed_y this.2;
    
this.movey = (this.disty this.len);
    if (!
checkBlockedTile(this.movex this.fixed_xthis.fixed_y this.movey)) {
      if (
this.distx 20 && this.disty 20) {
        
this.+= this.movex * (this.movementSpeed);
        
this.+= this.movey * (this.movementSpeed);
      }
    } else 
this.ani "idle";
  }
  if (
abs(this.distx) > abs(this.disty)) {
    if (
this.distx 0this.dir 3;
    else 
this.dir 1;
  } else {
    if (
this.disty 0this.dir 2;
    else 
this.dir 0;
  }
  if (
this.swordfreezetime <= 0) {
    if (
abs(this.plyrdistx) < && abs(this.plyrdisty) < 2) {
      
this.scheduleevent(random(0.10.4), "hurtCharacter"0);
    }
    if (
abs(this.plyrdistx) < && abs(this.plyrdisty) < 4) {
      
this.scheduleevent(random(0.10.4), "hurtCharacter"0);
    }
  }
}

function 
getMode() {
  if (
this.mode in this.outsidetargetmodes) return true;
  else return 
false;
}

function 
checkBlockedTile(xValueyValue) {
  if (
onwall(xValueyValue) || onwater(xValueyValue)) return true;
  else return 
false;
}

function 
onRespawn(ticker) {
  
this.hp 10;
  
this.ani "idle";
  
move(int(random(-0.99990.9999)), int(random(-0.99990.9999)), 0o);
  
this.chat this.hp;
}

function 
onhurtCharacter() {
  if (
abs(this.plyrdistx) < && abs(this.plyrdisty) < 4) {
    if (
abs(this.plyrdistx) < && abs(this.plyrdisty) < 2) {
      if (
abs(this.plyrdistx) > abs(this.plyrdisty)) {
        if (
this.plyrdistx 0this.dir 3;
        else 
this.dir 1;
      } else {
        if (
this.plyrdisty 0this.dir 2;
        else 
this.dir 0;
      }
      
this.mode "waiting";
      
this.ani "sword";
      
this.scheduleevent(0.1"StopSwinging"0);
    }
  }
  if (
this.plyr.hearts 0) {
    
this.ani "idle";
  }
}

function 
onStopSwinging() {
  
this.ani "walk";
  
this.swordfreezetime 10//stops swinging for 10 timeouts
}

function 
onPlayerEnters() {
  
onTimeOut();
}

function 
onWa****() {
  
this.mode "waiting";
  if (
this.hp 0) {
    switch (
player.dir) {
    case 
"2":
      if (!
checkBlockedTile(this.xthis.5)) {
        
this.this.5;
      }
      break;
    case 
"3":
      if (!
checkBlockedTile(this.5this.y)) {
        
this.+= 5;
      }
      break;
    case 
"1":
      if (!
checkBlockedTile(this.5this.y)) {
        
this.this.5;
      }
      break;
    case 
"0":
      if (!
checkBlockedTile(this.xthis.5)) {
        
this.this.5;
      }
      break;
    }
  }
  
this.hp--;
  if (
this.hp >= 0) {
    
this.chat this.hp;
  }
  if (
this.hp == 0) {
    
this.ani "dead";
  }
  if (
this.hp == 0) {
    
clientr.baddykills++;
    
player.chat "I have"
    
SPC clientr.baddykills SPC "baddy kills";
    
this.scheduleevent(50"Respawn"0);
  }


Last edited by skillmaster19; 05-18-2011 at 11:27 PM..
Reply With Quote