oleg_nelasy
Участник
- Сообщения
- 674
- Реакции
- 47
Для CS:GO вроде сто лет назад фикс делали, чтобы не тормозило игрока при получении им урона.
#pragma semicolon 1
#pragma newdecls required
#include <sdkhooks>
float m_flStamina[MAXPLAYERS+1];
public void OnPluginStart()
{
for(int i; ++i <= MaxClients;) if(IsClientInGame(i)) OnClientPutInServer(i);
}
public void OnClientPutInServer(int client)
{
if(IsFakeClient(client) && (IsClientSourceTV(client) || IsClientReplay(client)))
return;
SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
SDKHook(client, SDKHook_OnTakeDamagePost, OnTakeDamagePost);
}
public Action OnTakeDamage(int client, int &attacker, int &inflictor, float &damage, int &damagetype)
{
m_flStamina[client] = -1.0;
if(attacker != inflictor || client < 1 || MaxClients < client || attacker < 1 || MaxClients < attacker
|| GetClientTeam(client) != GetClientTeam(attacker))
return Plugin_Continue;
static char weapon[16];
GetClientWeapon(attacker, weapon, sizeof(weapon));
if(strncmp(weapon[7], "knife", 5, false) && strncmp(weapon[7], "bayonet", 7, false))
return Plugin_Continue;
damage = 0.0;
m_flStamina[client] = GetEntPropFloat(client, Prop_Send, "m_flStamina");
return Plugin_Changed;
}
public void OnTakeDamagePost(int client, int attacker, int inflictor, float damage, int damagetype)
{
if(m_flStamina[client] < 0.0)
return;
SetEntPropFloat(client, Prop_Send, "m_flStamina", m_flStamina[client]);
SetEntPropFloat(client, Prop_Send, "m_flVelocityModifier", 1.0);
m_flStamina[client] = -1.0;
}
Спасибо вроде все работает как надо.Для CS:GO вроде сто лет назад фикс делали, чтобы не тормозило игрока при получении им урона.
Только не помню можно ли там определять кто и чем нанёс урон.
Нашёл: Не поддерживается - No Damage Velocity Reduction
Сообщения автоматически склеены:
@oleg_nelasy, проверяй:C-подобный:#pragma semicolon 1 #pragma newdecls required #include <sdkhooks> float m_flStamina[MAXPLAYERS+1]; public void OnPluginStart() { for(int i; ++i <= MaxClients;) if(IsClientInGame(i)) OnClientPutInServer(i); } public void OnClientPutInServer(int client) { if(IsFakeClient(client) && (IsClientSourceTV(client) || IsClientReplay(client))) return; SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); SDKHook(client, SDKHook_OnTakeDamagePost, OnTakeDamagePost); } public Action OnTakeDamage(int client, int &attacker, int &inflictor, float &damage, int &damagetype) { m_flStamina[client] = -1.0; if(attacker != inflictor || client < 1 || MaxClients < client || attacker < 1 || MaxClients < attacker || GetClientTeam(client) != GetClientTeam(attacker)) return Plugin_Continue; static char weapon[16]; GetClientWeapon(attacker, weapon, sizeof(weapon)); if(strncmp(weapon[7], "knife", 5, false) && strncmp(weapon[7], "bayonet", 7, false)) return Plugin_Continue; damage = 0.0; m_flStamina[client] = GetEntPropFloat(client, Prop_Send, "m_flStamina"); return Plugin_Changed; } public void OnTakeDamagePost(int client, int attacker, int inflictor, float damage, int damagetype) { if(m_flStamina[client] < 0.0) return; SetEntPropFloat(client, Prop_Send, "m_flStamina", m_flStamina[client]); SetEntPropFloat(client, Prop_Send, "m_flVelocityModifier", 1.0); m_flStamina[client] = -1.0; }
public void OnTakeDamagePost(int client, int attacker, int inflictor, float damage, int damagetype)
{
if(m_flStamina[client] < 0.0)
return;
SetEntPropFloat(client, Prop_Send, "m_flStamina", m_flStamina[client]);
SetEntPropFloat(client, Prop_Send, "m_flVelocityModifier", 1.0);
m_flStamina[client] = -1.0;
}
А какой звук у поднятия дифузов, если в Counter-Strike: Source (CSS) v34 build 4044 (и вообще в классическом CS:S) нельзя подобрать набор сапёра (Defuse Kit) с земли, в отличие от CS:GO, где это возможно.Доброго времени суток. Нужен плагин убирающий звук поднятия с земли дифузов для ксс34
Кто такое сказал?А какой звук у поднятия дифузов, если в Counter-Strike: Source (CSS) v34 build 4044 (и вообще в классическом CS:S) нельзя подобрать набор сапёра (Defuse Kit) с земли, в отличие от CS:GO, где это возможно.
И в правду, просто странно, всю жизнь думал что нельзя. тогда это как то так должно работать...Кто такое сказал?
ПроверьДоброго времени суток. Нужен плагин убирающий звук поднятия с земли дифузов для ксс34
#pragma semicolon 1
#pragma newdecls required
#include <sourcemod>
#include <sdktools>
public Plugin myinfo =
{
name = "Disable Defuser Pickup Sound",
author = "Syntax",
description = "Disable Defuser Pickup Sound",
version = "1.1",
url = "https://hlmod.net/"
};
public void OnPluginStart()
{
HookEvent("item_pickup", Event_ItemPickup);
}
public Action Event_ItemPickup(Event event, const char[] name, bool dontBroadcast)
{
char item[32];
event.GetString("item", item, sizeof(item));
if (StrEqual(item, "defuser"))
{
return Plugin_Handled;
}
return Plugin_Continue;
}
Так это ж блокировка поднятия китов, а не звукаИ в правду, просто странно, всю жизнь думал что нельзя. тогда это как то так должно работать...
Сообщения автоматически склеены:
Проверь
C-подобный:#pragma semicolon 1 #pragma newdecls required #include <sourcemod> #include <sdktools> public Plugin myinfo = { name = "Disable Defuser Pickup Sound", author = "Syntax", description = "Disable Defuser Pickup Sound", version = "1.1", url = "https://hlmod.net/" }; public void OnPluginStart() { HookEvent("item_pickup", Event_ItemPickup); } public Action Event_ItemPickup(Event event, const char[] name, bool dontBroadcast) { char item[32]; event.GetString("item", item, sizeof(item)); if (StrEqual(item, "defuser")) { return Plugin_Handled; } return Plugin_Continue; }
Доброго времени суток. Нужен плагин убирающий звук поднятия с земли дифузов для ксс34
#pragma semicolon 1
#pragma newdecls required
#include <sourcemod>
#include <sdktools>
#define SOUND_DEFUSEKIT_PICKUP "items/defuser_pickup.wav"
public Plugin myinfo =
{
name = "Disable Defuse Kit Pickup Sound",
author = "DENZEL519&AI",
description = "Removes the sound when picking up defuse kit from ground",
version = "1.0",
};
public void OnPluginStart()
{
AddNormalSoundHook(SoundHook);
}
public Action SoundHook(int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH],
int &entity, int &channel, float &volume, int &level, int &pitch, int &flags)
{
if (StrEqual(sample, SOUND_DEFUSEKIT_PICKUP))
{
return Plugin_Stop;
}
return Plugin_Continue;
}
а хватило бы одного#include <sourcemod>
#include <sdktools>
sdktools_sound#pragma semicolon 1
#pragma newdecls required
#include <sdktools_sound>
#define SOUND_DEFUSEKIT_PICKUP "items/defuser_pickup.wav"
public Plugin myinfo =
{
name = "Disable Defuse Kit Pickup Sound",
author = "DENZEL519&AI",
description = "Removes the sound when picking up defuse kit from ground",
version = "1.0"
}
public void OnPluginStart()
{
AddNormalSoundHook(SoundHook);
}
public Action SoundHook(int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH], int &entity, int &channel, float &volume, int &level, int &pitch, int &flags)
{
return !strcmp(sample, SOUND_DEFUSEKIT_PICKUP, false) ? Plugin_Stop : Plugin_Continue;
}
даЯ все правильно понял?
А где можно найти список SOUND_DEFUSEKIT_PICKUPа хватило бы одногоsdktools_sound
Сообщения автоматически склеены:
Вот примерно так:SM1.13:#pragma semicolon 1 #pragma newdecls required #include <sdktools_sound> #define SOUND_DEFUSEKIT_PICKUP "items/defuser_pickup.wav" public Plugin myinfo = { name = "Disable Defuse Kit Pickup Sound", author = "DENZEL519&AI", description = "Removes the sound when picking up defuse kit from ground", version = "1.0" } public void OnPluginStart() { AddNormalSoundHook(SoundHook); } public Action SoundHook(int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH], int &entity, int &channel, float &volume, int &level, int &pitch, int &flags) { return !strcmp(sample, SOUND_DEFUSEKIT_PICKUP, false) ? Plugin_Stop : Plugin_Continue; }Сообщения автоматически склеены:
да
В cstrike_pak_dir.vpk (CSS) папка sound/itemsА где можно найти список SOUND_DEFUSEKIT_PICKUP
мб есть у кого-то список? у меня 34, там нет vpkВ cstrike_pak_dir.vpk
В ксс 34 я не знаю но в ксс 9..мб есть у кого-то список? у меня 34, там нет vpk
Спасибо, но я имел в виду конкретно звуки для блокировки через sdkВ ксс 34 я не знаю но в ксс 9..
Там же sound/items/defuser_pickup.wavСпасибо, но я имел в виду конкретно звуки для блокировки через sdk
Это дефайн только для этого конкретного плагина и имя ему выдумал автор оного, а список звуков в ресурсах игры искать нужно.А где можно найти список SOUND_DEFUSEKIT_PICKUP