Forum

> > Stranded II > Scripts > Fehler mit "random"
ForenübersichtStranded II-Übersicht Scripts-ÜbersichtEinloggen, um zu antworten

Deutsch Fehler mit "random"

8 Antworten
Zum Anfang Vorherige 1 Nächste Zum Anfang

alt Fehler mit "random"

Feuer der veraenderung
User Off Offline

Zitieren
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

alt Re: Fehler mit "random"

T-REX0113
User Off Offline

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

alt Re: Fehler mit "random"

Nova
User Off Offline

Zitieren
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);

alt Re: Fehler mit "random"

Hurri04
Super User Off Offline

Zitieren
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

alt Re: Fehler mit "random"

Hurri04
Super User Off Offline

Zitieren
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.

alt Re: Fehler mit "random"

Nova
User Off Offline

Zitieren
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)
1× editiert, zuletzt 23.04.11 21:20:55

alt Re: Fehler mit "random"

Feuer der veraenderung
User Off Offline

Zitieren
@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.

alt Re: Fehler mit "random"

Hurri04
Super User Off Offline

Zitieren
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).
Zum Anfang Vorherige 1 Nächste Zum Anfang
Einloggen, um zu antworten Scripts-ÜbersichtStranded II-ÜbersichtForenübersicht