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 2253 254 255339 340 Next To the start

old Re: Scripting - Fragen/Probleme

Wuffelchen
User Off Offline

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

old Re: Scripting - Fragen/Probleme

Tau
User Off Offline

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

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
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 has written
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!

old Re: Scripting - Fragen/Probleme

Nicolussius
User Off Offline

Quote
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

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

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

old Re: Scripting - Fragen/Probleme

SAB
User Off Offline

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

old Re: Scripting - Fragen/Probleme

Wuffelchen
User Off Offline

Quote
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

old Re: Scripting - Fragen/Probleme

Westbeam
User Off Offline

Quote
@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;
}

old Re: Scripting - Fragen/Probleme

Nicolussius
User Off Offline

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

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Nicolussius has written
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 has written
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
edited 1×, last 16.03.09 05:29:41 pm

old Re: Scripting - Fragen/Probleme

Westbeam
User Off Offline

Quote
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
edited 1×, last 16.03.09 05:29:34 pm

old Re: Scripting - Fragen/Probleme

Nicolussius
User Off Offline

Quote
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)";}
}
edited 1×, last 16.03.09 05:33:41 pm

old Re: Scripting - Fragen/Probleme

Westbeam
User Off Offline

Quote
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";
}

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
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)
edited 1×, last 16.03.09 05:36:45 pm

old Re: Scripting - Fragen/Probleme

Nicolussius
User Off Offline

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