Armor Damage

Сообщения
1,621
Реакции
1,651
Ошибка
Ошибки нет - Сервер зависает в рандомном времени
ОС
Linux
Amx Mod X
AMX Mod X 1.9.0.5271
C++
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
Exe build: 13:12:29 Aug 29 2013 (6153)
C++
ReGamedll
нету
C++
Версия Metamod
Metamod v1.21p38  2018/02/11 (5:13)
C++
Список метамодулей
Currently loaded plugins:
      description      stat pend  file              vers      src   load  unlod
 [ 1] SafeNameAndChat  RUN   -    safenameandchat.  v1.1      ini   ANY   ANY  
 [ 2] AMX Mod X        RUN   -    amxmodx_mm_i386.  v1.9.0.5 ini Start ANY
 [ 3] dproto_EF        RUN   -    dproto_i386.so    v0.9.391  ini   Start Never
 [ 4] InfoIsValid Fix  RUN   -    infovalidfix.so   v0.2      ini   ANY   Never
 [ 5] LocalizeBug Fix  RUN   -    localizebugfix_m  v2.4      ini   Start Never
 [ 6] VoiceTranscoder  RUN   -    voicetranscoder.  v2017RC3  ini   ANY   ANY  
 [ 7] FullupdatePatch  RUN   -    fullupd_patch_mm  v1.2      ini   Start Never
 [ 8] CustomizationEx  RUN   -    cef.so            v0.0.2    ini   ANY   ANY  
 [ 9] NetBufExtender   RUN   -    nbex.so           v1.0      ini   ANY   Never
 [10] UserInfoNetOpti  RUN   -    uino.so           v1.0      ini   ANY   Never
 [11] DontFragRemover  RUN   -    dontfragremover.  v1.0      ini   ANY   ANY  
 [12] AntiHang         RUN   -    antihang_mm_i386  v0.1      ini   Start Never
 [13] Enable CSBot     RUN   -    csbot.so          vApr 13   ini   ANY   Pause
 [14] Fun              RUN   -    fun_amxx_i386.so  v1.9.0.5 pl1    ANY ANY
 [15] Engine           RUN   -    engine_amxx_i386  v1.9.0.5 pl1    ANY ANY
 [16] FakeMeta         RUN   -    fakemeta_amxx_i3  v1.9.0.5 pl1    ANY ANY
 [17] CStrike          RUN   -    cstrike_amxx_i38  v1.9.0.5 pl1    ANY ANY
 [18] CSX              RUN   -    csx_amxx_i386.so  v1.9.0.5 pl1    ANY ANY
 [19] Ham Sandwich     RUN   -    hamsandwich_amxx  v1.9.0.5 pl1    ANY ANY
 [20] MySQL            RUN   -    mysql_amxx_i386.  v1.9.0.5 pl1    ANY ANY
20 plugins, 20 running
C++
Список плагинов
Currently loaded plugins:
       name                    version     author            file             status   
 [  1] MultiMod Manager        2.2         JoRoPiTo          multimod.amxx    running  
 [  2] Nextmap Chooser         1.9.0       AMXX Dev Team     mapchooser_mult  running  
 [  3] Block MinModels         1.0         MayroN            cl_minmodels.am  running  
 [  4] Third Person Camera     1.0         MayroN            3rd_person.amxx  running  
 [  5] Game Name WarCraft      1.0         MayroN            gamename_wc.amx  running  
 [  6] unknown                 unknown     unknown           precache_sound_  running  
 [  7] Players Count in Team   2.0         kramesa           select_team_wc.  running  
 [  8] unknown                 unknown     unknown           random_class_te  running  
 [  9] Timeleft as Roundtime   AcidoX      1.0               timeleft_hud.am  running  
 [ 10] Warcraft 3 Frozen Thro  3.0 RC4     Geesu & Avanderi  war3ft.amxx      running  
 [ 11] Descriptive 'Fire in t  0.1         VEN               descriptive_fir  running  
 [ 12] Gas Poison              2.0.1       ConnorMcLeod      gas_poison.amxx  running  
 [ 13] Back Weapons            1.87        hoboman313; chea  backweapons_wc.  running  
 [ 14] Weather System          2.9c        UFPS.Team         weather_system.  running  
 [ 15] Weapon Icon             1.2         hoboman313/Zenix  weapon_icon.amx  running  
 [ 16] Super Bunny Hopper      1.2         Cheesy Peteza     bhop.amxx        running  
 [ 17] Grentrail               1.3         AssKicR           grentrail2.amxx  running  
 [ 18] AMXX Public server rul  1.20        Priski            public_rules.am  running  
 [ 19] Spectator Banner Ads    0.1.16      iG_os             spec_banner_wc.  running  
 [ 20] Killer Effect Sprite C  3.6         Yek'-ta           killer_effect_w  running  
 [ 21] Sprite Damage           1.0         Lie               damage_wc.amxx   running  
 [ 22] Weapons Models          0.2.3       ConnorMcLeod      Weapons_Models_  running  
 [ 23] Vampire                 1.0d        Shalfey           vampire.amxx     running  
 [ 24] Remove Drop Weapon      0.3         GordonFreeman &   remove_drop_wea  running  
 [ 25] Autoresponder/Advertis  0.5         MaximusBrood      ad_manager_wc.a  running  
 [ 26] Weapon Trail            2.0         anakin_cstrike    WeaponTrail.amx  running  
 [ 27] Custom Smoke            1.07        bionext           Smoke_Effect.am  running  
 [ 28] Flashbang Dynamic Ligh  0.10        Avalanche         flashbang_dligh  running  
 [ 29] Weapon Lights           0.6         HiSS & Arkshine   weapon_lights.a  running  
 [ 30] First Person Death      1.0         Numb              first_person_de  running  
 [ 31] Info. Messages          1.9.0       AMXX Dev Team     imessage.amxx    running  
 [ 32] TimeLeft                1.9.0       AMXX Dev Team     timeleft.amxx    running  
 [ 33] Sniper Crosshairs       1.3         Numb              sniper_crosshai  running  
 [ 34] unknown                 unknown     unknown           block_message_w  running  
 [ 35] hl_adrenaline_upd       0.2a        Turanga_Leela     cs_adrenaline_u  running  
 [ 36] Damage Effects          1.0.0       TaRgEt*TuRkEy     damageeffects.a  running  
 [ 37] Players Models          1.3.1       ConnorMcLeod      player_model_wc  running  
 [ 38] Timelimit               1.0         F                 wc_timelimit.am  running  
 [ 39] buytime                 1.0         F                 wc_buytime.amxx  running  
 [ 40] unknown                 unknown     unknown           motd_wc.amxx     running  
 [ 41] C4 Smoke                1.0         fl0wer            backpack_smoke.  running  
 [ 42] Death Sprite            1.0         DarkGL            Death.amxx       running  
 [ 43] Players Drop Money      1.7         Sh!nE*            drop_money_wc.a  running  
 [ 44] Xmas shit               1.0         xPaw & Juice      dragons_wc.amxx  running  
 [ 45] Xmas shit               1.0         xPaw & Juice      bush_wc.amxx     running  
 [ 46] Xmas shit               1.0         xPaw & Juice      bush2_wc.amxx    running  
 [ 47] Xmas shit               1.0         xPaw & Juice      tree_wc.amxx     running  
 [ 48] Xmas shit               1.0         xPaw & Juice      tree2_wc.amxx    running  
 [ 49] Snake Bomb              1.0         MayroN            snake_bomb.amxx  running  
 [ 50] Snake Defuse Predictio  1.2         Starsailor        snake_defuse_pr  running  
 [ 51] RockTheVote_MultiMod    1.8         DA                rockthevote_mul  running  
 [ 52] Last Round              2.0         many              last_round.amxx  running  
 [ 53] Warcraft Item Bot       1.1         DA                Item_bot_war3ft  running  
 [ 54] Death Medkit Drop       4.2         tuty; 731; Midni  medkit_wc.amxx   running  
 [ 55] Armor Damage            1.0         Simon Logic       armor_damage.am  running  
 [ 56] Armor Drop              1.0         OneEyed           armor_wc.amxx    running  
 [ 57] Throw Knife WC          1.0.2       -]ToC[-Bludy/JTP  throw_knife.amx  running  
 [ 58] unknown                 unknown     unknown           bind_command_wc  running  
 [ 59] Box WC                  3.1         Alexander.3       box_wc.amxx      running  
 [ 60] Lie Flat                1.1         Nomexous          lie_flat.amxx    running  
 [ 61] Weapon Physics          2.1         Nomexous          weaponphys.amxx  running  
 [ 62] WinTeam Sprite          0.0.8       Some Scripter     WinTeam_Sprite_  running  
 [ 63] unknown                 unknown     unknown           block_sound_win  running  
 [ 64] Bomb Change Message     0.0.1       Flymic24          bomb_change_mes  running  
 [ 65] Bomb Block Beep         1.2         MayroN / edit St  bomb_block_beep  running  
 [ 66] C4Timer                 1.0         F                 c4_timer_wc.amx  running  
 [ 67] Win Sounds              1.0         OciXCrom          win_sound_wc.am  running  
 [ 68] AMXX Public server rul  1.20        Priski            support_thanks.  running  
 [ 69] Bilbord Girl            1.0         xPaw & Juice      bilbord_girl.am  running  
 [ 70] CHAT MODEL              3.0         MayroN & Sanya@   chat_model.amxx  running  
 [ 71] Automatic Unstuck       1.5         NL)Ramon(NL       automatic_unstu  running  
 [ 72] Bot AutoKill            1.0         Sanya@            bot_autokill.am  running  
72 plugins, 72 running
C++
Автор плагина
Simon Logic
Версия плагина
1.0
Исходный код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta_stocks>
#include <hamsandwich>

#define PLUGIN_NAME	"Armor Damage"
#define PLUGIN_VERSION	"1.0"
#define PLUGIN_AUTHOR	"Simon Logic"

#define MAX_IMMORTAL_HEALTH 254.0

new bool:g_bCS
new g_iMaxPlayers
new g_msgDamage
new g_msgHealth
new g_msgBattery
new g_cvarAffectDmgBits
new g_cvarAffectGenericDmg
new g_cvarAffectKnifeDmg

new bool:bHamBot = false;

public plugin_init()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

	g_bCS = bool:cstrike_running()
	g_iMaxPlayers = get_maxplayers()
	g_msgDamage = get_user_msgid("Damage")
	g_msgHealth = get_user_msgid("Health")
	g_msgBattery = get_user_msgid("Battery")
	
	g_cvarAffectDmgBits = register_cvar("q3armor_affectdmgbits", "abcdefghijklmnopqrstuvy")
	g_cvarAffectGenericDmg = register_cvar("q3armor_affectgenericdmg", "1")
	if(g_bCS)
		g_cvarAffectKnifeDmg = register_cvar("q3armor_affectknifedmg", "1")

	RegisterHam(Ham_TakeDamage, "player", "onPlayerDamage")
	RegisterHam(Ham_Spawn, "player", "Give_Armor", 1)
}

public client_putinserver(id)	
{
	if(!bHamBot && is_user_bot(id))	
        {
		bHamBot = true
		set_task(0.1, "Bot_Give_Armor", id)
	}
}

public Bot_Give_Armor(id)
{
        RegisterHamFromEntity(Ham_TakeDamage, id, "onPlayerDamage")
	RegisterHamFromEntity(Ham_Spawn, id, "Give_Armor", 1)
}

public Give_Armor(id)
{
        if(!is_user_alive(id))
        	return HAM_IGNORED;

        cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM); 

        return HAM_IGNORED;
}

public onPlayerDamage(victim, inflictor, attacker, Float:dmg, dmg_type)
{
	static iAffDmgBits; iAffDmgBits = getCvarAsFlags(g_cvarAffectDmgBits)
	
	if(dmg_type == DMG_GENERIC)
	{
		if(!get_pcvar_num(g_cvarAffectGenericDmg))	
			return HAM_IGNORED
	} 
	else if(!(dmg_type & iAffDmgBits))
	{	
		return HAM_IGNORED
	}
	if(pev_valid(victim))
	{
		static Float:fArmor; pev(victim, pev_armorvalue, fArmor)
		if(fArmor > 0.0)
		{
			if(g_bCS && !get_pcvar_num(g_cvarAffectKnifeDmg) 
			&& 1 <= attacker <= g_iMaxPlayers)
			{ 
				new iDummy
				if(CSW_KNIFE == get_user_weapon(attacker, iDummy, iDummy))
					return HAM_IGNORED
			}
			
			static Float:fHealth; pev(victim, pev_health, fHealth)
			if(dmg < fHealth + fArmor)
			{	
				set_pev(victim, pev_health, MAX_IMMORTAL_HEALTH)
				
				new iBlockDamage; iBlockDamage = get_msg_block(g_msgDamage)
				new iBlockHealth; iBlockHealth = get_msg_block(g_msgHealth)
				new iBlockBattery; iBlockBattery = get_msg_block(g_msgBattery)

				set_msg_block(g_msgDamage, BLOCK_SET)
				set_msg_block(g_msgHealth, BLOCK_SET)
				set_msg_block(g_msgBattery, BLOCK_SET)
				ExecuteHam(Ham_TakeDamage, victim, inflictor, attacker, dmg, dmg_type)
				set_msg_block(g_msgDamage, iBlockDamage)
				set_msg_block(g_msgHealth, iBlockHealth)
				set_msg_block(g_msgBattery, iBlockBattery)
			
				new Float:fNewArmor; pev(victim, pev_armorvalue, fNewArmor)
				new Float:fNewHealth; pev(victim, pev_health, fNewHealth)
				fNewHealth -= MAX_IMMORTAL_HEALTH
				fNewHealth += fHealth

				if(fNewArmor > 0 && fNewHealth != fHealth)
				{	
					new Float:fDmgTake = fHealth - fNewHealth
					fNewArmor -= fDmgTake
					if(fNewArmor < 0.0)
					{
						fDmgTake = fNewArmor
						fNewArmor = 0.0
					}
					else
						fDmgTake = 0.0

					fNewHealth = fHealth + fDmgTake
				
					if(fNewHealth < 0.0)
						fNewHealth = 0.0

					set_pev(victim, pev_armorvalue, fNewArmor)
				}
				set_pev(victim, pev_health, fNewHealth)

				new Float:fInflictorOrigin[3]

				if(pev_valid(inflictor))
					pev(inflictor, pev_origin, fInflictorOrigin)

				new iDmgSave = floatround(fArmor - fNewArmor)
				new iDmgTake = floatround(fHealth - fNewHealth)

				emessage_begin(MSG_ONE, g_msgDamage, _, victim)
				ewrite_byte(iDmgSave)
				ewrite_byte(iDmgTake)
				ewrite_long(dmg_type)
				ewrite_coord(floatround(fInflictorOrigin[0]))
				ewrite_coord(floatround(fInflictorOrigin[1]))
				ewrite_coord(floatround(fInflictorOrigin[2]))
				emessage_end()
				
				return HAM_SUPERCEDE
			}
		}
	}	
	return HAM_IGNORED
}

stock getCvarAsFlags(const pcvar)
{
    	static sValue[27]   
    	get_pcvar_string(pcvar, sValue, sizeof(sValue)-1)   
    	return read_flags(sValue)
}
C++
Из этой темы https://dev-cs.ru/threads/16380/ я узнал причину падения сервера
Виной только этот плагин - в логах чистота, а в дебаге лишь это
#0 0xff91c0c8 in ?? ()
#0 0xff91c0c8 in ?? ()
Да я понимаю старый код и всё такое,но здесь именно есть всё то, что мне нужно помимо остальных аналогов - броня забирается абсолютно во всех случаях,так как и положено без какого либо умножения, и со всеми флагами DMG_....

Прошу помощи в исправлении
Или, если кто знает свежий вариант плагина - то подскажите,просто ещё не встречал
 

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

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