Grenade Effects v1.7

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Лишняя работа, да и может другим пригодится. Просто отключишь и всё)
Хорошо, так я и делаю.
Оффтоп
Ну я уже вроде все попросил. Осталось ждать твои попытки. :)
 

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Да всё вроде готово) Даже само Реалистичное Ослепление засунул. :-D Ну, кроме
попробуешь пока.


Оффтоп
Просто я сказал что скажу спасибки материально, за отдельную проделку лично для меня. Ну ты уже начал тогда выкладывай в паблик. :)
 

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Мне как-то всё равно)
Пока скорее бетка, именно в плане ослепления, остальное работает стабильно, как и было (я сильно то же самое не расстестивал)
Забыл спектров, а точнее, не надо было брать часть кода фроза :D

Добавлено через 4 минуты
Иногда, кстати все-таки проскальзывает слепа на самого себя...

Добавлено через 7 минут
P.S. когда слепа в далеке, она флешит...
 
Последнее редактирование:

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Фрозу - фрозовское) Если умеешь, напиши сам, либо дай лучший код)
У меня стоял этот: стабилен :)
Но минус в том, что плагин Realistic Flashbang срабатывает, даже если слепа офф. Вот в фрозовской версии оно не воспринимало этот плаг. Может попробуй как-нить сместить 2 плага. :)
 

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Что насчет спеков?

И как понять эт...
// Максимальная дистанция антиослепления владельца гранаты.

Можно ли поставить 999999? :)
 
Последнее редактирование:

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Себя и мертвых слепит. Значения на 1х.
 

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Надеюсь на этот раз ты добавил для спектров...
И что насчет ZR_IsClientZombie? Сделай отдельную версию, спец. для ZR :)
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
конечно версию замудрил
Да это из-за того, что направления разные: с SDK Hooks и без. Вот и пришлось извращаться при каждом изменении, чтобы не путали.
надо было в отдельный плагин
Думал об этом... и сделал. :-D
 

Cezar

Участник
Сообщения
190
Реакции
7
Re: Grenade Effects v2.1.7

Не знаю, может кого заинтересует... Правда, не совсем для гранат, но... Добавляю квар на воспламенение игрока при любых повреждениях. Т.е., от любой пули/ножа/гранаты, которая отняла у игрока HP - автоматически поджигает его) Тестим! :-D

:-DНе понял, чем эта версия отличается от той, что в 1 посте?
 

acik_traiks

Что нибудь напишем?)
Сообщения
770
Реакции
627
AlmazON, GrenadeEffects_v2.1.6.7.1.smx для Public -a или все таки для ZR
Если не затруднит сделайте этот для ZR
 

acik_traiks

Что нибудь напишем?)
Сообщения
770
Реакции
627
AlmazON, лучше слуповой эффект вообще убрать лично для ZR и вообще можно первую версию как из 1.6 то есть smok - это свет
 

acik_traiks

Что нибудь напишем?)
Сообщения
770
Реакции
627
Поменять гранаты местами: ослепляющая - просто морозит, дымовая - освещает? И всё? Дым соответственно не нужен и цвета для него тоже, как и антиослепление?
именно так только чтоб можно было выбирать у дымовой можно чтоб только светила или газ был в настойках
для Zombie:Reloaded :beer: и можно с вами поговорить как с вами можно связаться на счет плагинов на заказ
 
Последнее редактирование:

acik_traiks

Что нибудь напишем?)
Сообщения
770
Реакции
627
AlmazON, а ясненько ) вот
 

Вложения

  • scripting.rar
    226.8 КБ · Просмотры: 52

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
AlmazON, сделай в v2.1.0 таймер на 1 секунду. :)
 

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Исходник не влез в рамки форума... Правда, никто не запрещал скидывать частями) Оффтоп
Оффтоп
C-подобный:
public  OnFlashDetonate(Handle:event,  const String:name[], bool:dontBroadcast) 
{
    if (!b_enable || !b_flash_freeze)
    {
        return;
    }
    
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    
    new Float:origin[3];
    origin[0] = GetEventFloat(event, "x"); origin[1] = GetEventFloat(event, "y"); origin[2] = GetEventFloat(event, "z");
    
    new index = MaxClients+1; decl Float:xyz[3];
    while ((index = FindEntityByClassname(index, "flashbang_projectile")) != -1)
    {
        GetEntPropVector(index, Prop_Send, "m_vecOrigin", xyz);
        if (xyz[0] == origin[0] && xyz[1] == origin[1] && xyz[2] == origin[2])
        {
            AcceptEntityInput(index, "kill");
        }
    }
    
    origin[2] += 10.0;
    
    new Float:targetOrigin[3];
    for (new i = 1; i <= MaxClients; i++)
    {
        if (!IsClientInGame(i) || !IsPlayerAlive(i) || ZR_IsClientHuman(i))
        {
            continue;
        }
        
        GetClientAbsOrigin(i, targetOrigin);
        targetOrigin[2] += 2.0;
        if (GetVectorDistance(origin, targetOrigin) <= f_flash_freeze_distance)
        {
            new Handle:trace = TR_TraceRayFilterEx(origin, targetOrigin, MASK_SOLID, RayType_EndPoint, FilterTarget, i);
        
            if ((TR_DidHit(trace) && TR_GetEntityIndex(trace) ==   i) || (GetVectorDistance(origin, targetOrigin) <= 100.0))
            {
                Freeze(i, client, f_flash_freeze_duration);
                CloseHandle(trace);
            }
                
            else
            {
                CloseHandle(trace);
                
                GetClientEyePosition(i, targetOrigin);
                targetOrigin[2] -= 2.0;
        
                trace = TR_TraceRayFilterEx(origin, targetOrigin, MASK_SOLID, RayType_EndPoint, FilterTarget, i);
            
                if ((TR_DidHit(trace) &&   TR_GetEntityIndex(trace) == i) || (GetVectorDistance(origin,   targetOrigin) <= 100.0))
                {
                    Freeze(i, client, f_flash_freeze_duration);
                }
                
                CloseHandle(trace);
            }
        }
    }
    
    TE_SetupBeamRingPoint(origin, 10.0, f_flash_freeze_distance,   g_beamsprite, g_halosprite, 1, 1, 0.2, 100.0, 1.0, FreezeColor, 0, 0);
    TE_SendToAll();
[COLOR=Red]    LightCreate(FLASH, origin);[/COLOR]
}
442 строка :DDD
Поставил перед ней "//" и освещения больше нет - радует. :)
Нужно было не так:
C-подобный:
public Action:OnSmokeDetonate(Handle:event, const String:name[], bool:dontBroadcast)
{
    if (b_enable && b_smoke_gas)
    {
        new client = GetClientOfUserId(GetEventInt(event,"userid"));
    
        if( !IsClientConnected(client) && !IsClientInGame(client) )
            return Plugin_Continue;
        
        new index = CreateEntityByName("point_hurt");
        
        if (index == -1)
            return Plugin_Handled;
        
        DispatchKeyValueFloat(index, "DamageRadius", GetConVarFloat(h_greneffects_smoke_gas_distance));
        new human = ZR_IsClientHuman(client);
        new zombie = ZR_IsClientZombie(client);
[COLOR=Red]        if (GetClientTeam(human) == GetClientTeam(client))
        {
            DispatchKeyValueFloat(index, "Damage", GetConVarFloat(h_greneffects_smoke_gas_damage_h));
        }
        else
        {
            if (GetClientTeam(zombie) == GetClientTeam(client))
            {
                DispatchKeyValueFloat(index, "Damage", GetConVarFloat(h_greneffects_smoke_gas_damage_z));
            }
        }[/COLOR]
        DispatchKeyValueFloat(index, "DamageType", 32);
        DispatchSpawn(index);
        DispatchSpawn(index);
        
        decl Float:VectorPos[3];
        VectorPos[0]=GetEventFloat(event,"x");
        VectorPos[1]=GetEventFloat(event,"y");
        VectorPos[2]=GetEventFloat(event,"z");
        TeleportEntity(index, VectorPos, NULL_VECTOR, NULL_VECTOR);
        
        SetVariantString("OnUser1 !self,kill,-1,20");
        AcceptEntityInput(index, "AddOutput");
        AcceptEntityInput(index, "TurnOn");
        AcceptEntityInput(index, "FireUser1");
    }
    return Plugin_Continue;
}
А вот так:
C-подобный:
public Action:OnSmokeDetonate(Handle:event, const String:name[], bool:dontBroadcast)
{
    if (b_enable && b_smoke_gas)
    {
        new client = GetClientOfUserId(GetEventInt(event,"userid"));
    
        if( !IsClientConnected(client) && !IsClientInGame(client) )
            return Plugin_Continue;
        
        new index = CreateEntityByName("point_hurt");
        
        if (index == -1)
            return Plugin_Handled;
        
        DispatchKeyValueFloat(index, "DamageRadius", GetConVarFloat(h_greneffects_smoke_gas_distance));
[COLOR=Red]        if (ZR_IsClientHuman(client))
        {
                DispatchKeyValueFloat(index, "Damage", GetConVarFloat(h_greneffects_smoke_gas_damage_h));
        }
        if (ZR_IsClientZombie(client))
        {
                DispatchKeyValueFloat(index, "Damage", GetConVarFloat(h_greneffects_smoke_gas_damage_z));
        }[/COLOR]
        DispatchKeyValueFloat(index, "DamageType", 32.00);
        DispatchSpawn(index);
        
        decl Float:VectorPos[3];
        VectorPos[0]=GetEventFloat(event,"x");
        VectorPos[1]=GetEventFloat(event,"y");
        VectorPos[2]=GetEventFloat(event,"z");
        TeleportEntity(index, VectorPos, NULL_VECTOR, NULL_VECTOR);
        
        SetVariantString("OnUser1 !self,kill,-1,20");
        AcceptEntityInput(index, "AddOutput");
        AcceptEntityInput(index, "TurnOn");
        AcceptEntityInput(index, "FireUser1");
    }
    return Plugin_Continue;
}
Зомби же и люди не являются командой, чтобы им присваивать это. Можно было сделать через GetClientTeam == 2 и 3, но тогда бы терры умирали в 3 раза быстрее чем контры (когда зомби еще не появился). Но когда бы зомби появился, их бы мочило в 3 раза быстрее, чем людей в обликах террористов и контров.

Но теперь у меня все работает. Все, кроме таймера... Фиг знает где он. Хотя этот кусок, единственно связанный с газом. Видимо дымовуха при столкновении по дефолту забирает хп по 0.2 сек. С damage = 2, он за секунду забирает 10 хп. :(
 
Последнее редактирование:

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Оффтоп
Я забыл) Понял только чуть позже.
А раньше было никак?! Это ещё в 2.0.1 можно было сделать. Тебе что, легче когда всё готовенькое? У меня ничего не светилось и не светится в темноте, меня устраивает.
А раньше мне было не удобно через декомпиль что-то искать. Тем более я смотрел - не видел.
Такого я не писал. В кучу и else и if для зомби не ставил.

Странно, я вроде так и поставил, когда сказал, что сделал именно с ZR_IsClientZombie(client) и для людей. Ты сам то версии при пробах не попутал, выкидывал старые? Может index забыл, но такая версия была. Декомпильни ту и увидишь.

Я уже не знал, как сделать на этот твой зомбимод, раз обычные варианты не действовали.
Не знаю. Я декомпилил твои последние варианты)
Оффтоп
:DDD
Да меня уже вроде все устраивает :DDD

Большое спасибо за трату времени на нас :) и за исходник еще раз спасибо.
 
Сверху Снизу