alexmy
Участник
- Сообщения
- 284
- Реакции
- 13
Всем привет. Не могу сообразить как отловить, если пуля игрока попала в канистру. Пробовал что то типа такого... Код вообще кривой, не могу понять, с чего начинать...
--- Добавлено позже ---
Вот сам плагин,
PHP:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#pragma newdecls required
public void OnClientPutInServer(int client)
{
SDKHook(client, SDKHook_OnTakeDamagePost, OnTakeDamagePost);
}
public void OnTakeDamagePost(int victim, int attacker, int inflictor, float damage, int damagetype)
{
if (IsValidEdict(attacker))
{
char weapon[64];
GetEventString(attacker, "weapon", weapon, sizeof(weapon));
if(StrEqual(weapon, "gascan")) PrintToChatAll("Игрок %s попал в канистру!", attacker);
}
}
Вот сам плагин,
PHP:
#pragma semicolon 1
#pragma newdecls required
public void OnPluginStart()
{
HookEvent("weapon_fire", weapon_fire);
HookEvent("player_hurt", player_hurt);
}
public void weapon_fire(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(event.GetInt("userid"));
{
char Name[64];
char weapon[64];
GetClientName(client, Name, sizeof(Name));
GetEventString(event, "weapon", weapon, sizeof(weapon));
{
if(StrEqual(weapon, "molotov")) PrintToChatAll("Игрок %s бросил молотов!", Name);
else if(StrEqual(weapon, "pipe_bomb")) PrintToChatAll("Игрок %s бросил бомбу!", Name);
else if(StrEqual(weapon, "gascan")) PrintToChatAll("Игрок %s бросил канистру!", Name);
else if(StrEqual(weapon, "vomitjar")) PrintToChatAll("Игрок %s бросил рвоту толстяка", Name);
}
}
}
public void player_hurt(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(event.GetInt("attacker"));
{
char Name[64];
char weapon[64];
GetClientName(client, Name, sizeof(Name));
GetEventString(event, "weapon", weapon, sizeof(weapon));
{
if(StrEqual(weapon, "gascan")) PrintToChatAll("Игрок %s поджог канистру!", Name);
}
}
}