Forum
Stranded II Scripts Scripting - Fragen/Probleme Feuer der veraenderung has written
Ich wolte mal fragen was man machen muss um einen neuen Skill zu erstellen?
(Ich hab zwar noch nicht viel Ahnung, aber... )
schau dir doch erstmal einen bestehenden skill an; finde heraus, womit dieser Skill zusammenhängt (Objekte, Items etc.) und probiere daran rum..
Learning bei Doing!
(ich bastel so grad an einem skill zum länger Tauchen.. Bin zwar noch nicht weit, aber die Idee dazu ist geboren! ^^)
und bei einem item den Script:
on:use
{
event "iskill_magic","global";
}
als ich es getestet hab ist nichts passiert
nur den ordner Skillinfo und da habe ich es drin
Dieser Script erhöht den Skill um 1, den musst du also auslösen wenn du den Skill erhöht haben willst:
1
incskill "magic" ,1 ,"Magieskill";
Unter dieser Variablen wird die Skillhöhe gespeichert, du kannst sie beim benutzen eines Items über If abfragen.
1
$s2g_skillvalue_magic
Ich weis nicht ob es funktioniert und es ist wahrscheinlich nicht der eleganteste Weg!
Aber ich würde mal im ExtMod Forum Fragen die haben mehr Erfahrung mit sowas und können die Frage bestimmt besser beantworten.
MfG DEATHSHEAD
edited 1×, last 30.04.10 06:45:46 pm
hast du denn in der game.ini diesen Befehl drin??
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
on:skill_magic{ msgbox "Skill Info","sys/skillinfos/magic.inf"; } 	on:iskill_magic{ 		incskill "magic",1,"Magie anwenden"; 		$tmp=skillvalue("magic"); 		if ($tmp==25){ event "skillup","global";} 		if ($tmp==50){ event "skillup","global";} 		if ($tmp==100){ event "skillup","global";} 		if ($tmp==200){ event "skillup","global";} 	}
(die Zahlen sind hierbei nur ein Beispiel!)
Edit: Danke Nova.. hatte es nur eben kurz für Feuer abgeändert und hier reingestellt
edited 1×, last 30.04.10 08:33:57 pm
Sollte da nicht magic oder so stehen?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
script=start 	$goldiminventar=count_stored ("unit",1,127); 		if ($goldiminventar>0){ 			$gold++; 			freestored "unit",1,127,1; 		}if ($gold>0){ 			freestored "unit",1,1,1; 			$id=create ("item",5); 			store $id,"unit",1; 		}if ($gold<1){ 			freestored "unit",1,5,1; 			$id=create ("item",1); 			store $id,"unit",1; 		}else{ 			msg "Keine Münzen mehr zum einlagern",3; 			dialogue "beutel","sys/scripts/beutel.s2s"; 		} 	dialogue "beutel","sys/scripts/beutel.s2s"; script=end
Ich möchte das wenn ich etwas in den beutel reinlege (eine Münze) das es dann zu einem Goldbeutel wird. Das funktioniert ja auch. Aber wenn ich dann nochmal eine Goldmünze reinlege hab ich plötzlich 2 Goldbeutel. Wie kan ich es verhindern dass, wenn ich 20 Münzen einlege ich 20 Goldbeutel habe. Ich möchte nur einen Goldbeutel haben, egal wie viel münzen ich einlege...
(Für Fehler in meinen Gedanken bin nur ich verantwortlich ^^)
du musst dann bei dem Goldbeutel die Einstellungen anpassen, das dort immer eine Münze zugezählt wird, wenn du wieder eine einlagerst und eine weniger wird, beim herausnehmen.
Ferner muss definiert werden, das aus dem Goldbeutel bei <0 ein Beutel wird.
dann musst du bei der Münze einpflegen, das du sie nutz. oder als Kombination mit dem Beutel.
Und das bei Gold- und Kupfermünze!
Also entweder ein 2ter Beutel (neue id für Kupferbeutel) oder ein kompliziertes script für Mix-Beutel für Gold- und Kupfermünzen.
edited 2×, last 30.04.10 09:46:01 pm
Nochmal:
1. Ich habe einen normalen Beutel
2. Dort tu ich eine Münze rein
3. Dann hab ich einen Goldbeutel
4. Ich tu nochmal eine Münze rein
5. Nun hab ich 2 Goldbeutel, will aber nur einen haben.
Gibt es ein script dafür wie ich das mache?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
script=start 	if ((playergotitem(127)>0)&&($gold==0)) { 		$gold=count_stored ("unit",1,127); 		$id=create ("item",5); 		freestored "unit",1,1,$gold; 		store $id,"unit",1; 	} elseif ((playergotitem(127)>0)&&($gold>0)) { 		$goldplus=count_stored ("unit",1,127); 		freestored "unit",1,1,$goldplus; 		$gold=$gold+$goldplus; 	} else { 		msg "Keine Münzen mehr zum einlagern",3; 		dialogue "beutel","sys/scripts/beutel.s2s"; 	} dialogue "beutel","sys/scripts/beutel.s2s"; script=end
das heist nur wenn die variable $gold=0 ist wird ein goldbeutel erstellt ansonsten nur eingelagert
Also das Mit dem Einlagern und dem Goldbeutel funktioniert nun, aber wenn ich nun den Goldbeutel habe und ich nochmal etwas einlagere, verschwinden die Goldmünzen nicht mehr, im Goldbeutel steigt die Anzahl aber im Inventar verringert sich die anzahl nicht. Mit dem Beutel schon, obwohl der Beutel und der Goldbeutel das gleiche Script nutzen...
edit: so hier mal alle scripte:
Das ist die definition von Beutel und Goldbeutel:
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
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
### Bag id=1 name=Beutel group=stuff icon=gfx\bag.bmp model=gfx\bag.b3d mat=dust weight=100 info=Ohne Beutel keine Competition! Einfach schön das Teil außerdem kann ich darin Meine Goldmünzen aufbewahren. healthchange=0 script=start 	on:use { 			if (playergotitem(127)>0){ 				dialogue "beutel","sys/scripts/beutel.s2s"; 			}else{ 				msg "Ich habe keine Münzen,",3; 				msg "die ich reintun könnte",3; 			} 		} script=end ### Goldbag id=5 name=Goldbeutel group=stuff icon=gfx\goldbag.bmp model=gfx\goldbag.b3d mat=dust weight=350 info=Ein Bautel mit Goldmünzen drin. In ihm befinden sich $gold Goldmünzen. healthchange=0 script=start 	on:eat { 		msg "*beiß* ... "; 		msg "die Münzen scheinen echt zu sein!"; 	} 	 	on:use { 		dialogue "beutel","sys/scripts/beutel.s2s"; 	} script=end
das hier steht unter "sys/scripts/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
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
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 ((playergotitem(127)>0)&&($gold==0)) { $gold=count_stored ("unit",1,127); $id=create ("item",5); freestored "unit",1,127,$gold; 		 freestored "unit",1,1,$gold; store $id,"unit",1; } elseif ((playergotitem(127)>0)&&($gold>0)) { $goldplus=count_stored ("unit",1,127); freestored "unit",1,1,$goldplus; $gold=$gold+$goldplus; } else { msg "Keine Münzen mehr zum einlagern",3; dialogue "beutel","sys/scripts/beutel.s2s"; } dialogue "beutel","sys/scripts/beutel.s2s"; script=end
nochmal:
Ich möchte wenn ich einen Beutel habe und ein paar Goldmünzen, das ich die Dann dort einlagern kann.
-Bis zu 100 Gold haben darin platz.
Wenn ich Goldmünzen einlagere soll daraus ein Goldbeutel werden. (das klappt)
In dem Goldbeutel kann ich auch Goldmünzen einlagern (das klappt nicht ganz, da ich dann im inventar trotzdem noch goldmünzen habe und die anzahl um Goldbeutel aber zunimmt...)
Das script fürs auslagern hab ich noch nciht angefangen, da das einlagern noch nicht funktioniert.
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
script=start if ((playergotitem(127)>0)&&($gold==0)) { $gold=count_stored ("unit",1,127); $id=create ("item",5); freestored "unit",1,1,1; freestored "unit",1,127,$gold; store $id,"unit",1; } elseif ((playergotitem(127)>0)&&($gold>0)) { $goldplus=count_stored ("unit",1,127); freestored "unit",1,127,$goldplus; $gold=$gold+$goldplus; } elseif ($gold>100) { msg "Der Beutel ist voll!",3; dialogue "beutel","sys/scripts/beutel.s2s"; } else { msg "Keine Münzen mehr zum einlagern",3; dialogue "beutel","sys/scripts/beutel.s2s"; } dialogue "beutel","sys/scripts/beutel.s2s"; script=end
so müsste es gehen!
hatte ausversehen statt den Münzen eine Beutel gelöscht
Wie kriege ich es hin, dass ein Script bei mehreren Objekten des selben Typs(zB. die Bananenpalme)ausgeführt wird? Ich möchte nicht, dass ich bei jedem Objekt den Script noch einmal eintragen muss. Kann man das irgendwie hinkriegen?
wie es genau geht weiß ich nicht als ich mal eine Map mit diesem Script gemacht habe hat der Script nicht funktioniert
1
2
3
2
3
on:load { def_extend "object",53,3; }
Und das steht im Info 3:
1
texture "gfx/grain_a.png";
1 Text-Container info platzieren.
2 Den code hineinschreiben
3 im globalen code einfügen
1
2
3
2
3
on:load { def_extend "object",53,INFOID;//infoid wird hier mit der info id im EDITOR ersetzt }
ich würde sagen so:
1
2
3
2
3
on:load{ 	texture "gfx/grain_a.png"; }