Неверное считывание урона.

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
11
Реакции
0
Помог
1 раз(а)
Ошибка
неверно показывает нанесенный урон, и полученный урон.
ОС
Linux
Amx Mod X
AMX Mod X 1.10.0.5435 (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: Aug  7 2021 08:32:30
Built from: https://github.com/alliedmodders/amxmodx/commit/36d5aa9
Build ID: 5435:36d5aa9
Core mode: JIT+ASM32
C++
Билд
version
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.11.0.776-dev
Build date: 19:37:50 Apr 20 2022 (2930)
Build from: https://github.com/dreamstalker/rehlds/commit/3dc9f8c
C++
ReGamedll
game version
ReGameDLL version: 5.21.0.546-dev
Build date: 15:32:48 Dec 28 2021
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/09a6c61
C++
Версия Metamod
meta version
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
C++
Список метамодулей
meta list
Currently loaded plugins:
      description      stat pend  file                        vers             src  load  unload
 [ 1] VoiceTranscoder  RUN   -    VoiceTranscoder.so          v2017RC5         ini  ANY   ANY
 [ 2] Reunion          RUN   -    reunion_mm_i386.so          v0.1.92d         ini  Start Never
 [ 3] AMX Mod X        RUN   -    amxmodx_mm_i386.so          v1.10.0.5435     ini  Start ANY
 [ 4] WHBlocker        RUN   -    whblocker_mm_i386.so        v1.5.697         ini  Chlvl ANY
 [ 5] Rechecker        RUN   -    rechecker_mm_i386.so        v2.7             ini  Chlvl ANY
 [ 6] Fun              RUN   -    fun_amxx_i386.so            v1.9.0.5271      pl3  ANY   ANY
 [ 7] Engine           RUN   -    engine_amxx_i386.so         v1.9.0.5271      pl3  ANY   ANY
 [ 8] FakeMeta         RUN   -    fakemeta_amxx_i386.so       v1.9.0.5271      pl3  ANY   ANY
 [ 9] GeoIP            RUN   -    geoip_amxx_i386.so          v1.9.0.5271      pl3  ANY   ANY
 [10] CStrike          RUN   -    cstrike_amxx_i386.so        v1.9.0.5271      pl3  ANY   ANY
 [11] CSX              RUN   -    csx_amxx_i386.so            v1.9.0.5271      pl3  ANY   ANY
 [12] Ham Sandwich     RUN   -    hamsandwich_amxx_i386.so    v1.9.0.5271      pl3  ANY   ANY
 [13] ReAPI            RUN   -    reapi_amxx_i386.so          v5.21.0.252-dev  pl3  ANY   Never
 [14] IPHub Client     RUN   -    iphubclient_amxx_i386.so    v1.0.1           pl3  ANY   Never
 [15] gRIP             RUN   -    grip_amxx_i386.so           v0.1.5 Beta      pl3  ANY   ANY
 [16] ReAimDetector    RUN   -    reaimdetector_amxx_i386.so  v0.2.2           pl3  ANY   Never
 [17] MySQL            RUN   -    mysql_amxx_i386.so          v1.9.0.5271      pl3  ANY   ANY
17 plugins, 17 running
C++
Список плагинов
amxx plugins
Currently loaded plugins:
       id  name                    version     author            url                              file         status
 [  1] 0   Accuracy Fix            3.0         Numb              unknown                          accuracy_fi  running
 [  2] 1   Spray fix               1.0.0       Maxpain           unknown                          spray_fix.a  running
 [  3] 3   ReAimDetector API       0.2.2       ReHLDS Team       unknown                          reaimdetect  running
 [  4] 4   Lite Bans               2.2         neygomon          unknown                          lite_bans_o  running
 [  5] 5   Advanced Client Checke  0.3.6       Mistrick          unknown                          cmdchecker.  running
 [  6] 6   Bypass Guard            1.0.1       mx?!              unknown                          bypass_guar  running
 [  7] 7   [BG] Provider: IPHub-C  1.1         mx?!              unknown                          bg_provider  running
 [  8] 8   Family Sharing          0.2b        Denzer            unknown                          family_shar  running
 [ 9] 9   Unreal Cheater Cry      1.0.8       Karaulov          unknown                          unreal_chea  running
 [ 10] 10  Check Button            2.1         Juice/Inj         unknown                          checkbutton  running
 [ 11] 11  Movechecker Bhop Check  1.0         Garey             unknown                          abunai_sgsc  running
 [ 12] 12  Cvars Checker           0.1         hedqi             unknown                          minmodels_c  running
 [ 13] 13  [ReAPI] AdminFreeLook   1.0         ReHLDS Team       unknown                          adminfreelo  running
 [ 14] 14  AdminListen             2.5         /dev/ urandom V   unknown                          amx_adminli  running
 [ 15] 15  UserManager             1.0         CrAsH             unknown                          UserManager  running
 [ 16] 16  Admin ESP               0.2         Kost & miRror     unknown                          admin_esp_m  running
 [ 17] 17  Admin Commands          1.9.0.5263  AMXX Dev Team     unknown                          admincmd.am  running
 [ 18] 18  Commands Menu           1.9.0.5263  AMXX Dev Team     unknown                          cmdmenu.amx  running
 [ 19] 19  Players Menu            1.9.0.5263  AMXX Dev Team     unknown                          plmenu.amxx  running
 [ 20] 20  Maps Menu               1.9.0.5263  AMXX Dev Team     unknown                          mapsmenu.am  running
 [ 21] 21  Admin Chat              1.9.0.5263  AMXX Dev Team     unknown                          adminchat.a  running
 [ 22] 22  Admin Votes             1.9.0.5263  AMXX Dev Team     unknown                          adminvote.a  running
 [ 23] 23  Nextmap Chooser         1.9.0.5263  AMXX Dev Team     unknown                          mapchooser.  running
 [ 24] 24  Rush Mode               1.1.14      Sho0ter           unknown                          rush.amxx    running
 [ 25] 25  Block 'Fire in the hol  0.1         Safety1st         unknown                          block_fire_  running
 [ 26] 26  unknown                 unknown     unknown           unknown                          brushblock.  running
 [ 27] 27  Free Defuserkit         1.1.        tuty              unknown                          freedefuser  running
 [ 28] 28  Run boost               1.1         EFFx              unknown                          RunBoost.am  running
 [ 29] 29  Voices Management       1.0.0       Maxpain           unknown                          voices_mana  running
 [ 30] 30  Ad From Server          1.0         BadMandarin       unknown                          ad_from_ser  running
 [ 31] 31  Damager                 1.0         Prayer            unknown                          damager.amx  running
 [ 32] 32  Admin Prefixes          3.0         m0skVi4a ;]       unknown                          AdminPrefix  running
 [ 33] 33  block ip                0.2         legenda           unknown                          amx_blockip  running
 [ 34] 34  Advanced Gag            1.9.0       neygomon          unknown                          amx_gag.amx  running
 [ 35] 35  Restrict Weapons        1.8.2       Leo_[BH]          unknown                          restmenu.am  running
35 plugins, 35 running
C++
Автор плагина
b0t.
Версия плагина
1.2
Исходный код
#include <amxmodx>
#include <reapi>

new const VERSION[] = "1.2";

#define MAX_DMG_100		//Максимальный нанёсённый урон по одному противнику = 100.
#define SHOT_A_GRENADE		//Засчитывать урон от гранаты за попадание.

enum _:GAME_DATA {
	SHOT,
	DAMAGE
};

new p_iGameData[33][33][GAME_DATA],bool:p_bChat[33];

public plugin_init() {
	register_plugin("GameInfo",VERSION,"b0t.");

	RegisterHookChain(RG_CBasePlayer_TakeDamage,"RG_CBasePlayerTakeDamage_Post", .post = true);
	RegisterHookChain(RG_RoundEnd,"RG_RoundEnd_Post", .post = true);

	register_clcmd("say /damageinfo", "Info_Menu");
}

public RG_CBasePlayerTakeDamage_Post(const pVictim,const iInflictor,const pAttacker,const Float:fDamage,const iBitDamage) {
	if(!is_user_connected(pVictim) || !is_user_connected(pAttacker))
		return HC_CONTINUE;
	
	if(get_member(pAttacker,m_iTeam) == get_member(pVictim,m_iTeam))
		return HC_CONTINUE;

	p_iGameData[pAttacker][pVictim][DAMAGE] += floatround(fDamage);
	
	#if defined MAX_DMG_100
		if(p_iGameData[pAttacker][pVictim][DAMAGE] > 100)
			p_iGameData[pAttacker][pVictim][DAMAGE] = 100;
	#endif

	#if !defined SHOT_A_GRENADE
		if(iBitDamage & DMG_GRENADE)
			return HC_CONTINUE;
	#endif
		
	p_iGameData[pAttacker][pVictim][SHOT]++;
	
	return HC_CONTINUE;
}

public RG_RoundEnd_Post() {
	for(new iPlayer=1;iPlayer<=MaxClients;iPlayer++) {
		if(!is_user_connected(iPlayer))
			continue;
		
		UTIL_ShowRoundInfo(iPlayer);
		UTIL__ResetVars(iPlayer);
	}
}

public Info_Menu(const pId) {
	new i_Menu = menu_create("\yИнформер меню", "Damager_Handler");

	menu_additem(i_Menu, "\wПоказывать информацию об уроне в консоли", "1", 0);
	menu_additem(i_Menu, "\wПоказывать информацию об уроне в чате", "2", 0);

	menu_setprop(i_Menu, MPROP_NEXTNAME, "Дальше");
	menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
	menu_setprop(i_Menu, MPROP_EXITNAME, "Закрыть");

	menu_display(pId, i_Menu, 0);
}

public Damager_Handler(const pId, const iMenu, const iItem) {
	if(iItem == MENU_EXIT) {
		menu_destroy(iMenu);
		return PLUGIN_HANDLED;
	}

	new s_Data[6], s_Name[64], i_Access, i_Callback;
	menu_item_getinfo(iMenu, iItem, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback);	
 
	new iKey = str_to_num(s_Data);
	switch(iKey) {
		case 1: p_bChat[pId] = false;	
		case 2: p_bChat[pId] = true;							
	}

	menu_destroy(iMenu);
	return PLUGIN_HANDLED;
}

public client_putinserver(id) {
	UTIL__ResetVars(id);
}

stock UTIL_ShowRoundInfo(const id) {
	new szMessage[256];

	for(new iPlayer=1;iPlayer<=MaxClients;iPlayer++) {
		if(!is_user_connected(iPlayer) || iPlayer == id)
			continue;
			
		if(p_iGameData[id][iPlayer][DAMAGE] == 0 && p_iGameData[iPlayer][id][DAMAGE] == 0)
			continue;
		
		formatex(szMessage,charsmax(szMessage),
			"<MM> (%i with %i) damage, (%i with %i) taken, %n (%iHP)",
			
			p_iGameData[id][iPlayer][DAMAGE],p_iGameData[id][iPlayer][SHOT],
			p_iGameData[iPlayer][id][DAMAGE],p_iGameData[iPlayer][id][SHOT],
			iPlayer,!is_user_alive(iPlayer) ? 0 : floatround(Float:get_entvar(iPlayer,var_health))
		);
		
		switch(p_bChat[id]) {
			case false: client_print(id,print_console,szMessage);
			case true:	client_print_color(id,print_team_default,szMessage);
		}
	}
}

stock UTIL__ResetVars(const id) {
	for(new i=1;i<=MaxClients;i++) {
		p_iGameData[id][i][SHOT] = 0;
		p_iGameData[id][i][DAMAGE] = 0;
	}
}
C++
Всем ку, столкнулся с такой проблемой как, получаю от плагина неверный урон, может найдутся умельцы которые помогут.
upd: хочу обратиться к Garey, за помощью в такой проблеме.

вот проблема:
Снимок.PNG
 
В этой теме было размещено решение! Перейти к решению.
Последнее редактирование:
Сообщения
920
Реакции
158
Помог
26 раз(а)
Каким образом проверял? Сам лично падал, нанося себе урон при этом? Или каким образом?
 
Сообщения
11
Реакции
0
Помог
1 раз(а)
Benzogang_BabyTape, меня убивали.
прикрепленный скрин на нем, и есть баг)

(100 with 1) - как я мог нанести 100 хп, когда меня собственно убили)
(52 with 2) - урон от игрока который меня убил, странно почему 52 с 2, когда меня убили с 1 в голову)
 
Сообщения
920
Реакции
158
Помог
26 раз(а)
yUkk,
#define MAX_DMG_100 // Максимальный нанёсённый урон по одному противнику = 100.
Если тебе наносят больше 100 урона - урон будет установлен на 100.
Закомментируй этот кусок кода, и проверь урон еще раз.
 
Сообщения
920
Реакции
158
Помог
26 раз(а)
yUkk, ну в данный момент я вижу что он не закомментирован, перепроверь еще раз.
 
Сообщения
11
Реакции
0
Помог
1 раз(а)
Benzogang_BabyTape, я знаю, что он не закомментирован, я скинул код без всех поправок своих.
а так, я это делал уже.
 
Сообщения
920
Реакции
158
Помог
26 раз(а)
Пробуй.
Вроде все кулл.
C++:
#include <amxmodx>
#include <reapi>

new const VERSION[] = "1.2";

//#define MAX_DMG_100        //Максимальный нанёсённый урон по одному противнику = 100.
#define SHOT_A_GRENADE        //Засчитывать урон от гранаты за попадание.
//#define DEBUG_SECTION         // Дебаг секция (для разработчиков).

enum _:GAME_DATA {
    SHOT,
    DAMAGE
};

new p_iGameData[33][33][GAME_DATA],bool:p_bChat[33];

public plugin_init() {
    register_plugin("[ReAPI] Addon: GameInfo",VERSION,"b0t.");

    RegisterHookChain(RG_CBasePlayer_TakeDamage,"RG_CBasePlayerTakeDamage_Post", .post = true);
    RegisterHookChain(RG_RoundEnd,"RG_RoundEnd_Post", .post = true);

    register_clcmd("say /damageinfo", "CheckStatus");
}

public RG_CBasePlayerTakeDamage_Post(const pVictim,const iInflictor,const pAttacker,const Float:fDamage,const iBitDamage) {
    if(!is_user_connected(pVictim) || !is_user_connected(pAttacker))
        return HC_CONTINUE;
    
    if(get_member(pAttacker,m_iTeam) == get_member(pVictim,m_iTeam))
        return HC_CONTINUE;

    p_iGameData[pAttacker][pVictim][DAMAGE] += floatround(fDamage);
    
    #if defined MAX_DMG_100
        if(p_iGameData[pAttacker][pVictim][DAMAGE] > 100)
            p_iGameData[pAttacker][pVictim][DAMAGE] = 100;
    #endif

    #if !defined SHOT_A_GRENADE
        if(iBitDamage & DMG_GRENADE)
            return HC_CONTINUE;
    #endif
        
    p_iGameData[pAttacker][pVictim][SHOT]++;
    
    #if defined DEBUG_SECTION
        client_print_color(pAttacker,print_team_default,"DEBUG: Shoot Count By Attacker:^4 %i",p_iGameData[pAttacker][pVictim][SHOT]);
        client_print_color(pAttacker,print_team_default,"DEBUG: Shoot Count By Victim:^4 %i",p_iGameData[pVictim][pAttacker][SHOT]);
        
        client_print_color(pAttacker,print_team_default,"DEBUG: Give Damage By Attacker:^4 %i",p_iGameData[pAttacker][pVictim][DAMAGE]);
        client_print_color(pAttacker,print_team_default,"DEBUG: Give Damage By Victim:^4 %i",p_iGameData[pVictim][pAttacker][DAMAGE]);
    #endif
    
    return HC_CONTINUE;
}

public RG_RoundEnd_Post() {
    for(new iPlayer=1;iPlayer<=MaxClients;iPlayer++) {
        if(!is_user_connected(iPlayer))
            continue;
        
        RequestFrame("UTIL_ShowRoundInfo",iPlayer);
        set_task(2.0, "UTIL__ResetVars", iPlayer);
    }
}
public CheckStatus(id) {
    p_bChat[id] = !p_bChat[id];
    client_print_color(id,print_team_default,"^1[^4Инфо^1] Отображение в -^4 %s",p_bChat[id] ? "чат" : "консоль");
}

public client_putinserver(id) {
    UTIL__ResetVars(id);
}

public UTIL_ShowRoundInfo(const id) {
    new szMessage[256];

    for(new iPlayer=1;iPlayer<=MaxClients;iPlayer++) {
        if(!is_user_connected(iPlayer) || iPlayer == id)
            continue;
            
        if(p_iGameData[id][iPlayer][DAMAGE] == 0 && p_iGameData[iPlayer][id][DAMAGE] == 0)
            continue;
        
        formatex(szMessage,charsmax(szMessage),
            "<MM> (%i with %i) damage, (%i with %i) taken, %n (%iHP)",
            
            p_iGameData[id][iPlayer][DAMAGE],p_iGameData[id][iPlayer][SHOT],
            p_iGameData[iPlayer][id][DAMAGE],p_iGameData[iPlayer][id][SHOT],
            iPlayer,!is_user_alive(iPlayer) ? 0 : floatround(Float:get_entvar(iPlayer,var_health))
        );
        
        switch(p_bChat[id]) {
            case false:client_print(id,print_console,szMessage);
            case true:client_print_color(id,print_team_default,szMessage);
        }
    }
}

public UTIL__ResetVars(const id) {
    new i;
    
    for(i=1;i<=MaxClients;i++) {
        p_iGameData[id][i][SHOT] = 0;
        p_iGameData[id][i][DAMAGE] = 0;
    }
}
C++
 
Статус
В этой теме нельзя размещать новые ответы.

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

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