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
