Overpass Leak Fix

Overpass Leak Fix 0.3

xtance

Участник
Сообщения
513
Реакции
743
  • Автор ресурса
  • #1
⚡xlittlemermaid добавил(а) новый ресурс:

Overpass Leak Fix - Позволяет устранить утечку на карте de_overpass

Теперь игрок может исправить (1 раз за раунд) утечку на Оверпассе при помощи гаечного ключа.
Гаечный ключ выдаётся 1 раз за раунд командой !wrench или !spanner
За помощь в исправлении проблемы игроку даётся $1000 (настраивается в исходнике)

Посмотреть вложение 64216

Гаечный ключ можно кинуть в тиммейта и ему нанесётся урон.

Узнать больше об этом ресурсе...
 

Z-RAY-Z

Участник
Сообщения
775
Реакции
243
Урона от пара до устранения утечки не хватает для полного реализма 😉
 

Gru

Тех. Админ
Сообщения
214
Реакции
43
Интересно, прикольно... но зачем?
 

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,075
Оффтоп
Что-то действительно странное 😹
Реально ждём возможность погасить радиацию на Трейне.
 

Lil_Tarn

Участник
Сообщения
2
Реакции
1
Как сделать что бы он работал только на overpass?
 

m0rbit

Участник
Сообщения
720
Реакции
159
Как сделать что бы он работал только на overpass?
пропиши в конфиги для карт чтобы плагин выгружался на других картах кроме оверпасса
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Lil_Tarn, судя по коду он и так должен работать только на de_overpass
 

xtance

Участник
Сообщения
513
Реакции
743
  • Автор ресурса
  • #10
@Lil_Tarn,
прописать в исходник после 32 или 33 строчки условие, запрещающее выдачу ключа на других картах:

else if (!IsThisEvenOverPass) ReplyToCommand(iClient, " \x07>>\x01 Команда работает только на Оверпассе.");

@Grey83, да, но команда будет выдавать ключ на всех картах
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
if(0 < iClient <= MAXPLAYERS && IsClientInGame(iClient))
Ты в своём уме?
Сообщения автоматически склеены:

В принципе всё, что идёт после iClient не особо и нужно, но вот константу использовать - это маразм: с этим индексом может быть и энтити какая-нибудь, вместо игрока.
 

xstage

🏹
Сообщения
726
Реакции
754
C-подобный:
float fDist

if ((fDist = GetVectorDistance(fParticlePos, fPos, true)) < 3500.0)
...
if ((fDist = GetVectorDistance(fParticlePos, fPos, true)) < 3500.0) AcceptEntityInput(iEnt, "Kill");
...
if ((fDist = GetVectorDistance(fParticlePos, fPos, true)) < 3500.0) AcceptEntityInput(iEnt, "Kill");
...

Почему бы не получить один раз дистанцию? Зачем несколько раз дергать функцию. И вообще к чему тогда переменная?
Сообщения автоматически склеены:

C-подобный:
if(sEventWeapon[7] == 's' && sEventWeapon[13] == 'r')

weapon_smokegrenade // sEventWeapon[7] == 's' sEventWeapon[13] == 'r'
weapon_spanner // sEventWeapon[7] == 's' sEventWeapon[13] == 'r'

Bingo!
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Почему бы не получить один раз дистанцию?
Да лучше при старте карты получить положение, наверное, для всех трёх энтити.
Сообщения автоматически склеены:

Вот почистил немного и добавил квар вместо дефайна:
 
Последнее редактирование:

xtance

Участник
Сообщения
513
Реакции
743
  • Автор ресурса
  • #15
@Tetragromaton, вряд ли
@xstage, переменная там на случай если надо будет посмотреть, какая дистанция ( PrintToConsole(client, "Distance: %f", fDist); ), не стал убирать - сильно не мешается
fPos изменяется поэтому там три цикла (проверка от игрока до места, от партикля, и от источника звука)
@Grey83, спасибо за фиксы, добавил обновление (как 0.2) 🤗
 
Последнее редактирование:

xstage

🏹
Сообщения
726
Реакции
754
@Tetragromaton, вряд ли
@xstage, переменная там на случай если надо будет посмотреть, какая дистанция ( PrintToConsole(client, "Distance: %f", fDist); ), не стал убирать - сильно не мешается
fPos изменяется поэтому там три цикла (проверка от игрока до места, от партикля, и от источника звука)
@Grey83, спасибо за фиксы, добавил обновление (как 0.2) 🤗

Проверку бы подкорректировал, а то получается смок тоже под это подходит.
C-подобный:
if(sEventWeapon[7] == 's' && sEventWeapon[13] == 'r')
weapon_smokegrenade // sEventWeapon[7] == 's' sEventWeapon[13] == 'r'
 

xtance

Участник
Сообщения
513
Реакции
743
  • Автор ресурса
  • #17
@xstage, да, там в обнове Grey83 это сделал, оно еще проверяет длину строки
 

Banana

Участник
Сообщения
892
Реакции
113
Ого, смотри хомут не перетяни а то рванет, мне нравиться эффект который ты использовал для починки, явно видно не на коленке делал, старался.
 

I_ExtaZzZ_I

Участник
Сообщения
168
Реакции
57
Как сделать что бы нельзя было гаечный ключ кидать на пкм? И возможно как то вместе с починкой убрать звук трубы?
 

xtance

Участник
Сообщения
513
Реакции
743
  • Автор ресурса
  • #20
@I_ExtaZzZ_I,
>чтобы нельзя было кидать на пкм
Можно, добавив код (например в конец плагина), типа такого (не тестировал, взял отсюда):

Блокировка ПКМ если у нас ключ:
public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon)
{
    if(!bEnabled || IsFakeClient(client) || !IsPlayerAlive(client))
        return Plugin_Continue;

    if (buttons & IN_ATTACK2){
     
        int item = GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon");
        if(item == -1) return Plugin_Continue;

        char wpn[16];
        GetEntityClassname(item, wpn, sizeof(wpn));
        if(strlen(wpn) == 14 && wpn[7] == 's' && wpn[13] == 'r'){
            buttons &= ~IN_ATTACK2;
            return Plugin_Changed;
        }     
    }
  
    return Plugin_Continue;
}

Вообще я с OnPlayerRunCmd не работал и хз может там есть какие баги в коде

>убрать звук трубы
Вообще да, я думал что убивая env_soundscape звук убирается, но видимо мне показалось (просто у нас на паблике всегда все визжат и это сложно тестировать)
На днях посмотрю от чего он там реально зависит
 

Похожие темы

Сверху Снизу