BlackPro
Участник
- Сообщения
- 75
- Реакции
- 11
Доброго всем, попробую с ходу кратко обяснить.
Хукаю событие смерти, внутри получаю атакующего, и если это нож, то делаю что нибудь.
Так вот если в CSGO сделать такой код, то он будет работать только для CT.
Ну думаю, посмотрю что передаёт Т и запускаю код:
Оказывается для Терроров нужно чекать knife_t, а для контров как вы уже поняли просто knife,
соответсвенно проверку нужно делать не
Только тогда код код будет работать коректно для T/CT.
Так вот вопрос в том что есть же ещё ножи:
Их тоже надо проверять? Т.е что будет если зайдут игроки со скинами, для них мой код не сработает и нужно проверять все ножи? Если да тогда где взять полный список?
Эти я взял с франфуркта, ещё видел в плагине csdm для ксго проверку на weapon_bayonet, тоже не понимаю почему.
Ещё нашёл этот список Расшифровка названий ножей. Weapons / knife, вот и не знаю что мне проверять.
Хукаю событие смерти, внутри получаю атакующего, и если это нож, то делаю что нибудь.
C-подобный:
public Event_PlayerDeath(Handle:hEvent, const String:sEvName[], bool:bDontBroadcast)
{
int attacker = GetClientOfUserId(GetEventInt(hEvent, "attacker"));
if (attacker > 0 && IsPlayerAlive(attacker) && attacker != GetClientOfUserId(GetEventInt(hEvent, "userid")))
{
decl String:sWeapon[32];
GetEventString(hEvent, "weapon", sWeapon, sizeof(sWeapon));
if (!strcmp(sWeapon, "knife"))
{
PrintToChat(attacker, "Ку-ку...");
}
}
}
Так вот если в CSGO сделать такой код, то он будет работать только для CT.
Ну думаю, посмотрю что передаёт Т и запускаю код:
C-подобный:
public void OnPluginStart()
{
HookEventEx("player_death", Event_PlayerDeath, EventHookMode_Pre);
}
public Event_PlayerDeath(Handle:hEvent, const String:sEvName[], bool:bDontBroadcast)
{
int attacker = GetClientOfUserId(GetEventInt(hEvent, "attacker"));
if (attacker > 0 && IsPlayerAlive(attacker))
{
decl String:sWeapon[32];
GetEventString(hEvent, "weapon", sWeapon, sizeof(sWeapon));
PrintToServer("Weapons: %s", sWeapon);
}
}
соответсвенно проверку нужно делать не
if (!strcmp(sWeapon, "knife"))
, а if (!strcmp(sWeapon, "knife") || !strcmp(sWeapon, "knife_t"))
.Только тогда код код будет работать коректно для T/CT.
Так вот вопрос в том что есть же ещё ножи:
C-подобный:
/*bayonet
knife_gut
knife_flip
knife_m9_bayonet
knife_karambit
knife_tactical
knife_butterfly
knife_falchion
knife_push
knife_survival_bowie*/
Эти я взял с франфуркта, ещё видел в плагине csdm для ксго проверку на weapon_bayonet, тоже не понимаю почему.
Ещё нашёл этот список Расшифровка названий ножей. Weapons / knife, вот и не знаю что мне проверять.