From 7c60ccf2d674d168c34d19d17cf7b041f7b14634 Mon Sep 17 00:00:00 2001 From: radiskull Date: Thu, 21 Jul 2011 20:27:44 +0000 Subject: [PATCH] =?UTF-8?q?Bug=20beseitigt=20beim=20Usergruppen-User-Anzei?= =?UTF-8?q?ge=20(es=20wird=20jetzt=20der=20gesuchte=20Name=20angezeigt)=20?= =?UTF-8?q?Charaktererstellung=20=C3=BCberarbeitet=20Testchars=20sind=20nu?= =?UTF-8?q?n=20erstellbar=20(getChar()=20wurde=20=C3=BCberladen)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ag/char.php | 375 ++++++++++++++++++++-------- ag/gm/gm_seite.php | 2 +- ag/gm/include/user.inc.php | 13 +- ag/include/config.inc.php | 3 + ag/include/erstellfunctions.inc.php | 61 +++-- ag/include/usergroup.inc.php | 6 +- 6 files changed, 329 insertions(+), 131 deletions(-) diff --git a/ag/char.php b/ag/char.php index cf9c34c..3b759cc 100644 --- a/ag/char.php +++ b/ag/char.php @@ -16,6 +16,8 @@ include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/designfunctions.inc.php'); include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/fehlerausgabe.inc.php'); include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/erstellfunctions.inc.php'); include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/parse.inc.php'); +include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/usergroup.inc.php'); +include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/exp.inc.php'); // GET-Section @@ -23,9 +25,13 @@ include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/parse.inc.php'); $char_name = validateName($_GET['char_name']); $char_1_type = validateString($_GET['char_1_Type']); $char_bild = validateURL($_GET['char_bild']); +$char_lvl = validateInteger($_GET['char_lvl'], NULL); // Unkritisch -$charm = $_GET['charm']; +if($_POST['charm'] === NULL) { + $charm = $_GET['charm']; +} else + $charm = $_POST['charm']; $char_type = $_GET['char_type']; ?> @@ -47,116 +53,277 @@ function isAPhoneNumber(){ --> -weiter'); - } + if($type != 'Mensch' && $type != 'Saiyajin' && $type != 'Dämon' && $type != 'Mutant' && $type != 'Cyborg' && $type != 'Namekianer' && $type != 'Pirat' && $type != 'Schwertkämpfer' && $type != 'Grandline Maschine'){ + displayErrorMessage(NULL,'Rasse kann nicht erstellt werden!',displayHistoryBackLink()); + return; + } + if(erstelleChar($user, $type, $name, $bild)){ + displayErrorMessage('Änderungen übernommen','','weiter'); + } +} + +function handleErstelleCharRequestOfTestUser($user, $type, $name, $bild, $lvl, $lp, $hp, $mp, $str, $def, $spd, $end, $lck){ + //stats auf numeric prüfen! + if($type != 'Mensch' && $type != 'Saiyajin' && $type != 'Dämon' && $type != 'Mutant' && $type != 'Cyborg' && + $type != 'Namekianer' && $type != 'Pirat' && $type != 'Schwertkämpfer' && $type != 'Grandline Maschine' && $type != 'Kaioshin' && $type != 'Shichibukai'){ + displayErrorMessage(NULL,'Rasse kann nicht erstellt werden!',displayHistoryBackLink()); + return; + } + if(!is_numeric($hp) || !is_numeric($mp) || !is_numeric($str) || !is_numeric($def) || !is_numeric($spd) || !is_numeric($end) || !is_numeric($lck)) { + displayErrorMessage(NULL,'Ungültige Eingabe bei den Stats!',displayHistoryBackLink()); + return; + } + if($lp <= ($hp+$mp+$str+$def+$spd+$end+$lck)) { + displayErrorMessage(NULL,'Es wurden mehr Lernpunkte ausgegeben als eigentlich möglich!',displayHistoryBackLink()); + return; + } + $lp -= ($hp+$mp+$str+$def+$spd+$end+$lck); + if(erstelleChar($user, $type, $name, $bild, $lvl, $lp, $hp, $mp, $str, $def, $spd, $end, $lck)){ + displayErrorMessage('Änderungen übernommen','','weiter'); + } } //if($charm !== NULL) { - + function handleSecondPhase($type, $name){ -?> + ?>
- - - - - - - - - - - - - - - - - - -
Charakter erstellen (2/2)
Rasse: - - -
Charakter Bild (75x75): - -
- -
+ + + + + + + + + + + + + + + + + +
Charakter erstellen (2/2)
Rasse: +
Charakter Bild (75x75): +
+
- +
+ + + + + + + + + + + + + + + + + + + + + + + +
Charakter erstellen (2/3)
Rasse: +
Charakter Bild (75x75): +
Level(1-150): +
+
+
+ = 1 && $char_lvl <= 150) && $char_lvl !== NULL && is_numeric($char_lvl)) { + $lp = 0; + for ($i = 1; $i < $char_lvl; $i++) { + $lp += calculateTrainingPoints($i); + } + $lp = round($lp / 2); + ?> +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Charakter erstellen (3/3)
CharakterTyp:
Charakterlevel:
verfügbare LP:
HP (1LP = 20HP): +
MP (1LP = 10MP): +
Stärke: +
Verteidigung: +
Geschwindigkeit: +
Ausdauer: +
Glück: +
+
+
+ -
- - - - - - - - - - - - - - - - - - -
Charakter Erstellen (1/2)
Charaktername - (Buchstaben) -
Type - -
+ ?> + + + + + + + + + + + + + + + + + + +
Charakter Erstellen (1/2)
Charaktername + (Buchstaben)
Type +
-= 1 AND $user_daten['char_max'] == 7) { $chars_max= 8; @@ -165,15 +332,23 @@ if ($anzahl_spezialchars >= 1 AND $user_daten['char_max'] == 7) { } if ($anzahl_charactere < $chars_max) { - if($charm === NULL){ - handleFirstPhase($user_daten,$anzahl_charactere); - } else if($charm == 1){ - handleSecondPhase($char_type, $char_name); - } else if($charm == 2){ - handleErstelleCharRequest($user_ida, $char_1_type, $char_name, $char_bild); - } + if($charm === NULL){ + handleFirstPhase($user_daten,$anzahl_charactere); + } else if($charm == 1){ + if(isUserInGroup($usergroups, tester)) { + handleSecondPhaseForTester($char_type, $char_name); + } else { + handleSecondPhase($char_type, $char_name); + } + } else if($charm == 2){ + handleErstelleCharRequest($user_ida, $char_1_type, $char_name, $char_bild); + } else if($charm == 3) { + handleThirdPhaseForTester($char_1_type, $char_name, $char_lvl); + } else if($charm == 4) { + handleErstelleCharRequestOfTestUser($user_ida, $_POST['char_type'], $_POST['char_name'], $_POST['char_bild'], $_POST['lvl'], $_POST['lp'], $_POST['hp'], $_POST['mp'], $_POST['str'], $_POST['def'], $_POST['spd'], $_POST['end'], $_POST['lck']); + } } else { - echo 'Du hast bereits die maximal mögliche Menge an Characteren erstellt, die du erstellen kannst.
Nämlich '.$anzahl_charactere.' von '.$chars_max.' Charaktere.'; + echo 'Du hast bereits die maximal mögliche Menge an Characteren erstellt, die du erstellen kannst.
Nämlich '.$anzahl_charactere.' von '.$chars_max.' Charaktere.'; } diff --git a/ag/gm/gm_seite.php b/ag/gm/gm_seite.php index 74438b2..ced9f8a 100644 --- a/ag/gm/gm_seite.php +++ b/ag/gm/gm_seite.php @@ -243,7 +243,7 @@ if(checkLoginData($_SESSION['user'],$_SESSION['password'])){ displayShop($_REQUEST['action'], $_REQUEST['s_id'],$_REQUEST['info'], $_REQUEST['s_name'] , $_REQUEST['s2_name'], $_REQUEST['s3_name'], $_REQUEST['s_typ'], $_REQUEST['preis'], $_REQUEST['frei'], $_REQUEST['anzahl']); } else if($_REQUEST['choose'] == 'usergroups'){ //displayUserGroups($_REQUEST['action'], $_REQUEST['uname']); - displayUserGroups($_REQUEST['action'] ,$_REQUEST['name'] ,$_REQUEST['ugname'], $_REQUEST['delete'], $_REQUEST['add']); + displayUserGroups($_REQUEST['action'] ,$_REQUEST['uname'] ,$_REQUEST['ugname'], $_REQUEST['delete'], $_REQUEST['add']); } else { displayOptions(); } diff --git a/ag/gm/include/user.inc.php b/ag/gm/include/user.inc.php index 3c1709e..cbed3ca 100644 --- a/ag/gm/include/user.inc.php +++ b/ag/gm/include/user.inc.php @@ -36,7 +36,7 @@ function getOtherUserGroups($user) { } function displayUserGroups($action, $name, $ugname, $delete, $add) { - if($action === 'search') { + if($action === 'search') { $username = validateName($name); if ($delete !== NULL && $delete >= 0) { $qry = 'DELETE FROM user_gruppe_zuordnung WHERE user_id in (SELECT id FROM user WHERE nickname = \''.$username. @@ -48,8 +48,8 @@ function displayUserGroups($action, $name, $ugname, $delete, $add) { mysql_query($qry); } - $usergroups = getUserGroups($name); - $notusergroups = getOtherUserGroups($name); + $usergroups = getUserGroups($username); + $notusergroups = getOtherUserGroups($username); ?>
@@ -123,8 +123,7 @@ function displayUserGroups($action, $name, $ugname, $delete, $add) { - '; $x = 0; while($row = mysql_fetch_assoc($usergroups_qry)){ @@ -163,7 +162,7 @@ function displayUserGroups($action, $name, $ugname, $delete, $add) { - @@ -192,7 +191,7 @@ function displayUserGroups($action, $name, $ugname, $delete, $add) {
User suchen
Username: + Username:
- diff --git a/ag/include/config.inc.php b/ag/include/config.inc.php index bed83a5..c466511 100644 --- a/ag/include/config.inc.php +++ b/ag/include/config.inc.php @@ -19,6 +19,7 @@ include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/speed_config.inc.php'); include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/online.inc.php'); include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/parse.inc.php'); include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/user.inc.php'); +include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/usergroup.inc.php'); // Referer statistics (no use for this in the moment) //$rs = strpos($_SERVER['HTTP_REFERER'],'//'); @@ -43,8 +44,10 @@ $passwort = validateString($_COOKIE['passwort']); if(!checkCookiePassword($name, $passwort)){ $POLOE = 1; $user_ida = array(); + $usergroups = array(); } else { $user_ida = mysql_fetch_assoc(mysql_query("SELECT * FROM user WHERE nickname='$name' LIMIT 1")); + $usergroups = getUserGroups($name); mysql_query('UPDATE user SET ip=\'' . $_SERVER['REMOTE_ADDR'] . '\', online_zeit=now() WHERE id='.$user_ida['id']); if ($online_rekord_1_0['anzahl'] < $online_r) { mysql_query('UPDATE online SET anzahl='.$online_r.', datum=now() WHERE id=1'); diff --git a/ag/include/erstellfunctions.inc.php b/ag/include/erstellfunctions.inc.php index 03b3fb9..04d1fa1 100644 --- a/ag/include/erstellfunctions.inc.php +++ b/ag/include/erstellfunctions.inc.php @@ -15,14 +15,14 @@ include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/parse.inc.php'); include_once($_SERVER['DOCUMENT_ROOT'].'ag/include/exp.inc.php'); - + function erstelleUser(){ - // TODO: Imlementierung - + // TODO: Imlementierung + } // Muss aus einem sicheren Kontext gestartet werden -function erstelleChar($user, $specialcharname, $newname = '', $picture = ''){ +function erstelleChar($user, $specialcharname, $newname = '', $picture = '', $lvl = 1, $lp = 0, $hp = 0, $mp = 0, $str = 0, $def = 0, $spd = 0, $end = 0, $lck = 0){ // If-Anweisungen muessen noch durch Datenbankabfragen ersetzt werden $type = ''; $trainingspoints = 0; @@ -35,7 +35,7 @@ function erstelleChar($user, $specialcharname, $newname = '', $picture = ''){ displayErrorMessage(NULL,'Name ist nicht erlaubt!!',displayHistoryBackLink()); return false; } - + if($specialcharname == 'Mensch') { $HP = 150; $MP = 30; @@ -63,7 +63,7 @@ function erstelleChar($user, $specialcharname, $newname = '', $picture = ''){ $Gluck = 0; $Ausdauer = 9; $type = $dbz; - } else if($specialcharname == 'Mutant') { + } else if($specialcharname == 'Mutant') { $HP = 180; $MP = 15; $Starke = 13; @@ -72,7 +72,7 @@ function erstelleChar($user, $specialcharname, $newname = '', $picture = ''){ $Gluck = 4; $Ausdauer = 5; $type = $dbz; - } else if($specialcharname == 'Cyborg') { + } else if($specialcharname == 'Cyborg') { $HP = 250; $MP = 20; $Starke = 11; @@ -137,9 +137,9 @@ function erstelleChar($user, $specialcharname, $newname = '', $picture = ''){ $Geschwindigkeit = 100; $Gluck = 100; $Ausdauer = 100; - $type = $specialcharname; + //$type = $specialcharname; <-- wird überschrieben?! $trainingspoints = 500; - $special_char = true; + $special_char = true; $type = $op; $c_type = $specialcharname; } else { @@ -148,6 +148,26 @@ function erstelleChar($user, $specialcharname, $newname = '', $picture = ''){ } // If-Anweisungen ende + // Werte hinzufügen, falls ein Testcharakter erstellt wird + $HP += ($hp*20); + $MP += ($mp*10); + $Starke += $str; + $Verteidigung += $def; + $Geschwindigkeit += $spd; + $Gluck += $lck; + $Ausdauer += $end; + $trainingspoints += $lp*2; + + echo 'HP:'.$HP.'
'; + echo 'HP:'.$MP.'
'; + echo 'STR:'.$Starke.'
'; + echo 'DEF:'.$Verteidigung.'
'; + echo 'SPD:'.$Geschwindigkeit.'
'; + echo 'LCK:'.$Gluck.'
'; + echo 'END:'.$Ausdauer.'
'; + echo 'TP:'.$trainingspoints.'
'; + echo 'LVL:'.$lvl.'
'; + // Ueberprüfe ob ein Slot frei ist $chars = getCharsOfUser($user['id']); $normal = 0; @@ -165,14 +185,14 @@ function erstelleChar($user, $specialcharname, $newname = '', $picture = ''){ } else{ $slots_used = $normal + $special - 1; } -// echo 'Slots used: '.$slots_used.'
Slots available: '.$slots_avail.'
'; - + // echo 'Slots used: '.$slots_used.'
Slots available: '.$slots_avail.'
'; + if($slots_used >= $user['char_max']){ displayErrorMessage(NULL,'Alle Slots sind schon belegt!!',displayHistoryBackLink()); return false; } // Slotüberprüfung beendet! - + echo 'Slotüberprüfung abgeschlossen!
'; $sql = 'Insert into chars(name, starke, verteidigung, speed, glueck, ausdauer, hp, mp, level, type, rasse, besitzer, char_type, training_points, lernpunkte, bild, exp) ' . 'values(\''.$newname.'\',' . ' '.$Starke.',' . @@ -182,7 +202,7 @@ function erstelleChar($user, $specialcharname, $newname = '', $picture = ''){ ' '.$Ausdauer.',' . ' \''.$HP.','.$HP.'\',' . ' \''.$MP.','.$MP.'\',' . - ' 1,' . + ' '.$lvl.',' . ' \''.$type.'\',' . ' \''.$specialcharname.'\',' . ' '.$user['id'].',' . @@ -190,26 +210,27 @@ function erstelleChar($user, $specialcharname, $newname = '', $picture = ''){ ' '.$trainingspoints.',' . ' 0, ' . '\''.$picture.'\', '. - '\'0,'.calculateRequiredExpChars(1).'\'' . + '\'0,'.calculateRequiredExpChars($lvl).'\'' . ')'; -// echo $sql.'
'; + echo $sql.'
'; $identifier = mysql_query($sql); + echo $identifier; if($identifier == FALSE){ if(mysql_fetch_assoc(mysql_query('Select * from chars where name = \''.$newname.'\''))){ - displayErrorMessage(NULL,'Name schon vorhanden!!',displayHistoryBackLink()); + displayErrorMessage(NULL,'Name schon vorhanden!!',displayHistoryBackLink()); } else{ displayErrorMessage(NULL,'Erstellen fehlgeschlagen!!',displayHistoryBackLink()); } return false; // Hat nich geklappt } - + $charsw_id = mysql_fetch_assoc(mysql_query('SELECT id FROM chars WHERE name=\''.$newname.'\'')); mysql_query('INSERT lernen SET at_id=1, aktiv=1, besitzer='.$charsw_id['id'].', name=\'Schlag\', dauer=0'); mysql_query('INSERT lernen SET at_id=2, aktiv=1, besitzer='.$charsw_id['id'].', name=\'Kick\', dauer=0'); mysql_query('INSERT lernen SET at_id=3, aktiv=1, besitzer='.$charsw_id['id'].', name=\'Block\', dauer=0'); - + return true; // Hat geklappt -} - +} + ?> diff --git a/ag/include/usergroup.inc.php b/ag/include/usergroup.inc.php index 0adb19e..3dd9aaa 100644 --- a/ag/include/usergroup.inc.php +++ b/ag/include/usergroup.inc.php @@ -39,9 +39,9 @@ function getUserGroups($user) { return $groups; } -function isUserInGroup($usergroup, $group) { - for($i = 0; $i < count($usergroup); $i++) { - if(in_array($group, $usergroup[$i])) { +function isUserInGroup($usergrouparray, $group) { + for($i = 0; $i < count($usergrouparray); $i++) { + if($usergrouparray[$i]['gruppen_id'] == $group) { return true; } }