Заказать Сервер Заказать Плагин Контакты Поиск

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

Страница 1 из 11
Форум » SourceMod - Counter Strike Source && CS GO » Обсуждение » Вопрос по поводу хуков
Вопрос по поводу хуков
ppc Дата: Воскресенье, 16.10.2016, 17:15:27 | Сообщение # 1
Сообщений: 85
Репутация: 0 [ +/- ]
Вот есть например такой код
Код
public OnClientPutInServer(client)
{
   SDKHook(client, SDKHook_Touch, OnClientTouch);
}

public Action:OnClientTouch(client)
{
    if (...)
    {
    }
    return Plugin_Continue;
}

Нужно ли в этом месте (...) делать проверку 0 < client <= MaxClients??
Тот же вопрос в случае с hookevent
Код
public OnPluginStart()
{
    HookEvent("player_jump", player_jump);
}

public player_jump(Handle:event, const String:name[], bool:dontBroadcast)
{
    new victimId = GetClientOfUserId(GetEventInt(event, "userid"));
    if (...)
    {
    }
}


Просто у когото видел с проверкой у кого то без поэтому и спрашиваю
 
_R1KO_ Дата: Понедельник, 17.10.2016, 12:51:47 | Сообщение # 2
Сообщений: 185
Репутация: 27 [ +/- ]
ppc, ну во-первых не
Код
Action:OnClientTouch(client)


а
Код
Action:OnClientTouch(client, entity)

И следовательно client здесь это та сущность для который был произведен хук, а entity это сущность которая коснулась игрока (или игрок её). И если тебе нужно чтобы действия выполнялись только когда игрок касается игрока то проверка
Код
if (0 < client <= MaxClients)

нужна.

Код
new victimId = GetClientOfUserId(GetEventInt(event, "userid"));

Если игрок вне игры то GetClientOfUserId вернет 0. Так что достаточно:
Код
if (victimId )
 
ppc Дата: Понедельник, 17.10.2016, 21:15:32 | Сообщение # 3
Сообщений: 85
Репутация: 0 [ +/- ]
Спасибо)
 
Форум » SourceMod - Counter Strike Source && CS GO » Обсуждение » Вопрос по поводу хуков
Страница 1 из 11
Поиск: