Участник
Пользователь
- Сообщения
- 491
- Реакции
- 89
- Помог
- 5 раз(а)
Приветствую всех. Очень стала интересна данная ошибка, заметил, что у многих плагинов, спустя какое-то время начинает лезть Run time error 4. Банальный пример из паблика:
Хотелось бы поточнее узнать, причину вызывания данной ошибки и ее предотвращение. Заранее, благодарю всех, кто откликнулся
Код:
public CBasePlayer_Killed(pevVictim, pevAttacker) {
if(IsPlayer(pevVictim) && IsPlayer(pevAttacker) && isUserVip(pevAttacker) && pevVictim != pevAttacker) {
static Float:attackerHp, Float:addHp;
attackerHp = Float:get_entvar(pevAttacker, var_health);
addHp = get_member(pevVictim, m_bHeadshotKilled) ? ADDHP_HS : ADDHP;
attackerHp += addHp;
set_entvar(pevAttacker, var_health, attackerHp > MAXHP ? MAXHP : attackerHp);
if(attackerHp >= MAXHP) {
return;
}
if(addHp > 0.0) {
set_hudmessage(0, 255, 0, 0.6, 0.4, 2, 1.0, 1.5, 0.1, 0.3, -1);
ShowSyncHudMsg(pevAttacker, g_iSyncMsgAddHP, "+%.0f hp", addHp);
}
}
return;
}
#if defined DAMAGER
public CBasePlayer_TakeDamage(pevVictim, inflictor, pevAttacker, Float:damage) {
if(!g_isSwitchDmg[pevAttacker] || !isUserVip(pevAttacker) || pevVictim == pevAttacker || get_member(pevVictim, m_iTeam) == get_member(pevAttacker, m_iTeam)) {
return HC_CONTINUE;
}
if(IsPlayer(pevAttacker) && rg_is_player_can_takedamage(pevVictim, pevAttacker)) {
static g_iDamage;
g_iDamage = floatround(damage, floatround_floor);
if(g_iDamage > 0) {
static iPos;
iPos = ++g_iPlayerPos[pevAttacker];
if(iPos == sizeof(g_fCoords)) {
iPos = g_iPlayerPos[pevAttacker] = 0;
}
set_hudmessage(0, 100, 200, Float:g_fCoords[iPos][0], Float:g_fCoords[iPos][1], 2, 0.5, 1.5, 0.02, 0.02, -1);
ShowSyncHudMsg(pevAttacker, g_iSyncMsgDmg, "%d^n", g_iDamage);
}
}
return HC_CONTINUE;
}