Advertisement
execution88

Untitled

Jul 8th, 2025
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.51 KB | None | 0 0
  1. enum QUEST_ACCESS_TYPE {
  2.     QUEST_ACCESS_NONE,      // Нет ограничений
  3.     QUEST_ACCESS_VIP,       // Только для VIP
  4.     QUEST_ACCESS_LEVEL,     // Требуется минимальный уровень
  5.     QUEST_ACCESS_CHAPTER,   // Требуется завершение главы
  6.     QUEST_ACCESS_QUEST,     // Требуется завершение квеста
  7.     QUEST_ACCESS_TIME,      // Временное ограничение
  8.     QUEST_ACCESS_CUSTOM     // Пользовательское условие
  9. };
  10.  
  11. enum E_CONDITION {
  12.     conditionType,
  13.     conditionValue1,
  14.     conditionValue2,
  15.     conditionCustomCallback[32]
  16. }
  17.  
  18. enum E_CATEGORY_DATA {
  19.     categoryID,
  20.     name[32],
  21.     accessConditions[MAX_CATEGORY_CONDITIONS][E_CONDITION],
  22.     accessConditionCount,
  23.     // другие поля
  24. }
  25.  
  26. enum E_CATEGORY {
  27.     categoryID,
  28.     categoryName[32],
  29.     categoryQuests[MAX_QUESTS_PER_CATEGORY],
  30.     categoryAccessConditions[3][E_ACCESS_CONDITION], // 3 условия как в вашем примере
  31.     badge_name[32],
  32.     badge_color,
  33.     bool:is_daily_expire,
  34.     bool:is_give_casket
  35. };
  36.  
  37. stock AddCategoryCondition(categoryid, type, value1 = 0, value2 = 0, const callback[] = "") {
  38.     new count = g_quest_categories[categoryid][accessConditionCount];
  39.     if(count >= MAX_CATEGORY_CONDITIONS) return 0;
  40.  
  41.     g_quest_categories[categoryid][accessConditions][count][conditionType] = type;
  42.     g_quest_categories[categoryid][accessConditions][count][conditionValue1] = value1;
  43.     g_quest_categories[categoryid][accessConditions][count][conditionValue2] = value2;
  44.     strpack(g_quest_categories[categoryid][accessConditions][count][conditionCustomCallback], callback, 32);
  45.  
  46.     g_quest_categories[categoryid][accessConditionCount]++;
  47.     return 1;
  48. }
  49.  
  50. QuestCategoryDataCategory:Add(
  51.     QUEST_CATEGORY_DAILY,
  52.     .name = "Ежедневные",
  53.     .badge_name = "Ежедневное",
  54.     .badge_color = E_QUEST_BADGE_COLOR_GREEN,
  55.     .is_daily_expire = true,
  56.     .is_give_casket = true
  57. );
  58.  
  59. // Добавляем условие: Глава 1 должна быть завершена
  60. AddCategoryCondition(QUEST_CATEGORY_DAILY, CONDITION_CHAPTER_COMPLETED, 1);
  61.  
  62. // Добавляем условие по времени
  63. AddCategoryCondition(QUEST_CATEGORY_DAILY, CONDITION_TIME_LIMIT, startTime, endTime);
  64.  
  65. // Добавляем кастомную проверку
  66. AddCategoryCondition(QUEST_CATEGORY_DAILY, CONDITION_CUSTOM, 0, 0, "DailyAccessCheck");
  67.  
  68.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement