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 2202 203 204339 340 Next To the start

old Re: Scripting - Fragen/Probleme

Guest

Quote
ich glaub langsam ich bin zu dumm um zu kapieren wie die scripterei geht!!!

1
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!!!

old Re: Scripting - Fragen/Probleme

dragoana
User Off Offline

Quote
Fehler im Code:
- Bei If brauchst du zwei Gleichheitszeichen
- bei event "..." keine $-Zeichen, das kennzeichnet nur Variablen

1
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;
Und das kannst du beim Skillerhöhungsevent on:hitskillplus hineinschreiben, damit der Schlagschaden gleich beim Skillverbessern erhöht wird.

old Re: Scripting - Fragen/Probleme

Guest

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

old Re: Scripting - Fragen/Probleme

dragoana
User Off Offline

Quote
@Kevin: s2 cmd ai_stay
@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 s2 cmd 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
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; 
}
Anstat 9999 musst du bei den beiden def_extend die Textcontainer-ID hineinschreiben, wo du das erweiterte on:hit Script hineinschreibst:
1
2
3
on:hit {
event "iskill_hiting","global";
}

old Re: Scripting - Fragen/Probleme

Hans
User Off Offline

Quote
kann mir bitte noch jemand sagen, wie man im dialog die icons von den buttons verändert?
standartmäßig ist des icon ja ein grüner haken, also was muss ich tun, damit da z.B. so ein rotes kreuz steht?

old Re: Scripting - Fragen/Probleme

Hans
User Off Offline

Quote
hab ich schon versucht, aber im dialog (unit: befehl dialogue, textcontainer: text) klappt des net, wenn ich im textcontainer noch was an meinen befehl ranheng

hier das script:

1
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

old Re: Scripting - Fragen/Probleme

Guest

Quote
Kann mir mal einer erklären, wie ich Videosequenzen mache ??

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

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Wieso nicht diese seltsamen Archivdinger? Besser geht es nicht.

Benutze für die Wege s2 cmd unitpath. Beispiel:
1
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 s2 cmd seqstart, s2 cmd setcam, s2 cmd cammode, s2 cmd movecam und s2 cmd seqend. Beispiel:
1
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 s2 cmd diary:
1
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

old Re: Scripting - Fragen/Probleme

humer
User Off Offline

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


das stimmt so nicht ganz, wenn sie info 3 erreicht, bewegt sie sich willkürlich weiter.

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
humer has written
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.


das stimmt so nicht ganz, wenn sie info 3 erreicht, bewegt sie sich willkürlich weiter.

Der Häuptling nicht.

Habs ein wenig verbessert.

old Re: Scripting - Fragen/Probleme

leinad1123
User Off Offline

Quote
Mr Stranded has written
wenn die einheit beim letzten info angekommen ist, wie kriege ich es hin das sie wieder zurückgeht?

mfg


Wenn eine unit ein info erreicht wird das event nodeXXXX ausgelöst

also z.B
1
2
3
4
5
on:node0065{

  unitpath blupp;

}
To the start Previous 1 2202 203 204339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview