[CS: Source] 35HP Mod

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

  1. FBZA

    FBZA

    Сообщения:
    69
    Симпатии:
    6
    Описание:
    Данный плагин позволяет сделать любую карту, будь то $2000$ или же aim_, fy_, похожую на 35hp.
    Функции:
    Плагин запрещает: Зону покупки; Точки планта, Заложников, Урон от падения с большой высоты; Любое оружие, лежащее на карте.
    Плагин разрешает: Выдачу оружия игрокам, но в следующем раунде оно все равно пропадет.
    Плагин дает: 35 hp при спавне и нож.
    Требования:
    SourceMod, конечно же, последней версии.
    SDKHooks.

    Исходник есть
     

    Вложения:

    • 35hp__.rar
      Размер файла:
      9,7 КБ
      Просмотров:
      79
    Последнее редактирование: 31 авг 2014
    Primo, Konstantin и Petrovich нравится это.
  2. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Давай исходник.
     
  3. R1KO

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

    Сообщения:
    5.980
    Симпатии:
    2.983
    Hejter, написано же что автор зажал. Могу написать с 0.
     
  4. FBZA

    FBZA

    Сообщения:
    69
    Симпатии:
    6
    До чего же люди жадные, всем исходники подавай)
    Ну да ладно, скушал булочку, добавил исходник.
     
  5. rotmir

    rotmir

    Сообщения:
    113
    Симпатии:
    22
    Этот мод в адм включается или он как установил все все карты под этот мод адаптируются????
     
  6. FBZA

    FBZA

    Сообщения:
    69
    Симпатии:
    6
    Все карты, если хочешь отключить плагин, кинь его в папку disabled.
     
  7. krasawchik

    krasawchik

    Сообщения:
    67
    Симпатии:
    5
    как этот плагин реагирует на KnifeFight v.1.3.8 который выдает игрокам по 100 хп при сражении ??? и будет ли исчезать оружие в плагине weapon-fight-1.3.8.4 ???
     
  8. FBZA

    FBZA

    Сообщения:
    69
    Симпатии:
    6
    Исчезать ничего не будет, я же указал, игроку можно выдавать оружие.
    Если установить 100 хп, то будет 100 хп, потому что я не делал таймера на проверку 35 ли хп у игрока.
     
    Последнее редактирование: 30 авг 2014
  9. Primo

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

    Сообщения:
    1.191
    Симпатии:
    310
    Как реагировать? Какой плагин последним загрузится, тот и поставит своё хп.
     
  10. FBZA

    FBZA

    Сообщения:
    69
    Симпатии:
    6
    Там по событиям, либо если игроков < x.
    У меня событие стоит "player_spawn", значит ему не может помешать плагин KnifeFight или WeaponFight, потому что меню с предложением включается только тогда, когда остается в живых только 2 игрока.
     
  11. Primo

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

    Сообщения:
    1.191
    Симпатии:
    310
    Я не задавал вопроса.
    Т.к. тут всё по алгоритмам, то какой-то плагин всё-равно сделает работу раньше другого.
    А какой плагин установит окончательное хп, стоит гадать.
    К примеру.
    Твой плагин поставил 35 хп игроку, а потом другой плагин поставил этому же игроку 100 хп. Я имею ввиду, если событие одно и то же, а ты выставляешь здоровье при выполнении этого события.
     
  12. FBZA

    FBZA

    Сообщения:
    69
    Симпатии:
    6
    Никто не будет ставить плагин, который выставляет в одном и том же событии игроку 100 хп на ножевой сервер. Потому что карты 35hp_ сами выставляют и надобности в плагинах просто нет.
     
  13. Primo

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

    Сообщения:
    1.191
    Симпатии:
    310
    Я прям и вижу, как все плагины для knife серверов прям таки и сделаны только для карт 35hp_
     
  14. FBZA

    FBZA

    Сообщения:
    69
    Симпатии:
    6
    Ладно, допустим, плагин не только для карт 35hp_, но какому дураку понадобится делать плагин, который будет при спавне выставлять 100 хп, если по дефолту игрок спавнится со 100 хп?
     
  15. Primo

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

    Сообщения:
    1.191
    Симпатии:
    310
    То был пример, тут дело не в кол-ве хп, а в фукнциях, и какая из них будет вызвана первой.
     
  16. Konstantin

    Konstantin

    Сообщения:
    1.789
    Симпатии:
    767
    Оффтоп
     
    FBZA нравится это.
  17. R1KO

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

    Сообщения:
    5.980
    Симпатии:
    2.983
    Ничего подобного с ХП не будет.
    Игрок появился. получил свои 35 хп и бегает.
    Остались 1 на 1. Получили по 100, сыграли поединок. Начался новый раунд и у всех снова по 35 хп.
    Проблема может возникнуть только если в knifefight включен бонус хп за победу. Но все проблемы решаются исправлением исходника knifefight
     
  18. FBZA

    FBZA

    Сообщения:
    69
    Симпатии:
    6
    Проблем может не быть, если бонус за победу (в хп) делается не через
    SetEntityHealth(client, 120), а через SetEntityHealth(GetClientHealth(client) + 20)
    Там от кодера зависит, главное, чтобы не превышало 65-ти хп, иначе нельзя будет убить с одного удара.
     
  19. Primo

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

    Сообщения:
    1.191
    Симпатии:
    310
    Да с чего?

    2 совершенно разных плагина, каждый по событию player_spawn выдаёт игроку разное кол-во хп. Какое хп будет у игрока?
    Я не говорю про этот плагин. Я говорю про сам факт, что хп поставится того плагина, который последним будет загружен, или же последним будет выполнять функцию по событию.

    Добавлено через 13 минут
    Не поленился, посмотрел код.
    Постарался, молодец. Однако, то, что я процитировал является неверным в том случае, если:

    Если админ хочет, чтобы knifefight давал бонус хп за победу.
    В этом случае с твоим плагином будет "конфликт". В чем он заключается? Твой плагин в любом случае ставит 35хп при респавне.
    Если KnifeFight выполняет фукнцию раньше твоего плагина, то этого бонуса не будет. Поставится 35 хп. Это, кстати, может быть примером того, что я писал до этого.

    Объясню на примере:

    KnifeFight грузится первым, и он может выполнять SetEntityHealth(client, 120); или SetEntityHealth(client, GetClientHealth(client) + 20);, в общем, без разницы, это не играет роли.
    Он в любом случае поставит 120хп, т.к. грузится самым первым, а изначально у игрока 100 хп.
    Т.к. ты ставишь SetEntityHealth(client, 35); ты просто забиваешь на KnifeFight, и выставляешь свои условия, т.е. нагло выставляешь ему 35 хп.
    Однако, если твой плагин будет первым грузиться, то KnifeFight будет выставлять своё хп.

    Как решить эту проблему в твоём плагине?
    Делай фукнцию SetEntityHealtH(client, GetClientHealth(client)-65); Логично, что со стандартным кол-ом хп у тебя будет 35. Ну а с KnifeFight будет работать бонус хп, к этим 35 хп будут добавляться те хп, которые являются дополнительными в посторонних плагинах. Однако, если будет в KnifeFight SetEntityHealth(client, 120); то этот код бессмыслен, как и твой.
    Добавлено через 26 минут
    PHP:
    public Action:_35hp(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new 
    GetClientOfUserId(GetEventInt(event"userid"));
        new 
    Slot0 GetPlayerWeaponSlot(i0);
        new 
    Slot1 GetPlayerWeaponSlot(i1);
        new 
    Slot2 GetPlayerWeaponSlot(i2);
        new 
    Slot3 GetPlayerWeaponSlot(i3);
        new 
    Slot4 GetPlayerWeaponSlot(i4);
        new 
    Slot5 GetPlayerWeaponSlot(i5);
        new 
    health GetClientHealth(i);
        if( 
    IsClientInGame(i) && IsPlayerAlive(i) && != 0)
        {
            if (
    Slot0 0RemovePlayerItem(iSlot0);
            if (
    Slot1 0RemovePlayerItem(iSlot1);
            if (
    Slot2 0RemovePlayerItem(iSlot2);
            if (
    Slot3 0RemovePlayerItem(iSlot3);
            if (
    Slot4 0RemovePlayerItem(iSlot4);
            if (
    Slot5 0RemovePlayerItem(iSlot5);
            if(
    health 35SetEntityHealth(i35);
        }

        if (
    != 0GivePlayerItem(i"weapon_knife"); 
    }
    Меняй на

    PHP:
    public Action:_35hp(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new 
    GetClientOfUserId(GetEventInt(event"userid"));
        
    RemoveAllWeap(i);
        
    SetEntityHealth(iGetClientHealth(i)-65);
    }


    public 
    RemoveAllWeap(client)
    {
        new 
    current0 GetPlayerWeaponSlot(client0);

        new 
    current1 GetPlayerWeaponSlot(client1);
        if(
    IsValidEntity(current0) && current0 != INVALID_ENT_REFERENCE)
        {
            
    RemovePlayerItem(clientcurrent0);
        }
        if(
    IsValidEntity(current1) && current1 != INVALID_ENT_REFERENCE)
        {
            
    RemovePlayerItem(clientcurrent1);
        }
    }
    Поясню, почему я так предлагаю.
    Зачем чистить слот ножа, если его можно оставить? Да, может быть тазер, но это в csgo, если хочешь, сделай проверку на движок игры, и очищай слот с ножом.
    Гранаты? По вкусу, ну тоже очищай. А вообще, предлагаю сделать квары, чтобы угодить каждому админу :3
     
    Последнее редактирование: 30 авг 2014
  20. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Оффтоп