Преработка на съобщение от Hud на Dhud

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Dachoni
Извън линия
Потребител
Потребител
Мнения: 157
Регистриран на: 23 Ное 2017, 16:48
Се отблагодари: 95 пъти
Получена благодарност: 6 пъти

Преработка на съобщение от Hud на Dhud

Мнение от Dachoni » 27 Мар 2020, 22:12

Здравейте,
ако е някой има свободно време може ли да промени съобщенията, които се показват да са чрез DHUD а не с HUD.
Благодаря Ви!

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

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <csstats>
#include <hamsandwich>

#define PLUGIN      "Score Admin Info"
#define VERSION     "1.1"
#define AUTHOR      "vato loco [GE-S]"
#define PLUGIN_CVAR "score_admin_info"

#define MAX_PLAYERS       32 + 1
#define MAX_NAME_LENGTH   31 + 1
#define MAX_CVARS         6
#define MAX_CHACHE_CVARS  3
#define MSG_DELAY         90.0
#define ACCESS_HIDE       ADMIN_LEVEL_H

enum { KILLS = 0, DEATH, SCORE_TYPES }
enum { RED = 0, GREEN, BLUE, MSG_COLORS }
enum { POSITIVE = 0, STANDARD ,NEGATIVE, MSG_TYPES }

new g_Blank[] = ""
new g_ClassName[] = "sai_info"
new Float:g_fLastMsg
new Float:g_fMsgDelay = MSG_DELAY
new bool:g_bShowScore[MAX_PLAYERS]
new bool:g_bIsAdmin[MAX_PLAYERS]
new bool:g_bIsAlive[MAX_PLAYERS]
new bool:g_bIsConnected[MAX_PLAYERS]
new bool:g_bIsBot[MAX_PLAYERS]
new g_iRank[MAX_PLAYERS]
new g_iPlayerName[MAX_PLAYERS][MAX_NAME_LENGTH]
new g_iScore[MAX_PLAYERS][SCORE_TYPES]
new g_pCvar[MAX_CVARS]
new g_CachepCvar[MAX_CHACHE_CVARS]
new g_iColor[MSG_TYPES][MSG_COLORS]
new g_SyncScoreInfo
new g_iMaxStats
new g_iMaxPlayers 

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar(PLUGIN_CVAR, VERSION, FCVAR_SERVER|FCVAR_SPONLY, 0.0)
	
	register_think(g_ClassName,"ForwardThink")
	
	register_event("HLTV", "ev_RoundStart", "a", "1=0", "2=0")
	register_event("ScoreInfo", "ev_ScoreInfo", "a")
	
	RegisterHam(Ham_Spawn, "player", "client_alive", 1)
	RegisterHam(Ham_Killed, "player", "client_alive", 1)
	
	register_clcmd("say /hudscore", "client_showscore")
	register_clcmd("say .hudscore", "client_showscore")
	register_clcmd("say /ms", "client_showscore")
	register_clcmd("say .ms", "client_showscore")
	register_clcmd("say_team /hudscore", "client_showscore")
	register_clcmd("say_team .hudscore", "client_showscore")
	register_clcmd("say_team /ms", "client_showscore")
	register_clcmd("say_team .ms", "client_showscore")
	register_clcmd("say /hideme", "client_hide", ACCESS_HIDE)
	register_clcmd("say .hideme", "client_hide", ACCESS_HIDE)
	register_clcmd("say_team /hideme", "client_hide", ACCESS_HIDE)
	register_clcmd("say_team .hideme", "client_hide", ACCESS_HIDE)
	
	g_pCvar[0] = register_cvar("sai_enabled", "1")
	g_pCvar[1] = register_cvar("sai_show_admin", "1")
	g_pCvar[2] = register_cvar("sai_on_join", "1")
	g_pCvar[3] = register_cvar("sai_positive_color", "0 160 0")
	g_pCvar[4] = register_cvar("sai_standard_color", "255 255 0")
	g_pCvar[5] = register_cvar("sai_negative_color", "255 0 0")
	
	g_SyncScoreInfo = CreateHudSyncObj()
	g_iMaxPlayers = get_maxplayers()
	
	new iEnt = create_entity("info_target")
	entity_set_string(iEnt, EV_SZ_classname, g_ClassName)
	entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 1.0)
}

public plugin_cfg()
{
	set_task(0.5, "ev_RoundStart")
}

public client_putinserver(id)
{
	g_bIsConnected[id] = true
	g_bIsBot[id] = bool:is_user_bot(id)
	if(!g_bIsBot[id])
	{
		g_bShowScore[id] = bool:g_CachepCvar[2]
		g_bIsAdmin[id] = bool:is_user_admin(id)
	}
	get_user_name(id, g_iPlayerName[id], 31)
}

public client_disconnect(id)
{
	g_bIsAlive[id] = false
	g_bIsConnected[id] = false
	g_bShowScore[id] = false
	g_bIsAdmin[id] = false
	g_bIsBot[id] = false
}

public client_infochanged(id)
{ 
	get_user_info(id, "name", g_iPlayerName[id], 31)
}

public client_showscore(id)
{
	g_bShowScore[id] = !g_bShowScore[id]
	client_print(id, print_center, g_bShowScore[id] ? "Show Score Enabled" : "Show Score Disabled")
}

public client_hide(id, lvl, cid)
{
	if(!cmd_access(id, lvl, cid, 1))
	{
		return PLUGIN_HANDLED
	}
	g_bIsAdmin[id] = !g_bIsAdmin[id]
	client_print(id, print_center, g_bIsAdmin[id] ? "Hide Modus Disabled" : "Hide Modus Enabled")
	
	PLUGIN_CONTINUE
}

public client_alive(id)
{
	g_bIsAlive[id] = bool:is_user_alive(id)
}

public ev_RoundStart()
{
	g_CachepCvar[0] = get_pcvar_num(g_pCvar[0])
	g_CachepCvar[1] = get_pcvar_num(g_pCvar[1])
	g_CachepCvar[2] = get_pcvar_num(g_pCvar[2])
	
	GetCvarColor(g_pCvar[3], g_iColor[POSITIVE][RED], g_iColor[POSITIVE][GREEN], g_iColor[POSITIVE][BLUE])
	GetCvarColor(g_pCvar[4], g_iColor[STANDARD][RED], g_iColor[STANDARD][GREEN], g_iColor[STANDARD][BLUE])
	GetCvarColor(g_pCvar[5], g_iColor[NEGATIVE][RED], g_iColor[NEGATIVE][GREEN], g_iColor[NEGATIVE][BLUE])
	
	new stats[8], bodyhits[8], id
	g_iMaxStats = get_statsnum()
	
	for(id = 1; id <= g_iMaxPlayers; id++)
	{
		if(g_bIsConnected[id])
		{
			g_iRank[id] = get_user_stats(id, stats, bodyhits)
		}
	}
}

public ev_ScoreInfo()
{
	g_iScore[read_data(1)][KILLS] = read_data(2)
	g_iScore[read_data(1)][DEATH] = read_data(3)
}

public ForwardThink(iEnt)  
{
	if(g_CachepCvar[0])
	{
		static id, target, specmode
		
		for(id = 1; id <= g_iMaxPlayers; id++) 
		{
			if(g_bIsConnected[id])
			{
				specmode = entity_get_int(id, EV_INT_iuser1) 
				
				if(g_bIsAlive[id])
				{
					if(g_bShowScore[id])
					{
						ShowPlayerInfo(id, g_iScore[id][KILLS], g_iScore[id][DEATH], 0.86, g_Blank, g_Blank, g_iRank[id])
					}
				}
				else if(specmode == 2 || specmode == 4) 
				{
					target = entity_get_int(id, EV_INT_iuser2) 
					if(target && target != id)
					{
						ShowPlayerInfo(id, g_iScore[target][KILLS], g_iScore[target][DEATH], 0.81, g_CachepCvar[1] ? g_bIsAdmin[target] ? "| Status: VIP |" : g_Blank : g_Blank, g_iPlayerName[target], g_iRank[target])
					}
				}
			}
		}
	}
	entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1)
} 

ShowPlayerInfo(id, iFrags, iDeath, Float:yPos, sAdmin[], sName[], iRank)  
{
	if(!g_bIsBot[id])
	{
		static Float:fEff, Float:fGameTime, r, g, b
		fGameTime = get_gametime()
		fEff = (100.0 * float(iFrags) / float(iFrags + iDeath))
		
		if(iFrags > iDeath)
		{ 
			r = g_iColor[POSITIVE][RED]
			g = g_iColor[POSITIVE][GREEN]
			b = g_iColor[POSITIVE][BLUE]
		}
		else if(iFrags == iDeath)
		{
			r = g_iColor[STANDARD][RED]
			g = g_iColor[STANDARD][GREEN] 
			b = g_iColor[STANDARD][BLUE]
		}
		else if(iFrags < iDeath)
		{
			r = g_iColor[NEGATIVE][RED]
			g = g_iColor[NEGATIVE][GREEN]
			b = g_iColor[NEGATIVE][BLUE]
		}
		if(g_fLastMsg + g_fMsgDelay <= fGameTime)
		{
			client_print(id, print_chat, g_bShowScore[id] ? "[prefiks] Type In Chat /hudscore To Disable Your Score In Hud." : "[cs-adventure.eu] Type In Chat /hudscore To Enable Your Score In Hud.")
			g_fLastMsg = fGameTime
		}
		set_hudmessage(r, g, b, 0.02, 0.2, 0, 0.1, 1.0, 0.1, 0.1, -1)
		ShowSyncHudMsg(id, g_SyncScoreInfo, "%s^nKills: %d ^nEff: %0.2f%% ^nDeath: %d ^n%sRank: %d of %d", sAdmin, iFrags, fEff, iDeath, sName, iRank, g_iMaxStats)
	}
}

GetCvarColor(cvar, &r, &g, &b)  
{
	static colors[16], piece[5]
	get_pcvar_string(cvar, colors, 15)
	
	strbreak(colors, piece, 4, colors, 15)
	r = str_to_num(piece)
	
	strbreak(colors, piece, 4, colors, 15)
	g = str_to_num(piece)
	b = str_to_num(colors)
}




Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Преработка на съобщение от Hud на Dhud

Мнение от OciXCrom » 27 Мар 2020, 22:30

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

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <csstats>
#include <hamsandwich>

#if AMXX_VERSION_NUM < 183
	#include <dhudmessage>
#endif

#define PLUGIN      "Score Admin Info"
#define VERSION     "1.1"
#define AUTHOR      "vato loco [GE-S]"
#define PLUGIN_CVAR "score_admin_info"

#define MAX_PLAYERS       32 + 1
#define MAX_NAME_LENGTH   31 + 1
#define MAX_CVARS         6
#define MAX_CHACHE_CVARS  3
#define MSG_DELAY         90.0
#define ACCESS_HIDE       ADMIN_LEVEL_H

enum { KILLS = 0, DEATH, SCORE_TYPES }
enum { RED = 0, GREEN, BLUE, MSG_COLORS }
enum { POSITIVE = 0, STANDARD ,NEGATIVE, MSG_TYPES }

new g_Blank[] = ""
new g_ClassName[] = "sai_info"
new Float:g_fLastMsg
new Float:g_fMsgDelay = MSG_DELAY
new bool:g_bShowScore[MAX_PLAYERS]
new bool:g_bIsAdmin[MAX_PLAYERS]
new bool:g_bIsAlive[MAX_PLAYERS]
new bool:g_bIsConnected[MAX_PLAYERS]
new bool:g_bIsBot[MAX_PLAYERS]
new g_iRank[MAX_PLAYERS]
new g_iPlayerName[MAX_PLAYERS][MAX_NAME_LENGTH]
new g_iScore[MAX_PLAYERS][SCORE_TYPES]
new g_pCvar[MAX_CVARS]
new g_CachepCvar[MAX_CHACHE_CVARS]
new g_iColor[MSG_TYPES][MSG_COLORS]
new g_iMaxStats
new g_iMaxPlayers

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar(PLUGIN_CVAR, VERSION, FCVAR_SERVER|FCVAR_SPONLY, 0.0)

	register_think(g_ClassName,"ForwardThink")

	register_event("HLTV", "ev_RoundStart", "a", "1=0", "2=0")
	register_event("ScoreInfo", "ev_ScoreInfo", "a")

	RegisterHam(Ham_Spawn, "player", "client_alive", 1)
	RegisterHam(Ham_Killed, "player", "client_alive", 1)

	register_clcmd("say /hudscore", "client_showscore")
	register_clcmd("say .hudscore", "client_showscore")
	register_clcmd("say /ms", "client_showscore")
	register_clcmd("say .ms", "client_showscore")
	register_clcmd("say_team /hudscore", "client_showscore")
	register_clcmd("say_team .hudscore", "client_showscore")
	register_clcmd("say_team /ms", "client_showscore")
	register_clcmd("say_team .ms", "client_showscore")
	register_clcmd("say /hideme", "client_hide", ACCESS_HIDE)
	register_clcmd("say .hideme", "client_hide", ACCESS_HIDE)
	register_clcmd("say_team /hideme", "client_hide", ACCESS_HIDE)
	register_clcmd("say_team .hideme", "client_hide", ACCESS_HIDE)

	g_pCvar[0] = register_cvar("sai_enabled", "1")
	g_pCvar[1] = register_cvar("sai_show_admin", "1")
	g_pCvar[2] = register_cvar("sai_on_join", "1")
	g_pCvar[3] = register_cvar("sai_positive_color", "0 160 0")
	g_pCvar[4] = register_cvar("sai_standard_color", "255 255 0")
	g_pCvar[5] = register_cvar("sai_negative_color", "255 0 0")

	g_iMaxPlayers = get_maxplayers()

	new iEnt = create_entity("info_target")
	entity_set_string(iEnt, EV_SZ_classname, g_ClassName)
	entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 1.0)
}

public plugin_cfg()
{
	set_task(0.5, "ev_RoundStart")
}

public client_putinserver(id)
{
	g_bIsConnected[id] = true
	g_bIsBot[id] = bool:is_user_bot(id)
	if(!g_bIsBot[id])
	{
		g_bShowScore[id] = bool:g_CachepCvar[2]
		g_bIsAdmin[id] = bool:is_user_admin(id)
	}
	get_user_name(id, g_iPlayerName[id], 31)
}

public client_disconnect(id)
{
	g_bIsAlive[id] = false
	g_bIsConnected[id] = false
	g_bShowScore[id] = false
	g_bIsAdmin[id] = false
	g_bIsBot[id] = false
}

public client_infochanged(id)
{
	get_user_info(id, "name", g_iPlayerName[id], 31)
}

public client_showscore(id)
{
	g_bShowScore[id] = !g_bShowScore[id]
	client_print(id, print_center, g_bShowScore[id] ? "Show Score Enabled" : "Show Score Disabled")
}

public client_hide(id, lvl, cid)
{
	if(!cmd_access(id, lvl, cid, 1))
	{
		return PLUGIN_HANDLED
	}
	g_bIsAdmin[id] = !g_bIsAdmin[id]
	client_print(id, print_center, g_bIsAdmin[id] ? "Hide Modus Disabled" : "Hide Modus Enabled")

	PLUGIN_CONTINUE
}

public client_alive(id)
{
	g_bIsAlive[id] = bool:is_user_alive(id)
}

public ev_RoundStart()
{
	g_CachepCvar[0] = get_pcvar_num(g_pCvar[0])
	g_CachepCvar[1] = get_pcvar_num(g_pCvar[1])
	g_CachepCvar[2] = get_pcvar_num(g_pCvar[2])

	GetCvarColor(g_pCvar[3], g_iColor[POSITIVE][RED], g_iColor[POSITIVE][GREEN], g_iColor[POSITIVE][BLUE])
	GetCvarColor(g_pCvar[4], g_iColor[STANDARD][RED], g_iColor[STANDARD][GREEN], g_iColor[STANDARD][BLUE])
	GetCvarColor(g_pCvar[5], g_iColor[NEGATIVE][RED], g_iColor[NEGATIVE][GREEN], g_iColor[NEGATIVE][BLUE])

	new stats[8], bodyhits[8], id
	g_iMaxStats = get_statsnum()

	for(id = 1; id <= g_iMaxPlayers; id++)
	{
		if(g_bIsConnected[id])
		{
			g_iRank[id] = get_user_stats(id, stats, bodyhits)
		}
	}
}

public ev_ScoreInfo()
{
	g_iScore[read_data(1)][KILLS] = read_data(2)
	g_iScore[read_data(1)][DEATH] = read_data(3)
}

public ForwardThink(iEnt)
{
	if(g_CachepCvar[0])
	{
		static id, target, specmode

		for(id = 1; id <= g_iMaxPlayers; id++)
		{
			if(g_bIsConnected[id])
			{
				specmode = entity_get_int(id, EV_INT_iuser1)

				if(g_bIsAlive[id])
				{
					if(g_bShowScore[id])
					{
						ShowPlayerInfo(id, g_iScore[id][KILLS], g_iScore[id][DEATH], 0.86, g_Blank, g_Blank, g_iRank[id])
					}
				}
				else if(specmode == 2 || specmode == 4)
				{
					target = entity_get_int(id, EV_INT_iuser2)
					if(target && target != id)
					{
						ShowPlayerInfo(id, g_iScore[target][KILLS], g_iScore[target][DEATH], 0.81, g_CachepCvar[1] ? g_bIsAdmin[target] ? "| Status: VIP |" : g_Blank : g_Blank, g_iPlayerName[target], g_iRank[target])
					}
				}
			}
		}
	}
	entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1)
}

ShowPlayerInfo(id, iFrags, iDeath, Float:yPos, sAdmin[], sName[], iRank)
{
	if(!g_bIsBot[id])
	{
		static Float:fEff, Float:fGameTime, r, g, b
		fGameTime = get_gametime()
		fEff = (100.0 * float(iFrags) / float(iFrags + iDeath))

		if(iFrags > iDeath)
		{
			r = g_iColor[POSITIVE][RED]
			g = g_iColor[POSITIVE][GREEN]
			b = g_iColor[POSITIVE][BLUE]
		}
		else if(iFrags == iDeath)
		{
			r = g_iColor[STANDARD][RED]
			g = g_iColor[STANDARD][GREEN]
			b = g_iColor[STANDARD][BLUE]
		}
		else if(iFrags < iDeath)
		{
			r = g_iColor[NEGATIVE][RED]
			g = g_iColor[NEGATIVE][GREEN]
			b = g_iColor[NEGATIVE][BLUE]
		}
		if(g_fLastMsg + g_fMsgDelay <= fGameTime)
		{
			client_print(id, print_chat, g_bShowScore[id] ? "[prefiks] Type In Chat /hudscore To Disable Your Score In Hud." : "[cs-adventure.eu] Type In Chat /hudscore To Enable Your Score In Hud.")
			g_fLastMsg = fGameTime
		}
		set_dhudmessage(r, g, b, 0.02, 0.2, 0, 0.1, 1.0, 0.1, 0.1, -1)
		show_dhudmessage(id, "%s^nKills: %d ^nEff: %0.2f%% ^nDeath: %d ^n%sRank: %d of %d", sAdmin, iFrags, fEff, iDeath, sName, iRank, g_iMaxStats)
	}
}

GetCvarColor(cvar, &r, &g, &b)
{
	static colors[16], piece[5]
	get_pcvar_string(cvar, colors, 15)

	strbreak(colors, piece, 4, colors, 15)
	r = str_to_num(piece)

	strbreak(colors, piece, 4, colors, 15)
	g = str_to_num(piece)
	b = str_to_num(colors)
}

Аватар
Dachoni
Извън линия
Потребител
Потребител
Мнения: 157
Регистриран на: 23 Ное 2017, 16:48
Се отблагодари: 95 пъти
Получена благодарност: 6 пъти

Преработка на съобщение от Hud на Dhud

Мнение от Dachoni » 27 Мар 2020, 23:50

Ммм, при компилация се компилира, но показва това:

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

// D:\COMPUTER_1\╦╚╫═╚\AMXX\Dust2_1_addons_dust\amxmodx\scripting\score_admin_info.sma(16) : warning 201: redefinition of constant/macro (symbol "MAX_PLAYERS")
// D:\COMPUTER_1\╦╚╫═╚\AMXX\Dust2_1_addons_dust\amxmodx\scripting\score_admin_info.sma(17) : warning 201: redefinition of constant/macro (symbol "MAX_NAME_LENGTH")
// D:\COMPUTER_1\╦╚╫═╚\AMXX\Dust2_1_addons_dust\amxmodx\scripting\score_admin_info.sma(103) : warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
//
// D:\COMPUTER_1\╦╚╫═╚\AMXX\Dust2_1_addons_dust\amxmodx\scripting\score_admin_info.sma(131 -- 132) : warning 215: expression has no effect
// D:\COMPUTER_1\╦╚╫═╚\AMXX\Dust2_1_addons_dust\amxmodx\scripting\score_admin_info.sma(132) : warning 209: function "client_hide" should return a value
// D:\COMPUTER_1\╦╚╫═╚\AMXX\Dust2_1_addons_dust\amxmodx\scripting\score_admin_info.sma(231) : error 088: number of arguments does not match definition
// D:\COMPUTER_1\╦╚╫═╚\AMXX\Dust2_1_addons_dust\amxmodx\scripting\score_admin_info.sma(200) : warning 203: symbol is never used: "yPos"
// D:\COMPUTER_1\╦╚╫═╚\AMXX\Dust2_1_addons_dust\amxmodx\scripting\score_admin_info.sma(241) : warning 233: symbol "strbreak" is marked as deprecated: Use argbreak() instead
//
// D:\COMPUTER_1\╦╚╫═╚\AMXX\Dust2_1_addons_dust\amxmodx\scripting\score_admin_info.sma(244) : warning 233: symbol "strbreak" is marked as deprecated: Use argbreak() instead

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Преработка на съобщение от Hud на Dhud

Мнение от OciXCrom » 28 Мар 2020, 03:31

Защото плъгинът е стар. Щом се компилира, игнорирай предупрежденията.

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1810
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 371 пъти
Обратна връзка:

Преработка на съобщение от Hud на Dhud

Мнение от illusion » 28 Мар 2020, 12:41

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

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <csstats>
#include <hamsandwich>

#if AMXX_VERSION_NUM < 183
	#include <dhudmessage>
#endif

#define PLUGIN      "Score Admin Info"
#define VERSION     "1.1"
#define AUTHOR      "vato loco [GE-S]"
#define PLUGIN_CVAR "score_admin_info"

#define MAX_PLAYERS       32 + 1
#define MAX_NAME_LENGTH   31 + 1
#define MAX_CVARS         6
#define MAX_CHACHE_CVARS  3
#define MSG_DELAY         90.0
#define ACCESS_HIDE       ADMIN_LEVEL_H

enum { KILLS = 0, DEATH, SCORE_TYPES }
enum { RED = 0, GREEN, BLUE, MSG_COLORS }
enum { POSITIVE = 0, STANDARD ,NEGATIVE, MSG_TYPES }

new g_Blank[] = ""
new g_ClassName[] = "sai_info"
new Float:g_fLastMsg
new Float:g_fMsgDelay = MSG_DELAY
new bool:g_bShowScore[MAX_PLAYERS]
new bool:g_bIsAdmin[MAX_PLAYERS]
new bool:g_bIsAlive[MAX_PLAYERS]
new bool:g_bIsConnected[MAX_PLAYERS]
new bool:g_bIsBot[MAX_PLAYERS]
new g_iRank[MAX_PLAYERS]
new g_iPlayerName[MAX_PLAYERS][MAX_NAME_LENGTH]
new g_iScore[MAX_PLAYERS][SCORE_TYPES]
new g_pCvar[MAX_CVARS]
new g_CachepCvar[MAX_CHACHE_CVARS]
new g_iColor[MSG_TYPES][MSG_COLORS]
new g_iMaxStats
new g_iMaxPlayers

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar(PLUGIN_CVAR, VERSION, FCVAR_SERVER|FCVAR_SPONLY, 0.0)

	register_think(g_ClassName,"ForwardThink")

	register_event("HLTV", "ev_RoundStart", "a", "1=0", "2=0")
	register_event("ScoreInfo", "ev_ScoreInfo", "a")

	RegisterHam(Ham_Spawn, "player", "client_alive", 1)
	RegisterHam(Ham_Killed, "player", "client_alive", 1)

	register_clcmd("say /hudscore", "client_showscore")
	register_clcmd("say .hudscore", "client_showscore")
	register_clcmd("say /ms", "client_showscore")
	register_clcmd("say .ms", "client_showscore")
	register_clcmd("say_team /hudscore", "client_showscore")
	register_clcmd("say_team .hudscore", "client_showscore")
	register_clcmd("say_team /ms", "client_showscore")
	register_clcmd("say_team .ms", "client_showscore")
	register_clcmd("say /hideme", "client_hide", ACCESS_HIDE)
	register_clcmd("say .hideme", "client_hide", ACCESS_HIDE)
	register_clcmd("say_team /hideme", "client_hide", ACCESS_HIDE)
	register_clcmd("say_team .hideme", "client_hide", ACCESS_HIDE)

	g_pCvar[0] = register_cvar("sai_enabled", "1")
	g_pCvar[1] = register_cvar("sai_show_admin", "1")
	g_pCvar[2] = register_cvar("sai_on_join", "1")
	g_pCvar[3] = register_cvar("sai_positive_color", "0 160 0")
	g_pCvar[4] = register_cvar("sai_standard_color", "255 255 0")
	g_pCvar[5] = register_cvar("sai_negative_color", "255 0 0")

	g_iMaxPlayers = get_maxplayers()

	new iEnt = create_entity("info_target")
	entity_set_string(iEnt, EV_SZ_classname, g_ClassName)
	entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 1.0)
}

public plugin_cfg()
{
	set_task(0.5, "ev_RoundStart")
}

public client_putinserver(id)
{
	g_bIsConnected[id] = true
	g_bIsBot[id] = bool:is_user_bot(id)
	if(!g_bIsBot[id])
	{
		g_bShowScore[id] = bool:g_CachepCvar[2]
		g_bIsAdmin[id] = bool:is_user_admin(id)
	}
	get_user_name(id, g_iPlayerName[id], 31)
}

public client_disconnected(id)
{
	g_bIsAlive[id] = false
	g_bIsConnected[id] = false
	g_bShowScore[id] = false
	g_bIsAdmin[id] = false
	g_bIsBot[id] = false
}

public client_infochanged(id)
{
	get_user_info(id, "name", g_iPlayerName[id], 31)
}

public client_showscore(id)
{
	g_bShowScore[id] = !g_bShowScore[id]
	client_print(id, print_center, g_bShowScore[id] ? "Show Score Enabled" : "Show Score Disabled")
}

public client_hide(id, lvl, cid)
{
	if(!cmd_access(id, lvl, cid, 1))
	{
		return PLUGIN_HANDLED
	}
	g_bIsAdmin[id] = !g_bIsAdmin[id]
	client_print(id, print_center, g_bIsAdmin[id] ? "Hide Modus Disabled" : "Hide Modus Enabled")

	PLUGIN_CONTINUE
}

public client_alive(id)
{
	g_bIsAlive[id] = bool:is_user_alive(id)
}

public ev_RoundStart()
{
	g_CachepCvar[0] = get_pcvar_num(g_pCvar[0])
	g_CachepCvar[1] = get_pcvar_num(g_pCvar[1])
	g_CachepCvar[2] = get_pcvar_num(g_pCvar[2])

	GetCvarColor(g_pCvar[3], g_iColor[POSITIVE][RED], g_iColor[POSITIVE][GREEN], g_iColor[POSITIVE][BLUE])
	GetCvarColor(g_pCvar[4], g_iColor[STANDARD][RED], g_iColor[STANDARD][GREEN], g_iColor[STANDARD][BLUE])
	GetCvarColor(g_pCvar[5], g_iColor[NEGATIVE][RED], g_iColor[NEGATIVE][GREEN], g_iColor[NEGATIVE][BLUE])

	new stats[8], bodyhits[8], id
	g_iMaxStats = get_statsnum()

	for(id = 1; id <= g_iMaxPlayers; id++)
	{
		if(g_bIsConnected[id])
		{
			g_iRank[id] = get_user_stats(id, stats, bodyhits)
		}
	}
}

public ev_ScoreInfo()
{
	g_iScore[read_data(1)][KILLS] = read_data(2)
	g_iScore[read_data(1)][DEATH] = read_data(3)
}

public ForwardThink(iEnt)
{
	if(g_CachepCvar[0])
	{
		static id, target, specmode

		for(id = 1; id <= g_iMaxPlayers; id++)
		{
			if(g_bIsConnected[id])
			{
				specmode = entity_get_int(id, EV_INT_iuser1)

				if(g_bIsAlive[id])
				{
					if(g_bShowScore[id])
					{
						ShowPlayerInfo(id, g_iScore[id][KILLS], g_iScore[id][DEATH], 0.86, g_Blank, g_Blank, g_iRank[id])
					}
				}
				else if(specmode == 2 || specmode == 4)
				{
					target = entity_get_int(id, EV_INT_iuser2)
					if(target && target != id)
					{
						ShowPlayerInfo(id, g_iScore[target][KILLS], g_iScore[target][DEATH], 0.81, g_CachepCvar[1] ? g_bIsAdmin[target] ? "| Status: VIP |" : g_Blank : g_Blank, g_iPlayerName[target], g_iRank[target])
					}
				}
			}
		}
	}
	entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1)
}

ShowPlayerInfo(id, iFrags, iDeath, Float:yPos, sAdmin[], sName[], iRank)
{
	if(!g_bIsBot[id])
	{
		static Float:fEff, Float:fGameTime, r, g, b
		fGameTime = get_gametime()
		fEff = (100.0 * float(iFrags) / float(iFrags + iDeath))

		if(iFrags > iDeath)
		{
			r = g_iColor[POSITIVE][RED]
			g = g_iColor[POSITIVE][GREEN]
			b = g_iColor[POSITIVE][BLUE]
		}
		else if(iFrags == iDeath)
		{
			r = g_iColor[STANDARD][RED]
			g = g_iColor[STANDARD][GREEN]
			b = g_iColor[STANDARD][BLUE]
		}
		else if(iFrags < iDeath)
		{
			r = g_iColor[NEGATIVE][RED]
			g = g_iColor[NEGATIVE][GREEN]
			b = g_iColor[NEGATIVE][BLUE]
		}
		if(g_fLastMsg + g_fMsgDelay <= fGameTime)
		{
			client_print(id, print_chat, g_bShowScore[id] ? "[prefiks] Type In Chat /hudscore To Disable Your Score In Hud." : "[cs-adventure.eu] Type In Chat /hudscore To Enable Your Score In Hud.")
			g_fLastMsg = fGameTime
		}
		set_dhudmessage(r, g, b, 0.02, 0.2, 0, 0.1, 1.0, 0.1, 0.1)
		show_dhudmessage(id, "%s^nKills: %d ^nEff: %0.2f%% ^nDeath: %d ^n%sRank: %d of %d", sAdmin, iFrags, fEff, iDeath, sName, iRank, g_iMaxStats)
	}
}

GetCvarColor(cvar, &r, &g, &b)
{
	static colors[16], piece[5]
	get_pcvar_string(cvar, colors, 15)

	strbreak(colors, piece, 4, colors, 15)
	r = str_to_num(piece)

	strbreak(colors, piece, 4, colors, 15)
	g = str_to_num(piece)
	b = str_to_num(colors)
}
Оправих ти error-a

Аватар
Dachoni
Извън линия
Потребител
Потребител
Мнения: 157
Регистриран на: 23 Ное 2017, 16:48
Се отблагодари: 95 пъти
Получена благодарност: 6 пъти

Преработка на съобщение от Hud на Dhud

Мнение от Dachoni » 28 Мар 2020, 16:46

summertime vibes написа: 28 Мар 2020, 12:41

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

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <csstats>
#include <hamsandwich>

#if AMXX_VERSION_NUM < 183
	#include <dhudmessage>
#endif

#define PLUGIN      "Score Admin Info"
#define VERSION     "1.1"
#define AUTHOR      "vato loco [GE-S]"
#define PLUGIN_CVAR "score_admin_info"

#define MAX_PLAYERS       32 + 1
#define MAX_NAME_LENGTH   31 + 1
#define MAX_CVARS         6
#define MAX_CHACHE_CVARS  3
#define MSG_DELAY         90.0
#define ACCESS_HIDE       ADMIN_LEVEL_H

enum { KILLS = 0, DEATH, SCORE_TYPES }
enum { RED = 0, GREEN, BLUE, MSG_COLORS }
enum { POSITIVE = 0, STANDARD ,NEGATIVE, MSG_TYPES }

new g_Blank[] = ""
new g_ClassName[] = "sai_info"
new Float:g_fLastMsg
new Float:g_fMsgDelay = MSG_DELAY
new bool:g_bShowScore[MAX_PLAYERS]
new bool:g_bIsAdmin[MAX_PLAYERS]
new bool:g_bIsAlive[MAX_PLAYERS]
new bool:g_bIsConnected[MAX_PLAYERS]
new bool:g_bIsBot[MAX_PLAYERS]
new g_iRank[MAX_PLAYERS]
new g_iPlayerName[MAX_PLAYERS][MAX_NAME_LENGTH]
new g_iScore[MAX_PLAYERS][SCORE_TYPES]
new g_pCvar[MAX_CVARS]
new g_CachepCvar[MAX_CHACHE_CVARS]
new g_iColor[MSG_TYPES][MSG_COLORS]
new g_iMaxStats
new g_iMaxPlayers

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar(PLUGIN_CVAR, VERSION, FCVAR_SERVER|FCVAR_SPONLY, 0.0)

	register_think(g_ClassName,"ForwardThink")

	register_event("HLTV", "ev_RoundStart", "a", "1=0", "2=0")
	register_event("ScoreInfo", "ev_ScoreInfo", "a")

	RegisterHam(Ham_Spawn, "player", "client_alive", 1)
	RegisterHam(Ham_Killed, "player", "client_alive", 1)

	register_clcmd("say /hudscore", "client_showscore")
	register_clcmd("say .hudscore", "client_showscore")
	register_clcmd("say /ms", "client_showscore")
	register_clcmd("say .ms", "client_showscore")
	register_clcmd("say_team /hudscore", "client_showscore")
	register_clcmd("say_team .hudscore", "client_showscore")
	register_clcmd("say_team /ms", "client_showscore")
	register_clcmd("say_team .ms", "client_showscore")
	register_clcmd("say /hideme", "client_hide", ACCESS_HIDE)
	register_clcmd("say .hideme", "client_hide", ACCESS_HIDE)
	register_clcmd("say_team /hideme", "client_hide", ACCESS_HIDE)
	register_clcmd("say_team .hideme", "client_hide", ACCESS_HIDE)

	g_pCvar[0] = register_cvar("sai_enabled", "1")
	g_pCvar[1] = register_cvar("sai_show_admin", "1")
	g_pCvar[2] = register_cvar("sai_on_join", "1")
	g_pCvar[3] = register_cvar("sai_positive_color", "0 160 0")
	g_pCvar[4] = register_cvar("sai_standard_color", "255 255 0")
	g_pCvar[5] = register_cvar("sai_negative_color", "255 0 0")

	g_iMaxPlayers = get_maxplayers()

	new iEnt = create_entity("info_target")
	entity_set_string(iEnt, EV_SZ_classname, g_ClassName)
	entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 1.0)
}

public plugin_cfg()
{
	set_task(0.5, "ev_RoundStart")
}

public client_putinserver(id)
{
	g_bIsConnected[id] = true
	g_bIsBot[id] = bool:is_user_bot(id)
	if(!g_bIsBot[id])
	{
		g_bShowScore[id] = bool:g_CachepCvar[2]
		g_bIsAdmin[id] = bool:is_user_admin(id)
	}
	get_user_name(id, g_iPlayerName[id], 31)
}

public client_disconnected(id)
{
	g_bIsAlive[id] = false
	g_bIsConnected[id] = false
	g_bShowScore[id] = false
	g_bIsAdmin[id] = false
	g_bIsBot[id] = false
}

public client_infochanged(id)
{
	get_user_info(id, "name", g_iPlayerName[id], 31)
}

public client_showscore(id)
{
	g_bShowScore[id] = !g_bShowScore[id]
	client_print(id, print_center, g_bShowScore[id] ? "Show Score Enabled" : "Show Score Disabled")
}

public client_hide(id, lvl, cid)
{
	if(!cmd_access(id, lvl, cid, 1))
	{
		return PLUGIN_HANDLED
	}
	g_bIsAdmin[id] = !g_bIsAdmin[id]
	client_print(id, print_center, g_bIsAdmin[id] ? "Hide Modus Disabled" : "Hide Modus Enabled")

	PLUGIN_CONTINUE
}

public client_alive(id)
{
	g_bIsAlive[id] = bool:is_user_alive(id)
}

public ev_RoundStart()
{
	g_CachepCvar[0] = get_pcvar_num(g_pCvar[0])
	g_CachepCvar[1] = get_pcvar_num(g_pCvar[1])
	g_CachepCvar[2] = get_pcvar_num(g_pCvar[2])

	GetCvarColor(g_pCvar[3], g_iColor[POSITIVE][RED], g_iColor[POSITIVE][GREEN], g_iColor[POSITIVE][BLUE])
	GetCvarColor(g_pCvar[4], g_iColor[STANDARD][RED], g_iColor[STANDARD][GREEN], g_iColor[STANDARD][BLUE])
	GetCvarColor(g_pCvar[5], g_iColor[NEGATIVE][RED], g_iColor[NEGATIVE][GREEN], g_iColor[NEGATIVE][BLUE])

	new stats[8], bodyhits[8], id
	g_iMaxStats = get_statsnum()

	for(id = 1; id <= g_iMaxPlayers; id++)
	{
		if(g_bIsConnected[id])
		{
			g_iRank[id] = get_user_stats(id, stats, bodyhits)
		}
	}
}

public ev_ScoreInfo()
{
	g_iScore[read_data(1)][KILLS] = read_data(2)
	g_iScore[read_data(1)][DEATH] = read_data(3)
}

public ForwardThink(iEnt)
{
	if(g_CachepCvar[0])
	{
		static id, target, specmode

		for(id = 1; id <= g_iMaxPlayers; id++)
		{
			if(g_bIsConnected[id])
			{
				specmode = entity_get_int(id, EV_INT_iuser1)

				if(g_bIsAlive[id])
				{
					if(g_bShowScore[id])
					{
						ShowPlayerInfo(id, g_iScore[id][KILLS], g_iScore[id][DEATH], 0.86, g_Blank, g_Blank, g_iRank[id])
					}
				}
				else if(specmode == 2 || specmode == 4)
				{
					target = entity_get_int(id, EV_INT_iuser2)
					if(target && target != id)
					{
						ShowPlayerInfo(id, g_iScore[target][KILLS], g_iScore[target][DEATH], 0.81, g_CachepCvar[1] ? g_bIsAdmin[target] ? "| Status: VIP |" : g_Blank : g_Blank, g_iPlayerName[target], g_iRank[target])
					}
				}
			}
		}
	}
	entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1)
}

ShowPlayerInfo(id, iFrags, iDeath, Float:yPos, sAdmin[], sName[], iRank)
{
	if(!g_bIsBot[id])
	{
		static Float:fEff, Float:fGameTime, r, g, b
		fGameTime = get_gametime()
		fEff = (100.0 * float(iFrags) / float(iFrags + iDeath))

		if(iFrags > iDeath)
		{
			r = g_iColor[POSITIVE][RED]
			g = g_iColor[POSITIVE][GREEN]
			b = g_iColor[POSITIVE][BLUE]
		}
		else if(iFrags == iDeath)
		{
			r = g_iColor[STANDARD][RED]
			g = g_iColor[STANDARD][GREEN]
			b = g_iColor[STANDARD][BLUE]
		}
		else if(iFrags < iDeath)
		{
			r = g_iColor[NEGATIVE][RED]
			g = g_iColor[NEGATIVE][GREEN]
			b = g_iColor[NEGATIVE][BLUE]
		}
		if(g_fLastMsg + g_fMsgDelay <= fGameTime)
		{
			client_print(id, print_chat, g_bShowScore[id] ? "[prefiks] Type In Chat /hudscore To Disable Your Score In Hud." : "[cs-adventure.eu] Type In Chat /hudscore To Enable Your Score In Hud.")
			g_fLastMsg = fGameTime
		}
		set_dhudmessage(r, g, b, 0.02, 0.2, 0, 0.1, 1.0, 0.1, 0.1)
		show_dhudmessage(id, "%s^nKills: %d ^nEff: %0.2f%% ^nDeath: %d ^n%sRank: %d of %d", sAdmin, iFrags, fEff, iDeath, sName, iRank, g_iMaxStats)
	}
}

GetCvarColor(cvar, &r, &g, &b)
{
	static colors[16], piece[5]
	get_pcvar_string(cvar, colors, 15)

	strbreak(colors, piece, 4, colors, 15)
	r = str_to_num(piece)

	strbreak(colors, piece, 4, colors, 15)
	g = str_to_num(piece)
	b = str_to_num(colors)
}
Оправих ти error-a
Да компилира се нормално, нормално. Дори чат съобщенията излизат нормално вече.
Текста, който показва стана твърде голям, как да намаля размера на показаното.
https://imgur.com/4NaZk9W

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Преработка на съобщение от Hud на Dhud

Мнение от OciXCrom » 28 Мар 2020, 16:47

Нали това искаше?! DHUD е голям текст, HUD е малък. Изобщо знаеш ли какво искаш да направиш?

Аватар
Dachoni
Извън линия
Потребител
Потребител
Мнения: 157
Регистриран на: 23 Ное 2017, 16:48
Се отблагодари: 95 пъти
Получена благодарност: 6 пъти

Преработка на съобщение от Hud на Dhud

Мнение от Dachoni » 28 Мар 2020, 17:13

Нали, точно вие ме посъветвахте да заменя в плъгините, които използвам HUD съобщенията на DHUD, че претрупвало каналите. viewtopic.php?f=21&t=4478&start=320#p49945
Един от двата плъгина, ми препълва каналите за съобщения или вашият или този стар плъгин, който вие нарекохте. Надявах се че претрупването идва от този плъгин в тази тема за това ви помолих да го направите. С кода, който ми публикува summertime vibes, Стана вече се пише нормално в админ чата на сървъра.
Обаче не знаех че минавам на огромен размер на текста.

Благодаря за помоща и на двама ви!

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1810
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 371 пъти
Обратна връзка:

Преработка на съобщение от Hud на Dhud

Мнение от illusion » 28 Мар 2020, 18:11

Намали си HUD съобщенията, тъй като минаваш лимита на каналите. Ако искаш да е с "по-малки" букви и ти изчезва веднага HUD-а значи трябва да махнеш някой HUD от друг плъгин. В момента като DHUD не се маха, тъй като са 8 канала. По принцип (лично мнение) най-добре всичко да е в чата, вместо да се трупат различни HUD, DHUD, които на по-слабите компютри им пречат. :)

Аватар
Dachoni
Извън линия
Потребител
Потребител
Мнения: 157
Регистриран на: 23 Ное 2017, 16:48
Се отблагодари: 95 пъти
Получена благодарност: 6 пъти

Преработка на съобщение от Hud на Dhud

Мнение от Dachoni » 28 Мар 2020, 21:23

Благодаря, ви ще направя преглед на плъгините и ще намаля съобщенията от този тип. Ключ.

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

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

Кой е на линия

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