Проблем със admin_bury

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
southdivision
Извън линия
Потребител
Потребител
Мнения: 279
Регистриран на: 14 Окт 2016, 23:17
Местоположение: София
Се отблагодари: 8 пъти
Получена благодарност: 5 пъти
Обратна връзка:

Проблем със admin_bury

Мнение от southdivision » 17 Мар 2017, 14:33

Здравейте, искам на командите amx_bury и amx_unbury да могат да се ползват по веднъж в конзолата т.е ако се напише примерно amx_bury в кознолата за втори път да дава return и да пише,че командата вече е използвана

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

public admin_bury(id,level,cid){
	if (!cmd_access(id,level,cid,2))
		return PLUGIN_HANDLED

	new arg[32], admin_name[32], player_name[32], admin_authid[36], player_authid[36]
	read_argv(1,arg,31)
	get_user_name(id,admin_name,31)
	get_user_authid(id,admin_authid,35)

	if (arg[0]=='@'){
		new players[32], inum
		if (equali("T",arg[1]))		copy(arg[1],31,"TERRORIST")
		if (equali("ALL",arg[1]))	get_players(players,inum,"a")
		else						get_players(players,inum,"ae",arg[1])

		if (inum == 0) {
			console_print(id,"%L", LANG_PLAYER, AMX_SUPER_NO_PLAYERS)
			return PLUGIN_HANDLED
		}

		for(new a=0;a<inum;++a){
			if (get_user_flags(players[a])&ADMIN_IMMUNITY && players[a] != id){
				get_user_name(players[a],player_name,31)
				console_print(id,"%L", LANG_PLAYER, AMX_SUPER_TEAM_IMMUNITY,player_name)
				continue
			}
			bury_player(id,players[a])
		}
		switch(get_pcvar_num(amx_show_activity)) {
			case 2:	client_print(0,print_chat,"%L", LANG_PLAYER, "AMX_SUPER_BURY_TEAM_CASE2",admin_name,arg[1])
			case 1:	client_print(0,print_chat,"%L", LANG_PLAYER, "AMX_SUPER_BURY_TEAM_CASE1",arg[1])
			}
		log_amx("%L", LANG_SERVER, "AMX_SUPER_BURY_TEAM_LOG",admin_name,admin_authid,arg[1])
	}
	else	{
		new player = cmd_target(id,arg,7)
		if (!player) return PLUGIN_HANDLED
		bury_player(id,player)

		get_user_name(player,player_name,31)
		get_user_authid(player,player_authid,35)

		switch(get_pcvar_num(amx_show_activity))	{
			case 2:	client_print(0,print_chat,"%L", LANG_PLAYER, "AMX_SUPER_BURY_PLAYER_CASE2",admin_name,player_name)
			case 1:	client_print(0,print_chat,"%L", LANG_PLAYER, "AMX_SUPER_BURY_PLAYER_CASE1",player_name)
			}
		log_amx("%L", LANG_SERVER, "AMX_SUPER_BURY_PLAYER_LOG",admin_name,admin_authid,player_name,player_authid)
	}
	return PLUGIN_HANDLED
}

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

public admin_unbury(id,level,cid){
	if (!cmd_access(id,level,cid,2))
		return PLUGIN_HANDLED

	new arg[32], admin_name[32], player_name[32], admin_authid[36], player_authid[36]
	read_argv(1,arg,31)
	get_user_name(id,admin_name,31)
	get_user_authid(id,admin_authid,35)

	if (arg[0]=='@'){
		new players[32], inum
		if (equali("T",arg[1]))		copy(arg[1],31,"TERRORIST")
		if (equali("ALL",arg[1]))	get_players(players,inum,"a")
		else						get_players(players,inum,"ae",arg[1])

		if (inum == 0) {
			console_print(id,"%L", LANG_PLAYER, AMX_SUPER_NO_PLAYERS)
			return PLUGIN_HANDLED
		}

		for(new a=0;a<inum;++a){
			if (get_user_flags(players[a])&ADMIN_IMMUNITY && players[a] != id){
				get_user_name(players[a],player_name,31)
				console_print(id,"%L", LANG_PLAYER, AMX_SUPER_TEAM_IMMUNITY,player_name)
				continue
			}
			unbury_player(id,players[a])
		}
		switch(get_pcvar_num(amx_show_activity)) {
			case 2:	client_print(0,print_chat,"%L", LANG_PLAYER, "AMX_SUPER_UNBURY_TEAM_CASE2",admin_name,arg[1])
			case 1:	client_print(0,print_chat,"%L", LANG_PLAYER, "AMX_SUPER_UNBURY_TEAM_CASE1",arg[1])
			}
		log_amx("%L", LANG_SERVER, "AMX_SUPER_UNBURY_TEAM_LOG",admin_name,admin_authid,arg[1])
	}
	else	{
		new player = cmd_target(id,arg,7)
		if (!player) return PLUGIN_HANDLED
		unbury_player(id,player)

		get_user_name(player,player_name,31)
		get_user_authid(player,player_authid,35)

		switch(get_pcvar_num(amx_show_activity))	{
			case 2:	client_print(0,print_chat,"%L", LANG_PLAYER, "AMX_SUPER_UNBURY_PLAYER_CASE2",admin_name,player_name)
			case 1:	client_print(0,print_chat,"%L", LANG_PLAYER, "AMX_SUPER_UNBURY_PLAYER_CASE1",player_name)
			}
		log_amx("%L", LANG_SERVER, "AMX_SUPER_UNBURY_PLAYER_LOG",admin_name,admin_authid,player_name,player_authid)
	}
	return PLUGIN_HANDLED
}
Също така искам да ми обясните нормалните стойности на този код понеже представлява един вид "дрогиране" искам да е със стойности който правят нормален играча. Мисля,че write_byte трябва да е 0,но не съм сигурен

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


			message_begin( MSG_ONE, gmsg_SetFOV, { 0, 0, 0 }, players[i] )
			write_byte( 180 )
			message_end( )
			
Последно промяна от southdivision на 17 Мар 2017, 21:23, променено общо 1 път.

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

Re: Редактиране на код

Мнение от OciXCrom » 17 Мар 2017, 14:54

Ъъъъ... Първо редактиране на заглавието. :)

Имаш предвид да се ползва само веднъж от всеки играч или веднъж от всички? Също така - отнася се за всяка отделно, или двете наведнъж?
Мисля,че write_byte трябва да е 0,но не съм сигурен
Не е ли по-добре сам да опиташ първо? Да, 0 трябва да е.

Аватар
southdivision
Извън линия
Потребител
Потребител
Мнения: 279
Регистриран на: 14 Окт 2016, 23:17
Местоположение: София
Се отблагодари: 8 пъти
Получена благодарност: 5 пъти
Обратна връзка:

Re: Редактиране на код

Мнение от southdivision » 17 Мар 2017, 17:35

Целта е просто да не може да се ползва командата аmx_bury повече от веднъж защото ги "копае" под земята и се получава един вид бъг

Командата се ползва от админи с флаг за БАН. Използвам AMX Super All-In-One Commands v3.8.1

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Re: Редактиране на код

Мнение от TheRedShoko » 17 Мар 2017, 19:40

Успя да напишеш това, а не и да си поправиш заглавието? По-скоро ще ти метна темата в коша, отколкото да ти помогна. Поправи си заглавието и ще ти се направи. Трябва да се научите да спазвате правилата, за да може да се разбере какво се случва в този форум и като се търси нещо, да не се чудиш какво да търсиш.

Аватар
RideeR ;]
Извън линия
Потребител
Потребител
Мнения: 170
Регистриран на: 05 Окт 2016, 21:30
Получена благодарност: 3 пъти

Re: Редактиране на код

Мнение от RideeR ;] » 17 Мар 2017, 21:31

Как очакваш да се направи, като даваш само част от кода, където е командата... А и защо криеш кода, като го има и по форумите?

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Re: Проблем със admin_bury

Мнение от TheRedShoko » 18 Мар 2017, 01:10

Добави си един bool array с 33 слота и при bury задаваш клетката, индекс - индекса играча, на true, съответно добавяш и проверките в началото на командата, а при unbury го сетваш на false. Добавяш при spawn да се сетва на false клетката и готово.

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

Обратно към “Заявки за плъгини”

Кой е на линия

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