<?php /* * * @copyright (c) 2010 animegame.eu * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence * */ include_once('path.inc.php'); // get the path ;) include_once(ROOT_PATH.'/include/config.inc.php'); include_once(ROOT_PATH.'/include/fehlerausgabe.inc.php'); include_once(ROOT_PATH.'/include/designfunctions.inc.php'); include_once(ROOT_PATH.'/include/parse.inc.php'); include_once(ROOT_PATH.'/include/erstellfunctions.inc.php'); include_once(ROOT_PATH.'/include/semaphore.inc.php'); include_once(ROOT_PATH.'/include/random.inc.php'); // GET-Section // Kritisch (SQL-Injections) // Nothing // Unkritisch $charm = $_GET['charm']; $wunsch = $_GET['wunsch']; $h_name = validateName($_GET['h_name']); // Nicht viel aber eine große Auswirkung function wuenscheGeld($user){ db_query('UPDATE user SET geld=geld+10000000 WHERE id='.$user['id']); return true; } function wuenschePotaras($user){ db_query('INSERT sp_ware SET item=1, user='.$user['id']); db_query('INSERT sp_ware SET item=1, user='.$user['id']); return true; } function wuenscheTeufelsfrucht($user){ $teufelsseele = mysqli_fetch_assoc(db_query('SELECT count(id) as anzahl FROM sp_ware WHERE item=33 AND user='.$user['id'])); if($teufelsseele['anzahl'] <= 0) { displayErrorMessage(NULL,'Du besitzt das benötigte Item nicht!!',displayHistoryBackLink()); return false; } db_query('DELETE FROM sp_ware WHERE item=33 AND user='.$user['id'].' LIMIT 1'); $sum = mysqli_fetch_assoc(db_query('SELECT sum(verteilung) as gesamt FROM wochen_markt WHERE art=\'natur\'')); if($sum['gesamt'] != 100){ displayErrorMessage(NULL,'Die Wahrscheinlichkeit eine Frucht zu bekommen entspricht nicht 100%, Melde dich bei einem der GM!!',displayHistoryBackLink()); return false; } $natur_frucht = db_query('SELECT item, id,verteilung FROM wochen_markt WHERE art=\'natur\' order by id'); ///wieviel TF gibt es?. $value = mt_random_wrapper(1,100); $peak = 0; while($row = mysqli_fetch_assoc($natur_frucht)){ $peak += $row['verteilung']; if($value <= $peak){ break; } } displayErrorMessage(NULL,'Du hast eine '.$row['item'].' bekommen!!',''); db_query('INSERT wochen_ware SET item='.$row['id'].', user='.$user['id']); return true; } function wuenscheSpecialChar($user, $specialcharid, $newname = ''){ $specialRaceIds = getSpecialRaceIds(); $race = NULL; foreach ($specialRaceIds as $specialRace) { if ($specialRace['item'] !== NULL && $specialRace['id'] == $specialcharid) { $race = $specialRace; break; } } if ($race == NULL) { displayErrorMessage(NULL,'Diese Rasse kann nicht gewünscht werden!!',displayHistoryBackLink()); return false; } if($newname == ''){ displayErrorMessage(NULL,'Der Name ist ungueltig!!',displayHistoryBackLink()); return false; } // Hat der User überhaupt das Item ??? $qry = db_query('SELECT count(*) AS anzahl FROM sp_ware WHERE item='.$race['item'].' AND user='.$user['id']); $row = mysqli_fetch_assoc($qry); if($row['anzahl'] < 1){ // Er hat das Item garnicht!! displayErrorMessage(NULL,'Du kannst dir einen '.$specialcharname.' nur mit dem richtigen Item wünschen!!',displayHistoryBackLink()); return false; } $rasse = $race; $chars = getCharsOfUser($user['id']); foreach($chars as $char) { if($char['rasse_a']['id'] == $rasse['id']) { displayErrorMessage(NULL,'Der '.$specialcharname.'-Slot ist schon durch '.$char['name'].' belegt!!',displayHistoryBackLink()); return false; } } // Kleine Funktion grosse Wirkung if(!erstelleChar($user, $rasse['id'], $newname)){ return false; } // Slotüberprüfung beendet! db_query('DELETE FROM sp_ware WHERE item='.$race['item'].' AND user='.$user['id'].' LIMIT 1'); return true; } function wuenscheUserRename($user, $newname){ if($newname == null || strlen(trim($newname)) < 3) { return false; } $sql = 'Insert into user_rename(pre_name, post_name, datum, userid, wunsch) values(\''.$user['nickname'].'\', \''.$newname.'\', now(), '.$user['id'].', 1)'; db_query($sql); db_query('Update user set nickname = \''.$newname.'\' WHERE id = '.$user['id']); return true; } function worker($charm,$wunsch,$user,$newname){ $ressource = 'User:'.$user['id']; // Wichtig, die Semaphore!! if(!semaphoreUP($ressource)){ // TRUE, diese Anfrage darf bearbeitet werden displayErrorMessage(NULL,'Verarbeitung gerade in Gange, bitte warten...', displayHistoryBackLink()); return; } $dragonballs = mysqli_fetch_assoc(db_query('SELECT count(id) as anzahl FROM sp_ware WHERE user='.$user['id'].' AND item=11')); if($dragonballs['anzahl'] < 7) { displayErrorMessage(NULL,'Du hast keine 7 Dragonballs!!',displayHistoryBackLink()); semaphoreDown($ressource); return; } $sql = 'DELETE FROM sp_ware WHERE item=11 AND user='.$user['id'].' LIMIT 7'; db_query($sql); $result = true; if($charm == 1) { if($wunsch == 1) { $result = wuenscheGeld($user); } else if($wunsch == 2) { $result = wuenschePotaras($user); } else if($wunsch == 5) { $result = wuenscheTeufelsfrucht($user); } else if($wunsch == 6) { $result = wuenscheUserRename($user,$newname); } else if($wunsch > 10) { $result = wuenscheSpecialChar($user,$wunsch - 10,$newname); } } if($result){ displayErrorMessage('Änderungen übernommen!','Dragonballs erfolgreich eingesetzt!!','<a href="index.php?as=dragonballs">weiter</a>'); } else{ db_query('INSERT sp_ware SET item=11, user='.$user['id']); // 1 db_query('INSERT sp_ware SET item=11, user='.$user['id']); // 2 db_query('INSERT sp_ware SET item=11, user='.$user['id']); // 3 db_query('INSERT sp_ware SET item=11, user='.$user['id']); // 4 db_query('INSERT sp_ware SET item=11, user='.$user['id']); // 5 db_query('INSERT sp_ware SET item=11, user='.$user['id']); // 6 db_query('INSERT sp_ware SET item=11, user='.$user['id']); // 7 } semaphoreDown($ressource); return; } function displayWuensche($user){ $items = db_query('SELECT distinct(i1.id) FROM sp_ware i INNER JOIN sp_item i1 ON(i.item=i1.id) WHERE i.user='.$user['id']); ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> <input type="hidden" name="as" value="dragonballs"> <input type="hidden" name="charm" value="1"> <table cellpadding="0" cellspacing="0" width="100%"> <!-- MSTableType="layout" --> <tr> <th align="center">Wünsch dir etwas</th> </tr> <tr> <td align="center"> <?php $specialRaceIds = getSpecialRaceIds(); $races = array(); foreach ($specialRaceIds as $race) { if ($race['item'] !== NULL) { $races[] = $race; } } ?> <select id="input" name="wunsch"> <option value="1">10.000.000 ¥</option> <option value="2">2x Potara Ohrringe</option> <option value="6">Nutzernamen ändern</option> <?php while($row = mysqli_fetch_assoc($items)) { foreach ($races as $race) { if ($row['id'] == $race['item']) { echo '<option value="'.($race['id']+10).'">'.$race['name'].' befreien</option>'."\n"; } } if($row['id'] == 33) { ?> <option value="5">Naturfrucht</option> <?php } } ?> </select> </td> </tr> <th align="center"> <br>Name nur bei Erschaffung von Specialchars oder Änderung des Nutzernamens </th> </tr> <tr> <td align="center"> <input id="input" name="h_name" value="" size="20"><br> <br> <input id="input" type=submit value="Shenlong erscheine und erfülle mir meinen Wunsch!"></td> </td> </tr> </table> <?php } if($charm !== NULL && $wunsch !== NULL){ worker($charm, $wunsch,$user_ida,$h_name); } else{ displayWuensche($user_ida); } ?>