[RELEASE] In Echtzeit einen anderen Client Befehle senden
Discussion on [RELEASE] In Echtzeit einen anderen Client Befehle senden within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
Hallo, da das mein 200. Thread mit diesem Account in diesem Forum ist,
habe ich beschlossen, dass es etwas Besonderes sein soll.
Ich übernehme keine Haftung, was mit dieser Quest angestellt wird,
oder bei Schäden und Ähnliches. Allgemein übernehme ich an nichts
Haftung. Bitte benutzt diese Quest weise. Danke!
Hallo, da das mein 200. Thread ist in diesem Forum mit
diesem Account, habe ich beschlossen, dass es etwas Besonderes sein soll.
Mit meiner Quest wird es euch ermöglicht, die Kontrolle über den Client
des Spielers zu übernehmen. So könnt ihr in Echtzeit z.B. bestimmen,
was der Spieler im Chat schreiben soll. Als Serverleiter könnte man sogar
das Inventar von dem Spieler fallen lassen. Damit ist Euch keine Grenzen
gesetzt und mit dieser Quest ermöglichen sich viele neue Wege,
sei es gute oder schlechte. Es kommt auf euch an, was ihr mit dieser
Funktion macht.
Noch ein weiteres Beispiel:
Davor konnte man den Befehl "CMDCHAT" nur für sich selber senden
und empfangen. Mit meiner Quest könnt ihr das in Echtzeit einen anderen
Spieler empfangen lassen. Bevor Leute ankommen, dass Passy so etwas
ähnliches gemacht hat, dass stimmt nicht. Er hat zwar ein "Bann" System
veröffentlicht, jedoch war dies genauso nicht in Echtzeit, es war gut
überlegt, aber schlecht umgesetzt.
Naja, viele werden nicht kapieren, was ich mit dieser Quest meine und
was man damit alles so anstellen kann. Die Leute, die es verstehen, werden
mir höchstwahrscheinlich dankbar sein.
Das man Befehle an den Client sendet,
ist die leichte Sache (indem ihr meine Quest einfügt).
Wenn ihr jedoch mit meiner Quest Befehle an den Client sendet,
muss er auch wissen, was er damit anfängt. Deshalb müsst
ihr es im Client definieren, was passieren soll, wenn die Funktion
im Client aufgerufen wird.
1.) Dazu öffnet ihr zuerst eure "GAME.PY" in eurem "ROOT" Eter-Pack,
anschließend sucht ihr nach:
PHP Code:
def __ServerCommand_Build
2.) Ist das getan, trägt ihr unter "serverCommandList={" den Befehl
ein, denn die Quest aufruft. In meinem Fall, so:
PHP Code:
Bitte vergisst nicht, die Leerzeichen mit "TABS" zu ersetzen, um Fehler vorzubeugen.
3.) So, jetzt kann der Client auch halbwegs verstehen, was man
von einem mit diesem Befehl will. Am Ende noch die beiden Funktione
in der "GAME.PY" definieren, ungefähr so in meinem Fall:
Modifikation (A) - Lässt den Spielclient vom Spieler schließen.
PHP Code:
Bitte vergisst nicht, die Leerzeichen mit "TABS" zu ersetzen, um Fehler vorzubeugen.
def modifikation_a(self, modifikation_a): if modifikation_a == str(player.GetName()): app.Exit()
Modifikation (B) - Lässt das Equipment bzw. Inventar vom Spieler fallen.
Achtung: Ich habe den Source mit einem "PASS" zensiert, weil ich nicht
möchte, dass jemand so etwas einfügt. Ihr müsst es jedoch trotzdem
definieren, da ihr sonst einen Fehler bekommt, es sei denn ihr seit
schlau genug, um die zweite Option zu entfernen.
PHP Code:
Bitte vergisst nicht, die Leerzeichen mit "TABS" zu ersetzen, um Fehler vorzubeugen.
def modifikation_b(self, modifikation_b): if modifikation_b == str(player.GetName()): pass
---------------------------------------------- -- Vorwort: -- Ich übernehme keine Haftung, was mit dieser Quest angestellt wird -- oder bei Schäden und Ähnliches. Allgemein übernehme ich an nichts -- Haftung. Bitte benutzt diese Quest weise. Danke!
-- Datei: modifikation.quest -- Von Paylasici ---------------------------------------------- quest modifikation begin state start begin when login with pc.get_name() == "Paylasici" begin send_letter("Kontrollzentrum") end
when button or info begin say_title("Kontrollzentrum") say("Bitte wähle aus, was Sie machen wollen.")
local a = select("Ich möchte den Server herunterfahren.", "Ich will sein Spiel schließen.", "Ich will seine Sachen fallen lassen.", "Schließen")
if a == 1 then shutdown() -- Ruft eine Funktion von der "QUESTLIB.LUA" ab, wenn sie bei euch nicht definiert ist, wird diese Questfunktion bei euch nicht klappen. -- Ihr könnt es rein definieren wenn ihr wollt, dafür müsst ihr das Untere in die "QUESTLIB.LUA" eintragen. -- Natürlich dürft ihr auch nicht vergessen die Funktion "shutdown" nicht in die "QUEST_FUNCTIONS" einzutragen. -- -- function shutdown() -- os.execute("cd /s2/game && sh shutdown.sh") -- end
elseif a == 2 then say_title("Kontrollzentrum") say("Tippe jetzt den Namen des Spielers ein.")
local sname = input() local u_vid = find_pc_by_name(sname)
if sname == "" then say_title("Kontrollzentrum") say("Bist du zu aufgeregt, dass du keinen") say("Namen eingeben kannst?") return end
if u_vid == 0 then say_title("Kontrollzentrum") say("Du dich eventuell vertippt.") say_reward(string.format("Der Spieler %s ist nicht online.", sname)) else local old = pc.select(u_vid) cmdchat("modifikation_a "..pc.get_name().."") -- Ihr müsst die Funktion in der "GAME.PY" definieren, damit die Quest sie aufrufen kann und pc.select(old) -- es beim ausgewählten Client aktivieren kann. end
elseif a == 3 then say_title("Kontrollzentrum") say("Tippe jetzt den Namen des Spielers ein.")
local sname = input() local u_vid = find_pc_by_name(sname)
if sname == "" then say_title("Kontrollzentrum") say("Bist du zu aufgeregt, dass du keinen") say("Namen eingeben kannst?") return end
if u_vid == 0 then say_title("Kontrollzentrum") say("Du dich eventuell vertippt.") say_reward(string.format("Der Spieler %s ist nicht online.", sname)) else local old = pc.select(u_vid) cmdchat("modifikation_b "..pc.get_name().."") -- Ihr müsst die Funktion in der "GAME.PY" definieren, damit die Quest sie aufrufen kann und pc.select(old) -- es beim ausgewählten Client aktivieren kann. end end end end end
Ist im Prinzip genau das gleiche wie das Archivmentsystem bzw. der "Banhammer" oder wie das Ding hieß. Kannte ich so schon und sollte jeder hinbekommen, der sich schon damit auseinander gesetzt hat. Für die anderen sollte sollte man sowas eigentlich garnicht releasen weil man eben viel Schaden damit anrichten kann.
Ist im Prinzip genau das gleiche wie das Archivmentsystem bzw. der "Banhammer" oder wie das Ding hieß. Kannte ich so schon und sollte jeder hinbekommen, der sich schon damit auseinander gesetzt hat. Für die anderen sollte sollte man sowas eigentlich garnicht releasen weil man eben viel Schaden damit anrichten kann.
Nein, ist es nicht.
Mein System funktioniert anders. Beim Achivmentsystem,
sendet der Spieler sich zu seinem eigenen Client, selber ein Befehl.
Mit meinem System kann man als ein anderer Spieler zu einem anderen Spieler
ein Befehl senden, der es "lokal" auf seinem Rechner ausführt und nicht,
wie früher, wo man sich nur selber ein Befehl senden könnte.
Das war davor nicht möglich, zumindest nicht in Echtzeit und das ist
ein Riesenunterschied und ermöglicht sehr viele Möglichkeiten.
Les dir einfach mal die Beschreibung durch.
Das Archivmentsystem funktioniert genauso, dass der Server bei jedem Archivmentupdate ein cmdchat-Befehl ausführt. Nur ist einfach die lokale Funktion statischer sodass es eben nur mit Archivments funktioniert. Die Basis ist aber exakt die gleiche, zumindest zum "Banhammer" oder wie das Ding heißt.
Es wird über einen Questbefehl ein CMDCHAT-Befehl ausgeführt, der eine loake Aktion ausführt. Überall das gleiche Prinzip.
Und nebenbei, das Archivmentsystem etc. funktioniert auch in Echtzeit, sonst würde man die Archivments nicht instant bekommen sondern erst verzögert oder wenn ein globales Event ausgeführt wird.
€dit:
Meine Güte ich hab doch gesagt, dass das Archivmentsystem statisch ist und predefiniert ist.
Trotzdem ist die Basis genau die gleiche, bis eben auf benannte Dynamik.
Beim "Banhammer" ist genau diese sogar vorhanden und es ist exakt das gleiche, wie das was du da gepostet hast.
Das Archivmentsystem funktioniert genauso, dass der Server bei jedem Archivmentupdate ein cmdchat-Befehl ausführt. Nur ist einfach die lokale Funktion statischer sodass es eben nur mit Archivments funktioniert. Die Basis ist aber exakt die gleiche, zumindest zum "Banhammer" oder wie das Ding heißt.
Es wird über einen Questbefehl ein CMDCHAT-Befehl ausgeführt, der eine loake Aktion ausführt. Überall das gleiche Prinzip.
Und nebenbei, das Archivmentsystem etc. funktioniert auch in Echtzeit, sonst würde man die Archivments nicht instant bekommen sondern erst verzögert oder wenn ein globales Event ausgeführt wird.
Wenn dein Hirn das nicht kapiert, ist das nicht mein Problem. Schau dir nochmal
an wie beide aufgebaut sind, dann weißt du was ich meine. Das Achivmentsystem kann
keine Befehle zu einem anderen Client senden. Der Spieler macht das selber, nur unbewusst,
indem er ein Monster tötet, sendet er zu sich selber den Befehl "CMDCHAT", so kann man aber
nicht absichtlich zu einem anderen Spieler das "CMDCHAT" senden, sondern nur für sich selber.
Es sei denn man benutzt meine Quest, womit man ohne Serverabfrage z.B. mit einer
Tötungsabfrage, was beim Achivmentsystem der Fall ist, einen Befehl zum Client des Spielers
senden kann. Das ermöglicht dem Serverleiter dynamische Events anzuzeigen und sofort
in Echtzeit zum Beispiel eine Nachricht beim Client der Spieler anzuzeigen.
Meine Güte, geh und befrage jemanden der Ahnung hat, wovon ich spreche.
Mein System funktioniert anders. Beim Achivmentsystem,
sendet der Spieler sich zu seinem eigenen Client, selber ein Befehl.
Mit meinem System kann man als ein anderer Spieler zu einem anderen Spieler
ein Befehl senden, der es "lokal" auf seinem Rechner ausführt und nicht,
wie früher, wo man sich nur selber ein Befehl senden könnte.
Das war davor nicht möglich, zumindest nicht in Echtzeit und das ist
ein Riesenunterschied und ermöglicht sehr viele Möglichkeiten.
Les dir einfach mal die Beschreibung durch.
Was denkst du denn, was das Banhammer System macht?
Durch ein input()-Feld wir der eingegebene Spieler selected und schließlich ganz normal ein cmdchat-Befehl ausgeführt.
Zudem versteh' ich nicht, wieso du via cmdchat noch den Spielernamen mitschickst und anschließend clientside nochmal überprüfst. Dadurch, dass die cmdchat-func nur aufgerufen wird, wenn das Selecten erfolgreich war, kann man das doch weglasssen.
Was denkst du denn, was das Banhammer System macht?
Durch ein input()-Feld wir der eingegebene Spieler selected und schließlich ganz normal ein cmdchat-Befehl ausgeführt.
Zudem versteh' ich nicht, wieso du via cmdchat noch den Spielernamen mitschickst und anschließend clientside nochmal überprüfst. Dadurch, dass die cmdchat-func nur aufgerufen wird, wenn das Selecten erfolgreich war, kann man das doch weglasssen.
Nein, tut er halt nicht. Er setzt dem Spieler soweit ich das letzte mal gesehen habe ein Timer,
der nicht einmal richtig funktioniert. Wenn der Timer dann aktiviert ist, wozu ein Neustart
vom Spieler aus benötigt ist, sendet der Spieler sich selber ein Befehl zu seinem eigenen Client.
Das ist weder Echtzeit, noch wird in diesem Fall von einem Spieler aus
zu einem anderen Spieler ein Befehel zu seinem Client gesendet.
Der Spieler verschickt es in diesem Fall wieder zu sich selber!
Geh und befrage Passy selber, er wird mir zustimmen.
Zur zweiten Sache: Ich habe das für meine eigenen Zwecken gemacht.
Also wenn ich's richtig verstehe, ist's ganz nützlich.
So könnte man Usern leicht Verwarnungen mithilfe einer Nachricht direkt an den Clienten verdeutlichen :>
Oder halt sowas ähnliches
Also wenn ich's richtig verstehe, ist's ganz nützlich.
So könnte man Usern leicht Verwarnungen mithilfe einer Nachricht direkt an den Clienten verdeutlichen :>
Oder halt sowas ähnliches
Genau und das in Echtzeit. Ich will mal sehen, wie das jemand ohne
meine Quest macht. Bitte mit Video als Beweis!
Ist doch aber, falls ich das richtig verstanden habe, nur für Serverleiter von Vorteil oder?
Denn wer würde schon so eine Quest für Spieler zugänglich auf den Server legen.
Oder geht es hier eher darum, dass die Quest Befehle an andere Clienten sendet?
Ist doch aber, falls ich das richtig verstanden habe, nur für Serverleiter von Vorteil oder?
Denn wer würde schon so eine Quest für Spieler zugänglich auf den Server legen.
Oder geht es hier eher darum, dass die Quest Befehle an andere Clienten sendet?
Befehle an USB Ports senden 06/10/2012 - General Coding - 1 Replies Moin,
ich hab einen USB-Raketenwerfer hier stehen, den schließt man an den PC an,
kann ihn über eine Software drehen, schwenken und 3 Schaumstoffraketen abfeuern.
Nun läuft die Software aber nur unter Windows 2k und drunter und ich hab nicht wirklich Lust jedesmal eine VM starten zu müssen, wenn ich ihn mal in Einsatz nehmen will. Die grafische Oberfläche ist zudem auch nicht grad die schönste.
Meine Frage wäre jetzt, ob und wie ich nachvollziehen kann welche Befehle an den USB-Port...
ZP von einen ACC auf anderen ACC senden?[geht das?] 11/11/2011 - CrossFire - 8 Replies habe auf meinem mail acc nicht viel zp aber auf den 2ten reichlich, jetzt frage ich mich on ich die zp´s irgendwie verschicken kann...
über clan schon versucht, aber da kann ich die zp´s nur für den clan nutzen auch wenn ich der leader bin.
habe auch reichlich gegoogelt aber nichts passendes gefunden, für mich scheint das ganze "nicht" zu funktionieren oder kennt sich da jemand besser aus?