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

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

Страница 2 из 3«123»
Форум » SourceMod - Counter Strike Source && CS GO » Уроки SourceMod (SourcePawn) Скриптинга » HookEvent - Отлавливаем события
HookEvent - Отлавливаем события
Vitaminoz Дата: Суббота, 21.12.2013, 22:13:57 | Сообщение # 16
Сообщений: 136
Репутация: 1 [ +/- ]
Хм ... Тогда почему при компиляции не было ошибок !
 
Artems Дата: Вторник, 25.02.2014, 05:04:18 | Сообщение # 17
Сообщений: 2
Репутация: 0 [ +/- ]
Как отловить событие на сервере если игрока убили гранатой?
Игра Counter-Strike: Source.
 
BarD Дата: Четверг, 27.02.2014, 12:20:40 | Сообщение # 18
Сообщений: 944
Репутация: 132 [ +/- ]
Код
new String:grenade[32] = {"weapon_hegrenade"};

public OnPluginStart()
{
HookEvent("player_death", Death);
}

public Action:Death(Handle:event, const String:name[], bool:dontBroadcast)
{
decl String:weapon[32];
GetEventString(event, "weapon", weapon, sizeof(weapon));
if (weapon[32] == grenade[32])
{
  PrintToChatAll("Убили гранатой");
}
}


Сам не проверял, но должно сработать
 
_wS_ Дата: Четверг, 27.02.2014, 12:24:26 | Сообщение # 19
BarD, это неправильно.

Цитата Artems ()
Как отловить событие на сервере если игрока убили гранатой?
Игра Counter-Strike: Source.

Код
player_death

decl String:weapon[15];
GetEventString(event, "weapon", weapon, 15);
if (strcmp(weapon, "hegrenade", false) == 0)
{

}
 
Valeriks Дата: Пятница, 14.03.2014, 22:57:06 | Сообщение # 20
Сообщений: 102
Репутация: 3 [ +/- ]
А как поймать событие когда игрок выбрал определенную команду? Не то чтобы узнать в какой он уже команде GetClientTeam(client), а поймать тот момент когда он выбрал команду. То есть, когда игрок заходит на сервер и выбирает команду (либо спектр) в чате сразу появляется надпись за какую команду он вошел, либо сел в спектр. Как это поймать?
 
_wS_ Дата: Пятница, 14.03.2014, 22:58:32 | Сообщение # 21
 
Valeriks Дата: Пятница, 14.03.2014, 23:01:11 | Сообщение # 22
Сообщений: 102
Репутация: 3 [ +/- ]
Благодарю!
 
DEMO-Stalker Дата: Понедельник, 17.03.2014, 18:58:47 | Сообщение # 23
Сообщений: 49
Репутация: 0 [ +/- ]
Почему-то пишет ошибку, не распознанный символ round
public OnPluginStart()
{
HookEvent("round_start", round);
}
Можете подсказать причину?


Сообщение отредактировал DEMO-Stalker - Понедельник, 17.03.2014, 19:29:35
 
dron216 Дата: Вторник, 18.03.2014, 00:58:24 | Сообщение # 24
Сообщений: 152
Репутация: 18 [ +/- ]
Добавь в код сам callback:

Код
public Action:round(Handle:Event, const String:EventName[], bool:Silent)
{
}


Сообщение отредактировал dron216 - Вторник, 18.03.2014, 11:55:56
 
Loco Дата: Вторник, 01.04.2014, 16:44:00 | Сообщение # 25
Сообщений: 42
Репутация: 0 [ +/- ]
Здравствуйте.

Помогите, пожалуйста.
Как можно отловить событие выбора оружия игроком?

То есть, если игрок, например, выбирает гранату, то выполняется определенная команда (моя).

Заранее спасибо.
 
rotmir1989 Дата: Суббота, 01.11.2014, 10:28:53 | Сообщение # 26
Сообщений: 2
Репутация: 0 [ +/- ]
Здравствуйте .
Не могу понять как после отлова события round_start , сделать что бы админу выдавало 120 хп . Киньте код и если не трудно описание к нему что бы понять код и изучить его .
 
Samil Дата: Суббота, 01.11.2014, 11:40:19 | Сообщение # 27
Сообщений: 59
Репутация: 11 [ +/- ]
#include <sourcemod>//Подключаем библиотки
#include <cstrike>
#include <sdktools>
#include <sdkhooks>

#pragma semicolon 1

public OnPluginStart()
{
HookEvent("round_start", Event_RoundStart); //Отлавливаем раунд старт
}

public Action:Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
for (new i=1;i<=MaxClients;i++) //Цикл проверки всех игроков
{
new flags = GetUserFlagBits(i); //Создаем переменную ответственную за флаги

if (flags & ADMFLAG_GENERIC) //Если флаг b
{
SetEntityHealth(i, 120); //То устанавливаем 120 хп
}
}
}


Сообщение отредактировал Samil - Суббота, 01.11.2014, 12:05:18
 
king(rus) Дата: Суббота, 15.11.2014, 20:09:16 | Сообщение # 28
Сообщений: 109
Репутация: 2 [ +/- ]
Цитата Samil ()
Здравствуйте .
Не могу понять как после отлова события round_start , сделать что бы админу выдавало 120 хп . Киньте код и если не трудно описание к нему что бы понять код и изучить его .

Лучше не в round_start, а в player_spawn, ибо игрок может быть ещё мёртв, когда начинается раунд.

Добавлено (15.11.2014, 20:09:16)
---------------------------------------------
Цитата Samil ()
#include <sourcemod>//Подключаем библиотки
#include <cstrike>
#include <sdktools>
#include <sdkhooks>

#pragma semicolon 1

public OnPluginStart()
{
HookEvent("round_start", Event_RoundStart); //Отлавливаем раунд старт
}

public Action:Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
for (new i=1;i<=MaxClients;i++) //Цикл проверки всех игроков
{
new flags = GetUserFlagBits(i); //Создаем переменную ответственную за флаги

if (flags & ADMFLAG_GENERIC) //Если флаг b
{
SetEntityHealth(i, 120); //То устанавливаем 120 хп
}
}
}


Код ужасен. А если игрок мёртв? Если его нету на сервере? Полетят еррорки. И зачем создавать переменную, если мы её используем один раз?


Сообщение отредактировал king(rus) - Воскресенье, 16.11.2014, 10:01:15
 
maxim5442 Дата: Четверг, 12.02.2015, 19:47:13 | Сообщение # 29
Сообщений: 18
Репутация: 0 [ +/- ]
Здравствуйте.
Как отловить прицел? ( то есть на какого игрока нацелен)
 
_wS_ Дата: Четверг, 12.02.2015, 20:56:17 | Сообщение # 30
Цитата maxim5442 ()
Как отловить прицел? ( то есть на какого игрока нацелен)

http://world-source.ru/forum/118-2463-1
 
Форум » SourceMod - Counter Strike Source && CS GO » Уроки SourceMod (SourcePawn) Скриптинга » HookEvent - Отлавливаем события
Страница 2 из 3«123»
Поиск: