Форум Pawn.Wiki - Воплоти мечту в реальность!: Простая система подарка для новичков - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ GF ]
Простая система подарка для новичков
Оценка: -----

#11
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
Пссс, смотрите что покажу

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

2

Поделиться темой:


  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика