okay, danke, das sollte das Problem tatsächlich lösen :)
Ich hab jetzt mal die ActMap ergänzt (dasselbe beim graben usw.):
[Action]
Name=BuildPinguin
Procedure=BUILD
Directions=2
FlipDir=1
Length=8
Delay=2
Facet=128,220,16,20
NextAction=BuildPinguin
StartCall=BuildingPinguin
Nun sind diese ganzen StartCalls aber im clonk geschrieben und der Hazardclonk greift per include darauf zu. Meine lokale Variable "pinguin" wird wie folgt gesteuern:
In der Rüstung wird beim Anziehen folgendes aufgerufen:
pClonk->Pinguinan(); bzw. beim ausziehen: pClonk->Pinguinaus();
Dies sorgt im Hazardclonkskript dafür, dass die dort definierte lokale Variable "pinguin" 1 oder 0 gesetzt wird.
Nun müsste ich normalerweise bei der Funktion "Building()" eine if Funktion reinschreiben, welche dafür sorgt, dass falls pinguin==1 ist, weitergeleitet wird zu "BuildingPinguin()".
Aber wie läuft das nun mit diesem include? Muss ich jetzt im Clonkskript auch die lokale Variable pinguin definieren? Und wird diese über meine Rüstung dann auch dementsprechend gesetzt? Oder wird sie nur für das Hazardclonkskript gesetzt? Vllt sollte ich sie aus dem Hazardclonkskript rausnehmen und nur im Clonkskript definieren?
(ich arbeite übrigens immer nur mit kopien und lasse die originalpakete unberührt ;) wobei... manchmal kann ich nicht anders und bessere Bugs aus, echt unglaublich wieviele Bugs in manchen Paketen noch sind, gab es früher die Engine nicht, die die fehler anzeigt? z.b im "erweiterungspack" ist an vielen stellen "public" falsch geschrieben. Hat jetzt keine schlimmen auswirkungen, sorgt aber für ne lange Liste an Warnungen :D.... auch das Ruf der Wipfe Remake Pack hat einige Fehler, obwohl das doch recht neu ist.. z.b. wird der Wert des Mülls nicht halbiert, weil nicht nach dem Müll, sondern nach dem Hilfsobjekt gesucht wird.. das wird allerdings auch nirgends in der engine angezeigt, von daher verständlich ,dass das nicht aufgefallen ist )
edit:
habs jetzt mal so probiert wie beschrieben, also das ins normale clonkskript verlagert und bei building() den if befehl gemacht. Klappt aber leider nicht =/ ich könnte mir vorstellen, dass das deshalb nicht klappt, weil ja für einen winzigen Moment Building() aufgerufen wird, welches zur Folge hat, dass der Clonk schwimmt und nicht baut... also müsste ich jetzt irgendwas nändern, dass Building() garnicht erst aufgerufen wird? ist das denn möglich, oder ist das fest verankert?