Berserk

Berserk 1.2.0

Нет прав для скачивания
Сообщения
265
Реакции
77
Предупреждения
8
Помог
1 раз(а)
Noob_with_cheats добавил(а) новый ресурс:

Berserk - Берсерк для вашего сервера

Добавляет в игру Берсерка. Игрок получает его рандомно раз в n-ое время. У него меняется скорость (квар), хп (квар), даётся свечение (квар), экран становится красным (меняется в исходнике). При его убийстве — убийца получает гранату. Игроки не могут получить его повторно, если не все побывали в его шкуре (боты, хлтв и спектры не учитываются) Рекомендуется использовать на серверах GunGame.
Узнать больше об этом ресурсе...
 
Сообщения
336
Реакции
396
Предупреждения
5
Помог
7 раз(а)
Мелкие замечания по стилистике кода:
1) в 1.9.0 не надо подключать amxmisc
2) ставить ; там где необходимо
3) ставить пробелы между запятыми в функциях, что бы не было сплошного кода
4) не забывай пустой перенос строк между функциями, а то опять же, как сплошной один текст выглядит
5) в хуках в названиях функций, указывай пре или пост
 
Последнее редактирование:

d3m37r4

111111
Сообщения
1,429
Реакции
1,169
Помог
10 раз(а)
1) в 1.9.0 не надо подключать amxmisc
А если я хочу оттуда стоки использовать? Из него как раз используется расширенный set_task_ex
2) ставить ; там где необходимо
Автор посчитал, что они не нужны и чо делать?

Noob_with_cheats, чет каша какая-то с одинаковыми проверками
1635566797894.png
1635566807325.png
 
Сообщения
658
Реакции
230
Помог
11 раз(а)
также используйте корректные (оригинальные) функция возврата в Reapi функциях

HC_CONTINUE - продолжить вызывать хуки и оригинал
HC_SUPERCEDE - продолжить вызывать хуки, но прервать выполнение оригинала
(Если функция не void, перед блокировкой её вызова необходимо установить свое возвращаемое значение)
HC_BREAK - прервать выполнение хуков и оригинала


Код:
public PlayerKilled(Victim, Attacker, inflictor)
{
    if(!is_user_connected(Victim) || Players[Victim][isBerserk] != 1) 
        return HC_CONTINUE
    
    if(Attacker == Victim || Victim == inflictor || Attacker == 0)
    {
        client_print_color(0,print_team_red,"[^3GM Berserk^1] %L",LANG_PLAYER,"BERSERK_MODE_SUICIDE",Players[Victim][NickBr])
    }
    else
    if(Players[Victim][isBerserk]==1 && Players[Attacker][isBerserk]==1)
    {
        client_print_color(0,print_team_red,"[^3GM Berserk^1] %L",LANG_PLAYER,"BERSERK_MODE_BR_KILL_BR",Players[Attacker][NickBr],Players[Victim][NickBr])
    }
    else
    {
        new NickPL[32]
        get_user_name(Attacker,NickPL,charsmax(NickPL))
        client_print_color(0,print_team_red,"[^3GM Berserk^1] %L",LANG_PLAYER,"BERSERK_MODE_PL_KILL_BR",NickPL,Players[Victim][NickBr])
        
        if(!is_user_ign(Attacker) && is_user_connected(Attacker))
            rg_give_item(Attacker, "weapon_hegrenade", GT_APPEND)
    }

    Players[Victim][isBerserk] = 2
    
    if(Pcvar[glow])
        set_user_rendering(Victim,kRenderFxNone,0,0,0,kRenderNormal,0)
    
    rg_reset_maxspeed(Victim)
    
    return HC_CONTINUE
}

также на 1.9.0 вместо get_user_name можно просто использовать %n
 
Последнее редактирование:
Сообщения
265
Реакции
77
Предупреждения
8
Помог
1 раз(а)
Albertio, d3m37r4, Limbooc,
Спасибо за замечания, исправлю. Код несколько раз переписывался. Это 5-6 вариант.
 
Сообщения
3,377
Реакции
1,479
Помог
124 раз(а)
Noob_with_cheats, не используй хардкод, там где это возможно. Некоторые переменные можно кешировать, такие как get_maxplayers(). А в 1.9.0+ вообще есть глобальная переменная MaxClients
 
Сообщения
775
Реакции
291
Помог
11 раз(а)
Noob_with_cheats, если используете ланг, то наверное весь текст нужно в него заключать? почему одно править можно в ланге, а другое в исходнике?
30 Окт 2021
и касаемо стилистики кода
почему
Код:
   while(is_user_ign(winpl) || isBerserk[winpl]!=0)
    {
        winpl = random_num(1, get_maxplayers());
    }
,а не
Код:
    while(is_user_ign(winpl) || isBerserk[winpl]!=0)
        winpl = random_num(1, get_maxplayers());
30 Окт 2021
в плане, не почему именно так написано, а почему так написано если в большинстве условий скобки вы упраздняете
 
Сообщения
336
Реакции
174
Помог
11 раз(а)
Зачем инклюд fun, если вы уже используете reapi?
Код:
set_user_health(id,10); --> set_entvar(index,var_health,10.0);
 

d3m37r4

111111
Сообщения
1,429
Реакции
1,169
Помог
10 раз(а)
b0t., он для выставления рендеринга используется еще. set_user_rendering.

Noob_with_cheats, в теме с складом кода есть сток с использованием реапи, можно оттуда взять и отказаться от модуля fun.
 
Сообщения
336
Реакции
174
Помог
11 раз(а)
d3m37r4, Для этого в reapi, тоже всё есть
 

d3m37r4

111111
Сообщения
1,429
Реакции
1,169
Помог
10 раз(а)
b0t., мне-то это зачем писать. Я выше написал уже о том, что есть.
 
Сообщения
1,668
Реакции
1,495
Помог
24 раз(а)
Noob_with_cheats,
Код:
client_cmd(id, "mp3 play sound/gm_plugins/Berserk.mp3");
Так плохо хардкодить строки, звук в двух местах приходится менять.
 
Сообщения
391
Реакции
106
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
client_cmd(id, "mp3 play sound/gm_plugins/Berserk.mp3");

mp3 целесообразность в меньшем размере, но этот формат в свёрнутом режиме играет. Wav в этом отношении решение ....

Дремлешь такой, находясь в спектре.. И тут будильник..
 

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

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