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 2216 217 218339 340 Next To the start

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
Nova has written
@hurri04: Guck einmal nach wie oft der Trigger in der Abenteuermap und einmal wie oft der Trigger in deiner Map pro Sekunde aktiviert wird. Stelle die Zahl einfach höher wenn das Verschwinden des Blureffekts dir zu schnell geht.

Du kannst auch mit einem s2 cmd Timer arbeiten wenn du genauere Zahlen verwenden willst.


laut den angaben wird der alle 10 sek ausgelöst, hab das auch bei mir übernommen, aber trotzdem erscheint mir der effekt schneller vorbei zu sein...
das mit der zahl höher stellen hab ich auch schon versucht, aber dann startet der trigger noch später (also erst nach 20 sek z.B., obwohl ich den on:start gesetzt hab...)


hab jetzt noch nen problem festgestellt:
wenn ich in das gebiet eines area-triggers laufe, wo der trigger dann einen tagebucheintrag auslöst, geschieht das zwar, aber dafür scheinbar dauernd, d.h. sobald ich das tagebuch wieder schließe kommt (fast sofort danach) direkt der selbe eintrag nochmal und nochmal und....

-->mussich hier eine variable setzten, die prüft, ob der tagebucheintrag bereits existiert und wenn ja keinen neuen erstellt?

old Re: Scripting - Fragen/Probleme

humer
User Off Offline

Quote
Du kannst den Trigger auch einfach nach dem ersten auslösen, mit s2 cmd stoptrigger oder s2 cmd free beenden bzw. ganz entfernen, dann wird er nicht ausgelöst. Oder du machst es mit na "if-Bedingung" und einer Variablen.

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
humer has written
Oder du machst es mit na "if-Bedingung" und einer Variablen.

hab ich ja gemeint:
Hurri04 has written
-->muss ich hier eine variable setzten, die prüft, ob der tagebucheintrag bereits existiert und wenn ja keinen neuen erstellt?


mit free hab ich auch schon probiert, aber dann wird der trigger garnicht mehr gestartet...

gibts eig ein script, dass den boden weiß färbt, so wie in der zufallsmap beim schnee? hab da so ne idee mit nem jahreszeitenwechsel...

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Ähm, denk mal bitte darüber nach was bei on:start in deinem Script des Timers steht. Richtig, dort wird eine Variable auf 9 gesetzt. Lustiger weise nur die Variable, allerdings nicht der Blureffekt. Du hast dort den s2 cmd blur Befehl vergessen.

Per Script kann man soweit ich weiß keine einzelnen Bodenstellen färben, bin mir da aber nicht sicher.

old Re: Scripting - Fragen/Probleme

Mc Leaf
Super User Off Offline

Quote
Nova has written
Per Script kann man soweit ich weiß keine einzelnen Bodenstellen färben, bin mir da aber nicht sicher.

Nein, geht nicht.

Hurri04 has written
gibts eig ein script, dass den boden weiß färbt, so wie in der zufallsmap beim schnee? hab da so ne idee mit nem jahreszeitenwechsel...

Ja, haben wir alle...

Aber schau dir mal den Befehl s2 cmd terraintexture an.
Beim PenguinAdventure hatte ich bspw. die Colormap in ca. 20 Ausführungen abgespeichert. Da gibt es im Editor so ein Tool bei Colormap - 'aufhellen' oder so. Da stellst du am besten vorher Alpha auf 10 oder so und machst die komplette Colormap sukzessive heller und speicherst sie ab (durchnummeriert von colormap1-colormap20 bspw.). Damit hast du einen groben Übergang von Sommer nach Winter. Dann kannst du bspw. per Timer alle paar Sekunden eine Variable erhöhen - bspw. $tmp von 1 bis 20 - und lädst dann die entsprechende Colormap einfach per
1
2
3
4
on:timer {
	$tmp++;
	terraintexture "maps\meine_map\colormap$tmp.bmp"
}
(und sparst dir auch gleich 20 if-Anweisungen :))
Umgekehrt kannst du dann einen Übergang von Winter nach Sommer simulieren indem du dann die Variable mit 20 initalisierst und sukzessive verringerst.

Ansonsten könntest du noch etwas mit dem generate-Parameter bei s2 cmd terraintexture herumspielen, was aber blöde ist, falls du bspw. auf der Colormap Wege etc. separat farbig eingezeichnet hast.

CineRuSS has written
Suche immer noch nen handels Script sogesagt postet den...

es soll die ID 20 10X kosten und kaufen 10X die 1

Du suchst ein Copy'n'Paste-Skript...? Vergiss es...

Aber der Befehl den du benötigst ist s2 cmd dialogue. Das Dialogskript selbst muss sich dann in einer Datei oder in einem Textcontainer befinden und der entsprechende Pfad bzw. die ID des Textcontainers bei s2 cmd dialogue angegeben werden.

Im Dialogskript selbst brauchst du dann halt irgendwo eine Seite mit dem Handelsmenü, etwa
1
2
3
4
5
6
page=trade
title=Handeln
trade=start
sell=20,10
buy=1,10
trade=end
müsste das wohl sein...

Weiß grad nicht welche Items hier gehandelt werden, aber wenn ich dich richtig verstehe, sollen hier 10 Items des einen Typs gegen 10 Items eines anderen Typs getauscht werden. Da könntest du auch gleich noch etwas herumexperimentieren und gucken, ob du nicht sowas wie einen "1 gegen 1"- sowie "100 gegen 100"-Handel hinkriegst...
edited 2×, last 07.10.08 11:48:37 pm

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
@ MC Leaf:
naja, ich glaub 20 colormaps wären in meinem falle unnötig, ich will nämlich so eine art zeit-portal einbauen und da bräuchte ich ja nur 2 maps...
werd das mit den alpha werten mal ausprobieren.

hab allerdings (wieder mal) nen paar neue fragen:

1.wie baut man einen return-befehl richtig ein und wo werden die werte dann ausgegeben, bzw. wie kann ich die dann in ner variablen abspeichern?
geht da einfach:
1
2
3
on:use {
	getweather=$varweather0;
}
?

2.gibt es einen befehl, der eine (oder mehrere) bestimmte scriptzeilen editiert, bzw. löscht?

danke schon mal im vorraus

mfg Hurri04

Edit: @nova:
hab das script genau so aus dem adventure übernommen...
edited 1×, last 08.10.08 03:04:12 pm

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
1.
× Befehl = $variable
√ $variable = befehl();

Also: $wetter = getweather();
Tipps dabei: Variablen haben immer ein Dollar-Zeichen am Anfang ($).
Tipp zwei: Befehle die einen Wert zurückgeben sollen brauchen um die Parameter runde Klammern (). Wenn der Befehl keine Parameter hat wird einfach ein Paar runde Klammern angehängt. Wie bei dem s2 cmd getweather-Befehl.
Tipp drei: Nach einem Befehl immer ein Semikolon (;).

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
gut, danke

hab jetzt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
on:trigger {
	if ($varclimate=0) {
		$varclimate=1;
		climate "1";
		snowratio 90;
		weather "2";
	} elseif ($varclimate=1) {
		$varweather1=getweather();
		$varclimate=0;
		climate "0";
		snowratio 2;
		weather "$varweather0";
	}
}

der trigger ist ein gebietstrigger, $varclimate ist eine info für dn trigger, ob nun sommer oder winter ist (also in was die jahreszeit bei benutzen des zeit-portals geändert werden soll) und $varweather ist eine variable um das aktuelle wetter der jahreszeit beim "zeitsprung" zu speichern

(0 steht bei climate und weather für sommer, 1 für winter)

allerdings müsste hinter weather "$varweather0"; (letzte zeile) noch ein befehl kommen, der aus weather "2"; (vor elseif) ein weather=$varweather1; macht und sich danach selbst löscht. ist sowas möglich?

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Hurri04 has written
1
2
3
4
5
6
7
8
9
10
11
12
13
14
on:trigger {
	if ($varclimate=0) {		// Falsch. Bei if-abfragen zwei =
		$varclimate=1;
		climate "1";		// Falsch. Zahlen nicht mit " umschließen
		snowratio 90;		// Hier hast du es richtig.
		weather "2";		// Hier wieder falsch.
	} elseif ($varclimate=1) {		//  == benutzen
		$varweather1=getweather();		// Was soll die 1?
		$varclimate=0;
		climate "0";
		snowratio 2;
		weather "$varweather0";		// Bei Variablen brauchst du keine " benutzen. Und was soll die 0?
	}
}

Ich habe ein paar Kommentare zu deinem Script gegeben. (Das Zeugs nach den "//" )

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
das mit 0 und 1 hab ich ja geschrieben:
$varclimate0 = klima im sommer
$varclimate1 = klima im winter
$varweather0 = wetter im sommer
$varweather1 = wetter im winter

hab die sachen geändert

bräuchte jetzt nur noch einen befehl um die scriptzeilen zu verändern/löschen, denn $varweather1=getweather();
wird ja erst ausgeführt, wenn man vonm winter wieder in den sommer zuückgeht, also wird die variable da ja erst angelegt, so dass weather 2; in weather $varweather1 umgewandelt werden kann, damitsich im winter nicht immer das wetter direkt ändert (chance auf schnee =[nur]90%)


Edit:
habs mal getestet, funktioniert, super! (hab das script zwar on:use auf ne palme direkt neben dem start gelegt, damit ich nicht immer so weit laufen muss, aber es funktioniert!

zu dem script-editieren-befehl:
ein befehl, der das vorhandene script gegen ein anderes austauscht (z.B. aus einem textcontainer) würde auch schon reichen...gibts so einen?

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
danke, werds mal damit versuchen!

ich hab jetzt einfach bei einer palme das scipt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
on:use {
	if ($varclimate==0) {
		$varclimate=1;
		climate 1;
		snowratio 90;
		weather 2;
	} elseif ($varclimate==1) {
		$varweather1=getweather();
		$varclimate=0;
		climate 0;
		snowratio 2;
		weather $varweather0;
	}
}
eingefügt.

hab jetzt ne wetterpalme

Edit:
ich füg da jetzt noch die freescript und addscript sachen hinzu und mach das dann noch mit der lightmap und schon spring ich mit der palme ein halbes jehr in der zeit zurück (das kommt nachher natürlich noch auf den trigger bei einen von diesen steinbögen, also die wie beim stonehenge, nur halt die allein stehenden)

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
der befehl addscript schreint auch nicht so recht zu funktionieren...zwischenzeitig funktionierte mein script grade nicht mehr, habs aber zum glück wieder repariert bekommen

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
1
2
3
4
5
6
7
8
9
10
11
on:start
	{
	$id1 = create("info", 30, 0, 0);
	$id2 = create("info", 30, 200, 200);
	seqstart 1, 1;
	cammode 0, 2;
	setcam 0, $id1;
	movecam 0, 5000, $id2;
	movecam 7500, 10000, $id1;
	seqend 12500;
	}
Funktioniert bei mir einwandfrei.:)

Mal ne Frage, welches Info willst du denn erstellen?
To the start Previous 1 2216 217 218339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview