Forum

> > Stranded II > Allgemein > einige Fragen
Forums overviewStranded II overviewAllgemein overviewLog in to reply

German einige Fragen

84 replies
Page
To the start Previous 1 2 3 4 5 Next To the start

old Re: einige Fragen

HW
User Off Offline

Quote
Ich dachte, du hättest attack1 und attack2 noch gar nicht eingeführt? Oder war das ein Missverständnis und du hast dann geglaubt, ich würde von dem KI bezogenen Event reden?
(Ich meine das, was in Scripting Fragen/Probleme als Letztes von mir steht)

Wenn du es schon eingeführt hast, warum steht dann in der Befehlsreferenz nichts davon? Außerdem steht auch das Event Getoff nicht drin.

Und funktioniert das Event denn schon in der aktuellen EXE?

Edit: Ich habe es getestet! Es funktioniert! Und ich habe nichts davon gewusst! DC, wie konntest du nur?

(Dramatische Abschnitte dieses Textes bitte nicht ernstnehmen.)
edited 1×, last 26.02.06 01:44:52 pm

old Re: einige Fragen

Guest

Quote
Wie hat den Dc di scripts überhaupt eingebaut. und dat mit den variabeln. dat ist doch schweine schwer. oder?

old Re: einige Fragen

DC
Admin Off Offline

Quote
@HW: Oh.. oh nein. Das war wohl ein furchtbares Missverständnis! Es.. es tut mir so leid

@Jojo00: Nö nö, das ist eigentlich ganz einfach wenn man ein Übermensch ist. *hust*

old Re: einige Fragen

Don Philippe
User Off Offline

Quote
@ DC: Weißt du eigentlich schon so ungefähr, wann du die neue Version rausbringen möchtest, in der die Karten nicht mehr so groß sind? Ich würde jetzt wirklich gerne meine Map weitermachen.

old Re: einige Fragen

HW
User Off Offline

Quote
Da der letzte Post bei Scripting Fragen/Probleme seit Langem von mir ist, muss ich wohl hier hin posten:
Ich habe auf einer Map zwei Flöße. Außerdem habe ich das Definitionsskript der Flöße mit einer Textbox überschrieben. Das Ziel ist, dass der Spieler ein Floß besitzen kann oder nicht und dementsprechend auch die Möglichkeit damit zu fahren geregelt wird. Dazu verwende ich lokale Variabeln. Leider funktioniert das nicht wie gewollt...
Eines der Flöße hat ein Skript, das bewirken soll, dass das Floß dem Spieler nicht gehören soll. Vom Skript der Textbox her sollen alle Flöße standardmäßig dem Spieler gehören. Das andere Floß, das dem Spieler gehören soll, benötigt daher kein Skript.

Skript in der Testbox:
1
2
3
4
5
6
7
8
9
10
11
on:create {
local $besitzer;
$besitzer=1;
}
on:use {
   if ($besitzer==0) {
      msg "Das Floss gehoert dir nicht!",3;
   } else {
   ride;
   }
}

Skript bei dem 1. Floß, das dem Spieler nicht gehören soll:
1
2
3
on:create {
   $besitzer=0;
}

Ist die Variable 0, gehört das Floß dem Spieler nicht, ansonsten gehört es ihm. Das eigentliche Problem ist: Seltsamerweise gehört kein Floß dem Spieler. Und es ist nicht in meinem Sinn, dem 2. Floß ein Skript hinzuzufügen, da Flößer, die der Spieler gebaut hat, selbstverständlich ihm gehören sollen. (Auch wenn man noch keine Flößer bauen kann)

old Re: einige Fragen

DC
Admin Off Offline

Quote
Uff. Ja das ist "etwas" verzwickt und du kannst auch nicht wissen was da falsch läuft:

Vermutlich überschreibst du das Definitionsscript bei on:load, nicht wahr?
Das Problem ist: Das on:load Ereignis wird erst ausgeführt, wenn die Map eigentlich schon geladen wurde (damit es möglich ist in den Scripts Sachen in der Map anzusprechen). Das führt dazu, dass das on:create Ereignis noch garnicht im Definitionsscript der Flößer steht, wenn diese beim Laden erzeugt werden.
Ein Weiterer Punkt ist, dass die Scripts welche an Objekte gebunden sind erst NACH den Objekten geladen werden. on:create wird also nur dann beim Laden der Map anschlagen, wenn es in der Definition steht.

Beide on:creates in den Scripts werden folglich überhaupt nicht ausgeführt (zumindest nicht beim Laden der Map - wenn du ein Floß bauen würdest, müsstest du es auch fahren können).

Lösungsweg 1:
Benutze on:load statt on:create (in beiden Fällen). Wenn du das machst, werden Änderungen der $besitzer Variable, welche im Spielverlauf möglicherweise gemacht werden aber beim Laden von Spielständen durch das on:load Script wieder überschrieben! Wenn du das nicht willst versuchs mit Weg 2 oder 3!

Lösungsweg 2:
Bei allen Flößen, die bereits in der Map stehen und welche man fahren können soll, folgendes Script einfügen und den Kram für die Definition belassen wie er ist:
1
2
3
4
on:start {
local $besitzer;
$besitzer=1;
}

Lösungsweg 3:
Wenn du aber besonders viele Flöße in der Map hast welche von Anfang an fahrbar sein sollen, packst du folgendes zuätzlich in das Script für die Definition:
1
2
3
4
5
6
on:load {
if (varexists($besitzer)==0){
local $besitzer;
$besitzer=1;
}
}
Und folgendes Script hängst du an die Flöße welche nicht fahrbar sein sollen:
1
2
3
4
on:start {
local $besitzer;
$besitzer=0;
}


Ist aber alles ungetestet. Bei so Sachen beim Laden ist die Reihenfolge der Script/Event-Ausführung sehr entscheidend. Wie die ist habe ich aber (noch?) nicht dokumentiert.
edited 3×, last 27.02.06 01:50:05 am

old Re: einige Fragen

HW
User Off Offline

Quote
Ich habe mir schon gedacht, dass es etwas mit der Reihenfolge, in der die Events ausgeführt werden, zu tun hat. Ich werde es gleich mal ausprobieren.
Eine Dokumentation darüber wäre irgendwann mal auch nicht schlecht. Eine Sache darüber würde mich auch noch interessieren: Wird zuerst on:load oder on:start ausgeführt? (Ich kann mir denken, dass sie im selben Schleifendurchlauf ausgeführt werden, aber das ist ja immer noch nicht gleichzeitig)

Edit: Es klappt. Zumindest mit Lösungsweg 2 (an dem ich allerdings einiges verändern musste). Die anderen will ich jetzt aber nicht ausprobieren.

Edit²: Ich habe einen Fehler bemerkt: In der aktuellen EXE überlappen sich die IDs der Fisch- und Eisenitems. (FischID=EisenID; gebr. FischID=EisenbarrenID) Das hat zur Folge, dass die Fische nicht im Spiel vorhanden sind und durch Eisen ersetzt werden.
edited 2×, last 27.02.06 11:45:58 am

old Re: einige Fragen

DC
Admin Off Offline

Quote
Huch. Danke sehr. Ich sollte besser eine Kontrolle einbauen, welche das Überschreiben mit einer Fehlermeldung quitiert, damit das nicht so leicht passiert.

old Re: einige Fragen

HW
User Off Offline

Quote
Ich habe schon wieder Probleme mit der Floß-Sache:
Ich will einen Händler einfügen, der dem Spieler das Floß verkaufen soll. Bis zu dem Moment, an dem ich die Bezahlung durch den Spieler eingefügt habe, funktionierte es noch ganz gut. Aber danach nicht mehr.

Das Skript vom Händler:
1
2
//*msgbox Zeugs*
if (getlocal("unit",100,"besitzer")==0) { button 1,"Floss - 20 Gold",7,12; }
Skript der Textbox für den Button:
1
2
3
4
5
6
7
if (playergotitem(4)=>20) {
   setamount getstored("unit",1,4),playergotitem(4)-20; //die verräterische Zeile
   setlocal "unit",100,"besitzer",1;
   freebutton 1;
} else {
   msg "Du hast nicht genug Gold!",3;
}

Ohne die Zeile, die ich als "verräterisch" gekennzeichnet habe, funktioniert das alles wunderbar. Nur dass der Spieler dann gar nicht bezahlen muss. Wenn ich die Zeile einfüge, kann der Spieler das Floß nicht kaufen (und somit hinterher nicht fahren), der Button bleibt nach dem anklicken und er bezahlt auch nicht. Anders gesagt: Das Skript scheint gar nicht wirklich ausgeführt zu werden.
Das Floß hat übrigens die ID 100. Zahlungsmittel sind Goldnuggets (Item Nr. 4).
Im Debugmode erhalte ich die Fehlermeldung "expecting semicolon", obwohl ich alle nötigen Semikola gesetzt habe.
edited 1×, last 27.02.06 01:27:57 pm

old Re: einige Fragen

DC
Admin Off Offline

Quote
Der Parser hat noch einige Bugs. Oft hilft es, die Rückgabewerte von Funktionen in Variablen zwischen zu speichern und dann mit diesen zu Arbeiten. Versuche also mal ob es klappt, wenn du den Wert von getstored und playergotitem in Variablen packst und dann diese bei setamount angibst.
Es ist auch vorstellbar, dass es klappt wenn du nochmal Klammern um die Rechnung haust: (playergotitem(4)-20). Probiers mal aus.
Ich muss da auf jeden Fall noch ein bisschen was verbessern irgendwie...

old Re: einige Fragen

Guest

Quote
Hat dde dat mit den Varablen und ihren werten mit types und fields gemacht? isch wollte auch mal so ne klenen game maker oder progrmmiersprache machen?

old Re: einige Fragen

HW
User Off Offline

Quote
@jojo00: (*Verdachtheg*)
Ich denke nicht, dass er das mit Types gemacht hat. Viele Types machen die Geschwindigkeit des Spiels nieder. Daher nehme ich an, dass DC das auf eine andere, brilliante Weise gelöst hat.

Edit: @DC: Nein, es funktioniert immer noch nicht. Auch wenn ich das Zeug in Variablen haue und Klammern um die Rechnung schreibe. Soll ich dir vielleicht die Map zuschicken?
edited 2×, last 27.02.06 02:45:22 pm

old Re: einige Fragen

DC
Admin Off Offline

Quote
Ja, schick mal bitte
Und doch, ich benutze Types

old Re: einige Fragen

HW
User Off Offline

Quote
Die Map ist verschickt. Jetzt brauche ich nur noch eine Antwort.
Es wäre bei solchen Skriptfehlern jedoch recht nützlich, wenn man die Fehlermeldung aus der Konsole kopieren könnte.

old Re: einige Fragen

DC
Admin Off Offline

Quote
Ich bekomme die Fehlermeldung, dass der Befehl setcount (=setamount) nicht mit gelagerten Items funktioniert (das ist so damit man nicht einfach mehr Zeug in ein Objekt stopfen kann, als es lagern kann).

Aber mir fiel auf, dass es ja einen klasse Befehl gibt, womit das sehr viel einfacher geht:
Einfach s2 cmd freestored "unit",1,4,20;
Wenn ich das so mache klappt es hervorragend

old Re: einige Fragen

HW
User Off Offline

Quote
Ja, jetzt geht es. (Ich hatte übersehen, dass freestored einen Parameter für die Anzahl hat )

old Re: einige Fragen

DC
Admin Off Offline

Quote
Hihi
Es hätte sogar mit s2 cmd free geklappt, nur dass man dann mit einem anderen Befehl die ID hätte herausfinden müssen. Eigentlich wollte ich dir zuerst dazu raten, aber dann habe ich zufällig gesehen, dass es ja extra einen Befehl dafür gibt

old Re: einige Fragen

bizzl
User Off Offline

Quote
DC, wann genau baust du die möglichkeit ein, einen Mod zu laden, und wird der dann auch leerzeichen akzeptieren? Oder stell ich mich zu blöd an?
Ich rufe es eigentlich immer so auf:
StrandedII.exe -mod Modname [weitere parameter...]
Ich bastel grad an einer Modding-Umgebung, und man sollte auch S2 daraus mit dem gerade geladenen mod starten können. Aber bei den Tests liefs bisher net.
Zu diesem Thema wäre auch net, wenn du mal die S2-Seite im bereich Modding updatest.
ich weiß, sowas bremst etwas, aber lieber etwas verzug, und dafür kann man schon ordentlich testen.

old Re: einige Fragen

DC
Admin Off Offline

Quote
Normal sollte das gehen. Egal, ich schreibe den Commandline Parser einfach nochmal toller neu. Dann wird der sowas von jeden Scheiss den man ihm gibt richtig verdingsen.

P.S.: Ich habe hier gerade mal ein bisschen unnötigen Dreck gelöscht.
To the start Previous 1 2 3 4 5 Next To the start
Log in to replyAllgemein overviewStranded II overviewForums overview