Редакция на redirect плъгин

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Редакция на redirect плъгин

Мнение от cgozzie » 11 Мар 2018, 20:34

Ще го тествам но иска ми се когато редиректна даден играч ако може да му изписва в чата съобщение примерно / Вие ще бъдете прехвърлен в друг наш сървър. Или също ако може и името на сървара да излиза в който ще бъде прехвърлен.
Изображение

Аватар
Fr0sTt
Извън линия
Потребител
Потребител
Мнения: 138
Регистриран на: 16 Фев 2018, 19:11

Редакция на redirect плъгин

Мнение от Fr0sTt » 11 Мар 2018, 21:17

Ето направо нова версия със избор за сървъри и съобщение в чата. Нужно е да имате cromchat.inc библиотеката, за да го компилирате:

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

#include <amxmodx>
#include <cromchat>

#define PLUGIN_NAME "Redirect Player Menu"
#define PLUGIN_VERSION "1.1"
#define PLUGIN_AUTHOR "Fr0sTt"

enum _:eData
{
	SERVER_NAME[32],
	SERVER_IP[16]
}

new const g_szServersList[][eData] =
{
	{ "Server Name 1", "127.0.0.0:27015" },
	{ "Server Name 2", "127.0.0.0:27016" },
	{ "Server Name 3", "127.0.0.0:27017" }
}

new g_iTempTarget[33]

public plugin_init() 
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
	register_cvar("RedirectPlayer", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
	
	register_concmd("amx_redirect_menu", "CmdRedirectMenu")
	register_clcmd("say /redirect", "CmdRedirectMenu")
	register_clcmd("say_team /redirect", "CmdRedirectMenu")
	CC_SetPrefix("&x04[Redirect]")
}

public CmdRedirectMenu(id)
{
	if (!(get_user_flags(id) & ADMIN_RCON)) return CC_SendMessage(id, "&x01You have no access to that command.")
	
	new iMenu = menu_create("\rRedirect Player Menu:^n\yChoose Player:", "CmdRedirectMenuHandle")
	
	new iPlayers[32], iNum, iTarget;
	new UserName[34], szTempID[10];
	get_players(iPlayers, iNum);
	for(new i; i < iNum; i++)
	{
		iTarget = iPlayers[i];
		if(!is_user_connected(iTarget)) continue;
		get_user_name(iTarget, UserName, sizeof UserName - 1);
		num_to_str(iTarget, szTempID, charsmax(szTempID));
		menu_additem(iMenu, UserName, szTempID);
	}
	menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, iMenu, 0);
	return PLUGIN_HANDLED
}

public CmdRedirectMenuHandle(id, iMenu, Item)
{
	if(Item == MENU_EXIT)
	{
		menu_destroy(iMenu);
		return PLUGIN_HANDLED;
	}
	new iData[6], iName[64];
	new access, callback;
	menu_item_getinfo(iMenu, Item, access, iData, charsmax(iData), iName, charsmax(iName), callback);
	g_iTempTarget[id] = str_to_num(iData)
	if(!is_user_connected(g_iTempTarget[id]))
	{
		CC_SendMessage(id, "&x01The player you chose is not in the server.")
		menu_destroy(iMenu);
		CmdRedirectMenu(id);
		return PLUGIN_HANDLED;
	}

	menu_destroy(iMenu);
	ServersMenu(id);
	return PLUGIN_HANDLED
}

public ServersMenu(id)
{
	new iMenu = menu_create("\rRedirect Player Menu:^n\yChoose Server:", "ServersMenuHandle")

	for (new i = 0, szItem[64]; i < sizeof g_szServersList; i++)
	{
		formatex(szItem, charsmax(szItem), "\y%s \d- \w%s", g_szServersList[i][SERVER_NAME], g_szServersList[i][SERVER_IP])
		menu_additem(iMenu, szItem)
	}
	menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, iMenu, 0);
	return PLUGIN_HANDLED
}

public ServersMenuHandle(id, iMenu, Item)
{
	if (Item == MENU_EXIT)
	{
		menu_destroy(iMenu)
		return PLUGIN_HANDLED
	}

	new szNames[2][32]
	get_user_name(id, szNames[0], charsmax(szNames[]))
	get_user_name(g_iTempTarget[id], szNames[1], charsmax(szNames[]))
	
	CC_SendMessage(id,"&x01ADMIN &x06%s &x01has redirected &x05%s &x01to &x04%s", szNames[0], szNames[1], g_szServersList[Item][SERVER_NAME])

	cmdExecute(g_iTempTarget[id], "connect %s", g_szServersList[Item][SERVER_IP])
	g_iTempTarget[id] = 0
	CmdRedirectMenu(id)
	return PLUGIN_HANDLED
}

stock cmdExecute(id, const szText[], any:...)
{
	#pragma unused szText
	
	if (id == 0 || is_user_connected(id))
	{
		new szMessage[256]
		
		format_args(szMessage, charsmax (szMessage), 1)
		
		message_begin(id == 0 ? MSG_ALL : MSG_ONE, 51, _, id)
		write_byte(strlen(szMessage) + 2)
		write_byte(10)
		write_string(szMessage)
		message_end()
	}
}

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Редакция на redirect плъгин

Мнение от cgozzie » 11 Мар 2018, 21:49

AMX Mod X Compiler 1.8.3-manual
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2013 AMX Mod X Team

Modified for www.Freakz.ro / amx.freakz.ro

player_redirect.sma(16) : warning 228: length of initialler exceeds size of the enum field
player_redirect.sma(16) : error 018: initialization data exceeds declared size

1 Error.
Compile failed!
Изображение

Аватар
deadlylord
Извън линия
Потребител
Потребител
Мнения: 572
Регистриран на: 04 Апр 2017, 16:35
Местоположение: Бургас, България
Получена благодарност: 2 пъти
Обратна връзка:

Редакция на redirect плъгин

Мнение от deadlylord » 11 Мар 2018, 22:34

Не използвай online компилатор, препоръчвам ти да прочетеш:
viewtopic.php?f=26&t=183#p183
Ако урока не е обновен, можеш да прочетеш моето мнение, как да се изтеглиш по-стара версия, за която е писан урока
viewtopic.php?f=26&t=183&start=20#p13002

Плъгина от темата не съм го тествал, но се компилира!

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Редакция на redirect плъгин

Мнение от cgozzie » 11 Мар 2018, 23:32

Да кода който е дал последния и аз го компилирам но както го е дал не ми се компилира когато си сложа мойти айпита.
Изображение

Аватар
Fr0sTt
Извън линия
Потребител
Потребител
Мнения: 138
Регистриран на: 16 Фев 2018, 19:11

Редакция на redirect плъгин

Мнение от Fr0sTt » 11 Мар 2018, 23:34

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

enum _:eData
{
	SERVER_NAME[32],
	SERVER_IP[16]
}
това го направи така --->

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

enum _:eData
{
	SERVER_NAME[32],
	SERVER_IP[30]
}

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Редакция на redirect плъгин

Мнение от cgozzie » 11 Мар 2018, 23:36

Мда вече стана остана да го тествам и ще пиша как е.
Изображение

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

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

Кой е на линия

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