<?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);
}
?>