Сообщение от
Nash_Brigers
При определении скорости через GetVehicleVelocity нагрузки нету
Причём тут GetVehicleVelocity, если речь шла о вычислении скорости по тем данным, что выдаёт GetVehicleVelocity? Именно математические вычисления чаще всего дают большую нагрузку. И чем сложнее эти вычисления, тем дольше сервер их будет производить
Сообщение от
Nash_Brigers
а вот при частом обновлении текстдравов серв стабильно падает. От проверок же с JIT нагрузок также нет.
Если, вы считаете это охотой на ведьм, то запихните обновление спидометра в OnPlayerUpdate, как "ракнет" в своё время..
Пихал. И даже видел сервер, геймплей которого во многом зависел от текстдравов, которые так же в OnPlayerUpdate обновлялись (там имитировалась приборная панель самолёта, которая требовала моментального обновления данных).
Обновление текстдрава для сервера - это просто отправка пакета с инфой о текстдраве игроку и не более.
Вот, ради эксперимента, можно взять текстдрав даты и времени с паблика и вставить обновление в OnPlayerUpdate
PHP код:
new Text:Clock;
new Text:Date;
public OnGameModeInit()
{
Clock = TextDrawCreate(547.000000,29.000000, "00:00");//это создает тестдрайвер
TextDrawLetterSize(Clock,0.5,1.5);//размер шрифта
TextDrawFont(Clock,0);//стиль шрифта
TextDrawColor(Clock,0xffffffff);//цвет
TextDrawSetOutline(Clock,1);
//дата
Date = TextDrawCreate(547.000000,45.000000, "26.06.2011");//это создает тестдрайвер
TextDrawLetterSize(Clock,0.5,1.5); //размер шрифта
TextDrawFont(Date,0);//стиль шрифта
TextDrawColor(Date,0xffffffff);//цвет
TextDrawSetOutline(Date,1);
return 1;
}
public OnPlayerConnect(playerid)
{
TextDrawShowForPlayer(playerid,Clock);
TextDrawShowForPlayer(playerid,Date);
return 1;
}
public OnPlayerUpdate(playerid)
{
static
string[256],
buff_1,
buff_2,
buff_3;
gettime(buff_1, buff_2, buff_3);
SetWorldTime(buff_1);
format(string, sizeof(string), "%02d:%02d:%02d", buff_1, buff_2, buff_3);
TextDrawSetString(Clock, string);
TextDrawShowForPlayer(playerid, Clock);
// date
getdate(buff_1, buff_2, buff_3);
format(string, sizeof(string), "%02d.%02d.%d",buff_3, buff_2, buff_1);
TextDrawSetString(Date, string);
TextDrawShowForPlayer(playerid, Date);
return 1;
}
А после хоть завертись - ничего не изменится, кроме количества отправленных пакетов