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