GoSpec [ /spec; /back; /change ]

Одобрените от нас плъгини. Моля, докладвайте ако забележите бъг с някой от плъгините в този раздел.
Потребителски аватар

esc-Fiv3
Foreigner
Foreigner
Мнения: 110
Регистриран: 24 ное 2018, 19:19
Се отблагодари: 16 пъти

GoSpec [ /spec; /back; /change ]

Мнение от esc-Fiv3 » 11 дек 2018, 05:10

Can you make that /spec command to be available only when you are dead? In that case you don't get one death for this command? And to be showed one chat message which say: You have to be dead to use /spec. Thanks!

Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 5037
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 56 пъти
Получена благодарност: 469 пъти
Години: 21
Контакти:

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom TM » 11 дек 2018, 15:16

Код: Избери всички

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

#define PLUGIN_VERSION "1.2"

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

	if(is_user_alive(id))
	{
		CC_SendMessage(id, "You have to be dead to use this command.")
		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))
			user_silentkill(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))
		{
			user_silentkill(id)
			
			if(get_pcvar_num(g_eCvars[gospec_respawn]))
				ExecuteHamB(Ham_CS_RoundRespawn, id)
		}			
	}
	
	return PLUGIN_HANDLED
}

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
}

Потребителски аватар

esc-Fiv3
Foreigner
Foreigner
Мнения: 110
Регистриран: 24 ное 2018, 19:19
Се отблагодари: 16 пъти

GoSpec [ /spec; /back; /change ]

Мнение от esc-Fiv3 » 11 дек 2018, 23:24

It works! Thanks!

Потребителски аватар

Just
Потребител
Потребител
Мнения: 210
Регистриран: 23 дек 2016, 19:10
Местоположение: http://cs-ultragaming.info
Се отблагодари: 4 пъти
Получена благодарност: 8 пъти
Контакти:

GoSpec [ /spec; /back; /change ]

Мнение от Just » 12 дек 2018, 23:01

Може ли да се нарпави /spec; и /back да се ползва от всички играчи а change само от админите.
Изображение
Connect 93.123.18.39:27017
Connect 93.123.18.6:27015

Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 5037
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 56 пъти
Получена благодарност: 469 пъти
Години: 21
Контакти:

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom TM » 12 дек 2018, 23:09

Погледни кваровете.

Потребителски аватар

esc-Fiv3
Foreigner
Foreigner
Мнения: 110
Регистриран: 24 ное 2018, 19:19
Се отблагодари: 16 пъти

GoSpec [ /spec; /back; /change ]

Мнение от esc-Fiv3 » 13 дек 2018, 05:14

Found a bug: if I use /spec command and then I use /back, it doesn't load my player model that I set. If i type : /spec and then I leave the server and after I come back, the same thing..it doesn't load my player model

Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 5037
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 56 пъти
Получена благодарност: 469 пъти
Години: 21
Контакти:

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom TM » 14 дек 2018, 14:07

Try adding cs_reset_user_model(id) after each cs_set_user_team line and see if it works. If not, you should update to the latest AMXX version.

Потребителски аватар

esc-Fiv3
Foreigner
Foreigner
Мнения: 110
Регистриран: 24 ное 2018, 19:19
Се отблагодари: 16 пъти

GoSpec [ /spec; /back; /change ]

Мнение от esc-Fiv3 » 14 дек 2018, 14:47

So I have to replace cs_set_user_team with cs_reset_user_model(id)? Or I just add cs_reset_user_model(id) like this:

Код: Избери всички

else
	{
		g_iOldTeam[id] = iTeam
		cs_set_user_team(id, CS_TEAM_SPECTATOR)
		cs_reset_user_model(id)
		CC_SendMessage(id, "%L", id, "GOSPEC_NOW_SPECTATOR")
		
		if(is_user_alive(id))
			user_silentkill(id)
	}

Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 5037
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 56 пъти
Получена благодарност: 469 пъти
Години: 21
Контакти:

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom TM » 14 дек 2018, 14:57

No, don't replace, just add it like you did.

Потребителски аватар

esc-Fiv3
Foreigner
Foreigner
Мнения: 110
Регистриран: 24 ное 2018, 19:19
Се отблагодари: 16 пъти

GoSpec [ /spec; /back; /change ]

Мнение от esc-Fiv3 » 14 дек 2018, 15:40

I did it. It works fine, except when you go spec, there is the default skin. But when you use /back and /change it works fine. I don't think that is posible to set a skin for /spec xD so thanks for this.

Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 5037
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 56 пъти
Получена благодарност: 469 пъти
Години: 21
Контакти:

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom TM » 14 дек 2018, 16:15

It's possible. You can do cs_set_user_model(id, "skin_name_here") instead of cs_reset_user_model.

Потребителски аватар

esc-Fiv3
Foreigner
Foreigner
Мнения: 110
Регистриран: 24 ное 2018, 19:19
Се отблагодари: 16 пъти

GoSpec [ /spec; /back; /change ]

Мнение от esc-Fiv3 » 15 дек 2018, 01:56

You said to set just one skin for both teams. But I want to set one skin for a player from ct when go spec and one skin for a player from tero when go spec. It can't be posible in that case..right?

Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 5037
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 56 пъти
Получена благодарност: 469 пъти
Години: 21
Контакти:

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom TM » 15 дек 2018, 15:44

It's possible.

Отговори

Върни се в “Одобрени плъгини”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 1 гост