Valera_Trefilov
24.01.2015, 15:58
static
Float:sync_fPosition[MAX_PLAYERS][3],
sync_summ[MAX_PLAYERS],
bool:sync_pos[MAX_PLAYERS],
Tick[MAX_PLAYERS];
public OnPlayerUpdate(playerid)
{
if(sync_fPosition[playerid][0]==0.0 && sync_fPosition[playerid][1]==0.0 && sync_fPosition[playerid][2]==0.0)
return GetPlayerPos(playerid,sync_fPosition[playerid][0],sync_fPosition[playerid][1],sync_fPosition[playerid][2]);
new distance=floatround(GetPlayerDistanceFromPoint(playerid,sync_fPosition[playerid][0],sync_fPosition[playerid][1],sync_fPosition[playerid][2]));
new get_tick=GetTickCount()-Tick[playerid];
new MAX_DISTANCE=2000/get_tick;
if(distance>MAX_DISTANCE)
{
sync_pos[playerid]=false;
SetPlayerPos(playerid,sync_fPosition[playerid][0],sync_fPosition[playerid][1],sync_fPosition[playerid][2]);
sync_summ[playerid]++;
if(++sync_summ[playerid]>49<<3/10)
{
sync_summ[playerid]=0;
sync_fPosition[playerid][0]=0;
sync_fPosition[playerid][1]=0;
sync_fPosition[playerid][2]=0;
Kick(playerid);
return 0;
}
sync_summ[playerid]--;
}
else if(!sync_pos[playerid])
sync_pos[playerid]=true;
if(sync_pos[playerid])
GetPlayerPos(playerid,sync_fPosition[playerid][0],sync_fPosition[playerid][1],sync_fPosition[playerid][2]),Tick[playerid]=GetTickCount();
return 1;
}
Float:sync_fPosition[MAX_PLAYERS][3],
sync_summ[MAX_PLAYERS],
bool:sync_pos[MAX_PLAYERS],
Tick[MAX_PLAYERS];
public OnPlayerUpdate(playerid)
{
if(sync_fPosition[playerid][0]==0.0 && sync_fPosition[playerid][1]==0.0 && sync_fPosition[playerid][2]==0.0)
return GetPlayerPos(playerid,sync_fPosition[playerid][0],sync_fPosition[playerid][1],sync_fPosition[playerid][2]);
new distance=floatround(GetPlayerDistanceFromPoint(playerid,sync_fPosition[playerid][0],sync_fPosition[playerid][1],sync_fPosition[playerid][2]));
new get_tick=GetTickCount()-Tick[playerid];
new MAX_DISTANCE=2000/get_tick;
if(distance>MAX_DISTANCE)
{
sync_pos[playerid]=false;
SetPlayerPos(playerid,sync_fPosition[playerid][0],sync_fPosition[playerid][1],sync_fPosition[playerid][2]);
sync_summ[playerid]++;
if(++sync_summ[playerid]>49<<3/10)
{
sync_summ[playerid]=0;
sync_fPosition[playerid][0]=0;
sync_fPosition[playerid][1]=0;
sync_fPosition[playerid][2]=0;
Kick(playerid);
return 0;
}
sync_summ[playerid]--;
}
else if(!sync_pos[playerid])
sync_pos[playerid]=true;
if(sync_pos[playerid])
GetPlayerPos(playerid,sync_fPosition[playerid][0],sync_fPosition[playerid][1],sync_fPosition[playerid][2]),Tick[playerid]=GetTickCount();
return 1;
}