Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Урок Учимся использовать PVar

Статус
В этой теме нельзя размещать новые ответы.

Praetorian

Изучающий
Пользователь
Регистрация
9 Янв 2013
Сообщения
904
Лучшие ответы
0
Репутация
167
Здравствуйте, уважаемые пользователи портала Pawno-Info.
Сегодня я расскажу вам как пользоваться и для чего нужны PVar.
1)PVar - персональная переменная и это нужно запомнить. PVar стоит использовать с умом.
2)Рекомендую вам использовать PVar для временной информации, и не советую использовать для той информации,которая востребована на все время нахождения игрока на сервере.
Конечно не нужно бежать и переводить все свои переменные на PVar, но для временной информации PVar - наилучший вариант.
Плюсы:
1)PVar не засоряет стек(т.к память выделяется только тогда,когда они создаются
2)PVar объявленная в моде,будет работать в FS (и наоборот)
3)Удаляется если игрок выходит
Минусы:
1) Медленней переменных (но строковый тип таки быстрее)
2) Кому-то могут показаться неудобными.

Немного сухой информации о PVar
PHP:
native SetPVarInt(playerid, varname[], int_value); - устанавливает значение для целого пвара
native GetPVarInt(playerid, varname[]); - возвращает значение целого пвара
native SetPVarString(playerid, varname[], string_value[]); - устанавливает значение строкового пвара
native GetPVarString(playerid, varname[], string_return[], len); - копирует значение строкового пвара в string_return
native SetPVarFloat(playerid, varname[], Float:float_value); - устанавливает значение вещественного пвара
native Float:GetPVarFloat(playerid, varname[]); - возвращает значение вещественного пвара
native DeletePVar(playerid, varname[]); - удаляет пвар

// Типы пваров
#define PLAYER_VARTYPE_NONE 0 - неизвестно
#define PLAYER_VARTYPE_INT 1 - целое число
#define PLAYER_VARTYPE_STRING 2 - строка
#define PLAYER_VARTYPE_FLOAT 3 - вещественное число

native GetPVarsUpperIndex(playerid); 
native GetPVarNameAtIndex(playerid, index, ret_varname[], ret_len); - узнает название пвара по его индексу (внутреннему номеру)
native GetPVarType(playerid, varname[]); - возвращает тип указанного пвара

Объявляем PVar
PHP:
SetPVarInt(playerid,"Primer1",1); // Задаем PVar "Primer1" и устанавливаем ему целочисленное(int) значение 1
SetPVarFloat(playerid,"Primer2",5.5);//Задаем PVar с десятичной дробью(float) и именем "Primer2", значение 5.5
SetPVarString(playerid,"Primer3","Pawno-Info");//Задаем PVar(массив) с именем "Primer3" текст "Pawno-Info"
Получаем значение PVar'a
PHP:
GetPVarInt(playerid,"Primer1"); // Получили значение PVar'a(int) Primer1 (значение: 1)
GetPVarFloat(playerid,"Primer2"); // Получили значение PVar'a(float) Primer2 (значение: 5.5)
//Строковый PVar получается немного по-другому
new string[12];
GetPVarString(playerid,"Primer3",string,12);//записали значение pvar`a с именем "Primer3" в массив string, в нашем случае "Pawno-Info".
Удаляем из стека PVar
PHP:
DeletePVar(playerid,"Primer1"); // Удаляем PVar с именем "Primer1"
Есть функции,которые редко кто использует,но написать о них стоит.
PHP:
GetPVarsUpperIndex(playerid);//возвращает максимальный id pvar`a
new string[128];    
GetPVarNameAtIndex(playerid, id, string, 128);//где id - ид pvar`a
GetPVarType(playerid, pvar[]);// функции узнаёт тип pvar`a по его названию
Пример использования:
PHP:
// С целыми числами
SetPVarInt(playerid,"Primer1",1); // Задаем PVar "Primer" и устанавливаем ему целочисленное(int) значение 1
if(GetPVarInt(playerid,"Primer1") == 1)
{
  // Какое-нибудь действие
}
// С дробью
SetPVarFloat(playerid,"Primer2",5.5);//Задаем PVar с десятичной дробью(float) и именем "Primer2", значение 5.5
if(GetPVarFloat(playerid,"Primer2") == 5.5)
{
 // Действие
}
// Теперь со строкой
SetPVarString(playerid,"Primer3","Pawno-Info");//Задаем PVar(массив) с именем "Primer3" текст "Pawno-Info"
new output[64];//делаем переменную в которую будет записано значением PVar'а 
GetPVarString(playerid,"Primer3",output,sizeof(output));//Получаем значение PVar'а 
if(strcmp(output,"Pawno-Info",true,13)) 
{
 // Действие
}
Если этот урок был вам полезен,не поленитесь отблагодарить меня.
Если вы хотите что-то дополнить - пишите в эту тему.

Автор: Praetorian
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу