is zielen auch am anfang auf 0?
Forum
Stranded II Scripts Scripting - Fragen/Problemeis zielen auch am anfang auf 0?
der fehler liegt ganz einfach daran ,dass der timer gar kein sinn macht. Er läuft zwar ab, aber das heißt nicht dass der befehl danach, 10 sec später ausgeführt wird.
Wenn ich es richtig sehe, willst du, dass bei info 91, die 10 sec pause eingelegt wird. Wenn ja dann mach es so.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
on:load { unitpath 133,86; } on:node0086 { unitpath 133,87,88,89,90,91; } on:node0091 { ai_stay "self",1; addstate "self", 60; timer "self", 10000,"weitergehen"; } on:weitergehen { 	ai_stay "self",0; 	unitpath 133,92; } on:node0092 { 	unitpath 133,93,94,95,96.97; }
garantiere für nichts!
edited 1×, last 30.09.08 09:54:10 pm
humer has written
@BBD
der fehler liegt ganz einfach daran ,dass der timer gar kein sinn macht. Er läuft zwar ab, aber das heißt nicht dass der befehl danach, 10 sec später ausgeführt wird.
Wenn ich es richtig sehe, willst du, dass bei info 91, die 10 sec pause eingelegt wird. Wenn ja dann mach es so.
der fehler liegt ganz einfach daran ,dass der timer gar kein sinn macht. Er läuft zwar ab, aber das heißt nicht dass der befehl danach, 10 sec später ausgeführt wird.
Wenn ich es richtig sehe, willst du, dass bei info 91, die 10 sec pause eingelegt wird. Wenn ja dann mach es so.
BBD hat doch gar kein Timer benutzt. Die Einheit soll für immer stehen bleiben.
@BBD: Das kommt weil ai_stay nur dafür sorgt das die Figur sich nicht mehr selbst bewegt. Unitpath wird weiterhin ausgeführt.
@Hans: Ich weiß jetzt nicht wieso das so kompliziert sein muss. Hier mal einfach gehalten, ins Globale Script kopieren:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
on:start 	{ 	msg "Versuche zu überleben!"; 	timer 0, 23000, 1, uberleben; 	} on:uberleben 	{ 	if(lives("unit", 1)==1) 		{ 		add "!2Super!!!"; 		add "Du hast überlebt, Glückwunsch!"; 		msgbox "Überlebt!"; 		} 	}
edited 1×, last 30.09.08 10:23:55 pm
Danke hat funktioniert, aber er geht dann nicht mehr weiter?
Danke, es klappt jetzt.
Mein Problem: Ein Baumwollpflanze kriegt folgendes Skript aus Textbaustein eins:
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
on:changeday{ 	if (int random 3 ==1) { kill "self"} 	if (int random 3 ==1) { 		$idx = getx "object", "self"; 		$idx += random 80 - 40; 		$idz=getz "object", "self"; 		$idz += random 80 - 40; 		$idneu = create "object", 47, $idx, $idz; 		addscript "object", $idneu, 1; 		} }
soll sich das ding über Nacht umbringen, mit derselben Wahrscheinlichkeit (vll. auch geringer) asexuell vermehren.
Code funzt nicht, es wird kein Fehler in der Konsole ausgegeben, es passiert aber auch bei keiner der Pflanzen niemals nix über Nacht. Wo liegt der Fehler?
- das int ist überflüssig, random gibt nur Ganzzahlen aus
- Semikolon fehlt
- Jeder Befehl der einen Wert zurückgibt, muss runde Klammern um die Parameter haben bzw. es muss ein () angehangen werden, wenn er keine Parameter hat.
die erste Zeile müsste also so aussehn:
1
if (random(3)==1) { kill "self"; }
und der Rest muss auch entsprechend angepasst werden.
btw: Auch falls du schon andere Sprachen benutzt haben solltest, empfehle ich das Tutorial zumindest zu überfliegen. Dort werden diese Eigenheiten von Stranded II Script erläutert: http://www.stranded.unrealsoftware.de/s2_scripting1.php
Hoffentlich klappts jetzt!
1
2
3
4
5
6
7
2
3
4
5
6
7
>SCRIPT ERROR: >object/unit/item/info with ID '0' does not exist >Script: object 0 (DOES NOT EXIST) >event: changeday >row:3 >col: 30 >script: $idx = getx("object,"self");
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
on:changeday{ 	if (random (3) ==1) { 		$idx = getx ("object","self"); 		$idx += random (80) - 40; 		$idz = getz ("object","self"); 		$idz += random (80) - 40; 		$idneu = create ("object", 47, $idx, $idz); 		addscript "object", $idneu, 1; 	} 	if (random (3) ==1) { kill "self";} }
P.S.: Ich arbeite mit s2ext. Macht das nen Unterschied?
$idx = getx ("self");
Bei Fehler immer das Script posten, egal welcher Fehler es ist.
Vielen Dank an DC und Nova, die mir sehr schnell und gut geholfen haben!
Hier nochmal ein Skript für asexuelle Reproduktion von Pflanzen jeglicher Art(feat. zufälligen Tod):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
on:changeday{ 	if (random (40)==1) { 		free "self"; 	} 	if (random (50)==1) { 		$idx = getx("self"); 		$idx += random(80); 		$idx -= 40; 		$idz = getz("self"); 		$idz += random(80); 		$idz -= 40; 		$idneu=create ("object", XYZ, $idx, $idz); 		addscript "object", $idneu, ZYX; 	} }
Dann einfach
1
2
3
2
3
on:load{ addscript "self", ZYX; }
Und schon wieder hat man etwas Dynamik in die sonst so statische Natur von S2 gebracht und nebenher noch Skripten gelernt
Ein zufriedener Gast!
das Tor öfnen und schliesen wie in der Taiwai island map
p.s.Ein beispiel script währe nützlich
Danke!
edited 1×, last 03.10.08 12:12:35 pm
dann das script:
1
2
3
2
3
on:trigger { //Deine ganzen Sachen }
wenn du das alledings so machst, dann wird das script immer wieder ausgeführt.
wenn es einmalig gehen soll, dann musst du entweder
1
freescript "self";
oder, wenn ein teil des scripts mehrmals ausgeführt werden soll:
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
on:start { $variable=1; } on:trigger { if ($variable==1){ //Dein einmaliges Zeug $varibale--; } // Dein mehrmaliges Zeug }
ich hoffe, ich hab jetzt nicht tausend sachen erklärt, die du garnicht brauchst...
edited 1×, last 03.10.08 04:34:54 pm
1
2
3
2
3
on:use { event "toggle"; }
1
2
3
4
5
6
7
2
3
4
5
6
7
on:use { 	if ((playergotitem(15<=1))&&(playergotitem(26<=1))) { 		freestate"unit",100,1; 		freestored"unit",1,15,1; 		freestored"unit",1,26,1; 		} }
Im use event des eingeborenen einbauen! Das Script muss natürlich noch ausgebaut werden. Im moment verliert der Spieler bei jedem benutzen des Eingeborenen 1 blatt und 1 liane.
Edit/
Was macht denn der blöde Smiley da, da kommt ne Klammer hin!!!
Fortpflanzung Skript
GuestTextcontainer 1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
on:changeday{ 	$idx = getx("self"); 	$idz = getz("self"); 	if (random (10)==1) { 		if (count("object",47) >1){ 			$idneu=create("object",30,$idx,$idz); 			addscript "object",$idneu, 2; 			free "self"; 		} 	} 	if (random (15)==1) { 		$idx += random(100); 		$idx -= 50; 		$idz += random(100); 		$idz -= 50; 		$idneu=create ("object", 47, $idx, $idz); 		addscript "object", $idneu, 1; 	} }
1
2
3
2
3
on:changeday{ 	free "self"; }
1
2
3
2
3
on:changeday{ 	free "self"; }