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 2143 144 145339 340 Next To the start

old Re: Scripting - Fragen/Probleme

leinad1123
User Off Offline

Quote
sag mal liest du überhaupt was im Scriptingtutorial steht?!

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

old Re: Scripting - Fragen/Probleme

ohaz
User Off Offline

Quote
ich arbeite derzeit an einer map mit verschiedenen Klimazonen. nun habe ich ein Skript erstellt und wollte mal fragen ob das so funktionieren kann:
1
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;}
edit: das ganze steht im globalen skript!
edited 1×, last 15.04.08 07:38:04 pm

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

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

old Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

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

old Re: Scripting - Fragen/Probleme

ohaz
User Off Offline

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

das ganze oder nur den timer?
edit:
Nova has written
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.
ok habs auf halbminütlich gestellt^^

achja und wegen dem snowratio/rainratio beim letzten... da hab ich das falsche klima hingeschrieben, danke für die aufmerksamkeit

old Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Quote
TheKilledDeath has written
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.

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)

old Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

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

old Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Quote
bei on:load wird die timerschleife aber nach jedem neu laden gestarted, nach 10mal neu laden hast du also 11 Schleifen am laufen, darum 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.

old Re: Scripting - Fragen/Probleme

ohaz
User Off Offline

Quote
1
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;}
Beim Spielen im DebugModus kommt ein Expecting Semicolon fehler, in der fett markierten Zeile des Skripts. Habe schon nachgeschaut, sogar nochmal in der Befehlsreferenz von getx aber nicht herausgefunden wo der Strichpunkt fehlt...

old Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Quote
der fehler ist eigentlich ein anderer: wenn befehle etwas zurückgeben und du mit der rückgabe auch etwas machen willst, musst du um die parameter dieser befehle runde klammern setzen bzw. bei keinen parametern ein leeres paar runde klammern anhängen:
$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

old Re: Scripting - Fragen/Probleme

bizzl
User Off Offline

Quote
KaffeeBohne has written
stimmt der script für setpos?

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
on:load [b]{[/b]
	setpos [b]"object"[/b],1,1,1,1;
}
statt "object",1 gehen auch currentclass(),currentid() oder ganz einfach "self"

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

old Re: Scripting - Fragen/Probleme

Nekros
User Off Offline

Quote
Eine Palme ist keine Einheit, deshalb kann sie doch id==1 haben, soweit ich das weiß
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.

old Re: Scripting - Fragen/Probleme

Feteo
COMMUNITY BANNED Off Offline

Quote
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.
To the start Previous 1 2143 144 145339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview