Проверенный
Участник
Пользователь
d3m37r4
111111
- Сообщения
- 1,454
- Реакции
- 1,194
- Помог
- 10 раз(а)
Собственно вопрос, какие отличия между проверками is_user_connected(id) и 0 < id < 33 ?
Как правильно выполнить проверку - находится ли игрок на сервере, и игрок ли это?
Например, в дамагере:
На сервере редко, но появляется ошибка:
Если, что, строка 103 это if (rg_is_player_can_takedamage(pevVictim, pevAttacker))
Ниже приложен вариант, правильный ли он?
Как правильно выполнить проверку - находится ли игрок на сервере, и игрок ли это?
Например, в дамагере:
Код:
public CBasePlayer_TakeDamage(const pevVictim, pevInflictor, pevAttacker, Float:damage, bitsDamageType) {
if (pevAttacker < 1 || pevAttacker > 32)
return;
if (rg_is_player_can_takedamage(pevVictim, pevAttacker))
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1);
ShowSyncHudMsg(pevAttacker, g_iSyncMsgDamage, "%d", floatround(damage));
}
}
На сервере редко, но появляется ошибка:
Код:
L 03/03/2017 - 11:25:58: [ReAPI] rg_is_player_can_takedamage: player 8 is not connected
L 03/03/2017 - 11:25:58: [AMXX] Displaying debug trace (plugin "menu.amxx", version "1.0")
L 03/03/2017 - 11:25:58: [AMXX] Run time error 10: native error (native "rg_is_player_can_takedamage")
L 03/03/2017 - 11:25:58: [AMXX] [0] menu.sma::CBasePlayer_TakeDamage (line 103)
Если, что, строка 103 это if (rg_is_player_can_takedamage(pevVictim, pevAttacker))
Ниже приложен вариант, правильный ли он?
Код:
public CBasePlayer_TakeDamage(pVictim, pInflictor, pAttacker, Float:damage, bitsDamageType) {
if (is_user_connected(pAttacker) && 0 < pAttacker < 33) {
if (!g_bDamager[pAttacker] || pVictim == pAttacker)
return
if( rg_is_player_can_takedamage(pVictim, pAttacker)) {
set_hudmessage(0, 100, 200, -1.0, 0.6, 0, 0.1, 2.5, 0.02, 0.02)
show_hudmessage(pAttacker, "%.0f", damage)
}
}
}