anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 28 Mär, 2024 13:57

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So 27 Apr, 2008 17:07 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
Ist das Modul "PersonalChest.php" für das Chaosmaker-Wohnviertel installiert hat der Admin nur per DB Zugriff auf deren Inhalte. Hier ein Editor der nur mit der superuser.php verlinkt werden muss und der Einbau ist fertig. Natürlich muss die su_pchests.php zuvor noch auf den Webspace geladen werden :D

$this->bbcode_second_pass_code('', '<?php
/*
* Version: 27.04.2008
* Author: Linus (schamlos abgkupfert von suhouses.php by anpera und Chaosmaker)
* Email: webmaster@alvion-logd.de
* Zweck: Admintool für die persönlichen Schatzkammern
*
*/

require_once("common.php");
isnewday(3);

function analyse(){
$accts=array();
$sql="SELECT `acctid` FROM `accounts`";
$result=db_query($sql);
while ($row = db_fetch_assoc($result)) {
$accts[$i]=(int)$row['acctid'];
$i++;
}
$gut=0;
$fehl=0;
$sql="SELECT `PChestID`, `PChestUser` FROM `house_PersonalChests`";
$result=db_query($sql);
while ($row = db_fetch_assoc($result)) {
if(in_array((int)$row['PChestUser'],$accts)){
$gut++;
}else{
$fehl++;
}
$j++;
}

return array($j, $gut, $fehl);
}

page_header("Persönliche Schatztruhen");

switch($_GET['op']){
case "delete":
$accts=array();
$sql="SELECT `acctid` FROM `accounts`";
$result=db_query($sql);
while ($row = db_fetch_assoc($result)) {
$accts[$i]=(int)$row['acctid'];
$i++;
}
$gut=0;
$fehl=0;
$sql="SELECT `PChestID`, `PChestUser` FROM `house_PersonalChests`";
$result=db_query($sql);
while ($row = db_fetch_assoc($result)) {
if(in_array((int)$row['PChestUser'],$accts)){
$gut++;
}else{
$fehl++;
db_query("DELETE FROM `house_PersonalChests` where `PChestUser`=".(int)$row['PChestUser'].";");
}
$j++;
}
output("`&".$fehl." persönliche Schatztruhen wurden gelöscht`n");
addnav('Zurück','su_pchests.php?');
break;

case "edit":
if ($_GET['act']=="save") { // save data
$sql="UPDATE house_PersonalChests SET PChestGold=$_POST[gold], PChestGems=$_POST[gems] WHERE PChestUser=".$_GET['id'];
$result=db_query($sql);
output("`&Daten der Schatztruhe gespeichert.");
addnav("Zurück","su_pchests.php?op=edit&id=$_GET[id]");
}else{
addnav("Zurück","su_pchests.php");
$sql="SELECT * FROM house_PersonalChests WHERE PChestUser=".$_REQUEST['id'];
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)){
$row = db_fetch_assoc($result);
$sql2="SELECT name FROM accounts WHERE acctid=".$row['PChestUser'];
$row2=db_fetch_assoc(db_query($sql2));

output("`@Inhalt der persönlichen Schatztruhe von `b$row2[name]`b ändern:`n`n`n`@ChestId: `^`b$row[PChestID]`b
`n`@UserId: `^`b$row[PChestUser]`b`n`@User: `^`b$row2[name]`b`n
`0<form action=\"su_pchests.php?op=edit&act=save&id=$row[PChestUser]\" method='POST'>
<table><tr><td>Goldeinlage</td><td><input type='text' name='gold' value='$row[PChestGold]'></td></tr>
<tr><td>Edelsteine</td><td><input type='text' name='gems' value='$row[PChestGems]'></td></tr></table>`n
<input type='submit' class='button' value='Speichern'></form>",true);
addnav("","su_pchests.php?op=edit&act=save&id=$row[PChestUser]");
}else{
output("`@`bDieser Spieler existiert nicht oder besitzt keine persönliche Schatztruhe`b`n`n");
}
}
break;
default:
list($j, $gut, $fehl)=analyse();
if($fehl>0) addnav('unnütze Truhen löschen','su_pchests.php?op=delete');
addnav('','su_pchests.php?op=edit');
output("`@`b`cDie persönlichen Schatztruhen`c`b`n`n
`7Anzahl PChests gesamt: `@".$j."`n`7PChests von existierenden Spielern: `@".$gut."`n`7PChests von gelöschten Spielern: `@".$fehl."`n`n
<form action='su_pchests.php?op=edit' method='post'>Springe direkt zu UserId. <input type='text' name='id' size='4'>
<input type='submit' value='anzeigen'></form>Wähle die Truhe:`n`n<table cellpadding=2 align='center'><tr>
<td>`bChestId.`b</td><td>`bUserId.`b</td><td>`bName`b</td><td>`bGold`b</td><td>`bGems`b</td></tr>",true);
$ppp=25; // Player Per Page +1 to display
if (!$_GET['limit']){
$page=0;
}else{
$page=(int)$_GET['limit'];
addnav("Vorherige Seite","su_pchests.php?limit=".($page-1)."");
}
$limit="".($page*$ppp).",".($ppp+1);

$sql = "SELECT * FROM house_PersonalChests WHERE 1 ORDER BY PChestUser ASC LIMIT $limit";
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)>$ppp) addnav("Nächste Seite","su_pchests.php?limit=".($page+1)."");
if (db_num_rows($result)==0){
output("<tr><td colspan=3 align='center'>`&`iEs gibt keine Schatztruhen`i`0</td></tr>",true);
}else{
for ($i=0;$i<db_num_rows($result);$i++){
$row2 = db_fetch_assoc($result);
$sql2="SELECT name FROM accounts WHERE acctid=".$row2['PChestUser'];
$row3=db_fetch_assoc(db_query($sql2));

output("<tr><td align='center'>$row2[PChestID]</td><td align='center'>$row2[PChestUser]</td><td><a href='su_pchests.php?op=edit&id=$row2[PChestUser]'>$row3[name]</a></td><td>$row2[PChestGold]</td><td>$row2[PChestGems]</td></tr>",true);
addnav("","su_pchests.php?op=edit&id=$row2[PChestUser]");
}
}
output("</table>",true);
break;
}


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

output("`n<div align='right'>`72007/2008 by Linus, based on suhouses.php by 2004 anpera & 2005 Chaosmaker</div>",true);
page_footer();
?>')

Die Navigation für das seitenweise Vor- und Zurückblättern hab ich aus der suhouses.php abgekupfert, weshalb diese auch im Copyright vermerkt ist ;)

Ich hoffe ihr findet es nutzbar und nützlich^^


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi 28 Mai, 2008 21:24 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 22 Jan, 2007 20:13
Beiträge: 123
Geschlecht: Männlich
LoGD: http://www.kaldacin.de/source.php
Hallo Linus,

ich habe mir dein Script mal runtergeladen und eingebaut und finde die Idee und die Umsetzung ganz Gut.
Nur habe ich noch einen Verbesserungsvorschlag:

Wenn die Spieler sich schon gelöscht haben kann man per link nichtmehr drauf zugreifen.
Ich habe das mal geändert, hier der zu Ändernde Code:

Suche:
PHP:
$row3[name]


Ersetze durch:
PHP:
".($row3[name]!="" ? "".$row3[name]."" : "`4Gelöscht`0")."


Mit freundlichen Grüßen
Alkatar

_________________
Kaldacin


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi 23 Jul, 2008 11:31 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
Zunächst mal sorry das ich erst so spät antworte, hatte aber aus diversen Anlässen leider keine Zeit mich hier im Forum umzutun. Das soll sich ab sofort wieder ändern ;)

Uih, war gar nicht auf die Idee gekommen es könnte wünschenswert sein die Schatztruhe zu manipulieren wenn der Spieler bereits nicht mehr existiert. Aber deine Idee ist gut, hab sie übernommen^^


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So 17 Aug, 2008 16:58 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mi 27 Sep, 2006 10:58
Beiträge: 133
Linus hat geschrieben:
Ist das Modul "PersonalChest.php" für das Chaosmaker-Wohnviertel installiert


Und wo gibts das?
Habs hier nirgends gefunden. :?


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So 17 Aug, 2008 18:51 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
rumburak hat geschrieben:
Und wo gibts das?
Habs hier nirgends gefunden. :?


Guggst du hier: http://anpera.homeip.net/forum/download.php?id=798 :D


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 29 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum