Написание плагинов

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Вадька_0890, дык, у тебя не прописаны правильно настройки БД в sm_vacbans_db
C-подобный:
Exception reported: Could not find database conf "storage-local"
PHP:
    Format(desc, sizeof(desc), "%T", "ConVar_DB", LANG_SERVER);
    g_hCVDB = CreateConVar("sm_vacbans_db", "storage-local", desc);
PHP:
    "ConVar_DB"
    {
        "ru"        "Заголовок базы данных в databases.cfg, если нужны записи"
    }
Или нет соответствующей настройки для БД в ...\cstrike\addons\sourcemod\configs\databases.cfg
 
Последнее редактирование:

Felton

Участник
Сообщения
799
Реакции
59
Доброго времени суток .Вырежте с этого плагина
Игра Counter-Strike Source v.34
Вышел с Сервера
Заходит на Сервер
C-подобный:
#include <sourcemod>
#include <colors>

new String:teams[3][] = {"\x03Наблюдателей \x04✔","\x03Террористов \x04✔","\x03Контр-Террористов \x04✔"}

public Plugin:myinfo =
{
    name = "Game Joing",
    author = "GuDMan / RuskyDubl",
    description = "",
    version = "1.0",
    url = "N/A"
}
public OnPluginStart()
{
    HookEvent("player_disconnect", event_PlayerConn, EventHookMode_Pre);
    HookEvent("player_connect", event_PlayerConn, EventHookMode_Pre);
    HookEvent("player_team", event_PlayerTeam, EventHookMode_Pre);
}
//GameEvents Begin
public Action:event_PlayerTeam(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client=GetClientOfUserId(GetEventInt(event, "userid"))
    if (!dontBroadcast && !GetEventBool(event,"disconnect") && !GetEventBool(event,"silent") && IsClientConnected(client))
    {
        SetEventBroadcast(event, true);
        PrintToChatAll("\x04[\x03DM\x04] \x01%N \x04Зашёл за \x07%s",client,teams[GetEventInt(event,"team")-1]);
    }
}
public Action:event_PlayerConn(Handle:event, const String:name[], bool:dontBroadcast)
{
    if (!dontBroadcast)
        SetEventBroadcast(event, true);
    decl String:rawmsg[255];
    decl String:rawadmmsg[255];
    decl String:steam[24];
    decl String:nick[48];
    decl String:ip[16];
    decl String:reason[192];
    GetEventString(event, "networkid", steam, sizeof(steam));
    GetEventString(event, "name", nick, sizeof(nick));
    if (strcmp(name,"player_connect"))
    {
        new client=GetClientOfUserId(GetEventInt(event,"userid"))
        if(client<1) return;
        GetEventString(event, "reason", reason, sizeof(reason));
        GetClientIP(client, ip, sizeof(ip)); // В player_disconnect нет address
        ReplaceString(reason, sizeof(reason), "\n", " ");
        Format(rawadmmsg,sizeof(rawadmmsg),"\x04%s \x01Вышел с \x04Сервера \x03✔", nick, reason);
        Format(rawmsg,sizeof(rawmsg),"\x04%s \x01Вышел с \x04Сервера \x03✔", nick, reason);
    }
    else
    {  
        GetEventString(event, "address", ip, sizeof(ip));
        SplitString(ip,":",ip,sizeof(ip));
        Format(rawmsg,sizeof(rawmsg), "\x04%s \x01Заходит на \x04Сервер \x03✔", nick);
        Format(rawadmmsg,sizeof(rawadmmsg), "\x04%s \x01Заходит на \x04Сервер \x03✔", nick);
    }
   
    for (new i = 1; i <= MaxClients; i++)
        if(IsClientConnected(i) && IsClientInGame(i))
            if (GetUserFlagBits(i))
                PrintToChat(i, "%s", rawadmmsg);
            else
                PrintToChat(i, "%s", rawmsg);
}

public OnClientPostAdminCheck(client)  
{
    if (client)  
    {  
     PrintToChatAll("",client);
    }
}
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Felton,
PHP:
#include <sourcemod>
#include <colors>

new String:teams[3][] = {"\x03Наблюдателей \x04✔","\x03Террористов \x04✔","\x03Контр-Террористов \x04✔"}

public Plugin:myinfo =
{
    name = "Game Joing",
    author = "GuDMan / RuskyDubl",
    description = "",
    version = "1.0",
    url = "N/A"
}
public OnPluginStart()
{
    HookEvent("player_team", event_PlayerTeam, EventHookMode_Pre);
}

//GameEvents Begin
public Action:event_PlayerTeam(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client=GetClientOfUserId(GetEventInt(event, "userid"));
    new team = GetEventInt(event,"team");
    if (!dontBroadcast && !GetEventBool(event,"disconnect") && !GetEventBool(event,"silent") && IsClientConnected(client) && team > 0)
    {
        SetEventBroadcast(event, true);
        PrintToChatAll("\x04[\x03DM\x04] \x01%N \x04Зашёл за \x07%s",client,teams[team-1]);
    }
}
 

Felton

Участник
Сообщения
799
Реакции
59
@Kr1kuzya,
Тут возник другой вопрос как скрыть эту команду для простцых игроков
[DM] _ Pharaoh_ Зашёл за Наблюдателей ✔
Это команда долюна быть доступна только для ADMFLAG_BAN+ADMFLAG_ROOT
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Felton, команду спектаторов или вообще сообщение о смене команды?
 

Felton

Участник
Сообщения
799
Реакции
59
@Grey83,
Сообщение Зашёл за Наблюдателей
Ну или сделать так PrintToChat а не PrintToChatAll
 
Последнее редактирование:

opportune

Участник
Сообщения
49
Реакции
7
Здравствуйте. Помогите пожалуйста избавиться от error логов)

L 05/27/2018 - 09:26:17: [SM] Blaming: gv18.smx
L 05/27/2018 - 09:26:17: [SM] Call stack trace:
L 05/27/2018 - 09:26:17: [SM] [0] LogToFile
L 05/27/2018 - 09:26:17: [SM] [1] Line 614, C:\Users\White Bro\Desktop\scripting\gv18.sp::SetChoise
L 05/27/2018 - 09:26:17: [SM] [2] Line 1056, C:\Users\White Bro\Desktop\scripting\gv18.sp::menu_handler
L 05/27/2018 - 09:29:57: Error log file session closed.
 

Вложения

  • gv18.sp
    30.7 КБ · Просмотры: 10

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@opportune, нужна строка, которая в логе перед Blaming: gv18.smx
--- Добавлено позже ---
а строка Error log file session closed. вообще не имеет никакого отношения к ошибке
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@opportune, может лог полный предоставите хотя бы? Он начинается с Exception reported, а не Blaming.
Оффтоп
 

opportune

Участник
Сообщения
49
Реакции
7
@opportune, может лог полный предоставите хотя бы? Он начинается с Exception reported, а не Blaming.
Оффтоп
L 05/27/2018 - 09:26:17: [SM] Exception reported: Could not open file "/home/server3995/game/csgo/addons/sourcemod/logs/gamevoting/gv05-27.txt"
Не может открыть файл оО

P.S понял похоже ошибку. Поменял права, жду)
 

FokS

Участник
Сообщения
422
Реакции
52
Можно в этом плагине сделать звук для админа когда он вступает в игру, а не когда он уже зашёл на сервер и играет звук?
 

Вложения

  • admin-join-sound.sp
    1.1 КБ · Просмотры: 8

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Вадька_0890, нет, потому что достоверно сервер SteamID не знает до конца коннекта.
 

FokS

Участник
Сообщения
422
Реакции
52
@Вадька_0890, нет, потому что достоверно сервер SteamID не знает до конца коннекта.
Тогда другой вопрос, можно сделать чтобы звук играл только игрокам, а админ его не слышал, так как на сервере будет играть 2 звука, приветствие на сервере и приветствие админа. И сделать звук админа по SteamID
 

Felton

Участник
Сообщения
799
Реакции
59
C-подобный:
#include <colors>

public Plugin:myinfo =
{
    name = "[KDLP] Game Events - Team",
    author = "KorDen & AlmazON",
    description = "Замена сообщений смены команд",
    version = "1.0.1",
    url = "http://hlmod.ru/"
}

public OnPluginStart() HookEvent("player_team",    PT, EventHookMode_Pre);

public Action:PT(Handle:E, String:N[], bool:B)
{
    if(B==false) if(GetEventBool(E,"disconnect")==false) if(GetEventBool(E,"silent")==false)
    {
        new c=GetClientOfUserId(GetEventInt(E,"userid")), i=MaxClients;
        switch(GetEventInt(E,"team"))
        {
               case 1:do if(IsClientInGame(i)) PrintToChat(i, "\x04[\x03DM\x04] \x05\07Игрок  '\x01%N\x04' \x04Зашёл За \x03Наблюдателей \x04✔", c);
            while(--i);
            case 2:do if(IsClientInGame(i)) PrintToChat(i, "\x04[\x03DM\x04] \x05\07Игрок  '\x01%N\x04' \x04Зашёл За \x03Террористов \x04✔", c);
            while(--i);
            case 3:do if(IsClientInGame(i)) PrintToChat(i, "\x04[\x03DM\x04] \x05\07Игрок  '\x01%N\x04' \x04Зашёл За \x03Контр-Террористов \x04✔", c);
            while(--i);
        }SetEventBroadcast(E, true);
        return Plugin_Changed;
    }return Plugin_Continue;
}
Доброго времени суток.Подправьте пожалуйста этот плагин.Я захожу в игру и если бомба уже установлена или хотя бы одного залога взяли то в игру не пускает .В табе показывает что убит.Хотя в чате пишет что защёл за т или кт.Как раунд закончился всё я в игре.Если зайти в игру до установки бомбы то пускает без проблем.Как избавиться от этого?Игра Counter-Strike Source v.34 DeathMatch
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Felton, этот плагин не может мешать игре настолько. Он ж чисто сообщение в чат выводит.
 

Felton

Участник
Сообщения
799
Реакции
59
@Kr1kuzya,
Убераю этот плагин всё ок.Устанавливал другой с предыдущей страницы.Ты же мне его и подпилил там всё ок.Значит дело в плагине.Но не пойму почему так происходит.
Это было когда то взято от сюда [Любая игра] - Lite Plugins
Захожу в игу
[DM] Игрок '❤_ Pharaoh_❤' Зашёл За Наблюдателей ✔
Бомбу боты поставили я захожу за команду и в чяте пишет
[DM] Игрок '❤_ Pharaoh_❤' Зашёл За Контр-Террористов ✔
Но я убит.Пока бомба не взорвётся я вне игрыИгра Counter-Strike Source v.34 DeathMatch
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Felton, всё правильно он пишет
Он и не должен писать это после спавна
 

Felton

Участник
Сообщения
799
Реакции
59
@Grey83,
Прочти ещё раз с самого начало мой пост #2927
Суть не в надписях а в том что не пускает в игру когда бомба установлена или хоть одного залога забрали(даже не спасли а просто повели на эвакуационную зону)Без этого плагина всё нормально.Игра Counter-Strike Source v.34 DeathMatch
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Felton, ну попробуй вот так (первая версия просто немного код подсократил, а вторая - может и заработать):
инклюда у меня нет, так что скомпилить не могу
--- Добавлено позже ---
Меня вообще-то смущает вот эта часть кода:
здесь точно ничего лишнего не убрали?
 

Felton

Участник
Сообщения
799
Реакции
59
@Grey83,
Мне уже правили плагин #2916 там нет проблем я про этот плагин говорю #2927
на kdlp-gameevents 1.0.2_2 - [DM] Игрок '❤_ Pharaoh_❤' Зашёл За ✔(дальше надпись не показывает а так запустило меня после установке бомбы)
kdlp-gameevents 1.0.2_1- [DM] Игрок '❤_ Pharaoh_❤' Зашёл За ✔(дальше надпись не показывает не пустило меня после установке бомбы)
меня итересует kdlp-gameevents_Team этот #2927 плагин где там собака зарыта?
Вот оригинал я лиш поигрался с цветами т.к на 34 не все цвета работают.И в оригинале тоже не пускает когда бомба установлена
C-подобный:
public Plugin:myinfo =
{
    name = "[KDLP] Game Events - Team",
    author = "KorDen & AlmazON",
    description = "Замена сообщений смены команд",
    version = "1.0.1",
    url = "http://hlmod.ru/"
}

public OnPluginStart() HookEvent("player_team",    PT, EventHookMode_Pre);

public Action:PT(Handle:E, String:N[], bool:B)
{
    if(B==false) if(GetEventBool(E,"disconnect")==false) if(GetEventBool(E,"silent")==false)
    {
        new c=GetClientOfUserId(GetEventInt(E,"userid")), i=MaxClients;
        switch(GetEventInt(E,"team"))
        {
            case 1:do if(IsClientInGame(i)) PrintToChat(i, "\x01\07F0F8FFИгрок '\x070099FF%N\x07F0F8FF' зашел за \x07858585Наблюдателей", c);
            while(--i);
            case 2:do if(IsClientInGame(i)) PrintToChat(i, "\x01\07F0F8FFИгрок '\x070099FF%N\x07F0F8FF' зашел за \x07FF0000Террористов", c);
            while(--i);
            case 3:do if(IsClientInGame(i)) PrintToChat(i, "\x01\07F0F8FFИгрок '\x070099FF%N\x07F0F8FF' зашел за \x070000FFКонтр-Террористов", c);
            while(--i);
        }SetEventBroadcast(E, true);
        return Plugin_Changed;
    }return Plugin_Continue;
}
 
Последнее редактирование:
Сверху Снизу