anpera.net

anpera.net

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

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Itemeditor
BeitragVerfasst: Mi 13 Mai, 2009 09:35 
Offline
Lehrling
Lehrling

Registriert: Do 23 Okt, 2008 14:02
Beiträge: 26
Geschlecht: Männlich
LoGD: http://www.chro-lex.de/logd/source.php
Habe die SuFu benutzt und nichts gefunden..

Ich benutze die version 0.9.7+jt ext (GER) . Das Häusersystem von Chaosmaker.

Es geht um die eingelagerten Items im Haus. Wenn ein Spieler gelöscht wird, sind die eingelagerten Items immer noch im Haus sichtbar. Ich kann sie im Itemeditor ja unter Möbel sehen und auch löschen, das aber eine langwierige Sache, da tausende Items da sind, und man nur immer eine Seite Vorwärts kommt und zusätzlich, wenn man eines löscht, wieder auf die Startseite, also ganz am Anfang gelangt und sich wieder mühsam durchklicken muss. Nun meine Fragen...

1. Gibt es da vielleicht schon eine Itemeditorerweiterung das es einfacher geht?? Oder ein Hack, das man zumindestens nach dem löschen auf der Seite landet, woman zuletzt gelöscht hat, und nicht wieder am Anfang landet?

2. Ich habe versucht es in der DB zu machen, was aber das Problem aufwirft, das ich von gelöschten Usern nicht die ID mehr kenne. Und Items mit ID (Owner) "Null" sind das ja leider nicht. Gibt es da ne andere Möglichkeit?

3. Wenn das Spiel einen inaktiven User automatisch löscht, löscht es dann auch die Items aus seinen Haus automatisch? Oder bleiben die nur drin, wenn per Hand ein User gelöscht wird??

4. Gibt es einen SQL Befehl, wo ich zB. aus der Itemtabelle, alle Items die den User mit (Owner) ID 1122 gehören löscht?

Danke für die Aufmerksamkeit..


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Itemeditor
BeitragVerfasst: Mi 13 Mai, 2009 10:13 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Löschen aller Items von Besitzer mit der Account-ID $acctid:
$this->bbcode_second_pass_code('', 'DELETE FROM items WHERE owner = $acctid')
Löschen aller Items von Besitzer mit dem Loginnamen $login:
$this->bbcode_second_pass_code('', 'DELETE FROM items WHERE owner = (SELECT acctid FROM accounts WHERE login = "$login")')
Das löschen aller Items von Besitzer-ID's, die nicht mehr in den Accounts stecken, sollte auch möglich sein:
$this->bbcode_second_pass_code('', 'DELETE FROM items WHERE owner NOT IN (SELECT acctid FROM accounts) AND owner != 0')

Ungetestet und keine Garantie wie üblich.

Zu den restlichen Fragen:
Der Itemeditor wurde noch nie überarbeitet, meines Wissens gibt es also davon keine neue Version. Die Items sollten gelöscht werden, zumindest ein Teil davon - in der setnewday.php steht die Löschroutine. Da anpassen, wenn neues dazukommt. Vergessen ziemlich viele.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Itemeditor
BeitragVerfasst: Mi 13 Mai, 2009 10:19 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Hallo Shawn,

Ich fürchte, hier wirst du mal wieder mit der Uneinheitlichkeit des LotgD-Codes zu kämpfen haben. Wenn User gelöscht werden, findet das nicht über eine gemeinsame Funktion sondern über separat geschriebenen Code statt.

Bei der Selbstlöschung und beim Löschen durch den Admin werden alle Items auf Owner = 0 gesetzt, das ändert sich auch durch Chaosmaker's WV nicht.

Bei der regelmäßigen Löschung nach X Tagen werden zunächst (wenn die warn-Mail gesendet wird) die Items auf Owner = 0 gesetzt. Ist Chaosmakers WV installiert, werden beim eigentlichen Löshen des Chars alle Items, die dann noch den gelöschten Usern gehören gelöscht (bis auf die Schlüssel).


Nun aber zu deinen Fragen:
1.) Mir ist kein solcher Mod bekannt, das muss aber nicht heißen, dass es ihn nicht gibt.
2.) Hier kann man mit ein bisschen Kenntnis von SQL Abhilfe schaffen - quick&dirty geht zum Beispiel folgendes: $this->bbcode_second_pass_code('', 'SELECT * FROM items WHERE owner NOT IN (SELECT acctid FROM accounts);')
Besser, aber etwas komplizierter:
$this->bbcode_second_pass_code('', 'SELECT i.* FROM items i LEFT OUTER JOIN accounts a ON i.owner = a.acctid WHERE ISNULL(a.acctid);')
Das ganze aber nicht gleich in DELETE umstellen, da auch die Item-Prototypen und Schlüssel noch mit diesen Querys gefunden werden. Die sollten sich aber recht leicht filtern lassen (speziell mit der Funktion RIGHT()).
3.) Sollte oben geklärt sein
4.) Den solltest du doch wohl selbst hin bekommen... DELETE FROM items....

Auric

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Itemeditor
BeitragVerfasst: Mi 13 Mai, 2009 10:38 
Offline
Lehrling
Lehrling

Registriert: Do 23 Okt, 2008 14:02
Beiträge: 26
Geschlecht: Männlich
LoGD: http://www.chro-lex.de/logd/source.php
Danke für die schnellen und Gut erklärten Antworten. Das hat mir doch schon sehr geholfen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Itemeditor
BeitragVerfasst: Mi 13 Mai, 2009 17:42 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 28 Aug, 2004 18:48
Beiträge: 1712
das zeigt aber auch, dass du den Changeslog von anpera nicht bearbeitet hast, denn unabhängig vom Wohnviertel ist das Item Problem in jedem WV gewesen, und der fix steht im zugehörigen Changeslog

_________________
~Inaktiv und Abwesend solange Mysql hier Moderatorenrechte hat~


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 32 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