GoSpec [ /spec; /back; /change ]

Одобрените от нас плъгини. Моля, докладвайте ако забележите бъг с някой от плъгините в този раздел.
Аватар
LoShIaA
Извън линия
Потребител
Потребител
Мнения: 323
Регистриран на: 20 Окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 9 пъти

GoSpec [ /spec; /back; /change ]

Мнение от LoShIaA » 18 Окт 2017, 10:03

Замених го, но сега хем показва, че се самоубивам, хем отчита и умирания пак.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom » 18 Окт 2017, 13:12

Ами толкова правилно работят въпросните функции. Остави го както беше (user_silentkill), и под него добави cs_set_user_deaths(id, cs_get_user_deaths(id) - 1).

Аватар
LoShIaA
Извън линия
Потребител
Потребител
Мнения: 323
Регистриран на: 20 Окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 9 пъти

GoSpec [ /spec; /back; /change ]

Мнение от LoShIaA » 18 Окт 2017, 13:39

Супер, така работи. Сега нито показва, че умирам нито начислява умирания, но при компилация излезна едно предупреждение.
crx_gospec.sma(63) : warning 217: loose indentation - тази грешка заради някакъв TAB ли се получава?

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

[#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", "d")
	g_eCvars[gospec_change_flag] = register_cvar("gospec_change_flag", "b")
	g_eCvars[gospec_respawn] = register_cvar("gospec_respawn", "1")
	CC_SetPrefix("&x04[&x03GoSpec&x04]")
}

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))
			user_silentkill(id)
			cs_set_user_deaths(id, cs_get_user_deaths(id) - 1)
	}
	
	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)
			cs_set_user_deaths(id, cs_get_user_deaths(id) - 1)
			
			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
}
/code]

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom » 18 Окт 2017, 13:40

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

if(is_user_alive(id))
	user_silentkill(id)
	cs_set_user_deaths(id, cs_get_user_deaths(id) - 1)
Това не е правилно. Без скоби може да се работи само ако става дума за един ред под if. В този случай трябва да стане така:

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

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

Аватар
LoShIaA
Извън линия
Потребител
Потребител
Мнения: 323
Регистриран на: 20 Окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 9 пъти

GoSpec [ /spec; /back; /change ]

Мнение от LoShIaA » 04 Ное 2017, 16:42

Добре, вече всичко е както трябва. Благодаря ти. Може би ще е добре да го добавиш това към самият плъгин.

Едит: тук трябва да добавя, че забелязах, че понякога при местене към спектатор и след това към даден отбор остава понякога един труп на земята (ползвам го за respawn), това го забелязах, когато се трансферирах по 100 (образно казано) пъти за да мога да накарам admin models плъгина (за, който съм пуснал отделна тема) да бъгне.

Искам да добавя, че при първата снимка пред контра-терориста има труп, който не се вижда от самия контра-терорист, но от страна на терориста се вижда, но сега снимката е на другия компютър и не ми се качва.
Вмятам, че тестовете са правени от лаптопа ми и настолния ми компютър тоест само двама човека сме в сървъра и двамата са от мойте компютри. Също така ще добавя, че трупът, който се вижда е на контра-терориста, който вече е жив и е заснето от неговата камера.

Най-важното е, че не мога да кажа дали това го има при оригиналния код или само при този, който едитнах, (спрямо мнението над моето) защото сега не ми се провежда и тест с оригиналния код.

Проблема нито е страшен нито пречи на самата игра. Случва се изключително рядко. Искам само да го съобщя на автора.
Прикачени файлове
20171103192326_1.jpg
20171103192326_1.jpg (282.53 KiB) Преглеждано 4822 пъти
20171103192326_1.jpg
20171103192326_1.jpg (282.53 KiB) Преглеждано 4822 пъти
20171103191753_1.jpg
20171103191753_1.jpg (328.34 KiB) Преглеждано 4822 пъти
20171103191753_1.jpg
20171103191753_1.jpg (328.34 KiB) Преглеждано 4822 пъти

Аватар
Maverick
Извън линия
Рекламатор
Рекламатор
Мнения: 254
Регистриран на: 22 Окт 2016, 17:05
Местоположение: 93.123.18.81:27017
Се отблагодари: 34 пъти
Получена благодарност: 14 пъти
Обратна връзка:

GoSpec [ /spec; /back; /change ]

Мнение от Maverick » 13 Дек 2017, 10:32

Плъгина има някакъв, бъг поне при мен. Както съм си spec си ме мести в отбор после пак си ме връща. :mad:
https://d1playscdntv-a.akamaihd.net/vid ... d/1080.mp4

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

GoSpec [ /spec; /back; /change ]

Мнение от OciXCrom » 13 Дек 2017, 19:51

Не е от плъгина. Вчера написах това в друга тема:
Всеки плъгин, който изпраща чат съобщения, може да създаде такъв проблем, тъй като за да изпрати чат съобщение с друг цвят (червен/син/бял), плъгинът променя отбора на играча, изпраща съобщението с новия отборен цвят и го връща в стария, обаче това става бързо и не се забелязва. Ако някой плъгин не е правилно направен, може да променя отбора, но да не го връща стария.
В случая някой плъгин прекалено бавно прави тази процедура и се забелязва.

Аватар
viewsonic
Извън линия
Потребител
Потребител
Мнения: 135
Регистриран на: 09 Юни 2018, 17:46
Се отблагодари: 22 пъти
Обратна връзка:

GoSpec [ /spec; /back; /change ]

Мнение от viewsonic » 02 Окт 2018, 21:06

Oci възможно ли е да се направи за всички играчи да го ползват не само админи ?

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

93.123.18.76:27016

Аватар
7331
Извън линия
Потребител
Потребител
Мнения: 52
Регистриран на: 06 Авг 2018, 13:23
Местоположение: nextmap
Се отблагодари: 18 пъти
Получена благодарност: 5 пъти

GoSpec [ /spec; /back; /change ]

Мнение от 7331 » 02 Окт 2018, 21:14

viewsonic написа: 02 Окт 2018, 21:06 Oci възможно ли е да се направи за всички играчи да го ползват не само админи ?

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

gospec_spec_flag "e" -- флагът за достъп до командите /spec и /back.
gospec_change_flag "e" -- флагът за достъп до командата /change.
Предполагам знаеш как да смениш флага, за да го използват и други.
Последно промяна от 7331 на 02 Окт 2018, 21:19, променено общо 2 пъти.
:pepo_christ2:

Аватар
distant
Извън линия

GoSpec [ /spec; /back; /change ]

Мнение от distant » 02 Окт 2018, 21:16

viewsonic написа: 02 Окт 2018, 21:06 Oci възможно ли е да се направи за всички играчи да го ползват не само админи ?
Смени квара на:
gospec_change_flag "" gospec_spec_flag ""
Последно промяна от distant на 02 Окт 2018, 22:14, променено общо 1 път.

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

Обратно към “Одобрени плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 8 госта