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 2240 241 242339 340 Nächste Zum Anfang

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

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

alt Re: Scripting - Fragen/Probleme

Nova
User Off Offline

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

nmG hat geschrieben
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.)

alt Re: Scripting - Fragen/Probleme

kevin00756
User Off Offline

Zitieren
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

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

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

alt Re: Scripting - Fragen/Probleme

Mc Leaf
Super User Off Offline

Zitieren
nmG hat geschrieben
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"; }
}

alt Re: Scripting - Fragen/Probleme

Tau
User Off Offline

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

alt Re: Scripting - Fragen/Probleme

BBD
User Off Offline

Zitieren
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?

alt Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Zitieren
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

alt Re: Scripting - Fragen/Probleme

BBD
User Off Offline

Zitieren
@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

alt Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Zitieren
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...
		}
	}

alt Re: Scripting - Fragen/Probleme

Tau
User Off Offline

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

alt Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Zitieren
nmG hat geschrieben
Edit: Mist, 3 Minuten schneller!

Muahahaha!


nmG hat geschrieben
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.

alt Re: Scripting - Fragen/Probleme

BBD
User Off Offline

Zitieren
@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
3× editiert, zuletzt 09.01.09 22:17:56

alt Re: Scripting - Fragen/Probleme

Eddy
User Off Offline

Zitieren
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

alt Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

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

alt Re: Scripting - Fragen/Probleme

Westbeam
User Off Offline

Zitieren
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??
Zum Anfang Vorherige 1 2240 241 242339 340 Nächste Zum Anfang
Einloggen, um zu antworten Scripts-ÜbersichtStranded II-ÜbersichtForenübersicht