Macro/Keybind Mod

Aidsola

~Sola
Spieler
19 Dezember 2014
117
73
41
Account bestätigt
Ja
Auf Sky haben ja User keinen Zugriff auf /afk; deshalb arbeite ich an einem Makro das diese Lücke etwas schließen soll:

Mit einem Button kann ich eine Globale Flag umstellen
$${toggle(@#afk);if(@#afk);log(Ich bin jetzt afk!);else;log(Ich bin jetzt nicht mehr afk!);endif;}$$

[[Rang]Name -> mir] Nachricht

Bei jeder /msg-Nachricht, die man empfängt, bleibt das Rote gleich:
[[Rang]Name -> mir] Nachricht

Ins OnChat-Event kommt Folgendes:
$${
IF(@#afk);

IFMATCHES(%CHAT%,[[);
LOG(Die Klammern sind da);
IFMATCHES(%CHAT%, -> );
LOG(Der Pfeil ist da);
IFMATCHES(%CHAT%,mir]);
LOG(Jemand hat eine private Nachricht gesendet);
ENDIF;
ENDIF;
ENDIF;

ENDIF;
}$$


Wenn @#afk true ist, sprich wenn ich mich meinem PC als afk gemeldet habe, werden die Abfragen ausgeführt.

Mit den IFMATCHES-Abfrage prüfe ich, ob die einzelnen "Bauteile" einer Privatnachricht enthalten sind;
hier liegt auch das Problem:
  • Die "[[" sind aber nie da, also schon die erste Abfrage ist false.
  • Der "Pfeil" klappt einwandfrei.
  • Wenn man beim Baustein "mir]" nur "ir" nimmt, klappt das auch, das "m" und die "]" werden also nicht erkannt.


Anstatt "Jemand hat eine private Nachricht gesendet" soll dann dem Spieler geantwortet werden, dass das eine Automatische Nachricht ist, da ich gerade afk bin:
ECHO(/r Dies ist eine Automatische Nachricht, da ich gerade afk bin.);



Wenn mal jemand ausprobieren könnte, ob der/die Fehler bei ihm/ihr auch vorliegen oder wenn jemand weiß worans liegen könnte wäre ganz hilfreich :)

Gruß Aidsola
 

Blaustern

Blaustern
Spieler
8 Dezember 2014
63
82
56
23
ner andren Galaxie
Account bestätigt
Ja
Also du meinst dieses ding was es auch auf city gibt mit /afk oder was? Wenn man jmd anschreibt der diesen command eingegeben hat kommt auch eine Nachricht. Klingt aber ganz schön da man uns Skylern wieder ermöglicht und abwesend zu melden, aber damit nicht wirklich spammen können ( wegen diesen vielen Kiddies ._. ). Ausserdem ne kleine Anmerkung: Wenn ich jeannie anschreibe und sie /away oder /afk ,was weiss den ich, dann ist mein Chat auch lila mit der Nachricht: jeannie ist zur Zeit nicht anwesend und antwortet auch wahrscheinlich nicht, oder so ähnlich. Ich find die Idee gut.

Lg Sternchen
 

Aidsola

~Sola
Spieler
19 Dezember 2014
117
73
41
Account bestätigt
Ja
Wenn man das eben als Makro drin hätte, müsste sich das jeder selbst installieren.
Perfekt wäre es, wenn /afk für Spieler freigeschalten wäre :D

Nun bräuchte ich nur noch etwas Hilfe beim Code :)
 

Tobs3

Admin
14 November 2014
2.461
1
3.045
131
25
Düsseldorf
Account bestätigt
Ja
Es gibt einen Grund wieso /afk auf Sky nicht mehr möglich ist.
Auf Sky wurde damals viel zu viel damit rum gespammt, weswegen
wir uns damals dafür entschieden haben es rauszunehmen.
Sollte die Frage aufkommen: Wieso ist es denn auf City an, aber auf Sky aus?
Ganz einfach. Auf City missbrauchen sie dies nicht so, wie es damals auf Sky war.
 

Aidsola

~Sola
Spieler
19 Dezember 2014
117
73
41
Account bestätigt
Ja
Das mit dem Gespamme ist so eine Sache :/

Der eigentliche Sinn diese Threads ist, ob mir jemand bei meinem Script helfen kann :D
Ist denn keiner da der sich damit auskennt? :rolleyes:
 

christian200099

City König
Entwickler
7 Dezember 2014
303
623
121
chris59.de
Account bestätigt
Ja
nunja ich habe mich auch mal mit diesen mod beschäftigt und hab vllt noch bissel was auf dem kasten es kommt hallt immer drauf an um was es sich handelt
 

Not_Sure

Mitglied bei Anonyme Weltstars e.V.
Spieler
2 Juni 2015
54
42
46
München
Account bestätigt
Ja
Was bekommst Du denn als Ausgabe wenn Du direkt nach der Abfrage auf AFK sowas ausführst: LOG(%CHAT%)
(K.A. ob das so überhaupt funktioniert, was für eine (Script-)Sprache wird denn da verwendet?)

Edit:
Grad mal bei Google gestöbert...kann es sein, dass Du statt "IFMATCHES" besser "IFCONTAINS" verwenden solltest?
(http://minecraftmacros.wikia.com/wiki/Chatfilter)
 
Zuletzt bearbeitet:

Aidsola

~Sola
Spieler
19 Dezember 2014
117
73
41
Account bestätigt
Ja
Also tatsächlich habe ich ifmatches und ifcontains verwechselt :confused:

ifcontains(%CHAT%,§cmir) - true
ifcontains(%CHAT%,§6]) - true

ifcontains(%CHAT%,§cmir§6]) - false

Wenn man das Wort "mir" bzw, das zeichen "]" einzeln (mit Farbcode) abfragt, funktioniert es; allerdings wenn man beides hintereinander in eine ifcontains-Abfrage schreibt, nicht.

-- Auch ohne die Farbcodes funktionieren nur die getrennten Varianten, "ifcontains(%CHAT%,mir])" liefert ebenfalls false. --


Ich vermute dass man das irgendwie anders "verknüfpen" muss, aber so wurde es im Beispiel (Link) von @Not_Sure auch gelöst.
 

Spatex

Spieler
5 März 2015
7
4
11
30
es könnte daran liegen das der Minecraft Chat irgendwelche nicht druckbare Steuerzeichen (http://de.wikipedia.org/wiki/Steuerzeichen) enthält. sprich das zwischen Text und Farbcodes irgendein Zeichen enthalten ist das nicht angezeigt wird.
Probier mal folgendes:
speichere den Chat auf der Festplatte, vorzugsweise als txt Datei und schau dir diese Datei in einem Hex Editor an. wenn du dort irgendein Zeichen findest das mit einem in dem Wikipedia Artikel übereinstimmt hast du dein Zeichen gefunden.
in der Hoffnung der Mod beherscht die Möglichkeit Steuerzeichen in seinen eigenen Text einzufügen.

#Edit: sehe gerade dass das ifcontain über reguläre ausdrücke funktioniert -> /s beliebiges Steuerzeichen und whitespace.

in der Hoffnung das hilf
Spatex
 
Zuletzt bearbeitet:

Aidsola

~Sola
Spieler
19 Dezember 2014
117
73
41
Account bestätigt
Ja
Da es dank @Spatex Hilfe funktioniert, stelle ich das fertige Script mal hier rein.
Jeder der es braucht darf es gerne benutzen, aber ändert bitte die Nachricht, dass nicht bei jedem das Gleiche steht ;)

$${
IF(@#afk);
IFCONTAINS(%CHAT%,§r§6 -> §r§cmir§r§6]);
ECHO(/r [Afk-Bot] Ich bin zurzeit nicht da, versuch`s später nochmal!);
ENDIF;
ENDIF;
}$$

Hier wird nur dir eine Kontroll-Nachricht im Chat geschrieben
$${toggle(@#afk);if(@#afk);log(&cDu bist jetzt afk!);else;log(&cDu bist jetzt nicht mehr afk!);endif;}$$

Hier meldest du dich im öffentlichen Chat
$${toggle(@#afk);if(@#afk);echo([] Ich bin mal afk []);else;echo([] Bin wieder da []);endif;}$$
 
Zuletzt bearbeitet: