Просто я сказал что скажу спасибки материально, за отдельную проделку лично для меня. Ну ты уже начал тогда выкладывай в паблик. :)Да всё вроде готово) Даже само Реалистичное Ослепление засунул. :-D Ну, кроме
попробуешь пока.
ОффтопТак ты хочешь, чтобы такая версия была лишь у тебя, приватный плагин?
Забыл спектров, а точнее, не надо было брать часть кода фроза :DМне как-то всё равно)
Пока скорее бетка, именно в плане ослепления, остальное работает стабильно, как и было (я сильно то же самое не расстестивал)
У меня стоял этот: стабилен :)Фрозу - фрозовское) Если умеешь, напиши сам, либо дай лучший код)
Скинь исходник тогда! :)Мне вообще никакого нет смысла для ZR, где я даже проверять не смогу...
. Т.е., от любой пули/ножа/гранаты, которая отняла у игрока HP - автоматически поджигает его) Тестим
Не знаю, может кого заинтересует... Правда, не совсем для гранат, но... Добавляю квар на воспламенение игрока при любых повреждениях. Т.е., от любой пули/ножа/гранаты, которая отняла у игрока HP - автоматически поджигает его) Тестим! :-D
именно так только чтоб можно было выбирать у дымовой можно чтоб только светила или газ был в настойкахПоменять гранаты местами: ослепляющая - просто морозит, дымовая - освещает? И всё? Дым соответственно не нужен и цвета для него тоже, как и антиослепление?
что может быть не понятного в плагине anti-flash?ибо фрозовский, мне не понятен..
ОффтопИсходник не влез в рамки форума... Правда, никто не запрещал скидывать частями) Оффтопвроде
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]
}
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;
}
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;
}
Я забыл) Понял только чуть позже.ОффтопА в ЛС вчера тогда так и сказать не мог? или тоже под ночь плохо соображаешь? :-D
А раньше мне было не удобно через декомпиль что-то искать. Тем более я смотрел - не видел.А раньше было никак?! Это ещё в 2.0.1 можно было сделать. Тебе что, легче когда всё готовенькое? У меня ничего не светилось и не светится в темноте, меня устраивает.
Не знаю. Я декомпилил твои последние варианты)Такого я не писал. В кучу и else и if для зомби не ставил.
Странно, я вроде так и поставил, когда сказал, что сделал именно с ZR_IsClientZombie(client) и для людей. Ты сам то версии при пробах не попутал, выкидывал старые? Может index забыл, но такая версия была. Декомпильни ту и увидишь.
Я уже не знал, как сделать на этот твой зомбимод, раз обычные варианты не действовали.
:DDDОффтопДетка, делай-ка теперь сам)) Это финал)