[Sammelthread] Macro/Keybind Mod Scripts und sonstiges

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      kbank .chatfilter

      Hier mal mein Chatfilter - dieser ist nur für den Befehl: /kbank und könnte einigen Usern helfen die bei einem oder mehreren Konten geadded sind die überfüllt mit anderen Membern sind.

      Zudem verwende ich dort auch JSON was es dem Nutzer ermöglicht, texte im Chat anzuklicken.

      Ich habe folgende 'buttons' programmiert:
      Spoiler anzeigen

      [-] Hebe den gesamten Betrag (der auf dem jeweiligen Konto ist) ab.
      [Guthaben] Spoiler um das Guthaben des Kontos erst anzuzeigen wenn man mit der Maus drüber 'hovert'.
      [+] Zahle dein gesamtes Geld (welches du bei dir trägst) auf das jeweilige Konto drauf.
      [Owner] Zeige den Besitzer des Kontos. Bei einem Klick darauf, wird der /kseen <name> (name des besitzers) angezeigt.
      [Members] Dieser Button erscheint wenn min. 1 User geadded ist und zeigt alle Member im HoverText an.

      [Gesamt] Spoiler um das gesamte Guthaben des Spielers und all seiner Konten (und die auf die er geadded ist) erst anzuzeigen wenn man mit der Maus drüber 'hovert'.
      [/home bank] - Dieser Button ist dazu da um den /home bank - befehl auszuführen. Mach dir dafür bitte erst manuell ein home mit /sethome bank - am besten natürlich im Bereich der Bank sodass du nicht erst in das Gebäude laufen musst.
      [Update] Dieser Button führt den /kbank Befehl nochmal aus - solltest du Geld auf ein Konto eingezahlt haben, wird dies empfohlen um den neuen Kontostand anzuzeigen.


      unterstützt durch API:
      Spoiler anzeigen

      Ich habe folgende GLOBALE VARIABLEN gesetzt, die du für deine Projekte verwenden kannst (z.b. Labels um deinen Kontostand eines oder mehrerer Konten anzuzeigen).

      @&tigacraft_money[0] = Hier ist dein Geldbeutel gespeichert.
      @&tigacraft_money[1-max] = ab hier fängt der Bereich deiner Konten an (und die auf denen du geadded bist).

      @&tigacraft_maxmoney = Dieser Befehl speichert dein GESAMT-Guthaben - von deinem Geldbeutel und all deinen Konten (+ auf denen du geadded bist).



      Und hier der Code:
      Spoiler anzeigen

      Brainfuck-Quellcode

      1. // KBANK CHATFILTER BY TIGA
      2. ifmatches(%CHATCLEAN%,"^Bank: Gerne. Hier ist Ihre Kontoinformation:");
      3. unset(@&tigacraft_money[]);
      4. lograw({"text":"§f- §2Kontoauszug:§r §f-\n§b-----------------------------------------------------"});
      5. filter();
      6. endif;
      7. ifmatches(%CHATCLEAN%,"^ Sie haben (.*?) Konten.\(max. (.*?)\)");
      8. match(%CHATCLEAN%,"^ Sie haben (.*?) Konten.\(max. (.*?)\)",{#anzahl,#max});
      9. if(#max < #anzahl);
      10. lograw([{"text":"§f* §6Konten:§r "},{"text":"§8[§7%#anzahl%§8/§7%#max%§8]","hoverEvent":{"action":"show_text","value":"Limit überschritten? Du hast wohl ein KBank VIP-Paket auf einem anderen Server gekauft :)"}}]);
      11. else;
      12. #x = (#max - #anzahl);
      13. lograw([{"text":"§f* §6Konten:§r "},{"text":"§8[§7%#anzahl%§8/§7%#max%§8]","hoverEvent":{"action":"show_text","value":"§fDu kannst noch §e%#x% §fKonten erstellen."}}]);
      14. endif;
      15. filter();
      16. endif;
      17. ifmatches(%CHATCLEAN%,"^ Aktuelles Geld dabei: (.*?) Kadis");
      18. match(%CHATCLEAN%,"^ Aktuelles Geld dabei: (.*?) Kadis",{@&tigacraft_money});
      19. lograw([{"text":"§f* §6Geldbeutel:§r "},{"text":"§e%@&tigacraft_money% §aKadis§r"}]);
      20. @&tigacraft_money[0] = %@&tigacraft_money%;
      21. replace(@&tigacraft_money,",","");
      22. filter();
      23. endif;
      24. ifmatches(%CHATCLEAN%,"^ Gesamt verfügbares Vermögen: (.*?) Kadis");
      25. match(%CHATCLEAN%,"^ Gesamt verfügbares Vermögen: (.*?) Kadis",{&gesamt});
      26. lograw([{"text":"§b-----------------------------------------------------\n§eGesamt Guthaben: §r"},{"text":"§8[§aGesamt§8]§r ","hoverEvent":{"action":"show_text","value":"§6Max. Guthaben zur Verfügung:\n§e%&gesamt% §aKadis"}},{"text":"§8[§7/home bank§8]§r ","hoverEvent":{"action":"show_text","value":"§fTeleportiere dich in die Bank!"},"clickEvent":{"action":"run_command","value":"/home bank"}},{"text":"§8[§bUpdate§8]§r ","hoverEvent":{"action":"show_text","value":"Update nachdem du etwas ein- oder ausgezahlt hast,\num mit den neuen Werten zu arbeiten."},"clickEvent":{"action":"run_command","value":"/kbank"}}]);
      27. @&tigacraft_maxmoney = %&gesamt%;
      28. if( %@tigacraft% );
      29. lograw([{"text":"§b-----------------------------------------------------\n§eZudem hast du §f%@#TIGACRAFT_BALANCE% §eGoldtaler! §r"},{"text":"§8[ §6i §8]§r ","hoverEvent":{"action":"show_text","value":"§fDiese Währung gehört zu §2TigA's Adventure Game§f.\n\n§6Vielen Dank dass du mein Spiel spielst,\nich hoffe es gefällt dir! §4§l<3"}}]);
      30. endif;
      31. filter();
      32. endif;
      33. ifmatches(%CHATCLEAN%," (.*?): (.*?).([0-9]{0,1})([0-9]{0,1}) Kadis von (.*)");
      34. match(%CHATCLEAN%," (.*?): (.*?).([0-9]{0,1})([0-9]{0,1}) Kadis von (.*)",{&konto,&kadis,#cents10,#cents,&owner});
      35. push(@&tigacraft_money[],"%&konto%: §f%&kadis%.%#cents10%%#cents%");
      36. replace(&kadis,",","");
      37. lograw([{"text":" §6%&konto%:§r "},{"text":"§8[§4-§8] ","hoverEvent":{"action":"show_text","value":"§6%&kadis%.%#cents10%%#cents% Kadis abheben\n§7=(100 % vom Guthaben des Kontos)\n\n§8>> §f/kbank abheben %&konto% %&kadis%.%#cents10%%#cents%."},"clickEvent":{"action":"suggest_command","value":"/kbank abheben %&konto% %&kadis%.%#cents10%%#cents%"}},{"text":"§8[§2Guthaben§8]§r ","hoverEvent":{"action":"show_text","value":"§6Guthaben: \n§e%&kadis%.%#cents10%%#cents% §aKadis"}},{"text":"§8[§2+§8] ","hoverEvent":{"action":"show_text","value":"§6%@&tigacraft_money% Kadis einzahlen\n§7=(100% Deines Guthabens)\n\n§8>> §f/kbank einzahlen %&konto% %@&tigacraft_money%."},"clickEvent":{"action":"suggest_command","value":"/kbank einzahlen %&konto% %@&tigacraft_money%"}},{"text":"§8[§cOwner§8]§r","hoverEvent":{"action":"show_text","value":"§6Besitzer:\n§a%&owner%§r "},"clickEvent":{"action":"suggest_command","value":"/kseen %&owner%"}}]);
      38. filter();
      39. endif;
      40. unset(&kbankmember[]);
      41. ifmatches(%CHAT%,"mit Zugriff für: §r§e(.*)");
      42. match(%CHAT%,"mit Zugriff für: §r§e(.*)",{&kbankmember});
      43. replace(&kbankmember,",","");
      44. split(" ","%&kbankmember%",&kbankarray[]);
      45. join("§8, §7",&kbankarray[],&newkbank);
      46. lograw([{"text":" §3%@&tigacraft_z[0]%§r"},{"text":"§8[§7Members§8]","hoverEvent":{"action":"show_text","value":"§6Mitglieder:\n§7%&newkbank%"}}]);
      47. filter();
      48. endif;
      Bilder
      • 1.png

        35,82 kB, 1.300×543, 11 mal angesehen
      • 2.png

        108,68 kB, 1.920×1.021, 11 mal angesehen
      ~ Asperger aus Leidenschaft!

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „tigerjunge15“ ()

      leaked content from tiga's top secred macros folder :o

      Spoiler anzeigen

      Quellcode

      1. // TPA CHATFILTER BY TIGA
      2. ifmatches(%CHAT%,"^§c(.*?)§r§6 fragt, ob er sich zu dir teleportieren darf.§r$");
      3. match(%CHAT%,"^§c(.*?)§r§6 fragt, ob er sich zu dir teleportieren darf.§r$",{&user});
      4. modify("§c%&user%§r §6möchte sich zu dir teleportieren.");
      5. endif;
      6. ifmatches(%CHAT%,"^§c(.*?)§r§6 fragt, ob du dich zu ihm teleportierst.§r$");
      7. match(%CHAT%,"^§c(.*?)§r§6 fragt, ob du dich zu ihm teleportierst.§r$",{&user});
      8. modify("§c%&user%§r §6möchte, dass du dich zu ihm/ihr teleportierst.");
      9. endif;
      10. ifmatches(%CHAT%,"^§6Um zu teleportieren, schreibe §r§c/tpaccept§r§6.§r$");
      11. lograw([{"text":""},{"text":"§6Klicke hier drauf:§r "},{"text":"§a/tpaccept§r","clickEvent":{"action":"run_command","value":"/tpaccept"}},{"text":" §6um die Anfrage anzunehmen."}]);
      12. filter();
      13. endif;
      14. ifmatches(%CHAT%,"^§6Um diese Anfrage abzulehnen, schreibe §r§c/tpdeny§r§6.§r$");
      15. lograw([{"text":""},{"text":"§6Oder hier drauf:§r "},{"text":"§c/tpdeny§r","clickEvent":{"action":"run_command","value":"/tpdeny"}},{"text":" §6um die Anfrage abzulehnen."}]);
      16. filter();
      17. endif;
      18. ifmatches(%CHAT%,"^§6Diese Anfrage wird nach§r§c 30 Sekunden§r§6 ungültig.§r$");
      19. // you may want start a countdown here :)
      20. endif;
      21. ifmatches(%CHAT%,"^§6To cancel this request, type §r§c/tpacancel§r§6.§r$");
      22. lograw([{"text":""},{"text":"§6Zum abbrechen drücke hier:§r "},{"text":"§c/tpacancel§r","clickEvent":{"action":"run_command","value":"/tpacancel"}}]);
      23. filter();
      24. endif;


      ~ ja.. einfach beim .Chatfilter hinzufügen :).



      //anmerkung:
      sry dass es so lange gedauert hat @1Repeater :)

      //Edit:
      tpacancel hinzugefügt ^^ :)
      ~ Asperger aus Leidenschaft!

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „tigerjunge15“ ()

      Event-Macro

      hey,
      ich hab mich grad mal an einem theoretisch super einfachen script versucht und habs maßlos verkackt...

      $${ ECHO(X) WAIT(5s) }$$

      das ding soll jedes mal wenn ich ein item aufhebe ein X in den chat schreiben
      das soll aber maximal alle 5 sekunden passieren, falls ich mal mehr auf einmal aufhebe...
      das ganze wird dann auf OnItemPickup gelegt...

      mag mir irgendwer verraten wie ich das machen kann das ich ned spamme? ^^


      LG pepe


      PS: wenn ihr mir helfen könnt und mich daran erinnert, dann bekommt ihr von mir ein kleines dankeschön für die hilfe ;)
      Ich würde eine Hilfvariable nutzen. Die hat einen Defaultwert, den sie onJoin bekommt (kannst du in dem Event setzen oder den Defaultwert von zum Beispiel einer Boolean nutzen). Den Status fragst du jeweils vorm Ausführen von deiner Chat-Aktion ab. Wenn er passt und du ins IF gehst, dann änderst du den Wert der Hilfsvariable und startest ein weiteres Script, das nicht mehr tut, als 5 Sekunden zu warten und dann die Hilfsvariable wieder auf den passenden Wert zu setzen. So lange kommst du dann nicht ins IF und du wirst nicht gespammt.

      air

      airfighter007 schrieb:

      Ich würde eine Hilfvariable nutzen. Die hat einen Defaultwert, den sie onJoin bekommt (kannst du in dem Event setzen oder den Defaultwert von zum Beispiel einer Boolean nutzen). Den Status fragst du jeweils vorm Ausführen von deiner Chat-Aktion ab. Wenn er passt und du ins IF gehst, dann änderst du den Wert der Hilfsvariable und startest ein weiteres Script, das nicht mehr tut, als 5 Sekunden zu warten und dann die Hilfsvariable wieder auf den passenden Wert zu setzen. So lange kommst du dann nicht ins IF und du wirst nicht gespammt.

      air



      danke für deine antwort
      ich hab leider keinen schimmer was du damit meinst xD

      genauer gesagt geht es darum, das ich mir das ganze inventar voll machen will mit einer sorte items, und das dadurch nur noch die stacks aufgefüllt werden
      und dann eben eine nachricht an einen bestimmten spieler, bzw. an mich rausgehen soll, für die logs

      peeepeeepeee schrieb:

      und dann eben eine nachricht an einen bestimmten spieler, bzw. an mich rausgehen soll, für die logs

      Diese Nachricht soll rausgehen, sobald das Inventar voll ist? In dem Fall würde ich nämlich deutlich anders vorgehen, man kann über onPickup sowohl die Item-ID als auch die Menge an Items, die man aufgenommen hat abfragen. Damit könnte man die aufgenommenen Items direkt mitzählen und darüber könnte man ermitteln, wann das Inventar voll ist.
      Wenn du nochmal etwas genauer erklärst, was genau du vor hast, ist es vermutlich einfacher dir zu helfen ;)

      air

      /edit: Ich hab die Posts mal in den Sammelthread für sowas verschoben

      peeepeeepeee schrieb:

      kann man das nicht einfach machen und nen timer einbauen der das event für die nächsten 5 sek oder so nichtmehr überprüft, ob items aufgehoben werden?

      Das Event wird so oder so laufen, du kannst es allerdings natürlich im Script dann übergehen, wenn die 5 Sekunden noch nicht um sind. Dafür muss um den Rest von deinem Code (das geht dann glaube ich nur noch in einer Datei, nicht direkt in der Zeile vom Event) ne If-Funktion packen

      Quellcode

      1. IF(timer)
      2. UNSET(timer)
      3. hier
      4. ist
      5. der
      6. Rest
      7. vom
      8. Code
      9. WAIT(5s)
      10. SET(timer)
      11. ENDIF

      An sich sollte das denke ich direkt so in dem Code funktionieren mit dem WAIT, sollte das nicht funktionieren, weil es bei nem Eventaufruf läuft oder macromod mal wieder lustig zu sein meint, dann kannst du das auslagern in eine andere Datei, die du dann mit EXEC(name.txt) aufrufst.

      (Der Code oben geht davon aus, dass die Variable "timer" den Wert "true" hat. Damit das beim Start immer der Fall ist, kannst du einfach auf onJoin ein SET(timer) legen. Ist alles nicht getestet, sollte aber eigentlich so funktionieren können.)

      air

      /edit: Sollte es nicht funktionieren in der Datei, dann würde in der ausgelagerten Datei stehen

      Quellcode

      1. WAIT(5s)
      2. SET(timer)

      Diese beiden Zeilen müssten dann natürlich auch aus dem eigentlichen Code raus und durch das EXEC, das ich oben erklärt habe ersetzt werden.