Exemplo n.º 1
0
     $stmt_users_quests = $conn->prepare("INSERT INTO users_quests(userid, questid, dt_passed) VALUES(?,?,NOW())");
     $stmt_users_quests->execute(array(APISecurity::userid(), $questid));
     $new_user_score = APIHelpers::calculateScore($conn);
     $response['new_user_score'] = intval($new_user_score);
     if (APISecurity::score() != $response['new_user_score']) {
         APISecurity::setUserScore($response['new_user_score']);
         $query2 = 'UPDATE users_games SET date_change = NOW(), score = ? WHERE userid = ? AND gameid = ?;';
         $stmt2 = $conn->prepare($query2);
         $stmt2->execute(array(intval($new_user_score), APISecurity::userid(), APIGame::id()));
     }
     APIQuest::updateCountUserSolved($conn, $questid);
     APIAnswerList::addTryAnswer($conn, $questid, $answer, $real_answer, $levenshtein, 'Yes');
     APIAnswerList::movedToBackup($conn, $questid);
     // add to public events
     if (!APISecurity::isAdmin()) {
         APIEvents::addPublicEvents($conn, "users", 'User #' . APISecurity::userid() . ' {' . APISecurity::nick() . '} passed quest #' . $questid . ' {' . $questname . '} from game #' . APIGame::id() . ' {' . APIGame::title() . '} (new user score: ' . $new_user_score . ')');
     }
 } else {
     // check already try pass
     $stmt_check_tryanswer = $conn->prepare('select count(*) as cnt from tryanswer where answer_try = ? and iduser = ? and idquest = ?');
     $stmt_check_tryanswer->execute(array($answer, $userid, intval($questid)));
     if ($row_check_tryanswer = $stmt_check_tryanswer->fetch()) {
         $count = intval($row_check_tryanswer['cnt']);
         $response['checkanswer'] = array($answer, $userid, intval($questid));
         if ($count > 0) {
             APIHelpers::showerror(1318, 'Your already try this answer. Levenshtein distance: ' . $levenshtein);
         }
     }
     APIAnswerList::addTryAnswer($conn, $questid, $answer, $real_answer, $levenshtein, 'No');
     APIHelpers::showerror(1216, 'Answer incorrect. Levenshtein distance: ' . $levenshtein);
 }