- Регистрация
- 9 Янв 2013
- Сообщения
- 904
- Лучшие ответы
- 0
- Репутация
- 167
Здравствуйте, уважаемые пользователи портала Pawno-Info.
Сегодня я расскажу вам как пользоваться и для чего нужны PVar.
Конечно не нужно бежать и переводить все свои переменные на PVar, но для временной информации PVar - наилучший вариант.
Немного сухой информации о PVar
Объявляем PVar
Получаем значение PVar'a
Удаляем из стека PVar
Есть функции,которые редко кто использует,но написать о них стоит.
Пример использования:
Если этот урок был вам полезен,не поленитесь отблагодарить меня.
Если вы хотите что-то дополнить - пишите в эту тему.
Автор: Praetorian
Сегодня я расскажу вам как пользоваться и для чего нужны PVar.
1)PVar - персональная переменная и это нужно запомнить. PVar стоит использовать с умом.
2)Рекомендую вам использовать PVar для временной информации, и не советую использовать для той информации,которая востребована на все время нахождения игрока на сервере.
2)Рекомендую вам использовать PVar для временной информации, и не советую использовать для той информации,которая востребована на все время нахождения игрока на сервере.
Плюсы:
1)PVar не засоряет стек(т.к память выделяется только тогда,когда они создаются
2)PVar объявленная в моде,будет работать в FS (и наоборот)
3)Удаляется если игрок выходит
Минусы:
1) Медленней переменных (но строковый тип таки быстрее)
2) Кому-то могут показаться неудобными.
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"
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".
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