Forum

> > Stranded II > Scripts > Fehler mit "random"
Forums overviewStranded II overview Scripts overviewLog in to reply

German Fehler mit "random"

8 replies
To the start Previous 1 Next To the start

old Fehler mit "random"

Feuer der veraenderung
User Off Offline

Quote
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
on:start {
local $antwort;
freeze 107,1;
}
on:use {
$antwort=random 1, 3;
if ($antwort==1) {
add "Lass mich in Ruhe!";
msgbox "Wache";}
if ($antwort==2) {
add "Du nervst!";
msgbox "Wache";}
if ($antwort==3) {
add "Verschwinde!";
msgbox "Wache";}
}

Immer, wenn der Script ausgeführt wird kommt:
1
2
exspecting semicolon
$antwort=random 1, 3;

Finde irgendwie den Fehler nicht, ein Semicolon ist es auf jedenfall nicht.
Danke schonmal im Voraus.
mfG Feuer der veränderung

old Re: Fehler mit "random"

T-REX0113
User Off Offline

Quote
ich glaube bei der definition
1
$antwort=random 1, 3;
muss das semicolon weg, da gehört keins hin wenn ich mich nicht irre.

old Re: Fehler mit "random"

Nova
User Off Offline

Quote
Doch, da gehört schon eins hin T-REX0113.

Der Fehler liegt darin, dass du bei Befehlen, die einen Wert zurückgeben (den du in der Variable speicherst), die Parameter in runde Klammern setzen musst.

1
$antwort=random (1, 3);

old Re: Fehler mit "random"

Hurri04
Super User Off Offline

Quote
es ändert zwar in diesem script nichts an der funktionsweise, aber allein schon aus ästhetischen gründen würde ich das 2. und 3. "if" duch ein "elseif" ersetzen, da es hier ja um eine fallunterscheidung geht und nicht um mehrere unabhängige aspekte.

sowas kann dann auch schon helfen, in der zukunft fehler zu vermeiden

old Re: Fehler mit "random"

Hurri04
Super User Off Offline

Quote
bei scripts geht es nur halt nicht darum, ob man etwas gern oder ungern benutzt, man muss alle befehle gleichmäßig bewerten (vorausgesetzt natülich, dass keiner davon verbuggt ist oder so).

im normalfall sollte man ja auch mit beiden varianten das gleiche erreichen können.

zum beispiel bei einer extremst langen fallunterscheidung mit, sagen wir mal 500 fällen, würde es jedoch mit sicherheit auffallen, ob man da jetzt immer if oder elseif verwendet, da be if immer wieder neu geprüft wird, ob die parameter übereinstimmen, während bei elseif der ganze block der fallunterscheidung "abgeschlossen" wird, sobald eine übereinstimmung in einer abfrage gefunden wird, das heißt, die restlichen abfragen danach werden einfach übersprungen, was sich dann deutlich positiv auf die performance auswirkt.

old Re: Fehler mit "random"

Nova
User Off Offline

Quote
Ob das allerdings tatsächlich eine Unterschied macht sollte man mal testen. Einfacher Grund: Der Übersetzer von DC für die Scripte ist nicht so optimiert, wie beispielsweise die für C oder PHP. (Beides Programmiersprachen)
edited 1×, last 23.04.11 09:20:55 pm

old Re: Fehler mit "random"

Feuer der veraenderung
User Off Offline

Quote
@Hurri04
Das Problem ist elseif ist verbuggt.
Ich hatte mal einen Script indem ganz viele elseifs vorkammen und er hat nicht funktioniert.
Hecky3 hat dann alle elseifs durch ifs ersetzt und der Script hat funktioniert.
Es hat kein Semicolon oder sonst etwas gefehlt ich habe den Script ausgedruckt gehabt und alles kontrolliert und selbst nach 2 Tagen den fehler nicht gefunden gehabt, seitdem benutze ich elseifs nur noch, wenn es nicht anders geht. Das war glaube ich die Moddelpuppe beim Fantasy Mod.

old Re: Fehler mit "random"

Hurri04
Super User Off Offline

Quote
ich kann dir versichern, dass der elseif befehl nicht verbuggt ist, ich hab selbst schon ellenlange scripts geschrieben, wo der befehl einige dutzend male drin vorkommt und es läuft wunderbar.

elseif ist nämlich einer der grundlegenden befehle, die man beim programmieren immer wieder braucht, wenn da was verbuggt gewesen wäre, dann hätte DC das bestimmt schon in der alpha phase von Stranded 2 gefixt

also wenn dein script nicht funktioniert hat, dann lag es bestimmt an etwas anderem (oder elseif hat von der situation her einfach nicht gepasst, was natürlich auch vorkommen kann, aber kein bug ist).
To the start Previous 1 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview