header YouTube
Clonk Livestream auf Twitch.tv!

Clonkspot

'/script'-Befehl funktioniert nicht

Hey,

-Es geht um Clonk Rage, neueste Version-

habe gerade erst gesehen, dass es hier auch einen deutschen Teil gibt. Deshalb auch hier einmal meine Frage:

Ich habe mit nem Kumpel die Mission Goldrausch gespielt, nur um nach 2x 4 Stunden (einmal mussten wir neustarten weil wir keine Bausätze mehr hatten) zu erfahren, dass wir zum Beenden der Mission ein Pferd brauchen. Alle unsere Pferde sind allerdings gestorben. Nun wollen wir aber nicht für ein Pferd nochmal alles von vorne spielen.

Ich habe versucht über den /script-Befehl ein Pferd einzufügen: /script CreateContents(HORS,GetCursor(0),1) aber es passiert nichts. Überhaupt passiert nie etwas, wenn ich versuche einen /script-Befehl ausführe. Habe es auch schon mit FLNT statt HORS und z.B. SetGravity versucht. Befehle wie /fast und /slow funktionieren. Der Debug-Modus ist an und ich habe es in verschiedenen Szenarien probiert. Habe gehört, dass es mit einer Zeile in der Scenario.txt zu tun haben soll, aber kann da nichts finden.

Über jegliche Hilfe würde ich mich freuen! :happy:

>Dev<

War das offline? Es funktioniert soweit ich weiss nur in entpackten Szenarien oder im Netzwerk als Host.

Ah okay, danke für die Antwort. Wir spielen offline an einem PC. Gibt es wohl irgendeine (andere) Möglichkeit ein Pferd in dieses Savegame zu bekommen?

Einfach den Spielstand als Netzwerkspiel starten :slight_smile:
(Geht auch offline)

Tatsache, das funktioniert schonmal. Jetzt brauche ich nur noch einen Befehl, mit dem ich ein Pferd einfügen kann. Mit CreateContents() kann ich mir zwar z.B. Flints geben, aber kein Pferd (passt ja auch schlecht in das Inventar eines Clonks). Habe auch schon CreateObject(HORS, 0,0, NO_OWNER) versucht, aber alles was ich bekomme ist der Output =0.

/script CreateContents(HORS,GetCursor(0)) sollte aber eigentlich funktionieren (hat es bei mir auch, habs grad mal ausprobiert), man kann auch Objekte in Clonks scripten, die nicht aufsammelbar sind.
Wenn es mit Flints funktioniert hat versteh ichs auch nicht, dann stimmt die Spielernummer ja auch…
CreateObject sollte auch auf jeden Fall "Pferd #xxxx" oder so zurückgeben.

Mh, ich kann mir auch z.B. einen Drachen damit in die Hand geben. Aber weder ein normales, gesatteltes noch ein totes Pferd…

Neben dem was schon beantwortet wurde, hat Goldrausch glaube ich Scriptspieler die Spielernummern belegen könnten. mit GetPlayerName(0) kannst du nachgucken ob du auch tatsächlich der entsprechende Spieler bist, wenn nicht einfach GetPlayerName(1) und so weiter. HRSS ist übrigens die ID des gesattelten Pferdes, weiß nicht ob HORS vielleicht nur im Ritterpack ist.

Edit: Das hier hat bei mir eigentlich geklappt

Danke! Tatsächlich habe ich die letzten Tests in Fantasy- und Standard-Levels gemacht und da gab es wohl keine Pferde. In den Western-Missionen hat es nun geklappt.

Vielen Dank an alle für die Hilfe! :happy: Hätte nicht gedacht, dass es 2016 noch so eine aktive Clonk-Community gibt!

Script-Befehle gehen nur, wenn das Szenario von einem nicht registriertem Spieler bearbeitet wurde, es entpackt ist, man der Autor des Szenarios ist oder wenn im Netzwerkmodus gespielt wird.

Habe nie verstanden, warum es diese Einschränkung (nur selbst gepackte oder entpackte Szens) fürs Scripten in lokalen Spielen gibt. Wenn man nicht den Umweg über den Spielstand gehen will, kann man auch Cheat Engine benutzen:

Cheat Engine installieren
File -> Open Process, Clonk.exe auswählen, Open
Table -> Show Cheat Table Lua Script
writeBytes(0x4B5CB0, 0xEB, 0x2D) eingeben und auf Execute script klicken

Dann Cheat Engine schließen und /script sollte funktionieren.

>Wenn man nicht den Umweg über den Spielstand gehen will,


Geht nur, wenn man registriert ist. Ansonsten funktioniert /script in Spielständen nicht.

GetCursor(Spielernummer)->CreateObject(HORS) sollte das Pferd direkt beim Spielerclonk erstellen. Wenn HORS die richtige ID ist.

Wir hatten damals grosse Angst, dass Leute cheaten. Selber fanden wir es aber so praktisch, dass wir es uns fuers Netzwerk aktiviert haben.

Fuer OC haben wir es geaendert: Da kann man immer scripten, wenn der Debugmodus an ist.

>Wir hatten damals grosse Angst, dass Leute cheaten.


gerade das ist doch so geil an Clonk :)

Kann es aber sein das manche Scripts trotzdem nie ingame funktionieren?

AddMsgBoardCmd geht mal nicht.

Es funktioniert nur ein einzelnes Statement. Deswegen fällt beispielsweise soetwas wie Schleifen oder Kontrollstrukturen (while/for/if …) raus.