BLOG Mini-Blog by Javekson

Сообщения
1,031
Реакции
827
Помог
10 раз(а)
fantom, код раздуется =DDD Шутка, ну да, можно, не подумал сразу.
 
Сообщения
1,031
Реакции
827
Помог
10 раз(а)
Снова обновился Unlimited Choose Team
Отдельная благодарность fantom за советы, решение проблем

* Хук команд переделан под ReAPI
* Исправлен баг с исчезновением радара
* Добавлена поддержка старого меню
24 Апр 2019
auto_help_blocker

Скрывает стандартные информационных HUD-подсказки.
Чей код не помню, валялся в заметках у меня одной строкой.

no_fall_damage

Позволяет не разбиваться при падении с высоты.
Код очень простой, на ReAPI, вроде Vaqtincha писал, а что я там менял, не помню.

reset_score

Наверное каждый кодер себе его писал =DD Я не исключение, хоть и не кодер =D

items_restrict

Запрещалка покупать некоторую оружейку, писали ReHLDS Team, я лишь сократил до нужного мне функционала
Запрещает щит, скоро-стрелки.

no_team_flash

Ну тут понятно, антифлеш своей команды.
А если ты имеешь привилегии то не сможешь ослепить самого себя, в остальных случаях самого себя слепит.
Не кидайтесь яйцами, я знаю что не все это любят, но у меня другие стереотипы.

killing_screen

Ну тут понятно, всеми известный синий экран при убийстве противника, доступен всем.

spambot_kicker

Удаляет игроков с рекламой в нике, не прям всю абсолютно
Простенький, с основной задачей справляется, другую рекламу в никах не наблюдал

maps_time

Онлайн стал падать, пришлось вводить время игры для каждый карты в отдельности
Есесно для даста больше =DD Да. такие вот дела...

maps_online

Из название не понятно, да и не стал заморачиваться, чисто для "отладки нужно было"
Логирует количество онлайна каждую минуту для каждой карты.
Нужен был для выявления популярных карт.

2019-04-24_184623.png

reaimdetector
Плагин от модуля ReAIMDetector, просто сократил до нужного мне функционала, убрал кфг, и что-то еще не помню.
 

Download all Attachments

Последнее редактирование:
Сообщения
1,031
Реакции
827
Помог
10 раз(а)
Minni, не люблю конфиги, просто сократил до нужного мне функционала ) Что-то еще убрал в нем, менюшку вроде, которая мне не нужна была
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
Minni, не люблю конфиги, просто сократил до нужного мне функционала ) Что-то еще убрал в нем, менюшку вроде, которая мне не нужна была
Понимаю.... Это же так напряжно иметь конфиг и менюшку, которую не используют)
 

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
344
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Сообщения
1,031
Реакции
827
Помог
10 раз(а)
Minni, =DDDDDD Типа того, да. Плагины пишу для себя, потому удаляю все то, что не юзается, не считаю это за плохую манеру поведения. Хоть это и не критично по идеи.
24 Апр 2019
melfyk, да, при убийстве, спасибо.
 

d3m37r4

111111
Сообщения
1,449
Реакции
1,175
Помог
10 раз(а)
Javekson, в maps_online реапи только для получения названия карты?)
 
Сообщения
1,031
Реакции
827
Помог
10 раз(а)
d3m37r4, да, это не мешает, и даже помогает если у тебя mode 2х2 стоит
 
Сообщения
1,031
Реакции
827
Помог
10 раз(а)
d3m37r4, да можно конечно, кто мешает то ) Смысловой нагрузки нету ни в том не в этом случае
 

d3m37r4

111111
Сообщения
1,449
Реакции
1,175
Помог
10 раз(а)
Javekson, есть хейтеры реапи, которые скажут "вы свой реапи и туды и сюды суваете":crazy:
 
Сообщения
1,031
Реакции
827
Помог
10 раз(а)
d3m37r4, да пусть хейтят, что плохого в том, что сокращается количество обращений для получения инфы.
С тем же успехом, и такой же логикой лучше отключить #include <amxmisc> что бы вместо get_players_ex заюзать get_players, но тем не менее так будет читабельнее, как и здесь более грамотнее, для плагина mode в частности.
28 Апр 2019
d3m37r4, да и зачем он тогда, если его не юзать если можно и заюзать
 
Сообщения
1,420
Реакции
2,511
Помог
58 раз(а)
Сообщения
1,031
Реакции
827
Помог
10 раз(а)
Исправил недочет, урон прибавлялся так же и по своим игрокам, даже если те по факту не получали урона.
 

Вложения

Сообщения
1,031
Реакции
827
Помог
10 раз(а)
Спорили с игроками сидели, кто-то хочет слышать всех, а кто-то только живых.
Потому пришлось запилить возможность каждому в отдельности игроку выбирать кого слышать, всех или только живых.

Тестировал поверхностно, возможно что-то еще не учел, но в целом вроде работает.
Команду сделал временно, для себя изменю на каллфунк и вызвать будут через меню сервера.
Настройки сохраняются в нваулте, обнуляются через 7 дней если игрок не заходил

Планирую блокировать флуд и одновременное использование эфира более 2-3 игрокам
Забыл еще сделать таймер на 5 сек после смерти, чуть позже сделаю...

C++:
#include <amxmodx>
#include <nvault>
#include <reapi>

#pragma semicolon 1

const INACTIVITY_DAYS            = 7;                    // Удалять неактивных игроков через 'n' дней
const SECONDS_IN_DAY           = 86400;            // Количество секунд в одном дне

const AUTHID_STRLEN              = 24;

new g_iVaultID;

new bool:g_bAlive[MAX_PLAYERS + 1];
new bool:g_bVoiceBlock[MAX_PLAYERS + 1];

public plugin_init() {
    register_plugin("Voice Manager", "1.0", "Javekson");
 
    RegisterHookChain(RG_CSGameRules_CanPlayerHearPlayer, "CSGameRules_CanPlayerHearPlayer", .post = false);
    RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed", .post = true);
    RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", .post = true);
 
    register_clcmd("say /vc", "ClCmdVoice");
}

public plugin_cfg() {
    g_iVaultID = nvault_open("voice_manager");
    nvault_prune(g_iVaultID, 0, get_systime() - SECONDS_IN_DAY * INACTIVITY_DAYS);
}

public client_putinserver(id) {
    new sAuthID[AUTHID_STRLEN];
    get_user_authid(id, sAuthID, charsmax(sAuthID));
 
    if(nvault_get(g_iVaultID, sAuthID)) {
        g_bVoiceBlock[id] = true;
        nvault_touch(g_iVaultID, sAuthID);
    }
}

public plugin_end() {
    nvault_close(g_iVaultID);
}

public CBasePlayer_Spawn(id) {
    g_bAlive[id] = true;
}

public CBasePlayer_Killed(id) {
    g_bAlive[id] = false;
}

public CSGameRules_CanPlayerHearPlayer(const iListener, const iSender) {
    if(g_bVoiceBlock[iListener]) {
        if(g_bAlive[iListener] && !g_bAlive[iSender]) {
            SetHookChainReturn(ATYPE_INTEGER, false);
            return HC_SUPERCEDE;
        }
    }
    return HC_CONTINUE;
}

public ClCmdVoice(const id) {
    new sAuthID[AUTHID_STRLEN];
    get_user_authid(id, sAuthID, charsmax(sAuthID));
 
    if(g_bVoiceBlock[id]) {
        g_bVoiceBlock[id] = false;
        nvault_remove(g_iVaultID, sAuthID);
     
        client_print_color(id, print_team_default, "^4* ^1[^4GMF^1] Теперь ^4Вы ^1слышите всех ^4игроков");
        return PLUGIN_CONTINUE;
    }
 
    g_bVoiceBlock[id] = true;
    nvault_set(g_iVaultID, sAuthID, "1");
 
    client_print_color(id, print_team_default, "^4* ^1[^4GMF^1] Теперь ^4Вы ^1слышите только ^4живых игроков");
    return PLUGIN_CONTINUE;
}
30 Май 2019
За идею реализации спасибо CHEL74
 

Вложения

Последнее редактирование:
Сообщения
1,031
Реакции
827
Помог
10 раз(а)
Voice Manager

Голосовой менеджер со следующими возможностями

● Возможность выбрать кого слышать: всех/живых/мертвых/команду/никого
● Возможность выбрать кому можно говорить, сказать: всем/живым/мертвым/команде

● Возможность заглушить игрока, аналог /mute
● Возможность приватного общения в микрофон(TET-A-TET )


Команда для открытия меню: в чате /voice
 

Download all Attachments

Сообщения
271
Реакции
348
Помог
15 раз(а)
Код:
            callfunc_begin( "callfunc_ToggleListenerVoiceMode", "voice_manager.amxx" );
            callfunc_push_int( id );
            callfunc_end( );
?
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу