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 2233 234 235339 340 Nächste Zum Anfang

alt Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Zitieren
Jo, ganz einfach dein Problem.
Vorher aber: Zahlen nicht in Anführungsstriche einklammern.
dialogue "PE1", "3";×
dialogue "PE1", 3;√


Jetzt zu dem eigentlichen Problem. Stell dir vor du wärst der Parser.
Du fragst ab ob die Variable $dialog den Wert 1 hat. Das bejast du, führst den Dialog aus und setzt den Wert der Variable auf 2.
Jetzt fragst du ab ob der Wert der Variable $dialog 2 ist. Das bejast du ebenfalls da du ja gerade den Wert geändert hast. Also zeigst du den zweiten Dialog an und überschreibst damit den ersten.

Ändere einfach die Reihenfolge der Abfrage.
Falsch:
1
2
3
4
5
6
7
if($bla==1)
	{
	$bla = 2;
	}
if($bla==2)
	{
	}

Richtig:
1
2
3
4
5
6
7
if($bla==2)
	{
	}
if($bla==1)
	{
	$bla = 2;
	}
1× editiert, zuletzt 08.12.08 20:24:40

alt Re: Scripting - Fragen/Probleme

dragoana
User Off Offline

Zitieren
Edit: Auja, ein paar Sekunden zu langsam
Das Problem ist, dass es einfach mit dem Script weitermacht, sobald es $dialog auf zwei gesetzt hat. Und bei der zweiten If-Abfrage ist $dialog inzwischen 2. Also muss du das Script entweder umdrehen, oder unterbrechen, oder elseif einbauen:

1
2
3
4
5
6
7
8
9
on:use{ 
if ($dialog==2) { 
dialogue "PE8","3"; 
} 
if ($dialog==1) { 
dialogue "PE1","3"; 
$dialog=2; 
} 
}

oder
1
2
3
4
5
6
on:use{ 
if ($dialog==1) { 
dialogue "PE1","3"; 
$dialog=2; 
skip;
} ...
oder
1
2
3
4
5
6
7
8
on:use{ 
if ($dialog==1) { 
dialogue "PE1","3"; 
$dialog=2; 
} elseif ($dialog==2) { 
dialogue "PE8","3"; 
} 
}
Nimm was dir am besten passt

alt Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Zitieren
Scarr hat geschrieben
Und auf der Unit:
on:use{
if ($dialog==1) {
dialogue "PE1","3";
$dialog=2;
}
if ($dialog==2) {
dialogue "PE8","3";
}
}

Jetzt heißt's:
Bei Benutzung:
Wenn $Dialog=1,
dann zeige Dialog "PE1" des Containers "3"
und Setze $dialog=2.
Wenn $Dialog=2,
dann zeige Dialog "PE8" des Containers "3".


ah, danke, hab zwar nicht danach gefragt, aber indrekt ist damit auch gleich ne frage von mir beantwortet^^

werd das ganze noch mit nen paar elseifs erweitern und so, dan klappt das bei mir auch

hab mich nämlich schon gewundert, warum ich bei mir so vile textcontainer hatte, dabei gehts ja auch einfacher, wie ich jetzt seh^^

thx

alt Re: Scripting - Fragen/Probleme

Kaffeebraun
User Off Offline

Zitieren
Ich hab eine Lautsprecherinfo plaziert,ich möchte das wenn ich in den Radius gehe das der Sound nur einmal abgespielt wird,gibt es dafür einen Script?

edit:hab ihn jetzt der script heißt play
edit²:Gibt es einen Script der einen Sound 2 mal abspielt und dann aufhört?
2× editiert, zuletzt 11.12.08 18:30:55

alt Re: Scripting - Fragen/Probleme

Kayren
User Off Offline

Zitieren
Ich habe mal folgendes versucht(geht aber nicht...):

1
2
3
4
5
6
on:load{
	$lp=skillvalue("Gesundheit");
	$lp=$lp*12;
	maxhealth "Unit", 1, $lp;
	freevar $lp;
	}

Ich glaube, das liegt daran, dass mit der 1 die erste Unit auf der Map gemeint ist...
1× editiert, zuletzt 12.12.08 17:50:17

alt Re: Scripting - Fragen/Probleme

Kayren
User Off Offline

Zitieren
in einem anderen Teil des Scripts, der mir zu gross erschien zum posten gibt es einen Skill Gesundheit...

1
2
3
4
5
6
7
8
on:start{
	setskill "Gesundheit", 1;
	setskill "Kraft", 1;
	setskill "Fernkampf", 1;
	setskill "Konstitution", 1;
	setskill "Athletik", 1;

}

alt Re: Scripting - Fragen/Probleme

Flying Lizard
User Off Offline

Zitieren
du must $lp*12 in Klammern setzen
übrigens wäre es nett wenn du schreiben würdest was er für Fehler ausgibt -.-

EDIT:
"Unit" würde ich auserdem klein schreiben.

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
Skills sind nur Variablen. Die haben nichts mit den Werten wie Gesundheit, Hunger, Durst und Müdigkeit zu tun, welche fest einprogrammierter Bestandteil des Spiels sind. Um die zu verändern muss man extra Befehle nutzen.

für health z.B. s2 cmd health und s2 cmd maxhealth jeweiles mit "unit",1 (=spieler)

ansonsten gibt es noch dinge wie s2 cmd getvalue und s2 cmd consume s2 cmd drink und s2 cmd eat

alt Re: Scripting - Fragen/Probleme

Kayren
User Off Offline

Zitieren


Ich glaube du hast da etwas an dem Thema vorbei geredet DC, ich habe folgenden Script eingefügt bei der Spieler-Unit:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
on:start{
	setskill "Gesundheit", 1;
	setskill "Kraft", 1;
	setskill "Fernkampf", 1;
	setskill "Konstitution", 1;
	setskill "Athletik", 1;

}

on:load{
	$lp=skillvalue("Gesundheit");
	$lp=$lp*12;
	maxhealth "Unit", 1, $lp;
	freevar $lp;

usw. der rest funktioniert.


Also.... Ich habe das Ganze so gemacht dass der Spieler für jeden Gesundheits-level 12 Lebenspunkte gewinnt, normalerweise, tut es aber nicht. Nun fragt sich, wo hier der Fehler liegt...

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
achso, ich habe es nur stellenweise gelesen, pardon.
wie schon gesagt wurde muss das "Unit" in jedem fall klein geschrieben werden, also "unit". so wie alle klassenbezeichnungen. ansonsten sehe ich da keinen fehler.

(falls du es nicht schon tust: natürlich musst du das, was in on:load steht, auch immer ausführen wenn du den gesundheitsskill erhöhst)

(und ich bin mir nicht sicher ob zuerst start oder load ausgeführt wird, wenn zuerst load ausgeführt wird, musst du noch sowas einfügen wie: if ($lp==0){ setskill "Gesundheit", 1; $lp=1; })

alt Re: Scripting - Fragen/Probleme

Kayren
User Off Offline

Zitieren
k, alles korrekt. thx. Nun kommen wir zum zweiten Problem:

Ich habe mal mit s2 cmd defparam versucht noch was einzubauen, doch mir fehlt erneut ein Befehl
Ich brauche etwas, was die Klasse der Waffe zurückgibt, damit ich das auch bei defparam benutzen kann.
1× editiert, zuletzt 12.12.08 21:23:21

alt Re: Scripting - Fragen/Probleme

Kayren
User Off Offline

Zitieren
naja, wenn du mir den Befehl defparam genauer erklärst könnt ich dir sagen was mir fehlt. Ich habe schon folgendes: item und parameter, was allerdings mit "Klasse" gemeint ist weiss ich nicht so genau, aber es handelt sich bestimmt nicht um die ID
Zum Anfang Vorherige 1 2233 234 235339 340 Nächste Zum Anfang
Einloggen, um zu antworten Scripts-ÜbersichtStranded II-ÜbersichtForenübersicht