[CS:S/CS:GO] BSD Fortune port for Sourcemod[v0.1]

Тема в разделе "Новые плагины", создана пользователем Alraune, 27 ноя 2015.

  1. Alraune

    Alraune

    Сообщения:
    94
    Симпатии:
    1
    Описание:
    Плагин позволяет выводить в чат забавные фразы игрокам, написавшим соответствующие команды.

    Для себя сделала изменение в исходнике команду - !fortune на !fraza ( показалось более уместным ) Вместо предложенного автором плагина текста выставила свои - короткие цитаты и шутки.
    Из замечаний - фраз должно быть не менее 1500, иначе плагин их не показывает. Решила это банальным копированием списка неск. раз, временно.
    На мой взгляд возможности использования плагина ограничиваются только фантазией ) Гадание, военные термины ( разьяснения военной терминологии ), обучение иностанным словам ...и т.д. если это вообще нужно ;)
    Неприятный момент - в логе идет ошибка - [SM] [0] Line 96, F:\компелятор\addons\sourcemod\scripting\Fortune.sp::Fortune()
    Я никак не скриптер и если кто то подскажет как это решить - буду рада :)
    Взят отсюда
    https://forums.alliedmods.net/showthread.php?p=2366449

    Команды
    /fortune, !fortune и sm_fortune

    Cvar :

    sm_fortunecomnoroff 1
    Enable or Disable(1/0) /fortune, !fortune and sm_fortune.
     

    Вложения:

    • Fortune.7z
      Размер файла:
      208,4 КБ
      Просмотров:
      28
    Последнее редактирование: 27 ноя 2015
  2. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Какие фразы? что он выводит? я ни чего, не понял.

    :-D
     
  3. Tonki_Ton

    Tonki_Ton

    Сообщения:
    317
    Симпатии:
    31
    :lol::lol::lol:
     
  4. Alraune

    Alraune

    Сообщения:
    94
    Симпатии:
    1
    Типа ГОНОР?)) А зря. Вроде не с чего. Уж вам то точно, Tonki_Ton ;)
    Но тем не менее ... Фразы ЛЮБЫЕ. Хоть гороскоп. Хоть предсказания. Хоть иностранные слова с переводом. Ограничено лишь допустимым количеством знаков в чате.
    Например я поставила короткие забавные высказывания.
    Править fortune.txt. Затем закинуть его в addons\sourcemod\data
    smx в addons\sourcemod\plugins

    Игрок пишет в чат !fortune и получает там же забавное высказывание вроде :
    --------
    Если во время дискуссии люди обмениваются знаниями,
    то споря, они обмениваются невежеством.
    --------

    :)
     
    Последнее редактирование: 27 ноя 2015
  5. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.721
    Симпатии:
    461
    Возможный фикс ошибки, так как сама ошибка не указана.

    PHP:
     #pragma semicolon 1

    #define PLUGIN_AUTHOR "RNR"
    #define PLUGIN_VERSION "0.1"

    #include <sourcemod>

    char Path[PLATFORM_MAX_PATH];
    Handle fortuneCommand INVALID_HANDLE;

    public 
    Plugin myinfo 
    {
        
    name "Fortune port :D",
        
    author PLUGIN_AUTHOR,
        
    description "Sourcemod port of Fortune",
        
    version PLUGIN_VERSION,
        
    url "www.sourcemod.net"
    };

    public 
    void OnPluginStart()
    {
        
    BuildPath(Path_SMPathsizeof(Path), "data/fortune.txt");
        
    fortuneCommand CreateConVar("sm_fortunecomnoroff""1""Enable or Disable(1/0) /fortune, !fortune and sm_fortune."FCVAR_NOTIFY FCVAR_PLUGIN);
        if(
    GetConVarBool(fortuneCommand))
            
    RegConsoleCmd("sm_fortune"ReadAFortune);
    }

    public 
    OnClientPutInServer(client)
    {
        
    CreateTimer(15.0Fortuneclient);
    }
    public 
    Action ReadAFortune(int clientint args)
    {
        
    Handle file OpenFile(Path"r");
        
    decl String:text[4096], String:buffer[1024];
        
    int len 0;
        
    int randomcount 0;
        if(
    file == INVALID_HANDLE)
        {
            
    LogError("Cannot connect to Fortune.txt");
            return 
    Plugin_Handled;
        }
        
    random GetRandomInt(13518);
        
        while(!
    IsEndOfFile(file) && ReadFileLine(filebuffersizeof(buffer)))
        {
            if(
    buffer[0] == '%')
            {
                
    count++;
            }
            if(
    count == random)
            {
                    if(
    buffer[0] != '%')
                    {
                        
    len += Format(text[len], sizeof(text)-len"%s"buffer);
                    }
            }
            if(
    count random)
                break;
        }
        
    ReplyToCommand(client"%s"text);
        
        return 
    Plugin_Handled;
    }

    public 
    Action Fortune(Handle Timerany client)
    {
        
    Handle file OpenFile(Path"r");
        
    decl String:text[4096], String:buffer[1024];
        
    int len 0;
        
    int randomcount 0;
        if(
    file == INVALID_HANDLE)
        {
            
    LogError("Cannot connect to Fortune.txt");
            return 
    Plugin_Handled;
        }
        
    random GetRandomInt(13518);
        
        while(!
    IsEndOfFile(file) && ReadFileLine(filebuffersizeof(buffer)))
        {
            if(
    buffer[0] == '%')
            {
                
    count++;
            }
            if(
    count == random)
            {
                    if(
    buffer[0] != '%')
                    {
                        
    len += Format(text[len], sizeof(text)-len"%s"buffer);
                    }
            }
            if(
    count random)
                break;
        }
        
        if (
    IsClientInGame(client)) PrintToChat(client"%s"text);
        
        return 
    Plugin_Handled;
    }
     

    Вложения:

    • textljagkX.smx
      Размер файла:
      4,9 КБ
      Просмотров:
      1
  6. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    читается каждый раз файл заново - ашипка
     
  7. Alraune

    Alraune

    Сообщения:
    94
    Симпатии:
    1
    Каждый Следующий раунд - новая фраза. Если писать неск. раз подряд за раунд ,то фраза действительно дублируется. Видимо так задумано автором плагина.

    Мой список. Может кому то пригодится...
     

    Вложения:

    • fortune.rar
      Размер файла:
      7,8 КБ
      Просмотров:
      5
    Последнее редактирование: 27 ноя 2015
  8. Alraune

    Alraune

    Сообщения:
    94
    Симпатии:
    1
    :yahoo:Ваш фикс помог. СПАСИБО!!! )
    Действительно пресловутая 96 строка
    PrintToChat(client, "%s", text);
    меняем на :
    if (IsClientInGame(client)) PrintToChat(client, "%s", text);
     
  9. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.999
    Симпатии:
    2.992
    The End Is Near..., тут 2 стороны медали... Либо открывать каждый раз нагружая проц либо держать столько инфы в памяти и занимать операривку.
    Всё же 2-й вариант приемлимей.
    Но это позволит юзать любое количество фраз
     
  10. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.563
    Симпатии:
    1.988
    Главная ошибка плагина. Таким образом, недображелатель может довести сервер вплоть до лагов/падения.
     
  11. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    скорее спамом команды, нежели перезаходом
     
  12. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.999
    Симпатии:
    2.992
    в плагине 2 утечки.
    как минимум так:
    PHP:
    #pragma semicolon 1

    #define PLUGIN_AUTHOR "RNR"
    #define PLUGIN_VERSION "0.1"

    #include <sourcemod>

    char Path[PLATFORM_MAX_PATH];
    ConVar fortuneCommand;

    public 
    Plugin myinfo 
    {
        
    name "Fortune port :D",
        
    author PLUGIN_AUTHOR,
        
    description "Sourcemod port of Fortune",
        
    version PLUGIN_VERSION,
        
    url "www.sourcemod.net"
    };

    ArrayList g_hArray;

    public 
    void OnPluginStart()
    {
        
    g_hArray = new ArrayList(ByteCountToCells(192));
        
    BuildPath(Path_SMPathsizeof(Path), "data/fortune.txt");
        
    fortuneCommand CreateConVar("sm_fortunecomnoroff""1""Enable or Disable(1/0) /fortune, !fortune and sm_fortune."FCVAR_NOTIFY FCVAR_PLUGIN);
        
        
    RegConsoleCmd("sm_fortune"ReadAFortune);
    }

    public 
    OnMapStart()
    {
        
    g_hArray.Clear();

        
    Handle file OpenFile(Path"r");
        
        if(
    file == null)
        {
            
    SetFailState("Cannot connect to Fortune.txt");
        }
        
        
    char text[192];
        while(!
    IsEndOfFile(file) && ReadFileLine(filetextsizeof(text)))
        {
            
    TrimString(text);
            if(
    text[0])
            {
                
    g_hArray.PushString(text);
            }
        }
        
        
    delete file;
    }

    public 
    OnClientPutInServer(client)
    {
        if(
    fortuneCommand.BoolValue)
        {
            
    CreateTimer(15.0Timer_FortuneGetClientUserId(client), TIMER_FLAG_NO_MAPCHANGE);
        }
    }

    public 
    Action ReadAFortune(int clientint args)
    {
        if(
    fortuneCommand.BoolValue)
        {
            
    Fortune(client);
        }

        return 
    Plugin_Handled;
    }

    public 
    Action Timer_Fortune(Handle hTimerany userid)
    {
        
    int client GetClientOfUserId(userid);
        if(
    client)
        {
            
    Fortune(client);
        }
        
        return 
    Plugin_Stop;
    }

    void Fortune(int client)
    {
        
    char text[192];
        
    g_hArray.GetString(GetRandomInt(0g_hArray.Length-1), textsizeof(text));
        if(
    client)
        {
            
    PrintToChat(clienttext);
        }
        else
        {
            
    PrintToServer(text);
        }
    }
     
    Последнее редактирование: 28 ноя 2015
  13. Alraune

    Alraune

    Сообщения:
    94
    Симпатии:
    1
    Скомпелировала. Плагин так не работает к сожалению... Сервер css34
     
  14. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Новый синтаксис работает на v34?
     
  15. rom4s

    rom4s

    Сообщения:
    100
    Симпатии:
    31
    А почему не должен, если, конечно, установлен последний SM?
     
  16. Alraune

    Alraune

    Сообщения:
    94
    Симпатии:
    1
    Работает. SourceMod 1.6.3
    Новый вроде и начинается с этой версии СМ.
     
  17. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.999
    Симпатии:
    2.992
    Вроде всё норм. у себя проверил. CSS OB (sm 1.7.3) - работает
    С 1.7.
     
    Последнее редактирование: 28 ноя 2015
  18. Alraune

    Alraune

    Сообщения:
    94
    Симпатии:
    1
    1.6.3 - это вроде кастрированная ( убраны недоступные для ноу стим 34 возможности ) версия 1.7. от мурены ( встроена в панель от хостинга ) По крайней мере компиляция с 1.7 полностью подходит
    SourceMod 1.7.2 пробовала как то поставить , но сервер не запустился у меня... Пришлось бэкап делать. Больше не пыталась

    В общем плагин то стоит, но он нафиг никому не встал на сервере :sad: . Одна я играюсь им