CNDG
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.


Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  SuchenSuchen  Neueste BilderNeueste Bilder  AnmeldenAnmelden  LoginLogin  

 

 Komischer Error

Nach unten 
4 verfasser
AutorNachricht
Gamer
Staatsrat
Staatsrat
Gamer


Männlich Alter : 28
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

Komischer Error Empty
BeitragThema: Komischer Error   Komischer Error EmptyDi Feb 16, 2010 3:50 pm

Hi
Also, folgendes: Ich hab die Steinhütte zu einer "Kaserne" umgescriptet, hier mal das Script:
Code:
/*-- Hütte --*/

#strict

#include BAS4
#include DOOR

local iFrame;
 
/* Forschung */

public func GetResearchBase() { return(HUT2); }

//Die normale Steinhütte ist doch langweilig, modden wir sie mal zur Kaserne um

func ContainedUp(object pByObj){
CreateMenu(GetID(this()),pByObj,0,0,"Einheiten rekrutieren",0,1,1); //Menü erstellen
AddMenuItem("Infantrie Squad","ProduceEinheit",PWIP,pByObj,,1,"",);
AddMenuItem("Energieer Squad","ProduceEinheit",HPIA,pByObj,,2,"",);
AddMenuItem("Explosive Squad","ProduceEinheit",BRGW,pByObj,,3,"",);
return(1);
}

func ProduceEinheit(id ID, int iMode){
if(iMode == 1) Schedule("Infantrie",36,20);
if(iMode == 2) Schedule("Energie",36,25);
if(iMode == 3) Schedule("Explo",36,30);
return(1);
}

func Infantrie(){
iFrame=iFrame + 36;
var x=(iFrame * 100 / (20*36)); //Prozent berechnen
Message("%v",this(),x);
if(x == 1){ //jetzt ist die zeit abgelaufen
var pKI=CreateObject(__AI,GetX()+RandomX(-5,5),GetY(),GetOwner(this()));
CreateContents(PWIP,pKI,1); }
return(1);
}
Nun, das Script an sich ist fehlerfrei, doch wenn ich dann im Menü auf "Infantrie-Squad" gehe und alle 36 Frames wird Infantrie aufgerufen, kommt dieser Error:
Zitat :
ERROR: '(' expected, but found end of file (eval in zzz halo wars.c4s\Baracke.c4d\Script.c:0:9)
Ich hab wirklich KEINE Ahnung was das zu bedeuten hat, ich hab Alle Klammern nochmmal nachgeschaut, finde aber keinen Fehler..
Hoffe ihr könnt mir helfen,
Gamer
Nach oben Nach unten
http://www.gamer95.npage.de/
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Komischer Error Empty
BeitragThema: Re: Komischer Error   Komischer Error EmptyDi Feb 16, 2010 4:54 pm

Im Fehler steht was von eval daher muss der Fehler irgendwo stecken, wo ein Befehl als String übergeben wird. Schauen wir mal bei AddMenuItem ist da doch was. Du übergibts hier als String "ProduceEinheit" und eval setzt dies in den Script "ProduceEinheit" um und will ihn ausführen. Dabei fällt ihm auf das da garkeine Funktionsklammern sind! Der Script hört einfach auf! Da denkt sich eval natürlich, geben wir gleich mal einen Error aus. Also mach hinter szCommand einfach Funktionsklammern.
Nach oben Nach unten
Umezawa
Feldmarschall
Feldmarschall



Männlich Alter : 29
Anmeldedatum : 30.12.08

Komischer Error Empty
BeitragThema: Re: Komischer Error   Komischer Error EmptyDi Feb 16, 2010 7:08 pm

Der Fehler liegt nicht dort, sondern in Schedule. AddMenuItem erwartet nur den Funktionsnamen, Schedule (welches übrigens intern eval aufruft) hingegen will das komplette Script sehen, also wie schon gesagt mit den Klammern.
Nach oben Nach unten
Gamer
Staatsrat
Staatsrat
Gamer


Männlich Alter : 28
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

Komischer Error Empty
BeitragThema: Re: Komischer Error   Komischer Error EmptyDi Feb 16, 2010 8:28 pm

Hm sollte ich dann also "ScheduleCall()" verwenden?
Oder doch lieber mit Timer lösen?
Nach oben Nach unten
http://www.gamer95.npage.de/
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Komischer Error Empty
BeitragThema: Re: Komischer Error   Komischer Error EmptyDi Feb 16, 2010 8:33 pm

Ähm nö statt
Code:

func ProduceEinheit(id ID, int iMode){
if(iMode == 1) Schedule("Infantrie",36,20);
if(iMode == 2) Schedule("Energie",36,25);
if(iMode == 3) Schedule("Explo",36,30);
return(1);
}
das
Code:

func ProduceEinheit(id ID, int iMode){
if(iMode == 1) Schedule("Infantrie()",36,20);
if(iMode == 2) Schedule("Energie()",36,25);
if(iMode == 3) Schedule("Explo()",36,30);
return(1);
}
schreiben.
Nach oben Nach unten
Umezawa
Feldmarschall
Feldmarschall



Männlich Alter : 29
Anmeldedatum : 30.12.08

Komischer Error Empty
BeitragThema: Re: Komischer Error   Komischer Error EmptyDi Feb 16, 2010 11:01 pm

Du könntest auch ScheduleCall nehmen, aber dann müsste noch das Objektparameter davor
Nach oben Nach unten
Gamer
Staatsrat
Staatsrat
Gamer


Männlich Alter : 28
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

Komischer Error Empty
BeitragThema: Re: Komischer Error   Komischer Error EmptyMi Feb 17, 2010 8:10 pm

Danke Extremclonk, dein Script hat geholfen! Smile
Noch eine kleine Frage hätte ich da.
Ist es möglich mit Schedule / ScheduleCall eine Funktion unendlich mal aufzurufen? Also iRepeat = ∞
Ich habe es schon mit -1 probiert, aber da wird meine Funktion NIE aufgerufen. Sad
Nach oben Nach unten
http://www.gamer95.npage.de/
Toastbrot
Kadett
Kadett
Toastbrot


Männlich Anmeldedatum : 10.03.09

Komischer Error Empty
BeitragThema: Re: Komischer Error   Komischer Error EmptyMi Feb 17, 2010 11:59 pm

Das kann man entweder mit einem Effect lösen oder man lässt den/das/? Schedule eine Funktion aufrufen die
einerseits den Gewünschten kram macht und anderseits einen neuen Schedule auslöst.
Nach oben Nach unten
Gesponserte Inhalte





Komischer Error Empty
BeitragThema: Re: Komischer Error   Komischer Error Empty

Nach oben Nach unten
 
Komischer Error
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» ERROR: syntax error: see previous parser error for details.
» ERROR:internal error: value stack overflow!
» RPG-Scripts funzen net
» FindObjects Error
» Error-Info?

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Sonstiges :: Scripthilfe-
Gehe zu: