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;
}
}