Forum

> > Stranded II > Scripts > Scripting - Fragen/Probleme
Forums overviewStranded II overview Scripts overviewLog in to reply

German Scripting - Fragen/Probleme

6,780 replies
Page
To the start Previous 1 2300 301 302339 340 Next To the start

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Du möchtest also, dass ein Timer ein Event immer wieder auslöst, solange du in einem Gebietstrigger bist, der allerdings wieder aufhört, wenn du das Gebiet verlässt?

old Re: Scripting - Fragen/Probleme

RedFlop
User Off Offline

Quote
Ja fast.
Der Gebietstrigger löst ein Event bei einem Objekt aus.
Dort wiederum Löst ein Timer dann ein Event aus.
Jez würd ich gern wissen ob ich machen kann, dass wenn man das Gebiet verlässt, dass dann sozusagen ein velass-Event ausgelöst wird, mitdem ich den Timer ausschalten kann.

old Re: Scripting - Fragen/Probleme

T-REX0113
User Off Offline

Quote
@hurri04
Oh sorry da ist wohl einfehler unterlaufen bei mir, heißt eigendlich wirklich
scriptkey=0,...

sorry dafür

@redFlop
warum machst du nicht einfach nur den gebietstrigger???

also so: (das steht im Gebietstrigger)
1
2
3
4
on:trigger {
  event "Ereignis" [,"Klasse", ID]
free "self";
}
dann wird dein event ausgeführt und nur einmal. Mit dem script Free "self"; löschst du dann den Gebietstrigger, heißt er wird nur einmal ausgeführt.

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Das ganze geht mit zwei Triggern.
Es gäbe auch noch die Möglichkeit, überhaupt keinen Trigger zu benutzen. Also so, dass man das ganze nur über Scripts laufen lässt.

Welche Version wäre dir lieber? Ich könnte dir dann ein Beispiel schreiben.

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Wie gesagt, das was du möchtest geht mit zwei Triggern oder ganz ohne Trigger (beide Versionen verhalten sich gleich, da gibt es also keine Unterschiede).

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Du setzt einfach ein Info (zum Beispiel eine grüne Fahne oder so) in die Landschaft und fügst dort diese Script ein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
on:start
	{
	timer "self", 500, 0, "gebiet";  //2 mal pro Sekunde wird geprüft, ob der Spieler im Gebiet ist.
	}

on:gebiet
	{
	// Ist der Spieler im Bereich um das Info?
	if ((inrange ("self", 150) == 1) && ($bereich == 0))
		{
		// Wenn ja:
		msg "Spieler hat den Bereich betreten!";
		$bereich = 1;
		}
	elseif ((inrange ("self", 150) != 1) && ($bereich == 1))
		{
		// Wenn nein:
		msg "Spieler hat den Bereich verlassen!";
		$bereich = 0;
		}
	}

Die Variable $bereich sorgt dafür, dass die Nachricht (also das Script im If-Bereich) nur ein mal ausgeführt wird. Ohne würde das Script immer wieder ausgeführt werden.


T-REX0113 has written
du könntest aber auch s2 cmd stoptrigger verwenden und ihn, wenn du ihn wieder brauchst mit s2 cmd starttrigger wieder verwenden
Er weiß ja aber nicht wie er nachguckt, ob der Spieler das Gebiet verlassen hat.

old Re: Scripting - Fragen/Probleme

Krelion
User Off Offline

Quote
Also ich hab ne Frage ich hab ein Flugzeug das wenn 2states(oder variablen bin grad ein wenig verwirrt) auf 1 sind dass man dann damit wegfliegt aber es funzt net(Hab Eigenversuch gemacht:
1
2
3
4
5
6
7
on:use {
		skipevent;
		dialogue "Fliegen","21";
 if ($bstate==1,$grabstate==1){	  
		loadmap "maps/Map001.s2";}
	}
}
)

Wenn ich nur bstate/grabstate hab gehts,aber beides net,gibts ne Möglichkeit das hinzubekommen?

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Der Fehler liegt darin, wie du die beiden Variablen abfragst.

Entweder machst du das so:
1
2
3
4
5
6
7
if ($var1 == 1)
	{
	if ($var2 == 1)
		{
		msg "Bla";
		}
	}
oder du machst es so:
1
2
3
4
if (($var1 == 1) && ($var2 == 1))
	{
	msg "Bla";
	}

Die zweite Variante ist dabei kürzer, übersichtlicher und wird allgemein auch als Standard angesehen.


Dabei sagt das "&&" aus, das beide Abfragungen positiv ausfallen müssen, damit auch der gesamte Ausdruck positiv (also 1) ist.
Sollte eine der beiden Variablen 0 sein (oder auch gleich beide) wird der Code zwischen den Klammern (hier also der msg-Befehl) nicht ausgeführt. Nur wenn beide Variablen 1 sind, erscheint "Bla" auf dem Bildschirm.


Für weitere Informationen gucke bitte hier oder beim s2 cmd if-Befehl.

old Re: Scripting - Fragen/Probleme

RedFlop
User Off Offline

Quote
Wenn ich das so übernehme [nur "msg" durch ein Event ersetze, stürtzt das Spiel mit mit "Parameter must be greater than 0".

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Kopiere mal dein Script hier rein. Vermutlich ist der Fehler irgendwo bei dem Event.
Bei mir funktioniert das Script anstandslos.

(Du kannst, wenn du das Script offen hast, mit einem Button unten das Script in einer Textdatei speichern. Klicke einfach darauf, dann gebe "bla.txt" ein, dann auf Okay und zum Schluss kannst du dann das Script hier einfügen aus der Datei raus)

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
ich hab wieder mal ein problem und zwar mit dem befehl s2 cmd name:
1
2
3
4
5
6
7
8
9
on:hit {
	$own_class=currentclass();
	$own_id=currentid();

	$target_type=type("$own_class", $own_id);
	msg "Type: $target_type"									// bis hierhin funktioniert es noch
	$target_name=name("$own_class", $target_type);	// das hier funktioniert nicht mehr, denn ...
	msg "$target_name";										// ... hier wird 0 ausgegeben
}
irgendwie scheint der befehl nicht ganz zu funktionieren...
oder ich find den fehler einfach nicht

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Du brauchst keine Anführungsstriche um eine Variable machen wenn sie ein Text ist. Also $own_class statt "$own_class".
Allerdings weiß ich nicht, ob das bei dem msg-Befehl auch so ist.

Versuch auch mal $target_name in $target_nam umzubenennen. Vielleicht hat Stranded Probleme mit Variablen, welche wie ein Befehl heißen.

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
@ quester:
hmm, da ist mir wohl ein flüchtigkeitsfehler unterlaufen...
hab ihn behoben, hat aber leider zu keinem ergebnis geführt...


@ Nova:
ja, so wie es aussieht kann man die auch weglassen, aber ich schreib an stellen wo die Klasse verlangt wird lieber mit anführungszeichn, allein schon aus gewohnheit (ich habs trotzdem mal ohne ausprobiert, hat aber auch nichts gebracht).
(bei dem msg-befehl würd ich übrigens mal stark vermuten, dass da ALLES an text in anführungszeichen muss.)

hab auch versucht andere namen zu benutzen für die variablen, sogar "$hallo" oder "$test", hat aber auch nicht funktioniert...

old Re: Scripting - Fragen/Probleme

Krelion
User Off Offline

Quote
Nochmal ne Frage,ich versuch mich grad an nem Intro,aber das Flugzeug was fliegen soll fliegt zu schnell,gibts ne Möglichkeit,das das Flugzeug langsamer ist?

Wenn nein muss ichs ein wenig wie beim Abenteuer machen^^(Da fährt das Boot ja 3mal oder so durchs Bild^^)

Und noch ne Frage,wie kann man ein Intro wie bei Xandua machen?
Also aus der Sicht des Cockpits

PS:Ich würde dann gern ein vorgefertigtes Script haben

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Ich weiß leider nicht wo das Problem sein soll.
Bei mir funktioniert der Code ohne Probleme.

Ich habe einfach diesen Code in einem Palme eingefügt und dann auf sie drauf geschlagen:
1
2
3
4
5
6
7
8
9
on:hit { 
	  $own_class=currentclass(); 
	  $own_id=currentid(); 

	  $target_type=type("$own_class", $own_id); 
	  msg "Type: $target_type";
	  $target_name=name("$own_class", $target_type);
	  msg "$target_name";
}


@Krelion: Du kannst dem Flugzeug den State 54 geben und dann mit s2 cmd statevalue die Geschwindigkeit auf einen anderen Wert setzen.

Das Intro bei Xandua wurde vermutlich mit dem s2 cmd ride Befehl auf das Flugzeug gemacht. Weiß ich allerdings nicht, ist nur eine Vermutung.
To the start Previous 1 2300 301 302339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview