From 374d16185818d17385166eb901bd9158cdbf3ee3 Mon Sep 17 00:00:00 2001 From: radiskull Date: Sat, 22 Oct 2011 09:55:49 +0000 Subject: [PATCH] =?UTF-8?q?Attackenset=20f=C3=BCr=20Clanfights=20und=20Nor?= =?UTF-8?q?malFights=20eingef=C3=BCgt=20Code=20ges=C3=A4ubert!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ag/char_profil.php | 887 +++++++++++++-------------------- ag/include/attackenset.inc.php | 149 +++++- ag/include/char.inc.php | 21 +- ag/include/char_profil.inc.php | 36 +- 4 files changed, 511 insertions(+), 582 deletions(-) diff --git a/ag/char_profil.php b/ag/char_profil.php index 13add81..4166a76 100644 --- a/ag/char_profil.php +++ b/ag/char_profil.php @@ -5,11 +5,16 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence * */ + include_once($_SERVER['DOCUMENT_ROOT'].'/ag/include/config.inc.php'); 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/parse.inc.php'); -include_once($_SERVER['DOCUMENT_ROOT'].'/ag/include/char_profil.inc.php'); //Allgemeine Funktionen f�r die Char darstellung +include_once($_SERVER['DOCUMENT_ROOT'].'/ag/include/char_profil.inc.php'); //Allgemeine Funktionen für die Char darstellung +include_once($_SERVER['DOCUMENT_ROOT'].'/ag/include/defines.inc.php'); +include_once($_SERVER['DOCUMENT_ROOT'].'/ag/include/attackenset.inc.php'); + +defineIfNotDefined('MAX_ROUNDS', 10); /* Diese Datei ist etwas komisch, darum die Abweichende SQL-Injection methode */ @@ -17,582 +22,378 @@ $char_id = validateUnsignedInteger($_GET['char_id'], null); function stelledar($char_id,$user_ida,$name) { //Alle Chardaten laden + //TODO: chardaten gefällt mir absolut nicht! Das muss man anders regeln =/ chardaten($char_id,$name,$char_1,$hp1,$mp1,$exp,$fehler); - if ($fehler == '') { + if ($fehler == NULL) { + $buffedstats = getCharBuffs($char_1['kampf_item']); //Alle Attacken laden - aktuelleauswahl($char_1,$at11,$at11_2,$auswahl1,$auswahl2,$auswahl3); - //R�stung laden + $learned_atts = getCharAttacks($char_id); + + //Attackensets laden + $clanfight_attset = getCharAttackSet($char_id, CLANKAMPF); + $normfight_attset = getCharAttackSet($char_id, NORMALKAMPF); + + //TODO:prüfen ob man nicht auch den name aus $learned_atts holen kann + $clanfight_attset_name = getAttackNamesFromAttackSet($clanfight_attset); + $normfight_attset_name = getAttackNamesFromAttackSet($normfight_attset); + + //Rüstung laden $e_schuhe = mysql_query("SELECT i.name, w.id, i.level FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE (i.type='$char_1[type]' OR i.type='ALL') AND w.user='$user_ida[id]' AND w.ru_mal='1' AND i.s_type='Schuhe' AND i.level <='$char_1[level]' group by i.name order by i.level desc"); $e_schwert = mysql_query("SELECT i.name, w.id, i.level FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE (i.type='$char_1[type]' OR i.type='ALL') AND w.user='$user_ida[id]' AND w.ru_mal='1' AND i.s_type='Schwert' AND i.level <='$char_1[level]' group by i.name order by i.level desc"); $e_rustung = mysql_query("SELECT i.name, w.id, i.level FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE (i.type='$char_1[type]' OR i.type='ALL') AND w.user='$user_ida[id]' AND w.ru_mal='1' AND i.s_type='Ruestung' AND i.level <='$char_1[level]' group by i.name order by i.level desc"); $e_schild = mysql_query("SELECT i.name, w.id, i.level FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE (i.type='$char_1[type]' OR i.type='ALL') AND w.user='$user_ida[id]' AND w.ru_mal='1' AND i.s_type='Schild' AND i.level <='$char_1[level]' group by i.name order by i.level desc"); $e_helm = mysql_query("SELECT i.name, w.id, i.level FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE (i.type='$char_1[type]' OR i.type='ALL') AND w.user='$user_ida[id]' AND w.ru_mal='1' AND i.s_type='Helm' AND i.level <='$char_1[level]' group by i.name order by i.level desc"); $checked = explode(',',$char_1['kampf_item']); -?> + ?> - - - - - - - - - - - - - - - - - - - - - - - - - - -'; - $char1_buffs = mysql_fetch_assoc(mysql_query('SELECT sum(i.hp) as hp, sum(i.mp) as mp, sum(i.starke) as starke, sum(i.verteidigung) as verteidigung, sum(i.speed) as speed FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE w.id IN (' . $char_1['kampf_item'] . ')')); - } - - -?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Charakter: - -
- Charakter 
- Type 
- Rasse 
- Fusion Rasse 
- Stärke 
- Verteidigung 
- Geschwindigkeit 
- Ausdauer 
- Glück 
- HP  -
-   -
- MP 
- Level 
- Training Points 
- Exp  
- Siege 
- Niederlage 
- Liga Siege 
- Liga Niederlage 
- Status 
- Bild  '; ?>
-



Kampfeinstellungen

- Runde + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nix'; - ?> - - - - - - + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Charakterübersicht +
Name +   +
Type +   +
Rasse +   +
Fusion Rasse +   +
- - - - - - - - - - - - - - - - -  
Stärke +   +
Verteidigung +   +
Geschwindigkeit +   +
Ausdauer +   +
Glück +   +
HP +   +
MP +   +
Level +   +
Training Points +   +
Exp +    +
Siege +   +
Niederlage +   +
Liga Siege +   +
Liga Niederlage +   +
Status +   +
Bild + +  '; ?> +
Kampfeinstellungen +
Normale KämpfeClankämpfe
Runde + +
Ausrüstungsübersicht +
 Helm:  +
 Rüstung:  +
 Schild:  +
 Schwert:  +
 Schuhe:  +

+
+ - - -
- Aufgeben - - - - - - '; ?> -
-

Kampf Items

 Helm:  - -
 Rüstung:  - -
 Schild:  - -
 Schwert:  - -
 Schuhe:  - -

-
- - - $kampf_copy) { - $fehler[0] = "Fehler die Technik vom type: Copy darf nur ".$kampf_copy." mal benutzt werden."; - $anz++; - } - if($kampf_kaioken2_n > $kampf_kaioken2) { - $fehler[1] = "Fehler die Technik vom type: Kaiaoken2 darf nur ".$kampf_kaioken2." mal benutzt werden."; - $anz++; - } - if($kampf_lose2_n > $kampf_lose2) { - $fehler[2] = "Fehler die Technik vom type: lose2 darf nur ".$kampf_lose2." mal benutzt werden."; - $anz++; - } - if($kampf_majin_n > $kampf_majin) { - $fehler[3] = "Fehler die Technik vom type: Majin darf nur ".$kampf_majin." mal benutzt werden."; - $anz++; - } - if($kampf_tausch2_n > $kampf_tausch2) { - $fehler[4] = "Fehler die Technik vom type: Tausch darf nur 3 mal benutzt werden."; - $anz++; - } - if($kampf_summon_n > $kampf_summon) { - $fehler[5] = "Fehler die Technik vom type: Summon darf nur ".$kampf_summon." mal benutzt werden."; - $anz++; - } - if($kampf_gift_n > $kampf_gift) { - $fehler[6] = "Fehler die Technik vom type: Gift darf nur ".$kampf_gift." mal benutzt werden."; - $anz++; - } - if($kampf_schatten_n > $kampf_schatten) { - $fehler[7] = "Fehler die Technik vom type: Schatten darf nur 2 mal benutzt werden."; - $anz++; - } - if($kampf_ssj_n AND $kampf_kaioken_n) { - $fehler[8] = "Fehler sie dürfen Techniken vom Type SSJ und Kaioken nicht zusammen nutzen."; - $anz++; - } - if($kampf_tausch_n > $kampf_tausch) { - $fehler[9] = "Fehler die Technik vom type: Kampf darf nur ".$kampf_tausch." mal benutzt werden."; - $anz++; - } - if($kampf_ssj_n > $kampf_ssj) { - $fehler[10] = "Fehler die Technik vom type: SSJ darf nur ".$kampf_ssj." mal benutzt werden."; - $anz++; - } - if($kampf_hp_n > $kampf_hp) { - $fehler[11] = "Fehler die Technik vom type: HP darf nur 2 mal benutzt werden."; - $anz++; - } - if($kampf_hpmp_n > $kampf_hpmp) { - $fehler[12] = "Fehler die Technik vom type: HPMP darf nur ".$kampf_hpmp." mal benutzt werden."; - $anz++; - } - if($kampf_sprit_n > $kampf_sprit) { - $fehler[13] = "Fehler die Technik vom type:Sprit darf nur ".$kampf_sprit." mal benutzt werden."; - $anz++; - } - if($kampf_sprit2_n > $kampf_sprit2) { - $fehler[14] = "Fehler die Technik vom type: Sprit2 darf nur ".$kampf_sprit2." mal benutzt werden."; - $anz++; - } - if($kampf_lose_n > $kampf_lose) { - $fehler[15] = "Fehler die Technik vom type: Lose darf nur ".$kampf_lose." mal benutzt werden."; - $anz++; - } - if($kampf_kaioken_n > $kampf_kaioken) { - $fehler[16] = "Fehler die Technik vom type: Kaiaoken darf nur ".$kampf_kaioken." mal benutzt werden."; - $anz++; - } - if($bild11 != $_POST['bild11']){ - $fehler[17] = 'Die URL für das Bild ist ungültig!'; - $anz++; - } - if($kampf_frucht_n > $kampf_frucht) { - $fehler[19] = 'Fehler die Technik vom type: frucht darf nur '.$kampf_frucht.' mal benutzt werden!'; - $anz++; - } - if($kampf_konterheal_n > $kampf_konterheal) { - $fehler[20] = 'Fehler die Technik vom type: Konterheal darf nur '.$kampf_konterheal.' mal benutzt werden!'; - $anz++; - } - if($kampf_hp_n >= 1 AND $kampf_hpmp_n >= 1) { - $fehler[21] = 'Fehler die Technik vom type: HP darf nicht zusammen mit der Technik vom type: HPMP benutzt werden!'; - $anz++; - } - } - $x++; + //andere Sachen überprüfen + if($bild11 != $_POST['bild11']){ + $fehler[3] = 'Die URL für das Bild ist ungültig!'; } - //Schauen ob ein Fehler vorhanden ist - if ($anz == 0) { - //In DB einf�gen - safe_query('UPDATE chars SET kampf_item=\''.$helm_e.','.$rustung_e.','.$schild_e.','.$schwert_e.','.$schuhe_e.'\', aufgeben=\''.$aufgeben.'\', rustung =\''.$rustung.'\', '. - 'attacken=\''.$attacke1[0].','.$attacke1[1].','.$attacke1[2].','.$attacke1[3].','.$attacke1[4].','.$attacke1[5].','.$attacke1[6].','.$attacke1[7].','.$attacke1[8].','.$attacke1[9].'\', '. - 'auswahl1=\''.$auswahl1_0.','.$auswahl1_1.','.$auswahl1_2.','.$auswahl1_3.','.$auswahl1_4.','.$auswahl1_5.','.$auswahl1_6.','.$auswahl1_7.','.$auswahl1_8.','.$auswahl1_9.'\', '. - 'auswahl2=\''.$auswahl2_0.','.$auswahl2_1.','.$auswahl2_2.','.$auswahl2_3.','.$auswahl2_4.','.$auswahl2_5.','.$auswahl2_6.','.$auswahl2_7.','.$auswahl2_8.','.$auswahl2_9.'\', '. - 'auswahl3=\''.$auswahl3_0.','.$auswahl3_1.','.$auswahl3_2.','.$auswahl3_3.','.$auswahl3_4.','.$auswahl3_5.','.$auswahl3_6.','.$auswahl3_7.','.$auswahl3_8.','.$auswahl3_9.'\', '. - 'attacken2=\''.$attacke2[0].','.$attacke2[1].','.$attacke2[2].','.$attacke2[3].','.$attacke2[4].','.$attacke2[5].','.$attacke2[6].','.$attacke2[7].','.$attacke2[8].','.$attacke2[9].'\', '. - 'bild=\''.$bild11.'\' WHERE id='.$char_1[id].' LIMIT 1'); - + //Schauen ob ein Fehler vorhanden ist + if ($fehler[0] == NULL && $fehler[1] == NULL && $fehler[2] == NULL) { + //In DB einfügen (alter müll, vor allen was Attacken angeht!) + $qry = 'UPDATE chars SET kampf_item=\''.$helm_e.','.$rustung_e.','.$schild_e.','.$schwert_e.','.$schuhe_e.'\', rustung =\''.$rustung.'\', '. + 'attacken=\''.implode(',', $attset_nf).'\', '. + 'attacken2=\''.implode(',', $attset_nf).'\', '. + 'bild=\''.$bild11.'\' WHERE id='.$char[id].' LIMIT 1'; + mysql_query($qry); + + //neues updaten von Attacken + updateCharAttackSet($char_id, $attset_cf, CLANKAMPF); + updateCharAttackSet($char_id, $attset_nf, NORMALKAMPF); + echo 'Profil erfolgreich geändert!!
'; echo '
weiter...
'; - //Alle gefundenen Fehler anzeigen - } else { $fehler2 = implode("
", $fehler); - echo '
'.$fehler2.'
'; - echo '
zurück
'; + } else { + displayErrorMessage(NULL, $fehler[0].'
'.$fehler[1].'
'.$fehler[2], displayHistoryBackLink()); + exit; } } -if ($_POST['submit']==1) { eintragen($char_id,$name,$user_ida); } -elseif ($char_id) { stelledar($char_id,$user_ida,$name); } -else { echo 'Leider wurde die Seite nicht korrekt aufgerufen! Rufen Sie die Seite bitte korrekt auf'; } + +if ($_POST['submit']==1) { + eintragen($char_id,$name,$user_ida); +} elseif ($char_id) { + stelledar($char_id,$user_ida,$name); +} else { + echo 'Leider wurde die Seite nicht korrekt aufgerufen! Rufen Sie die Seite bitte korrekt auf'; +} ?> \ No newline at end of file diff --git a/ag/include/attackenset.inc.php b/ag/include/attackenset.inc.php index 66ead07..3d60e16 100644 --- a/ag/include/attackenset.inc.php +++ b/ag/include/attackenset.inc.php @@ -8,36 +8,163 @@ include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/defines.inc.php'); - +//Set-Arten +defineIfNotDefined('NORMALKAMPF', 1); defineIfNotDefined('CLANKAMPF', 2); +//Anzahl der Typen die in einem Kampf erlaubt sind +//TODO: sollte überprüft werden, welche typen es eigentlich ingame noch gibt +defineIfNotDefined('KAMPF_SSJ', 1); // SSJ ist eine Art technik die werte mal setzt +defineIfNotDefined('KAMPF_TAUSCH', 1); // Tausch ist eine Art technik die alle werte vertauscht gegner und sich selbst +defineIfNotDefined('KAMPF_HP', 2); // HP ist eine technik die es erlaubt sich zu Heilen +defineIfNotDefined('KAMPF_HPMP', 1); // HPMP ist eine art die HP+MP erhoeht +defineIfNotDefined('KAMPF_SPIRIT', 1); // spirit ist was mit spirit stones +defineIfNotDefined('KAMPF_LOSE', 1); // Lose ist wie Kaioken nur das man werte verliert +defineIfNotDefined('KAMPF_KAIOKEN', 1); // Kaioken ist eine technik die werte gibt +defineIfNotDefined('KAMPF_SUMMON', 1); // spirit2 ist was mit spirit stones +defineIfNotDefined('KAMPF_GIFT', 1); // Lose ist wie Kaioken nur das man werte verliert +defineIfNotDefined('KAMPF_SCHATTEN', 2); // Kaioken ist eine technik die werte gibt +defineIfNotDefined('KAMPF_COPY', 1); // Man Trasfert werte. +defineIfNotDefined('KAMPF_KAIOKEN2', 1); // Man Bekommt sau viel staerke fuer 1runde +defineIfNotDefined('KAMPF_LOSE2', 1); // MP Wegmachen +defineIfNotDefined('KAMPF_MAJIN', 1); // Jemnand als majin machen. +defineIfNotDefined('KAMPF_KONTERHEAL', 2); // Eine Heal-Attacke kontern. +defineIfNotDefined('KAMPF_TAUSCH2', 3); // Attacke Kopieren. +defineIfNotDefined('KAMPF_FRUCHT', 1); + function getCharAttackSet($char_id, $type) { $qry = null; // default values (in case the data is not or partially set) - $set = array(1 => 0,2 => 0,3 => 0,4 => 0,5 => 0,6 => 0,7 => 0,8 => 0,9 => 0,10 => 0); + for ($i = 1; $i < 11; $i++) { + $set[$i] = -1; + } if(is_numeric($char_id)) { - $test = 'SELECT attack_id,`round` FROM attackenset WHERE Char_ID = '.$char_id.' AND Type = '.$type; -// echo $test . '
'; - $qry = mysql_query($test); + $qry = mysql_query('SELECT Attack_ID, Round FROM attackenset WHERE Char_ID = '.$char_id.' AND Type = '.$type); } - - $i = 0; while ($result = mysql_fetch_assoc($qry)) { - $set[$result['round']] = $result['attack_id']; + $set[$result['Round']] = $result['Attack_ID']; } return $set; } -function updateCharAttackSet($set) { +function updateCharAttack($char_id, $att_id,$round, $type) { + $qry = 'UPDATE attackenset SET Attack_ID = '.$att_id.' WHERE Char_ID = '.$char_id.' AND Type = '.$type.' AND Round = '.$round.';'; + mysql_query($qry); +} +function createCharAttack($char_id, $att_id,$round, $type) { + $qry = 'INSERT INTO attackenset VALUES('.$char_id.','.$att_id.','.$type.','.$round.');'; + mysql_query($qry); } -function createCharAttackSet() { +function updateCharAttackSet($char_id, $set, $type) { + $old_set = getCharAttackSet($char_id, $type); + for ($i = 1; $i < count($set)+1; $i++) { + if($old_set[$i] < 0 && $set[$i] > 0) { + //insert new value + createCharAttack($char_id, $set[$i], $i, $type); + } elseif($old_set > 0 && $set[$i] != $old_set[$i]) { + //update old value + updateCharAttack($char_id,$set[$i], $i, $type); + } + } } +function getAttackTypesFromAttackSet($attset) { + $qry = mysql_query('SELECT l.id,a.type FROM attacken a INNER JOIN lernen l ON a.id=l.at_id WHERE l.id in ('.implode(',', $attset).');'); + + while ($result = mysql_fetch_assoc($qry)) { + $set[$result['id']] = $result['type']; + } -?> + return $set; +} + +function validateAttackSetTypes($attset) { + $types = getAttackTypesFromAttackSet($attset); + foreach ($attset as $att_id) { + if($types[$att_id] == "tausch") { $kampf_tausch_n++; + }elseif($types[$att_id] == "SSJ") { $kampf_ssj_n++; + }elseif($types[$att_id] == "hpmp") { $kampf_hpmp_n++; + }elseif($types[$att_id] == "hp") { $kampf_hp_n++; + }elseif($types[$att_id] == "lose") { $kampf_lose_n++; + }elseif($types[$att_id] == "kaioken") { $kampf_kaioken_n++; + }elseif($types[$att_id] == "summon") { $kampf_summon_n++; + }elseif($types[$att_id] == "gift") { $kampf_gift_n++; + }elseif($types[$att_id] == "schatten") { $kampf_schatten_n++; + }elseif($types[$att_id] == "copy") { $kampf_copy_n++; + }elseif($types[$att_id] == "kaioken2") { $kampf_kaioken2_n++; + }elseif($types[$att_id] == "lose2") { $kampf_lose2_n++; + }elseif($types[$att_id] == "majin") { $kampf_majin_n++; + }elseif($types[$att_id] == "tausch2") { $kampf_tausch2_n++; + }elseif($types[$att_id] == "frucht") { $kampf_frucht_n++; + }elseif($types[$att_id] == "konterhp") { $kampf_konterheal_n++; + } + if($kampf_copy_n > KAMPF_COPY) { + return "Fehler die Technik vom type: Copy darf nur ".KAMPF_COPY." mal benutzt werden."; + } + if($kampf_kaioken2_n > KAMPF_KAIOKEN2) { + return "Fehler die Technik vom type: Kaiaoken2 darf nur ".KAMPF_KAIOKEN2." mal benutzt werden."; + } + if($kampf_lose2_n > KAMPF_LOSE2) { + return "Fehler die Technik vom type: lose2 darf nur ".KAMPF_LOSE2." mal benutzt werden."; + } + if($kampf_majin_n > KAMPF_MAJIN) { + return "Fehler die Technik vom type: Majin darf nur ".KAMPF_MAJIN." mal benutzt werden."; + } + if($kampf_tausch2_n > KAMPF_TAUSCH2) { + return "Fehler die Technik vom type: Tausch darf nur ".KAMPF_TAUSCH2." mal benutzt werden."; + } + if($kampf_summon_n > KAMPF_SUMMON) { + return "Fehler die Technik vom type: Summon darf nur ".KAMPF_SUMMON." mal benutzt werden."; + } + if($kampf_gift_n > KAMPF_GIFT) { + return "Fehler die Technik vom type: Gift darf nur ".KAMPF_GIFT." mal benutzt werden."; + } + if($kampf_schatten_n > KAMPF_SCHATTEN) { + return "Fehler die Technik vom type: Schatten darf nur ".KAMPF_SCHATTEN." mal benutzt werden."; + } + if($kampf_ssj_n AND $kampf_kaioken_n) { + return "Fehler sie dürfen Techniken vom Type SSJ und Kaioken nicht zusammen nutzen."; + } + if($kampf_tausch_n > KAMPF_TAUSCH) { + return "Fehler die Technik vom type: Kampf darf nur ".KAMPF_TAUSCH." mal benutzt werden."; + } + if($kampf_ssj_n > KAMPF_SSJ) { + return "Fehler die Technik vom type: SSJ darf nur ".KAMPF_SSJ." mal benutzt werden."; + } + if($kampf_hp_n > KAMPF_HP) { + return "Fehler die Technik vom type: HP darf nur ".KAMPF_HP." mal benutzt werden."; + } + if($kampf_hpmp_n > KAMPF_HPMP) { + return "Fehler die Technik vom type: HPMP darf nur ".KAMPF_HPMP." mal benutzt werden."; + } + if($kampf_sprit_n > KAMPF_SPIRIT) { + return "Fehler die Technik vom type:Sprit darf nur ".KAMPF_SPIRIT." mal benutzt werden."; + } + if($kampf_sprit2_n > $kampf_sprit2) { + return "Fehler die Technik vom type: Sprit2 darf nur ".$kampf_sprit2." mal benutzt werden."; + } + if($kampf_lose_n > KAMPF_LOSE) { + return "Fehler die Technik vom type: Lose darf nur ".KAMPF_LOSE." mal benutzt werden."; + } + if($kampf_kaioken_n > KAMPF_KAIOKEN) { + return "Fehler die Technik vom type: Kaiaoken darf nur ".KAMPF_KAIOKEN." mal benutzt werden."; + } + if($kampf_frucht_n > KAMPF_FRUCHT) { + return 'Fehler die Technik vom type: frucht darf nur '.KAMPF_FRUCHT.' mal benutzt werden!'; + } + if($kampf_konterheal_n > KAMPF_KONTERHEAL) { + return 'Fehler die Technik vom type: Konterheal darf nur '.KAMPF_KONTERHEAL.' mal benutzt werden!'; + } + if($kampf_hp_n >= 1 AND $kampf_hpmp_n >= 1) { + return 'Fehler die Technik vom type: HP darf nicht zusammen mit der Technik vom type: HPMP benutzt werden!'; + } + } + return NULL; +} +?> \ No newline at end of file diff --git a/ag/include/char.inc.php b/ag/include/char.inc.php index 70a81d2..0f5c795 100644 --- a/ag/include/char.inc.php +++ b/ag/include/char.inc.php @@ -129,9 +129,7 @@ function getChar2($charid) { function getCharWithBuffs($charid, $buffer_enabled = true){ $char = getChar($charid, $buffer_enabled); - if($char['kampf_item'] != NULL && $char['kampf_item'] != ',,,,'){ - $char_buffs = mysql_fetch_assoc(mysql_query('SELECT sum(i.hp) as hp, sum(i.mp) as mp, sum(i.starke) as starke, sum(i.verteidigung) as verteidigung, sum(i.speed) as speed FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE w.id IN (' . $char['kampf_item'] . ')')); - } + $char_buffs = getCharBuffs($char['kampf_item']); $char['starke'] += $char_buffs['starke']; $char['verteidigung'] += $char_buffs['verteidigung']; $char['speed'] += $char_buffs['speed']; @@ -140,6 +138,12 @@ function getCharWithBuffs($charid, $buffer_enabled = true){ return $char; } +function getCharBuffs($items) { + if($items != NULL && $items != ',,,,'){ + $char_buffs = mysql_fetch_assoc(mysql_query('SELECT sum(i.hp) as hp, sum(i.mp) as mp, sum(i.starke) as starke, sum(i.verteidigung) as verteidigung, sum(i.speed) as speed FROM ware w LEFT JOIN item i ON(i.id=w.item_id) WHERE w.id IN ('.$items.')')); + } + return $char_buffs; +} // Uebergabe der Userid (Nachteil ist, dass Puffer von getChar mit $charid nicht moeglich ist, weil information fehlt, ob alle Chars im Buffer sind @@ -245,7 +249,12 @@ function getPowerLevelWithBuffs($charid, $buffer_enabled = true){ * Auslesen der Attacken, die der Char beherrscht */ function getCharAttacks($charid){ - + $attacks = array(); + $qry = mysql_query("SELECT name, id, at_id FROM lernen WHERE besitzer='$charid' AND aktiv > '0' order by id"); + while($row = mysql_fetch_array($qry)) { + $attacks[] = array('name'=>$row['name'], 'id'=>$row['id'], 'at_id'=>$row['at_id']); + } + return $attacks; } // Auslesen der Kampfeinstellungen @@ -310,7 +319,7 @@ function getAttacksforChar($charid, $mode = 0) { // first read out basic information about our attacks -// $sql = 'select a.name, a.id, a.level, if(find_in_set(\'0\', req_atk) = 0, a.req_atk, substr(a.req_atk, 1, locate(\',0\', a.req_atk) - 1)) as req_atk , geld, ifnull((select l.benutzt from lernen l where l.besitzer = '.$char['id'].' and at_id = a.id),0) as benutzt, a.id not in (select l.at_id from lernen l where l.besitzer = '.$char['id'].') as unknown from attacken a where find_in_set('.$char_race.', a.rassen) order by level'; + // $sql = 'select a.name, a.id, a.level, if(find_in_set(\'0\', req_atk) = 0, a.req_atk, substr(a.req_atk, 1, locate(\',0\', a.req_atk) - 1)) as req_atk , geld, ifnull((select l.benutzt from lernen l where l.besitzer = '.$char['id'].' and at_id = a.id),0) as benutzt, a.id not in (select l.at_id from lernen l where l.besitzer = '.$char['id'].') as unknown from attacken a where find_in_set('.$char_race.', a.rassen) order by level'; $sql_append = ''; @@ -329,7 +338,7 @@ function getAttacksforChar($charid, $mode = 0) { $qry = mysql_query($sql); if($qry === FALSE) // print sql on error - echo '
'.$sql.'
'; + echo '
'.$sql.'
'; // The first index is the id of the attack! // then there is the basic information like diff --git a/ag/include/char_profil.inc.php b/ag/include/char_profil.inc.php index 56c52b4..2487589 100644 --- a/ag/include/char_profil.inc.php +++ b/ag/include/char_profil.inc.php @@ -25,35 +25,27 @@ function safe_query($query="") { function chardaten($char_id,$name,&$char_1,&$hp1,&$mp1,&$exp,&$fehler) { $char_1 = getChar($char_id); - $hp1 = explode(',', $char_1[hp]); - $mp1 = explode(',', $char_1[mp]); - $exp = explode(',', $char_1[exp]); + $hp1 = explode(',', $char_1['hp']); + $mp1 = explode(',', $char_1['mp']); + $exp = explode(',', $char_1['exp']); $user = mysql_Fetch_array(mysql_query("SELECT id FROM user WHERE nickname='$name' LIMIT 1")); if($char_1['besitzer'] != $user[0]) { - $fehler[0]= 'Dieser Char geh�rt nicht dir!'; + $fehler= 'Dieser Char gehört nicht dir!'; } return array($char_1,$hp1,$mp1,$exp,$fehler); } -//hier werden die aktuell gew�hlten attcken der jeweiligen runden ausgelesen -function aktuelleauswahl($char_1,&$at11,&$at11_2,&$auswahl1,&$auswahl2,&$auswahl3) { - $at11 = explode(",", $char_1[attacken]); - $at11_2 = explode(",", $char_1[attacken2]); - $auswahl1 = explode(",", $char_1[auswahl1]); - $auswahl2 = explode(",", $char_1[auswahl2]); - $auswahl3 = explode(",", $char_1[auswahl3]); - return array($at11,$at11_2,$auswahl1,$auswahl2,$auswahl3); -} - - -//pr�ft, ob der char verf�gbar ist -function istcharfrei($char_id,$char_1,$anz,&$fehler) { - $anz=0; - if($char_1[status] != "Frei" AND $char_1[status] != "akademie") { - $fehler[18] = "Charakter ist zur Zeit nicht verfügbar!"; - $anz++; +/** + * + * Überprüft den Status des Charakters + * @param Array $char: Der Charakterarray, welche 'status' beinhalten muss + * @param String $status: Der Status auf den geprüft wird + */ +function checkCharStatus($char, $status) { + if($char['status'] == $status) { + return TRUE; } - return array($fehler); + return FALSE; } ?> \ No newline at end of file