Question

Всем привет не кто не знает где найти систему Викторина (Решение примеров)

Share this post


Link to post

4 answers to this question

  • 0

@Миша_Cherkes, как вы ее себе представляете? Если опишите, что-нибудь, наверное, накидаю вам.

Share this post


Link to post
  • 0

@Cawfee @Cawfee в чат пишется к примеру 

Викторина решение примера 1+1 кто первый напишет ответ получит вознаграждение

После правильного ответа дают вирты 

 

Share this post


Link to post
  • 0

@Миша_Cherkes, что-нибудь такое. Не проверял.

Спойлер

enum eQuiz {
    eqQuestion[128],
    eqAnswer[64]
};

static const gQuiz[eQuiz][] = {
    {"Вопрос1""Ответ1"},
    {"Вопрос2""Ответ2"},
    {"Вопрос3""Ответ3"}
};

static const MAX_QUESTIONS = sizeof(gQuiz);
new giQuizQuestion = 0;

@onQuizHandler(bool:isSuccess = false);
@onQuizHandler(bool:isSuccess) { // вызовите эту функцию один раз, например, в OnGameModeInit
    static bool:isCalled = false// флажок, вызывалась ли эта функция раньше
    
    if (true
        && (isCalled == true// если функция хоть была вызвана
        && (isSuccess == false// если не был дан правильный ответ
    ) { // если за 5 минут не был дан правильный ответ
        SendClientMessageToAll(-1"Правильный ответ на вопрос викторины не был дан. Переходим к новому вопросу");
    }
    else if (isCalled == false) {
        isCalled = true;
    }
    else if (isSuccess == true) {
        SendClientMessageToAll(-1"Только что был дан правильный ответ на вопрос викторины. Переходим к новому вопросу");
    }
    
    if (giQuizQuestion++ >= MAX_QUESTIONS) { // если прошлись по всем вопросам
        giQuizQuestion = 0// начинаем счет с нуля
    }
    
    static const question[] = "Вопрос #%d: %s";
    new string[144];
    format(string, sizeof string, question, gQuiz[giQuizQuestion][eqQuestion]);
    SendClientMessageToAll(-1, string);
    
    SendClientMessage(-1"Используйте команду /quiz, чтобы ответить на вопрос");
    
    static iQuizTimer = -1;
    if (iQuizTimer >= 0) { // если уже создан таймер для этой функции
        KillTimer(iQuizTimer); // удаляем существующий таймер
    }
    
    iQuizTimer = SetTimer("@onQuizHandler"5 * 1000false); // запускаем новый таймер
}

CMD:quiz(playerid, params[]) {
    new const result = strcmp(params, gQuiz[giQuizQuestion][eqAnswer]);
    if (result != 0) {
        SendClientMessageToAll(-1"К сожалению, ваш ответ неверный");
        return true;
    }
    
    /* действия, если пользователь правильно ответил на вопрос */
    onQuizHandler(true);
}

 

 

Share this post


Link to post
  • 0

@Cawfee Нет не такого плана

Share this post


Link to post
Guest
This topic is now closed to further replies.