Thema: Verfolgungstorpedo Sa März 14, 2009 3:11 pm
Hier der komplette Script, der net funzt. Der Torpedo verhält sich wie ein ganz normaler.
Code:
/*-- Verfolgungs-Torpedo --*/
#strict
/* Initialisierung */
protected func Initialize() { local clonkfound; local thetarget; local isexplodingornot; local clonkfoundistarget; SetAction("Walk"); SetComDir(COMD_Stop()); ScriptGo(); }
public func Launch (object by) { SetAction ("Swim"); SetDir(GetDir(by)); SetXDir(GetXDir(by)); SetYDir(0); if (GetDir()==DIR_Right()) SetComDir(COMD_Right()); if (GetDir()==DIR_Left()) SetComDir(COMD_Left()); return(1); }
Zuletzt von Tera-Flint-Produzent am Do Apr 30, 2009 2:15 pm bearbeitet; insgesamt 2-mal bearbeitet
Mega Hazard Staatsrat
Alter : 31 Ort : Brunswiek *helllau* Anmeldedatum : 24.01.08
Thema: Re: Verfolgungstorpedo Sa März 14, 2009 3:34 pm
Hast du den Timer auch in der DefCore? Wieso nimmst du CE? Und wth soll ScriptGo()? Das geht nur in Szenarienscripten.
Tera-Flint-Produzent Oberst
Ort : PC Anmeldedatum : 14.03.09
Thema: Ähm... Sa März 14, 2009 3:41 pm
Wie schreib ich den Timer in die DefCore? *blödfühl*
Ich nehme CE weil ich CR net registriert hab. Dass ScriptGo nur in Szenscripts geht wusst ich net.
Könntest du den korrigierten code aufschreiben? Wäre nett.
Zuletzt von Tera-Flint-Produzent am So März 15, 2009 10:27 am bearbeitet; insgesamt 1-mal bearbeitet
Mega Hazard Staatsrat
Alter : 31 Ort : Brunswiek *helllau* Anmeldedatum : 24.01.08
Thema: Re: Verfolgungstorpedo Sa März 14, 2009 4:10 pm
Einen Timer fügst du in die DefCore ein, indem du 2 Einträge setzt: Timer= (Anzahl der Frames, nach welchen die Funktion ausgeführt wird, in deinem Fall wohl 1) TimerCall= (Funktionsname, in deinem Script wäre das Timer, könnte deswegen aber nicht funktionieren, weswegen du den Namen ändern solltest)
Tera-Flint-Produzent Oberst
Ort : PC Anmeldedatum : 14.03.09
Thema: Achso. Und der Script? Sa März 14, 2009 4:15 pm
Gut. Aber wie lautet nun der Script?
Oder ist der (abgesehen von "Timer") gleich?
Gibt es noch mehr Fehler?
Zuletzt von Tera-Flint-Produzent am So März 15, 2009 10:27 am bearbeitet; insgesamt 1-mal bearbeitet
Tera-Flint-Produzent Oberst
Ort : PC Anmeldedatum : 14.03.09
Thema: So, das klappt net Sa März 14, 2009 5:56 pm
Habs eingetragen in die DefCore
Unter MaxUserSelect:
Timer=1 TimerCall="Findingtarget"
es geht weder mit noch ohne "".
Logischerweise hab ich auch "Timer" in "Findingtarget" gewechselt.
Da muss noch ein Fehler sein IRGENDWO
Zuletzt von Tera-Flint-Produzent am Di März 17, 2009 1:46 pm bearbeitet; insgesamt 1-mal bearbeitet
Liech Fregattenkapitän
Alter : 32 Anmeldedatum : 02.02.09
Thema: Re: Verfolgungstorpedo So März 15, 2009 12:22 am
Timer=1 Also jeden Frame aufrufen tut bei CE nicht immer, probiere mal: Timer=2
Desweiteren lässt du die Anführungszeichen besser weg: TimerCall=Timer
Und dann kannst du noch gucken ob die funktion ausgeführt wird. Schreib irgendwo ins Script: Log("Ich werde Aufgerufen"); Und teile uns das ergebnis mit.
Tera-Flint-Produzent Oberst
Ort : PC Anmeldedatum : 14.03.09
Thema: Es tut. Und es tut nicht. So März 15, 2009 10:22 am
Timer=2 TimerCall=Findingtarget
Im script direkt den Logtext
Der wird mir 10.000000 * UNENDLICH aufgerufen.
D.H. er greift auf Findingtarget zu.
Der Fehler muss also IN Findingtarget liegen.
Zuletzt von Tera-Flint-Produzent am Di März 17, 2009 1:46 pm bearbeitet; insgesamt 1-mal bearbeitet
Mega Hazard Staatsrat
Alter : 31 Ort : Brunswiek *helllau* Anmeldedatum : 24.01.08
Thema: Re: Verfolgungstorpedo So März 15, 2009 11:53 am
Nur so, deine if()-Konstruktionen sind falsch. Der if-Teil kommt in Klammern, zudem wird als Vergleichsoperator == benutzt.
Tera-Flint-Produzent Oberst
Ort : PC Anmeldedatum : 14.03.09
Thema: Nun ja Di März 17, 2009 11:54 am
Es hat sich was geändert!
Der Torpedo knallt nun mit ATEMBERAUBENDER Geschwindigkeit auf den Boden OMG!
Ob ein Feind in der Nähe is is dem egal.
Hier der Code nochmal:
Code:
/*-- Verfolgungs-Torpedo --*/
#strict
/* Initialisierung */
protected func Initialize() { local clonkfound; local thetarget; local isexplodingornot; local clonkfoundistarget; SetAction("Walk"); SetComDir(COMD_Stop()); ScriptGo(); }
public func Launch (object by) { SetAction ("Swim"); SetDir(GetDir(by)); SetXDir(GetXDir(by)); SetYDir(0); if (GetDir()==DIR_Right()) SetComDir(COMD_Right()); if (GetDir()==DIR_Left()) SetComDir(COMD_Left()); return(1); }
Jetzt isses soweit. ER TUT WAS. (auch wenn es das Falsche is...) Vllt isses der Hostile-Checker Befehl??? Denn ich bin ja auch noch da...
Zuletzt von Tera-Flint-Produzent am Di März 17, 2009 1:45 pm bearbeitet; insgesamt 2-mal bearbeitet (Grund : RSS... War ein Scherz Mann!)
Liech Fregattenkapitän
Alter : 32 Anmeldedatum : 02.02.09
Thema: Re: Verfolgungstorpedo Di März 17, 2009 12:36 pm
Es ist schwachsinning das objekt über swim und xydir steuern zu wollen, das kann nur schief gehen. Wenn du die prozedur swim behalten möchtest benutze einfach: SetCommand (this(),"Follow",Ziel);
Die Befehlsverzögerung ist insoweit wichtig das SetCommand() total spinnt wenn man die befehle zu oft gibt.
Tera-Flint-Produzent Oberst
Ort : PC Anmeldedatum : 14.03.09
Thema: Nee, nee Di März 17, 2009 1:43 pm
Funktioniert net. er tut wieder gar nischt:
Code:
/*-- Verfolgungs-Torpedo --*/
#strict
/* Initialisierung */
protected func Initialize() { local befehlsverzoegerung local clonkfound; local thetarget; local isexplodingornot; local clonkfoundistarget; SetAction("Walk"); SetComDir(COMD_Stop()); ScriptGo(); }
public func Launch (object by) { SetAction ("Swim"); SetDir(GetDir(by)); SetXDir(GetXDir(by)); SetYDir(0); if (GetDir()==DIR_Right()) SetComDir(COMD_Right()); if (GetDir()==DIR_Left()) SetComDir(COMD_Left()); return(1); }
Thema: Re: Verfolgungstorpedo Di März 17, 2009 11:42 pm
lokale variable werden außerhalb jeder funktion geschrieben, desweiteren hast du wohl ein ";" vergessen, was einen fehler am anfang ausgelöst hat, was dazu geführt hat das das torpedo nicht angefangen hat zu arbeiten. Desweiteren solltest du dich mal mit fehlermeldungen etc. beschäftigen. Die helfen dir sehr fehler selbst (und damit schneller) zu erkennen.
Tera-Flint-Produzent Oberst
Ort : PC Anmeldedatum : 14.03.09
Thema: Ja, toll Mi März 18, 2009 10:18 am
Der Torpedo tut troztdem nischt.
PS: In CE gibt er aber keine Fehlermeldungen aus...
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Verfolgungstorpedo Mi März 18, 2009 5:17 pm
Jede Engine in Clonk gibt Fehler aus. Nur weil nichts direkt obendran stüht über dem Tornado, heißt es noch laange nicht das es keine Fehler ausgibt.
I-wo muss ja was st5ehen wie "ERROR:" oder "WARNING:"
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Verfolgungstorpedo Mi März 18, 2009 5:40 pm
Moment, hast du den Debug Modus überhaupt an?
Liech Fregattenkapitän
Alter : 32 Anmeldedatum : 02.02.09
Thema: Re: Verfolgungstorpedo Mi März 18, 2009 7:55 pm
Kein wunder, dein Actmap ist ja auch nicht besonders richtig. Wenn das torpedo ins wasser fällt soll es vermutlich schwimmen, dazu fehlt aber folgendes:
Nein Da steht NICHTS! Nicht in der Engine, nicht überm Torpedo noch somstwo.
@ Bowserkoopa:
Was soll das heißen??? Natürlich isser an, sonst könnt ich net entwickeln...
@ Liech:
Er soll nur dann schwimmen wenn er abgefeuert wird. Das was du meinst wird ein anderer Torpedo.
Liech Fregattenkapitän
Alter : 32 Anmeldedatum : 02.02.09
Thema: Re: Verfolgungstorpedo Fr März 20, 2009 3:05 pm
Du verstehst mich falsch. Damit die Kommandos von SetCommand() etwas bewirkenwirde die Procedure WALK, FLOAT oder SWIM in der aktiven aktion benötigt. Sonst fällt das objekt einfach auf den boden.
NilsZ Admiral
Ort : Mein Rekord: 27 Punkte! :D Anmeldedatum : 07.08.08
Thema: Re: Verfolgungstorpedo Fr März 20, 2009 4:10 pm
Ich schätze mal dieser Torpedo soll runterfallen wenn man in ins Wasser WIRFT. Und aktivieren soll er sich erst wenn er abgefeuert wird. Praktisch per SetAction
Tera-Flint-Produzent Oberst
Ort : PC Anmeldedatum : 14.03.09
Thema: Haargenau Fr März 20, 2009 8:47 pm
NilsZ hat recht. Außerdem ist das Teil des Originaltorpedos. Der tut was er soll. Nur das mit dem Verfolgen klappt nicht. Da ist nur der Timer dabei. In der ActMap hab ich nix verändert.
Liech Fregattenkapitän
Alter : 32 Anmeldedatum : 02.02.09
Thema: Re: Verfolgungstorpedo Fr März 20, 2009 11:10 pm
Beschreib mal näher was nicht klappt, bzw wie sich das torpedo verhält und ob du überprüft hast (zb mit Log()) ob der timer überhaupt aufgerufen wird.
Tera-Flint-Produzent Oberst
Ort : PC Anmeldedatum : 14.03.09
Thema: Re: Verfolgungstorpedo Sa März 21, 2009 10:20 am
Wer lesen kann ist klar im Vorteil:
Tera-Flint-Produzent schrieb:
er greift auf Findingtarget zu.
Der Fehler muss also IN Findingtarget liegen.
Tera-Flint-Produzent Oberst
Ort : PC Anmeldedatum : 14.03.09
Thema: So... Sa März 21, 2009 10:22 am
Das ist das Problem:
Er tut nach geänderter If-Konstruktion dies:
Tera-Flint-Produzent schrieb:
Es hat sich was geändert!
Der Torpedo knallt nun mit ATEMBERAUBENDER (also mehr als die Schwerkraft erlaubt) Geschwindigkeit auf den Boden OMG!
Ob ein Feind in der Nähe is is dem egal.
Hier der Code nochmal:
Code:
/*-- Verfolgungs-Torpedo --*/
#strict
/* Initialisierung */
protected func Initialize() { local clonkfound; local thetarget; local isexplodingornot; local clonkfoundistarget; SetAction("Walk"); SetComDir(COMD_Stop()); ScriptGo(); }
public func Launch (object by) { SetAction ("Swim"); SetDir(GetDir(by)); SetXDir(GetXDir(by)); SetYDir(0); if (GetDir()==DIR_Right()) SetComDir(COMD_Right()); if (GetDir()==DIR_Left()) SetComDir(COMD_Left()); return(1); }