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 2240 241 242339 340 Next To the start

old Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Quote
richtig, so wie es bei loop steht ist es auch. auf keinen fall schleifen verschachteln. das wird nicht richtig funktionieren. kA was passiert, aber bestimmt nicht das was man will.

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Wird es denn irgendwann vielleicht möglich sein Schleifen zu verschachteln?

nmG has written
Was passiert denn, wenn man über loop ein event aufruft, welches dann erneut eine loop-Schleife ausführt?

Zuerst wird die eine und dann die anderen Schleife abgearbeitet. (Vermute ich jedenfalls, wäre logisch.)

old Re: Scripting - Fragen/Probleme

kevin00756
User Off Offline

Quote
wie kann man machen bei den Einheiten dass man da z.b,fleisch begommt wenn er tot ist.Ich weis ich muss bei Stranded II\sys\units und dann weis ich denn Script um es zu machen

old Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Quote
einfacher gehts per definition. falls du denn ne mod machst:
in der units.inf bei der entsprechenden unit per loot=TYP-ID,MENGE

wobei du TYP-ID durch die ID des Itemtyps ersetzen musst und MENGE durch die Anzahl. Du kannst Menge auch weglassen, dann wird 1 Item erzeugt.

old Re: Scripting - Fragen/Probleme

Mc Leaf
Super User Off Offline

Quote
nmG has written
Was passiert denn, wenn man über loop ein event aufruft, welches dann erneut eine loop-Schleife ausführt?

Probiere es doch aus!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
on:start {
	local $i,$j;
	loop("count",5) {
		$i++;
		msg "Schleife 1: $i";
		event "blub";
	}
	msg "Juhu, geschachtelte Schleifen!";
}

on:blub {
	$j=0;
	loop("count",5) {
		$j++;
		msg "Schleife 2: $j";
	}
}
(oder so)

Dass die Nachricht ("Juhu...") noch vor den anderen Schleifen (event blub) ausgeführt wird, zeigt bspw. dass es sich hier nicht wirklich um geschachtelte Schleifen handelt.

Der Ansatz ist von nmG aber trotzdem schon ganz gut und mit ein paar Überlegungen und Tricks kann man tatsächlich ein paar geschachtelte Schleifen realisieren. Es ist halt nur nicht möglich den loop-Befehl innerhalb eines loop-Befehls zu verwenden - was aber nicht die prinzipielle Möglichkeit geschachtelter Schleifen ausschließt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
on:start {
	local $i,$j;
	event "event1";
}

//äußere Schleife
on:event1 {
	$j=0;
	$i++;
	//innere Schleife
	loop("count",5) {
		$j++;
		msg "$i $j";
	}
	//Abbruchbedingung äußere Schleife
	if ($i<5) { event "event1"; }
}

old Re: Scripting - Fragen/Probleme

Tau
User Off Offline

Quote
Geniale Idee, Mc Leaf!
Was uns wieder zum Ausgangspunkt, also Texturieren aller Felsen, zurückführt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
on:start{
     local $i,$id;
     $i=62;
     event "event1";
}

//äußere Schleife
on:event1 {
     $i++;
     //innere Schleife
     loop("objects",$i) {
          $id = loop_id();
          texture "maps/Deine Map/textur.png", "objects", $id;
     }
     //Abbruchbedingung äußere Schleife
     if ($i<75) { event "event1"; }
     else{ freevar $i, $id;}
}

Auch wenn du's wahrscheinlich schon anders zum Laufen gebracht hast, bunnyhop.

old Re: Scripting - Fragen/Probleme

BBD
User Off Offline

Quote
Hab das mal mit def_free ausprobiert aber das geht nicht
habe den Script global hinzugefügt und auch beim object/unit
kann mir jemand sagen warum?

old Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Quote
Natürlich kann ich das. Augenblick, ich werfe kurz einen Blick in meinen Magischen Spiegel, der mir deine Scripts zeigt.

..Hmm, das ist interesant, jetzt weiß ich durch meine tollen magischen, psychotischen, hellseherischen Fähigkeiten den Fehler, hab aber durch dich 500 Gehirnzellen verloren.
Das wäre ein Preis von 0.50¤ pro Hirnzelle. Nach überweisung werd ich dir den Fehler sagen.
Überweisungsinformationen findest du auf www.lizardsiehteurescripts.de

old Re: Scripting - Fragen/Probleme

BBD
User Off Offline

Quote
@Flying Lizard
1
2
3
on:load {
def_free "unit", 220;
}


Ach noch was wenn ich schon dabei bin zu schreiben, da hätte ich noch folgendes Problem ich habe eine Einheit mittels > create erzeugt und die id in eine Variable gespeichert.
Dann habe ich noch einen Mann gemacht der mir befiehlt die Einheit zu töten und durch if Abfrage mit dem Befehl kill habe ich das gemacht ich habe in die If: if (kill $new){
geschrieben aber wenn ich die unit töte kommt trotzdem der else Zweig warum

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Das kommt weil es das nicht gibt.

Falsches Script:
1
2
3
4
5
6
7
on:use
	{
	if (kill $new)
		{
		// tu was...
		}
	}

> Wenn ein Befehl ein Ergebnis zurück liefern soll, müssen seine Parameter in Klammern gesetzt werden.

Besser, aber immer noch falsch:
1
2
3
4
5
6
7
on:use
	{
	if ( kill ($new) )
		{
		// tu was...
		}
	}

> kill tötet eine Einheit, es überprüft nicht ob eine Einheit lebt. Nehm s2 cmd lives!

Noch falsch:
1
2
3
4
5
6
7
on:use
	{
	if (lives ("unit", $new))
		{
		// tu was...
		}
	}

> Dann musst du auch überprüfen ob der zurückgelieferte Wert auch 1 ist.

Endlich richtig:
1
2
3
4
5
6
7
on:use
	{
	if (lives ("unit", $new) == 1)
		{
		// tu was...
		}
	}

old Re: Scripting - Fragen/Probleme

Tau
User Off Offline

Quote
s2 cmd kill hat keinen Rückgabewert. Du kannst das mit s2 cmd lives ("unit", $new) machen. Ich persönlich würde das anders machen, aber so müsste es auch gehen.
Edit: Mist, 3 Minuten schneller! Ich frage mich gerade, ob die Methode auch 100%ig sicher ist, es könnte ja über Nacht oder wenn der Spieler einen Schmetterling freilässt, die ID der (toten und verwesten) Einheit wieder neu belegt werden.

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
nmG has written
Edit: Mist, 3 Minuten schneller!

Muahahaha!


nmG has written
Ich frage mich gerade, ob die Methode auch 100%ig sicher ist, es könnte ja über Nacht oder wenn der Spieler einen Schmetterling freilässt, die ID der (toten und verwesten) Einheit wieder neu belegt werden.

Das könnte man umgehen, indem man die ID, wenn die Unit stirbt, auf 0 setzt. Dann überprüft man ob die ID 0 ist. Jetzt braucht man auch nicht mehr überprüfen ob die Unit lebt. Wenn sie es tut, ist die ID ja über 0.

old Re: Scripting - Fragen/Probleme

BBD
User Off Offline

Quote
@Nova, nmG

Danke

Edit:
Schon wieder mal ein Problem aufgetreten, hoffentlich kann mir jemand dabei helfen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
on:use
      {
      $tag++
      if ($tag==5)
                {
                terraintexture "generate:snow";
                climate "snow";
                }
      if ($tag==10)
                {
                terraintexture "maps\Taiwai\Taiwai Island 2";
                climate "normal";
                $tag=0;
                }
      }

Warum geht das mit dem ([terraintexture "maps\Taiwai\Taiwai Island 2";] nicht mit generate gehts aber bei dem gehts nur einmal dann nicht mehr?
Bitte um Hilfe

Edit: Wie bringt man eine Unit zum stehen wenn sie im unitpath drinen ist und dann wieder weiter geht
edited 3×, last 09.01.09 10:17:56 pm

old Re: Scripting - Fragen/Probleme

Eddy
User Off Offline

Quote
Hallo ich wollt mal wissen welchen script ich benutzen soll, wen ich will das wen ich einen Hebel benutze, dan eine wand verschwindet und beim 2ten mal sie wieder auftaucht?

P.S.Wen es keinem was ausmacht bitte mit einem beispiel!
div Eddy

old Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Quote
sry, scripte bestellen gibts hier nicht. Wir helfen dir aber gerne beim erstellen des Scriptes.

Denk mal selber anch, du brauchst vorallem einen Schalter derangibt wie der status ist, offen oder geschlossen. Dafür brauchst du nur eine Variable die von 0 auf 1 und wieder zurück gesetzt wird (natürlich beim benutzen) Je nachdem welchen Wert die Variable hat, must du dann das Object erstellen oder löschen. Allerdings würde ich es überhaupt nicht löschen, sondern einfach mit s2 cmd setpos im Boden versenken.

old Re: Scripting - Fragen/Probleme

Westbeam
User Off Offline

Quote
1
2
3
on:use {
free "object" [,ID des objekts];
}

das müsste klappen
so wird die wand verschwinden, den script musst du an den hebel machen
@Flying Lizard
wieso nicht? ich dachte eine community wäre da um anderen zu helfen??
To the start Previous 1 2240 241 242339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview