[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

      [Sammelthread] Macro/Keybind Mod Scripts und sonstiges

      Ich bin mir völlig im klaren darüber, dass es schon so einen Thread gibt, aber das letzte Update dafür liegt schon 1,5 Monate zurück, Deshalb hab ich mich dazu entschlossen, einen eigenen Thread dafür aufzumachen.
      Was steht hier alles?
      Hier soll eine Sammlung von Scripts, eine Anleitung zum Mod und eine Anleitung zum schreiben von Scripts und eine Anleitung zum nutzen von Scripts für den Anfänger entstehen

      Der Mod:

      Macro Keybind Mod

      Mit ihm werden Minecraft Träume wahr :)
      Einfach den Anweisungen auf dem anderes Seite des Links folgen und dann kanns schon los gehen mit den Scripts

      Scripts:

      Kürzeres Land Info

      Kompaktes Land Info:
      einmal /land info belagert im Chat schon einen großen Platz.

      Daher die Macrmodlösung.
      Anstatt immer die vollen infos anzuzeigen wird gekürzt.
      Gibt man anschließend auf dem gleichen GS nochmal /land info ein werden die Orginalnachrichten geschickt.

      Gekürzt:

      Volle länge:

      Was ändert sich?
      Die Landli Zeile wird beim ersten ausführen orange eingefärbt.
      "zuletzt online" und "Grenzen" verschwindet beim ersten ausführen. Die beiden Angaben erscheinen beim zweiten ausführen.
      Ist das GS (bald) aufkaufbar wird diese Info trotzdem beim ersten mal angezeigt, euch entgeht da nichts.
      Die "Eigenschaften" wurden gekürzt. Hier muss man beim ersten mal auf die Farben schauen.
      Generell gilt: Grün ist gut/geschützt, rot (bzw bei FPS grau) ist schlecht/ungeschützt.

      Installation:
      Das unten stehende Script muss in den "Chatfilter" von Macromod.
      Den findet ihr hier unter dem Punkt "Edit Chatfilter"0

      Dort kopiert ihr einfach den Test hier:

      Brainfuck-Quellcode

      1. ifcontains(%CHAT%,"-------- [§r§2Land§r§4li§r§f] ---------")
      2. filter
      3. endif
      4. ifcontains(%CHAT%,"§r§2Grundst")
      5. ifmatches(%CHATCLEAN%,"%@&gsstring%")
      6. set(gsbit1)
      7. log("§r§f---------- [&r&2Land&r&4li&r&f] ----------")
      8. else
      9. log("§r§6---------- [&r&2Land&r&4li&r&6] ----------")
      10. unset(gsbit1)
      11. set(@&gsstring,"%CHATCLEAN%")
      12. endif
      13. endif
      14. if(gsbit1)
      15. //Platzhalter (Print orginal)
      16. else
      17. ifbeginswith("%CHAT%","§r§2Grenzen: §r§f")
      18. filter
      19. endif
      20. ifbeginswith("%CHAT%","§r§2Owner zuletzt online: ")
      21. filter
      22. endif
      23. ifbeginswith("%CHAT%","§r§2Eigenschaften")
      24. set(&gschat,"%CHAT%")
      25. set(@lastgsinfo)
      26. replace(&gschat," verboten","")
      27. replace(&gschat," erlaubt","")
      28. replace(&gschat,"Fremde-","")
      29. replace(&gschat," aktiv","")
      30. replace(&gschat," inaktiv","")
      31. replace(&gschat," an","")
      32. replace(&gschat," aus","")
      33. modify("%&gschat%")
      34. endif
      35. endif


      Hinweis: Zu viele Einträge im Chatfilter können die Performance beeinträchtigen!
      Da braucht es aber schon noch sehr viele Zeilen.

      Viel Spaß damit :)

      Ignaz


      Regensensor

      Ich hab wieder mal etwas recht simples geschreiben
      Sie zeigt dem Spieler an, wann es regnet und wann es wieder aufhört.
      Sehr nützlich, wenn man mit Optifine das Wetter deaktiviert hat

      Den folgenden Text in eine .txt Datei, die im macros Ordner liegt

      Dann die Datei mit $$<Dateiname.txt> auf "onWeatherChange" legen

      Quellcode

      1. $${
      2. IF(RAIN=0);
      3. IF(@raining);
      4. LOG(&1[&lRegensensor&l]&9 Die Wolken haben sich verzogen. Es regnet nicht mehr);
      5. unset(@raining);
      6. ENDIF;
      7. ELSE;
      8. IF(!@raining);
      9. LOG(&1[&lRegensensor&l]&9 Es stehen Regenwolken am Himmel. Nun regnet es);
      10. set(@raining);
      11. ENDIF;
      12. ENDIF;
      13. }$$


      Infos für Scriptexperten

      Das IF an dieser stelle:
      $${
      IF(RAIN=0);
      IF(@raining);
      LOG(&1[&lRegensensor&l]&9 Die Wolken haben sich verzogen. Es regnet nicht mehr);
      unset(@raining);
      ENDIF;

      ELSE;
      IF(!@raining);
      LOG(&1[&lRegensensor&l]&9 Es stehen Regenwolken am Himmel. Nun regnet es);
      set(@raining);
      ENDIF;
      ENDIF;
      }$$

      ist erstaunlicherweise nötig.

      Der Teil wird nur gestartet, wenn RAIN=0 ist

      PS: Regen hat die Stärke 0-100 und eine änderung dauert 5 Sekunden (100ticks)
      Dabei wird jedesmal das Script ausgeführt, also keine Textmeldungen einfügen ;)

      Normalerweise hat der Regen während der Änderung nur einmal den Status 0
      Der Macromod verdoppelt dies aber



      Automatischer Channel switcher

      Hier noch ein nützliches Script, aus Hauseigener Produktion:
      Der Channel switcher
      Auch wenn er Sinn nicht direkt erkennbar ist, ist der Zweck ziemlich simpel

      Wenn du mit jemanden Privat schreibst, und dieser sich abmeldet, landest du oft im Trade, Global, oder Help Channel.
      Normalerweise schreibt man ja Standardmäßig immer im "local"
      Wenn der oben genannte Fall eintritt, und du einen Channel betrittst, wo du eigentlich nicht dauerhaft sein solltest, wirft dich dieses Script automatisch in den Local-Channel zurück.

      Dieses Script muss auf das Event "onChat" gelegt werden

      Aber sehr oft ist dieser Platz schon vergeben, darum jetzt die Aufteilung
      Wenn dieser Platz noch frei ist

      Den Text muss man einfach in eine Textdatei schieben, die sich im /mods/macros Ordner befinden muss

      Quellcode

      1. $${
      2. IFCONTAINS(%CHAT%,"§eDu chattest jetzt in")
      3. IFCONTAINS(%CHAT%,"§f§2Global")
      4. ECHO(/ch l)
      5. Endif
      6. IFCONTAINS(%CHAT%,"§f§bHelpMe")
      7. ECHO(/ch l)
      8. Endif
      9. IFCONTAINS(%CHAT%,"§f§9Trade")
      10. ECHO(/ch l)
      11. Endif
      12. Endif
      13. }$$

      Der Macro muss beim "onChat" Event aktiviert werden
      In diese Zeile einfach

      Quellcode

      1. $$<Dateiname.txt>
      einfügen und der Macro läuft :)

      Wenn dieser Platz schon belegt ist

      Schau nach, welche Datei dort eingetragen ist.
      Nun gehe zum macro Ordner und öffne diese Datei.
      Dort fügst du dann vor dem letzten }$$ diesen Text ein:

      Quellcode

      1. IFCONTAINS(%CHAT%,"§eDu chattest jetzt in")
      2. IFCONTAINS(%CHAT%,"§f§2Global")
      3. ECHO(/ch l)
      4. Endif
      5. IFCONTAINS(%CHAT%,"§f§bHelpMe")
      6. ECHO(/ch l)
      7. Endif
      8. IFCONTAINS(%CHAT%,"§f§9Trade")
      9. ECHO(/ch l)
      10. Endif
      11. Endif




      Progressbar :)
      Zur Progressbar:
      Sie ist eigentlich sehr einfach zum erstellen.

      1. Man gehe in den GUI Editor (grünes Symbol rechts unten im Chatfenster)

      2. Man geht unten auf die "Button Panel Commands" (links unten das dritte von links)


      3. Dort klickt man auf "Add ProgressBar" und positieriert sie wo, wo es einem gerade passt.
      Sogleich öffnet sich ein Fenster:


      4. Dort gibt man unter Expression die Adresse eines Globalen Werts an.
      In meinem Fall @#count:


      5. Nun kann man bei "Min Vaule" den Wert einstellen, wann die Progressbar bei 0 steht und bei "Max Vaule" den Wert, wann sie voll ist

      Nun kann man die Größe wie bei allen anderen Buttons verändern
      Dies hat aber keinen Einfluss auf die funktion

      Aber jede Progressbar braucht auch eine Datenquelle, was soll sie sonst anzeigen:
      6. Der Wert kann von jedem Script kommen
      Dort muss nur ein Wert auf die Variable gelegt werden, welche die Progressbar nutzt.

      Verwendet man @#count, wird der so festgelegt:

      Quellcode

      1. @#count = <Wert>

      Dies kann man beliebig in den Scripts einbauen

      Die Progressbar im Chatfenster aktualisiert sich meiner Erfahrung nach immer, wenn die Variable geändert wird

      Den Min/Max Wert kann man derzeit leider keiner Variable zuordnen

      So siehts aus, wenn man bei 20 % ist:

      und so bei 70:


      Dann viel Spaß damit

      _Ignaz_

      Vereinfachte Bank

      Ich hab hier ein Script zur Bank:
      Den folgenden Text im Code-Fenster einfach direkt auf eine Taste legen (keine Textdatei nötig):

      Quellcode

      1. $${Placesign($$[Befehl[einzahlen,auszahlen,info]],,$$[Menge[100,500,1000,5000,10000,50000,100000]],)}$$

      Dafür musst du auch ein Bankschild schauen
      Wenn du nun diese Taste drückst, und ein Schild in den erste 9 Slots deines Inventars hast, kannst du zwischen
      1. einzahlen
      2. auszahlen
      3. info

      wählen
      bei info wird der Kontostand angezeigt
      Dann Enter drücken und du kannst den Betrag auswählen
      (Bei Info keinen Betrag auswählen, einfach leer lassen)
      Folgende Beträge gibt es:
      1. 100 Kadis
      2. 500 Kadis
      3. 1000 Kadis
      4. 5000 Kadis
      5. 10000 Kadis
      6. 50000 Kadis
      7. 100000 Kadis

      Dann nochmal Enter und der gewünschte Betrag wird abgebucht/zugebucht, oder du bekommst die Kontoübersicht :)

      Viel Spaß in der Bank



      Chatlog

      Dieses Script speichert allen Text mit, der auf deinem Bildschirm zu sehen ist
      Völlig egal, ob es sich um den öffentlichen Chat, pms oder /land list handelt, einfach alles :)
      Das ist sehr nützlich, wenn es darum geht, beleidigungen zu beweisen, oder mehr
      WICHTIG: Der Server macht selbst auch logs
      Die Logs die hier erstellt werden sind nicht "rechtskräftig", man kann allerdings die genaue Zeit feststellen, und ein Mod kann dies dann mit dem offiziellen Log abgleichen

      Vor jedem Text wird immer das Datum und die Uhrzeit abgespeichert, wann dieser Text aufgezeichnet wurde
      Hier ein kleiner Auszug aus meinem Chatlog:
      Log Beispiel

      Quellcode

      1. 2012-11-26 18:23:24: You are locally praised on this server (3)
      2. 2012-11-26 18:23:24: You are globally warned on glizer (-10)
      3. 2012-11-26 18:23:24:
      4. 2012-11-26 18:23:24: *** Willkommen auf Kadcon Server 1! Ihr gestaltet die Stadt! ***
      5. 2012-11-26 18:23:24: Server 2: kadcon.de:41332 - Server 3: kadcon.de:31332
      6. 2012-11-26 18:23:24: Forum: forum.kadcon.de - Votes: vote.kadcon.de
      7. 2012-11-26 18:23:24: Du hast keine Nachrichten.
      8. 2012-11-26 18:23:24: This server is running glizer - the Minecraft Globalizer
      9. 2012-11-26 18:23:24: [GLIZER]: Your connection-data and your statistics are globally saved
      10. 2012-11-26 18:23:24:
      11. 2012-11-26 18:23:25: Schon wieder hier _Ignaz_? ;)
      12. 2012-11-26 18:23:27: [G] Mischu_chan: hmm wer sucht lehm zum abbauen bei mir gibst paar flecken
      13. 2012-11-26 18:23:36: [G] Matze_fcn: Ich mag rosa Schweinchen
      14. 2012-11-26 18:23:39: [G] Lefers: clemensIch heul rum
      15. 2012-11-26 18:23:42: [G] Vip| SabrinaMaker: spawnie
      16. 2012-11-26 18:23:43: Dir gefaellt der Server? Bitte voten :)
      17. 2012-11-26 18:23:43: vote.kadcon.de und 300 Kadis erhalten
      18. 2012-11-26 18:23:43: Fliegen, Tiere fangen, Kein Hunger?
      19. 2012-11-26 18:23:43: iTime benutzen! Alle Infos mit /buy
      20. 2012-11-26 18:23:48: [G] Minecraftleer: mupfel
      21. 2012-11-26 18:23:49: [G] Lefers: cleemmmmeeennssss
      22. 2012-11-26 18:23:53: [G] Matze_fcn: was?
      23. 2012-11-26 18:23:54: [G] freeke7: luzis
      24. 2012-11-26 18:23:55: [G] Mischu_chan: niemand ?
      25. 2012-11-26 18:24:02: [G] linkosse: minecrafter lass mich rein, ich nehm die andere seite versprochen
      26. 2012-11-26 18:24:03: [G] Erdbeerkuchen162: leichtus ich muss weiterarbeiten sry
      27. 2012-11-26 18:24:06: [G] kill3rphilip: hi
      28. 2012-11-26 18:24:07: Ein Kadconer hat gerade auf minecraft-server.eu gevoted
      29. 2012-11-26 18:24:07: [G] freeke7: ich bin gestorben
      30. 2012-11-26 18:24:08: [G] Leichtus: ok
      31. 2012-11-26 18:24:08: [T] Vip| 2002David: Kommt alle /w mc Dropevent
      32. 2012-11-26 18:24:09: seblegoalie33 ist neu dabei! Willkommen!
      33. 2012-11-26 18:24:32: [T] mineschit: dropevet 1
      34. 2012-11-26 18:24:50: [G] Vip| ApacheUnitet: Voten verlängert die Lebensdauer! V*O*T*E*N ---> vote.kadcon.de <--- klicken :D (bin 763 Jahre alt)!
      35. 2012-11-26 18:24:50: [h] Hermes4132: w wc
      36. 2012-11-26 18:24:56: [G] linkosse: bitte
      37. 2012-11-26 18:25:01: [G] Vip| CreeperHaus: ja ich weiß
      38. 2012-11-26 18:25:04: [G] linkosse: ich nehm die andere seite
      39. 2012-11-26 18:25:04: [G] freeke7: luis?
      40. 2012-11-26 18:25:05: [G] Vip| CreeperHaus: mach mal /ch l
      41. 2012-11-26 18:25:14: [G] Vip| CreeperHaus: :D
      42. 2012-11-26 18:25:35: [G] linkosse: dann lass mich rein, ich nehm die andere seite

      Die Chatlogs werden dort gespeichert:
      %appdata%/.minecraft/mods/macros/logs
      Der Macro legt der Übersicht halber jeden Tag eine neue Datei an
      Der Macro an sich ist sehr simpel:

      Quellcode

      1. $${
      2. STRIP(&chat, %CHAT%)
      3. LOGTO("%DATE%-Log.txt",%DATE% %TIME%: %&chat%);
      4. }$$


      Den Text muss man einfach in eine Textdatei schieben, die sich im /mods/macros Ordner befinden muss
      Der Macro muss beim "onChat" Event aktiviert werden
      In diese Zeile einfach

      Quellcode

      1. $$<Dateiname.txt>
      einfügen und der Macro läuft :)
      Eine leistungsfähigere Version ist in Arbeit


      Chat bereinigen

      von Blockbreak
      Hier ein Script für alle, die nicht F1 drücken wollen, aber den Chat frei haben wollen:

      Quellcode

      1. $${DO(100);LOG(" ");LOOP;}$$

      einfach auf eine Taste legen und drücken
      Das Ergebnis sollte sichtbar sein ;)


      Gruß

      Ignaz

      Derzeit nicht inaktiv, auf Forenpns antworte ich verzögert.

      Dieser Beitrag wurde bereits 26 mal editiert, zuletzt von „_Ignaz_“ () aus folgendem Grund: Regensensor eingefügt

      Einfaches Crafting-Makro:

      Quellcode

      1. $${CRAFT($$i,$$[Anzahl]);}$$

      Dises Script musst du einfach auf eine Taste legen und sie drücken.
      Du wirst dann nach einer Anzahl und dem zu Craftendem Item gefragt.
      (Achtung: Für Craftingrezepte die ein 3x3 Craftingfeld benötigen musst du auf ein Craftingtable schauen)

      MFG Blockbreak9000
      Bei allgemeinen Fragen hab ich mir Buttons erstellt, die immer wieder die gleiche Nachricht schreiben, beispielsweise Link zur Dynmap, Fragen direkt in /h, ...
      Für automatische Scripte könnte man das OnChat Event verwenden, aber keine Ahnung wie so was funktionieren könnte.
      Craftscript Beispiele:
      Craften von Clay in Clayblocks: $${CRAFT(82,512)}$$ (kann direkt in die Zeile rein)
      82 ist hier die Itemid von Clayblock, 512 ist die Anzahl (8 Stacks).
      Bei mehreren Sachen Craftandwait verwenden:
      $${Craftandwait(41,64);Craftandwait(42,64);Craftandwait(57,64);Craftandwait(22,64);Craftandwait(133,64)}$$
      Das macht aus den Ingot die entsprechenden Blöcke (Iron Block, ...), jeweils 1 Stack. Auch das Script kann direkt in die Zeile rein. In nem Textfile wäre es natürlich übersichtlicher :cool:
      Bei Rezepten, die eine Crafting Bench brauchen, musst du auf diese guggen. Also Script aktivieren und drauf guggen.
      Beide oben genannte Scripts verwende ich beim Minen, um mein Inventar ein bisschen aufzuräumen, brauch halt nur ne Crafting Bench, außerdem gehts wesentlich schneller als per Hand.

      Edit: Mist, viel zu langsam getippt ;(
      Zu den Chatantworten:
      Wenn du dich mit RegEx auskennst kannst du das mit der Funktion MATCH() machen:

      Macro Mod Changelog schrieb:

      Added MATCH script command, assigns the result of a regex capture to the supplied variable to be used elsewhere:
      MATCH(subject,pattern,&varname,group)
      Varname and group are optional, if varname is omitted the function spits the match into the log buffer. Group allows a capturing subgroup to be specified in the regex (default captures the entire match (eg. group 0)


      Hier ein Beispiel für eine Automatische Antwort auf eine PM:

      L_o_n_z_ schrieb:


      Quellcode

      1. $${
      2. if(!answering);
      3. IFMATCHES(%CHAT%,"§8From\s(.+?)§d: \bkaufliste\b");
      4. MATCH(%CHAT%,"§8From\s(.+?)§d: \bkaufliste\b",&interessent,1);
      5. PLAYSOUND(note.bass);
      6. log(§6[©L_o_n_z_] §aInteressent gefunden: %&interessent%);
      7. set(answering);
      8. echo(/msg %&interessent% Preisliste);
      9. wait(5);
      10. unset(answering);
      11. ENDIF
      12. endif;
      13. }$$



      MFG Blockbreak9000

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Blockbreak9000“ ()

      Das hört sich hier ja alles toll an, aber ich würde auch gerne so etwas machen...
      Gibts da irgentwas wo man nachschauen kann etc?
      Wir lange dauert es "einfache" Sachen zu lernen?

      Gruss gameeeee
      Projetkte: Mit Nerdpole1302 eine Lotterie und mit x3fawkesx3 (im Forum Fawkes) /w city.
      Schaut doch mal vorbei :D (also nur bei /w city, dei Lotterie ist noch geheim :D)
      Cool, danke ich setze mich mal ran, ich die Schrift hier Java oder C++ oder liege ich enfach komplett daneben? :D

      Ok, das war jetzt eher über Macro und auf Englisch.
      Ich würde gerne etwas grundlegendes über die Computersprache (speziell Mincraft) wissen, und am besten auf Deutsch, ich kann zwar Englisch, es geht aber Deutsch doch ein bisschen leichter zu lesen :D
      Projetkte: Mit Nerdpole1302 eine Lotterie und mit x3fawkesx3 (im Forum Fawkes) /w city.
      Schaut doch mal vorbei :D (also nur bei /w city, dei Lotterie ist noch geheim :D)
      Ok, aber woher kannst du solche Marco-Befehle schreiben, du musst das doch auch irgentwo herhaben, ich versteh ja nicht mal zB wo und wann die {} hinkommen, und wieso die so grossen Abstand haben...
      Irgendwoher musst du das ja auch gelernt haben oder?

      //EDIT: Hier hab ich was tolles gefunden:
      joller-voss.ch/java/notes/basi…ProgrammierGrundlagen.pdf
      Projetkte: Mit Nerdpole1302 eine Lotterie und mit x3fawkesx3 (im Forum Fawkes) /w city.
      Schaut doch mal vorbei :D (also nur bei /w city, dei Lotterie ist noch geheim :D)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „gameeeee“ ()

      Wie oben schon mal erwähnt wurde fände ich es cool wenn mal jemand was schreiben könnte oder wenn er schon so was hat das er es mal hier reinstellt, das wenn z.b. im Global gesagt wird "Ich habe eine Frage" und dass der Macro dann schreibt (Immer im gleichen Channel wie die Frage) "Was ist deinen Frage?"
      also das einfach mal jemand dieses Grundchema hier reinstellt was den Chat auf bestimmte Fragen prüft und den Channel prüft und dann eine festgelegte Antowert schreibt.
      (Hoffe ihr versteht was ich meine :D)

      LG
      Mojo
      ich stelle mich irgendwie zu blöd an, kann mir einer der Profis hier bitte exakt aufschreiben, wie ich aus Seilen, Wolle mache? Vielen Dank :thumbsup:

      EDIT: Jahuu, es klappt vielen Dank an die fleißigen Tutorialschreiber, ich habe einfach nur die zu craftende ID an die falsche Stelle geschrieben :)
      "Komm wir essen Opa"
      Satzzeichen können Leben retten, Animus Y.
      Hier für Wolle aus Fäden du musst es nur auf eine Taste legen und wenn du die aktivierst die gewünschte Anzahl eingeben und er craftet dir wenn du genug Fäden hast die gewünschte Menge Weiße Wolle.

      Quellcode

      1. $${CRAFT(35,$$[Anzahl]);}$$


      //EDIT: Mist zu langsam, aber bei mir kannst du noch die Anzahl eingeben :P und die muss im Script nicht festgelegt sein :D

      LG
      Mojo
      Sooweit ich weiß, sind solche Scripts erlaubt, aber du musst zu jeder Zeit, wenn der Mod läuft "ansprechbar" sein

      Man darf laut meinem Wissensstand also ein Script verwenden, das 64mal zuschlägt, um an einem Chestshop-ankauf die Tasten zu schonen, aber du musst währenddessen anwesend sein

      Derzeit nicht inaktiv, auf Forenpns antworte ich verzögert.
      Hab ingame nen Mod gefragt, der meinte es sei nicht erlaubt.


      Noch eine Frage: Ich will einen Ofen mit Sand und Kohle befüllen, indem ich nur auf den Ofen schau und eine Taste drück, geht das mit einem Macro?
      Wäre auch nett wenn jemand so eins rein stellen würde.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Ingelfingen“ ()