edited 1×, last 03.09.11 01:47:50 pm
Forum
Stranded II Scripts DispenserDispenser
8 replies 1
Ansonsten kannst du auch einfach mit create das Item in der Nähe erstellen. Dann fällt es einfach an dem Ort runter. Nicht schön, erfüllt aber seinen Zweck.
Also es muss im Dispenser Script auf jeden Fall das Lagerscript drin sein (hab ich) und es muss ein Zufallsgenerator (vielleicht random?) eingebaut sein, der unter den eingelagerten Items entscheidet, welches im nächsten Teil des Scriptes per projectile verschossen wird. Kann mir Jemand helfen?
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
on:use { local $item_id, $next; $next=0; $item_id=0; loop ("count",1000) { //statt 1000 höchste Item Id in deiner Mod (eventuell+1) if (($next==0)&&($item_id=>1000)) { $item_id++; next=random (1,1000); if ($item_id==$next) { $next=1; } else { next=0; } } elseif (($next==1)&&($item_id=>1000)) { //dein Projectil hier rein exit } else { //dein Projectil hier rein exit } } }
Probier mal diesen Script aus.
Er ist nicht das non plus ultra, sondern ein Script den ich ungetestet in 15 Minuten geschrieben habe und wahrscheinlich sehr verbuggt ist. Nehme ihn am besten als Denkanstoss für deinen Script.
edit: Ignoriere am besten meine Post und lese nur das was Hurri04 sagt.
edit:
Ich habe mal ein eigenes Script probiert, aber es funktioniert nicht so richtig.
Könnt ihr mir sagen, was ich falsch gemacht habe?
on:use {
if ($locked==1) { msg "Verschlossen!",3,5000; }
else {
if (count_stored("self")==0) { msg "Leer!",3,5000; }
exchange "self";
}
}
on:hit {
local $item_id;
loop "items" {random 840=$item_id}
count_stored "object","self",$item_id;
if ($item_id > 0) {
exit;
local $x,$y,$z;
$x=getx("self");
$y=gety("self");
$z=getz("self");
$y+=28;
projectile $item_id,$x,$y,$z,6,350,15,59;
}
edited 1×, last 03.09.11 01:47:08 pm
Benutze bitte auch den Code-Tag
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
[i]Dein Code [/i] [/code*], wenn du ein Script schreibst. Entferne einfach die beiden Sterne, dann funktioniert das. Das Problem liegt an der Verwendung von s2:loop. Keine Ahnung, was die Zeile bedeuten soll. Auf jeden Fall solltest du folgende Sachen beachten: :o: Die Parameter von loop müssen in runde Klammern: [code]on:start { 	loop ("items") 	{ 	// [...] 	} }
Vielleicht ist der Befehl loop_id für dich noch hilfreich.
exit verlässt nur eine Schleife. Da du aber die Schleife bereits verlassen hat, kann der Befehl nicht angewendet werden. Es dürfte also einen Fehler ergeben.
Code, der nach exit in einer Schleife geschrieben wurde, wird nicht mehr ausgeführt. (Sollte er jedenfalls nicht, wenn DC den Befehl richtig programmiert hat.)
Wenn du "self" nutzt ersetzt das sowohl Klassen-Angabe, als auch die ID-Angabe. Etwas wie "objekt", "self" oder "self", 123 ist daher nicht möglich. (Nur ganz weniger Befehle habe eine besondere Art der Funktionsweise von "self", das steht dann bei dem Befehl aber bei. Bei count_stored hast du "self" dabei falsch angewandt.
edited 1×, last 03.09.11 10:21:00 pm
1