edit:Was kommt bei Klasse und bei ID nochmal hin?Bin etwas vergesslich
Forum
Stranded II Scripts Scripting - Fragen/Problemeedit:Was kommt bei Klasse und bei ID nochmal hin?Bin etwas vergesslich
Klasse steht für die Klasse des Objektes, also unit, object etc.
und ID steht für die ID-Nummer des Objektes
man kann auch "self" benutzen wenn man das script beim träger ausführt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
timer "0", 300000, 0; on:timer { $xwert = getx "unit",1; $zwert = getz "unit",1;} if ($zwert > 2700) { 	climate 0; 	rainratio 10;} if ($zwert < 2700 && $zwert > -1750) { 	climate 0; 	rainratio 25;} if ($zwert < -2000) { 	climate 1; 	snowratio 70;} if ($xwert < 200 && $zwert < 2700 && $zwert > -1750) { 	climate 0; 	rainratio 60;}
edited 1×, last 15.04.08 07:38:04 pm
Du musst in der letzten If-Abfrage snowratio schreiben. Regen gibt es nicht auf einer Insel mit arktischem Klima.
Willst du wirklich das das Skript nur alle 5 Minuten ausgeführt wird? Meiner Meinung nach zu lang. 1 Min ist ja schon ziemlich hoch.
Nova has written
Wo soll denn der Timer ausgeführt werden? Wenn der Timer überall ausgeführt werden soll nehme "global", die Klasse 0 gibt es afaik nicht.
Doch man muss dann aber auch bei der ID 0 angeben.
Ich würde aber raten keine globalen Timer zu benutzen.
Pack es lieber in eine Flagge, in den Startpunkt oder in ein anderes nicht anderweitig nutzbares Info.
bizzl has written
Ich würde aber raten keine globalen Timer zu benutzen.
Pack es lieber in eine Flagge, in den Startpunkt oder in ein anderes nicht anderweitig nutzbares Info.
Pack es lieber in eine Flagge, in den Startpunkt oder in ein anderes nicht anderweitig nutzbares Info.
das ganze oder nur den timer?
edit:
Nova has written
ok habs auf halbminütlich gestellt^^Willst du wirklich das das Skript nur alle 5 Minuten ausgeführt wird? Meiner Meinung nach zu lang. 1 Min ist ja schon ziemlich hoch.
achja und wegen dem snowratio/rainratio beim letzten... da hab ich das falsche klima hingeschrieben, danke für die aufmerksamkeit
TheKilledDeath has written
das ganze oder nur den timer?
bizzl has written
Ich würde aber raten keine globalen Timer zu benutzen.
Pack es lieber in eine Flagge, in den Startpunkt oder in ein anderes nicht anderweitig nutzbares Info.
Pack es lieber in eine Flagge, in den Startpunkt oder in ein anderes nicht anderweitig nutzbares Info.
das ganze oder nur den timer?
Das Script. Und den Timer starteste fein in on:start, sonst wird bei jedem ausführen ein neuer Erzeugt (ist atm sicher schon so)
TheKilledDeath has written
geht ein on:start befehln nun über das Speichern hinweg? sonst müsste ich doch on:load nehmen!
Nein, aber timer bleiben beim speichern erhalten, du musst ihn also nach dem laden nicht erneut erstellen.
hat immer funktioniert ob on:load/on:start .
@TKD
du solltest dir mal klar amchen wie LANG 30sec in einem Spiel sind, 10-15 sec, nicht mehr würde ich machen. Da ist auch keine so grße Performanclast.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
on:start { timer "0", 10000, 0;} on:timer { [b]$xwert = getx "unit",1;[/b] $zwert = getz "unit",1;} if ($zwert > 2700) { 	climate 0; 	rainratio 10;} if ($zwert < 2700 && $zwert > -1750) { 	climate 0; 	rainratio 25;} if ($zwert < -2000) { 	climate 1; 	snowratio 70;} if ($xwert < 200 && $zwert < 2700 && $zwert > -1750) { 	climate 0; 	rainratio 60;}
$xwert = getx("unit",1);
(ansonsten erkennt Stranded II den Befehl nicht als solchen, und parst das ganze anders, was zu dem fehler führt, den du erhälst)
Das wird auch im Scripting Tutorial erwähnt (sollte man sich unbedingt durchlesen wenn man scripten möchte):
http://www.stranded.unrealsoftware.de/s2_scripting1.php
on:load
setpos "Objekt",1,1,1,1 ;
}
script bei einer Palme ID=1
edit:ich habe die ID umgeändert in 2 und dann standt bei der ganzen Palme N/A, wie soll ich das jetzt richtig kriegen??
KaffeeBohne has written
stimmt der script für setpos?
on:load
setpos "Objekt",1,1,1,1 ;
}
script bei einer Palme ID=1
on:load
setpos "Objekt",1,1,1,1 ;
}
script bei einer Palme ID=1
Die erste geschweifte Klammer fehlt und die Klasse ist falsch geschrieben.
1
2
3
2
3
on:load [b]{[/b] 	setpos [b]"object"[/b],1,1,1,1; }
spf357 has written
eine palme kann nicht die id 1 haben da der spieler immer diese hat.
Unfug. Nur Units beginnen mapseitig bei 100, Objects und Items beginnen bei 1
ist der Spieler eine Einheit und hat bei den Einheiten die idnr 1, da es für jede Klasse eine eigene Id-Liste gibt.
Zum Script kann ich erstaml nur sagen das du mal wieder vergessen hast die "{" zu setzten und mal das Scripting-tutorial zu lesen falls du es noch nicht getan haben solltest, kannst du es hier nachholen:
Klick
Bitte berichtigt mich falls ich falsch liegen sollte.
spf357 has written
eine palme kann nicht die id 1 haben da der spieler immer diese hat.
Wie schon 2-mal gesagt: Unfug. Bei Units fängts wie gesagt mit der 100 an.
Es gibt sicherlich auf jeder Map mehrmals die ID 1, aber unter andere Kategorien, daher: Ein Item mit der ID 1, ein Objekt mit der ID 1, usw. So funktioniert das Prinzip.