when fusing now a new char is created instead of the first char updated

main
hecht 7 years ago
parent 79f284ce94
commit d0b36e2c6d

@ -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.'<br>';
$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
$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)) {
$attarray[] = $row['at_id'];
db_query('Update lernen set benutzt = '.$row['benutzt'].' where at_id = '.$row['at_id'].' and besitzer = '.$char1);
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('&Auml;nderungen &uuml;bernommen','Charakter: '.$new_name.' erfolgreich fusioniert!!','<a href="index.php?as=char_index">weiter...</a>');
return;

Loading…
Cancel
Save