From d0b36e2c6d55ac1a35f08f73e012aa92b910c152 Mon Sep 17 00:00:00 2001 From: hecht Date: Tue, 10 Oct 2017 16:48:35 +0000 Subject: [PATCH] when fusing now a new char is created instead of the first char updated --- ag/sp_item.php | 73 +++++++++++++++++++++++++------------------------- 1 file changed, 36 insertions(+), 37 deletions(-) diff --git a/ag/sp_item.php b/ag/sp_item.php index 593fa06..3575aac 100644 --- a/ag/sp_item.php +++ b/ag/sp_item.php @@ -113,31 +113,36 @@ function usePotaraReally($user, $item_id, $char1, $char2, $new_name = ''){ $new_hp = ($hp1[1] + $hp2[1]) ; $new_mp = ($mp1[1] + $mp2[1]); + $stats = array( 'name' => '\''.$new_name.'\'', + 'rasse' => $char_v_1['rasse_a']['id'], + 'bild' => '\''.$char_v_1['bild'].'\'', + 'besitzer' => $char_v_1['besitzer'], + 'hp' => '\''.$new_hp.','.$new_hp.'\'', + 'mp' => '\''.$new_mp.','.$new_mp.'\'', + 'exp' => '\''.$char_v_1['exp'].'\'', + 'fusion_rasse' => $char_v_2['rasse_a']['id'], + 'fusion' => '\'ja\'', + 'level' => $char_v_1['level'], + 'ort' => $char_v_1['ort'], + 'clan_train' => $char_v_1['clan_train'] + ); + + $sums = array('starke', 'verteidigung', 'speed', 'ausdauer', 'glueck', 'training_points', 'lernpunkte'); + foreach ($sums as $key) { + $stats[$key] = $char_v_1[$key] + $char_v_2[$key]; + } + + $keys = array(); + $values = array(); + foreach ($stats as $key => $value) { + $keys[] = $key; + $values[] = $value; + } + + $sql = 'INSERT INTO chars('.join(',', $keys).') values('.join(',', $values).')'; - $sql = 'UPDATE chars SET fusion_rasse = '.$char_v_2['rasse_a']['id'].',' . - 'fusion=\'ja\',' . -// 'name=\''.$new_name.'\',' . - 'starke=starke+'.$char_v_2['starke'].',' . - 'verteidigung=verteidigung+'.$char_v_2['verteidigung'].',' . - 'speed=speed+'.$char_v_2['speed'].',' . - 'ausdauer=ausdauer+'.$char_v_2['ausdauer'].',' . - 'glueck=glueck+'.$char_v_2['glueck'].',' . - 'training_points=training_points+'.$char_v_2['training_points'].',' . - 'lernpunkte=lernpunkte+'.$char_v_2['lernpunkte'].',' . - 'hp=\''.$new_hp.','.$new_hp.'\',' . - 'mp=\''.$new_mp.','.$new_mp.'\',' . - 'dead_list = \'\',' . - 'preis = 0,' . - 'siege = 0,' . - 'niederlagen = 0,' . - 'liga_punkte = 0,' . -// 'frucht = \'Keine\',' . // frucht is NULL now!! - 'frucht = NULL,' . - 'liga_siege = 0,' . - 'liga_niederlagen = 0,' . - 'clan_train = 0 ' . - 'where id = '.$char1; // echo $sql.'
'; + $qry = db_query($sql); // Umkopieren der Techniken @@ -146,25 +151,19 @@ function usePotaraReally($user, $item_id, $char1, $char2, $new_name = ''){ displayErrorMessage('Schwerwiegender Fehler','Fusion konnte nicht durchgeführt werden, melden sie sich bei einem GM!!',displayHistoryBackLink()); return; } + // Fetch new charid + $char3 = mysqli_fetch_row(db_query('SELECT id FROM chars WHERE name = \''.$new_name.'\''))[0]; + db_query('DELETE from sp_ware WHERE item='.$item_id.' and user = '.$user['id'].' LIMIT 1'); // Potara loeschen!! -// 1. Ermitteln der Attacken die beide chars gemeinsam hatten - $qry = db_query('select l1.at_id,l1.benutzt + l2.benutzt as benutzt from lernen l1 inner join lernen l2' . - ' on l1.at_id = l2.at_id ' . - ' where (l1.besitzer = '.$char1.' and l2.besitzer = '.$char2.')'); -// 2. Addieren der Ausfuehrungsanzahl - while($row = mysqli_fetch_assoc($qry)){ - $attarray[] = $row['at_id']; - db_query('Update lernen set benutzt = '.$row['benutzt'].' where at_id = '.$row['at_id'].' and besitzer = '.$char1); + $qry = db_query('select at_id, name, sum(benutzt) as benutzt from lernen where besitzer IN('.$char1.', '.$char2.') GROUP BY at_id;'); + while ($row = mysqli_fetch_assoc($qry)) { + db_query('INSERT INTO lernen(name, at_id, besitzer, dauer, aktiv, benutzt) values(\''.$row['name'].'\', '.$row['at_id'].', '.$char3.', 0, 1, '.$row['benutzt'].')'); } -// 3. Ermitteln und Umschreiben der Attacken die char2 hat die char1 jedoch nicht besaß - db_query('Update lernen set besitzer = '.$char1.' where besitzer = '.$char2.' and at_id NOT IN('.join($attarray,',').')'); -// 4. Loeschen der Eintraege von char2 - db_query('Delete from lernen where besitzer = '.$char2); - db_query('DELETE FROM chars WHERE id='.$char2.' LIMIT 1'); // Char kann erst jetzt gelöscht werden + db_query('DELETE FROM lernen WHERE besitzer IN('.$char1.', '.$char2.')'); - db_query('Update chars set name=\''.$new_name.'\' WHERE id = '.$char1); + db_query('DELETE FROM chars WHERE id IN('.$char1.', '.$char2.')'); // Char kann erst jetzt gelöscht werden displayErrorMessage('Änderungen übernommen','Charakter: '.$new_name.' erfolgreich fusioniert!!','weiter...'); return;