ER-Sourceviewer 2007 v2.0

Alle Dateien, die hier eingesehen werden können, sind unter der GNU GPL lizenziert. Wenn du etwas darin findest, das du gerne hättest, so schreibe mir doch bitte eine Anfrage damit ich, wenn ich es rausgeben will, alle Änderungen raussuchen könnte. Denn ich übernehme keine Verantwortung, solltest du was rausnehmen und es geht nicht. Und Support deswegen geb ich schon gar nicht.

Solltest du eine Schwachstelle im Code finden, sei es eine kritische Lücke oder eine Möglichkeit zu cheaten, dann bitte ich dich, mir das mitzuteilen. Solltest du beim cheaten erwischt werden, werde ich deinen Account eigenhändig löschen & bannen; Solltest du meinen Server angreifen, so werde ich meine Rechtsschutzversicherung kontaktieren.

Zur Source springen

Verzeichnisse:


Source anzeigen

Nach Oben


<?php

// 11072004

// Item Editor
// by anpera; based on mount editor
//
// This is for administer items of all kind with anpera's item table
// (first introduced in houses mod)
// items table REQUIRED!
//
// insert:
//     if ($session[user][superuser]>=2) addnav("Item Editor","itemeditor.php");
// into menu of superuser.php
//

require_once "common.php";

page_header("Item Editor");
addnav("G?Zurück zur Grotte","superuser.php");
addnav("W?Zurück zum Weltlichen","village.php");

if (
$_GET['op']=="del"){
    
$sql "DELETE FROM items WHERE id=$_GET[id]";
    
db_query($sql);
    
$_GET['op']="";
    
$_GET['show']=$_GET['show']; // huh? weshalb hab ich das geschrieben?
}

if (
$_GET['op']=="add"){
    
output("Item erzeugen:`n");
    
addnav("Item Editor","itemeditor.php");
    if (
$_GET[show]) addnav("$_GET[show]","itemeditor.php?show=".urlencode($_GET[show])."");
    
itemform(array("class"=>$_GET[show]));
}elseif (
$_GET['op']=="edit"){
    
addnav("Item Editor","itemeditor.php");
    if (
$_GET[show]) addnav("$_GET[show]","itemeditor.php?show=".urlencode($_GET[show])."");
    
$sql "SELECT * FROM items WHERE id='{$_GET['id']}'";
    
$result db_query($sql);
    if (
db_num_rows($result)<=0){
        
output("`iItem nicht vorhanden.`i");
    }else{
        
output("Item Editor:`n");
        
$row db_fetch_assoc($result);
        
$row['buff']=unserialize($row['buff']);
        
itemform($row);
    }
}elseif (
$_GET['op']=="save"){
    
$buff = array();
    
reset($_POST['item']['buff']);
    if (isset(
$_POST['item']['buff']['activate'])) $_POST['item']['buff']['activate']=join(",",$_POST['item']['buff']['activate']);
    while (list(
$key,$val)=each($_POST['item']['buff'])){
        if (
$val>""){
            
$buff[$key]=stripslashes($val);
        }
    }
    
$_POST['item']['buff']=$buff;
    
reset($_POST['item']);
    
$keys='';
    
$vals='';
    
$sql='';
    
$i=0;
    while (list(
$key,$val)=each($_POST['item'])){
        if (
is_array($val)) $val addslashes(serialize($val));
        if (
$_GET['id']>""){
            
$sql.=($i>0?",":"")."$key='$val'";
        }else{
            
$keys.=($i>0?",":"")."$key";
            
$vals.=($i>0?",":"")."'$val'";
        }
        
$i++;
    }
    if (
$_GET['id']>""){
        
$sql="UPDATE items SET $sql WHERE id='{$_GET['id']}'";
    }else{
        
$sql="INSERT INTO items ($keys) VALUES ($vals)";
    }
    
db_query($sql);
    if (
db_affected_rows()>0){
        
output("Item gespeichert!");
    }else{
        
output("Item nicht gespeichert: $sql");
    }
    
addnav("Item Editor","itemeditor.php");
    if (
$_GET[show]) addnav("$_GET[show]","itemeditor.php?show=".urlencode($_GET[show])."");
}else{
    if(
$_GET['show']){
        
$ppp=50// Player Per Page to display
        
if (!$_GET[limit]){
            
$page=0;
        }else{
            
$page=(int)$_GET[limit];
            
addnav("Vorherige Seite","itemeditor.php?show=".urlencode($_GET[show])."&limit=".($page-1)."");
        }
        
$limit="".($page*$ppp).",".($ppp+1);
        
$sql "SELECT items.*,accounts.name AS ownername FROM items
        LEFT JOIN accounts ON accounts.acctid=items.owner WHERE class='$_GET[show]' ORDER BY id LIMIT $limit"
;
        
output("<table>",true);
        
output("<tr><td>Ops</td><td>Name</td><td>Besitzer</td><td>Beschreibung</td></tr>",true);
        
$result db_query($sql);
        if (
db_num_rows($result)>$pppaddnav("Nächste Seite","itemeditor.php?show=".urlencode($_GET[show])."&limit=".($page+1)."");
        
$cat "";
        for (
$i=0;$i<db_num_rows($result);$i++){
            
$row db_fetch_assoc($result);
            
output("<tr>",true);
            
output("<td>[ <a href='itemeditor.php?op=edit&id=$row[id]&show=".urlencode($row['class'])."'>Edit</a> |",true);
            
addnav("","itemeditor.php?op=edit&id=$row[id]&show=".urlencode($row['class'])."");
            
output(" <a href='itemeditor.php?op=del&id=$row[id]&show=".urlencode($row['class'])."' onClick=\"return confirm('Diesen Gegenstand wirklich löschen?');\">Löschen</a> ]</td>",true);
            
addnav("","itemeditor.php?op=del&id=$row[id]&show=".urlencode($row['class'])."");
            
output("<td>$row[name]</td>",true);
            
output("<td>$row[ownername]</td>",true);
            
output("<td>$row[description]</td>",true);
            
output("</tr>",true);
        }
        
output("</table>",true);
        
addnav("Item Editor","itemeditor.php");
        
addnav("Item hinzufügen","itemeditor.php?op=add&show=".urlencode($_GET[show])."");
    }else{
        
$sql "SELECT class FROM items ORDER BY class";
        
output("Verfügbare \"classes\":`n`n<table>",true);
        
output("<tr><td>Name</td></tr>",true);
        
$result db_query($sql);
        
$cat "";
        for (
$i=0;$i<db_num_rows($result);$i++){
            
$row db_fetch_assoc($result);
            if (
$cat!=$row['class']){
                
output("<tr><td><a href='itemeditor.php?show=".urlencode($row['class'])."'>$row[class]</a></td></tr>",true);
                
$cat $row['class'];
                
addnav("","itemeditor.php?show=".urlencode($row['class'])."");
                
output("</tr>",true);
            }
        }
        
output("</table>`n`nUm eine class zu löschen, müssen alle Items dieser class gelöscht werden.`nUm eine neue class zu erstellen, einfach ein Item erzeugen.",true);
        
addnav("Item hinzufügen","itemeditor.php?op=add");
    }
}

function 
itemform($item){
    global 
$output;
    
output("<form action='itemeditor.php?op=save&id=$item[id]' method='POST'>",true);
    
addnav("","itemeditor.php?op=save&id=$item[id]");
    
$output.="<table>";
    
$output.="<tr><td>Item Name:</td><td><input name='item[name]' value=\"".htmlentities($item['name'])."\" maxlength='25'></td></tr>";
    
$output.="<tr><td>Item Beschreibung:</td><td><input name='item[description]' value=\"".htmlentities($item['description'])."\" maxlength='255'></td></tr>";
    
$output.="<tr><td>Item Class:</td><td><input name='item[class]' value=\"".htmlentities($item['class'])."\" maxlength='25'></td></tr>";
    
$output.="<tr><td>Besitzer ID:</td><td><input name='item[owner]' value=\"".htmlentities((int)$item['owner'])."\" size='5'></td></tr>";
    
$output.="<tr><td>Item Wert (Edelsteine):</td><td><input name='item[gems]' value=\"".htmlentities((int)$item['gems'])."\" size='5'></td></tr>";
    
$output.="<tr><td>Item Wert (Gold):</td><td><input name='item[gold]' value=\"".htmlentities((int)$item['gold'])."\" size='5'></td></tr>";
    
$output.="<tr><td>Item Wert 1:</td><td><input name='item[value1]' value=\"".htmlentities((int)$item['value1'])."\" size='5'></td></tr>";
    
$output.="<tr><td>Item Wert 2:</td><td><input name='item[value2]' value=\"".htmlentities((int)$item['value2'])."\" size='5'></td></tr>";
    
$output.="<tr><td>Versteckter Wert:</td><td><input name='item[hvalue]' value=\"".htmlentities((int)$item['hvalue'])."\" size='5'></td></tr>";
    
$output.="<tr><td valign='top'>Item Buff:</td><td>";
    
$output.="<b>Meldungen:</b><Br/>";
    
$output.="Buff Name: <input name='item[buff][name]' value=\"".htmlentities($item['buff']['name'])."\"><Br/>";
    
//output("Initial Message: <input name='mount[mountbuff][startmsg]' value=\"".htmlentities($mount['mountbuff']['startmsg'])."\">`n",true);
    
$output.="Meldung jede Runde: <input name='item[buff][roundmsg]' value=\"".htmlentities($item['buff']['roundmsg'])."\"><Br/>";
    
$output.="Ablaufmeldung: <input name='item[buff][wearoff]' value=\"".htmlentities($item['buff']['wearoff'])."\"><Br/>";
    
$output.="Effektmeldung: <input name='item[buff][effectmsg]' value=\"".htmlentities($item['buff']['effectmsg'])."\"><Br/>";
    
$output.="Kein Schaden Meldung: <input name='item[buff][effectnodmgmsg]' value=\"".htmlentities($item['buff']['effectnodmgmsg'])."\"><Br/>";
    
$output.="Fehlgeschlagen Meldung: <input name='item[buff][effectfailmsg]' value=\"".htmlentities($item['buff']['effectfailmsg'])."\"><Br/>";
    
$output.="<Br/><b>Effekt:</b><Br/>";
    
$output.="Hält Runden (nach Aktivierung): <input name='item[buff][rounds]' value=\"".htmlentities($item['buff']['rounds'])."\" size='5'><Br/>";
    
$output.="Angriffsmulti Spieler: <input name='item[buff][atkmod]' value=\"".htmlentities($item['buff']['atkmod'])."\" size='5'><Br/>";
    
$output.="Verteidigungsmulti Spieler: <input name='item[buff][defmod]' value=\"".htmlentities($item['buff']['defmod'])."\" size='5'><Br/>";
    
$output.="Regen: <input name='item[buff][regen]' value=\"".htmlentities($item['buff']['regen'])."\"><Br/>";
    
$output.="Diener Anzahl: <input name='item[buff][minioncount]' value=\"".htmlentities($item['buff']['minioncount'])."\"><Br/>";
    
$output.="Min Badguy Damage: <input name='item[buff][minbadguydamage]' value=\"".htmlentities($item['buff']['minbadguydamage'])."\" size='5'><Br/>";
    
$output.="Max Badguy Damage: <input name='item[buff][maxbadguydamage]' value=\"".htmlentities($item['buff']['maxbadguydamage'])."\" size='5'><Br/>";
    
$output.="Lifetap: <input name='item[buff][lifetap]' value=\"".htmlentities($item['buff']['lifetap'])."\" size='5'><Br/>";
    
$output.="Damage shield: <input name='item[buff][damageshield]' value=\"".htmlentities($item['buff']['damageshield'])."\" size='5'> (multiplier)<Br/>";
    
$output.="Badguy Damage mod: <input name='item[buff][badguydmgmod]' value=\"".htmlentities($item['buff']['badguydmgmod'])."\" size='5'> (multiplier)<Br/>";
    
$output.="Badguy Atk mod: <input name='item[buff][badguyatkmod]' value=\"".htmlentities($item['buff']['badguyatkmod'])."\" size='5'> (multiplier)<Br/>";
    
$output.="Badguy Def mod: <input name='item[buff][badguydefmod]' value=\"".htmlentities($item['buff']['badguydefmod'])."\" size='5'> (multiplier)<Br/>";
    
//$output.=": <input name='mount[mountbuff][]' value=\"".htmlentities($mount['mountbuff'][''])."\">`n",true);
    
    
$output.="<Br/><b>Aktiviert bei:</b><Br/>";
    
$output.="<input type='checkbox' name='item[buff][activate][]' value=\"roundstart\"".(strpos($item['buff']['activate'],"roundstart")!==false?" checked":"")."> Start der Runde<Br/>";
    
$output.="<input type='checkbox' name='item[buff][activate][]' value=\"offense\"".(strpos($item['buff']['activate'],"offense")!==false?" checked":"")."> Bei Angriff<Br/>";
    
$output.="<input type='checkbox' name='item[buff][activate][]' value=\"defense\"".(strpos($item['buff']['activate'],"defense")!==false?" checked":"")."> Bei Verteidigung<Br/>";
    
$output.="<Br/>";
    
$output.="</td></tr>";
    
$output.="</table>";
    
$output.="<input type='submit' class='button' value='Speichern'></form>";
}

page_footer();
?>