Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 2
  • 1
  • 2
  • »
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Антифлеш и антидым
Антифлеш и антидым
Yummy Дата: Пятница, 20.02.2015, 16:01:55 | Сообщение # 1
Сообщений: 49
Репутация: 6 [ +/- ]
Ребят, есть ли такой плагин, который убирает дым? Т.е. игрок кинул дымовуху, а дым не появился.
Если нет, то напишите кто-нибудь пожалуйста kotek


Сообщение отредактировал Yummy - Пятница, 20.02.2015, 16:02:09
 
SourceSamil Дата: Пятница, 20.02.2015, 16:45:07 | Сообщение # 2
Сообщений: 237
Репутация: [ +/- ]
Вроде антидым нельзя сделать, но можно удалить его вовсе, на карте
 
REgion Дата: Пятница, 20.02.2015, 17:15:38 | Сообщение # 3
Сообщений: 31
Репутация: -2 [ +/- ]
Yummy, Скачай читы))
 
BarD Дата: Пятница, 20.02.2015, 17:29:32 | Сообщение # 4
Сообщений: 943
Репутация: 137 [ +/- ]
Антифлеш можно сделать путём блокирования события player_blind (return Plugin_Handled). Остаётся только пару условий добавить, если хочешь только некоторым игрокам антифлеш делать.

Антидым можешь через SDKHook SetTransmit сделать. При взрыве дымовухи ищешь энтити дыма и делаешь его SetTransmit для определённых игроков по условию. А если нужно убрать для всех, то удаляй энтити дыма и все. Или попробуй событие smokegrenade_detonate заблочить.


Сообщение отредактировал BarD - Пятница, 20.02.2015, 17:30:47
 
Yummy Дата: Пятница, 20.02.2015, 17:29:33 | Сообщение # 5
Сообщений: 49
Репутация: 6 [ +/- ]
Цитата REgion ()
Yummy, Скачай читы))

Я это не для себя хочу сделать, а для всех игроков.
У меня дезран сервер и бывает такое, что какой-нибудь сук кинет дымовуху на ловушку, и приходится ждать пока дымовуха рассеется.
 
Regedit Дата: Суббота, 21.02.2015, 02:23:51 | Сообщение # 6
Сообщений: 135
Репутация: 1 [ +/- ]
Yummy, запрети подбор дымовой впринцепи через pickup - этого достаточно для решения твой проблемы.
 
BarD Дата: Суббота, 21.02.2015, 12:51:49 | Сообщение # 7
Сообщений: 943
Репутация: 137 [ +/- ]
Попробуй

Код
#include <sourcemod>
#pragma semicolon 1

public OnPluginStart()
{
     HookEvent("smokegrenade_detonate", Smoke);
     HookEvent("flashbang_detonate", Flash);
}

public Action:Smoke(Handle:event, const String:name[], bool:db) return Plugin_Handled;

public Action:Flash(Handle:event, const String:name[], bool:db) return Plugin_Handled;


Сообщение отредактировал BarD - Суббота, 21.02.2015, 12:52:17
 
_R1KO_ Дата: Суббота, 21.02.2015, 13:03:44 | Сообщение # 8
Сообщений: 200
Репутация: 30 [ +/- ]
BarD, не будет работать. Во-первых нужен Pre хук, а во-вторых нужно ентити дыма удалять и вручную убирать ослепление.


Сообщение отредактировал _R1KO_ - Воскресенье, 22.02.2015, 15:05:20
 
BarD Дата: Суббота, 21.02.2015, 13:41:01 | Сообщение # 9
Сообщений: 943
Репутация: 137 [ +/- ]
_R1KO_, ну я чисто предположил)
 
SourceSamil Дата: Суббота, 21.02.2015, 17:03:08 | Сообщение # 10
Сообщений: 237
Репутация: [ +/- ]
Я антифлеш делал, тут вроде есть на форуме, гляньте, на счет дыма, BarD ответил
 
blood_pro Дата: Воскресенье, 15.03.2015, 22:55:02 | Сообщение # 11
Сообщений: 1
Репутация: 0 [ +/- ]
От дыма спасайся этим:

Код
public OnPluginStart() {
    AddNormalSoundHook(NormalSHook);
}

public Action:NormalSHook(clients[64], &numClients, String:sample[PLATFORM_MAX_PATH], &entity, &channel, &Float:volume, &level, &pitch, &flags){
    if(StrContains(sample, "sg_explode.wav") != -1)
     return Plugin_Stop;
    return Plugin_Continue;
}

public OnEntityCreated(entity, const String:classname[]) {
    if(StrContains(classname, "env_particlesmokegrenade") != -1) {
     RemoveEdict(entity);
    }
}

От флешки этим:

Код
public OnEntityCreated(entity, const String:classname[]){
if (StrEqual(classname, "flashbang_projectile"))
CreateTimer(1.5, flashbang_bleep, entity);
}

public Action:flashbang_bleep(Handle:timer, any:entity) {
if (IsValidEntity(entity))
AcceptEntityInput(entity, "Kill");
}


Надеюсь помог klas


Сообщение отредактировал blood_pro - Воскресенье, 15.03.2015, 23:49:18
 
BarD Дата: Четверг, 19.03.2015, 12:15:20 | Сообщение # 12
Сообщений: 943
Репутация: 137 [ +/- ]
Если тема еще не закрыта, то не дать взорваться гранате вообще можно так:

Код
public OnEntityCreated(entity, const String:classname[])
{   
   if (entity && IsValidEntity(entity) && StrEqual(classname, "flashbang_projectile") || StrEqual(classname, "smokegrenade_projectile")) //Если дым или флеш
   {
    SetEntProp(entity, Prop_Data, "m_nNextThinkTick", -1); //Останавливаем
    CreateTimer(1.5, DeleteGren, entity); // Таймер, если нужно ее удалить. Если не надо, то можно не писать
   }   
}   

public Action:DeleteGren(Handle:timer, any:entity) if (IsValidEntity(entity)) AcceptEntityInput(entity, "Kill"); //Удаляем


Вдруг, кому пригодится :)


Сообщение отредактировал BarD - Четверг, 19.03.2015, 12:16:04
 
Sallcom Дата: Пятница, 20.03.2015, 14:01:45 | Сообщение # 13
Сообщений: 205
Репутация: 31 [ +/- ]
Цитата BarD ()
Если тема еще не закрыта, то не дать взорваться гранате вообще можно так: ...

Условие неправильное, ибо выполняется

entity && IsValidEntity(entity) && StrEqual(classname, "flashbang_projectile") или StrEqual(classname, "smokegrenade_projectile")
Правильно будет вот так
entity && IsValidEntity(entity) && (StrEqual(classname, "flashbang_projectile") || StrEqual(classname, "smokegrenade_projectile"))

А еще лучше вот так:
Код
public OnEntityCreated(entity, const String:classname[]){
     if (entity && IsValidEntity(entity) && (StrContains("flashbang_projectile;smokegrenade_projectile", classname) != -1)){  
         SetEntProp(entity, Prop_Data, "m_nNextThinkTick", -1);
         CreateTimer(1.5, DeleteGren, entity);
     }    
}    

public Action:DeleteGren(Handle:timer, any:entity) if(IsValidEntity(entity)) AcceptEntityInput(entity, "Kill");
 
Yummy Дата: Пятница, 20.03.2015, 14:36:06 | Сообщение # 14
Сообщений: 49
Репутация: 6 [ +/- ]
Цитата Sallcom ()
А еще лучше вот так:
Код
public OnEntityCreated(entity, const String:classname[]){
     if (entity && IsValidEntity(entity) && (StrContains("flashbang_projectile;smokegrenade_projectile", classname) != -1)){  
         SetEntProp(entity, Prop_Data, "m_nNextThinkTick", -1);
         CreateTimer(1.5, DeleteGren, entity);
     }    
}    

public Action:DeleteGren(Handle:timer, any:entity) if(IsValidEntity(entity)) AcceptEntityInput(entity, "Kill");

Гости не могут скачивать файлы
 
Yummy Дата: Пятница, 20.03.2015, 14:36:54 | Сообщение # 15
Сообщений: 49
Репутация: 6 [ +/- ]
Цитата BarD ()
Если тема еще не закрыта, то не дать взорваться гранате вообще можно так:

Код
public OnEntityCreated(entity, const String:classname[])
{   
   if (entity && IsValidEntity(entity) && StrEqual(classname, "flashbang_projectile") || StrEqual(classname, "smokegrenade_projectile")) //Если дым или флеш
   {
    SetEntProp(entity, Prop_Data, "m_nNextThinkTick", -1); //Останавливаем
    CreateTimer(1.5, DeleteGren, entity); // Таймер, если нужно ее удалить. Если не надо, то можно не писать
   }   
}   

public Action:DeleteGren(Handle:timer, any:entity) if (IsValidEntity(entity)) AcceptEntityInput(entity, "Kill"); //Удаляем

Вдруг, кому пригодится :)

Гости не могут скачивать файлы
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Антифлеш и антидым
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: