Simple MIX 1.0

Pluginuri pentru modul AmxModX.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
LondoN eXtream
Membru eXtream
Membru eXtream
Posts: 2755
Joined: 10 Oct 2014, 06:21
Detinator Steam: Da
SteamID: /id/london_extreamcs
Reputatie: Fost scripter eXtreamCS
Fost moderator ajutator
Membru Club eXtreamCS (6 luni)
Fond eXtream: 0
Location: Roman, Neamț
Has thanked: 3 times
Been thanked: 12 times

21 May 2019, 02:02

Descriere: Este un plugin simplu de mix. Contine: warm, restart, knife, chat, start, stop, score.

Descarcare:
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

new const PLUGIN[] = "MIX by LondoN";
new const VERSION[] = "1.0";
new const AUTHOR[] = "LondoN eXtream";

enum _:ScoreData
{
	TERO = 0,
	CT,
	TERO_PART_TWO,
	CT_PART_TWO
};

new g_Score[ScoreData];
new bool: g_MixStarted, bool: g_KnifeRound, bool: g_Chat, bool: g_PartTwo, g_RoundNum;

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

	register_clcmd("say /warm", "_func_warm", ADMIN_KICK);
	register_clcmd("say /restart", "_func_restart", ADMIN_KICK);
	register_clcmd("say /knife", "_func_knife", ADMIN_KICK);
	register_clcmd("say /chat", "_func_chat", ADMIN_KICK);
	register_clcmd("say /start", "_func_start", ADMIN_KICK);
	register_clcmd("say /stop", "_func_stop", ADMIN_KICK);
	register_clcmd("say /score", "_func_score", ADMIN_KICK);
	register_clcmd("say", "_func_say", ADMIN_KICK);

	register_event("SendAudio", "EVENT_TWIN", "a", "2&%!MRAD_terwin");
	register_event("SendAudio", "EVENT_CTWIN", "a", "2&%!MRAD_ctwin");
	register_event("CurWeapon", "EVENT_CurWeap", "be", "1=1");
	register_event("HLTV", "EVENT_NewRound", "a");

	register_logevent("LOG_RoundEnd", 2, "1=RoundEnd");
}

public _func_warm(Player)
{
	server_cmd("sv_restart 2");
	server_cmd("mp_freezetime 0");
	server_cmd("mp_startmoney 16000");

	g_MixStarted = false;
	g_KnifeRound = false;
	g_RoundNum = 0;
	g_Score[TERO] = g_Score[CT] = g_Score[TERO_PART_TWO] = g_Score[CT_PART_TWO] = 0;
}

public _func_restart(Player)
{
	server_cmd("sv_restart 1");
	
	g_MixStarted = true;
	g_RoundNum = 0;
	g_Score[TERO] = g_Score[CT] = g_Score[TERO_PART_TWO] = g_Score[CT_PART_TWO] = 0;
}

public _func_knife(Player)
{
	server_cmd("sv_restart 2");
	server_cmd("mp_freezetime 0");
	server_cmd("mp_startmoney 16000");

	g_MixStarted = false;
	g_KnifeRound = true;
	g_RoundNum = 0;
	g_Score[TERO] = g_Score[CT] = g_Score[TERO_PART_TWO] = g_Score[CT_PART_TWO] = 0;
}

public _func_chat(Player)
{
	if(g_Chat)
		g_Chat = false;
	else
		g_Chat = true;
}

public _func_start(Player)
{
	server_cmd("sv_restart 5");
	server_cmd("mp_freezetime 9");
	server_cmd("mp_startmoney 800");
	server_cmd("mp_friendlyfire 1");
	server_cmd("mp_buytime .25");

	g_MixStarted = true;
	g_Chat = true;
	g_KnifeRound = false;
	g_RoundNum = 0;
	g_Score[TERO] = g_Score[CT] = g_Score[TERO_PART_TWO] = g_Score[CT_PART_TWO];
}

public _func_stop(Player)
{
	server_cmd("sv_restart 1");
	server_cmd("mp_freezetime 0");
	server_cmd("mp_startmoney 16000");
	server_cmd("mp_friendlyfire 0");

	g_MixStarted = false;
	g_KnifeRound = false;
	g_Chat = false;
	g_RoundNum = 0;
	g_Score[TERO] = g_Score[CT] = g_Score[TERO_PART_TWO] = g_Score[CT_PART_TWO] = 0;
}

public _func_score(Player)
{
	client_print(Player, print_chat, "------ Score ------");
	client_print(Player, print_chat, "TERO: %d", g_PartTwo ? g_Score[TERO_PART_TWO] : g_Score[TERO]);
	client_print(Player, print_chat, "CT: %d", g_PartTwo ? g_Score[CT_PART_TWO] : g_Score[CT]);
	client_print(Player, print_chat, "------ Score ------");
	return;
}

public _func_say(Player)
{
	new Args[192];
	read_args(Args, charsmax(Args));
	remove_quotes(Args);

	if(g_Chat)
		return;

	new g_szPassCmd[16], g_szPass[16];
	parse(Args, g_szPassCmd, charsmax(g_szPassCmd), g_szPass, charsmax(g_szPass))

	if(equal(g_szPassCmd, "/pass") && strlen(g_szPass))
		server_cmd("sv_password ^"%s^"", g_szPass);
}

public EVENT_TWIN()
{
	switch(g_PartTwo)
	{
		case true:	g_Score[TERO_PART_TWO] += 1;
		case false:	g_Score[TERO] += 1;
	}
}

public EVENT_CTWIN()
{
	switch(g_PartTwo)
	{
		case true:	g_Score[CT_PART_TWO] += 1;
		case false:	g_Score[CT] += 1;
	}
}

public EVENT_CurWeap(Player)
{
	if(g_KnifeRound)
		engclient_cmd(Player, "weapon_knife");
}

public EVENT_NewRound()
{
	if(g_MixStarted)
	{
		switch(g_PartTwo)
		{
			case false:
			{
				if(g_Score[TERO] > g_Score[CT])
					client_print(0, print_chat, "Scorul este %d - %d pentru TERO", g_Score[TERO], g_Score[CT]);
				if(g_Score[CT] > g_Score[TERO])
					client_print(0, print_chat, "Scorul este %d - %d pentru CT", g_Score[CT], g_Score[TERO]);
				if(g_Score[TERO] == g_Score[CT])
					client_print(0, print_chat, "Scorul este %d - %d (egalitate)", g_Score[TERO], g_Score[CT]);
				
			}

			case true:
			{
				new T = g_Score[TERO] + g_Score[TERO_PART_TWO];
				new CTS = g_Score[CT] + g_Score[CT_PART_TWO];

				if(T == 16 || CTS == 16)
				{
					if(T > CTS)
					{
						client_print(0, print_chat, "Meciul a fost castigat de TERO");
						client_print(0, print_chat, "SCOR: %d - %d", T, CTS);

						CMD_Settings();
					}

					if(CTS > T)
					{
						client_print(0, print_chat, "Meciul a fost castigat de CT");
						client_print(0, print_chat, "SCOR: %d - %d", CTS, T);

						CMD_Settings();
					}
				}
				else
				{
					if(T > CTS)
						client_print(0, print_chat, "Scorul este %d - %d pentru TERO", T, CTS);
					if(CTS > T)
						client_print(0, print_chat, "Scorul este %d - %d pentru CT", CTS, T);
					if(T == CTS)
						client_print(0, print_chat, "Scorul este %d - %d (egalitate)", T, CTS);
				}
			}
		}
	}
}

public CMD_Settings()
{
	g_MixStarted = false;
	g_PartTwo = false;
	g_Score[CT] = g_Score[TERO] = g_Score[CT_PART_TWO] = g_Score[TERO_PART_TWO] = 0;
		
	server_cmd("sv_restart 1");
	server_cmd("mp_freezetime 0");
	server_cmd("mp_startmoney 16000");
	server_cmd("mp_friendlyfire 0");
}

public LOG_RoundEnd()
{
	g_RoundNum++;

	if(g_PartTwo && g_RoundNum == 31)
	{
		client_print(0, print_chat, "MIX-ul s-a terminat la egalitate");

		CMD_Settings();
	}
	else if(g_RoundNum >= 15)
	{
		new Players[32], iNum;
		get_players(Players, iNum);
		
		for(new i; i < iNum; i++)
			_func_delay(Players);
	}
}

public _func_delay(Player)
{
	switch(Player)
	{
		case 1..7:	set_task(0.1, "_func_swap", Player);
		case 8..15:	set_task(0.2, "_func_swap", Player);
		case 16..23:	set_task(0.3, "_func_swap", Player);
		case 24..32:	set_task(0.4, "_func_swap", Player);
	}
}

public _func_swap(Player)
{
	switch(cs_get_user_team(Player))
	{
		case CS_TEAM_CT:	cs_set_user_team(Player, CS_TEAM_T);
		case CS_TEAM_T:		cs_set_user_team(Player, CS_TEAM_CT);
	}

	g_RoundNum = 0;
	g_PartTwo = true;

	server_cmd("sv_restart 1");
}

Nume: Simple Mix
Versiune: 1.0

Instalare:
1. Fisierul nume_plugin.sma il puneti in addons/amxmodx/scripting
2. Fisierul nume_plugin.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:

Code: Select all

nume_plugin.amxx
User avatar
Freezy.
Membru, skill +1
Membru, skill +1
Posts: 385
Joined: 21 Feb 2016, 14:12
Detinator Steam: Da
Detinator server CS: SUD.LEAGUECS.RO
SteamID: /id/fzind/
Fond eXtream: 0
Location: Constanţa
Has thanked: 2 times
Contact:

30 Mar 2020, 14:07

Hai că da :))

Code: Select all

/tmp/textXB2ZXa.sma(242) : error 035: argument type mismatch (argument 1)
/tmp/textXB2ZXa.sma(269) : error 010: invalid function or declaration
/tmp/textXB2ZXa.sma(273) : error 021: symbol already defined: "PLUGIN"
/tmp/textXB2ZXa.sma(274) : error 021: symbol already defined: "VERSION"
/tmp/textXB2ZXa.sma(275) : error 021: symbol already defined: "AUTHOR"
/tmp/textXB2ZXa.sma(278) : warning 201: redefinition of constant/macro (symbol "ScoreData")
/tmp/textXB2ZXa.sma(285) : error 021: symbol already defined: "g_Score"
/tmp/textXB2ZXa.sma(286) : error 021: symbol already defined: "g_MixStarted"
/tmp/textXB2ZXa.sma(289) : error 021: symbol already defined: "plugin_init"
/tmp/textXB2ZXa.sma(310) : error 021: symbol already defined: "_func_warm"
/tmp/textXB2ZXa.sma(322) : error 021: symbol already defined: "_func_restart"
/tmp/textXB2ZXa.sma(331) : error 021: symbol already defined: "_func_knife"
/tmp/textXB2ZXa.sma(343) : error 021: symbol already defined: "_func_chat"
/tmp/textXB2ZXa.sma(351) : error 021: symbol already defined: "_func_start"
/tmp/textXB2ZXa.sma(366) : error 021: symbol already defined: "_func_stop"
/tmp/textXB2ZXa.sma(380) : error 021: symbol already defined: "_func_score"
/tmp/textXB2ZXa.sma(389) : error 021: symbol already defined: "_func_say"
/tmp/textXB2ZXa.sma(405) : error 021: symbol already defined: "EVENT_TWIN"
/tmp/textXB2ZXa.sma(414) : error 021: symbol already defined: "EVENT_CTWIN"
/tmp/textXB2ZXa.sma(423) : error 021: symbol already defined: "EVENT_CurWeap"
/tmp/textXB2ZXa.sma(429) : error 021: symbol already defined: "EVENT_NewRound"
/tmp/textXB2ZXa.sma(483) : error 021: symbol already defined: "CMD_Settings"
/tmp/textXB2ZXa.sma(495) : error 021: symbol already defined: "LOG_RoundEnd"
/tmp/textXB2ZXa.sma(510) : error 035: argument type mismatch (argument 1)
/tmp/textXB2ZXa.sma(515) : error 021: symbol already defined: "_func_delay"
/tmp/textXB2ZXa.sma(526) : error 021: symbol already defined: "_func_swap"

25 Errors.
Could not locate output file /home/groups/amxmodx/public_html/websc3/textXB2ZXa.amx (compile failed).
sud.leaguecs.ro # 32/32 non stop. - 5.254.20.19:27015
sudmix.leaguecs.ro # mix our familly - 5.254.20.7:27015 - DE
sudmix2.leaguecs.ro # mix our familly - 109.163.232.164:27015 - RO
leaguecs românia - forum sud: https://bit.ly/3fm6bJK

----------------------------------------------------------
servere găzduite de gphosting.ro
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

30 Mar 2020, 15:36

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

new const PLUGIN[] = "MIX by LondoN";
new const VERSION[] = "1.0";
new const AUTHOR[] = "LondoN eXtream";

enum _:ScoreData
{
	TERO = 0,
	CT,
	TERO_PART_TWO,
	CT_PART_TWO
};

new g_Score[ScoreData];
new bool: g_MixStarted, bool: g_KnifeRound, bool: g_Chat, bool: g_PartTwo, g_RoundNum;

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

	register_clcmd("say /warm", "_func_warm", ADMIN_KICK);
	register_clcmd("say /restart", "_func_restart", ADMIN_KICK);
	register_clcmd("say /knife", "_func_knife", ADMIN_KICK);
	register_clcmd("say /chat", "_func_chat", ADMIN_KICK);
	register_clcmd("say /start", "_func_start", ADMIN_KICK);
	register_clcmd("say /stop", "_func_stop", ADMIN_KICK);
	register_clcmd("say /score", "_func_score", ADMIN_KICK);
	register_clcmd("say", "_func_say", ADMIN_KICK);

	register_event("SendAudio", "EVENT_TWIN", "a", "2&%!MRAD_terwin");
	register_event("SendAudio", "EVENT_CTWIN", "a", "2&%!MRAD_ctwin");
	register_event("CurWeapon", "EVENT_CurWeap", "be", "1=1");
	register_event("HLTV", "EVENT_NewRound", "a");

	register_logevent("LOG_RoundEnd", 2, "1=RoundEnd");
}

public _func_warm(Player)
{
	server_cmd("sv_restart 2");
	server_cmd("mp_freezetime 0");
	server_cmd("mp_startmoney 16000");

	g_MixStarted = false;
	g_KnifeRound = false;
	g_RoundNum = 0;
	g_Score[TERO] = g_Score[CT] = g_Score[TERO_PART_TWO] = g_Score[CT_PART_TWO] = 0;
}

public _func_restart(Player)
{
	server_cmd("sv_restart 1");
	
	g_MixStarted = true;
	g_RoundNum = 0;
	g_Score[TERO] = g_Score[CT] = g_Score[TERO_PART_TWO] = g_Score[CT_PART_TWO] = 0;
}

public _func_knife(Player)
{
	server_cmd("sv_restart 2");
	server_cmd("mp_freezetime 0");
	server_cmd("mp_startmoney 16000");

	g_MixStarted = false;
	g_KnifeRound = true;
	g_RoundNum = 0;
	g_Score[TERO] = g_Score[CT] = g_Score[TERO_PART_TWO] = g_Score[CT_PART_TWO] = 0;
}

public _func_chat(Player)
{
	if(g_Chat)
		g_Chat = false;
	else
		g_Chat = true;
}

public _func_start(Player)
{
	server_cmd("sv_restart 5");
	server_cmd("mp_freezetime 9");
	server_cmd("mp_startmoney 800");
	server_cmd("mp_friendlyfire 1");
	server_cmd("mp_buytime .25");

	g_MixStarted = true;
	g_Chat = true;
	g_KnifeRound = false;
	g_RoundNum = 0;
	g_Score[TERO] = g_Score[CT] = g_Score[TERO_PART_TWO] = g_Score[CT_PART_TWO];
}

public _func_stop(Player)
{
	server_cmd("sv_restart 1");
	server_cmd("mp_freezetime 0");
	server_cmd("mp_startmoney 16000");
	server_cmd("mp_friendlyfire 0");

	g_MixStarted = false;
	g_KnifeRound = false;
	g_Chat = false;
	g_RoundNum = 0;
	g_Score[TERO] = g_Score[CT] = g_Score[TERO_PART_TWO] = g_Score[CT_PART_TWO] = 0;
}

public _func_score(Player)
{
	client_print(Player, print_chat, "------ Score ------");
	client_print(Player, print_chat, "TERO: %d", g_PartTwo ? g_Score[TERO_PART_TWO] : g_Score[TERO]);
	client_print(Player, print_chat, "CT: %d", g_PartTwo ? g_Score[CT_PART_TWO] : g_Score[CT]);
	client_print(Player, print_chat, "------ Score ------");
	return;
}

public _func_say(Player)
{
	new Args[192];
	read_args(Args, charsmax(Args));
	remove_quotes(Args);

	if(g_Chat)
		return;

	new g_szPassCmd[16], g_szPass[16];
	parse(Args, g_szPassCmd, charsmax(g_szPassCmd), g_szPass, charsmax(g_szPass))

	if(equal(g_szPassCmd, "/pass") && strlen(g_szPass))
		server_cmd("sv_password ^"%s^"", g_szPass);
}

public EVENT_TWIN()
{
	switch(g_PartTwo)
	{
		case true:	g_Score[TERO_PART_TWO] += 1;
		case false:	g_Score[TERO] += 1;
	}
}

public EVENT_CTWIN()
{
	switch(g_PartTwo)
	{
		case true:	g_Score[CT_PART_TWO] += 1;
		case false:	g_Score[CT] += 1;
	}
}

public EVENT_CurWeap(Player)
{
	if(g_KnifeRound)
		engclient_cmd(Player, "weapon_knife");
}

public EVENT_NewRound()
{
	if(g_MixStarted)
	{
		switch(g_PartTwo)
		{
			case false:
			{
				if(g_Score[TERO] > g_Score[CT])
					client_print(0, print_chat, "Scorul este %d - %d pentru TERO", g_Score[TERO], g_Score[CT]);
				if(g_Score[CT] > g_Score[TERO])
					client_print(0, print_chat, "Scorul este %d - %d pentru CT", g_Score[CT], g_Score[TERO]);
				if(g_Score[TERO] == g_Score[CT])
					client_print(0, print_chat, "Scorul este %d - %d (egalitate)", g_Score[TERO], g_Score[CT]);
				
			}

			case true:
			{
				new T = g_Score[TERO] + g_Score[TERO_PART_TWO];
				new CTS = g_Score[CT] + g_Score[CT_PART_TWO];

				if(T == 16 || CTS == 16)
				{
					if(T > CTS)
					{
						client_print(0, print_chat, "Meciul a fost castigat de TERO");
						client_print(0, print_chat, "SCOR: %d - %d", T, CTS);

						CMD_Settings();
					}

					if(CTS > T)
					{
						client_print(0, print_chat, "Meciul a fost castigat de CT");
						client_print(0, print_chat, "SCOR: %d - %d", CTS, T);

						CMD_Settings();
					}
				}
				else
				{
					if(T > CTS)
						client_print(0, print_chat, "Scorul este %d - %d pentru TERO", T, CTS);
					if(CTS > T)
						client_print(0, print_chat, "Scorul este %d - %d pentru CT", CTS, T);
					if(T == CTS)
						client_print(0, print_chat, "Scorul este %d - %d (egalitate)", T, CTS);
				}
			}
		}
	}
}

public CMD_Settings()
{
	g_MixStarted = false;
	g_PartTwo = false;
	g_Score[CT] = g_Score[TERO] = g_Score[CT_PART_TWO] = g_Score[TERO_PART_TWO] = 0;
		
	server_cmd("sv_restart 1");
	server_cmd("mp_freezetime 0");
	server_cmd("mp_startmoney 16000");
	server_cmd("mp_friendlyfire 0");
}

public LOG_RoundEnd()
{
	g_RoundNum++;

	if(g_PartTwo && g_RoundNum == 31)
	{
		client_print(0, print_chat, "MIX-ul s-a terminat la egalitate");

		CMD_Settings();
	}
	else if(g_RoundNum >= 15)
	{
		new Players[32], iNum;
		get_players(Players, iNum);
		
		for(new i; i < iNum; i++)
			_func_delay(Players[i]);
	}
}

public _func_delay(Player)
{
	switch(Player)
	{
		case 1..7:	set_task(0.1, "_func_swap", Player);
		case 8..15:	set_task(0.2, "_func_swap", Player);
		case 16..23:	set_task(0.3, "_func_swap", Player);
		case 24..32:	set_task(0.4, "_func_swap", Player);
	}
}

public _func_swap(Player)
{
	switch(cs_get_user_team(Player))
	{
		case CS_TEAM_CT:	cs_set_user_team(Player, CS_TEAM_T);
		case CS_TEAM_T:		cs_set_user_team(Player, CS_TEAM_CT);
	}

	g_RoundNum = 0;
	g_PartTwo = true;

	server_cmd("sv_restart 1");
}
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
Freezy.
Membru, skill +1
Membru, skill +1
Posts: 385
Joined: 21 Feb 2016, 14:12
Detinator Steam: Da
Detinator server CS: SUD.LEAGUECS.RO
SteamID: /id/fzind/
Fond eXtream: 0
Location: Constanţa
Has thanked: 2 times
Contact:

30 Mar 2020, 15:59

În mare parte pluginul e ok, îi lipsesc câteva chestii, are nevoie de nişte mesaje pentru fiecare comandă în parte, pentru că nu apare nimic.
Comanda de /specall lafel ar fi fost utilă şi cea de t/ct/spec.

Dacă doreşti să discutăm levin şi să-l faci aşa cum mi-ar plăcea să fie, te pot plătii, mersi.
sud.leaguecs.ro # 32/32 non stop. - 5.254.20.19:27015
sudmix.leaguecs.ro # mix our familly - 5.254.20.7:27015 - DE
sudmix2.leaguecs.ro # mix our familly - 109.163.232.164:27015 - RO
leaguecs românia - forum sud: https://bit.ly/3fm6bJK

----------------------------------------------------------
servere găzduite de gphosting.ro
Post Reply

Return to “AmxModX”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 4 guests