Forum
Stranded II Scripts Scripting - Fragen/ProblemeEDIT: LOL jezz hab ich noch ein problem...
Die Flasche ist zwar durchsichtig hat aber keine farbe!
Also ich hab ne flasche mit folgenden Texturen/Materialien:
[Mat] bottle (blau) Shininess: 0.85 Opacity: 1.0
[Mat] glass (graublau) Shininess: 0.85 Opacity: 0.54
[Tex] struc3_a
[Tex] struc4_a
edited 1×, last 21.03.10 01:17:47 pm
on (changeday)
create
oder du stellst n spawntrigger auf die map da kannste dann einstellen welches tier wie oft an x tage gespawnt wird und wieviele maximal dort sein sollen...
Wo find ich denn die entsprechenden Skriptzeilen?
In den Random inis gibts zwar son paar Zeilen:
on:changeday {
$mapc=mapsize();
$mapc=($c/1024);
// Spawn Birds
if (count("unit",25)<$mapc){ randomcreate "unit",25; }
// Spawn Butterflies
if (count("unit",6)<$mapc){ randomcreate "unit",6; }
if (count("unit",7)<$mapc){ randomcreate "unit",7; }
freevar $mapc;
}
aber das scheint nich richtig zu funktionieren und die Haie macht das ja offensichtlich auch nicht...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
on:changeday { $mapc=mapsize(); // Deklariert die Variable $mapc als grösse der Map $mapc=($c/1024); // Deklariert dei Var $mapc neu und setzt $c/1025 ein (was auch immer $c ist) // Spawn Birds if (count("unit",25)<$mapc){ randomcreate "unit",25; } // Wenn weniger Vögel vorjhanden sind als $mapc, wird eine neue zufällige Anzahl an Vögeln erstellt // Spawn Butterflies if (count("unit",6)<$mapc){ randomcreate "unit",6; } // Wenn weniger Scmetterlinge vorjhanden sind als $mapc, wird eine neue zufällige Anzahl an Schmetterlingen erstellt if (count("unit",7)<$mapc){ randomcreate "unit",7; } // Wenn weniger Unit7 vorjhanden sind als $mapc, wird eine neue zufällige Anzahl an Unit7 erstellt freevar $mapc; // Die Variable $mappc wird "geleert" }
Wobei ich auch nicht verstehe was $c sein soll (steht warsch. irgendwo als globele Variable) und warum am anfng die Variable $mapc mit der Mapgrösse erstellt wird und in der nächsten zeile mit $c/1025 überschrieben wird.
hat sich wohl einer vertippt???
wenn man
$mapc=($mapc/1024);
schreibt, klappts. Macht ja sonst auch keinen Sinn...
Bleibt nur die Frage offen wie die Haie auf Zufallsmaps nachkommen.
1
if (count("unit",HaiID)<$mapc){ randomcreate "unit",HaiID; }
Jede Schwierigkeitsstufe hat seine eigene Random-Datei, und wenn du z.B. in die für ein einfaches spiel schaust wirst du keine Haie finden.
Ich hab Die Dateien grad nich hier, aber neben "random.inf" gibt es auch "random_endless_hard.inf" (oder so).
Such darin mal nach Haien.
Haoffe ich konnte helfen
vllt. kommen Haie gar nich nach?
wie auch immer, ich versuch jetzt mal für alle wichtigen units nen object zu skripten das die reproduziert so wie Löwenstein oder Nester
vielen Dank für die Hilfe
gibt es eine möglichkeit über scripts (ohne dateien zu verändern) zu überprüfen, ob eie Taste gedrückt wird.
Als einfaches beispiel:
Wie kann ich wenn ich auf [H]-Taste drücke eine Nachricht (z.B. "HalloWelt") erscheinen lassen?
Danke im vorraus
DEATHSHEAD has written
Hi
gibt es eine möglichkeit über scripts (ohne dateien zu verändern) zu überprüfen, ob eie Taste gedrückt wird.
Als einfaches beispiel:
Wie kann ich wenn ich auf [H]-Taste drücke eine Nachricht (z.B. "HalloWelt") erscheinen lassen?
Danke im vorraus
gibt es eine möglichkeit über scripts (ohne dateien zu verändern) zu überprüfen, ob eie Taste gedrückt wird.
Als einfaches beispiel:
Wie kann ich wenn ich auf [H]-Taste drücke eine Nachricht (z.B. "HalloWelt") erscheinen lassen?
Danke im vorraus
Naja, es gäbe da diese Möglichkeit über scriptkey (bei game.inf) eine Taste einzustellen, aber da müsstest du halt, wie gesagt, Dateien ändern...
Es ist halt ungeschickt wenn man nur eine map machen will und dann für die map noch irgendwelche inf-Dateien mitliefern muss.
Aber trotzdem danke
edited 2×, last 31.03.10 06:22:19 pm
dieses verhalten ist im sourcecode festgelegt und kann dementsprechend nur dort geändert werden.
man kann höchstens noch das blinken deaktivieren, in dem man die gleiche grafik für die helle und dunkle version dieser leisten benutzt.
ich habe ein script geschrieben, durch dass beim benutzen eines objektes ein zweites objekt an der selben stelle und mit der gleichen ausrichtung (gleicher yaw-winkel) erstellt wird.
solange der yaw-winkel 0, 90, -90, 180 pder -180 grad beträgt ist das ganze ja noch einfach, da dann das zweite objekt nur auf der x- und auf der z- achse verschoben werden muss:
(das zweite objekt soll um 2 einheiten nach vorne und um 3 einheiten nach links verschoben werden.)
das habe ich soweit auch ncoh gut hinbekommen.
was mir jetzt probleme bereitet ist das verschieben des zweiten objektes wenn der yaw-winkel eben nicht auf der x- oder z- achse liegt:
in diesem fall müsste das objekt in zwei teilschritten verschoben werden, zunächst einmal bis zu dem knick bei dem roten strich und dann im zweiten schritt weiter bis zu dem hellgrünen punkt.
da man ja auch weiterhin nur auf der x- und z- achse verschieben kann muss man hier mit sinus und cosinus vorgehen.
ich hab es mittlerweile geschafft für den bereich oben link (also wenn der yaw-winkel zwischen null und 90 ist) ein script zu schreiben, wenn ich das allerdings auf die anderen 3 bereiche übertragen will bekomm ich das irgendwie nicht hin.
hier mal das script:
das hier steht im ersten objekt:
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:use{ 	$buildingsite_x=getx("self"); 	$buildingsite_y=gety("self"); 	$buildingsite_z=getz("self"); 	$buildingsite_yaw=getyaw("self"); 	$ank=cos($buildingsite_yaw, 0); 	$geg=sin($buildingsite_yaw, 0); 	$ank_final=$ank*$placeholder_offset; 	$geg_final=$geg*$placeholder_offset; 	$ank_rightangle=cos($buildingsite_yaw+90, 0); 	$geg_rightangle=sin($buildingsite_yaw+90, 0); 	$ank_rightangle_final=$ank_rightangle*$placeholder_offset; 	$geg_rightangle_final=$geg_rightangle*$placeholder_offset; 	event "placeholder08", "global";
und das hier steht im globalen script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
on:start { 	$placeholder_offset=15; } on:placeholder08{ 	// hier wird das zweite objekt erstellt, an die position (nur die höhem, die x- und z- position wird ja schon beim erstellen angegeben) des ersten obejektes angegelichen, das klappt auch noch alles gut 	$id=create("object", 750, $buildingsite_x, $buildingsite_z); 	setpos "object", $id, "self", $buildingsite_y, "self"; 	setrot "object", $id, "self", $buildingsite_yaw, "self"; 	// hier wird der bereich festgelegt, bei dem das script gelten soll, also zwischen 0 und 90 yaw 	if(($buildingsite_yaw>0) && ($buildingsite_yaw<90)) { 		 		// Verschiebung 1 		$ph_x08_a=-$geg_final*2; 		$ph_z08_a=$ank_final*2; 		rpos "object", $id, $ph_x08_a, 0, $ph_z08_a; 		// Verschiebung 2 		$ph_x08_b=-$geg_rightangle_final*3; 		$ph_z08_b=$ank_rightangle_final*3; 		rpos "object", $id, $ph_x08_b, 0, $ph_z08_b; 	} }
nach meiner theorie müsste das zweite objekt ja jetzt, wenn man die vorzeichen der entsprechenden variablen bei den rpos -befehlen umkehrt, um zwei einheiten nach unten/rechts und um drei einheiten nach rechts/rechts verschoben werden, was man dann also gebrauchen könnte, wenn man die verschiebung im bereich unten rechts bestimmen will, also der bereich zwischen -180 und -90 yaw.
und genau das ist der ounkt, an dem der fehler auftritt, irgendwie wird das zweite objekt nicht an die richtige stelle verschoben...
kann mir da einer weiterhelfen? bin echt ratlos was ich im moment falsch mache...
Des Rätsels Lösung lautet rpos. Allerdings ist der Befehl fehlerhaft, wenn du die Winkel (pitch, yaw & roll) weglässt wird immer von 0 ausgegangen und nicht von der Eigenrotation. Um die zu kriegen muss man self angeben.
Dieses Script hier verschiebt ein Objekt um 20 vorwärts und 5 nach links:
1
2
3
4
2
3
4
on:use 	{ 	rpos "self", 5, 0, -20, "self", "self", "self"; 	}
was nun?