anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 28 Mär, 2024 21:29

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di 13 Jun, 2006 17:56 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Was ist eine Shell?
http://de.wikipedia.org/wiki/Kommandozeileninterpreter
Wikipedia hat geschrieben:
Ein Kommandozeileninterpreter (engl. command line interpreter - CLI), auch Kommandointerpreter oder Shell genannt, ist ein Computerprogramm, welches eine Zeile Text in der Kommandozeile einliest, diesen Text als Kommando interpretiert und ausführt, zum Beispiel durch Starten weiterer Programme.

Ihr kennt es sicher. Bei Windows nennt es sich MSDOS und verschwindet langsam aus dem Vordergrund, von Unixartigen ist es eigentlich das ganze Betriebssystem.

Meine Idee nun:
Warum nicht, wie bei einer Shell, einige Sachen in LoGD einfach wie Kommandozeile ausführen? Schnell mal das Wetter bequem ändern, wie man will? Irgendjemanden Gold wegnehmen weil er sich dumm aufführt?

Meine Lösung:
Die LoGD-Shell. Einfache Texteingaben, grosse Wirkung.
Beispiel?
$this->bbcode_second_pass_code('', 'System.settings.weather ="Sonnig" -ccomment "/me blickt in den Himmel und die Wolken verziehen sich ohne murren"
Player.Loginname.gold +3000
Player.Loginname.callfunc death -exp 40% -gold=0 -gems=0')
Und viel, viel mehr...

Kann funktionieren. Ich bin dran. Versuche es. Doch nun, meine Frage:

Besteht überhaupt Interesse an einer "LoGD-Shell"??
Wenn nein werde ich sie nicht veröffentlichen :P

Ideen??
Schreibt sie rein

Release??
Wenns fertig ist.

EDIT:
Ohne LoGD-Umgebung ist es immerhin schon möglich dieses Kommando zu verarbeiten:
System.settings.weather ="Sonnig" -comment "/me macht das Wetter Sonnig."
Macht:
Das Wetter sonnig und sendet einen Kommentar ab anstelle des Kommandos.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 13 Jun, 2006 19:01 
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/
Also ich wäre sher dafür.
Allgemein kann man dadurch sicher einige Umstellungen schnel machen, ohne erst ein dickes Plugin etc dafür zu coden, da mann die Befehle ja mehr oder weniger kennt.

Als empeflung würde ich spowas unter die Anfragen-Leiste setzten, also einfach ein <input>, der nur für Admins zugänglich ist und über den man dann befehle eingeben kann.

Zum System: Das dürfte sich an sich gar nicht mal so schwer gestalten. Man müsste nur aufpassen, das eben nur Admins diese Eingabe tätigen können.
aber in Prinzip müsste man die eingegebene Zeichenkette an den leerzeichen zwerlegen und dann die unterschiedlichen teilworte analysieren. Besonders sinnvoll fände ich allein schon die User-Kontrolle und etwas ähnlich dem Savesetting.

Was man auch machen könnte wäre eine reine php-Kommandozeile, die dann geparst wird - wäre dann aber recht fehleranfällig..

soviel von mir
Auric

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 13 Jun, 2006 19:07 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Auric hat geschrieben:
Also ich wäre sher dafür.
Allgemein kann man dadurch sicher einige Umstellungen schnel machen, ohne erst ein dickes Plugin etc dafür zu coden, da mann die Befehle ja mehr oder weniger kennt.

Als empeflung würde ich spowas unter die Anfragen-Leiste setzten, also einfach ein <input>, der nur für Admins zugänglich ist und über den man dann befehle eingeben kann.

Zum System: Das dürfte sich an sich gar nicht mal so schwer gestalten. Man müsste nur aufpassen, das eben nur Admins diese Eingabe tätigen können.
aber in Prinzip müsste man die eingegebene Zeichenkette an den leerzeichen zwerlegen und dann die unterschiedlichen teilworte analysieren. Besonders sinnvoll fände ich allein schon die User-Kontrolle und etwas ähnlich dem Savesetting.

Was man auch machen könnte wäre eine reine php-Kommandozeile, die dann geparst wird - wäre dann aber recht fehleranfällig..

soviel von mir
Auric


Kein Zusätzliches Feld. Gebraucht wird lediglich eine Chatumgebung wie auf dem Dorfplatz ;)
Accesskontrolle findet statt. Werde ein zusätzliches Feld in den Account machen damit Admins den "Shell"zugriff ein, bwz ausstellen können (Vielleicht noch mit Rechten).
Ebenso werd ich es so machen, dass man die shell zuerst per /openshell "anmachen" muss. Dann können keine normalen Chateingaben stattfinden, es sei denn man stellt es wieder ab mit /closeshell. Oder so.

Zum technischen: Der Parser ist ein Objekt (PHP4). Vielleicht etwas falsche Anwendung, aber nach parsen kann man im aus dem Objekt die verschiedensten Ergebnise extrahieren und auswerten. Zum Beispiel Fehlerausgabe irgendwo hin schicken. Oder Ergebnis anzeigen.

Geparst sieht es z.B. so aus, das Objekt:
$this->bbcode_second_pass_code('', 'object(logdshell)#1 (8) {
["str2parse"]=>
string(55) "System.settings.weather ="Sonnig" -comment "/me stirbt""
["parsestr"]=>
string(31) "="Sonnig" -comment "/me stirbt""
["level"]=>
array(3) {
[0]=>
string(6) "System"
[1]=>
string(8) "settings"
[2]=>
string(7) "weather"
}
["dot"]=>
array(3) {
[0]=>
int(6)
[1]=>
int(8)
[2]=>
int(7)
}
["error"]=>
bool(false)
["rpextension"]=>
bool(true)
["printcommentary"]=>
string(10) "/me stirbt"
["splitbydot"]=>
bool(false)
}')

EDIT: Nein, ich splitte nicht bei Leerzeichen. Ist ja doof. Ich mache es anders. Kann dir ja mal was über PN zukommen lassen wenn du willst ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 13 Jun, 2006 20:12 
Offline
Großmeister
Großmeister
Benutzeravatar

Registriert: Mo 24 Apr, 2006 18:21
Beiträge: 408
Geschlecht: Männlich
LoGD: http://localhost
Also, Eliwood: Super idee, aber dann mach es entweder so das es kurz ist, also das man es sich merken kann, oder das die Sachen irgendwo stehen z.B. für Admins n neues Fenster wo alles drin steht...

_________________
Mal wieder da...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 13 Jun, 2006 20:44 
Offline
Freak
Freak
Benutzeravatar

Registriert: Mi 06 Jul, 2005 19:10
Beiträge: 543
Wohnort: Bremen
Geschlecht: Männlich
LoGD: http://my-logd.com/motwd
Du meinst das was Rikka von mir auf Silienta hat. Wetterkontrolle, Segnen/Verfluchen, Töten/Wiedebeleben....

Willst die ganze iDee ein wenig weiter ausbauen?

_________________
Das schwarze Schaf der LotGD-Community, 2. platzierter, beim Giga.de Homepage-Award 2007 und 1. platzierter beim German Web Award 2008.
PC-ACTION meint: "Sehr gut" für MotWD!
Mind of the White Dragon => http://my-logd.com/motwd


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 13 Jun, 2006 21:11 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
-DoM hat geschrieben:
Du meinst das was Rikka von mir auf Silienta hat. Wetterkontrolle, Segnen/Verfluchen, Töten/Wiedebeleben....

Willst die ganze iDee ein wenig weiter ausbauen?


Jap. Das war Grundidee. Aber man kann mehr machen als nur das ;)
Wetterkontrolle, Töten, Wiederbeleben, Belohnen, Bestrafen... Prangeruntersützung muss ich noch überlegen (Sowas wie "Player.-DoM.callfunc AnDenPranger 5" ^^)

@ Montekar: Nein. Ich baue es logisch auf. Du kannst, wenn du nur DOS oder UNIX-Shell hättest, auch nicht sagen du willst "was leichteres". Bei SQL geht das genausowenig. Und ich hab n' Errorhandler in Planung. Deutsche Fehlermeldung :P


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 14 Jun, 2006 09:48 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 04 Dez, 2004 02:34
Beiträge: 825
*hhrrrhhrrr* shells rullern :D
Shell4tw!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 06 Okt, 2006 16:03 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
So. Nachdem das Ding einzige Zeit flachgelegen ist setze ich mich nun ernsthaft dran.
Ich werde es etwas anders machen, als ursprünglich geplant - Das beginnt schon beim Interface. "suShI" - "superusershellinterface" - ist eine eigenständige Applikation die sich der dbconnect.php bedient. Und nur dieser Datei. Das hat den Vorteil, dass, falls die Tabellen defekt sind, einfach über suShI die Datenbank repariert werden kann. Einloggen und den Befehl formulieren, z.B. so:
$this->bbcode_second_pass_code('', 'db.repair -all').

Wer sich das ganze einmal anschauen möchte:
http://eliwood.dyndns.org/logd/sushi.php
Geht aber nicht immer. Ist ja mein HS... ;)

Das Backend, "sush", ist doch nicht objekt orientiert sondern wird prozedural sein. Passwort und Loginname für den rootuser müssen in der dbconnect.php hinterlegt werden ($SUSH_ROOTUSER, $SUSH_ROOTPASS), falls die Shell nicht gebraucht wird, kann sie durch "falschstellen" der Variable $SUSH_ROOTLOGIN unbrauchbar gamacht werden.

Vor habe ich unter anderem eine beqeme Userkontrolle (user.{acctid|username}.callfunc repairnavigation), Wetterkontrolle, Spielkontrolle allgemein. Dann werden einige sonstige Funktionen dazukommen, zum Beispiel, falls installiert, mysqldump (Pfad musss aber eingestellt werden), oder, falls ich Lust und Zeit habe, spezielle Dateien einlesen, die spezielle Anweisungen enthalten, um Dateien zu bearbeiten (Automatische Installation von einfachen Mods..?).[/code]

// Da das ganze keinen LoGD-Code braucht veröffentliche ich es unter der GNU LGPL und nicht unter der GNU GPL. Eine etwaige Dokumentation, die ich mitliefere, wird wahrscheinlich unter der GNU FDL stehen.


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 41 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:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum