GoSpec [ /spec; /back; /change ]

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

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

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom TM » 02 окт 2018, 22:09

Ако го промени на z, админи няма да могат да го ползват. Трябва да го направи без флаг:

gospec_change_flag "" gospec_spec_flag ""

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

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

GoSpec [ /spec; /back; /change ]

Мнение от esc-Fiv3 » 26 ное 2018, 19:45

Hi! I don't want to die when I go to spec. Can you do that for me? Only for /spec command. Thanks!

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

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

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom TM » 26 ное 2018, 20:54

Remove lines 61 and 62 in the .sma file: is_user_alive(id) and user_silentkill(id). Bear in mind that your player model won't update if you're using AMXX 1.8.2.

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

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

GoSpec [ /spec; /back; /change ]

Мнение от esc-Fiv3 » 27 ное 2018, 00:44

I have 1.8.2 version. So I can't do this because my player models won't update?

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

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

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom TM » 27 ное 2018, 14:16

You'll have to manually set the model. It can be done, but if you're using some other plugin for player models for example, you will have to manually type the model name you want. Another alternative is to simply respawn the player.

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

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

GoSpec [ /spec; /back; /change ]

Мнение от esc-Fiv3 » 27 ное 2018, 15:08


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

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

GoSpec [ /spec; /back; /change ]

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

It doesn't work how you said xD. I'm spectator and still a player in game xD

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

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

GoSpec [ /spec; /back; /change ]

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

Well isn't that what you wanted? You said you don't want the player to die, so if he doesn't die, of course he'll still be in game? :huh:

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

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

GoSpec [ /spec; /back; /change ]

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

I want him to go on /spec but not to get -1 on death.. I saw a plugin like this once

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

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

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom TM » 01 дек 2018, 17:31

The function that kills the player is user_silentkill which according to the API will not affect the client's score. If this is happening, it's probably a bug in 1.8.2. You should try upgrading to 1.9 or 1.10 to avoid bugs like this.

Another alternative is giving the player -1 death manually. To do this, you need to change these lines:

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

if(is_user_alive(id))
	user_silentkill(id)
To this:

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

if(is_user_alive(id))
{
	user_silentkill(id)
	cs_set_user_deaths(id, cs_get_user_deaths(id) - 1)
}

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

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
Администратор
Администратор
Мнения: 5041
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 56 пъти
Получена благодарност: 470 пъти
Години: 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!

Отговори

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

Кой е на линия

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