[CS: GO] The Annihilation

Тема в разделе "Новые плагины", создана пользователем Primo, 12 сен 2014.

  1. Primo

    Primo Где мои манеры

    Сообщения:
    1.191
    Симпатии:
    310
    The Annihilation 1.0.2

    Описание:
    Данный плагин представляет собой менеджер, который делает ваш сервер не просто Knife сервером, а сервером-аннигиляции, примером которого может быть "Перетягивание каната".
    А если подробнее, каждая команда должна захватывать игроков в свою команду, пока игрок во вражеской команде не останется один. Последнего необходимо убить, но этот игрок может захватить всех так же, как и вы. Победит та команда, которая убила последнего игрока.
    Можно сравнить с настольной игрой "Реверси", а так же Zombie Mod, только тут "заражают" обе команды :)

    Особенности плагина:
    - Захват с 1 удара.
    - Смена скина игрока на скин команды.
    - Последний игрок в команде не захватывается.
    - Отключены: спасение заложников и установка бомб, что позволяет играть на любой карте.
    - Захваченному игроку выдаётся 200 здоровья.
    - Автоматическое возрождение через 5 сек после смерти.
    - Автоматическое возрождение после подключения.
    - Команда возрождения !respawn, !res

    P.S. Выкладываю плагин, который делал для своего сервера, поэтому 100% поддержку плагина не обещаю. Работает только на CSGO, но вы можете адаптировать под CSS сменив модели, которые выставляются плагином.
     

    Вложения:

    Последнее редактирование: 14 сен 2014
    Webman, AlmazON, pracc и ещё 1-му нравится это.
  2. AlmazON

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

    Сообщения:
    4.523
    Симпатии:
    1.972
    Re: [CSGO] The Annihilation 1.0

    Я думаю, стоит её убрать... Или она счёт тоже заодно обнуляет?)
     
  3. Primo

    Primo Где мои манеры

    Сообщения:
    1.191
    Симпатии:
    310
    Re: [CSGO] The Annihilation 1.0

    Да я только додумался об этом, когда запостил уже плагин)
     
  4. pracc

    pracc

    Сообщения:
    480
    Симпатии:
    128
    Re: [CSGO] The Annihilation 1.0

    Сделаю на днях сервер у себя по этому моду и усовершенствую твой мод для своего сервера, если ты не против.
     
  5. Primo

    Primo Где мои манеры

    Сообщения:
    1.191
    Симпатии:
    310
    Re: [CSGO] The Annihilation 1.0

    Исходник есть, поступай как знаешь.
     
  6. pracc

    pracc

    Сообщения:
    480
    Симпатии:
    128
    Re: [CSGO] The Annihilation 1.0

    Он даже и не к чему.
     
  7. Primo

    Primo Где мои манеры

    Сообщения:
    1.191
    Симпатии:
    310
    Re: [CSGO] The Annihilation 1.0.1

    Версия 1.0.1.
    Исправлены некоторые ошибки.
     

    Вложения:

  8. R1KO

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

    Сообщения:
    5.988
    Симпатии:
    2.985
    Re: [CSGO] The Annihilation 1.0.1

    Primo, Лови критику
    PHP:
    new CTCount;
    new 
    TCount;
    Зачем они тебе глобально?

    PHP:
    if(GetClientTeam(victim) == && GetClientTeam(attacker) == && CTCount 1)
            {
                
    /* бла-бла*/
            
    }
            else if(
    GetClientTeam(victim) == && GetClientTeam(attacker) == && TCount 1)
    По несколько раз получаешь команду. Лучше получить 1 раз и записать в переменную.
    PHP:
    public Action:RespawnPlayer(Handle:timerany:client)
    {
        if(
    IsClientInGame(client) && !IsPlayerAlive(client)) CS_RespawnPlayer(client);
        
    KillTimer(timer);
        
    CloseHandle(timer);
    }
    Тут не надо делать ни KillTimer(timer); ни CloseHandle(timer); Можно либо убрать это всё либо убрать и дописать return Plugin_Stop;

    PHP:
    public RemoveWeapon(client)
    {
        new 
    current0 GetPlayerWeaponSlot(client0);
        new 
    current1 GetPlayerWeaponSlot(client1);
        new 
    current3 GetPlayerWeaponSlot(client3);
        new 
    current4 GetPlayerWeaponSlot(client4);
        if(
    IsValidEntity(current0) && current0 != INVALID_ENT_REFERENCE)
        {
            
    RemovePlayerItem(clientcurrent0);
        }
        if(
    IsValidEntity(current1) && current1 != INVALID_ENT_REFERENCE)
        {
            
    RemovePlayerItem(clientcurrent1);
        }
        if(
    IsValidEntity(current3) && current3 != INVALID_ENT_REFERENCE)
        {
            
    RemovePlayerItem(clientcurrent3);
        }
        if(
    IsValidEntity(current4) && current4 != INVALID_ENT_REFERENCE)
        {
            
    RemovePlayerItem(clientcurrent4);
        }
        
    //GivePlayerItem(client, "weapon_knife");
    }
    Тут делай циклом.
    PHP:
    public RemoveWeapon(client)
    Не надо тут писать public.
     
  9. Primo

    Primo Где мои манеры

    Сообщения:
    1.191
    Симпатии:
    310
    Re: [CSGO] The Annihilation 1.0.1

    Надо.

    Команда игрока меняется по кд, да, к тому же, если 1 проверка прошла успешно, то 2 не выполняется. else if же.



    Да я запутался уже с этими таймера, вы мне говорите, то закрывать, то не закрывать.
    Я закрыл хандл потому, что где-то прочитал в комментариях на https://sm.alliedmods.net/api/ , что если не закрыть хандл, то это приведёт к крашу сервера. Не хочу рисковать.



    Суть не меняется, удаляется всё. А с циклом мне нужно было оставить нож, а если бы я добавил проверку на слот, то бишь слот равен = 2, это привело бы к создании лишней проверки. А так, выполняется то же кол-во операций, и без лишних операций увеличения значения переменной и проверок и т.п.

    Буду знать.
     
  10. R1KO

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

    Сообщения:
    5.988
    Симпатии:
    2.985
    Re: [CSGO] The Annihilation 1.0.1

    Primo, Оффтоп
     
  11. Primo

    Primo Где мои манеры

    Сообщения:
    1.191
    Симпатии:
    310
    Re: [CSGO] The Annihilation 1.0.1

    Оффтоп
     
  12. AlmazON

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

    Сообщения:
    4.523
    Симпатии:
    1.972
    Re: [CSGO] The Annihilation 1.0.1

    А если нет, то каждый раз всё узнаётся ещё раз, что не хорошо.
    Оффтоп
    Этого достаточно, а последующее и отдельное применение CloseHandle для таймера часто приводит к ошибке.
    Если не хочешь рисковать, то после приравнивай Handle к "пустоте".
    В данном случае, в самом таймере он действительно не нужен. Если бы ты вынес его в функцию со сбросом ещё где-то, то отлично.
    И как, сколько гранат остаётся?
     
  13. Primo

    Primo Где мои манеры

    Сообщения:
    1.191
    Симпатии:
    310
    Re: [CSGO] The Annihilation 1.0.1

    AlmazON, Если вы про то, что я проверяю команду каждого игрока, то у меня просто были проблемы, и данная проверка решила проблему.
     
  14. AlmazON

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

    Сообщения:
    4.523
    Симпатии:
    1.972
    Re: [CSGO] The Annihilation 1.0.1

    Primo, может хоть так?
    PHP:
    switch (GetClientTeam(victim))
    {
        case 
    2:
        {
            if (
    GetClientTeam(attacker) == && TCoun t 1)
            {
            ...
            }
        }
        case 
    3:
        {
            if (
    GetClientTeam (attacker) == && CTCount 1)
            {
            ...
            }
        }
    }
    Так действительно данные клиента извлекаются 1 раз - там идёт лишь сравнение, как будто это переменная.
     
    Primo нравится это.
  15. Primo

    Primo Где мои манеры

    Сообщения:
    1.191
    Симпатии:
    310
    Re: [CSGO] The Annihilation 1.0.1

    AlmazON, ну, это будет самым оптимальным. Спасибо.
     
  16. Primo

    Primo Где мои манеры

    Сообщения:
    1.191
    Симпатии:
    310
    Re: [CSGO] The Annihilation 1.0.2

    Annihilation 1.0.2

    Исправлены ошибки.
     

    Вложения:

  17. Mr.Credo

    Mr.Credo

    Сообщения:
    128
    Симпатии:
    4
    @Primo, а на ксго пойдет этот плагин?
     
  18. Primo

    Primo Где мои манеры

    Сообщения:
    1.191
    Симпатии:
    310
    Он и так для csgo
     
  19. Mr.Credo

    Mr.Credo

    Сообщения:
    128
    Симпатии:
    4
    @Primo, чет я не внимателен))