Forum

> > Stranded II > Scripts > Scripting - Fragen/Probleme
ForenübersichtStranded II-Übersicht Scripts-ÜbersichtEinloggen, um zu antworten

Deutsch Scripting - Fragen/Probleme

6.780 Antworten
Seite
Zum Anfang Vorherige 1 2103 104 105339 340 Nächste Zum Anfang

alt Re: Scripting - Fragen/Probleme

EwokChieftain
User Off Offline

Zitieren
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

alt Re: Scripting - Fragen/Probleme

joki
User Off Offline

Zitieren
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!

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
joki hat geschrieben
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

alt Re: Scripting - Fragen/Probleme

joki
User Off Offline

Zitieren
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?

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
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";
}
}

alt Mein Problem

Gast

Zitieren
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!!!

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
joki hat geschrieben
@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 '
1× editiert, zuletzt 31.08.07 16:23:16

alt Re: Scripting - Fragen/Probleme

joki
User Off Offline

Zitieren
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!
1× editiert, zuletzt 31.08.07 16:47:39

alt Re: Scripting - Fragen/Probleme

Timotheus
User Off Offline

Zitieren
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.

alt Re: Scripting - Fragen/Probleme

Velkorn
User Off Offline

Zitieren
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)

alt Re: Scripting - Fragen/Probleme

AdidasOFC1
BANNED Off Offline

Zitieren
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

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
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
1× editiert, zuletzt 23.09.07 09:53:22

alt Re: Scripting - Fragen/Probleme

Gast

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

ich habs versucht aber bin gescheitert

alt Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Zitieren
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
Zum Anfang Vorherige 1 2103 104 105339 340 Nächste Zum Anfang
Einloggen, um zu antworten Scripts-ÜbersichtStranded II-ÜbersichtForenübersicht