In diesem Tutorial werden die Grundlagen von Lua und der Botprogrammierung von Blobby Volley 2 erläutert. Für weiterführende Informationen gibt es die Dokumentation der Script-API. Für Leute, die noch nie programmiert haben, empfehle ich folgendes Tutorial, um die wichtigsten Grundlagen zu erlernen: http://robertico.ro.funpic.de/index.php Vor der Programmierung ist zu beachten, dass Blobby-Skripte in 'data/scripts' abgelegt werden müssen und die Dateiendung '.lua' tragen müssen, um vom Spiel erkannt zu werden Für ein gültiges Blobby-Script müsst ihr 3 Funktionen festlegen: function OnServe(parameter) -- Wird aufgerufen wenn der Ball abgepfiffen wurde und man selber angeben -- soll. Der Parameter gibt an, ob der Ball schon in der Schwebe plaziert ist end function OnOpponentServe() -- Wird aufgerufen wenn der Gegner angeben soll end function OnGame() -- Wird ansonsten während des gesamten Spieles aufgerufen -- Mit -- werden übrigens Kommentare markiert, solltet ihr es noch nicht bemerkt haben ;D end Bevor ihr jetzt loslegt, noch etwas zum Koordinatensystem: Das Spielfeld ist 800 Einheiten breit und 600 Einheiten hoch, ganz an der alten Blobby-Auflösung orientiert. X wächst dabei nach rechts und Y nach oben. Damit wäre also 0,0 unten links und 800,600 oben rechts. Falls ihr euch wundert dass es keine Möglichkeit gibt die eigene Seite zu bestimmen, das ist Absicht. Programmiert einfach als ob der Bot immer links stehen würde, das Programm dreht gegebenenfalls alle Koordinaten um. Ich werde jetzt einfach mal ein Beispiel zeigen, wie ein simpler Bot aufgebaut sein kann: function OnOpponentServe() moveto(130) -- Wenn der Gegner spielt, in Ausgangsposition gehen end function onServer(ballready) moveto(ballx() - 40) -- Etwas links vom Ball hinstellen if posx() < ballx() - 37 and posx() > ballx() - 43 then -- Dieser zugegeben etwas komplizierte Ausdruck bewirkt, dass -- man sich erstmal unterhalb des Balles befinden muss. Leider muss -- das so aufwendig gemacht werden, weil moveto() niemals eine Stelle -- ganz exakt erreicht. if ballready then jump() -- Natürlich nur springen wenn der Ball schon bereitsteht end end end function OnGame() if ballx() < 400 then -- Wenn sich der Ball links von der Mitte, -- also auf unserer Seite befindet moveto(ballx() - 20) -- Etwas links vom Ball ausrichten if ballx() < posx() + 50 then jump() -- Wenn der Ball kurz vor oder hinter dem Blobby ist, springen end end end Ich hoffe, dieses Tutorial hat einen Eindruck entwickelt, wie man einen Bot programmiert. Für weitere Informationen gibt es wie gesagt die Script-API-Doku. Um fortgeschrittene Bots zu programmieren, solltet ihr auch nicht immer blind dem Ball hinterherrennen, sondern mit den estim*-Funktionen Vorhersagen machen. Ansonsten kann ich euch nur als Tip mitgeben, euren Bot immer wieder zu beobachten und gegen jede gefundene Schwäche einen Schutzmechanismus zu entwickeln.
ugan