/** * su_creatures.php: Editor für Wald- + Friedhofmonster * @author LOGD-Core, modded by Drachenserver-Team * @version DS-E V/2 */ require_once "common.php"; $access_control->su_check(access_control::SU_RIGHT_EDITORWORLD,true); //select distinct creaturelevel,max(creaturehealth) as creaturehealth,max(creatureattack) as creatureattack,max(creaturedefense) as creaturedefense,max(creatureexp) as creatureexp,max(creaturegold) as creaturegold from creatures where creaturelevel<17 group by creaturelevel; //update creatures set creatureattack=2 where creaturelevel=2 $creaturestattable=" +---------------+----------------+----------------+-----------------+-------------+--------------+ | creaturelevel | creaturehealth | creatureattack | creaturedefense | creatureexp | creaturegold | +---------------+----------------+----------------+-----------------+-------------+--------------+ | 1 | 11 | 1 | 1 | 14 | 36 | | 2 | 22 | 2 | 3 | 24 | 97 | | 3 | 33 | 5 | 4 | 34 | 148 | | 4 | 44 | 7 | 6 | 45 | 162 | | 5 | 55 | 9 | 7 | 55 | 198 | | 6 | 66 | 11 | 8 | 66 | 234 | | 7 | 77 | 13 | 10 | 77 | 268 | | 8 | 88 | 15 | 11 | 89 | 302 | | 9 | 99 | 17 | 13 | 101 | 336 | | 10 | 110 | 19 | 14 | 114 | 369 | | 11 | 121 | 21 | 15 | 127 | 402 | | 12 | 132 | 23 | 17 | 141 | 435 | | 13 | 143 | 25 | 18 | 156 | 467 | | 14 | 154 | 27 | 20 | 172 | 499 | | 15 | 165 | 29 | 21 | 189 | 531 | | 16 | 176 | 31 | 22 | 207 | 563 | | 17 | 187 | 33 | 23 | 214 | 563 | +---------------+----------------+----------------+-----------------+-------------+--------------+ "; $creaturestats=Array(); $creaturestattable=split("\n",$creaturestattable); $x=0; while (list($key,$val)=each($creaturestattable)) { if (strpos($val,"|")!==false) { $x++; $a = split("\\|",$val); if ($x==1) { $stats=array(); while (list($key1,$val1)=each($a)) { if (trim($val1)>"") { $stats[$key1]=trim($val1); } } } else { reset($stats); while (list($key1,$val1)=each($stats)) { $creaturestats[(int)$a[1]][$val1]=trim($a[$key1]); } } } } page_header("Creature Editor"); if ($access_control->su_check(access_control::SU_RIGHT_EDITORWORLD)) { grotto_nav(); if ($_POST['save']<>"") { if (!isset($_POST['location'])) { $_POST['location']=0; } if ($_POST['id']!='') { $sql="UPDATE creatures SET "; foreach ($_POST as $key=>$value) { if (substr($key,0,8)=="creature") { $sql.="$key = '$value', "; } } reset($creaturestats[(int)$_POST['creaturelevel']]); foreach ($creaturestats[$_POST['creaturelevel']] as $key=>$value) { if ($key!="creaturelevel" && substr($key,0,8)=="creature") { $sql.="$key = \"".addslashes($value)."\", "; } } $sql.=" location=\"".(int)($_POST['location'])."\" "; $sql.= " WHERE creatureid='$_POST[id]'"; db_query($sql); output(db_affected_rows()." ".(db_affected_rows()==1?"Eintrag":"Einträge")." geändert."); } else { $cols = array(); $vals = array(); foreach ($_POST as $key=>$value) { if (substr($key,0,8)=="creature" || $key=="location") { array_push($cols,$key); array_push($vals,$value); } } reset($creaturestats[(int)$_POST['creaturelevel']]); foreach ($creaturestats[$_POST['creaturelevel']] as $key=>$value) { if ($key!="creaturelevel") { array_push($cols,$key); array_push($vals,$value); } } $sql="INSERT INTO creatures (".join(",",$cols).",createdby) VALUES(\"".join("\",\"",$vals)."\",\"".addslashes($session['user']['login'])."\")"; db_query($sql); } cache_reset('forestcreatures'.$_POST['creaturelevel'],'sql'); } if ($_GET['op']=="count") { $sql='SELECT COUNT(*) AS c,creaturelevel FROM creatures GROUP BY creaturelevel ORDER BY creaturelevel ASC'; $result=db_query($sql); $str_out='`^Alle Monster:`0`n'; while ($row=db_fetch_assoc($result)) { $str_out.='Level '.$row['creaturelevel'].': '.$row['c'].' Monster`n'; } $sql='SELECT COUNT(*) AS c,creaturelevel FROM creatures WHERE location=1 GROUP BY creaturelevel ORDER BY creaturelevel ASC'; $result=db_query($sql); $str_out.='`n`^Monster auf dem Friedhof:`0`n'; while ($row=db_fetch_assoc($result)) { $str_out.='Level '.$row['creaturelevel'].': '.$row['c'].' Monster`n'; } output($str_out); } if ($_GET['op']=="del") { $sql = 'DELETE FROM creatures WHERE creatureid = '.$_GET['id']; db_query($sql); if (db_affected_rows()>0) { output("Kreatur gelöscht`n`n"); } else { output("Kreatur nicht gelöscht: ".db_error(LINK)); } $_GET['op']=""; } if ($_GET['op']=="") { addnav('Aktionen'); addnav("Eine Kreatur hinzufügen","su_creatures.php?op=add"); addnav("Zählen","su_creatures.php?op=count"); addnav('~'); addnav('Meister-Editor','su_masters.php'); $arr_res = page_nav('su_creatures.php','SELECT count(*) AS c FROM creatures'); $sql = 'SELECT * FROM creatures'; if ($_POST['searchform']==1) { $sql.=' WHERE 1 '.($_POST['c_name']?' AND creaturename LIKE "%'.addslashes($_POST['c_name']).'%"':'').' '.($_POST['c_level']?' AND creaturelevel = "'.intval($_POST['c_level']).'"':'').' '.($_POST['c_weapon']?' AND creatureweapon LIKE "%'.addslashes($_POST['c_weapon']).'%"':'').' '.($_POST['c_lose']?' AND creaturelose LIKE "%'.addslashes($_POST['c_lose']).'%"':'').' '.($_POST['c_win']?' AND creaturewin LIKE "%'.addslashes($_POST['c_win']).'%"':'').' '; } $sql.=' ORDER BY creaturelevel,creaturename ASC LIMIT '.$arr_res['limit']; $result = db_query($sql); $str_output.="
`n"; addnav('','su_creatures.php'); $str_output.='| Ops | Kreaturname | Level | Waffe | Autor | |
|---|---|---|---|---|---|
| Nachricht bei Tod und Sieg | |||||
| [Edit|Del] | '; } else { $str_output.='['.create_lnk('Edit','su_creatures.php?op=edit&page='.$_GET['page'].'&id='.$row['creatureid']).'|'. create_lnk('Del','su_creatures.php?op=del&page='.$_GET['page'].'&id='.$row['creatureid'],true,false,'Bist du dir sicher, dass du diese Kreatur löschen willst?').'] | '; } $str_output.='`^'.$row['creaturename'].'`0 | '.$row['creaturelevel'].' | `%'.$row['creatureweapon'].'`0 | '.$row['createdby'].' |
| Monster tot: `b'.$row['creaturelose'].'`b Spieler tot: `5'.($row['creaturewin']?$row['creaturewin']:'Zufallsspott').'`0 |
|||||