PDA

Просмотр полной версии : [Вопрос] SetPVarInt and глобальные переменные MAX_PLAYERS



DmX
26.05.2014, 15:58
Вот думаю что лучше использовать на небольших откатах? Переменные или пвары?

underwoker
26.05.2014, 18:20
Вот думаю что лучше использовать на небольших откатах? Переменные или пвары?
Вроде кто-то тестил, оказалось что разницы то как таковой нету, в основном на вкус.

DeimoS
26.05.2014, 18:50
PVar медленнее массивов, но разница настолько мала... В общем, как уже сказали, разницы нет. Если в массиве будут храниться значения не меньше 0 и не больше 255, можно использовать char (одна ячейка будет занимать не 4 байта, а 1). А так - дело вкуса. Но лучше MAX_PLAYERS переделать под число слотов на сервере

wAx
26.05.2014, 19:34
На мой взгляд массивы удобны для использования только в определенном моде. А вот PVar можно вытянуть из любого фс

DmX
26.05.2014, 22:35
Смысл в том что PVar обнулять не нужно)

DeimoS
27.05.2014, 07:36
Смысл в том что PVar обнулять не нужно)

Массивы тоже нужно обнулять только тогда, когда их значение используется в определённых проверках и передача данных одного игрока к другому может заставить неправильно работать код. И правильный код подразумевает под собой установку всех важных значений массивов перед этими самыми проверками, поэтому и обнуление не всегда нужно. То бишь если код имеет подобную структуру


new ololo[MAX_PLAYERS];


public OnDialogResponse(...)
{
ololo[playerid] = 1;
//Далее идут проверки на значение
}

То какой смысл обнулять данный массив при выходе? Он и так всегда будет иметь индивидуальное значение, ибо первое его использование идёт после установки для него значения. Надеюсь, понятна мысль.


Да и вам разве трудно написать банальную строчку

array[playerid] = 0;
И при этом каждый раз не писать

SetPVarInt(playerid, "array", 1);
или

SetPVarInt(playerid, "array", GetPVarInt(playerid, "array")+1);
??

Лично я использую pVar тогда, когда мне нужно хранить данные временно (например, при входе на сервер какой-нибудь таймер). Когда данные мне больше не нужны - я удаляю pVar и он отчищается из памяти. В остальных же случаях я использую массивы, ибо pVar гораздо неудобнее в написании и все его прелести теряются, если информация храниться долго (ну какой мне толк от того, что при выходе игрока с сервера освобождается в памяти 4 байта? Ровным счётом никакого)