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 2253 254 255339 340 Nächste Zum Anfang

alt Re: Scripting - Fragen/Probleme

Wuffelchen
User Off Offline

Zitieren
Danke Nova, des funzelt.
nur
1. sorry, hab vergessen zu sagen, daß ich mich mit der script sprache nicht auskenne. von daher klingt es ein wenig voreingenommen von dir mein script als blöd zu bezeichnen. dieses klingt abweisend und nicht zusprechend.

2. wäre nett, wenn du mir sagen würdest, was ich falsch gemacht habe um es beim nächsten mal eventuell besser machen zu können .
3. bitte eine erklärung zu deinem script.

alt Re: Scripting - Fragen/Probleme

Tau
User Off Offline

Zitieren
Hallo Wuffelchen,
1. Dein Skript finde ich nicht blöd, für das erste Skript überhaupt ist es sogar ziemlich gut!

2. currentclass() und currentid() sind Befehle, die einen Wert zurückgeben. Solche Befehle müssen immer Klammern haben, sonst wird ein Fehler ausgegeben. Es geht auch einfacher mit "self", dann brauchst du die beiden nicht, gibst einfach "self" mit den Häkchen ein und lässt das ID-Parameter weg.
Außerdem fehlt bei dem msg-Befehl in der dritten Zeile am Ende das Semikolon, das muss am Ende jeder Befehlszeile(ohne "{") stehen.
Dann gibt es noch einen inhaltlichen Fehler, on:kill wird afaik erst dann ausgeführt, wenn das object schon tot ist. Hab es nicht ausprobiert, müsste aber so stimmen.

3. Novas Skript ist viel eleganter, es weist dem Object nämlich schon on:start, also beim Starten, den state "unzerstörbar" zu. Es kann also gar nicht mehr zerstört werden! Wenn man es dann schlägt(on:hit), wird sofort darauf hingewiesen, dass es unzerstörbar ist, man erfährt es also sofort und muss nicht erst 2 Minuten sinnlos draufschlagen, bevor die Nachricht angezeigt wird.

alt Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Zitieren
Ich dachte da kommt schon wieder so ein Noob ohne Ahnung, der meint, Scripten zu können. Anscheinend habe ich es aber hier nicht mit einem Idioten zu tun. Tut mir leid wenn ich dich falsch eingeschätzt habe!

Wenn das so ist:
1. Siehe oben.

2. Nach und während des on:kill events ist das Objekt bereits tot, da bringt es nichts ihm noch den Unsterblichkeitsstate zu geben. Des weiteren funktioniert currentid und auch currentclass etwas anders. Du müsstest die als Befehl behandeln.
Ebenso muss jeder Befehl der einen Wert zurück geben soll runde Klammern um seine Parameter haben. Desweiteren kannst du statt
1
addstate currentclass(), currentid(), 17;
auch das hier benutzen:
1
addstate "self", 17;

3.
1
2
3
4
5
6
7
8
9
on:start	// Beim starten der Karte...
     { 
     addstate "self", 17;	// ....wird das Objekt, bei dem das Script...
     }			// ...ausgeführt wird, unverwundbar.

on:hit	// Wenn der Spieler das Objekt schlägt...
     { 
     msg "Das Objekt ist unzerstörbar!", 3, 3000; 
     }		// ...kommt diese Nachricht.

Die Zeilen nach den // sind meine Kommentare zum Script.

Viel Spaß mit dem Script und viel Glück beim Scripten!


Edit: Wenn du möchtest helfe ich dir auch gerne mit weiteren Scripts, du musst nur bescheid sagen!


nmG hat geschrieben
3. Novas Skript ist viel eleganter, [...]

Danke!^^

Leider hat mein Script noch ein Problem: Wenn man es nämlich in eine Palme oder ein Baum packt und der Spieler nur ein paar Blätter oder Äste aus dem Baum haben will, dann wird die Nachricht trotzdem dauernd angezeigt. Das ist etwas nervig.
Sollte jemand also gerne diesen Fehler beseitigt haben, kann ich ihm gerne ein entsprechendes Script geben!

alt Re: Scripting - Fragen/Probleme

Nicolussius
User Off Offline

Zitieren
Ich hab da ne frage.
Wie kann man einem Objekt das während des Spielens erschaffen wird (z.B. durch "create" Befehl) ein Script zuweisen?
Danke im voraus

alt Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Zitieren
Du kriegst ja, wenn du den s2 cmd Create-Befehl mit runden Klammern um die Parameter benutzt, die ID des erstellten Objektes zurückgeliefert. Speicher die in eine Variable und benutze die dann mit dem s2 cmd addscript Befehl.

alt Re: Scripting - Fragen/Probleme

SAB
User Off Offline

Zitieren
Ich hab auch ne frage:
wenn ich 2 units gegeneinander kämpfen lassen will, welchen script muss ich da benutzen? oder geht das garnicht?

alt Re: Scripting - Fragen/Probleme

Wuffelchen
User Off Offline

Zitieren
dank nochmal nmg und Nova
und ja, in der tat werde ich noch viel hilfe gebrauchen können.

und wegen deines scriptes Nova...

nur ne idee..
kann man da nicht parameter einbauen, die das abschlagen von blättern und bäumen trotzdem möglich macht ?

so nach dem motto abschlagen darfste aber nicht kaputt machen

alt Re: Scripting - Fragen/Probleme

Westbeam
User Off Offline

Zitieren
@SAB
nein, mak kann (meines wissens) keine units gegeneinander kämpfen lassen, oder du machst folgendes:
du machst 2 trigger, dort gibts du ein, das pfeile in eine bestimmte richtung schießen.(in die richtung des anderen triggers). du stellst in die mitte jedes triggers einen menschen. wenn du die map startest, siehst du: es sieht so aus, als würden die menschen aufeinander schiessen. dann gibts du noch ein(bei den menschen):
1
2
3
on:kill {
stoptrigger ID;
}

alt Re: Scripting - Fragen/Probleme

Nicolussius
User Off Offline

Zitieren
Ich habe ein neues Problem. Ich möchte dass, wenn ich dreimal geschlafen habe eine Tagebuchnachricht erscheint. Ich habe dazu folgendes Script:

1
2
3
4
5
on:sleep {$slept++;
}
on:load {
if ($slept=3) {diary "(Titel des Eintrags","(ID des Textcontainers";}
}

PS Danke nochmal für die hilfe für die andere Frage.

alt Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Zitieren
Nicolussius hat geschrieben
Ich habe ein neues Problem. Ich möchte dass, wenn ich dreimal geschlafen habe eine Tagebuchnachricht erscheint. Ich habe dazu folgendes Script:
1
...

Das Problem im Script ist das on:load. Pack das Script aus dem on:load in das on:sleep. Teste es dann nochmal.
Sollte es immer noch nicht klappen sag bescheid!



Wuffelchen hat geschrieben
nur ne idee..
kann man da nicht parameter einbauen, die das abschlagen von blättern und bäumen trotzdem möglich macht ?

so nach dem motto abschlagen darfste aber nicht kaputt machen

Das funktioniert auch jetzt schon, das Problem ist nur die Übersichtlichkeit.
Hier ein Beispiel:
IMG:https://s10b.directupload.net/images/user/090316/temp/bg66wzaj.png
1× editiert, zuletzt 16.03.09 17:29:41

alt Re: Scripting - Fragen/Probleme

Westbeam
User Off Offline

Zitieren
was genau ist das problem, wenn ich darf würd ich dir empfehlen das zu schreiben:
1
2
3
4
5
on:changeday {
$slept++
if {$slept==3} 
{diary "...","...";
}

EDIT: Nova war schneller
1× editiert, zuletzt 16.03.09 17:29:34

alt Re: Scripting - Fragen/Probleme

Nicolussius
User Off Offline

Zitieren
Also das Problem ist dass der Eintrag nicht erscheint und mit dem Tipp von Nova erscheint der Eintrag gleich nach dem ersten schlafen. Hier ist der neue Script nur um zu schauen ob ich es richtig umgesetzt habe was Nova meint.
1
2
on:sleep {$slept++;if ($slept=3) {diary "(Titel)","(ID)";}
}
1× editiert, zuletzt 16.03.09 17:33:41

alt Re: Scripting - Fragen/Probleme

Westbeam
User Off Offline

Zitieren
erscheint er denn jetzt?
wenn nicht mach mal das:
1
2
3
4
5
6
7
8
...
{diary "buch";}
}

on:buch {
add "Text";
diary "Tagebucheintrag";
}

alt Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Zitieren
Das ist äußerst unwahrscheinlich. Kopiere dieses Script in das globale Script, nachdem du die [ID] durch die ID des Textcontainers mit deinem Diary ersetzt hast und warte mehrere Tage (besser zuviel als zuwenig). Das Tagebuch dürfte sich mit deinem Text öffnen:

1
2
3
4
5
6
7
8
9
on:changeday
	{
	$tage++;

	if ($tage == 3)
		{
		diary "Drei Tage auf der Insel.", [ID];
		}
	}



Ein Hinweiß an alle!
Zahlen werden nicht in Anführungsstriche gesetzt!

× diary "Hallo", "1";
√ diary "Hallo", 1;


Noch ein Hinweiß an alle!
Wenn ihr einer Variable einen Wert zuweißt, benutzt ihr ein Gleichheitszeichen.
Wenn ihr mit s2 cmd if einen Wert vergleichen wollt, benutzt ihr zwei Gleichheitszeichen.

× $variable == 1;
√ $variable = 1;

× if ($variable = 1)
√ if ($variable == 1)
1× editiert, zuletzt 16.03.09 17:36:45

alt Re: Scripting - Fragen/Probleme

Nicolussius
User Off Offline

Zitieren
Ich habe mehrere Tage gewartet und der Eintrag ist immer noch nicht erschienen.
Ich habe auch mit dem Execute Script Cheat den $tage Wert überprüft.
Zum Anfang Vorherige 1 2253 254 255339 340 Nächste Zum Anfang
Einloggen, um zu antworten Scripts-ÜbersichtStranded II-ÜbersichtForenübersicht