Перейти к содержанию

Триггер команды по запросу


Ry@N

Рекомендуемые сообщения

  • Администратор

Следующий код способен выводить определенную информацию игроку, если он будет набирать необходимые триггер команды, которые вы интегрируете в этот код. Интегрируется все настолько легко, что даже я такой паразит, смог его переделать под свои нужды.

Кстати, @dr.lex считает этот код мусором 🙂 Но я все же им поделюсь, так как форум в первую очередь рассчитан на новичков.

Пример работы:

Сам код, работать в L4D2 будет:

#include <sourcemod>
#include <sdktools>
#include <colors>

#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo =
{
    name = "Информация по триггер запосам",
    author = "L4D2Noob.Ru",
    description = "Отображает необходимую информацию по триггер запросам в чате",
    version = "3.5",
    url = "https://l4d2noob.ru/"
};

ConVar g_site;
ConVar g_grup;
ConVar g_easteregg;
ConVar g_adminka;
char g_sBuffer[64];

public void OnPluginStart()
{
    RegConsoleCmd("sm_site", CommandSite);
    RegConsoleCmd("sm_grup", CommandGrup);
    RegConsoleCmd("sm_easteregg", CommandEasteregg);
	RegConsoleCmd("sm_adminka", CommandAdminka);
    
    g_site = CreateConVar("sm_link_site", "https://l4d2noob.ru/");
    g_grup = CreateConVar("sm_link_grup", "https://steamcommunity.com/groups/l4d2noobru");
    g_easteregg = CreateConVar("sm_link_easteregg", "Торта нет");
	g_adminka = CreateConVar("sm_link_adminka", "На форуме бесплатно!");
    
    
}

public Action CommandSite(int client, int args)
{
    g_site.GetString(g_sBuffer, sizeof(g_sBuffer));
    CPrintToChat(client, "» \x04Форум для админов и кодеров:\x04 \x05%s", g_sBuffer);
    
    return Plugin_Handled;
}

public Action CommandGrup(int client, int args)
{
    g_grup.GetString(g_sBuffer, sizeof(g_sBuffer));
    CPrintToChat(client, "» \x04Группа в Steam:\x04 \x05%s", g_sBuffer);
    
    return Plugin_Handled;
} 

public Action CommandEasteregg(int client, int args)
{
    g_easteregg.GetString(g_sBuffer, sizeof(g_sBuffer));
    CPrintToChat (client, "» \x04[ОТСЫЛКА]: \x04 \x05%s", g_sBuffer);
    
    return Plugin_Handled;
} 

public Action CommandAdminka(int client, int args)
{
    g_adminka.GetString(g_sBuffer, sizeof(g_sBuffer));
    CPrintToChat (client, "» \x04[СТАТЬ АДМИНОМ]: \x04 \x05%s", g_sBuffer);
    
    return Plugin_Handled;
} 

Ну и готовый пример можно посмотреть на нашем VS#3 сервере.

Я не ищу ничего логичного, например денег. Меня нельзя купить, запугать, аргументировать или договориться со мной. Я просто хочу смотреть, как горит мир.

Ссылка на комментарий
Поделиться на другие сайты

5 часов назад, Ryancoolround сказал:

Следующий код способен выводить определенную информацию игроку, если он будет набирать необходимые триггер команды, которые вы интегрируете в этот код. Интегрируется все настолько легко, что даже я такой паразит, смог его переделать под свои нужды.

Кстати, @dr.lex считает этот код мусором 🙂 Но я все же им поделюсь, так как форум в первую очередь рассчитан на новичков.

Пример работы:

20200503141401_1.jpg

Сам код, работать в L4D2 будет:


#include <sourcemod>
#include <sdktools>
#include <colors>

#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo =
{
    name = "Информация по триггер запосам",
    author = "L4D2Noob.Ru",
    description = "Отображает необходимую информацию по триггер запросам в чате",
    version = "3.5",
    url = "https://l4d2noob.ru/"
};

ConVar g_site;
ConVar g_grup;
ConVar g_easteregg;
ConVar g_adminka;
char g_sBuffer[64];

public void OnPluginStart()
{
    RegConsoleCmd("sm_site", CommandSite);
    RegConsoleCmd("sm_grup", CommandGrup);
    RegConsoleCmd("sm_easteregg", CommandEasteregg);
	RegConsoleCmd("sm_adminka", CommandAdminka);
    
    g_site = CreateConVar("sm_link_site", "https://l4d2noob.ru/");
    g_grup = CreateConVar("sm_link_grup", "https://steamcommunity.com/groups/l4d2noobru");
    g_easteregg = CreateConVar("sm_link_easteregg", "Торта нет");
	g_adminka = CreateConVar("sm_link_adminka", "На форуме бесплатно!");
    
    
}

public Action CommandSite(int client, int args)
{
    g_site.GetString(g_sBuffer, sizeof(g_sBuffer));
    CPrintToChat(client, "» \x04Форум для админов и кодеров:\x04 \x05%s", g_sBuffer);
    
    return Plugin_Handled;
}

public Action CommandGrup(int client, int args)
{
    g_grup.GetString(g_sBuffer, sizeof(g_sBuffer));
    CPrintToChat(client, "» \x04Группа в Steam:\x04 \x05%s", g_sBuffer);
    
    return Plugin_Handled;
} 

public Action CommandEasteregg(int client, int args)
{
    g_easteregg.GetString(g_sBuffer, sizeof(g_sBuffer));
    CPrintToChat (client, "» \x04[ОТСЫЛКА]: \x04 \x05%s", g_sBuffer);
    
    return Plugin_Handled;
} 

public Action CommandAdminka(int client, int args)
{
    g_adminka.GetString(g_sBuffer, sizeof(g_sBuffer));
    CPrintToChat (client, "» \x04[СТАТЬ АДМИНОМ]: \x04 \x05%s", g_sBuffer);
    
    return Plugin_Handled;
} 

Ну и готовый пример можно посмотреть на нашем VS#3 сервере.

По моему не обязательно опубликовывать мое мнение с разговора ЛС.

Почему я считаю данный код мусором.
1. Зачем использовать библиотеку  цветов, если они не используются?

#include <colors>
с функцией CPrintToChat

Не проще использовать стандартный

PrintToChat

2. Делать куча команд, о которых игрок по сути даже не знает.

RegConsoleCmd("sm_site", CommandSite);
RegConsoleCmd("sm_grup", CommandGrup);
RegConsoleCmd("sm_easteregg", CommandEasteregg);
RegConsoleCmd("sm_adminka", CommandAdminka);


По мне лучше сделать примерно так (не проверял)

#include <sourcemod>
#include <sdktools>

#pragma semicolon 1
#pragma newdecls required

ConVar hm_link_site;
ConVar hm_link_grup;
ConVar hm_link_easteregg;
ConVar hm_link_adminka;

public Plugin myinfo =
{
    name = "Спам информация",
    author = "dr lex",
    description = "Сообщение в чате (типа рекламы)",
    version = "0.1",
    url = "https://steamcommunity.com/id/dr_lex"
};

public void OnPluginStart()
{
	hm_link_site = CreateConVar("hm_link_site", "https://l4d2noob.ru/", "", FCVAR_NONE|FCVAR_NOTIFY);
	hm_link_grup = CreateConVar("hm_link_grup", "https://steamcommunity.com/groups/l4d2noobru", "", FCVAR_NONE|FCVAR_NOTIFY);
	hm_link_easteregg = CreateConVar("hm_link_easteregg", "Торта нет", "", FCVAR_NONE|FCVAR_NOTIFY);
	hm_link_adminka = CreateConVar("hm_link_adminka", "На форуме бесплатно!", "", FCVAR_NONE|FCVAR_NOTIFY);
}

public void OnMapStart()
{
	CreateTimer(60.0, HxTimer, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}

public Action HxTimer(Handle timer)
{
	char link_site[96];
	hm_link_site.GetString(link_site, sizeof(link_site));
	
	char link_grup[96];
	hm_link_grup.GetString(link_grup, sizeof(link_grup));
	
	char link_easteregg[96];
	hm_link_easteregg.GetString(link_easteregg, sizeof(link_easteregg));
	
	char link_adminka[96];
	hm_link_adminka.GetString(link_adminka, sizeof(link_adminka));
	
	switch (GetRandomInt(1, 4))
	{
		case 1: PrintToChatAll("» \x04[ОТСЫЛКА]: \x04 \x05%s", link_site);
		case 2: PrintToChatAll("» \x04Форум для админов и кодеров:\x04 \x05%s", link_easteregg);
		case 3: PrintToChatAll("» \x04Группа в Steam:\x04 \x05%s", link_grup);
		case 4: PrintToChatAll("» \x04[\x03СТАТЬ АДМИНОМ\x04]\x03: \x04 \x05%s", link_adminka);
	}
}

 

b_350_20_692108_381007_ffffff_000000.png

b_350_20_692108_381007_ffffff_000000.png

 

Ссылка на комментарий
Поделиться на другие сайты

  • Администратор

@dr.lex дружище. Я всего лишь учусь, и делюсь результатами. И твой пост научит меня еще многому. Извини, если ты понял что то не так, я не хотел тебя обидеть.

Этот плагин (Код) сам по себе необязателен. Так как, к примеру я использую MySQL рекламу, которая модерируется в WEB панели, и там добавляется куча серверов, где надо отображать эту рекламу. И само собой все можно настроить в этой панели. Этот код идет же, как простейший пример, того что у меня хоть что то получается.

Я не ищу ничего логичного, например денег. Меня нельзя купить, запугать, аргументировать или договориться со мной. Я просто хочу смотреть, как горит мир.

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, BoSSICoM сказал:

@dr.lex, просто он нашел человека который его понимает)

я сам себя понять не могу) а тут кто-то меня))

 

 

20 минут назад, Ryancoolround сказал:

@dr.lex дружище. Я всего лишь учусь, и делюсь результатами. И твой пост научит меня еще многому. Извини, если ты понял что то не так, я не хотел тебя обидеть.

Этот плагин (Код) сам по себе необязателен. Так как, к примеру я использую MySQL рекламу, которая модерируется в WEB панели, и там добавляется куча серверов, где надо отображать эту рекламу. И само собой все можно настроить в этой панели. Этот код идет же, как простейший пример, того что у меня хоть что то получается.

я не против) просто иногда моё мнение и ответы в ЛС могут быть не особо понятны для многих)

b_350_20_692108_381007_ffffff_000000.png

b_350_20_692108_381007_ffffff_000000.png

 

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, dr.lex сказал:

я не против) просто иногда мои мнение и ответы в ЛС могут быть не особо понятны для многих)

Если тебя кто-то не может понять это значит что ты слишком умён для этого человека)

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...
  • 10 месяцев спустя...
  • Администратор
В 03.05.2020 в 14:21, Ry@N сказал:
#include <sourcemod>
#include <sdktools>
#include <colors>

#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo =
{
    name = "Информация по триггер запосам",
    author = "L4D2Noob.Ru",
    description = "Отображает необходимую информацию по триггер запросам в чате",
    version = "3.5",
    url = "https://l4d2noob.ru/"
};

ConVar g_site;
ConVar g_grup;
ConVar g_easteregg;
ConVar g_adminka;
char g_sBuffer[64];

public void OnPluginStart()
{
    RegConsoleCmd("sm_site", CommandSite);
    RegConsoleCmd("sm_grup", CommandGrup);
    RegConsoleCmd("sm_easteregg", CommandEasteregg);
	RegConsoleCmd("sm_adminka", CommandAdminka);
    
    g_site = CreateConVar("sm_link_site", "https://l4d2noob.ru/");
    g_grup = CreateConVar("sm_link_grup", "https://steamcommunity.com/groups/l4d2noobru");
    g_easteregg = CreateConVar("sm_link_easteregg", "Торта нет");
	g_adminka = CreateConVar("sm_link_adminka", "На форуме бесплатно!");
    
    
}

public Action CommandSite(int client, int args)
{
    g_site.GetString(g_sBuffer, sizeof(g_sBuffer));
    CPrintToChat(client, "» \x04Форум для админов и кодеров:\x04 \x05%s", g_sBuffer);
    
    return Plugin_Handled;
}

public Action CommandGrup(int client, int args)
{
    g_grup.GetString(g_sBuffer, sizeof(g_sBuffer));
    CPrintToChat(client, "» \x04Группа в Steam:\x04 \x05%s", g_sBuffer);
    
    return Plugin_Handled;
} 

public Action CommandEasteregg(int client, int args)
{
    g_easteregg.GetString(g_sBuffer, sizeof(g_sBuffer));
    CPrintToChat (client, "» \x04[ОТСЫЛКА]: \x04 \x05%s", g_sBuffer);
    
    return Plugin_Handled;
} 

public Action CommandAdminka(int client, int args)
{
    g_adminka.GetString(g_sBuffer, sizeof(g_sBuffer));
    CPrintToChat (client, "» \x04[СТАТЬ АДМИНОМ]: \x04 \x05%s", g_sBuffer);
    
    return Plugin_Handled;
} 

Кстати, надо не забыть... Это именно то, о чем просил @CHIKI_BRIKI В этой теме.

Спойлер

На это сообщение необязательно отвечать. Это просто напоминание для самого себя.

 

Я не ищу ничего логичного, например денег. Меня нельзя купить, запугать, аргументировать или договориться со мной. Я просто хочу смотреть, как горит мир.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Похожий контент

    • Автор Ry@N
      Организация fnatic сегодня празднует 18-й день рождения!
      Какие 3 игрока этой организации первыми приходят вам на ум, когда вы видите это лого?

    • Автор Ry@N
      Это плагин для менеджмента (управления) каткой. Если админ вводит команду sm_winner ct/t, то игра завершается со счетом в пользу выбранной команды.
      Плагин проверялся в игре Counter-Strike: Source, на версии SourceMod 1.10.0.6501.
      Установка:
      Скомпилируйте .sp файл и поместите его в /addons/sourcemod/plugins Или поместите уже готовый .smx файл в /addons/sourcemod/plugins Сделайте рестарт сервера. #pragma newdecls required #include <sourcemod> #include <sdktools> #include <cstrike> public Plugin myinfo = { name = "Winner", author = "Ilusion9", description = "При прописи команды sm_winner (CT/T) идет принудительное завершение игры и объявление победителя", version = "1.0", url = "https://ip-gamers.net/" }; ConVar g_Cvar_MaxRounds; ConVar g_Cvar_Timelimit; ConVar g_Cvar_RoundRestartDelay; public void OnPluginStart() { g_Cvar_MaxRounds = FindConVar("mp_maxrounds"); g_Cvar_Timelimit = FindConVar("mp_timelimit"); g_Cvar_RoundRestartDelay = FindConVar("mp_round_restart_delay"); RegConsoleCmd("sm_winner", Command_Winner); } public Action Command_Winner(int client, int args) { char arg[64]; GetCmdArg(1, arg, sizeof(arg)); if (StrEqual(arg, "T", false)) { EndGame(CS_TEAM_T); } else if (StrEqual(arg, "CT", false)) { EndGame(CS_TEAM_CT); } return Plugin_Handled; } void EndGame(int winner) { if (winner == CS_TEAM_T) { CS_SetTeamScore(CS_TEAM_T, g_Cvar_MaxRounds.IntValue / 2); SetTeamScore(CS_TEAM_T, g_Cvar_MaxRounds.IntValue / 2); CS_SetTeamScore(CS_TEAM_CT, 0); SetTeamScore(CS_TEAM_CT, 0); CS_TerminateRound(g_Cvar_RoundRestartDelay.FloatValue, CSRoundEnd_TerroristWin); } else { CS_SetTeamScore(CS_TEAM_CT, g_Cvar_MaxRounds.IntValue / 2); SetTeamScore(CS_TEAM_CT, g_Cvar_MaxRounds.IntValue / 2); CS_SetTeamScore(CS_TEAM_T, 0); SetTeamScore(CS_TEAM_T, 0); CS_TerminateRound(g_Cvar_RoundRestartDelay.FloatValue, CSRoundEnd_CTWin); } g_Cvar_Timelimit.SetInt(1); }  
      winner.sp winner.smx
    • Автор Ry@N
      Плагин позволяет создать развернутые паки боеприпасов на карте, вплоть до 32 штук, и сохранить их на карте, для следующих игр.
      Админские команды (Требуется флаг Z):
      sm_upgrade_spawn - Спавнит пак патронов у вашего прицела. Использование: sm_upgrade_spawn <тип: 1 = Зажигательные; 2 = Разрывные; 3 = Случайно> sm_upgrade_spawn_save - Создает пак патронов у вашего прицела и сохраняет его в конфигурации. Использование: sm_upgrade_spawn_save <тип: 1 = Зажигательные; 2 = Разрывные; 3 = Случайно> sm_upgrade_spawn_del - Удаляет пак патронов, на который вы указываете, и удаляет из конфигурации, если она сохранена. sm_upgrade_spawn_clear - Удаляет все паки патронов, созданные этим плагином, с текущей карты. sm_upgrade_spawn_wipe - Удаляет все паки патронов с текущей карты и удаляет их из конфигурации. sm_upgrade_spawn_glow - Переключите, чтобы включить ауру на всех паках, чтобы увидеть, где они размещены. sm_upgrade_spawn_list - Отобразите список позиций и количество размещенных паков. sm_upgrade_spawn_tele - Телепорт к паку с патронами sm_upgrade_spawn_ang - Отображает меню для настройки угла наклона прицела, под которым находится пак с патронами. sm_upgrade_spawn_pos - Отображает меню для настройки источника пакета обновлений, при котором ваше прицел закрывается. При первом включении плагина генерируется следующий CFG файл:
      // This file was auto-generated by SourceMod (v1.10.0.6492) // ConVars for plugin "l4d2_upgrade_spawn.smx" // 0=Включено, 1=Выключено. // - // Default: "1" l4d2_upgrade_spawn_allow "1" // Включите плагин в этих режимах игры, разделяя их запятыми (без пробелов). (Пусто = все). // - // Default: "" l4d2_upgrade_spawn_modes "" // Отключите плагин в этих режимах игры через запятую (без пробелов). (Пусто = нет). // - // Default: "" l4d2_upgrade_spawn_modes_off "" // Включите плагин в этих режимах игры. 0 = Все, 1 = Кооператив, 2 = Выживание, 4 = Сражение, 8 = Сбор. Сложите числа. // - // Default: "0" l4d2_upgrade_spawn_modes_tog "0" // -1 = Все, 0 = Нет. В противном случае случайным образом выберите это количество пакетов обновления для появления из конфигурации карты. // - // Default: "-1" l4d2_upgrade_spawn_random "-1" Установка:
      Скомпилировать .sp файл на версии SM 1.10.0.6492 и поместить получившийся .smx файл в /left4dead2/addons/sourcemod/plugins Либо уже воспользоваться нашим .smx файлом (Скомпилированно на SM 1.10.0.6492) Сделать рестарт сервера. l4d2_upgrade_spawn.smx l4d2_upgrade_spawn.sp
    • Автор Ry@N
      В общем я еще раз пытался сделать Swapper для L4D2, вроде снова получилось, но время от времени наблюдается еще тот баг из этой темы:
      Поэтому я этот плагин помещаю в раздел нестабильных. Он работает, но есть решения получше.
      SwitchPlayers.sp SwitchPlayers.smx
    • Автор Ry@N
      Просто полезный инструмент для перемещения игрока из команды в команду. Проверено на нашем сервере Left 4 Dead 2. В панель администратора добавляется 4 новых раздела.
      Команды:
      sm_swap <игрок> - поменять местами команду игрока (ов). sm_swap @all - поменять местами сразу всех игроков sm_swapround <игрок> - поменять местами команду игрока (ов) в конце раунда / при смерти игрока. sm_exch <игрок 1> <игрок 2> - меняет местами двух игроков в противоположных командах. sm_exchround <игрок 1> <игрок 2> - меняет местами двух игроков в противоположных командах в конце раунда / при смерти игрока. Перемещение игрока происходит мгновенно. Без таймеров и кулдаунов.
      swapper.zip
  • Как надеть наручники на однорукого человека?

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу


×
×
  • Создать...