Показ нулевого урона DMG

Сообщения
460
Реакции
68
Помог
7 раз(а)
Ошибка
При нанесении урона игроку гранатой равного 1% у него на экран выводит 0 нанесения урона.
ОС
Linux
Amx Mod X
AMX Mod X 1.9.0.5263 (http://www.amxmodx.org)
Authors:
David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko
Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom
Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher
Borja "faluco" Ferrer, Scott "DS" Ehlert
Compiled: Oct 27 2019 16:23:31
Built from: https://github.com/alliedmodders/amxmodx/commit/15a14a0
Build ID: 5263:15a14a0
Core mode: JIT+ASM32
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.7.0.695-dev
Build date: 15:54:29 Apr 6 2020 (2186)
Build from: https://github.com/dreamstalker/rehlds/commit/7513e71
ReGamedll
ReGameDLL version: 5.16.0.460-dev
Build date: 10:11:49 May 2 2020
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/4f72525
Версия Metamod
Metamod-r v1.3.0.128, API (5:13)
Metamod-r build: 17:47:54 Aug 24 2018
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/0cf2f70
Список метамодулей
[ 1] SafeNameAndChat  RUN   -    SafeNameAndChat.so          v1.1             ini  ANY   ANY  
[ 2] Reunion RUN - reunion_mm_i386.so v0.1.0.92c ini Start Never
[ 3] VoiceTranscoder RUN - VoiceTranscoder.so v2017RC5 ini ANY ANY
[ 4] ReSemiclip RUN - resemiclip_mm_i386.so v2.3.9 ini Chlvl ANY
[ 5] Rechecker RUN - rechecker_mm_i386.so v2.5 ini Chlvl ANY
[ 6] WHBlocker RUN - whblocker_mm_i386.so v1.5.696 ini Chlvl ANY
[ 7] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5263 ini Start ANY
[ 8] ReAimDetector RUN - reaimdetector_amxx_i386.so v0.2.2 pl7 ANY Never
[ 9] ReAPI RUN - reapi_amxx_i386.so v5.12.0.192-dev pl7 ANY Never
[10] SQLite RUN - sqlite_amxx_i386.so v1.9.0.5263 pl7 ANY ANY
[11] hackdetector RUN - hackdetector_amxx_i386.so v0.15.328.lite pl7 ANY ANY
[12] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5263 pl7 ANY ANY
[13] Engine RUN - engine_amxx_i386.so v1.9.0.5263 pl7 ANY ANY
[14] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5263 pl7 ANY ANY
[15] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5263 pl7 ANY ANY
[16] SxGeo RUN - sxgeo_amxx_i386.so v2.2 pl7 ANY Never
16 plugins, 16 running
Список плагинов
name                    version     author            file             status   
[ 1] FreshBans 1.4.2b kanagava fresh_bans_142_ running
[ 2] ReAimDetector API 0.2.2 ReHLDS Team reaimdetector.a running
[ 3] ScreenMaker 1.1 neygomon screen_maker.am running
[ 4] CSStatsX SQL 0.7.4+2 serfreeman1337 csstatsx_sql.am debug
[ 5] RC BaseChanger freesrv custom rc_basechanger. stopped
[ 6] ReChecker Logging freesrv custom rc_logging.amxx running
[ 7] Lite Admin ESP 1.1 neygomon, AcE admin_esp_ace.a running
[ 8] Admin Base 1.9.0.5263 AMXX Dev Team admin.amxx running
[ 9] High Ping Kicker 1.6 UFPS.Team hpk.amxx running
[ 10] AFK Control 1.4.1 [Rnd neygomon afk_control_Rnd running
[ 11] [ReAPI] AWPoff 1.4.3 PAffAEJIkA :3 awp_off.amxx stopped
[ 12] AES: StatsX 0.5+1 serfreeman1337 aes_statsx_cstr running
[ 13] Stats Configuration 1.10.0.525 AMXX Dev Team statscfg.amxx running
[ 14] Advanced Gag 1.9.0 neygomon amx_gag.amxx running
[ 15] Maps Menu 1.9.0.5263 AMXX Dev Team mapsmenu.amxx running
[ 16] Server Menu 1.5.0 F@nt0M server_menu.amx debug
[ 17] KiLL Assist poka_4to_b PRoSToTeM@ Kill_assist_rea running
[ 18] Parachute Lite [ReAPI] 14.0 Leo_[BH] parachute_leo_1 running
[ 19] Demo Recorder 2.4.1 F@nt0M demo_recorder.a running
[ 20] Rock to Ban 1.02 Safety1st rock2ban.amxx running
[ 21] Players Menu 1.7 neugomon players_menu.am running
[ 22] [ReAPI] Kills Counter 0.3 serfreeman1337 kills_counter.a running
[ 23] SF Warn Menu 0.1.4g serfreeman1337 sf_admin_warns. running
[ 24] AES: StatsX Info Rank 0.1 serfreeman1337 aes_statsx_rank running
[ 25] GameName Changer 1.0 neugomon gamename_change running
[ 26] [ReAPI] Damager 1.1 phe re_damager.amxx running
[ 27] lite screen fade 1.0 AcE re_lite_screen_ running
[ 28] [ReAPI] VIP System 1.3.1 pUzzlik re_vip_system_g running
[ 29] AntiFlood Change Name 28.11.2018 sergrib AntiFlood_Chang running
[ 30] [ReAPI] Random Weapons 2.4.9 neugomon/h1k3 Random_Weapons_ stopped
[ 31] SF Bets 0.1.5 serfreeman1337 sf_bets.amxx running
[ 32] Radio Hudmsg Block 1.0 AcE radio_hudmsg_bl running
[ 33] Advanced MapChooser 1.4 neygomon map_chooser.amx running
[ 34] [ReAPI] No Team Flash 0.0.2 Vaqtincha no_team_flash.a running
[ 35] resetscore(ReAPI) 1.0 Phantom resetscore.amxx running
[ 36] Me Hp StatsX 1.35 AMXX Dev Team me_hp_statsx.am running
[ 37] Knife Duel with Telepo 1.2 neygomon knife_duel.amxx running
[ 38] Models Replacement 0.0.2 ConnorMcLeod | V models_replacem running
[ 39] [ReAPI] Best player of 1.1.2 F@nt0M best_player_of_ running
[ 40] Ultimate KillStreak Ad 0.7 SAMURAI ut_killstreak_a running
[ 41] Online Helper 2.1.3 Nordic Warrior online_helper.a running
[ 42] SpecList 1.2a FatalisDK speclist.amxx running
[ 43] Steam Models 0.1b+mod.l Freedo.m steam_models.am running
[ 44] Adverts 1.0 pUzzlik adverts_message running
[ 45] [SxGeo] Connect Info 1.0p s1lent sxgeo_connect_i running
[ 46] Admin Loger 1.0 HARDCORE admin_loger.amx running
[ 47] Lite Translit 2.8 neygomon lite_translit_c running
[ 48] Grab Modular 1.1.3 w0w grab/grab_modul debug
[ 49] Grab Menu: Core 1.0.3 w0w grab/grab_menu/ running
[ 50] Grab Menu: Freeze 1.0.0 w0w grab/grab_menu/ running
[ 51] Grab Menu: Kick 1.0.0 w0w grab/grab_menu/ running
[ 52] Grab Menu: Kill 1.0.0 w0w grab/grab_menu/ running
[ 53] Grab Menu: Strip Weapo 1.0.0 w0w grab/grab_menu/ running
[ 54] Grab Menu: Team Change 1.0.0 w0w grab/grab_menu/ running
[ 55] Grab: Hit 1.0.0 w0w grab/grab_hit.a running
[ 56] Grab: No Fall Damage A 1.0.0 w0w grab/grab_no_fa running
[ 57] Grab: Notify on Grab 1.0.0 w0w grab/grab_notif running
[ 58] Grab: Pull 1.0.0 w0w grab/grab_pull. running
[ 59] Grab: Push 1.0.0 w0w grab/grab_push. running
[ 60] Grab: Rendering 1.0.0 w0w grab/grab_rende running
[ 61] Grab: Throw on Drop 1.0.0 w0w grab/grab_throw running
[ 62] Advanced Experience Sy 0.5.9 [REA serfreeman1337/s aes_main.amxx running
[ 63] AES: CStrike Addon 0.5.9 [REA serfreeman1337/s aes_exp_cstrike running
[ 64] AES: Informer 0.5.9 [REA serfreeman1337/s aes_informer.am running
[ 65] AES: Admin Tools 0.5.9 [REA serfreeman1337/s aes_exp_editor. running
[ 66] AES: Bonus System 0.5.9 Vega serfreeman1337/s aes_bonus_syste stopped
[ 67] AES: Bonus CSTRIKE 0.5.9 [REA serfreeman1337/s aes_bonus_cstri stopped
67 plugins, 62 running
Автор плагина
phe
Версия плагина
1.1
Исходный код
#include amxmodx
#include reapi
#if (AMXX_VERSION_NUM < 183)
#include <colorchat>
#endif
#define client_disconnect client_disconnected

#define WALLS_VISIBLE
#if !defined WALLS_VISIBLE
#include fakemeta_util
#endif

new bool:gOnOff[33] = { true, ... };
new g_MsgSync1, g_MsgSync2;
public plugin_init()
{
register_plugin("[ReAPI] Damager","1.1","phe");
register_clcmd("say /damager", "dmgOF", -1, "");
RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage", true);
g_MsgSync1=CreateHudSyncObj();
g_MsgSync2=CreateHudSyncObj();
}

public dmgOF(id)
{
gOnOff[id] ^= true;
client_print_color (id, print_team_default, "^1[^4Damager^1] ^3Показ урона^4 %s.", (gOnOff[id]) ? "включён" : "выключен");
}

public CBasePlayer_TakeDamage(victim, inflictor, attacker, Float:damage)
{
if(!is_user_connected(attacker))
return;
if(!rg_is_player_can_takedamage(victim, attacker))
return;
if(get_member(victim, m_iTeam) == get_member(attacker, m_iTeam)) // if FFa, remove...
return;

if(gOnOff[victim])
{
set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1);
ShowSyncHudMsg(victim, g_MsgSync1, "%.0f", damage);
}

if(gOnOff[attacker])
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1);
#if defined WALLS_VISIBLE
ShowSyncHudMsg(attacker, g_MsgSync2, "%.0f", damage);
#else
if(fm_is_ent_visible(attacker, victim))
ShowSyncHudMsg(attacker, g_MsgSync2, "%.0f", damage);
#endif
}
}
Всем привет форумчане. Помогите решить маленький казус. Я знаю что эта проблема давно заезжена так как видел в других темах подобное. Корочь говоря игроки начали жаловаться за этот зловещий нулик. Помогите решить.
 
В этой теме было размещено решение! Перейти к решению.

Ayk

Сообщения
763
Реакции
478
Помог
19 раз(а)
Т.к. в плагине выводится дамаг как флоат (без дробной части), то простого if(damage < 1.0) return; должно быть достаточно.
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Ayk, типо так
Код:
public CBasePlayer_TakeDamage(victim, inflictor, attacker, Float:damage)
{
    if(!is_user_connected(attacker))
        return;
    if(!rg_is_player_can_takedamage(victim, attacker))
        return;
    if(get_member(victim, m_iTeam) == get_member(attacker, m_iTeam)) // if FFa, remove...
        return;
    if(damage < 1.0)
        return;
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Ayk, спасибо за подсказку решения. Протестирую отпишу.
 
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
HARDCORE,
if(get_member(victim, m_iTeam) == get_member(attacker, m_iTeam)) // if FFa, remove...
и
if(!rg_is_player_can_takedamage(victim, attacker))
одно и тоже
rg_is_player_can_takedamage - может ли игрок получить урон от атакера
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Javekson, то есть в плагине есть лишняя проверка типо и её нужно убрать. Я не совсем понял)
 
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
if(get_member(victim, m_iTeam) == get_member(attacker, m_iTeam)) это можно убрать
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
HARDCORE,
if(get_member(victim, m_iTeam) == get_member(attacker, m_iTeam)) // if FFa, remove...
и
if(!rg_is_player_can_takedamage(victim, attacker))
одно и тоже
С чего вдруг?!
7 Май 2020
HARDCORE, как вариант, можешь использовать floatround c методом округления в большую сторону, вместо вывода дробного числа без дробной части.
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Minni, но етот же метод который сейчас хуже или так же одинаковый с вашим?
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
HARDCORE, в его способе будет отсеиваться любой урон меньше 1.0, то есть, урон 0.1 - 0.9 - уже не будет отображать, даже как единица. В моем, округлит в большему, то есть к 1. В остальном, разницы нет.
 
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
Minni, а почему нет? Если у него включен ffa то проверка не сработает, если ffa выключен то проверка сработает, а в случае с тимой, если включен ffa ему придется убирать код проверки на тиму, что бы урон тоже показывался, разве так не логично?
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Minni, ага понял спасибо за обяснение. Не знал. Да и вообще я нуб в скриптинге)
Но чото то новое интересто узнать.
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Minni, а почему нет? Если у него включен ffa то проверка не сработает, если ffa выключен то проверка сработает, а в случае с тимой, если включен ffa ему придется убирать код проверки на тиму, что бы урон тоже показывался, разве так не логично?
Ну у меня паб, фа режим я не использую.
 
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
Minni, так я тоже не скриптер ))))
7 Май 2020
HARDCORE, так тем более, у тебя просто две проверки по сути выполняющую одинаковую роль для достижение результата, поэтому одно проверку можно убрать, которую я указал
7 Май 2020
как вариант, можешь использовать floatround c методом округления в большую сторону, вместо вывода дробного числа без дробной части.
я могу путаться сейчас в своей памяти, но у меня когда то урон было 0.7 c чем-то там, но по факту у юзера как было 100 хп визуально так и осталось
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
Javekson, там, вроде бы, округление к большему целому идет. Типо если у тебя осталось меньше 1 здоровья, то покажет 1.
 
Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)
У себя в дамагере я сделал так:
Код:
    new intDamage = floatround(damage, floatround_floor);

    if (intDamage < 1)
        return;
Javekson, там, вроде бы, округление к большему целому идет. Типо если у тебя осталось меньше 1 здоровья, то покажет 1.
Не факт, что клиент не обрезает через преобразование в инт и тогда дробная часть просто отрезается.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу