Проверка При убийстве
|
|
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 ) { // Т убил КТ } } }
|
|
| |