Forum
Stranded II Scripts Scripting - Fragen/Problemeim textcontainer muss ein event sein, aber es geht nicht mit on:load
du solltest es mit areal_event probieren.
loop_id hilft dir dort.
ich würde sagen im dialog extraseiten zum rausnehmen zu machen ungefähr so:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
page=rausnehmen title=Beutel text=start Wieviel Goldmünzen möchtest du rausnehmen? text=end button=alles,Alle! button=zehn,10 Goldmünzen! button=eine,1 Goldmünze! page=alles title=Beutel script=start 	if ($gold>0) { 		$goldid=create("item",127,1,1,$gold); 		store $goldid,"unit",1; 		$gold=0; 		free "item",$id; 		$beutelid=create("item",1); 	} else { 		msg "Der Beutel ist leer!",3; 	} 	dialogue "beutel","sys/scripts/beutel.s2s"; script=end page=zehn title=Beutel script=start 	if ($gold>9) { 		$gold=$gold-10; 		$goldid=create("item",127,1,1,10); 		store $goldid,"unit",1; 		if ($gold==0) { 			free "item",$id; 			$beutelid=create("item",1); 			dialogue "beutel","sys/scripts/beutel.s2s"; 		} else { 			dialogue "rausnehmen","sys/scripts/beutel.s2s"; 		} 	} else { 		msg "Der Beutel ist leer!",3; 		dialogue "beutel","sys/scripts/beutel.s2s"; 	} script=end page=eine title=Beutel script=start 	if ($gold>0) { 		$gold--; 		$goldid=create("item",127,1,1,10); 		store $goldid,"unit",1; 		if ($gold==0) { 			free "item",$id; 			$beutelid=create("item",1); 			dialogue "beutel","sys/scripts/beutel.s2s"; 		} else { 			dialogue "rausnehmen","sys/scripts/beutel.s2s"; 		} 	} else { 		msg "Der Beutel ist leer!",3; 		dialogue "beutel","sys/scripts/beutel.s2s"; 	} script=end
edit:
Hab den fehler gefunden: du hast nach dem create das store vergesen
also das:
1
store $beutelid,"unit",1;
was ist das für ein item mit der id 127?
bei mir haben goldmünzen die id 820
egal nochmal die komplete datei beutel.s2s:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
page=beutel title=Beutel text=start In diesem Beutel kann ich Goldmünzen rein tun. Dies Spart mir Platz. Hier haben bis zu 100 Goldmünzen Platz. Du hast $gold im Beutel. text=end button=reintun,Gold in den Beutel tun. button=rausnehmen,Gold Rausnehmen. button=action:close,nichts. page=reintun script=start 	if ($gold==100) { 		msg "Der Beutel ist voll!",3; 		closemenu; 	} elseif ((playergotitem(127)>0)&&($gold==0)) { 		if (count_stored("unit",1,127)<100){ 			$gold=count_stored ("unit",1,127); 			$id=create ("item",5); 			freestored "unit",1,1,1; 			freestored "unit",1,127,$gold; 			store $id,"unit",1; 			dialogue "beutel","sys/scripts/beutel.s2s"; 		 } else { 			$gold=100; 			$id=create ("item",5); 			freestored "unit",1,1,1; 			freestored "unit",1,127,100; 			store $id,"unit",1;´ 			dialogue "beutel","sys/scripts/beutel.s2s"; 		} 	} elseif ((playergotitem(127)>0)&&($gold>0)) { 		if (($gold+count_stored ("unit",1,127))<100) { 			$goldplus=count_stored ("unit",1,127); 			freestored "unit",1,127,$goldplus; 			$gold=$gold+$goldplus; 			dialogue "beutel","sys/scripts/beutel.s2s"; 		} else { 			$goldplus=100-$gold; 			freestored "unit",1,127,$goldplus; 			$gold=$gold+$goldplus; 			dialogue "beutel","sys/scripts/beutel.s2s"; 		} 	} else { 		msg "Keine Münzen mehr zum einlagern",3; 		closemenu; 	} script=end page=rausnehmen title=Beutel text=start Wieviel Goldmünzen möchtest du rausnehmen? text=end button=alles,Alle! button=zehn,10 Goldmünzen! button=eine,1 Goldmünze! button=beutel,>Zurück< page=alles title=Beutel script=start 	if ($gold>0) { 		$goldid=create("item",127,1,1,$gold); 		store $goldid,"unit",1; 		$gold=0; 		free "item",$id; 		$beutelid=create("item",1); 		store $beutelid,"unit",1; 		dialogue "beutel","sys/scripts/beutel.s2s"; 	} else { 		msg "Der Beutel ist leer!",3; 		closemenu; 	} script=end page=zehn title=Beutel script=start 	if ($gold>9) { 		$gold=$gold-10; 		$goldid=create("item",127,1,1,10); 		store $goldid,"unit",1; 		if ($gold==0) { 			free "item",$id; 			$beutelid=create("item",1); 			store $beutelid,"unit",1; 			dialogue "beutel","sys/scripts/beutel.s2s"; 		} else { 			dialogue "rausnehmen","sys/scripts/beutel.s2s"; 		} 	} else { 		msg "Der Beutel ist leer!",3; 		closemenu; 	} script=end page=eine title=Beutel script=start 	if ($gold>0) { 		$gold--; 		$goldid=create("item",127,1,1,10); 		store $goldid,"unit",1; 		if ($gold==0) { 			free "item",$id; 			$beutelid=create("item",1); 			store $beutelid,"unit",1; 			dialogue "beutel","sys/scripts/beutel.s2s"; 		} else { 			dialogue "rausnehmen","sys/scripts/beutel.s2s"; 		} 	} else { 		msg "Der Beutel ist leer!",3; 		closemenu; 	} script=end
Dazu meine Frage, kann man das script so abändern, dass man nicht schläft, sondern dass die Kamera nach oben schaut, von der Stelle wo die Hängematte steht(irgendwas mit object->self war das?) und dass die Kamera ganz leicht hin und herschaukelt, mit den Geräuschen vom Segelfloß? als Gimmick könnte ja beim Schaukeln mit 'Z'-Taste nen Schlaf ausgelöst werden, Optional.
Aber die Hängematte 'covert', ist also ein Schutzgebäude, das soll auch aufgehoben werden?
Danke schonmal.
Nochmals vielen Dank für die Hilfe ich bin dir echt sehr dankbar
ich hab ein Problem mit einem Script, an dem ich grad arbeite. Bei dem Objekt handelt es sich um eine Esse, die ich für eine Schmiede mache. Ich habe da 4 verschiedene Modelle: Eine leere, eine mit Kohle, eine brennende und eine mit verkohlter Kohle :D. Hierbei geht es um die brennende, der Rest funktioniert tadellos. Durch alterobject wird auf das Objekt gewechselt, nachdem man mit 2 Feuersteinen das Feuer entfacht hat. Die Variable $coal gibt den Zustand der Esse (leer, Asche, ...) an (hier brennend). Die Variable $esse gibt an, ob etwas in der Esse liegt ($esse=1) oder nicht ($esse=0) Das Ereignis on:changeday habe ich bisher noch nicht getestet, aber darum gehts mir hier auch nicht. ID 1256 wäre die Esse mit der verkohlten Kohle. Mein Problem sind die Effekte, die ich mit particle hinzufügen wollte, die aber nicht erscheinen und dass erst beim zweiten Einlegen von Eisen (ID 85) in die Esse das Eisen auch wirklich drinliegt, das glühende Eisen (ID 1000) erscheint allerdings schon nach dem auslösen des ersten Timers.
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
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
on:start { 	$x=getx("self"); 	$z=getz("self"); 	$y=gety("self"); } on:create { 	particle $x,$y+21,$z,30;					/Feuer 	particle $x,$y+21,$z,21;					/Funken 	particle $x,$y+21,$z,20;					/Rauch } on:use { 	if(((($esse==0) and (getplayerweapon()==85)) and (count_stored("unit",1,85)>=1)) and ($coal==2)) {			 		freestored "unit",1,85,1; 		$id1=create("item",85); 		setpos "item",$id1,$x1,$y1+26,$z1; 		timer "self",5000; 		$esse=1; 	} 	elseif($esse!=0) { 	msg "Es liegt bereits etwas in der Esse."; 	} } on:timer { 	free "item",$id1; 	$id1=create("item",1000); 	setpos "item",$id1,$x,$y+21.3583,$z; 	$esse=0; } on:changeday { 	if((gotstate("self","eternalfire")>=1) and ($coal==2)) { 		freestate "self"; 		alterobject "self",1256; 		$coal=3; 	}	 }
Hoffe irgendwer kann mir helfen.
lg
Jason13579
weil möchte gern eine brennende Fackel und eine nicht brennende fackel haben.
Wenn man eine Nicht brennende Fackel in der hand hält und rechte maustaste drückt soll sie brennen und den weg erleuchten wie eben die fackel in stranded. Aber wie mach ich das?
hast du die esse im editor plaziert? wenn ja dann wird das event on:create, glaub ich, nicht ausgeführt deshalb keine efekte
zur zweiten frage: $x1,$y1 und $z1 sind vorher noch nicht definiert vielleicht erscheint es deshalb nicht
@T-REX0113
da musst du die definition von der fackel so ändern das die einmal an und einmal aus ist
ich wies es jetzt nicht richtig, aber ich glaub im script der fackel mit einem licht-state oder so gemacht
dazu musst du halt die definition ändern
Zu in:create:
Hab die Esse zwar im Editor platziert, aber mit alterobject das Objekt geändert, oder geht das da auch nicht? Sollte ich in:edset nehmen?
Lg
Jason13579
villeicht solltest du es einmal mit load und einmal mit create machen
,weil es ja im editor platziert werden kann, aber auch gebaut
so würdest du es fpür beide fälle möglich machen
Hab außerdem noch eine Frage:
Wenn man das Eisen vor ablauf des Timers aus der Esse holt, bekommt man trozdem bei Ablauf des Timers das glühende Metall (ID 1000). Kann man das irgendwie verhindern, hab schon mit Variablen beim Item ausprobiert, lief aber nicht wirklich, da beim Einlegen in die Esse weder das Ereignis on:drop, noch on:attack1 ausgelöst wurden.
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
45
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
45
on:create { 	$x_e=getx("self"); 	$z_e=getz("self"); 	$y_e=gety("self"); 	particle $x_e,$y_e+21,$z_e,30; 	particle $x_e,$y_e+21,$z_e,20; 	particle $x_e,$y_e+21,$z_e,21; } on:use { 	if(((($esse==0) and (getplayerweapon()==85)) and (count_stored("unit",1,85)>=1)) and ($coal==2)) {			 		freestored "unit",1,85,1; 		$id1=create("item",85); 		$x_e=getx("self"); 		$z_e=getz("self"); 		$y_e=gety("self"); 		setpos "item",$id1,$x_e,$y_e+26,$z_e; 		$id_es=currentid(); 		timer "object",$id_es,5000; 		$esse=1; 		skip; 	} 	elseif($esse!=0) { 		msg "Es liegt bereits etwas in der Esse."; 	} } on:timer { 	free "item",$id1; 	$id1=create("item",1000); 	$x_e=getx("self"); 	$z_e=getz("self"); 	$y_e=gety("self"); 	setpos "item",$id1,$x_e,$y_e+21.3583,$z_e; 	$esse=0; 	skip; } on:changeday { 	if($coal==2) { 		freestate "self"; 		alterobject "self",1256; 		$coal=3; 	}	 }
bei on:use kann man doch nur reinlegen und raus kommt es nur bei on:timer
Das ganze ist noch nicht wirklich fertig, fehlen noch haufenweise Effekte, eine Werkbank zum Zusammensetzten der Axt, soll später nicht mehr durch die Kombination gemacht werden, nen neues Modell für den Amboss und ein weiteres für das Wasserbecken, eine Zange, ...
Hier einmal ein Link zum Video (hab die 2 Probleme auch drin):
http://www.youtube.com/watch?v=amGLhYTMNzA
und einer zum Downloaden der jetzigen Version:
http://www.file-upload.net/download-2492338/Schmiede-V1.1.rar.html
Guckts euch bitte mal an und schaut ob ihr irgendwelche Fehler findet. Die items_material.inf ist eigentlich überflüssig, hab da mal was beim Eisen geändert, das wird aber nicht mehr verwendet und hat sonst keine Wirkung.
Find da jetzt iwie kein Unterschied...
und vllt die Lösug zu einem Problem (?)
müsste man nicht bevor der timer beim normalen Eisen auslöst eine Bedingung (if) einssetzten um zu prüfen ob das Eisen noch in der Esse liegt oder nicht?
Ansonsten steig ich jetzt hinter deinem Script nicht so ganz durch... (Muss mich erst einlesen/arbeiten :P)