|
Форум » Counter-Strike 1.6 » Сервер Counter-Strike 1.6 » Помощь по скриптингу » Top awards проблемы |
Top awards проблемы |
Дата: Четверг, 11.10.2018, 14:35 | Сообщение # 1
Смотрящий
Мастер
Offline
![]()
Привет народ подскажите что я не так делаю плагин как вы уже поняли даёт флаги игрокам попавшим в топ 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; } }
Сообщение отредактировал M0Nk - Четверг, 11.10.2018, 14:36
|
Дата: Четверг, 11.10.2018, 16:12 | Сообщение # 2
Постоянный
Мастер
Offline
![]()
причин много, скорей всего выдача скина и префикса лишь при входе на сервер, нужно в других плагинах менять
|
| |||
| |||