Страница 2 от 2

/spec,/back плугина се бъгна

Публикувано на: 07 Ное 2019, 23:27
от OciXCrom
Никакъв. Оставяш квара празен - ""

/spec,/back плугина се бъгна

Публикувано на: 09 Ное 2019, 11:26
от impossible
Как може да се настрои като напишеш /spec просто да те препраща ,а не да показва че имаш умирания всеки път като отидеш spec взима фраг нещо като самоубийство го отчита

/spec,/back плугина се бъгна

Публикувано на: 09 Ное 2019, 14:23
от OciXCrom
impossible написа: 09 Ное 2019, 11:26 Как може да се настрои като напишеш /spec просто да те препраща ,а не да показва че имаш умирания всеки път като отидеш spec взима фраг нещо като самоубийство го отчита
Поясни за кой от двата плъгина се отнася въпросът...

/spec,/back плугина се бъгна

Публикувано на: 09 Ное 2019, 15:16
от digitalbg
Така .... твоите думи Иначе предполагам проблемът е във функцията cs_user_spawn(id) и трябва да се смени с ExecuteHamB(Ham_CS_RoundRespawn, id) + да се добави #include <hamsandwich>.
пак е така ... същото , а за другият плугин като го дам така "" си е все тая.
Извинявай като смених цваровете в сма-то с твоя плугин се получи :) Благодаря ти!!

/spec,/back плугина се бъгна

Публикувано на: 09 Ное 2019, 15:28
от OciXCrom
Кварове не се променят от .sma файла, а се добавят в configs/amxx.cfg.

/spec,/back плугина се бъгна

Публикувано на: 09 Ное 2019, 16:30
от digitalbg
Така и направих първият път... но все ми даваше U have no acces май беше ...

/spec,/back плугина се бъгна

Публикувано на: 09 Ное 2019, 23:54
от impossible
https://www.amxx-bg.info/forum/viewtopic.php?t=1114 ползвам твоя плъгин но щом напиша /spec ме праща но ми взима фрагове показва ,че съм бил убит но не от играч ,а самия плъгин примерно пиша /spec 3 пъти подред и ми показва deaths -3 мисълта ми е как да се настрои да не взима от фрaговете а просто да те препраща spec без да отчита умирания

/spec,/back плугина се бъгна

Публикувано на: 10 Ное 2019, 01:02
от OciXCrom
Това се случва поради бъг от самия АМХХ. Виж така дали има разлика:

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

#include <amxmodx>
#include <cromchat>
#include <cstrike>
#include <fun>
#include <hamsandwich>

#define PLUGIN_VERSION "1.2-test1"

enum _:Cvars
{
	gospec_spec_flag,
	gospec_change_flag,
	gospec_respawn
}

new g_eCvars[Cvars]

new CsTeams:g_iOldTeam[33],
	g_iSpecFlag,
	g_iChangeFlag

public plugin_init()
{
	register_plugin("GoSpec", PLUGIN_VERSION, "OciXCrom")
	register_cvar("@CRXGoSpec", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
	register_dictionary("GoSpec.txt")

	register_clcmd("say /spec", "GoSpec")
	register_clcmd("say /back", "GoBack")
	register_clcmd("say /change", "SwitchTeam")

	g_eCvars[gospec_spec_flag] = register_cvar("gospec_spec_flag", "e")
	g_eCvars[gospec_change_flag] = register_cvar("gospec_change_flag", "e")
	g_eCvars[gospec_respawn] = register_cvar("gospec_respawn", "0")
	CC_SetPrefix("[&x03GoSpec&x01]")
}

public plugin_cfg()
{
	new szFlag[2]
	get_pcvar_string(g_eCvars[gospec_spec_flag], szFlag, charsmax(szFlag))
	g_iSpecFlag = szFlag[0] == EOS ? ADMIN_ALL : read_flags(szFlag)
	get_pcvar_string(g_eCvars[gospec_change_flag], szFlag, charsmax(szFlag))
	g_iChangeFlag = szFlag[0] == EOS ? ADMIN_ALL : read_flags(szFlag)
}

public GoSpec(id)
{
	if(!HasAccess(id, g_iSpecFlag))
		return PLUGIN_HANDLED

	new CsTeams:iTeam = cs_get_user_team(id)

	if(iTeam == CS_TEAM_SPECTATOR)
		CC_SendMessage(id, "%L", id, "GOSPEC_ALREADY_SPECTATOR")
	else
	{
		g_iOldTeam[id] = iTeam
		cs_set_user_team(id, CS_TEAM_SPECTATOR)
		CC_SendMessage(id, "%L", id, "GOSPEC_NOW_SPECTATOR")

		if(is_user_alive(id))
			SafeKill(id)
	}

	return PLUGIN_HANDLED
}

public GoBack(id)
{
	if(!HasAccess(id, g_iSpecFlag))
		return PLUGIN_HANDLED

	if(cs_get_user_team(id) != CS_TEAM_SPECTATOR)
		CC_SendMessage(id, "%L", id, "GOSPEC_NOT_SPECTATOR")
	else
	{
		new iPlayers[32], iCT, iT
		get_players(iPlayers, iCT, "e", "CT")
		get_players(iPlayers, iT, "e", "TERRORIST")

		if(iCT == iT)
		{
			cs_set_user_team(id, g_iOldTeam[id])
			CC_SendMessage(id, "%L", id, "GOSPEC_TRANSFERED_TO_PREVIOUS")
		}
		else
		{
			cs_set_user_team(id, iCT > iT ? CS_TEAM_T : CS_TEAM_CT)
			CC_SendMessage(id, "%L", id, "GOSPEC_TRANSFERED_TO_LESS")
		}

		if(get_pcvar_num(g_eCvars[gospec_respawn]))
			ExecuteHamB(Ham_CS_RoundRespawn, id)
	}

	return PLUGIN_HANDLED
}

public SwitchTeam(id)
{
	if(!HasAccess(id, g_iChangeFlag))
		return PLUGIN_HANDLED

	new CsTeams:iTeam = cs_get_user_team(id)


	if(iTeam == CS_TEAM_SPECTATOR)
		CC_SendMessage(id, "%L", id, "GOSPEC_CANT_USE")
	else
	{
		cs_set_user_team(id, cs_get_user_team(id) == CS_TEAM_CT ? CS_TEAM_T : CS_TEAM_CT)
		CC_SendMessage(id, "%L", id, "GOSPEC_TRANSFERED_TO_OPPOSITE")

		if(is_user_alive(id))
		{
			SafeKill(id)

			if(get_pcvar_num(g_eCvars[gospec_respawn]))
				ExecuteHamB(Ham_CS_RoundRespawn, id)
		}
	}

	return PLUGIN_HANDLED
}

SafeKill(id)
{
	new iFrags = get_user_frags(id), iDeaths = cs_get_user_deaths(id)
	user_silentkill(id)
	set_user_frags(id, iFrags)
	cs_set_user_deaths(id, iDeaths)
}

bool:HasAccess(id, iFlag)
{
	if(iFlag == ADMIN_ALL || get_user_flags(id) & iFlag)
		return true
	else
	{
		CC_SendMessage(id, "%L", id, "GOSPEC_NO_ACCESS")
		return false
	}

	#if AMXX_VERSION_NUM < 183
	return false
	#endif
}

/spec,/back плугина се бъгна

Публикувано на: 10 Ное 2019, 09:57
от impossible
да така работи!

/spec,/back плугина се бъгна

Публикувано на: 10 Ное 2019, 14:17
от OciXCrom
Ще обновя и главния плъгин.