functions in functions

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
Vincent
Adventure Enthusiast
Posts: 208
Joined: 30 Sep 2008, 18:28

functions in functions

Post: # 83911Post Vincent
31 Dec 2017, 13:12

Kann ich eine function in einer function einbauen um z.B. Parameter zu berechnen?

Ich hab z.B. im Mainscript eine function (move) und in diesem Script namens "move" verschiedene moveobj-Befehle. Ich möchte nun darin mehrere Werte abfragen also z.B. die states von Object1 - Object20. Kann ich nun folgendes machen? Ich rufe in der functiuon (move) eine weitere auf:
function (conditions; 20)
und in dem Script namens "conditions", welches 20 mal durchrechnet schreibe ich:
if_obj (object[nr]; 2)
{ ... }
setnum (nr; +1)
(Natürlich setze ich in der function (move) den Parameter [nr] danach wieder auf 1.)

Leider funktioniert so etwas bei mir nicht, bzw. werden, außer dem ersten Objekt, alle anderen ignoriert. Ist so eine Verschachtelung überhaupt machbar? Was könnte ich übersehen haben? Es scheint so, als "hält" die function (move) in dem Fall nicht an, während sie die 20 Parameter abfragt...

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: functions in functions

Post: # 83912Post Zimond
31 Dec 2017, 14:16

Ich nehme an du willst das die zweite Funktion innerhalb der ersten 20 mal durchläuft. So funktioniert das aber tatsächlich nicht. Der zweite Funktionsaufruf ist kein direkter Bestandteil der ersten sondern läuft für sich alleine. Der erste Durchgang einer Funktion wird immer sofort ausgeführt. Alle weiteren Durchläufe folgen dann in den nächsten Frames.

function (A)

...
... function (B ; 20)

läuft dann so ab :


- erster Teil von A
- erster durchgang von B
- Rest von Funktion A bis zum Ende von A
...
- die restlichen 19 Durchgänge von B
Image

Vincent
Adventure Enthusiast
Posts: 208
Joined: 30 Sep 2008, 18:28

Re: functions in functions

Post: # 83913Post Vincent
31 Dec 2017, 14:28

Verstehe. Aber ist das nicht irgendwie unlogisch, bzw. untypisch für Programmiersprachen?
Es müsste sich doch irgendwie eine Schleife schreiben lassen um ewig lange Script-Ketten zu verkürzen?

Wenn ich im Main habe:

function (A;2)
function (B;2)

...wird dann ausgeführt: A B A B ? Ist das dann nicht irrelevant, da ja ohnehin nach A B wieder A B wiederholt werden würde?

Vincent
Adventure Enthusiast
Posts: 208
Joined: 30 Sep 2008, 18:28

Re: functions in functions

Post: # 83914Post Vincent
31 Dec 2017, 15:26

:comp:

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: functions in functions

Post: # 83915Post Zimond
31 Dec 2017, 16:38

Vincent wrote:Verstehe. Aber ist das nicht irgendwie unlogisch, bzw. untypisch für Programmiersprachen?
Es müsste sich doch irgendwie eine Schleife schreiben lassen um ewig lange Script-Ketten zu verkürzen?
Jo, ist ja auch keine echte Programmiersprache :) Der Fokus liegt ja auf kontinuierlichen Skripten die jeden Frame ausgeführt werden. Die Anzahl in der Funktionsanweisung ist also eher als Zeitangabe in Frames zu verstehen wie lange eine Funktion ausgeführt wird und nicht als echte Programmierschleife.

Aber ich bin ja eh gerade dabei. also mach ichs doch einfach so.

function (script ; 10 ; asap)

Würde dann dafür sorgen das sofort alle 10 Durchgänge an einem Stück ausgeführt werden, also eine echte Schleife die sofort wirkt. Klingt gut?
Image

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: functions in functions

Post: # 83916Post Zimond
31 Dec 2017, 17:40

Ist so eingefügt und scheint zu funktionieren. Wenn du noch ein paar Tage warten kannst , kannst du das erstmal so lassen. Bzw, schon mal ein "asap" als dritten Wert einfügen.
Image

Vincent
Adventure Enthusiast
Posts: 208
Joined: 30 Sep 2008, 18:28

Re: functions in functions

Post: # 83917Post Vincent
31 Dec 2017, 17:56

Hast du jetzt echt grad ein extranes Update gemacht, nur für einen asap Wert?
Naja, ich hab leider dieses Jahr eh keine Zeit mehr zum testen :roll: , gehe gleich afk.
Wünsche gutes Feiern und danke für die Hilfe, bde (best developer ever)!!

Post Reply