31.03.2014, 07:51
Здравствуйте!
Заметил нестабильность работы дрифт счетчика на сервере при онлайне от 30 человек, он просто не засчитывает очки и текстдравы появляются и пропадают, но когда онлайн до 30 то работает нормально!
Подскажите из-за чего это может быть
Вот код:
И вот когда игроку засчитывают очки
Заметил нестабильность работы дрифт счетчика на сервере при онлайне от 30 человек, он просто не засчитывает очки и текстдравы появляются и пропадают, но когда онлайн до 30 то работает нормально!
Подскажите из-за чего это может быть
Вот код:
PHP код:
ServerTimerTwo = SetTimer("PlayerDrift",500,1);
PHP код:
public PlayerDrift()
{
for(new Player; Player < GetMaxPlayers(); Player++)
{
if(IsPlayerConnected(Player) && GetPlayerState(Player) == PLAYER_STATE_DRIVER && VehicleIsCar(GetPlayerVehicleID(Player)))
{
new Float:Angle;
GetVehicleZAngle(GetPlayerVehicleID(Player),Angle);
if(floatabs(floatsub(Angle,PlayerTheoreticAngle(Player))) < 90.0 && floatabs(floatsub(Angle,PlayerTheoreticAngle(Player))) > 10.0 && VehicleSpeed(GetPlayerVehicleID(Player)) < 300 && VehicleSpeed(GetPlayerVehicleID(Player)) > 30)
{
if(PlayerMoney[Player] == 0 && PlayerScore[Player] == 0 && PlayerCombo[Player] == 1)
{
TextDrawShowForPlayer(Player,ServerTextDrawThree[Player]);
TextDrawShowForPlayer(Player,ServerTextDrawFour[Player]);
TextDrawShowForPlayer(Player,ServerTextDrawFive[Player]);
TextDrawSetString(ServerTextDrawThree[Player]," ");
TextDrawSetString(ServerTextDrawFour[Player]," ");
TextDrawSetString(ServerTextDrawFive[Player]," ");
}
PlayerMoney[Player] += floatround(floatabs(floatsub(Angle,PlayerTheoreticAngle(Player))) * (VehicleSpeed(GetPlayerVehicleID(Player)) * 0.1)) / 10;
PlayerScore[Player] += floatround(floatabs(floatsub(Angle,PlayerTheoreticAngle(Player))) * 3 * (VehicleSpeed(GetPlayerVehicleID(Player)) * 0.1)) / 10;
PlayerCombo[Player] = PlayerScore[Player] / 1000;
if(PlayerCombo[Player] < 1) PlayerCombo[Player] = 1;
new String[100];
format(String,sizeof(String),"~r~~h~%d~g~$ ~w~+",PlayerMoney[Player]);
TextDrawSetString(ServerTextDrawThree[Player],String);
format(String,sizeof(String),"~r~~h~%d~g~ ~w~+",PlayerScore[Player]);
TextDrawSetString(ServerTextDrawFour[Player],String);
format(String,sizeof(String),"~W~~H~X%d",PlayerCombo[Player]);
TextDrawSetString(ServerTextDrawFive[Player],String);
// KillTimer(PlayerTimerOne[Player]);
PlayerTimerOne[Player] = SetTimerEx("PlayerDriftEnd",3000,0,"d",Player);
}
}
}
return 1;
}
PHP код:
public PlayerDriftEnd(Player)
{
GiveMoney(Player,PlayerMoney[Player]);
SetPlayerScore(Player,GetPlayerScore(Player) + PlayerScore[Player] * PlayerCombo[Player]);
TextDrawHideForPlayer(Player,ServerTextDrawThree[Player]);
TextDrawHideForPlayer(Player,ServerTextDrawFour[Player]);
TextDrawHideForPlayer(Player,ServerTextDrawFive[Player]);
TextDrawSetString(ServerTextDrawThree[Player]," ");
TextDrawSetString(ServerTextDrawFour[Player]," ");
TextDrawSetString(ServerTextDrawFive[Player]," ");
PlayerMoney[Player] = 0;
PlayerScore[Player] = 0;
PlayerCombo[Player] = 1;
KillTimer(PlayerTimerOne[Player]);
return 1;
}