Корекция в re_vampire

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1319
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 245 пъти
Получена благодарност: 43 пъти

Корекция в re_vampire

Мнение от cgozzie » 12 Мар 2023, 20:48

1 корекция за момента,сега HP_MAX 150.0 тук си го настройваш до колко да стига.В играта влизам и съм с 110 и почваш да дигаш до 150.Искам още с влизането да дава 150 и без да се дава повече от това.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <reapi>

//#define FFA_MODE 			// Поддержка CSDM FFA.
#define HP_BODY 10.0 			// Кол-во hp за убийство.
#define HP_HS 15.0 			// Кол-во hp за убийство в голову.
#define HP_MAX 150.0 			// Максимальное Кол-во hp. (Выше этого значения hp прибавлять не будет)
#define KILL_SOUND 			// Звук при убийстве противника.
#define HUD_MESSAGE 			// HUD Сообщение о прибавке hp. (Если у игрока hp = HP_MAX то сообщения не будет)
#define SCREEN_FADE 			// Мерцание экрана при убийстве. (Если игрок слепой то мерцать не будет)
#define FLAG_ACCESS ADMIN_LEVEL_H	// Выдавать только указанным флагам. Можно выдавать сразу нескольким (ADMIN_BAN|ADMIN_LEVEL_H) Если не нужно то закомментируйте.
//#define BLOCK_MAPS 			// Блокировка вампира на определённых картах. Создайте фаил vampire_block_maps.ini и запишите туда карты. (Блокировка накладывается только на выдачу HP и сообщение! Остальные функции плагина будут работать без изменений)

#if defined SCREEN_FADE
new g_MsgScreenFade
#endif

#if defined BLOCK_MAPS
new bool:gBlockMaps
public plugin_precache()
{
	if (IsBlockMap())
	{
		gBlockMaps = true
		return
	}
}
#endif

public plugin_init()
{
	register_plugin("RE Vampire", "1.0.7", "MakapoH, AcE, REVO")
	RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", true)

	#if defined SCREEN_FADE
	g_MsgScreenFade = get_user_msgid("ScreenFade")
	#endif
}

public CBasePlayer_Killed_Post(const victim, killer, iGib)
{
	if (!is_user_connected(killer))
		return

	if (victim == killer || get_member(victim, m_bKilledByBomb))
		return

	#if !defined FFA_MODE
	if (get_member(victim, m_iTeam) == get_member(killer, m_iTeam))
		return
	#endif

	#if defined FLAG_ACCESS
	if (!(get_user_flags(killer) & FLAG_ACCESS))
		return
	#endif

	#if defined BLOCK_MAPS
	if (gBlockMaps)
	{
	#endif
		static Float:killer_HP, Float:TempHP
		killer_HP = get_entvar(killer, var_health)
		TempHP = get_member(victim, m_bHeadshotKilled) ? HP_HS : HP_BODY

		if(TempHP == HP_HS)
		{
			rg_give_item(killer, "weapon_hegrenade")
		}

		#if defined HUD_MESSAGE
		if (killer_HP < HP_MAX)
		{
			static SyncHudMsg
			if (!SyncHudMsg) SyncHudMsg = CreateHudSyncObj()
			set_hudmessage(0, 255, 0, 0.87, 0.8, 0, 6.0, 2.0)
			ShowSyncHudMsg(killer, SyncHudMsg, "Added +%.0f HP", TempHP)
		}
		#endif

		set_entvar(killer, var_health, ((killer_HP += TempHP) > HP_MAX) ? HP_MAX : killer_HP)
	#if defined BLOCK_MAPS
	}
	#endif

	#if defined KILL_SOUND
	client_cmd(killer, "spk buttons/bell1")
	#endif

	#if defined SCREEN_FADE
	if (get_gametime() >= Float:get_member(killer, m_blindStartTime) + Float:get_member(killer, m_blindFadeTime))
	{
		message_begin(MSG_ONE, g_MsgScreenFade, .player = killer)
		write_short(1<<10); write_short(1<<10); write_short(0x0000); write_byte(0)
		write_byte(0); write_byte(200); write_byte(75); message_end()
	}
	#endif
}

#if defined BLOCK_MAPS
stock IsBlockMap()
{
	new got_line, line_num, len
	new cfgdir[400], cfgpath[400], mapname[40], txt[400]
	get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
	rh_get_mapname(mapname, 40 -1)
	format(cfgpath, 400, "%s/vampire_block_maps.ini", cfgdir)
	if (file_exists(cfgpath))
	{
		got_line = read_file(cfgpath, line_num, txt, 400 -1, len)
		while(got_line > 0)
		{
			if (!strcmp(txt, mapname))
				return 0
			line_num ++
			got_line = read_file(cfgpath, line_num, txt, 400 -1, len)
		}
	}
	return 1
}
#endif
Изображение

Аватар
Midnight1337
Извън линия
Foreigner
Foreigner
Мнения: 72
Регистриран на: 15 Яну 2019, 00:53
Местоположение: Macedonia
Се отблагодари: 5 пъти
Получена благодарност: 21 пъти
Обратна връзка:

Re: Корекция в re_vampire

Мнение от Midnight1337 » 12 Мар 2023, 23:01

If i understand right, you want when player connect to have 150hp by default instead of 100? if yes here you go

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <reapi>

//#define FFA_MODE 			// Поддержка CSDM FFA.
#define HP_BODY 10.0 			// Кол-во hp за убийство.
#define HP_HS 15.0 			// Кол-во hp за убийство в голову.
#define HP_MAX 150.0 			// Максимальное Кол-во hp. (Выше этого значения hp прибавлять не будет)
#define KILL_SOUND 			// Звук при убийстве противника.
#define HUD_MESSAGE 			// HUD Сообщение о прибавке hp. (Если у игрока hp = HP_MAX то сообщения не будет)
#define SCREEN_FADE 			// Мерцание экрана при убийстве. (Если игрок слепой то мерцать не будет)
#define FLAG_ACCESS ADMIN_LEVEL_H	// Выдавать только указанным флагам. Можно выдавать сразу нескольким (ADMIN_BAN|ADMIN_LEVEL_H) Если не нужно то закомментируйте.
//#define BLOCK_MAPS 			// Блокировка вампира на определённых картах. Создайте фаил vampire_block_maps.ini и запишите туда карты. (Блокировка накладывается только на выдачу HP и сообщение! Остальные функции плагина будут работать без изменений)

#if defined SCREEN_FADE
new g_MsgScreenFade
#endif

#if defined BLOCK_MAPS
new bool:gBlockMaps
public plugin_precache()
{
	if (IsBlockMap())
	{
		gBlockMaps = true
		return
	}
}
#endif

public plugin_init()
{
	register_plugin("RE Vampire", "1.0.7", "MakapoH, AcE, REVO")
	RegisterHookChain(RG_CBasePlayer_Spawn, "@CBasePlayer_Spawn_Post", .post = true);
	RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", true)

	#if defined SCREEN_FADE
	g_MsgScreenFade = get_user_msgid("ScreenFade")
	#endif
}

@CBasePlayer_Spawn_Post(const pPlayer) {
	if(!is_user_alive(pPlayer) || !get_user_flags(pPlayer) & FLAG_ACCESS)
		return

	set_entvar(pPlayer, var_health, HP_MAX)
}

public CBasePlayer_Killed_Post(const victim, killer, iGib)
{
	if (!is_user_connected(killer))
		return

	if (victim == killer || get_member(victim, m_bKilledByBomb))
		return

	#if !defined FFA_MODE
	if (get_member(victim, m_iTeam) == get_member(killer, m_iTeam))
		return
	#endif

	#if defined FLAG_ACCESS
	if (!(get_user_flags(killer) & FLAG_ACCESS))
		return
	#endif

	#if defined BLOCK_MAPS
	if (gBlockMaps)
	{
	#endif
		static Float:killer_HP, Float:TempHP
		killer_HP = get_entvar(killer, var_health)
		TempHP = get_member(victim, m_bHeadshotKilled) ? HP_HS : HP_BODY

		if(TempHP == HP_HS)
		{
			rg_give_item(killer, "weapon_hegrenade")
		}

		#if defined HUD_MESSAGE
		if (killer_HP < HP_MAX)
		{
			static SyncHudMsg
			if (!SyncHudMsg) SyncHudMsg = CreateHudSyncObj()
			set_hudmessage(0, 255, 0, 0.87, 0.8, 0, 6.0, 2.0)
			ShowSyncHudMsg(killer, SyncHudMsg, "Added +%.0f HP", TempHP)
		}
		#endif

		set_entvar(killer, var_health, ((killer_HP += TempHP) > HP_MAX) ? HP_MAX : killer_HP)
	#if defined BLOCK_MAPS
	}
	#endif

	#if defined KILL_SOUND
	client_cmd(killer, "spk buttons/bell1")
	#endif

	#if defined SCREEN_FADE
	if (get_gametime() >= Float:get_member(killer, m_blindStartTime) + Float:get_member(killer, m_blindFadeTime))
	{
		message_begin(MSG_ONE, g_MsgScreenFade, .player = killer)
		write_short(1<<10); write_short(1<<10); write_short(0x0000); write_byte(0)
		write_byte(0); write_byte(200); write_byte(75); message_end()
	}
	#endif
}

#if defined BLOCK_MAPS
stock IsBlockMap()
{
	new got_line, line_num, len
	new cfgdir[400], cfgpath[400], mapname[40], txt[400]
	get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
	rh_get_mapname(mapname, 40 -1)
	format(cfgpath, 400, "%s/vampire_block_maps.ini", cfgdir)
	if (file_exists(cfgpath))
	{
		got_line = read_file(cfgpath, line_num, txt, 400 -1, len)
		while(got_line > 0)
		{
			if (!strcmp(txt, mapname))
				return 0
			line_num ++
			got_line = read_file(cfgpath, line_num, txt, 400 -1, len)
		}
	}
	return 1
}
#endif
Изображение

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1319
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 245 пъти
Получена благодарност: 43 пъти

Re: Корекция в re_vampire

Мнение от cgozzie » 12 Мар 2023, 23:22

Не заповядвам ако така е прозвучало ако може да се отстрани грешката при компилиране тва помолих... :coffee:

Код за потвърждение: Избери целия код

//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// re_vampire.sma
//
// E:\amxmodx-1.9.0 Windows\addons\amxmodx\scripting\re_vampire.sma(42) : warnin
g 213: tag mismatch
// Header size:            772 bytes
// Code size:             2912 bytes
// Data size:             1128 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   21196 bytes
//
// 1 Warning.
// Done.
//
// Compilation Time: 0.23 sec
// ----------------------------------------

Press enter to exit ...
Последно промяна от cgozzie на 13 Мар 2023, 09:45, променено общо 2 пъти.
Изображение

Аватар
EMOTO2.COM
Извън линия
Потребител
Потребител
Мнения: 345
Регистриран на: 11 Яну 2018, 17:02
Се отблагодари: 26 пъти
Получена благодарност: 31 пъти
Обратна връзка:

Re: Корекция в re_vampire

Мнение от EMOTO2.COM » 13 Мар 2023, 04:11

Той македонския обича да ги пише с грешки :D
Реално това не е грешка защото плугина излиза при компилация...
Преди да заповядваш на хората, видя ли 42 ред от кода какво може да е объркано?
Присъедини се към най-доброто място за игра!
https://emoto2.com/

Аватар
Radeon
Извън линия
Потребител
Потребител
Мнения: 143
Регистриран на: 04 Апр 2021, 11:30
Се отблагодари: 2 пъти
Получена благодарност: 34 пъти
Обратна връзка:

Re: Корекция в re_vampire

Мнение от Radeon » 13 Мар 2023, 15:56

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <reapi>

//#define FFA_MODE 			// Поддержка CSDM FFA.
#define HP_BODY 10.0 			// Кол-во hp за убийство.
#define HP_HS 15.0 			// Кол-во hp за убийство в голову.
#define HP_MAX 150.0 			// Максимальное Кол-во hp. (Выше этого значения hp прибавлять не будет)
#define KILL_SOUND 			// Звук при убийстве противника.
#define HUD_MESSAGE 			// HUD Сообщение о прибавке hp. (Если у игрока hp = HP_MAX то сообщения не будет)
#define SCREEN_FADE 			// Мерцание экрана при убийстве. (Если игрок слепой то мерцать не будет)
#define FLAG_ACCESS ADMIN_LEVEL_H	// Выдавать только указанным флагам. Можно выдавать сразу нескольким (ADMIN_BAN|ADMIN_LEVEL_H) Если не нужно то закомментируйте.
//#define BLOCK_MAPS 			// Блокировка вампира на определённых картах. Создайте фаил vampire_block_maps.ini и запишите туда карты. (Блокировка накладывается только на выдачу HP и сообщение! Остальные функции плагина будут работать без изменений)

#if defined SCREEN_FADE
new g_MsgScreenFade
#endif

#if defined BLOCK_MAPS
new bool:gBlockMaps
public plugin_precache()
{
	if (IsBlockMap())
	{
		gBlockMaps = true
		return
	}
}
#endif

public plugin_init()
{
	register_plugin("RE Vampire", "1.0.7", "MakapoH, AcE, REVO")
	RegisterHookChain(RG_CBasePlayer_Spawn, "@CBasePlayer_Spawn_Post", .post = true);
	RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", true)

	#if defined SCREEN_FADE
	g_MsgScreenFade = get_user_msgid("ScreenFade")
	#endif
}

@CBasePlayer_Spawn_Post(const pPlayer) {
	if(!is_user_alive(pPlayer) || !(get_user_flags(pPlayer) & FLAG_ACCESS))
		return

	set_entvar(pPlayer, var_health, HP_MAX)
}

public CBasePlayer_Killed_Post(const victim, killer, iGib)
{
	if (!is_user_connected(killer))
		return

	if (victim == killer || get_member(victim, m_bKilledByBomb))
		return

	#if !defined FFA_MODE
	if (get_member(victim, m_iTeam) == get_member(killer, m_iTeam))
		return
	#endif

	#if defined FLAG_ACCESS
	if (!(get_user_flags(killer) & FLAG_ACCESS))
		return
	#endif

	#if defined BLOCK_MAPS
	if (gBlockMaps)
	{
	#endif
		static Float:killer_HP, Float:TempHP
		killer_HP = get_entvar(killer, var_health)
		TempHP = get_member(victim, m_bHeadshotKilled) ? HP_HS : HP_BODY

		if(TempHP == HP_HS)
		{
			rg_give_item(killer, "weapon_hegrenade")
		}

		#if defined HUD_MESSAGE
		if (killer_HP < HP_MAX)
		{
			static SyncHudMsg
			if (!SyncHudMsg) SyncHudMsg = CreateHudSyncObj()
			set_hudmessage(0, 255, 0, 0.87, 0.8, 0, 6.0, 2.0)
			ShowSyncHudMsg(killer, SyncHudMsg, "Added +%.0f HP", TempHP)
		}
		#endif

		set_entvar(killer, var_health, ((killer_HP += TempHP) > HP_MAX) ? HP_MAX : killer_HP)
	#if defined BLOCK_MAPS
	}
	#endif

	#if defined KILL_SOUND
	client_cmd(killer, "spk buttons/bell1")
	#endif

	#if defined SCREEN_FADE
	if (get_gametime() >= Float:get_member(killer, m_blindStartTime) + Float:get_member(killer, m_blindFadeTime))
	{
		message_begin(MSG_ONE, g_MsgScreenFade, .player = killer)
		write_short(1<<10); write_short(1<<10); write_short(0x0000); write_byte(0)
		write_byte(0); write_byte(200); write_byte(75); message_end()
	}
	#endif
}

#if defined BLOCK_MAPS
stock IsBlockMap()
{
	new got_line, line_num, len
	new cfgdir[400], cfgpath[400], mapname[40], txt[400]
	get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
	rh_get_mapname(mapname, 40 -1)
	format(cfgpath, 400, "%s/vampire_block_maps.ini", cfgdir)
	if (file_exists(cfgpath))
	{
		got_line = read_file(cfgpath, line_num, txt, 400 -1, len)
		while(got_line > 0)
		{
			if (!strcmp(txt, mapname))
				return 0
			line_num ++
			got_line = read_file(cfgpath, line_num, txt, 400 -1, len)
		}
	}
	return 1
}
#endif
Забравил е да сложи едни скобички човека.

Аватар
Midnight1337
Извън линия
Foreigner
Foreigner
Мнения: 72
Регистриран на: 15 Яну 2019, 00:53
Местоположение: Macedonia
Се отблагодари: 5 пъти
Получена благодарност: 21 пъти
Обратна връзка:

Re: Корекция в re_vampire

Мнение от Midnight1337 » 13 Мар 2023, 22:18

I wrote it in hurry, not even try to compile, thanks @Radeon
Изображение

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1319
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 245 пъти
Получена благодарност: 43 пъти

Re: Корекция в re_vampire

Мнение от cgozzie » 14 Мар 2023, 00:17

Radeon написа: 13 Мар 2023, 15:56

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <reapi>

//#define FFA_MODE 			// Поддержка CSDM FFA.
#define HP_BODY 10.0 			// Кол-во hp за убийство.
#define HP_HS 15.0 			// Кол-во hp за убийство в голову.
#define HP_MAX 150.0 			// Максимальное Кол-во hp. (Выше этого значения hp прибавлять не будет)
#define KILL_SOUND 			// Звук при убийстве противника.
#define HUD_MESSAGE 			// HUD Сообщение о прибавке hp. (Если у игрока hp = HP_MAX то сообщения не будет)
#define SCREEN_FADE 			// Мерцание экрана при убийстве. (Если игрок слепой то мерцать не будет)
#define FLAG_ACCESS ADMIN_LEVEL_H	// Выдавать только указанным флагам. Можно выдавать сразу нескольким (ADMIN_BAN|ADMIN_LEVEL_H) Если не нужно то закомментируйте.
//#define BLOCK_MAPS 			// Блокировка вампира на определённых картах. Создайте фаил vampire_block_maps.ini и запишите туда карты. (Блокировка накладывается только на выдачу HP и сообщение! Остальные функции плагина будут работать без изменений)

#if defined SCREEN_FADE
new g_MsgScreenFade
#endif

#if defined BLOCK_MAPS
new bool:gBlockMaps
public plugin_precache()
{
	if (IsBlockMap())
	{
		gBlockMaps = true
		return
	}
}
#endif

public plugin_init()
{
	register_plugin("RE Vampire", "1.0.7", "MakapoH, AcE, REVO")
	RegisterHookChain(RG_CBasePlayer_Spawn, "@CBasePlayer_Spawn_Post", .post = true);
	RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", true)

	#if defined SCREEN_FADE
	g_MsgScreenFade = get_user_msgid("ScreenFade")
	#endif
}

@CBasePlayer_Spawn_Post(const pPlayer) {
	if(!is_user_alive(pPlayer) || !(get_user_flags(pPlayer) & FLAG_ACCESS))
		return

	set_entvar(pPlayer, var_health, HP_MAX)
}

public CBasePlayer_Killed_Post(const victim, killer, iGib)
{
	if (!is_user_connected(killer))
		return

	if (victim == killer || get_member(victim, m_bKilledByBomb))
		return

	#if !defined FFA_MODE
	if (get_member(victim, m_iTeam) == get_member(killer, m_iTeam))
		return
	#endif

	#if defined FLAG_ACCESS
	if (!(get_user_flags(killer) & FLAG_ACCESS))
		return
	#endif

	#if defined BLOCK_MAPS
	if (gBlockMaps)
	{
	#endif
		static Float:killer_HP, Float:TempHP
		killer_HP = get_entvar(killer, var_health)
		TempHP = get_member(victim, m_bHeadshotKilled) ? HP_HS : HP_BODY

		if(TempHP == HP_HS)
		{
			rg_give_item(killer, "weapon_hegrenade")
		}

		#if defined HUD_MESSAGE
		if (killer_HP < HP_MAX)
		{
			static SyncHudMsg
			if (!SyncHudMsg) SyncHudMsg = CreateHudSyncObj()
			set_hudmessage(0, 255, 0, 0.87, 0.8, 0, 6.0, 2.0)
			ShowSyncHudMsg(killer, SyncHudMsg, "Added +%.0f HP", TempHP)
		}
		#endif

		set_entvar(killer, var_health, ((killer_HP += TempHP) > HP_MAX) ? HP_MAX : killer_HP)
	#if defined BLOCK_MAPS
	}
	#endif

	#if defined KILL_SOUND
	client_cmd(killer, "spk buttons/bell1")
	#endif

	#if defined SCREEN_FADE
	if (get_gametime() >= Float:get_member(killer, m_blindStartTime) + Float:get_member(killer, m_blindFadeTime))
	{
		message_begin(MSG_ONE, g_MsgScreenFade, .player = killer)
		write_short(1<<10); write_short(1<<10); write_short(0x0000); write_byte(0)
		write_byte(0); write_byte(200); write_byte(75); message_end()
	}
	#endif
}

#if defined BLOCK_MAPS
stock IsBlockMap()
{
	new got_line, line_num, len
	new cfgdir[400], cfgpath[400], mapname[40], txt[400]
	get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
	rh_get_mapname(mapname, 40 -1)
	format(cfgpath, 400, "%s/vampire_block_maps.ini", cfgdir)
	if (file_exists(cfgpath))
	{
		got_line = read_file(cfgpath, line_num, txt, 400 -1, len)
		while(got_line > 0)
		{
			if (!strcmp(txt, mapname))
				return 0
			line_num ++
			got_line = read_file(cfgpath, line_num, txt, 400 -1, len)
		}
	}
	return 1
}
#endif
Забравил е да сложи едни скобички човека.
Сега го тествах и пак си е в игра със 110 и дигаш до 150 незнам дали съм се изразил правилно,исках с влизането да им дава 150...Извинявам се ако нещо грешката е моя.. :dtm:
Изображение

Аватар
Radeon
Извън линия
Потребител
Потребител
Мнения: 143
Регистриран на: 04 Апр 2021, 11:30
Се отблагодари: 2 пъти
Получена благодарност: 34 пъти
Обратна връзка:

Re: Корекция в re_vampire

Мнение от Radeon » 14 Мар 2023, 10:44

Понеже не знаех дали не е repsawn сървър го направих така че на всяко прераждане на играча да започва с 150 хр .

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <reapi>
#include <hamsandwich>

//#define FFA_MODE 			// Поддержка CSDM FFA.
#define HP_BODY 10.0 			// Кол-во hp за убийство.
#define HP_HS 15.0 			// Кол-во hp за убийство в голову.
#define HP_MAX 150.0 			// Максимальное Кол-во hp. (Выше этого значения hp прибавлять не будет)
#define KILL_SOUND 			// Звук при убийстве противника.
#define HUD_MESSAGE 			// HUD Сообщение о прибавке hp. (Если у игрока hp = HP_MAX то сообщения не будет)
#define SCREEN_FADE 			// Мерцание экрана при убийстве. (Если игрок слепой то мерцать не будет)
#define FLAG_ACCESS ADMIN_LEVEL_H	// Выдавать только указанным флагам. Можно выдавать сразу нескольким (ADMIN_BAN|ADMIN_LEVEL_H) Если не нужно то закомментируйте.
//#define BLOCK_MAPS 			// Блокировка вампира на определённых картах. Создайте фаил vampire_block_maps.ini и запишите туда карты. (Блокировка накладывается только на выдачу HP и сообщение! Остальные функции плагина будут работать без изменений)

#if defined SCREEN_FADE
new g_MsgScreenFade
#endif

#if defined BLOCK_MAPS
new bool:gBlockMaps
public plugin_precache()
{
	if (IsBlockMap())
	{
		gBlockMaps = true
		return
	}
}
#endif

public plugin_init()
{
	register_plugin("RE Vampire", "1.0.7", "MakapoH, AcE, REVO")
	RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", true)
	RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1)

	#if defined SCREEN_FADE
	g_MsgScreenFade = get_user_msgid("ScreenFade")
	#endif
}

public OnPlayerSpawn(id)
{
	// Don't give hp if player is not connected or dead
	if(!is_user_connected(id) || !is_user_alive(id))
	{
		return
	}
	new Float:Healthplayer, Float:HealthAdd = 50.0
	get_entvar(id, var_health, Healthplayer)
	set_entvar(id, var_health, Healthplayer + HealthAdd)
}

public CBasePlayer_Killed_Post(const victim, killer, iGib)
{
	if (!is_user_connected(killer))
		return

	if (victim == killer || get_member(victim, m_bKilledByBomb))
		return

	#if !defined FFA_MODE
	if (get_member(victim, m_iTeam) == get_member(killer, m_iTeam))
		return
	#endif

	#if defined FLAG_ACCESS
	if (!(get_user_flags(killer) & FLAG_ACCESS))
		return
	#endif

	#if defined BLOCK_MAPS
	if (gBlockMaps)
	{
	#endif
		static Float:killer_HP, Float:TempHP
		killer_HP = get_entvar(killer, var_health)
		TempHP = get_member(victim, m_bHeadshotKilled) ? HP_HS : HP_BODY

		if(TempHP == HP_HS)
		{
			rg_give_item(killer, "weapon_hegrenade")
		}

		#if defined HUD_MESSAGE
		if (killer_HP < HP_MAX)
		{
			static SyncHudMsg
			if (!SyncHudMsg) SyncHudMsg = CreateHudSyncObj()
			set_hudmessage(0, 255, 0, 0.87, 0.8, 0, 6.0, 2.0)
			ShowSyncHudMsg(killer, SyncHudMsg, "Added +%.0f HP", TempHP)
		}
		#endif

		set_entvar(killer, var_health, ((killer_HP += TempHP) > HP_MAX) ? HP_MAX : killer_HP)
	#if defined BLOCK_MAPS
	}
	#endif

	#if defined KILL_SOUND
	client_cmd(killer, "spk buttons/bell1")
	#endif

	#if defined SCREEN_FADE
	if (get_gametime() >= Float:get_member(killer, m_blindStartTime) + Float:get_member(killer, m_blindFadeTime))
	{
		message_begin(MSG_ONE, g_MsgScreenFade, .player = killer)
		write_short(1<<10); write_short(1<<10); write_short(0x0000); write_byte(0)
		write_byte(0); write_byte(200); write_byte(75); message_end()
	}
	#endif
}

#if defined BLOCK_MAPS
stock IsBlockMap()
{
	new got_line, line_num, len
	new cfgdir[400], cfgpath[400], mapname[40], txt[400]
	get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
	rh_get_mapname(mapname, 40 -1)
	format(cfgpath, 400, "%s/vampire_block_maps.ini", cfgdir)
	if (file_exists(cfgpath))
	{
		got_line = read_file(cfgpath, line_num, txt, 400 -1, len)
		while(got_line > 0)
		{
			if (!strcmp(txt, mapname))
				return 0
			line_num ++
			got_line = read_file(cfgpath, line_num, txt, 400 -1, len)
		}
	}
	return 1
}
#endif

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1319
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 245 пъти
Получена благодарност: 43 пъти

Re: Корекция в re_vampire

Мнение от cgozzie » 14 Мар 2023, 12:09

Благодаря работи нека темата не се затваря мисля нещо да се добави но след няколко теста ще пиша.. :nicecode:
Изображение

Аватар
Huehue
Извън линия
Модератор
Модератор
Мнения: 352
Регистриран на: 16 Яну 2017, 23:42
Местоположение: София
Се отблагодари: 7 пъти
Получена благодарност: 171 пъти
Обратна връзка:

Re: Корекция в re_vampire

Мнение от Huehue » 16 Мар 2023, 21:41

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <reapi>

//#define FFA_MODE 			// Поддержка CSDM FFA.
#define HP_BODY 10.0 			// Кол-во hp за убийство.
#define HP_HS 15.0 			// Кол-во hp за убийство в голову.
#define HP_MAX 150.0 			// Максимальное Кол-во hp. (Выше этого значения hp прибавлять не будет)
#define KILL_SOUND 			// Звук при убийстве противника.
#define HUD_MESSAGE 			// HUD Сообщение о прибавке hp. (Если у игрока hp = HP_MAX то сообщения не будет)
#define SCREEN_FADE 			// Мерцание экрана при убийстве. (Если игрок слепой то мерцать не будет)
#define FLAG_ACCESS ADMIN_LEVEL_H	// Выдавать только указанным флагам. Можно выдавать сразу нескольким (ADMIN_BAN|ADMIN_LEVEL_H) Если не нужно то закомментируйте.
//#define BLOCK_MAPS 			// Блокировка вампира на определённых картах. Создайте фаил vampire_block_maps.ini и запишите туда карты. (Блокировка накладывается только на выдачу HP и сообщение! Остальные функции плагина будут работать без изменений)

#if defined SCREEN_FADE
new g_MsgScreenFade
#endif

#if defined BLOCK_MAPS
new bool:gBlockMaps
public plugin_precache()
{
	if (IsBlockMap())
	{
		gBlockMaps = true
		return
	}
}
#endif

public plugin_init()
{
	register_plugin("RE Vampire", "1.0.7", "MakapoH, AcE, REVO")
	RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", true)
	RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn_Post", true)

	#if defined SCREEN_FADE
	g_MsgScreenFade = get_user_msgid("ScreenFade")
	#endif
}

public CBasePlayer_Spawn_Post(id)
{
	if (is_user_alive(id))
	{
		set_entvar(id, var_health, HP_MAX)
	}
}

public CBasePlayer_Killed_Post(const victim, killer, iGib)
{
	if (!is_user_connected(killer))
		return

	if (victim == killer || get_member(victim, m_bKilledByBomb))
		return

	#if !defined FFA_MODE
	if (get_member(victim, m_iTeam) == get_member(killer, m_iTeam))
		return
	#endif

	#if defined FLAG_ACCESS
	if (!(get_user_flags(killer) & FLAG_ACCESS))
		return
	#endif

	#if defined BLOCK_MAPS
	if (gBlockMaps)
	{
	#endif
		static Float:killer_HP, Float:TempHP
		killer_HP = get_entvar(killer, var_health)
		TempHP = get_member(victim, m_bHeadshotKilled) ? HP_HS : HP_BODY

		if(TempHP == HP_HS)
		{
			rg_give_item(killer, "weapon_hegrenade")
		}

		#if defined HUD_MESSAGE
		if (killer_HP < HP_MAX)
		{
			static SyncHudMsg
			if (!SyncHudMsg) SyncHudMsg = CreateHudSyncObj()
			set_hudmessage(0, 255, 0, 0.87, 0.8, 0, 6.0, 2.0)
			ShowSyncHudMsg(killer, SyncHudMsg, "Added +%.0f HP", TempHP)
		}
		#endif

		set_entvar(killer, var_health, ((killer_HP += TempHP) > HP_MAX) ? HP_MAX : killer_HP)
	#if defined BLOCK_MAPS
	}
	#endif

	#if defined KILL_SOUND
	client_cmd(killer, "spk buttons/bell1")
	#endif

	#if defined SCREEN_FADE
	if (get_gametime() >= Float:get_member(killer, m_blindStartTime) + Float:get_member(killer, m_blindFadeTime))
	{
		message_begin(MSG_ONE, g_MsgScreenFade, .player = killer)
		write_short(1<<10); write_short(1<<10); write_short(0x0000); write_byte(0)
		write_byte(0); write_byte(200); write_byte(75); message_end()
	}
	#endif
}

#if defined BLOCK_MAPS
stock IsBlockMap()
{
	new got_line, line_num, len
	new cfgdir[400], cfgpath[400], mapname[40], txt[400]
	get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
	rh_get_mapname(mapname, 40 -1)
	format(cfgpath, 400, "%s/vampire_block_maps.ini", cfgdir)
	if (file_exists(cfgpath))
	{
		got_line = read_file(cfgpath, line_num, txt, 400 -1, len)
		while(got_line > 0)
		{
			if (!strcmp(txt, mapname))
				return 0
			line_num ++
			got_line = read_file(cfgpath, line_num, txt, 400 -1, len)
		}
	}
	return 1
}
#endif
Да затварям ли темата?
LOYAL TO THE OATH OF OMERTА̀

Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..

My GitHub Profile
GitHub

My AMXX Includes Collection
AMXX Include Libraries

My Steam Profile (from SteamDB)
  • Value: 4179€
  • Games owned: 1855
  • Games played: 754 (40%)
  • Hours on record: 4,994.9h

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 18 госта