PVar`ы - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
PVar`ы
[CM]Logotipo Дата: Вторник, 04.03.2014, 21:58 | Сообщение # 1
Авторитет
Сообщений: 1083
Статус: Offline
Многим, кто хочет оптимизировать свой мод, хотелось бы загружать, а самое главное выгружать переменные из памяти. Но к сожалению оператор delete ( в C|C++ удаляет переменную ) в pawn использовать нельзя. Поэтому разработчики сампа добавили PVar`ы - переменная, значение которой привязывается к каждому игроку.
Теперь немного о плюсах и минусах данной функции.
Плюсы:

  • Незасоряет стек мода
  • Легко редактировать
  • Объявив в моде, можно использовать в fs, и наоборот
  • При выходе игрока, автоматически удаляются

Минусы:

  • Неудобно
  • Медленнее обычных переменных, однако строковой тип быстрее, в общем, смотря чьим тестам верить

Объявить PVar так.
Код
SetPVarInt(playerid,pvar[],int);//создает и редактирует PVar с целым числом(int)
SetPVarFloat(playerid,pvar[],float);//создает и редактирует PVar с числом десятичной дроби(float)   
SetPVarString(playerid,pvar[],string[]);//создает и редактирует PVar со строкой(массив)

А теперь на примерах
Код
SetPVarInt(playerid,"IntPVar",0);//задали PVar с именем "IntPVar" значение 0
SetPVarFloat(playerid,"FloatPVar",1.1);//задали PVar с именем "FloatPVar" значение 1.1
SetPVarString(playerid,"StringPVar","Pawn");//задали PVar с именем "StringPVar" текст "Pawn"

А теперь о том, как получить значение PVar`a.
Код
new pvarint = GetPVarInt(playerid,"IntPVar);//получили значение pvar`a с именем "IntPVar", в нашем случае 0.
new Float:pvarfloat = GetPVarFloat(playerid,"FloatPVar");//получили значение pvar`a с именем "IntPVar", в нашем случае 1.1

Со строковыми pvar`ами немного сложнее
new string[128];
Код
GetPVarString(playerid,"StringPVar",string,128);//записали значение pvar`a с именем "StringPVar" в массив string, в нашем случае "Pawn".

А теперь самая важная функция, которая позволяет нам удалять из стека PVar.


А теперь функции, которые используются очень редко, я даже не знаю какой пример можно привести с ними biggrin
Код
//что возвращает функция
#define PLAYER_VARTYPE_NONE       0 - неизвестно   
#define PLAYER_VARTYPE_INT            1 - целое число   
#define PLAYER_VARTYPE_STRING     2 - строка   
#define PLAYER_VARTYPE_FLOAT      3 - вещественное число
//сама функция.
GetPVarType(playerid, pvar[]);// функции узнаёт тип pvar`a по его названию

PVar`ы кроме имени имеют так же и id.
Код
GetPVarsUpperIndex(playerid);//возвращает максимальный id pvar`a.

Вот функция, которая узнаёт id pvar`a по его id.
Код
new string[128];    
GetPVarNameAtIndex(playerid, id, string, 128);//где id - ид pvar`a


Скуп
ВК
RakDroid - прокачка аккаунтов с телефона
VKMusic - вк музыка без браузера
Делаю сайты/софт/стимботов на заказ


Сообщение отредактировал [CM]Logotipo - Вторник, 04.03.2014, 22:05
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума