Counter-Strike 1.6
VIP
Cs-PlovdiV.com - Aim Attack
93.123.16.4:27022
aim_map2
Играчи: 4/16
aim_map2
Counter-Strike 1.6
VIP
93.123.16.4:27022 Cs-PlovdiV.com - Aim Attack aim_map2 4/16

Roundleft info

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
HALLO_KITTY
Извън линия
Потребител
Потребител
Мнения: 27
Регистриран на: 19 Авг 2018, 14:48
Се отблагодари: 9 пъти
Получена благодарност: 1 път

Roundleft info

Мнение от HALLO_KITTY » 24 Сеп 2023, 21:08

Здравейте, трябва ми плъгин от типа на tiemeleft но да показва оставащите рундове , когато е настроен на mp_maxrounds да показва в чата при say timeleft и при свършване на рунда от дясно на екрана ако може да е цветно и да мога да променям позицията на съобщението на екрана Благодаря тези в нета, които намерих ми показват винаги сбора на рундовете като цяло :tnx:

Аватар
Hurricane
Извън линия
Потребител
Потребител
Мнения: 208
Регистриран на: 04 Юни 2022, 21:18
Се отблагодари: 18 пъти
Получена благодарност: 77 пъти

Re: Roundleft info

Мнение от Hurricane » 24 Сеп 2023, 22:52

Трябва да си настроиш тези настройки от server.cfg

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

mp_roundtime "0"
mp_timelimit "0"
mp_maxrounds "X"
Като на мястото на X заменяш с колкото рунда искаш да се играе на мап

Cvars

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

"round_tracker" , "1"
"round_position", "1"
"round_remaining", "1"

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

Enables disables the plugin | 1 = ON | 2 = OFF | Default = 1 
Message position 1 top center | 2 down center | 3 left under the radar | Default = 1 
A message that will be seen if the round is the last| 1 = ON | 2 = OFF | Default = 1 

Библиотеката colorchat.inc трябва да я имаш за да работи плъгина, компилирай плъгина локално !

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

//////////////////////////////////////////////////////////////////// | AMXX
//////////// Public plugin by ReVoLuTi0n & AMXX-BG.INFO //////////// | BG
//////////////////////////////////////////////////////////////////// | INFO


#include <amxmodx>
#include <colorchat>

static PLUGIN[] = "Rounds Tracker"
static VERSION[] = "1.0"
static AUTHOR[] = "ReVoLuTi0n"

static Float:g_Hltv_Rounds_Tracker, Float:g_Hltv_Round_Position, Float:g_Hltv_last_Round_Remaining, gHookRounds, gHookMapStart


public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);

	register_event("HLTV", "evNewRound_Start", "a", "1=0", "2=0");
	gHookRounds = get_cvar_num("mp_maxrounds");

	bind_pcvar_float(create_cvar("round_tracker", "1"), g_Hltv_Rounds_Tracker); // Enables disables the plugin | 1 = ON | 2 = OFF | Default = 1 
	bind_pcvar_float(create_cvar("round_position", "1"), g_Hltv_Round_Position); // Message position 1 top center | 2 down center | 3 left under the radar | Default = 1 
	bind_pcvar_float(create_cvar("round_remaining", "1"), g_Hltv_last_Round_Remaining); // A message that will be seen if the round is the last| 1 = ON | 2 = OFF | Default = 1 
}


public evNewRound_Start(id)
{
	if(g_Hltv_Rounds_Tracker)
	{
		gHookMapStart++

		if(g_Hltv_Round_Position == 1)
		{
			set_hudmessage(255, 0, 0, -1.0, 0.01, 0, 6.0, 4.0);
		}

		if(g_Hltv_Round_Position == 2)
		{
			set_hudmessage(255, 0, 0, -1.0, 0.89, 0, 6.0, 4.0);
		}

		if(g_Hltv_Round_Position == 3)
		{
			set_hudmessage(255, 0, 0, 0.02, 0.17, 0, 6.0, 4.0);
		}

		show_hudmessage(id, "Round %i starts from a total of %i", gHookMapStart, gHookRounds);

		if(g_Hltv_last_Round_Remaining)
		{
			if(gHookMapStart == gHookRounds)
			{
				new szServerName[33]
				get_user_name(0, szServerName, charsmax(szServerName))
				ColorChat(0, GREEN, "[%s] This is the last round!", szServerName)
			}
		}
	}

	return PLUGIN_HANDLED;
}

public plugin_cfg()
{
	if(g_Hltv_Rounds_Tracker)
	{
		gHookMapStart = 0
	}

	return PLUGIN_HANDLED;
}
Последно промяна от Hurricane на 25 Сеп 2023, 16:57, променено общо 1 път.

Аватар
HALLO_KITTY
Извън линия
Потребител
Потребител
Мнения: 27
Регистриран на: 19 Авг 2018, 14:48
Се отблагодари: 9 пъти
Получена благодарност: 1 път

Re: Roundleft info

Мнение от HALLO_KITTY » 25 Сеп 2023, 16:38

Здравей @Hurricane дава ми следните грешки:
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// roundleft.sma
// D:\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\roundleft.sma(23) : error 017: undefined symbol "bind_pcvar_float"
// D:\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\roundleft.sma(24) : error 017: undefined symbol "bind_pcvar_float"
// D:\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\roundleft.sma(25) : error 017: undefined symbol "bind_pcvar_float"
// D:\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\roundleft.sma(75) : warning 203: symbol is never used: "AUTHOR"
// D:\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\roundleft.sma(75) : warning 203: symbol is never used: "PLUGIN"
// D:\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\roundleft.sma(75) : warning 203: symbol is never used: "VERSION"
//
// 3 Errors.
// Could not locate output file D:\Counter-Strike WaRzOnE\cstrike\addons\amxmodx\scripting\compiled\roundleft.amx (compile failed).
//
// Compilation Time: 0.17 sec
Пробвах този, но винаги ми показва всички рундове в mp_maxrounds
а не колко остават и при команда say timeleft същото
Забравих да спомена използвам:

ReHLDS version: 3.11.0.777-dev
Build date: 21:17:20 Jun 29 2022 (3000)

AMX Mod X 1.10.0.5416 (http://www.amxmodx.org)

ReGameDLL version: 5.21.0.540-dev
Build date: 17:33:16 Oct 25 2021

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

new const PLUGINNAME[] = "Roundsleft"
new const VERSION[] = "0.2"
new const AUTHOR[] = "JGHG"
/*
Copyleft 2003
http://amxmod.net/forums/viewtopic.php?p=130419

ROUNDSLEFT
==========
Allows the users to "say roundsleft" and remaining rounds will be displayed.
This is useful if you are using default hlds cvar mp_maxrounds set to some value.
Will respond with same answer if users "say timeleft" also.
There is also a command "amx_roundsleft" to view remaining rounds in console.

/jghg

HOW TO INSTALL
==============
1. Name this file roundsleft.sma.
2. Compile it into roundsleft.amx.
3. Put roundsleft.amx into amx/plugins directory.
4. Open up amx/plugins/plugins.ini and add a line to the end saying: roundsleft.amx
5. Done. Type reload in your server.

HOW TO USE
==========
say roundsleft, say timeleft, say /roundsleft, say /timeleft
- all these will respond with remaining rounds if mp_maxrounds is set to anything higher than 0.

amx_roundsleft
- displays remaining rounds in console. Works also from server console.

VERSIONS
========
040308   0.2			Rewritten to work with amxmodx. :-) (lol, I changed #include <amxmod> to #include <amxmodx>)
??????   0.1			First version

*/

#include <amxmodx>
#include <amxmisc>
#include <engine>

// Globals below
new g_teamScore[2]
// Globals above

public sayRoundsLeft(id) {
	new maxRounds = get_cvar_num("mp_maxrounds")
	if (id) {
		if (maxRounds == 0) {
			client_print(0, print_chat, "No rounds limit.")
		}
		else {
			new roundsleft = maxRounds - (g_teamScore[0] + g_teamScore[1])
			client_print(0, print_chat, "Remaining rounds: %d", roundsleft)
			speakroundsleft(id, roundsleft)
		}
	}

	return PLUGIN_CONTINUE
}

speakroundsleft(id, roundsleft) {
	new numbers[256]
	getnumbers(roundsleft, numbers, 255)
	client_cmd(id, "spk ^"%s round remaining^"", numbers)
	//client_print(0, print_chat, "%s round%s remain", numbers, roundsleft > 1 ? "s" : "")
}

public conRoundsLeft(id) {
	new maxRounds = get_cvar_num("mp_maxrounds")
	if (id)	console_print(id,"Remaining rounds: %d",maxRounds - (g_teamScore[0] + g_teamScore[1]))
	else server_print("Remaining rounds: %d",maxRounds - (g_teamScore[0] + g_teamScore[1]))

	return PLUGIN_HANDLED
}

public teamScore(id) {
	new team[2]
	read_data(1,team,1)
	g_teamScore[(team[0]=='C')? 0 : 1] = read_data(2)

	return PLUGIN_CONTINUE
}

/*
public newround_event(id) {
	if (is_user_bot(id))
		return PLUGIN_CONTINUE

	new maxRounds = get_cvar_num("mp_maxrounds")
	if (maxRounds) {
		set_hudmessage(0, 100, 0, -1.0, 0.65, 2, 0.02, 10.0, 0.01, 0.1, 2)
		show_hudmessage(id, "%d rounds remaining", maxRounds - (g_teamScore[0] + g_teamScore[1]))
		client_print(id, print_chat, "%d rounds remaining", maxRounds - (g_teamScore[0] + g_teamScore[1]))
	}

	return PLUGIN_CONTINUE
}
*/

public endround_event() {
	server_print("endround_event, %d entities in game", entity_count())
	set_task(2.0, "endofroundspk")

	return PLUGIN_CONTINUE
}

public endofroundspk() {
	//server_print("endofroundspk")
	new maxRounds = get_cvar_num("mp_maxrounds")
	new roundsleft = maxRounds - (g_teamScore[0] + g_teamScore[1])
	if (maxRounds) {
		set_hudmessage(0, 100, 0, 0.65, 0.7, 2, 0.02, 10.0, 0.01, 0.1, random_num(346, 6715))
		if (roundsleft > 0)
			show_hudmessage(0, "%d round%s remaining", roundsleft, roundsleft > 1 ? "s" : "")
		else {
			new nextmap[64]
			get_cvar_string("amx_nextmap", nextmap, 63)
			show_hudmessage(0, "That was the final round, changing to %s...", nextmap)
		}
		//client_print(0, print_chat, "%d rounds remaining", roundsleft)
	}

	if (roundsleft > 0) {
		if (roundsleft == 1)
			client_cmd(0, "spk ^"this is the final round^"")
		else
			speakroundsleft(0, roundsleft)
	}
}

stock getnumbers(number, wordnumbers[], length) {
	if (number < 0) {
		format(wordnumbers, length, "error")
		return
	}

	new numberstr[20]
	num_to_str(number, numberstr, 19)
	new stlen = strlen(numberstr), bool:getzero = false, bool:jumpnext = false
	if (stlen == 1)
		getzero = true

	do {
		if (jumpnext)
			jumpnext = false
		else if (numberstr[0] != '0') {
			switch (stlen) {
				case 9: {
					if (getsingledigit(numberstr[0], wordnumbers, length))
						format(wordnumbers, length, "%s hundred%s", wordnumbers, numberstr[1] == '0' && numberstr[2] == '0' ? " million" : "")
				}
				case 8: {
					jumpnext = gettens(wordnumbers, length, numberstr)
					if (jumpnext)
						format(wordnumbers, length, "%s million", wordnumbers)
				}
				case 7: {
					getsingledigit(numberstr[0], wordnumbers, length)
					format(wordnumbers, length, "%s million", wordnumbers)
				}
				case 6: {
					if (getsingledigit(numberstr[0], wordnumbers, length))
						format(wordnumbers, length, "%s hundred%s", wordnumbers, numberstr[1] == '0' && numberstr[2] == '0' ? " thousand" : "")
				}
				case 5: {
					jumpnext = gettens(wordnumbers, length, numberstr)
					if (numberstr[0] == '1' || numberstr[1] == '0')
						format(wordnumbers, length, "%s thousand", wordnumbers)
				}
				case 4: {
					getsingledigit(numberstr[0], wordnumbers, length)
					format(wordnumbers, length, "%s thousand", wordnumbers)
				}
				case 3: {
					getsingledigit(numberstr[0], wordnumbers, length)
					format(wordnumbers, length, "%s hundred", wordnumbers)
				}
				case 2: jumpnext = gettens(wordnumbers, length, numberstr)
				case 1: {
					getsingledigit(numberstr[0], wordnumbers, length, getzero)
					break // could've trimmed, but of no use here
				}
				default: {
					format(wordnumbers, length, "%s TOO LONG", wordnumbers)
					break
				}
			}
		}

		jghg_trim(numberstr, length, 1)
		stlen = strlen(numberstr)
	}
	while (stlen > 0)

	// Trim a char from left if first char is a space (very likely)
	if (wordnumbers[0] == ' ')
		jghg_trim(wordnumbers, length, 1)
}

// Returns true if next char should be jumped
stock bool:gettens(wordnumbers[], length, numberstr[]) {
	new digitstr[11], bool:dont = false, bool:jumpnext = false
	switch (numberstr[0]) {
		case '1': {
			jumpnext = true
			switch (numberstr[1]) {
				case '0': digitstr = "ten"
				case '1': digitstr = "eleven"
				case '2': digitstr = "twelve"
				case '3': digitstr = "thirteen"
				case '4': digitstr = "fourteen"
				case '5': digitstr = "fifteen"
				case '6': digitstr = "sixteen"
				case '7': digitstr = "seventeen"
				case '8': digitstr = "eighteen"
				case '9': digitstr = "nineteen"
				default: digitstr = "TEENSERROR"
			}
		}
		case '2': digitstr = "twenty"
		case '3': digitstr = "thirty"
		case '4': digitstr = "fourty"
		case '5': digitstr = "fifty"
		case '6': digitstr = "sixty"
		case '7': digitstr = "seventy"
		case '8': digitstr = "eighty"
		case '9': digitstr = "ninety"
		case '0': dont = true // do nothing
		default : digitstr = "TENSERROR"
	}
	if (!dont)
		format(wordnumbers, length, "%s %s", wordnumbers, digitstr)

	return jumpnext
}

// Returns true when sets, else false
stock getsingledigit(digit[], numbers[], length, bool:getzero = false) {
	new digitstr[11]
	switch (digit[0]) {
		case '1': digitstr = "one"
		case '2': digitstr = "two"
		case '3': digitstr = "three"
		case '4': digitstr = "four"
		case '5': digitstr = "five"
		case '6': digitstr = "six"
		case '7': digitstr = "seven"
		case '8': digitstr = "eight"
		case '9': digitstr = "nine"
		case '0': {
			if (getzero)
				digitstr = "zero"
			else
				return false
		}
		default : digitstr = "digiterror"
	}
	format(numbers, length, "%s %s", numbers, digitstr)

	return true
}

stock jghg_trim(stringtotrim[], len, charstotrim, bool:fromleft = true) {
	if (charstotrim <= 0)
		return

	if (fromleft) {
		new maxlen = strlen(stringtotrim)
		if (charstotrim > maxlen)
			charstotrim = maxlen

		format(stringtotrim, len, "%s", stringtotrim[charstotrim])
	}
	else {
		new maxlen = strlen(stringtotrim) - charstotrim
		if (maxlen < 0)
			maxlen = 0

		format(stringtotrim, maxlen, "%s", stringtotrim)
	}
}

public addrounds(id, level, cid) {
	if (!cmd_access(id, level, cid, 2))
		return PLUGIN_HANDLED

	new arg[32]
	read_argv(1, arg, 31)
	new arglength = strlen(arg)
	for (new i = 0; i < arglength; i++) {
		if (!isdigit(arg[i])) {
			if (i != 0 || arg[0] != '-') {
				console_print(id, "Error: Enter only numbers, ie ^"amx_addrounds 10^"")
				return PLUGIN_HANDLED
			}
		}
	}

	new roundstoadd = str_to_num(arg)

	if (roundstoadd == 0) {
		console_print(id, "Error: Well duuuh. Enter a positive or negative value, ie ^"amx_addrounds 10^"")
		return PLUGIN_HANDLED
	}

	new originalmaxrounds = get_cvar_num("mp_maxrounds")

	new newmaxrounds = originalmaxrounds + roundstoadd

	if (newmaxrounds < 1)
		newmaxrounds = 1

	new roundschanged = newmaxrounds - originalmaxrounds

	new Float:displayrounds = float(roundschanged)
	displayrounds *= displayrounds
	displayrounds = floatsqroot(displayrounds)

	console_print(id, "%sing %d rounds...", roundschanged > 0 ? "Add" : "Remov", floatround(displayrounds))

	set_cvar_num("mp_maxrounds", newmaxrounds)

	conRoundsLeft(id)

	return PLUGIN_HANDLED
}

public plugin_init() {
	register_plugin(PLUGINNAME, VERSION, AUTHOR)
 	register_clcmd("say timeleft", "sayRoundsLeft")
 	register_clcmd("say roundsleft", "sayRoundsLeft", 0, "- displays remaining rounds")
 	register_concmd("amx_roundsleft", "conRoundsLeft", 0, "- displays remaining rounds")
 	register_concmd("amx_addrounds", "addrounds", ADMIN_CFG, "<rounds> - add/remove remaining rounds")
	register_event("TeamScore", "teamScore", "ab")
	//register_event("ResetHUD", "newround_event", "b")
	/*
	register_event("SendAudio","endround_event","a","2&%!MRAD_terwin","2&%!MRAD_ctwin","2&%!MRAD_rounddraw")
	register_event("TextMsg","endround_event","a","2&#Game_C","2&#Game_w")
	register_event("TextMsg","endround_event","a","2&#Game_will_restart_in")
	*/
	/*
	register_logevent("death_event",5,"1=killed","3=with")
	// L 03/08/2004 - 13:32:34: "xian<2><BOT><CT>" killed "SuperKaka<1><BOT><TERRORIST>" with "usp"
	// L 03/08/2004 - 13:32:34: World triggered "Round_End"
	*/
	// L 03/08/2004 - 13:32:34: World triggered "Round_End"
	/*register_logevent("endround_event", 3, "2=Round_End")
	register_logevent("endround_event", 3, "1=Round_End")
	register_logevent("endround_event", 3, "0=Round_End")
	register_logevent("endround_event", 3, "3=Round_End")*/
	register_logevent("endround_event", 2, "0=World triggered", "1=Round_End")
}

Аватар
Hurricane
Извън линия
Потребител
Потребител
Мнения: 208
Регистриран на: 04 Юни 2022, 21:18
Се отблагодари: 18 пъти
Получена благодарност: 77 пъти

Re: Roundleft info

Мнение от Hurricane » 25 Сеп 2023, 17:11

Akо версията на AMXX беше тази която си описал нямаше да има проблем при компилирането.
първия код се компилира с 3 грешки защото сам забравил да използвам константите но това не е проблем за компилирането му и работата му. ( оправен е )

Този код е за по стара версия на амхх пробвай ( не е тестван )

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

//////////////////////////////////////////////////////////////////// | AMXX
//////////// Public plugin by ReVoLuTi0n & AMXX-BG.INFO //////////// | BG
//////////////////////////////////////////////////////////////////// | INFO


#include <amxmodx>
#include <colorchat>

static PLUGIN[] = "Rounds Tracker"
static VERSION[] = "1.0"
static AUTHOR[] = "ReVoLuTi0n"

static g_Hltv_Rounds_Tracker, g_Hltv_Round_Position, g_Hltv_last_Round_Remaining, gHookRounds, gHookMapStart


public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);

	register_event("HLTV", "evNewRound_Start", "a", "1=0", "2=0");
	gHookRounds = get_cvar_num("mp_maxrounds");

	 g_Hltv_Rounds_Tracker  = register_cvar("round_tracker", "1"); // Enables disables the plugin | 1 = ON | 2 = OFF | Default = 1 
	  g_Hltv_Round_Position =  register_cvar("round_position", "1"); // Message position 1 top center | 2 down center | 3 left under the radar | Default = 1 
	g_Hltv_last_Round_Remaining = register_cvar("round_remaining", "1"); // A message that will be seen if the round is the last| 1 = ON | 2 = OFF | Default = 1 
}


public evNewRound_Start(id)
{
	if(get_pcvar_num(g_Hltv_Rounds_Tracker) == 1)
	{
		gHookMapStart++

		if(get_pcvar_num(g_Hltv_Round_Position )== 1)
		{
			set_hudmessage(255, 0, 0, -1.0, 0.01, 0, 6.0, 4.0);
		}

		if(get_pcvar_num(g_Hltv_Round_Position) == 2)
		{
			set_hudmessage(255, 0, 0, -1.0, 0.89, 0, 6.0, 4.0);
		}

		if(get_pcvar_num(g_Hltv_Round_Position) == 3)
		{
			set_hudmessage(255, 0, 0, 0.02, 0.17, 0, 6.0, 4.0);
		}

		show_hudmessage(id, "Round %i starts from a total of %i", gHookMapStart, gHookRounds);

		if(get_pcvar_num(g_Hltv_last_Round_Remaining) == 1)
		{
			if(gHookMapStart == gHookRounds)
			{
				new szServerName[33]
				get_user_name(0, szServerName, charsmax(szServerName))
				ColorChat(0, GREEN, "[%s] This is the last round!", szServerName)
			}
		}
	}

	return PLUGIN_HANDLED;
}

public plugin_cfg()
{
	if(get_pcvar_num(g_Hltv_Rounds_Tracker) == 1)
	{
		gHookMapStart = 0
	}

	return PLUGIN_HANDLED;
}


Аватар
HALLO_KITTY
Извън линия
Потребител
Потребител
Мнения: 27
Регистриран на: 19 Авг 2018, 14:48
Се отблагодари: 9 пъти
Получена благодарност: 1 път

Re: Roundleft info

Мнение от HALLO_KITTY » 25 Сеп 2023, 17:54

Компилирах го под 1.9 и стана; но
съобщението изчезва супер бързо няма функция say timeleft
отчита и warnup рунда, който е от cfg с команда sv_restartround 1
която се повтаря два пъти
общо взето май ще е трудно
като timeleft.amxx , но за рундове не по време
ето две снимки

Изображение
Изображение

Аватар
Hurricane
Извън линия
Потребител
Потребител
Мнения: 208
Регистриран на: 04 Юни 2022, 21:18
Се отблагодари: 18 пъти
Получена благодарност: 77 пъти

Re: Roundleft info

Мнение от Hurricane » 25 Сеп 2023, 19:12

Добавена команда която се активира с /roundleft ( можеш да си го промениш ) които ще показва в кой рунд сте и колко рунда остават.

Променяш стойността на HUD_TIME на стойност колко дълго да се вижда съобщението

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

#define HUD_TIME 8.0
Първите 2 рунда няма да ги отчита ( Плъгина не е тестван )

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

//////////////////////////////////////////////////////////////////// | AMXX
//////////// Public plugin by ReVoLuTi0n & AMXX-BG.INFO //////////// | BG
//////////////////////////////////////////////////////////////////// | INFO


#include <amxmodx>
#include <colorchat>

static PLUGIN[] = "Rounds Tracker"
static VERSION[] = "1.1"
static AUTHOR[] = "ReVoLuTi0n"

#define HUD_TIME 8.0

static g_Hltv_Rounds_Tracker, g_Hltv_Round_Position, g_Hltv_last_Round_Remaining, gHookRounds, gHookMapStart, szServerName[33], gWarmRound


public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);

	register_event("HLTV", "evNewRound_Start", "a", "1=0", "2=0");
	register_clcmd("say /roundleft", "RoundLeft")
	gHookRounds = get_cvar_num("mp_maxrounds");

	 g_Hltv_Rounds_Tracker  = register_cvar("round_tracker", "1"); // Enables disables the plugin | 1 = ON | 2 = OFF | Default = 1 
	  g_Hltv_Round_Position =  register_cvar("round_position", "1"); // Message position 1 top center | 2 down center | 3 left under the radar | Default = 1 
	g_Hltv_last_Round_Remaining = register_cvar("round_remaining", "1"); // A message that will be seen if the round is the last| 1 = ON | 2 = OFF | Default = 1 
	
}


public RoundLeft(id)
{
	if(get_pcvar_num(g_Hltv_Rounds_Tracker) == 1)
	{
		get_user_name(0, szServerName, charsmax(szServerName))
		ColorChat(id, GREEN, "[%s] - We play %i round out of %i in total",szServerName, gHookMapStart, gHookRounds )		
	}
}

public evNewRound_Start(id)
{
	if(get_pcvar_num(g_Hltv_Rounds_Tracker) == 1)
	{
		gWarmRound++
		
		if(gWarmRound >=)
		{
			gHookMapStart++
		}

		if(get_pcvar_num(g_Hltv_Round_Position )== 1)
		{
			set_hudmessage(255, 0, 0, -1.0, 0.01, 0, 6.0, HUD_TIME);
		}

		if(get_pcvar_num(g_Hltv_Round_Position) == 2)
		{
			set_hudmessage(255, 0, 0, -1.0, 0.89, 0, 6.0, HUD_TIME);
		}

		if(get_pcvar_num(g_Hltv_Round_Position) == 3)
		{
			set_hudmessage(255, 0, 0, 0.02, 0.17, 0, 6.0, HUD_TIME);
		}

		show_hudmessage(id, "Round %i starts from a total of %i", gHookMapStart, gHookRounds);

		if(get_pcvar_num(g_Hltv_last_Round_Remaining) == 1)
		{
			if(gHookMapStart == gHookRounds)
			{
				ColorChat(0, GREEN, "[%s] This is the last round!", szServerName)
			}
		}
	}

	return PLUGIN_HANDLED;
}

public plugin_cfg()
{
	if(get_pcvar_num(g_Hltv_Rounds_Tracker) == 1)
	{
		gHookMapStart = 0
		gWarmRound = 0
	}

	return PLUGIN_HANDLED;
}

Аватар
HALLO_KITTY
Извън линия
Потребител
Потребител
Мнения: 27
Регистриран на: 19 Авг 2018, 14:48
Се отблагодари: 9 пъти
Получена благодарност: 1 път

Re: Roundleft info

Мнение от HALLO_KITTY » 25 Сеп 2023, 19:24

даде ми тази грешка @Hurricane
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// roundleftdev.sma
//
// D:\COUNTER_STRIKE\AMX 1.9.0 - 5263\1.9.0_5263_scripting\roundleftdev.sma(26) : warning 217: loose indentation
// D:\COUNTER_STRIKE\AMX 1.9.0 - 5263\1.9.0_5263_scripting\roundleftdev.sma(27) : warning 217: loose indentation
// D:\COUNTER_STRIKE\AMX 1.9.0 - 5263\1.9.0_5263_scripting\roundleftdev.sma(28) : warning 217: loose indentation
// D:\COUNTER_STRIKE\AMX 1.9.0 - 5263\1.9.0_5263_scripting\roundleftdev.sma(48) : error 029: invalid expression, assumed zero
//
// 1 Error.
// Could not locate output file D:\COUNTER_STRIKE\AMX 1.9.0 - 5263\1.9.0_5263_scripting\compiled\roundleftdev.amx (compile failed).
//
// Compilation Time: 0.16 sec
// ----------------------------------------

Press enter to exit ...

Аватар
Hurricane
Извън линия
Потребител
Потребител
Мнения: 208
Регистриран на: 04 Юни 2022, 21:18
Се отблагодари: 18 пъти
Получена благодарност: 77 пъти

Re: Roundleft info

Мнение от Hurricane » 25 Сеп 2023, 19:45

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

//////////////////////////////////////////////////////////////////// | AMXX
//////////// Public plugin by ReVoLuTi0n & AMXX-BG.INFO //////////// | BG
//////////////////////////////////////////////////////////////////// | INFO


#include <amxmodx>
#include <colorchat>

static PLUGIN[] = "Rounds Tracker"
static VERSION[] = "1.1"
static AUTHOR[] = "ReVoLuTi0n"

#define HUD_TIME 8.0

static g_Hltv_Rounds_Tracker, g_Hltv_Round_Position, g_Hltv_last_Round_Remaining, gHookRounds, gHookMapStart, szServerName[33], gWarmRound


public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);

	register_event("HLTV", "evNewRound_Start", "a", "1=0", "2=0");
	register_clcmd("say /roundleft", "RoundLeft")
	gHookRounds = get_cvar_num("mp_maxrounds");

	 g_Hltv_Rounds_Tracker  = register_cvar("round_tracker", "1"); // Enables disables the plugin | 1 = ON | 2 = OFF | Default = 1 
	  g_Hltv_Round_Position =  register_cvar("round_position", "1"); // Message position 1 top center | 2 down center | 3 left under the radar | Default = 1 
	g_Hltv_last_Round_Remaining = register_cvar("round_remaining", "1"); // A message that will be seen if the round is the last| 1 = ON | 2 = OFF | Default = 1 
	
}


public RoundLeft(id)
{
	if(get_pcvar_num(g_Hltv_Rounds_Tracker) == 1)
	{
		get_user_name(0, szServerName, charsmax(szServerName))
		ColorChat(id, GREEN, "[%s] - We play %i round out of %i in total",szServerName, gHookMapStart, gHookRounds )		
	}
}

public evNewRound_Start(id)
{
	if(get_pcvar_num(g_Hltv_Rounds_Tracker) == 1)
	{
		gWarmRound++
		
		if(gWarmRound >= 2)
		{
			gHookMapStart++
		}

		if(get_pcvar_num(g_Hltv_Round_Position )== 1)
		{
			set_hudmessage(255, 0, 0, -1.0, 0.01, 0, 6.0, HUD_TIME);
		}

		if(get_pcvar_num(g_Hltv_Round_Position) == 2)
		{
			set_hudmessage(255, 0, 0, -1.0, 0.89, 0, 6.0, HUD_TIME);
		}

		if(get_pcvar_num(g_Hltv_Round_Position) == 3)
		{
			set_hudmessage(255, 0, 0, 0.02, 0.17, 0, 6.0, HUD_TIME);
		}

		show_hudmessage(id, "Round %i starts from a total of %i", gHookMapStart, gHookRounds);

		if(get_pcvar_num(g_Hltv_last_Round_Remaining) == 1)
		{
			if(gHookMapStart == gHookRounds)
			{
				ColorChat(0, GREEN, "[%s] This is the last round!", szServerName)
			}
		}
	}

	return PLUGIN_HANDLED;
}

public plugin_cfg()
{
	if(get_pcvar_num(g_Hltv_Rounds_Tracker) == 1)
	{
		gHookMapStart = 0
		gWarmRound = 0
	}

	return PLUGIN_HANDLED;
}

Аватар
HALLO_KITTY
Извън линия
Потребител
Потребител
Мнения: 27
Регистриран на: 19 Авг 2018, 14:48
Се отблагодари: 9 пъти
Получена благодарност: 1 път

Re: Roundleft info

Мнение от HALLO_KITTY » 25 Сеп 2023, 20:25

Супер стана Благодаря ти!!! @Hurricane

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

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

Кой е на линия

Потребители разглеждащи този форум: Google [Bot] и 15 госта