Top awards проблемы

Portugal

Пользователь
Регистрация
2 Мар 2018
Сообщения
257
Симпатии
5
Предупреждения
60
Пол
Мужской
Привет народ подскажите что я не так делаю плагин как вы уже поняли даёт флаги игрокам попавшим в топ 5 , плагин как бы и работаёт только проблема в том что флаги выдаются не рабочие то есть у меня Vipka стоит на флаге ADMIN_LEVEL_B //Flag "n" а модель випки на ADMIN_LEVEL_E //Flag "q" выставил я в конфиге чтоб игрокам довались флагин за топ 1-5 "nq" флаги даются только вот модель випки не даёт и ещё у меня граната хилка вместо смока стоит так вот гранату даёт только простую смок и префикс вип не даёт хоть он стоит на флаге "n" а если через amxbans дою флаги игроку "nq" то всё работает :/ Плагины подобного типа ставил проверял тоже самое .


Код:
#include <amxmodx>
#include <reapi>
#include <csx>

#if AMXX_VERSION_NUM < 183
   #include <colorchat>
   #define client_disconnected   client_disconnect
#endif

/* SETTINGS */
//#define IGNORE_FLAGS "t"   
   // Игнорируемые флаги
   // Закомментировать, если не нужно игнорируемые флаги
  
#define TIME 1.0         
   // Каждые n секунды проверить статистику игрока
  
#define   MAX_AWARDS 254     
   // Максимальная кол-во наград

/* DICTIONARY */
//#define   TOP_CHAT_MESSAGE   "^1[^4Top Awards^1] Вы ^3поднялись на %d ^1место. Бонусные флаги: ^4%s"
   // Закомментировать, если не нужно сообщение при поднятие место
  
//#define NO_TOP_CHAT_MESSAGE "^1[^4Top Awards^1] Вы ^3опустились на %d ^1место. ^3Нет бонусных флагов"
   // Закомментировать, если не нужно сообщение при понижение место

/* Do not touch arrays */
new bool:GiveAward[33];
enum _:DATA { FLAGS[32] };
new g_arrAwardData[MAX_AWARDS][DATA], g_iDataSize = 1;

public plugin_init()
{
   register_plugin(" [ReAPI]Top Awards", "1.0", "Dom1no_[KZ]")
   RegisterHookChain(RG_CBasePlayer_Spawn, "client_player_spawn", true);
}

public plugin_cfg()
{
   new szPath[64];
   get_localinfo("amxx_configsdir", szPath, charsmax(szPath));
   add(szPath, charsmax(szPath), "/top_awards.ini");

   new iFile = fopen(szPath, "rt");
   if(!iFile)
   {
      new szError[96];
      formatex(szError, charsmax(szError), "File '%s' not found OR incorrect CHMOD!", szPath);
      set_fail_state(szError);
   }
  
   new szBuffer[MAX_AWARDS];
   while(!feof(iFile))
   {
      fgets(iFile, szBuffer, charsmax(szBuffer));
      trim(szBuffer);
      
      if(!szBuffer[0] || szBuffer[0] == ';')
         continue;
      
      if(parse(szBuffer,
         g_arrAwardData[g_iDataSize][FLAGS], charsmax(g_arrAwardData[][FLAGS])
      ) == 1)   g_iDataSize++;
   }
   fclose(iFile);
}

public client_putinserver(id)   GiveAward [id]= false;
public client_disconnected(id)   GiveAward [id]= false;
public client_player_spawn(id)   set_task(TIME, "ItemAwards", id)

public ItemAwards(id)
{
   #if defined IGNORE_FLAGS
      if(!GiveAward [id]&& get_user_flags(id) & read_flags(IGNORE_FLAGS))
         return
   #endif
  
   new szStats[8];
   new iRank   = get_user_stats(id, szStats, szStats);
   if(iRank < g_iDataSize)
   {
      if(~get_user_flags(id) & read_flags(g_arrAwardData[iRank][FLAGS]))
      {
         set_user_flags(id, read_flags(g_arrAwardData[iRank][FLAGS]))
         #if defined TOP_CHAT_MESSAGE
            ColorChat(id, NORMAL, TOP_CHAT_MESSAGE, iRank, g_arrAwardData[iRank][FLAGS]);
         #endif
         GiveAward [id]= true;
      }
   }
   else
   {
      remove_user_flags(id);
      #if defined NO_TOP_CHAT_MESSAGE
         ColorChat(id, NORMAL, NO_TOP_CHAT_MESSAGE, iRank);
      #endif
      GiveAward [id]= false;
   }
}
 

perfectblood0

Команда форума
Администратор
Регистрация
29 Окт 2017
Сообщения
2.578
Симпатии
914
Пол
Женский
После смены карты все равно не выдаётся ничего?
 

Portugal

Пользователь
Регистрация
2 Мар 2018
Сообщения
257
Симпатии
5
Предупреждения
60
Пол
Мужской
Нет не выдается , мне кажется это проблема в том что плагин не умеет читать флаги через ADMIN_LEVEL_B //Flag "n" флаг "n" даёт но плагин не понимает что на этом флаге стоит модель випки префикс граната хилка но вип он как бы даёт випменю даёт.
 

pantrypei

Пользователь
Регистрация
10 Янв 2018
Сообщения
164
Симпатии
29
Предупреждения
30
Пол
Мужской
Нет не выдается , мне кажется это проблема в том что плагин не умеет читать флаги через ADMIN_LEVEL_B //Flag "n" флаг "n" даёт но плагин не понимает что на этом флаге стоит модель випки префикс граната хилка но вип он как бы даёт випменю даёт.
set_user_flags(id, read_flags(g_arrAwardData[iRank][FLAGS]))
Это строка отвечает за флаги. И он конкретно дает флаги. А этот модели и хилки это ваша проблема!
 

Portugal

Пользователь
Регистрация
2 Мар 2018
Сообщения
257
Симпатии
5
Предупреждения
60
Пол
Мужской
set_user_flags(id, read_flags(g_arrAwardData[iRank][FLAGS]))
Это строка отвечает за флаги. И он конкретно дает флаги. А этот модели и хилки это ваша проблема!
Так модели и хилки стоят на тех флагах каторые я указал чтоб выдовал плагин он выдаёт флаги но модель и хилки не даёт а если я через amxbans выдаю эти флаги то всё нормально значит плагин выдаёт не рабочие флаги я так понимаю :?)
 

georgeml

Скриптер
Постоялец
Регистрация
12 Сен 2017
Сообщения
595
Симпатии
314
Portugal, Флаги не могут быть не рабочие. Автор вашей випки живет на Луне и не понимает, что флаги могут появляться во время игры, а не только при входе на сервер.
 

pantrypei

Пользователь
Регистрация
10 Янв 2018
Сообщения
164
Симпатии
29
Предупреждения
30
Пол
Мужской
Привет народ подскажите что я не так делаю плагин как вы уже поняли даёт флаги игрокам попавшим в топ 5 , плагин как бы и работаёт только проблема в том что флаги выдаются не рабочие то есть у меня Vipka стоит на флаге ADMIN_LEVEL_B //Flag "n" а модель випки на ADMIN_LEVEL_E //Flag "q" выставил я в конфиге чтоб игрокам довались флагин за топ 1-5 "nq" флаги даются только вот модель випки не даёт и ещё у меня граната хилка вместо смока стоит так вот гранату даёт только простую смок и префикс вип не даёт хоть он стоит на флаге "n" а если через amxbans дою флаги игроку "nq" то всё работает :/ Плагины подобного типа ставил проверял тоже самое .


Код:
#include <amxmodx>
#include <reapi>
#include <csx>

#if AMXX_VERSION_NUM < 183
   #include <colorchat>
   #define client_disconnected   client_disconnect
#endif

/* SETTINGS */
//#define IGNORE_FLAGS "t"  
   // Игнорируемые флаги
   // Закомментировать, если не нужно игнорируемые флаги
 
#define TIME 1.0        
   // Каждые n секунды проверить статистику игрока
 
#define   MAX_AWARDS 254    
   // Максимальная кол-во наград

/* DICTIONARY */
//#define   TOP_CHAT_MESSAGE   "^1[^4Top Awards^1] Вы ^3поднялись на %d ^1место. Бонусные флаги: ^4%s"
   // Закомментировать, если не нужно сообщение при поднятие место
 
//#define NO_TOP_CHAT_MESSAGE "^1[^4Top Awards^1] Вы ^3опустились на %d ^1место. ^3Нет бонусных флагов"
   // Закомментировать, если не нужно сообщение при понижение место

/* Do not touch arrays */
new bool:GiveAward[33];
enum _:DATA { FLAGS[32] };
new g_arrAwardData[MAX_AWARDS][DATA], g_iDataSize = 1;

public plugin_init()
{
   register_plugin(" [ReAPI]Top Awards", "1.0", "Dom1no_[KZ]")
   RegisterHookChain(RG_CBasePlayer_Spawn, "client_player_spawn", true);
}

public plugin_cfg()
{
   new szPath[64];
   get_localinfo("amxx_configsdir", szPath, charsmax(szPath));
   add(szPath, charsmax(szPath), "/top_awards.ini");

   new iFile = fopen(szPath, "rt");
   if(!iFile)
   {
      new szError[96];
      formatex(szError, charsmax(szError), "File '%s' not found OR incorrect CHMOD!", szPath);
      set_fail_state(szError);
   }
 
   new szBuffer[MAX_AWARDS];
   while(!feof(iFile))
   {
      fgets(iFile, szBuffer, charsmax(szBuffer));
      trim(szBuffer);
     
      if(!szBuffer[0] || szBuffer[0] == ';')
         continue;
     
      if(parse(szBuffer,
         g_arrAwardData[g_iDataSize][FLAGS], charsmax(g_arrAwardData[][FLAGS])
      ) == 1)   g_iDataSize++;
   }
   fclose(iFile);
}

public client_putinserver(id)   GiveAward [id]= false;
public client_disconnected(id)   GiveAward [id]= false;
public client_player_spawn(id)   set_task(TIME, "ItemAwards", id)

public ItemAwards(id)
{
   #if defined IGNORE_FLAGS
      if(!GiveAward [id]&& get_user_flags(id) & read_flags(IGNORE_FLAGS))
         return
   #endif
 
   new szStats[8];
   new iRank   = get_user_stats(id, szStats, szStats);
   if(iRank < g_iDataSize)
   {
      if(~get_user_flags(id) & read_flags(g_arrAwardData[iRank][FLAGS]))
      {
         set_user_flags(id, read_flags(g_arrAwardData[iRank][FLAGS]))
         #if defined TOP_CHAT_MESSAGE
            ColorChat(id, NORMAL, TOP_CHAT_MESSAGE, iRank, g_arrAwardData[iRank][FLAGS]);
         #endif
         GiveAward [id]= true;
      }
   }
   else
   {
      remove_user_flags(id);
      #if defined NO_TOP_CHAT_MESSAGE
         ColorChat(id, NORMAL, NO_TOP_CHAT_MESSAGE, iRank);
      #endif
      GiveAward [id]= false;
   }
}
Измените код для того, чтобы дали вам модели и хилки. Плагин проверяет место игрока при спавне!
 

Portugal

Пользователь
Регистрация
2 Мар 2018
Сообщения
257
Симпатии
5
Предупреждения
60
Пол
Мужской
Вип как раз даётся а хилка на флаг и модель на флаг это у меня отдельные плагины они стоят на flag "n" флаг даётся а хилка вместо смока и моделька випки и префикс вип нет ;/ может плагин даёт флаг не как ADMIN_LEVEL_B а просто как флаг "n" ?[DOUBLEPOST=1539351477][/DOUBLEPOST]
Измените код для того, чтобы дали вам модели и хилки. Плагин проверяет место игрока при спавне!
Да я не силён в в этом ,))
 

perfectblood0

Команда форума
Администратор
Регистрация
29 Окт 2017
Сообщения
2.578
Симпатии
914
Пол
Женский
Вип как раз даётся а хилка на флаг и модель на флаг это у меня отдельные плагины они стоят на flag "n" флаг даётся а хилка вместо смока и моделька випки и префикс вип нет ;/ может плагин даёт флаг не как ADMIN_LEVEL_B а просто как флаг "n" ?[DOUBLEPOST=1539351477][/DOUBLEPOST]
Да я не силён в в этом ,))
Верный ответ в 6 посте.
Зависит от плагина, когда и как он проверяет наличие флага
 

Portugal

Пользователь
Регистрация
2 Мар 2018
Сообщения
257
Симпатии
5
Предупреждения
60
Пол
Мужской
Верный ответ в 6 посте.
Зависит от плагина, когда и как он проверяет наличие флага
Если бы так то он хоть раз бы выдал эту модель после смены карты или на входе на сервер но он вобще не выдаёт ничего :/[DOUBLEPOST=1539355943][/DOUBLEPOST]Да и почему тогда когда я через amxbans выдаю эти флаги то всё работает все модели выдает и т.д этот плагин top awards каждый раунд проверяет или игрок находится в топе от 1-5 места только тогда ему флаги даёт если он спустился на 6 то снимает .
 

r1nk0

Пользователь
Регистрация
3 Окт 2018
Сообщения
258
Симпатии
53
плагин випки стоит ниже плагина который дает флаги?
 
Сверху Снизу