variablen sind etwas höher
Forum
Stranded II Scripts Scripting - Fragen/Problemevariablen sind etwas höher
Beispiel:
1
2
3
2
3
if( getplayerweapon() == ID ){ 	// mach was ... }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
on:start { setskill "hiting" ,0, "Schlagen"; } on:skill_hiting { msgbox "Skill Info",1; } on:iskill_hiting { incskill "hiting" ,1, "Schlagen"; $hitskill=skillvalue("hiting"); $hitskillplus=player_damage; if ($hitskill=1) {event "$hitskillplus", "global";} if ($hitskill=3) {event "$hitskillplus", "global";} if ($hitskill=5) {event "$hitskillplus", "global";} if ($hitskill=7) {event "$hitskillplus", "global";} } on:hitskillplus { msg "Skills verbessert!",1; play "fx_spell.wav"; $hitskillplus++; }
ich weiß einfach net, warum der mist nicht geht!!!
- Bei If brauchst du zwei Gleichheitszeichen
- bei event "..." keine $-Zeichen, das kennzeichnet nur Variablen
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
on:iskill_hiting { incskill "hiting" ,1, "Schlagen"; $hitskill=skillvalue("hiting"); $hitskillplus=player_damage; if ($hitskill==1) {event "hitskillplus", "global";} if ($hitskill==3) {event "hitskillplus", "global";} if ($hitskill==5) {event "hitskillplus", "global";} if ($hitskill==7) {event "hitskillplus", "global";} }
Aufbau-Fehler:
Aus dem Code den du geschrieben hast kann ich mir nur mögliche Fehler denken, denn vielleicht hast du es absichtlich genau so gemacht.
on:iskill_hiting
Soll dieses Event beim Schlagen auf einen Gegenstand ausgeführt werden muss es on:hit heißen.
$hitskillplus=player_damage;
Willst du die Schlagkraft mit dieser Variable erhöhen, muss es so heißen (bewusst ohne Gleichheitszeichen):
1
player_damage $hitskillplus;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
on:start { setskill "hiting" ,0, "Schlagen"; } on:skill_hiting { msgbox "Skill Info",1; } on:iskill_hiting { incskill "hiting" ,1, "Schlagen"; $hitskill=skillvalue("hiting"); if ($hitskill==1) {event "hitskillplus", "global";} if ($hitskill==3) {event "hitskillplus", "global";} if ($hitskill==5) {event "hitskillplus", "global";} if ($hitskill==7) {event "hitskillplus", "global";} } on:hitskillplus { msg "Skills verbessert!",1; play "fx_spell.wav"; player_damage 6; }
nein, ich möchte dass beim schlagen auf jeden gegenstand, jeden unit usw. der skill erhöht wird.
ich möchte dass sich bei jedem skill aufstieg der schaden um 0,5 erhöht.
@Gast
Ich finde jetzt keine Möglichkeit, um zu sehen, wann der Spieler schlägt und etwas trifft. Darum muss man von allen Einheiten und Objekten das on:hit event erweitern mit def_extend
Man geht in einer Timerschleife alle Objekte/Units durch und erweitert die Definition. Das kann aber sehr rechenintensiv werden und das Spiel kurzzeitig einfrieren, wenn der Pc damit nicht klarkommt. Vielleicht weiß jemand auch eine andere Lösung.
Im Globalen Map Script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
on:start { 	setskill "hiting" ,0, "Schlagen"; 	$damge=3; 	$extyp=1; 	timer 0,100,1,"exunits"; } on:exunits { 	$extyp++; 	def_extend "unit",$extyp,9999; 	if($extyp<46) { 		timer 0,10,1,"exunits"; 	} else { 		$extyp=0; 		timer 0,10,1,"exobj"; 	} } on:exobj { 	$extyp++; 	def_extend "object",$extyp,9999; 	if($extyp<224) 	{ 		timer 0,1,1,"exobj"; 	} } on:skill_hiting { msgbox "Skill Info",1; } on:iskill_hiting { incskill "hiting" ,1, "Schlagen"; $hitskill=skillvalue("hiting"); if ($hitskill==1) {event "hitskillplus", "global";} if ($hitskill==3) {event "hitskillplus", "global";} if ($hitskill==5) {event "hitskillplus", "global";} if ($hitskill==7) {event "hitskillplus", "global";} } on:hitskillplus { $damage+=0.5; msg "Skills verbessert!",1; play "fx_spell.wav"; player_damage $damage; }
1
2
3
2
3
on:hit { event "iskill_hiting","global"; }
standartmäßig ist des icon ja ein grüner haken, also was muss ich tun, damit da z.B. so ein rotes kreuz steht?
lies dir das durch dan weist du mehr.
hier das script:
1
2
3
4
5
6
7
2
3
4
5
6
7
page=page1 title=blabla text=start laberlaberlaber text=end button=action:close,Ja OK button=page2,hhh
(das is aus dem textcontainer) und wenn ich da an den befehl button nochwas dranhenge, dann stürtzt stranded 2 immer ab und bring eine fahlermeldung
Siehe diaogue für mehr Details.
Ausserdem, wie kann ich machen, dass ein Tagebuchentry am nächssten Tag erst kommt ??
Und wie funzt des mit den Wegen ??
bitte Codes und nich diese seltsamen Archiv Dinger =P
Benutze für die Wege unitpath. Beispiel:
1
2
3
4
5
6
7
2
3
4
5
6
7
on:start 	{ 	unitpath 100, 1, 2, 3; 	} // Erklärung: Beim Starten der Map geht die Unit mit der ID 100 // nach Info 1, dann nach 2 und schließlich nach 3. // Dort bleibt sie dann stehen oder läuft wahnsinnig rum. :ugly:
Videosequenzen machst du mit seqstart, setcam, cammode, movecam und seqend. Beispiel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
on:start 	{ 	seqstart; 	cammode 2; 	setcam 0, 1; 	movecam 0, 3000, 2; 	movecam 5000, 7000, 3; 	movecam 8000, 10000, 4; 	setcam 15000, 5; 	seqend 20000; 	} // Beim Start der Map wird eine Sequenz gestartet. // Die Kamera wie bei 0 Millisekunden (1sek = 1000ms) // auf Info 1 gesetzt. Dort fliegt sie dann nach // Info 2 innerhalb von 300ms. // Ähnlich geschieht es dann bei den anderen. // Am Ende, bei 15000ms wird die Kamera dann auf // Info 5 gesetzt. Nach 20000ms wird die Sequenz beendet.
Ein Tagebucheintrag am nächsten Tag kriegst du so, mit hilfe von diary:
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
on:changeday 	{ 	if ($tag==0) 		{ 		diary "Schon 1 Tag hier.", 1; 		$tag=1; 		} 	} // Beim changeday Event, welches jeden Tag um 0 Uhr // ausgeführt wird, bekommt der Spieler ein Tagebucheintrag // mit dem Text aus Info 1. (Textcontainer) // Durch die If-Abfrage und die Variable passiert das allerdings // nur 1 mal.
ich hoffe ich konnte dir helfen, mfG, Nova.
edited 1×, last 05.08.08 10:07:19 pm
nova has written
on:start
{
unitpath 100, 1, 2, 3;
}
// Erklärung: Beim Starten der Map geht die Unit mit der ID 100
// nach Info 1, dann nach 2 und schließlich nach 3.
// Dort bleibt sie dann stehen.
{
unitpath 100, 1, 2, 3;
}
// Erklärung: Beim Starten der Map geht die Unit mit der ID 100
// nach Info 1, dann nach 2 und schließlich nach 3.
// Dort bleibt sie dann stehen.
das stimmt so nicht ganz, wenn sie info 3 erreicht, bewegt sie sich willkürlich weiter.
Vielen Dank dafür
humer has written
das stimmt so nicht ganz, wenn sie info 3 erreicht, bewegt sie sich willkürlich weiter.
nova has written
on:start
{
unitpath 100, 1, 2, 3;
}
// Erklärung: Beim Starten der Map geht die Unit mit der ID 100
// nach Info 1, dann nach 2 und schließlich nach 3.
// Dort bleibt sie dann stehen.
{
unitpath 100, 1, 2, 3;
}
// Erklärung: Beim Starten der Map geht die Unit mit der ID 100
// nach Info 1, dann nach 2 und schließlich nach 3.
// Dort bleibt sie dann stehen.
das stimmt so nicht ganz, wenn sie info 3 erreicht, bewegt sie sich willkürlich weiter.
Der Häuptling nicht.
Habs ein wenig verbessert.
mfg
Mr Stranded has written
wenn die einheit beim letzten info angekommen ist, wie kriege ich es hin das sie wieder zurückgeht?
mfg
mfg
Wenn eine unit ein info erreicht wird das event nodeXXXX ausgelöst
also z.B
1
2
3
4
5
2
3
4
5
on:node0065{ unitpath blupp; }