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 298 99 100339 340 Nächste Zum Anfang

alt gast

Gast

Zitieren
Danke bizzl, das war mir ein sehr große Hilfe!
DANKE DANKE DANKE!


Hab schon die nächste Frage, die is aber ein bisschen kompliziert:
Nehmen wir an ich habe ein Adventure mit 3 Maps gemacht.
In der ersten hat der Spieler einige Gebäude freigespielt. Welche das sind, kann ich nicht wissen, das ist von Spiel zu Spiel verschieden.
Ich möchte dass er in der zweiten Map überhaupt nichts mehr bauen kann und blockiere also mit "lockbuildings" alle Gebäude.
Am Ende der 2. Map soll der Spieler dann aber wieder die Gebäude bauen können, die er in der 1. Map freigespielt hat.

Geht das, oder soll ich mir was anderes überlegen?

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
hmmm.....
Also in der ersten Map folgendes zum Wechseln:
1
s2:loadmap [i]"map"[/i],1,1,0,1,1,1;
(man sollte es vermeiden die Variablen mitzuschleppen, könnte fehler in der neuen map produzieren)

in der neuen Map:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
s2:on:start {
	[i]//Leider sind die IDs nicht durchgängig
	//Deswegen (und wegen des fehlens von Arrays)
	//muss alles Eingegeben werden.
	//Für die IDs guckste am besten in die Buildings.inf[/i]
	$buildlock001=s2:locked(1);
	$buildlock002=s2:locked(2);
	...
	$buildlock0[i]XX[/i]=s2:locked([i]XX[/i]);
	s2:lockbuildings;
}

s2:on:releaselocks {
	[i]//Aufruf per s2:event "releaselocks","global"[/i]
	s2:if ($buildlock001) { s2:unlockbuilding 1; }
	s2:if ($buildlock002) { s2:unlockbuilding 2; }
	...
	s2:if ($buildlock0[i]XX[/i]) { s2:unlockbuilding [i]XX[/i]; }
}
XX ist einfach die höchste belegte ID eines gebäudes.

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
Nixblicker hat geschrieben
Danke, aber das verstehe ich nicht ganz:

1
//Aufruf per  event "releaselocks","global"

Du musst diese Zeile ( s2 cmd event "releaselocks","global"; ) in den Script einfügen welcher die Gebäude wieder freischalten soll (zbsp ein Trigger oder sowas, weiß ja net was du vor hast)
Also wenn du die Gebäude zbsp am 3ten Tag um 18:45 freischalten willst, dann setze auf die Map einen Zeittrigger, stell ihn auf die gewünschte Zeit ein und gib ihm folgenden Script
1
2
3
s2:on:trigger {
	s2:event "releaselocks","global";
}

alt Re: Scripting - Fragen/Probleme

Gast

Zitieren
Hm... nee, das funktioniert nicht, am Ende sind dann alle Gebäude baubar, auch, nicht freigespielte...

Ich werd wohl einfach die Reihenfolge der Maps ändern, dann hat sich das Problem auch erledigt.

Danke trotzdem für deine Hilfe bizzl!

alt Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Zitieren
Das kann garnicht gehen weildieser script nur so funktioniert dass er die gesperrten Gebäude freigibt.
In dem Fall muss man das mit der Prüfung vonwegen locked in der ersten Map machen und dann die Variablen mitnehmen. Man kann aber auch skills verwenden die man so eingestellt hat dass sie im charaktermenü nicht angezeigt werden.

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
Da hat sich mir auch wieder mal ein kleiner Fehler eingeschlichen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
s2:on:start {
	[i]//Leider sind die IDs nicht durchgängig
	//Deswegen (und wegen des fehlens von Arrays)
	//muss alles Eingegeben werden.
	//Für die IDs guckste am besten in die Buildings.inf[/i]
	$buildlock001=s2:locked(1);
	$buildlock002=s2:locked(2);
	...
	$buildlock0[i]XX[/i]=s2:locked([i]XX[/i]);
	s2:lockbuildings;
}

s2:on:releaselocks {
	[i]//Aufruf per s2:event "releaselocks","global"[/i]
	s2:if ($buildlock001==0) { s2:unlockbuilding 1; }
	s2:if ($buildlock002==0) { s2:unlockbuilding 2; }
	...
	s2:if ($buildlock0[i]XX[/i]==0) { s2:unlockbuilding [i]XX[/i]; }
}
So ist es richtig.
Ich hatte vergessen das s2 cmd locked bei gesperrten Gebäuden 1 zurückgibt, und das aber im s2 cmd if wie in C als Wahr gewertet wird.
So herum müsste es gehen.

alt Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Zitieren
@bizzl, nope solange das auf der gleichen Karte ist geht es trotzdem nicht weil der ja nur prüft wie es auf dieser Karte aussieht nicht wie es in der vorletzten aussah, da muss man Variablen übertragen.

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
Flying Lizard hat geschrieben
@bizzl, nope solange das auf der gleichen Karte ist geht es trotzdem nicht weil der ja nur prüft wie es auf dieser Karte aussieht nicht wie es in der vorletzten aussah, da muss man Variablen übertragen.

1
loadmap "Map"[,Skills][,Items][,Variablen][,Tagebuch][,States][b][,Buildlocks][/b]
Beseitigt das deine Zweifel?

Es ist keine sonderlich gute Idee Variablen mitzuschleifen, das kann uU zu defekten in den Scripts der folgemap führen...

alt Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Zitieren
er wollte nicht dass die Gebäude auch in der nächsten Map öglich sind, sondern dass dazwischen eien Map ist in der er NICHTS bauen kann, und er erst dann wieder die Gebäude bauen kann.

Oder verstehe ich dich gerade falsch?

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
Nixblicker hat geschrieben
Am Ende der 2. Map soll der Spieler dann aber wieder die Gebäude bauen können, die er in der 1. Map freigespielt hat.

Sieht für mich so aus als wollte er es in der 2ten Map bereits wieder freischalten.

Hast aber recht, wenn es erst in der dritten map sein soll müsste man entweder die Variablen mit durchschleifen oder die gebäude ganz kurz vor dem wechsel von map 2 zu map 3 wieder freischalten (während ner sequenz oder so)

alt Re: Scripting - Fragen/Probleme

Feteo
COMMUNITY BANNED Off Offline

Zitieren
Wenn er so ein Script braucht, dann muss das auch eine gute Karte werden Hoffentlich wird er sie veröffentlichen!

alt Re: Scripting - Fragen/Probleme

eyefish
User Off Offline

Zitieren
Jaaaa! Cool! Jetzt geht's!!!
Danke! IMG:https://i47.photobucket.com/albums/f167/eyefish3/hug.gif


Falls das Dings mal fertig wird, würd' ichs schon ganz gern veröffentlichen... Könnte gut sein - steckt schließlich viel Arbeit und Liebe drin...

PS: Hab ich ja fast vergessen: ich bin Nixblicker, hab mich jetzt nur angemeldet. IMG:https://i47.photobucket.com/albums/f167/eyefish3/biggrin.gif
1× editiert, zuletzt 18.07.07 19:12:16

alt Re: Scripting - Fragen/Probleme

etlam
User Off Offline

Zitieren
Ich habe auch mal eine Frage:
Ich moechte verhindern, dass der Spieler von der Insel runterfaellt.
Kann man das blockieren?
Kann man wenigstens herausbekommen, wie hoch der Player gerade ist?

Vielen Dank schonmal im vorraus,
etlam

alt Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Zitieren
etlam hat geschrieben
Ich habe auch mal eine Frage:
Ich moechte verhindern, dass der Spieler von der Insel runterfaellt.
Kann man das blockieren?
Kann man wenigstens herausbekommen, wie hoch der Player gerade ist?

Vielen Dank schonmal im vorraus,
etlam

Die aktuelle y-Position (Höhe) des spielers kannst du mit s2 cmd gety("unit",1); ermitteln.

Ich weiß aber jetzt nicht wie du das mit dem runterfallen meinst...

alt Re: Scripting - Fragen/Probleme

etlam
User Off Offline

Zitieren
Vielen Dank.
Ich habe naemlich einen "Weg", der recht hoch ueber dem Wasser ist. Auf dem Weg sind Hindernisse.
Jetzt will ich nicht, dass der Spieler einfach runterhuepft und an den Hindernissen vorbeischwimmt.
Ich kann natuerlich machen, dass man verloren hat, wenn ich merke, dass der Spieler zu weit unten ist, aber ich wuerde lieber verhindern, dass er runterfallen kann.
Jetzt habe ich auch noch gemerkt, dass die anderen Einheiten ebenfalls runterfallen, kann man dort auch verhindern, dass diese Units runterfallen?

Vielen Dank schonmal im vorraus,
etlam
Zum Anfang Vorherige 1 298 99 100339 340 Nächste Zum Anfang
Einloggen, um zu antworten Scripts-ÜbersichtStranded II-ÜbersichtForenübersicht