Добавяне на "изчакване" към "auto join on connect".

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Добавяне на "изчакване" към "auto join on connect".

Мнение от iv69 » 22 Фев 2020, 12:15

Здравейте за пореден път от мен,
искам да помоля, ако е възможно, към плъгина auto_join_on_connect.amxx(или ако е по-лесно да се пренапише нов подобрен плъгин) да бъде добавено и едно "задържане" на действието на самия плъгин от примерно 30-40sec (да е дефинирано с квар) след connect-ването на играча и преди неговото автоматично разпределяне в един от двата отбора? Идеята е :
1. Играча да има време да види и разгледа по-спокойно motd-прозореца с правилата...
2. Ако иска след това - играча да може сам да се опита и да си избере отбор, преди плъгина да го е "разпределил принудително...
3. накрая - да няма прекалено дълго време хора в сървъра, които не играят, а заемат слот.

Не знам, но се надявам че това е изпълнимо ?

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

/* AMX Mod X
*   Auto Join on Connect
*
* (c) Copyright 2007 by VEN
*
* This file is provided as is (no warranties)
*
*     DESCRIPTION
*       Plugin allow to players automatically join team/team&class on connect.
*
*     CVARS
*       ajc_team (0: OFF, N: team index, 5: auto team, default: 5) - controls team join
*       ajc_class (0: OFF, N: class index, 5: auto class, default: 5) - controls class join
*       ajc_imm (0: OFF, 1: ON, default: 1) - don't affect on immuned players (ON/OFF)
*
*     CREDITS
*       Major__ - inquiry
*/

#include <amxmodx>

#define PLUGIN_NAME "Auto Join on Connect"
#define PLUGIN_VERSION "0.1"
#define PLUGIN_AUTHOR "VEN"

#define IMMUNITY_ACCESS_LEVEL ADMIN_IMMUNITY

#define AUTO_TEAM_JOIN_DELAY 0.1

#define TEAM_SELECT_VGUI_MENU_ID 2

new g_pcvar_team
new g_pcvar_class
new g_pcvar_imm

public plugin_init() {
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

	register_message(get_user_msgid("ShowMenu"), "message_show_menu")
	register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu")

	g_pcvar_team = register_cvar("ajc_team", "5")
	g_pcvar_class = register_cvar("ajc_class", "5")
	g_pcvar_imm = register_cvar("ajc_imm", "1")
}

public message_show_menu(msgid, dest, id) {
	if (!should_autojoin(id))
		return PLUGIN_CONTINUE

	static team_select[] = "#Team_Select"
	static menu_text_code[sizeof team_select]
	get_msg_arg_string(4, menu_text_code, sizeof menu_text_code - 1)
	if (!equal(menu_text_code, team_select))
		return PLUGIN_CONTINUE

	set_force_team_join_task(id, msgid)

	return PLUGIN_HANDLED
}

public message_vgui_menu(msgid, dest, id) {
	if (get_msg_arg_int(1) != TEAM_SELECT_VGUI_MENU_ID || !should_autojoin(id))
		return PLUGIN_CONTINUE

	set_force_team_join_task(id, msgid)

	return PLUGIN_HANDLED
}

bool:should_autojoin(id) {
	return (get_pcvar_num(g_pcvar_team) && !get_user_team(id) && !task_exists(id) && (!get_pcvar_num(g_pcvar_imm) || !(get_user_flags(id) & IMMUNITY_ACCESS_LEVEL)))
}

set_force_team_join_task(id, menu_msgid) {
	static param_menu_msgid[2]
	param_menu_msgid[0] = menu_msgid
	set_task(AUTO_TEAM_JOIN_DELAY, "task_force_team_join", id, param_menu_msgid, sizeof param_menu_msgid)
}

public task_force_team_join(menu_msgid[], id) {
	if (get_user_team(id))
		return

	static team[2], class[2]
	get_pcvar_string(g_pcvar_team, team, sizeof team - 1)
	get_pcvar_string(g_pcvar_class, class, sizeof class - 1)
	force_team_join(id, menu_msgid[0], team, class)
}

stock force_team_join(id, menu_msgid, /* const */ team[] = "5", /* const */ class[] = "0") {
	static jointeam[] = "jointeam"
	if (class[0] == '0') {
		engclient_cmd(id, jointeam, team)
		return
	}

	static msg_block, joinclass[] = "joinclass"
	msg_block = get_msg_block(menu_msgid)
	set_msg_block(menu_msgid, BLOCK_SET)
	engclient_cmd(id, jointeam, team)
	engclient_cmd(id, joinclass, class)
	set_msg_block(menu_msgid, msg_block)
}
Благодаря предварително на всеки отзовал се на молбата ми!

p.s. Ако е от значение - плъгина ми трябва за CSDM сървър със ботове и e на ReApi i REHlds . Знам, че автоматично избиране на отбора може да се включи дори без плъгин от файла game.cfg, но само това не ме устройва.

Аватар
JackEyedJones
Извън линия
Потребител
Потребител
Мнения: 399
Регистриран на: 10 Сеп 2018, 17:26
Местоположение: Plovdiv, Bulgaria, Europe, Entire World
Се отблагодари: 4 пъти
Получена благодарност: 69 пъти
Обратна връзка:

Добавяне на "изчакване" към "auto join on connect".

Мнение от JackEyedJones » 22 Фев 2020, 14:31

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

AUTO_TEAM_JOIN_DELAY 40.0
Това опита ли да го промениш преди темата ? :dtm: То определя след колко време ще се изпълни таск-а за настройване на отбора.

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Добавяне на "изчакване" към "auto join on connect".

Мнение от iv69 » 22 Фев 2020, 16:44

JackEyedJones написа: 22 Фев 2020, 14:31

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

AUTO_TEAM_JOIN_DELAY 40.0
Това опита ли да го промениш преди темата ? :dtm: То определя след колко време ще се изпълни таск-а за настройване на отбора.
Благодаря за точното и ясно обяснение, аз това не съм го видял,а и не го знаех ! :beer: :lock:

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

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

Кой е на линия

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