Heyho ich melde mich auch mal wieder
Nachdem der letze vorstellungsthread eines meiner projekte (hier) sehr gut ankam möchte ich hier mein aktuelles Projekt vorstellen:
Vorab gleich Download & Source code link
Download: hier
Source Code: auf github
Wenn du wissen möchtest wie man das ganze verwendet liest du am besten die hier das Quick Start tutorial (auf Englisch)
Es handelt sich hierbei um ein Tool mit dem man Javascript code zu [lexicon]Minecraft[/lexicon] Kommandoblöcken konvertieren kann. Sprich wenn ich beispielsweise
eingebe schreibt er einen kommandoblock mit "say Hallo Welt!" als Kommando in die ausgewählte Welt. Natürlich kann man auch viel kompliziertere Dinge verwirklichen (siehe beispiele unten). Die Idee dazu kam mir schon vor ca. einem Jahr allerdings hatte ich damals noch nicht das nötige wissen um es fertigzustellen. Als ich dann morgen vor 2 Monaten wieder daran gedacht habe hatte ich einen Prototyp schon nach kurzen fertig und schnell erkannte ich die möglichkeiten die das Programm einem Mapersteller bieten. So stehe ich nun heute hier nach 2 Monaten um euch meine prinzipiell fertige aber trotzdem unter entwicklung stehende kreation zu zeigen:
Fangen wir an mit einem kleinen Beispiel:
Nehmen wir an wir wollen einen einfach auto-announcer sprich ein script das alle 2 Minuten eine Nachricht im chat schreibt erstellen.
Dazu verwenden wir die timer funktion, die einen callback periodisch aufruft
Wie man sieht nimmt die timer funktion 3 Argumente
1. eine zahl X alle X * 0.1 sekunden ist ein timer tick
2. eine funktion die periodisch ausgeführt werden soll
3. eine zahl Y wobei die funktion (argument 2) alle Y timer ticks ausgeführt wird
Die Kommandoblöcke in der welt dieses scripts sehen so aus:
[Blocked Image: http://i.imgur.com/2vxGv8d.png]
1 ist die übergeordnete funktion die den Timer startet
2 ist die funktion die die nachricht ausgibt
und 3 ist die timer funktion die sich alle sekunde selbst ausführt und so bis 120 zählt bis sie 2 ausführt
Natürlich kann man auch weitaus kompliziertere Scripts schreiben wie beispielsweise diese Karma funktion von Github:
//setup karma scoreboard objective
//name: karma, type: dummy, displayName: Karma
var karma = new Score("karma", "dummy", "Karma");
//set display slot to sidebar
karma.setDisplay("sidebar");
//subscribe to the 'onentitykill' event
EventHandler.setEventListener('onentitykill', function(player)
{
//tell the player he just earned karma
tellraw(player.getSelector(), "You just earned one Karma".format(Formatting.red));
//add 1 karma
karma.add(player.getSelector(), 1);
});
//subscribe to the 'ondeath' event
EventHandler.setEventListener('ondeath', function(player)
{
//save selector of the dead player in local variable
var playerSelector = player.getSelector();
//setup tellraw command that tells him his karma
var karmaMessage = new Tellraw();
//Add Text 'The Player <name> had a Karma of <valua>'
karmaMessage.addText("The Player ");
karmaMessage.addSelector(playerSelector);
karmaMessage.addText(" had a Karma of ");
karmaMessage.addScore(playerSelector, "karma");
//tell the message to everybody
karmaMessage.tell("@a");
//reset karma
karma.set(playerSelector, 0);
});
Display More
Mit der ausgabe:
[Blocked Image: http://i.imgur.com/WeV6njC.png]
EDIT:
Display MoreSo es gibt jetzt einen GUI!
Zum Download: hier
Und hier noch ein Screenshot:
[Blocked Image: http://i.imgur.com/FzX66jA.png]
Ist weder besonders schön aber erfüllt seinen Zweck
Geplante Features:
- GUI
- macht vorschläge
Bekannte Bugs:
- Titel und Spielmodus einer Welt kann nicht mehr geladen werden
- habt ihr welche?
Ich hoffe euch gefällt das Tool und ihr könnt damit was anfangen
Feedback oder wenn ihr Fragen habt einfach unten rein
LG Jakob