[Любая игра] Most Deadly Player

Тема в разделе "Утверждённые плагины", создана пользователем AlmazON, 22 июн 2015.

  1. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Most Deadly Player
    Текущая версия: 1.0.0

    Описание:
    [​IMG]
    Если никто никого не ранил - отображения в чате от плагина не будет.
    Если вред игрокам был нанёсен лишь самой картой - информация об ущербе от игрового мира (полезно на сервере типа Bunny Hop или Mini Games):
    [​IMG]
    Если количество убийств у игрока с любым другим одинаковое - выбирается тот, кто нанёс больше урона.
    Если происходит ситуация выше и урон также един - победителем станет наиболее точный игрок.
    Также, в некоторых случаях, возможен показ игрового мира, как победителя, если он оказался смертоносней любого из игроков ("насмешка"/небольшое разнообразие).

    Требования:

    Поддерживаются игры:
    • Любая игра (кроме показа урона, например, DOD)

    Установка:
    • Переместите или скопируйте файл "MostDeadlyPlayer.sp" в директорию addons\sourcemod\scripting сервера.
    • Скомпилируйте плагин. Переместите или скопируйте полученный файл "MostDeadlyPlayer.smx" в директорию addons\sourcemod\plugins сервера.

    PHP:
    v1.0.0  (21.06.2015) - пробная версия.
     

    Вложения:

    TWRP и Tokko нравится это.
  2. vaxa

    vaxa Rock Rulet!

    Сообщения:
    859
    Симпатии:
    102
    AlmazON, транслит нужен!
     
  3. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.715
    Симпатии:
    452
    вывод в hint добавь
     
  4. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.978
    AlmazON, когда ты уже будешь выкладывать с smx? :(
     
    hellgu нравится это.
  5. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Оффтоп Да и зачем оно - куча файлов потом в профиле отображается, мне искать нужный неудобно.
    Пусть учатся компилировать, раз уж сервером обзавелись!
     
  6. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.188
    Симпатии:
    413
    Мне одному тяжело ориентироваться в этом коде?)
     
  7. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.715
    Симпатии:
    452
    Название переменных дело каждого :)
     
  8. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.188
    Симпатии:
    413
    Так скоро и до обфускации кода недалеко.)
     
  9. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Оффтоп Переменные/функции укорочены, а остальное - просто стиль.
    Я бы добавил и сразу, но вы же без html-цветов не можете, а ради этого добавлять буфер+замену как-то не хотелось.
    Под конец раунда? На 3 секунды? Да надо ли оно там?! Оффтоп
     
  10. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.188
    Симпатии:
    413
    Plugin Approved.

    В последнее время часто замечаю что hint забит всяким ненужным. Один hint перекрывает другой (от других плагинов). Лучше использовать PrintToChat.
     
  11. SenatoR

    SenatoR Модератор

    Сообщения:
    714
    Симпатии:
    270
    AlmazON, А в больших плагинах ты тоже переменные\функции сокращаешь?
    Вопрос из любопытства.
     
  12. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Всегда. Как часть стиля. Мне итак всё понятно, не путаюсь.
    Не сокращаю, если только кому-то просто в помощь плагин нужен и чтобы было ясно, что где, остальным - в случае редактирования.
     
    SenatoR нравится это.
  13. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.715
    Симпатии:
    452
    Хотелось бы немного переделанный вывод увидеть)
    1 убийство
    2 убийства
    3 убийства
    4 убийства
    5 убийств
    ....
    1 ранение
    2 ранения
    3 ранения
    4 ранения
    5 ранений
    ....
     
  14. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Математическую формулу склонения имён существительных знаешь? А вручную делать многовато (на DM нужно, как минимум, до тысяч расписать - это перебор).
     
  15. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.715
    Симпатии:
    452
    Решил сделать кардинально.
    PHP:
        if (MaxDamage 0)
        {
            
            
    PrintHintTextToAll    ("₪> Наибольший урон нанес %N - %d урона <₪\n₪> Большинство убийств в раунде сделал: %N убив %d <₪",MaxDamage,Damage[MaxDamage],MaxKills,Kills[MaxKills]);
            
            switch (
    GetClientTeam(MaxDamage))
            {
                case 
    2:        {CPrintToChatAll("{green}₪>{default} Наибольший {green}урон{default} нанес {red}%N{default} - {green}%d{default} урона",MaxDamage,Damage[MaxDamage]);}
                case 
    3:        {CPrintToChatAll("{green}₪>{default} Наибольший {green}урон{default} нанес {blue}%N{default} - {green}%d{default} урона",MaxDamage,Damage[MaxDamage]);}
                default:    {
    CPrintToChatAll("{green}₪>{default} Наибольший {green}урон{default} нанес {lightgreen}%N{default} - {green}%d{default} урона",MaxDamage,Damage[MaxDamage]);}
            }
            
            switch (
    GetClientTeam(MaxDamage))
            {
                case 
    2:            
                {
                    switch (
    Kills[MaxKills])
                    {
                        case 
    1:            CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {red}%N{default} убив {green}одного {default}противника",MaxKills,Kills[MaxKills]);
                        case 
    2:            CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {red}%N{default} убив {green}двоих {default}противников",MaxKills,Kills[MaxKills]);
                        case 
    3:            CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {red}%N{default} убив {green}троих {default}противников",MaxKills,Kills[MaxKills]);
                        case 
    4:            CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {red}%N{default} убив {green}четверых {default}противников",MaxKills,Kills[MaxKills]);
                        default:        
    CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {red}%N{default} убив {green}%d-х {default}противников",MaxKills,Kills[MaxKills]);
                    }
                }
                
                case 
    3:
                {
                    switch (
    Kills[MaxKills])
                    {
                        case 
    1:            CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {blue}%N{default} убив {green}одного {default}противника",MaxKills,Kills[MaxKills]);
                        case 
    2:            CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {blue}%N{default} убив {green}двоих {default}противников",MaxKills,Kills[MaxKills]);
                        case 
    3:            CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {blue}%N{default} убив {green}троих {default}противников",MaxKills,Kills[MaxKills]);
                        case 
    4:            CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {blue}%N{default} убив {green}четверых {default}противников",MaxKills,Kills[MaxKills]);
                        default:        
    CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {blue}%N{default} убив {green}%d-х {default}противников",MaxKills,Kills[MaxKills]);
                    }
                }
                
                default:
                {                
                    switch (
    Kills[MaxKills])
                    {
                        case 
    1:            CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {lightgreen}%N{default} убив {green}одного {default}противника",MaxKills,Kills[MaxKills]);
                        case 
    2:            CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {lightgreen}%N{default} убив {green}двоих {default}противников",MaxKills,Kills[MaxKills]);
                        case 
    3:            CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {lightgreen}%N{default} убив {green}троих {default}противников",MaxKills,Kills[MaxKills]);
                        case 
    4:            CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {lightgreen}%N{default} убив {green}четверых {default}противников",MaxKills,Kills[MaxKills]);
                        default:        
    CPrintToChatAll("{green}₪>{default} Большинство {green}убийств{default} сделал {lightgreen}%N{default} убив {green}%d-х {default}противников",MaxKills,Kills[MaxKills]);
                    }
                }
            }
            
        }


    Возможно не идеал - но как по мне - лучше. И да, с русским языком в таком плане у меня некие проблемы имеются, так что это скорее всего не ко мне)

    Если я не ошибаюсь то нужно взять последнюю цифру из большого числа и смотреть по ней, например:
    1 фраг
    2 фрага
    3 фрага
    4 фрага
    5 фрагов

    точно так же и в большом числе получиться:
    281 фраг
    282 фрага
    283 фрага
    284 фрага
    285 фрагов

    Возможно я идиот, но я пытался)
     
  16. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    11 фрагов.
    12 фрагов. И т.д.
    Не катит, фильтровать многовато.
     
  17. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.715
    Симпатии:
    452
    Первый десяток, всего то.


    Я предложил)
    В HLstatsX видел похожую штучку, если найду - скину.
     
  18. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Я видел небольшой формулой делали, не помню только точно, где.
     
  19. Barsminsk

    Barsminsk

    Сообщения:
    61
    Симпатии:
    0
    del
     
    Последнее редактирование: 13 июл 2016