new bool:PlayerTookGift[MAX_PLAYERS char];
//
PlayerTookGift{playerid} = true;
//
PlayerTookGift{playerid} = false;
Это будет иметь бОльший смысл, но даже тут "bool" нужна просто для того, чтоб нам компилятор не давал случайно записывать в переменную PlayerTookGift значения, отличные от true/false, выдавая предупреждения.
Главное обратить внимание на фигурные скобки вместо квадратных при работе с переменной, и на то, что в такую переменную нельзя записать значения меньше 0 или больше 255.
UPD: Ещё один из вариантов решения той же задачи, но, чаще, гораздо более удобный и информативный - использование enum:
enum e_PLAYER_GIFT_STATUS
{
PLAYER_GIFT_STATUS__NOT_TOOK = 0,
PLAYER_GIFT_STATUS__TOOK = 1,
}
new e_PLAYER_GIFT_STATUS:PlayerTookGift[MAX_PLAYERS char];
//
PlayerTookGift{playerid} = PLAYER_GIFT_STATUS__TOOK;
//
PlayerTookGift{playerid} = PLAYER_GIFT_STATUS__NOT_TOOK;
Он удобен тем, что мы, во-первых, не привязаны к значениям 0/1, а, во-вторых, мы легко можем добавить в будущем другие "состояния", не переписывая код.
Из минусов - в обоих вариантах не получится грузить данные из БД напрямую в переменную, так как плагин не умеет правильно работать с байтами в такой конфигурации. Поэтому придётся делать так:
new buff_gidt_status;
cache_get_value_name_int(0, "Gift", buff_gidt_status);
PlayerTookGift{playerid} = bool:buff_gidt_status;
// PlayerTookGift{playerid} = e_PLAYER_GIFT_STATUS:buff_gidt_status;
Сообщение отредактировал DeimoS: 09 мая 2025 - 09:22
Вход
Регистрация
Помощь









