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 2103 104 105339 340 Next To the start

old Re: Scripting - Fragen/Probleme

EwokChieftain
User Off Offline

Quote
Und
6. Wenn du etwas machen willst und nicht weißt wie, aber sowas in der Kampagne oder sonstwo vorkam: spicken!
Ich hatte z.B. keine Ahnung, und da komme ich zu deiner Frage von wegen Übergabe einer Landkarte, wie ich dem Spieler Items aus dem Nichts geben soll, und hab mir einfach den Code dafür von DC entliehen

old Re: Scripting - Fragen/Probleme

joki
User Off Offline

Quote
ICh möchte machen das wenn ich ein item benutzte das dann eine bestimmte Musik kommt und wenn ich es nochmals (während das andere Lied noch spielt) es benutzte dann soll das erste Lied ausgehen und ein anderes an und das mit 3 Liedern!

Aber ich weiß den Script dafür nicht!

old Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Quote
joki has written
ICh möchte machen das wenn ich ein item benutzte das dann eine bestimmte Musik kommt und wenn ich es nochmals (während das andere Lied noch spielt) es benutzte dann soll das erste Lied ausgehen und ein anderes an und das mit 3 Liedern!

Aber ich weiß den Script dafür nicht!

Die auswahl der 3 lieder kannste per s2 cmd random und if-elseif-else lösen.
Musik geht mit s2 cmd music . Das zu nutzende Event ist on:use

old Re: Scripting - Fragen/Probleme

joki
User Off Offline

Quote
IC habs versucht aber bei mir spielt erst das erste Lied und dann wenn ich es nochmals benutzte spielt das zweite Lied gleich darauf und das erste spielt dann immer noch (also beide Lieder im Canon)

Hier ist mein Script:

on:use {
if (random(3)==1) {
play "Lied1.mp3";
} else {
play "Lied2.mp3";
} else {
play "Lied3.mp3";
}
}

Kann mir jemand sagen was ich falsch gemacht habe?

old Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Quote
füge mal for jedes s2 cmd play noch s2 cmd stopsounds

1
2
3
4
5
6
7
8
9
10
11
12
on:use {
if (random(3)==1) {
stopsounds;
play "Lied1.mp3";
} else {
stopsounds;
play "Lied2.mp3";
} else {
stopsounds;
play "Lied3.mp3";
}
}

old Mein Problem

Guest

Quote
Hallo!

Kann mir jemand sagen wie ich eine eigene Map
mit mit Tagebucheintraege wie z.B:

Ich sitze schon seit 20 Tagen in der "Langweileninsel"
Heute moecht ich nach Westen segeln, weil dort ein alter Mann lebt, der mir eine Flaschenpost hinterlassen hat...

und dann will ich noch ein Dialog erstellen mit dem alten Mann dass er mir (der Spieler halt) dann eine Karte gibt, mit dem wo meine Insel und was andere Inseln sind.

Dann soll noch sowas kommen, das mich dieser Mann verarscht und mich fast in den Tod geschickt haette.

Der Schluss des maps soll damit aufhoeren, das ich ihn anschreie und dann erschiesse!

Ende

Klickt nicht auf das Hier Klicken! Link!!!

old Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Quote
joki has written
@bizzl
Bei mir spielt es aber immer das selbe Lied neu und die anderen gar nicht!

Ja, mir fällt grade ein zweiter fehler auf. Zweimal else geht nicht. das erste müsste elseif sein:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
on:use {
	$tmp=random(1,3);
	if ($tmp==1) {
		stopsounds;
		play "Lied1.mp3";
	} elseif ($tmp==2) {
		stopsounds;
		play "Lied2.mp3";
	} else {
		stopsounds;
		play "Lied3.mp3";
	}
	freevar $tmp;
}

kürzer Ginge es vllt so:
1
2
3
4
5
6
7
on:use {
	$tmp=random(1,3);
	$tmp=join("Lied",$tmp,".mp3");
	stopsounds;
	play $tmp;
	freevar $tmp;
}

EDIT: S2S benutzt ja nur " und keine '
edited 1×, last 31.08.07 04:23:16 pm

old Re: Scripting - Fragen/Probleme

joki
User Off Offline

Quote
Irgendwie spielt das immer noch das selbe Lied andauernd!
Und die kürzere Version spielt überhaupt kein Lied!



@EDIT von bizzl:
Wir reden hier aber nicht von Stranded2Season!
edited 1×, last 31.08.07 04:47:39 pm

old Re: Scripting - Fragen/Probleme

Timotheus
User Off Offline

Quote
So wie ich das sehe Joki, willst du ja eine Art "Musik-Box" haben.
Erst mal brauchst du dazu natürlich mal ein Objekt das die "Box" darstellt. Wenn du keine Musik-Box erstellt hast, nimm einfach ein Schild oder so. Dann setzt du folgenden Script ins Schild:

1
2
3
4
5
6
7
8
9
10
11
on:start {
$music=0;
}
/* Weil ich nicht weiß, welchen Wert $music Anfangs hat.

on:use {
$music++;
if ($music==1) {
stopmusic;
music "Lied1";
}

Dort dann weitermachen mit if (music==2) usw. Wenn es bei 4 wieder von vorne anfangen soll:

(if ($music==4) {
stopmusic;
$music=0;
}


Ich hoffe ich hab keinen Fehler drin und konnte dir helfen.
Testen konnte ich es grad nicht, weil ich wegmuss und auch für 1 Woche wegbleibe.

Grüße
Timotheus

Edit: Vergiss nicht, dass die on:use { Klammer auch wieder zu gehen muss am Ende.

old Re: Scripting - Fragen/Probleme

Velkorn
User Off Offline

Quote
Gibt es eine möglichkeit, zwischen Map1 und Map2 zu wechseln und dann zurück zu Map1, aber so, dass Map1 genauso wie vor dem wechsel zu Map2 aussieht? (d.h. dass alle Items und Objekte genau dort sind, wo ich sie vor dem Wechsel zu Map2 gelassen habe und das zerstörte Objekte nicht wieder da sind)

old Re: Scripting - Fragen/Probleme

AdidasOFC1
BANNED Off Offline

Quote
ich habe mich damit nicht genauer beschäftigt, aber ich gebe mal einen lösungsansatz (schau in der befehlsreferenz auf stranded.unrealsoftware.de nach):

Du musst die erste Map beim Verlassen irgendwo speichern. Wenn du dann wieder zurückgehst lädst du dann halt nicht map01, sondern die abgespeicherte.

Wenns dafür keinen Befehl gibt, wende dich mal an dc

old Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Quote
müsste so gehen:

1te Map (irgendwo in ein Info, ist sauberer als im Mapscript)
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
31
32
//Erzeugt einen möglichst eindeutigen String für
//das Cache-Verzeichnis
on:mkcachestring {
	local $alphabet,$length,$buffer,$result;
	global $cacheDir;
	$alphabet="4bcdefghijklmn0pqrstuvwyz";
	$length=length($alphabet);
	$result="";
	loop("count",5) {
		$buffer=random(1,$length);
		$buffer=extract($alphabet,$buffer,1);
		$result=join($result,$buffer);
	}
	$cacheDir=join("cache\clonkadv\",$result);
	freevar $alphabet,$length,$buffer,$result;
}

on:wantchangeM02 {
	if (fileexists($cacheDir)==0) { mkdir $cacheDir; }
	$tmp=join($cacheDir,"\map01.s2");
	savemap $tmp,1,1,1,1,1,1;
	$tmp=join($cacheDir,"\map02.s2");
	if (fileexists($tmp)==1) {
		loadmap $tmp,1,1,1,1,1,1;
	} else {
		loadmap "maps\clonkadv\map02.s2",1,1,1,1,1,1;
	}
}

on:start {
	event "mkcachestring";
}

2te Map (auch in irgendein info)
1
2
3
4
5
6
7
8
9
10
11
on:wantchangeM01 {
	if (fileexists($cacheDir)==0) { mkdir $cacheDir; }
	$tmp=join($cacheDir,"\map02.s2");
	savemap $tmp,1,1,1,1,1,1;
	$tmp=join($cacheDir,"\map01.s2");
	if (fileexists($tmp)==1) {
		loadmap $tmp,1,1,1,1,1,1;
	} else {
		loadmap "maps\clonkadv\map01.s2",1,1,1,1,1,1;
	}
}

Ungetestet, es sollte aber funzen sofern du immer schön den Cache-String mit durchgibst. Der muss sein damit mehrere Spielstände für deine Maps erzeugt werden können.

Edit: kleine änderung, um von vornherein or und and im chachestring zu verhindern
edited 1×, last 23.09.07 09:53:22 am

old Re: Scripting - Fragen/Probleme

Guest

Quote
hallo, wie kann ich den sperr in ordner vererndern das
er mit den 2 maustaste nahkampf attacke macht

ich habs versucht aber bin gescheitert

old Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Quote
ich würds so machen: linke Maustaste Nahkampf (das kann man durch einfache änderung der definition ereichen, das behaviour "spear" durch "blade" ersetzen)
rechte Maustaste wurf, dafür nimmst du den Befehl s2 cmd projectile
To the start Previous 1 2103 104 105339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview