Антифлеш и антидым
| | |
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"); }
Надеюсь помог
Сообщение отредактировал 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"); //Удаляем
Вдруг, кому пригодится :)
Гости не могут скачивать файлы
|
|
|
| |
|