edited 1×, last 03.09.11 11:47:50 am
Scripts
Dispenser
Dispenser
1

projectile kannst du das Item "rausfeuern". Allerdings ist es beim Aufprall dann kaputt. Man müsste es also irgendwie so hinbiegen, dass das gleiche Item nochmal am Einschlagsort erstellt wird. Guck dir dazu mal das Script der Pfeile an. Wenn man nämlich einen hohen Jagd-Skill hat bleiben Pfeile nämlich öfter mal liegen, nachdem man sie abgeschossen hat.
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.
loop schleife laufen lassen mit etwa 100 durchläufen, in einem solchen durchlauf mit
random eine zufällige zahl ermitteln (minimal 1, maximal die größte typ-nummer der items) und diese dann bei dem befehl
count_stored als typ-nummer einsetzen, falls der rückgabewert größer 0 ist den
projectile befehl verwenden und die loop schleife mit
exit beenden, falls der wert 0 sein sollte einfach die loop schleife noch einmal wiederholen lassen. 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
}
}
}

[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")
	{
	// [...]
	}
}
Was soll "random 840=$item_id" bedeuten? Guck dir erstmal besser den Befehl
random an.
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.
1
