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

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


ryancoolround

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

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

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

Кстати, @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 В этой теме.

Спойлер

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

 

Мир изменился, он стал другим!

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

  • 11 месяцев спустя...
  • Администратор

Скомпилированная версия плагина Info Trigger на версии SourceMod 1.11.0.6905.

20220716081801_1.jpg

infotrigger.smx infotrigger.sp

Мир изменился, он стал другим!

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

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

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

    На этой неделе никто репутацию не получал

  • Последние достижения

    • GAMADA повысил звание
      Lvl 1
    • Darya повысил звание
      Lvl 14
    • Mad.Eagle повысил звание
      Lvl 5
    • Mad.Eagle повысил звание
      Lvl 4
    • Plamen474 получил значок
      Бета
×
×
  • Создать...