Контакты Поиск

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

  • Страница 1 из 2
  • 1
  • 2
  • »
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Проверка При убийстве
Проверка При убийстве
sourcegod Дата: Вторник, 01.12.2015, 10:01:35 | Сообщение # 1
Сообщений: 69
Репутация: 0 [ +/- ]
Добрый день форумчане...
Помогите сделать проверку на то что игрок Т убил игрока СТ...
 
dases2003 Дата: Вторник, 01.12.2015, 18:26:31 | Сообщение # 2
Сообщений: 107
Репутация: 1 [ +/- ]
HookEvent( "player_death", Event_PlayerDeath )

public Event_PlayerDeath(...)
{
if( GetClientTeam( GetClientOfUserId( GetEventInt( event, "attacker" ) ) ) == 2 && GetClientTeam( GetClientOfUserId( GetEventInt( event, "userid" ) ) ) == 3 )
{
func
}
}
 
_R1KO_ Дата: Вторник, 01.12.2015, 19:32:08 | Сообщение # 3
Сообщений: 200
Репутация: 30 [ +/- ]
dases2003, И если игрок умер от мира или от самого себя сразу ошибки в лог
 
TEIN Дата: Вторник, 01.12.2015, 20:03:11 | Сообщение # 4
Сообщений: 563
Репутация: 78 [ +/- ]
Цитата _R1KO_ ()
И если игрок умер от мира или от самого себя сразу ошибки в лог

не баг, а фича
 
dases2003 Дата: Среда, 02.12.2015, 17:17:55 | Сообщение # 5
Сообщений: 107
Репутация: 1 [ +/- ]
Ну сделать проверки...Я же не должен давать весь код
Я дал лишь примерную основу


Сообщение отредактировал dases2003 - Среда, 02.12.2015, 17:18:14
 
dron216 Дата: Среда, 02.12.2015, 18:37:19 | Сообщение # 6
Сообщений: 151
Репутация: 18 [ +/- ]
Цитата _R1KO_ ()
И если игрок умер от мира или от самого себя сразу ошибки в лог

А что не так, напомни, пожалуйста что нуобходимо добавить для избежания ошибок?
Видимо я слишком долго не кодил и всё забыл
 
Regedit Дата: Четверг, 03.12.2015, 03:25:10 | Сообщение # 7
Сообщений: 135
Репутация: 1 [ +/- ]
HookEvent( "player_death", Event_PlayerDeath )

public Event_PlayerDeath(...)
{
new attacker = GetClientTeam( GetClientOfUserId( GetEventInt( event, "attacker" );
new client = GetClientOfUserId( GetEventInt( event, "userid" ) );

if (0 < attacker <= MaxClients && 0 < client <= MaxClients)
{
if (GetClientTeam(atacker) == 2 && GetClientTeam(client) == 3)
{
//Т убил КТ
}
}
}

оказалось помогать - совсем не сложно...

Добавлено (03.12.2015, 03:25:10)
---------------------------------------------
Проверять надо есть ли убийца.. если не проверишь то у 0 будешь запрашивать GetClientTeam - что выдаст спам в логи что не верный индекс игрока.


Сообщение отредактировал Regedit - Четверг, 03.12.2015, 03:29:46
 
dases2003 Дата: Четверг, 03.12.2015, 04:49:33 | Сообщение # 8
Сообщений: 107
Репутация: 1 [ +/- ]
0 < client <= MaxClients
client != 0 и все
 
TEIN Дата: Четверг, 03.12.2015, 07:27:00 | Сообщение # 9
Сообщений: 563
Репутация: 78 [ +/- ]
Цитата Regedit ()
new attacker = GetClientTeam( GetClientOfUserId( GetEventInt( event, "attacker" );
new client = GetClientOfUserId( GetEventInt( event, "userid" ) );

if (0 < attacker <= MaxClients && 0 < client <= MaxClients)

тот же client может тебе и не понадобиться пока что
 
sourcegod Дата: Пятница, 04.12.2015, 08:15:39 | Сообщение # 10
Сообщений: 69
Репутация: 0 [ +/- ]
В чем отличия кода?
Цитата dases2003 ()
public Event_PlayerDeath(...)
{
if( GetClientTeam( GetClientOfUserId( GetEventInt( event, "attacker" ) ) ) == 2 && GetClientTeam( GetClientOfUserId( GetEventInt( event, "userid" ) ) ) == 3 )
{
func
}


Цитата Regedit ()
public Event_PlayerDeath(...)
{
new attacker = GetClientTeam( GetClientOfUserId( GetEventInt( event, "attacker" );
new client = GetClientOfUserId( GetEventInt( event, "userid" ) );

if (0 < attacker <= MaxClients && 0 < client <= MaxClients)
{
if (GetClientTeam(atacker) == 2 && GetClientTeam(client) == 3)
{
//Т убил КТ
}
}
}
 
dases2003 Дата: Пятница, 04.12.2015, 11:17:11 | Сообщение # 11
Сообщений: 107
Репутация: 1 [ +/- ]
Убить может мир и тогда индекс будет 0, но получить команду нуля получить - нельзя
 
Regedit Дата: Вторник, 08.12.2015, 15:02:08 | Сообщение # 12
Сообщений: 135
Репутация: 1 [ +/- ]
Цитата sourcegod ()
В чем отличия кода?

в том что мой код не будет вызывать ошибок.


Сообщение отредактировал Regedit - Вторник, 08.12.2015, 15:02:20
 
BarD Дата: Вторник, 08.12.2015, 15:42:56 | Сообщение # 13
Сообщений: 943
Репутация: 137 [ +/- ]
Regedit, будет. Например, ошибка Client index X is not in game. Я бы поставил еще IsClientInGame(attacker). И с client'ом так же.
 
dases2003 Дата: Вторник, 08.12.2015, 17:14:41 | Сообщение # 14
Сообщений: 107
Репутация: 1 [ +/- ]
В таком коде не будет ошибок, и не нужно других проверок
Код
HookEvent( "player_death", Event_PlayerDeath )

public Event_PlayerDeath(...)
{
new iAttacker = GetClientTeam( GetClientOfUserId( GetEventInt( event, "attacker" ) );
new iClient = GetClientOfUserId( GetEventInt( event, "userid" ) );

if( 0 < iAttacker <= MaxClients && iClient != 0 )
{
if( GetClientTeam( iAttacker ) == 2 && GetClientTeam( iClient ) == 3 )
{
//Т убил КТ
}
}
}


Сообщение отредактировал dases2003 - Вторник, 08.12.2015, 17:15:20
 
_R1KO_ Дата: Вторник, 08.12.2015, 19:04:34 | Сообщение # 15
Сообщений: 200
Репутация: 30 [ +/- ]
dases2003, и ошибки будут и проверки лишние.

Код
HookEvent( "player_death", Event_PlayerDeath )

public Event_PlayerDeath(...)
{
    new iAttacker = GetClientOfUserId( GetEventInt( event, "attacker" );
    if(iAttacker)
    {
  new iClient = GetClientOfUserId( GetEventInt( event, "userid" ) );

  if(iClient != iAttacker && GetClientTeam( iAttacker ) == 2 && GetClientTeam( iClient ) == 3 )
  {
   // Т убил КТ
  }
    }
}
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Проверка При убийстве
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: