View Single Post
  #13  
Old 02-12-2010, 11:13 AM
scriptless scriptless is offline
Banned
Join Date: Dec 2008
Location: N-Pulse
Posts: 1,412
scriptless is a splendid one to beholdscriptless is a splendid one to beholdscriptless is a splendid one to beholdscriptless is a splendid one to behold
Must say, very impressed. Tho size doesn't show for other players, so I came up with this. Maybe you could impliment something to show size properly in your next rescript?

PHP Code:
function onActionServerside() {
  if ( 
params[0] == "size" ) {
    
clientr.movementSpeed = .5;
    
clientr.movementSize = 2;
  }
  if ( 
params[0] == "getsize" ) {
    
temp.var = findplayerbycommunityname(params[1]).clientr.movementSize;
    
triggerClient("gui", this.name, "gotsize", params[1], temp.var);
  }
}
//#CLIENTSIDE
function onCreated() {
  
player.x = int(player.x)+.5;
  
player.y = int(player.y);
  
triggerserver( "gui", this.name, "size", null );
  
setTimer(0.05);
}

function 
onActionClientSide() {
  if ( 
params[0] == "gotsize" ) {
    
findplayerbycommunityname(params[1]).zoom = params[2]/2;
  }
}

function 
onTimeout() {
  
temp.speed = clientr.movementSpeed;
  
temp.size = clientr.movementSize;
  
triggerserver( "gui", this.name, "getsize" );
  for( 
temp.pl : allplayers ) {
    
triggerserver( "gui", this.name, "getsize", pl.communityname );
  }
  
player.zoom = temp.size/2;
  for (
temp.k=0;k<4;k++) {
    if (
keydown(k)) {
      
player.dir = k;

      
temp.cx = (player.x+.5)-((size - 2)/2);
      
temp.cy = (player.y+1)-((size - 2)/2);

      
temp.horizontalwall = onwall2(cx + vecx(k)*speed,cy,size-1/16,size-1/16);
      
temp.verticalwall = onwall2(cx,cy + vecy(k)*speed,size-1/16,size-1/16);

      if (
horizontalwall == 0) player.x += vecx(k)*speed;
      else {
        for (
i=0;i<(speed > client.size ? speed : size);i+=1/16) {
          if (
onwall2(cx+vecx(k)*i,cy,size-1/16,size-1/16)) {
            
player.x += vecx(k)*i;
            
player.x = int(playerx+((size%2 == 1)*.5))+((size%2 == 0)*.5);
            break;
          }
        }
      }
      if (
verticalwall == 0) player.y += vecy(k)*speed;
      else {
        for (
i=0;i<(speed > size ? speed : size);i+=1/16) {
          if (
onwall2(cx,cy+vecy(k)*i,size-1/16,size-1/16)) {
            
player.y += vecy(k)*i;
            
player.y = int(playery+((size%2 == 0)*.5))+((size%2 == 1)*.5);
            break;
          }
        }
      }
    }
  }
  
setTimer(0.05);
} 
Would love to see some updates/addons to this
Reply With Quote