[CS: GO] Конкурс (розыгрыши/викторина)

Тема в разделе "Требуется", создана пользователем Drumanid, 14 апр 2016.

  1. Drumanid

    Drumanid Дилетант

    Сообщения:
    567
    Симпатии:
    194
    Требуется скриптер который напишет плагин конкурс(розыгрыши/викторина).

    ТЗ:
    Чат: (ну или можно в худе)

    Задача: 4+4 = ?
    Игрок отвечает в чат: 8
    Игрок N ответил на задачу и получил N чего то там.

    Если никто не отвечает, плагин пишет:
    Никто не ответил на задачу. Ответ был: 8 Следующая задача через N время.

    В Txt файле вписываешь свой пример и ответ.
    "4 + 4 "="8"
    "Главный администратор сервера ?"="Psychologist21"

    И т.д.
     
    Последнее редактирование: 15 апр 2016
  2. максимка27

    максимка27

    Сообщения:
    517
    Симпатии:
    170
    @Psychologist21, плагин схож по сути с твоими требованиями Bounty Hunt, думаю стоит тебе обратиться к автору данного плагина.
    Оффтоп
     
    Drumanid нравится это.
  3. Danyas

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

    Сообщения:
    1.719
    Симпатии:
    459
    Файлик через kv можно реализовать, чат ловить можно через OnClientSayCommand.
    Ничего сложного ведь)
     
  4. Danyas

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

    Сообщения:
    1.719
    Симпатии:
    459
    Если сегодня освобожусь - постараюсь вечером
     
  5. Drumanid

    Drumanid Дилетант

    Сообщения:
    567
    Симпатии:
    194
    Ну естественно рандом , желателен.
    Хотя если даже его не будет, то ничего в этом страшного нету))
    Можно куча вопросов с ответами замутить в txt файл.
     
  6. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Ну так сделай за него.
     
    Drumanid нравится это.
  7. R1KO

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

    Сообщения:
    5.994
    Симпатии:
    2.989
    У меня есть плагин, генерирует случайные примеры заданой сложности. Есть степени, +-*/, настройка количества кредитов, призовых мест и т.д.
     
  8. Drumanid

    Drumanid Дилетант

    Сообщения:
    567
    Симпатии:
    194
    Если Danyas не сделает, поинтересуюсь у тебя...
     
  9. Drumanid

    Drumanid Дилетант

    Сообщения:
    567
    Симпатии:
    194
    В каждой теме спорят ^^ :biggrin:
     
  10. Danyas

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

    Сообщения:
    1.719
    Симпатии:
    459
    @AlmazON А вот возьму и реализую :on_the_quiet:
     
  11. Danyas

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

    Сообщения:
    1.719
    Симпатии:
    459
    Оффтоп
     
  12. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Оффтоп
     
  13. Danyas

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

    Сообщения:
    1.719
    Симпатии:
    459
    Я в процессе посадки картошки))
    Половину функционала уже реализовал, МБ завтра залью
     
  14. AlmazON

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

    Сообщения:
    4.540
    Симпатии:
    1.984
    Оффтоп
     
  15. Drumanid

    Drumanid Дилетант

    Сообщения:
    567
    Симпатии:
    194
    Оффтоп
     
  16. Danyas

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

    Сообщения:
    1.719
    Симпатии:
    459
    Только приехал.
    Да не, серьёзно на дачу ездил)

    На счет лени - да, ужос просто.
    Пока что готово почти ничего :D
    PHP:
    new 
        
    Handle:g_hKV,
        
    String:g_szPath[PLATFORM_MAX_PATH],
        
    // ConVars
        
    Handle:g_hMinInterVal     INVALID_HANDLE,
        
    Handle:g_hMaxInterVal    INVALID_HANDLE,
        
    Handle:g_hTimer INVALID_HANDLE;



    public 
    OnPluginStart() 
    {
       
        
    g_hMinInterVal    CreateConVar("sm_quiz_interval_min""30.0");
        
    g_hMaxInterVal    CreateConVar("sm_quiz_interval_max""300.0");
       
       
        
    RegAdminCmd("sm_quiz_add"Command_AddQuizADMFLAG_ROOT);
        
    RegAdminCmd("sm_quiz_reload"Command_ReloadQuizADMFLAG_ROOT);
       
        
    Init_g_hKV();
        
    decl String:path[PLATFORM_MAX_PATH];
        
    BuildPath(Path_SMpathsizeof(path), "configs/quiz.txt");
        new 
    Handle:kv CreateKeyValues("quiz");
        if (!
    FileToKeyValues(kvpath) || !KvGotoFirstSubKey(kv)) SetFailState("file %s not found or broken"path);

       
        
    StartTimer();
       
    }

    public 
    Action:Command_AddQuiz(clientargs)
    {
        if(
    args != 2)
        {
            
    ReplyToCommand(client"[SM] Использоване: sm_quiz_add <вопрос> <ответ>");
            return 
    Plugin_Handled;
        }
       
        new 
    String:sQuest[64],String:sAnswer[20];
        
    GetCmdArg(1,sQuest,sizeof(sQuest));
        
    GetCmdArg(2,sAnswer,sizeof(sAnswer));

        
    KvRewind(g_hKV);
        
    KvJumpToKey(g_hKVsQuesttrue);
        {
            
    KvSetString(g_hKV"question"sQuest);        
            
    KvSetNum(g_hKV"answer"sAnswer);
        }
       
        
    ReplyToCommand(client"Вопрос успешно добавлен.Вопрос: '%s'. Ответ: '%s'.",sQuest,sAnswer);
       
        
    KvRewind(g_hKV); 
        
    KeyValuesToFile(g_hKVg_szPath);
        
    Init_g_hKV();
        return 
    Plugin_Handled;
    }


    public 
    Action:QuizTimer(Handle:timer)
    {

        
    StartTimer()
    }

    public 
    Action:Command_ReloadQuiz(clientargsInit_g_hKV();



    StartTimer()
    {
        if(
    g_hTimer == INVALID_HANDLE)
        {
            
    g_hTimer CreateTimer(GetRandomFloat(GetConVarFloat(g_hMinInterVal), GetConVarFloat(g_hMaxInterVal)), QuizTimer);
        }
        else
        {
            
    KillTimer(g_hTimer);
            
    g_hTimer CreateTimer(GetRandomFloat(GetConVarFloat(g_hMinInterVal), GetConVarFloat(g_hMaxInterVal)), QuizTimer);
        }
    }
       
    Init_g_hKV()
    {
        
    g_hKV CreateKeyValues("quiz");
        
    BuildPath(Path_SMg_szPathsizeof(g_szPath) - 1"configs/quiz.txt");
       
        if(!
    FileToKeyValues(g_hKVg_szPath))
        {
            
    LogError("Файл '%s' не найден!"g_szPath);
            
    SetFailState("Файл '%s' не найден!"g_szPath);
            
    CloseHandle(g_hKV);
            return;
        }
    }
     
    Drumanid нравится это.
  17. Drumanid

    Drumanid Дилетант

    Сообщения:
    567
    Симпатии:
    194
    Для приза(за правильный ответ) можно выдачу кредитов сделать. (shop 2.1.0)

    Думаю плагином многие буду пользоваться...
    от души душевно в душу для души душевной от души
     
    Последнее редактирование: 17 апр 2016
  18. R1KO

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

    Сообщения:
    5.994
    Симпатии:
    2.989
    а зачем повторять код если можно сделать так:
    PHP:
    StartTimer()
    {
        if(
    g_hTimer == INVALID_HANDLE)
        {
            
    KillTimer(g_hTimer);
    }
    g_hTimer CreateTimer(GetRandomFloat(GetConVarFloat(g_hMinInterVal), GetConVarFloat(g_hMaxInterVal)), QuizTimer);
    }
    --- Добавлено позже ---
    перед этим кв не закрывается -> утечка
     
  19. R1KO

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

    Сообщения:
    5.994
    Симпатии:
    2.989
    сдвигает все значения вверх на 1 индекс.
    Было:
    PHP:
    Индекс Значение
    5
    7
    1
    8
    9
    После ShiftArrayUp(hArray, 2) стало:
    PHP:
    Индекс Значение
    5
    7
    не определено
    1
    8
    9
     
  20. gibs

    gibs Фитиль народного волненья

    Сообщения:
    538
    Симпатии:
    137
    А не лучше сделать как у этого паренька в запросе? тык