Die Bananen kannst du mit playergotitem in einer Schleife prüfen und an die Variable übergeben.
Forum
Stranded II Scripts Scripting - Fragen/ProblemeDie Bananen kannst du mit playergotitem in einer Schleife prüfen und an die Variable übergeben.
page=Beendung Quest von netter Eingeborener2
title=3 Bananen
script=start
playergotitem 14 = $gesammelteBananen;
if ($gesammelteBananen>=3) {
text=start
Danke für Bananen. Sehr lecker!!
text=end
find "50";
freestored "2", 1, 14, 3;
find "119";
find "119";
find "98";
find "98";
}
else {
text=start
Du nicht haben genug Bananen!
Bringen mir 3!
text=end
}
script=end
Das isses. Die Quest ist halt, dass der nette Eingeborene 3 Bananen haben will und einem dafür ne Angel und ein paar Köder gibt.
Bei dem freestored bin ich mir besonders unsicher.
Das Problem ist immer wenn ich dann gesagt habe
"Ja, ich habe 3 Bananen." und er zu dieser Seite im Dialog wechselt. Dann zeigt er an: "parameter must be greater than 0".
ich seh da eig nur 2 Fehler,
1. kannste text=start/end nich in Scripts verwenden
2. is es so richtig $gesammelteBananen = playergotitem (14);
Es funzt endlich!
$gesammeltegroßePilze = playergotitem (32);
Es kommt immer die Meldung, dass ich " nicht in einer Variable verwenden darf.
Das einzige andere Mal kommt es hier vor:
elseif ($gesammeltegroßePilze >= 1) {
freestored 2, 1, 32, 1;
find 48;
Aber das obere wird bei der Fehlermeldung angezeigt.
Mfg, Gast
"Else or elseif without matching to if."
Oder so ähnlich.
Das ist der Skript wo der Fehler scheinbar passiert:
$gesammeltePilze = playergotitem (31);
$gesammeltegrossePilze = playergotitem (32);
$gesammelteBraunpilze = playergotitem (33);
$gesammelteGiftpilze = playergotitem (34);
if ($gesammeltePilze >= 1) {
freestored 2, 1, 31, 1;
find 48;
elseif ($gesammeltegrossePilze >= 1) {
freestored 2, 1, 32, 1;
find 48;
elseif ($gesammelteBraunpilze >= 1) {
freestored 2, 1, 33, 1;
find 48;
elseif ($gesammelteGiftpilze >= 1) {
freestored 2, 1, 34, 1;
find 48;
Mfg, Gast
ich hab vergessen die geschweiften Klammern wieder zu schließen...
Mfg, Gast
ich wollte fragen ob irgendjemand ein Tutorial zum scripten von selbstgemoddelten Objekten/Units/Items hat.
Mfg, Mr X
Ich glaube nicht, dass so ein Tutorial existiert.
Ich würde sagen, schau dir erstmal den Aufbau der vorhandenen Einträge in der units.inf, objects.inf und items_XY.inf an. Die sehen gar nicht so kompliziert aus.
Natürlich muss man den Kram noch hier und da einbinden, etwa kombinierbare Items in der combinations.inf.
Wenn du dann irgendwo konkret hängst, dann wende dich doch an Modder, die schon Erfahrung haben, z.B. an Bizzl. Aber das grundsätzliche erscheint mir wie gesagt ganz gut erschließbar anhand der fertigen Einträge.
http://stranded.unrealsoftware.de/s2_definitions.php
Ich hab einfach die Pistole kopiert und dann für meine Zwecke umgeschrieben. Munition hab ich auch erstellt.
Außerdem wollt ich noch fragen, ob man auch verschachtelte ifs erstellen kann:
if ($blabla < $blubber) {
if ($blubberbla == 123) {
}
}
Mfg, Mr. X
edited 1×, last 13.01.08 07:20:51 pm
Füge doch ma das Script zu der Laserpistole hier ein, damit wir alle den fehler suchen können
edited 1×, last 13.01.08 10:58:24 pm
Mir ist nach dem posten hier im Forum die Möglichkeit eingefallen, dass ich einfach das Skript von der Pistole nehme und die Laserpistole noch mal skripte. Dann hats geklappt, davor war der Befehl für die Reichweite abhanden gekommen.
Nochmal zu den ifs, ich habe den Skript für das (kl.) Fleisch so geändert, dass die Chance höher ist das Fleisch nicht zu verbrennen, wenn man eine Pfanne (auch von mir) hat.
Aber es kommt immer die Fehlermeldung, dass ein Semicolon fehlt.
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
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
### Meat id=9 name=Fleisch group=food icon=gfx\meat.bmp model=gfx\meat.b3d scale=0.15 mat=flesh weight=500 info=ein saftiges Stück rohes Fleisch. Ich kann es braten, roh essen oder es in die Hand nehmen und wilden Tieren zuwerfen... behaviour=throw damage=0 speed=15 drag=1.8 rate=3000 script=start 	//Fry! 	on:use { 		$wahrscheinlichkeit = random 1, 10;	if((count_inrange("state",5,50)+count_inrange("state",4,50))>0) 		 { 			if (playergotitem 122 >= 1) { 				if ($wahrscheinlichkeit>=1)&&($wahrscheinlichkeit <= 9){ 					process "Braten",1000; 					fry; 					alteritem 1,10; 				 } 				else { 					process "Braten",1500; 					msg "Mist, verbrannt!!! Reine Asche..."; 					msg "Kann ich nicht mehr aufsammeln :-("; 					freestored 2, 1, 9, 1; 			 } 			} 			elseif ($wahrscheinlichkeit >= 1)&&($wahrscheinlichkeit <=4) { 				process "Braten",1000; 				fry; 				alteritem 1,10; 		} 			else { 				process "Braten",1500; 				msg "Mist, verbrannt!!! Reine Asche..."; 				msg "Kann ich nicht mehr aufsammeln :-("; 				freestored 2, 1, 9, 1; 			 } 		}else{ 			msg "Ich brauche Feuer, um das zu braten!",3; 			speech "negative"; 		 } 	 } 	//Eat 	on:eat { 		process "Essen",1000; 		eat 5,20,10,0; 	} 	//Taming 	on:drop { 		ai_behavioursignal "eat","raptor",300; 	} 	on:ai_eat { 		local $eater,$var; 		$eater=ai_eater(); 		if (type("unit",$eater)==2){ 			$var=getlocal("unit",$eater,"tameness"); 			$var+=2; 			setlocal "unit",$eater,"tameness",$var; 			if (($var>9)&&(gotstate("unit",$eater,"tame")==0)){ 				addstate "unit",$eater,"tame"; 				corona getx("unit",$eater),getz("unit",$eater),20,255,70,100; 				msg "Ich habe ihn gezähmt!",4; 			} 		} 	} script=end
(stellt euch die zwinkernden Smileys als öffnende Klammern vor, die die nicht zwinkern - Beachtet sie nicht)
Wer nach meinem stundenlangen Suchen "kein" Semicolon sieht, sagt das bitte(bei kl. Fleisch das gleiche Problem).
Mfg, Mr. X
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
} else { process "Braten",1500; msg "Mist, verbrannt!!! Reine Asche..."; msg "Kann ich nicht mehr aufsammeln "; freestored 2, 1, 9, 1; [u] } [/u] <---------- Da ist der Übeltäter }else{ msg "Ich brauche Feuer, um das zu braten!",3; speech "negative"; }
du hast eine gschlossen Klammer zu viel gemacht, ich aheb die unterstrichen
Also ich möchte bei meiner neuen Mod etwas machen(falls es möglich sein könnte) : Ich habe in sys\skillinfos\Zerstören.inf eine Datei gemacht und habe alles schon gemacht. Aber wie mache ich es im Spiel so, sodass ich, wenn ich etwas zerstöre, einen Skillpunkt bekomme. Und habe schon viele Versuche gemacht ´
z.B.: bei einem Objekt:
on:kill {
setskill "Zerstören";
}
Und als ich es (das gescriptete Object) zerstört und es war auch da (im Menü), aber als ich draufklickte, kam nicht das, was ich verlangt habe. Ich will, dass das genauso wie bei der Setup-Information ist. Aber was muss ich da tun?
lg,
Benji
PS: Probiere es schon seit 4 Tagen, sagt mir aber nicht das ich es selber machen soll.
so ein unsinn
@Mr X
das Problem ist dass du bei allen Befehlen mit Rückgabewerten keine Klammern um die Parameter gemacht hast, und dass du bei der dritten if-prüfung und der ersten elseif-prüfung fehlerhafte Klammersetzung hast.
@Benji
hast du dir schon die methode angeschaut die DC verwendet hat?
guck dir besonders diese Zeile an
1
on:skill_wood { msgbox "Skill Info","sys/skillinfos/wood.inf"; }