Ich habe die Türme des Space Empire Packs nun so gestaltet, dass sie Munition verbrauchen* .Da einige davon nicht betretbar sind, wird die Munition über den DefCore Eintrag
"GrabPutGet=C4D_GrabGet|C4D_GrabPut" und natürlich "Grab=2" geregelt. Dadurch kann man Dinge in die Türme hineinlegen und auch wieder rausholen.
Da dies dann allerdings auch ein Gegner kann, der dann einfach die Muntion aus dem Turm nimmt und ihn so unschädlich macht, habe ich die "Abschließ"Fähigkeit auf die Türme erweitert. (die lokale Variable "zuu" wird = 1 gesetzt).
Beim Laserturm sieht das nun so aus:
protected func ControlThrow(clonk,a,b,c,d,f)
{
if(zuu==1) {PlayerMessage(GetOwner(clonk),"Zugriff verschlossen",clonk);return(1);}
return(_inherited(clonk,a,b,c,d,f));
}
Wenn zuu=1 ist, dann hat kein Clonk Zugriff auf die Munition im Turm. So ist das auch gewollt.
Nun habe ich das ganze einfach auf den abwehrtrum und noch einen weiteren Turm übertragen, mit exakt derselben Funktion ControlThrow.
Merkwürdigerweise wird hier aber der "GrabPutGet=C4D_GrabGet|C4D_GrabPut" Befehl nicht überladen, sondern man hat immer Zugriff, obwohl dann eben die Meldung kommt "Zugriff verschlossen" und das _inherited nicht ausgeführt wird.
Nun die Frage: warum klappt das einmal und beim Rest nicht? Und wie kann ich es anders lösen? Wie überschreibe ich den "GrabPutGet=C4D_GrabGet|C4D_GrabPut" Befehl, wenn zuu==1 ist?
*(und dabei gleich das Munitionssystem von Hazard verbessert, es kann nun auch weniger als das gesamte Munitionspack verbraucht werden, und die Restmenge im Munitionspack und der Wert verringert sich. So funktioniert das dann auch in den Türmen, die Restmunitionsmenge wird dann immer weniger. Sollte man allgemein ins Hazardpack einbauen :D (also dass nicht mehr alles aufeinmal genommen werden muss, denn wenn das Aufnahmelimit bei 300 liegt, man aber 251hat und die Munitionskiste 50 gibt, kann man bisher bei Hazard nichts mehr aufnehmen) Gibts da noch wen, an den man sich dazu wenden kann, oder wird das Pack nicht mehr verbessert?).