// Nombre onlien $iNBOnline = count(file(PATH_FROM_ONLINE)); $iXPPermin = $iNBOnline * PERMIN_XP; if ($iXPPermin < 25) { $iXPPermin = 25; } // Parcours les variable mirc et trie les donnée $oFile = fopen(PATH_FROM_ONLINE, "r"); while (!feof($oFile)) { $sName = formatName(fgets($oFile, 4096)); if ($sName) { // AJOUTE OU MET A JOUR LE VIEWER AVEC SON isOnline $aAccount = $oPDO->query('SELECT * FROM viewer WHERE name="' . $sName . '"')->fetch(PDO::FETCH_ASSOC); if (!$aAccount) { // VERIFIE SI ANCIEN VIEWER $aOld = $oPDO->query('SELECT * FROM viewerOld where name="' . $sName . '"')->fetch(PDO::FETCH_ASSOC); if (!empty($aOld)) { $oPDO->query('INSERT INTO viewer SET name="' . $sName . '", isOnline="' . microtrue() . '", xpreq="' . XPReq($aOld['level']) . '", gils="' . PERMIN_GILS . '", xpcurrent="' . $iXPPermin . '", timetotal=' . $aOld['timetotal'] . ', level=' . $aOld['level']); } else { $oPDO->query('INSERT INTO viewer SET name="' . $sName . '", isOnline="' . microtrue() . '", xpreq="' . XPReq(1) . '", gils="' . PERMIN_GILS . '", xpcurrent="' . $iXPPermin . '", timetotal=1'); } } else { $oPDO->query('UPDATE viewer SET isOnline="' . microtrue() . '", xpcurrent=xpcurrent+' . calcXPTotal($aAccount, $iXPPermin) . ', gils=gils+' . calcGILSTotal($aAccount, PERMIN_GILS) . ', timetotal=timetotal+1 WHERE name="' . $sName . '"'); } } } fclose($oFile); //unlink(PATH_FROM_ONLINE); include './php/levelup.php'; include './php/toplist.php'; $oPDO = null;
if (isset($aLine[1])) { $sRep = strtolower($aLine[1]); } else { $sRep = ''; } echo $sName . ' REPOND ' . $sRep . '<br />'; $aViewer = $oPDO->query('SELECT * FROM viewer WHERE name="' . $sName . '"')->fetch(PDO::FETCH_ASSOC); if ($aViewer && $sRep != '') { if ($aQuizz['auteur'] != $aViewer['name']) { if ($aViewer['gils'] > 0) { // RETIRE LES GILS $oPDO->query('UPDATE viewer SET gils=gils-1 WHERE name="' . $sName . '"'); if (strtolower($sRep) == strtolower($aQuizz['reponse'])) { // BONNE REPONSE $oPDO->query('UPDATE quizz SET actual=0, used=1 WHERE actual=1'); $iGils = calcGILSTotal($aViewer, QUIZZ_REP_GILS); $iXP = $aViewer['xpreq'] * QUIZZ_REP_XP; $iXP = calcXPTotal($aViewer, $iXP); $oPDO->query('UPDATE viewer SET scoreQuizz=scoreQuizz+1, gils=gils+' . $iGils . ', xpcurrent=' . $iXP . ' WHERE name="' . $sName . '"'); $oPDO->query('DELETE FROM cooldown WHERE name="EVENT"'); dire('[QUIZZ] Bravo ' . $sName . ', la réponse était: ' . $aQuizz['reponse'] . $aQuizz['info']); $iQuizzPos = $oPDO->query('SELECT COUNT(*) FROM viewer WHERE name!="nestoyeur" AND name!="nestbot" AND scoreQuizz>' . $aViewer['scoreQuizz'])->fetch(PDO::FETCH_COLUMN); $iQuizzPos = intval($iQuizzPos) + 1; dire('[QUIZZ] Classement #' . $iQuizzPos . '(' . ($aQuizz['scoreQuizz'] + 1) . ' pts), Gils: ' . $aViewer['gils'] . '+' . QUIZZ_REP_GILS . ', LVL: ' . $iLevel['level'] . ' (' . $iLevel['xpcurrent'] . '/' . $iLevel['xpreq'] . ' XP) + 20% = ' . round($iLevel['xpcurrent'] / $iLevel['xpreq'] * 100) . '%'); break; } } else { dire('[QUIZZ] Pas asse de gils ' . $sName . '! Il faut 1 gils par réponse proposer.'); } } else { dire('[QUIZZ] L\'auteur de la question ne peux pas répondre, mais gagne ' . QUIZZ_AUTEUR_XP * 100 . '% d\'XP et ' . QUIZZ_AUTEUR_GILS . ' gils à chaque fois que la question passe.');
// explose la ligne $aLine = explode(',', $sLine); $sName = formatName($aLine[0]); if (isset($aLine[1])) { $sMob = strtolower($aLine[1]); } else { $sMob = ''; } echo $sName . ' ATK ' . $sMob . '<br />'; if ($sMob == strtolower($aPVE['name'])) { // LE NOM EST CORRECT ET LE MOB A DES HP $iVerif = $oPDO->query('SELECT COUNT(*) FROM cooldown WHERE name="KILL_ATK" AND stepNext="' . $sName . '"')->fetch(PDO::FETCH_COLUMN); if ($iVerif == '0' && $aPVE['pv'] > 0) { echo 'atk ok<br />'; // ATTAQUE OK $oPDO->query('INSERT INTO cooldown SET name="KILL_ATK", stepNext="' . $sName . '"'); $aViewer = $oPDO->query('SELECT * FROM viewer WHERE name="' . $sName . '"')->fetch(PDO::FETCH_ASSOC); $iXP = $aViewer['xpreq'] * PVE_ATK_XP; $iXP = calcXPTotal($aViewer, $iXP); $iGils = calcGILSTotal($aViewer, PVE_ATK_GILS); echo 'xp: ' . $iXP . ' gils: ' . $iGils . '<br />'; $oPDO->query('UPDATE viewer SET gils=gils+' . $iGils . ', scorePve=scorePve+1, xpcurrent=xpcurrent+' . $iXP . ' WHERE name="' . $sName . '"'); $oPDO->query('UPDATE pve SET pv=pv-1 WHERE actual=1'); $aPVE['pv'] = $aPVE['pv'] - 1; } } } $oFile = fopen(PATH_FROM_KILL, "w+"); fclose($oFile); } }