su_check(access_control::SU_RIGHT_EDITORMOUNTS,true); page_header("Stalltier Editor"); addnav('Zurück'); grotto_nav(); addnav('Aktionen'); addnav('Tier hinzufügen','su_mounts.php?op=edit'); output("`c`b`&Stalltiereditor`0`b`c`n"); if(isset($session['message'])) { output($session['message']); unset($session['message']); } if ($_GET['op']=='') { $sql = 'SELECT * FROM mounts ORDER BY mountcategory, mountcostgems, mountcostgold'; $result = db_query($sql); $cat = ""; $str_output.=' '; $int_count = db_num_rows($result); for ($i=0; $i<$int_count; $i++) { $row = db_fetch_assoc($result); if ($cat!=$row['mountcategory']) { $str_output.=''; $cat = $row['mountcategory']; $trclass='trlight'; } //Den Buff laden $row['mountbuff'] = unserialize($row['mountbuff']); $str_mountbuff_desc = ''; foreach ($row['mountbuff'] as $key=>$val) { $str_mountbuff_desc .= "$key: $val`0


"; } $trclass=($trclass=='trdark'?'trlight':'trdark'); $str_output.=' '; } output($str_output.'
Name Preis Eigenschaften Mountbuff Aktionen
Kategorie: '.$row['mountcategory'].'
'.($row['mountactive']?'':'').create_lnk($row['mountname'].'`0','su_mounts.php?op=edit&id='.$row['mountid']).($row['mountactive']?'':'').' '.$row['mountcostgems'].' Edels, '.$row['mountcostgold'].' Gold DK: '.$row['mindk'].', WK: '.$row['mountforestfights'].', Tav: '.$row['tavern'].', Mine: '.$row['mine_canenter'].'|'.$row['mine_cansave'].' '.jslib_hint('Buff ansehen',$str_mountbuff_desc).' '.create_lnk('Löschen','su_mounts.php?op=del&id='.$row['mountid']).'
'); } elseif ($_GET['op']=="save") { $mount = db_get('SELECT * FROM mounts WHERE mountid='.$_POST['mountid']); $buffkeys=array( 'name' ,'roundmsg' ,'wearoff' ,'effectmsg' ,'effectnodmgmsg' ,'effectfailmsg' ,'rounds' ,'atkmod' ,'defmod' ,'regen' ,'minioncount' ,'minbadguydamage' ,'maxbadguydamage' ,'lifetap' ,'damageshield' ,'badguydmgmod' ,'badguyatkmod' ,'badguydefmod' ,'activate' ); foreach($_POST as $key=>$val) { if(in_array($key,$buffkeys)) { if($_POST[$key]!='') { $_POST['mountbuff'][$key]=stripslashes($val); } unset($_POST[$key]); } } if($_POST['newcategory']>'') { $_POST['mountcategory']=$_POST['newcategory']; } unset($_POST['newcategory']); unset($_POST['form_submit']); $arr_keys=''; $arr_vals=''; $arr_set_sql=''; foreach($_POST as $key=>$val) { if (is_array($val)) { $val = serialize($val); } if ((int)$_POST['mountid'] != 0) { $arr_set_sql[] = "$key='".addslashes($val)."'"; } else { $keys[] = $key; $vals[] = "'".addslashes($val)."'"; } } if ($_POST['mountid']>0) { $sql = 'UPDATE mounts SET '.implode(',',$arr_set_sql).' WHERE mountid="'.$_POST['mountid'].'"'; } else { $sql='INSERT INTO mounts ('.implode(',',$keys).') VALUES ('.implode(',',$keys).')'; } db_query($sql); if (db_affected_rows()>0) { $session['message']='`c`@Das Tier wurde gespeichert!`0`c`n'; systemlog('Mount '.$mount['mountname'].'`0 geändert!',$session['user']['acctid']); cache_release('playermount'); } else { $session['message']='`c`$Tier `bnicht`b gespeichert!`0`c`n'; } redirect('su_mounts.php'); } elseif ($_GET['op']=="edit") { addnav("Zurück zum Editor","su_mounts.php"); $mount=array(); if($_GET['id']>'') { $sql = "SELECT * FROM mounts WHERE mountid='".(int)$_GET['id']."'"; $result = db_query($sql); if (db_num_rows($result)<=0) { output("`iDieses Stalltier wurde nicht gefunden.`i"); } else { $mount = db_fetch_assoc($result); $mountbuff = unserialize(stripslashes($mount['mountbuff'])); $mount = adv_array_merge($mount,$mountbuff); } } $sql='SELECT mountcategory FROM mounts GROUP BY mountcategory'; $result=db_query($sql); while($row=db_fetch_assoc($result)) { $cat.=','.$row['mountcategory'].','.$row['mountcategory']; } $arr_form=array( 'Eigenschaften,title' ,'mountid' =>'ID,hidden|?Die ID, unter der das Tier in der DB gespeichert ist.' ,'mname_prev' => 'Namens-Vorschau:,preview,mountname' ,'mountname' => 'Tiername,40' ,'mdesc_prev' => 'Beschreibungs-Vorschau:,preview,mountdesc' ,'mountdesc' => 'Beschreibung für Mericks Ställe,textarea,66,8' ,'mountcategory' => 'Tier-Kategorie,enum'.$cat ,'newcategory' => 'oder neue Kategorie eingeben,40' ,'mountcostgold' => 'Kosten an Gold,int' ,'mountcostgems' => 'Kosten an Edelsteinen,int' ,'mountactive' => 'Für Spieler freigegeben?,bool' ,'mindk' => 'Erhältlich ab DK,int' ,'mountforestfights'=> 'Zusätzliche Waldkämpfe pro Tag,int' ,'tavern' => 'Findet DarkHorse Taverne,bool' ,'newday_prev' => 'Newday-Vorschau:,preview,newday' ,'newday' => 'Nachricht am neuen Tag,88' ,'recharge_prev' => 'Recharge-Vorschau:,preview,recharge' ,'recharge' => 'Nachricht bei vollkommener Erholung,88' ,'partrecharge_prev'=> 'PartRecharge-Vorschau:,preview,partrecharge' ,'partrecharge' => 'Nachricht bei teilweiser Erholung,88' ,'trainingcost' => 'Faktor für Kosten bei Tiertrainer,int|?Wert hoch der schon erhaltenen Runden' ,'Kampf,title' ,'aname_prev' => 'Aktionsname-Vorschau:,preview,name' ,'name' => 'Aktionsname|?' ,'roundmsg_prev' => 'RoundMsg-Vorschau:,preview,roundmsg' ,'roundmsg' => 'Nachricht jede Runde,88' ,'wearoff_prev' => 'Wearoff-Vorschau:,preview,wearoff' ,'wearoff' => 'Nachricht bei Erschöpfung,88' ,'healmsg_prev' => 'healmsg-Vorschau:,preview,effectmsg' ,'healmsg' => 'Heilungsnachricht,88|?Wird ' ,'effmsg_prev' => 'EffectMsg-Vorschau:,preview,effectmsg' ,'effectmsg' => 'Effekt Nachricht,88' ,'nodmgmsg_prev' => 'EffectNoDmgMsg-Vorschau:,preview,effectnodmgmsg' ,'effectnodmgmsg' => 'Effekt Nachricht bei vollkommener`nGesundheit des Spielers (nur Heil-Tiere),88' ,'noeff_prev' => 'EffectFailMsg-Vorschau:,preview,effectfailmsg' ,'effectfailmsg' => 'Effekt Fehlschlag Nachricht,88' ,'effects' => 'Effekte,viewonly' ,'rounds' => 'Runden am neuen Tag,int' ,'atkmod' => 'Spieler Angriffs-Multiplikator,int' ,'defmod' => 'Spieler Verteidigungs-Multiplikator,int' ,'regen' => 'Heilt Spieler x Punkte pro Runde,int' ,'minioncount' => 'Mehrfach-Effekt,int' ,'minbadguydamage' => 'Min Punkte Gegnerschaden,int' ,'maxbadguydamage' => 'Max Punkte Gegnerschaden,int' ,'lifetap' => 'Lebenskraft-Multiplikator(Lifetap),int|?Multipliziert vom Spieler zugefügten Schaden mit Faktor und addiert den Wert zu Spielerlebenspunkten hinzu.' ,'damageshield' => 'Schadensabwehr,int|?Multipliziert vom Spieler zugefügten Schaden mit Faktor und zieht den finalen Wert vom Gegner ab.' ,'badguydmgmod' => 'Gegnerschaden Multiplikator,int' ,'badguyatkmod' => 'Gegner Angriffs-Multiplikator,int' ,'badguydefmod' => 'Gegner Verteidigungs-Multiplikator,int' ,'activate' => 'Aktivieren bei|?Mögliche Werte: roundstart,offense,defense Für Mehrfachauswahl Begriffe durch Komma getrennt schreiben' ,'Mine+Stall,title' ,'mine_canenter' => 'Kann Mine betreten (in %),int' //,'mine_candie' => 'Kann in Mine sterben (in %),int' ,'mine_cansave' => 'Kann Spieler aus Mine retten (in %),int' //,'mine_t_msg_prev' => 'mine_tethermsg-Vorschau:,preview,mine_tethermsg' //,'mine_tethermsg' => 'Nachricht zum Anbinden`ndes Tieres vor der Mine,88' //,'mine_d_msg_prev' => 'mine_deathmsg-Vorschau:,preview,mine_deathmsg' //,'mine_deathmsg' => 'Nachricht bei Tod in der Mine,88' //,'mine_s_msg_prev' => 'mine_savemsg-Vorschau:,preview,mine_savemsg' //,'mine_savemsg' => 'Nachricht wenn der Spieler`ngerettet wurde,88' ,'mine_bag' => 'Zusätzlicher Stauraum für Minenausbeute,int' ,'stables' => 'Ställe,viewonly' ,'mountproduct' => 'Namensteil für Wurst und Dung' ,'mount_sausage' => 'Goldwert des Tieres nach Schlachtung' ); output("
",true); addnav("","su_mounts.php?op=save"); showform($arr_form,$mount); output("
",true); } else if($_GET['op'] == 'del') { $id = (int)$_GET['id']; addnav("Zurück zum Editor","su_mounts.php"); $mount = db_get('SELECT * FROM mounts WHERE mountid='.$id); output('`bTier löschen`b`n`n'); if(null == $mount) { output('FEHLER: Mount mit ID '.$id.' nicht gefunden!'); } else { $lnk = 'su_mounts.php?op=del&id='.$id.'&del=1'; if(!isset($_GET['del'])) { // ANzahl der Spieler mit diesem Mount list($count) = db_fetch_array(db_query('SELECT COUNT(hashorse) FROM accounts WHERE hashorse='.$id)); if($count > 0) { $res = db_query('SELECT mountname,mountid FROM mounts WHERE mountid<>'.$id); $mounts['0'] = 'Nichts'; while($m = db_fetch_array($res)) { $mounts[$m[1]] = $m[0]; } $mountsel = ''; $mountsel = form_sel_options($mounts,false,true); output('`$Achtung: '.$count.' Spieler besitzen noch ein '.$mount['mountname'].'`$! Was soll mit diesen geschehen?`n`n '.form_header($lnk).' Durch ein `n '); } else { output('`$Soll '.$mount['mountname'].'`$ wirklich gelöscht werden?`n`n' .create_lnk('Ja!',$lnk)); } } else { db_query('DELETE FROM mounts WHERE mountid='.$id.' LIMIT 1'); if(db_affected_rows()) { // Wenn Ersetzung if(!empty($_POST['replaceby'])) { db_query('UPDATE accounts SET hashorse='.(int)$_POST['replacedby'].' WHERE hashorse='.$id); output('`0'.db_affected_rows().'`0 '.$mount['mountname'].'`0 wurden ersetzt!`n`n'); } output($mount['mountname'].'`0 wurde gelöscht!`n`n'); systemlog('Mount '.$mount['mountname'].'`0 gelöscht!',$session['user']['acctid']); } else { output('Löschen fehlgeschlagen!'); } } } } page_footer(); ?>