ich versuche gerade eine Blitzkraftwerk zu bauen. Der sinn des ganzen ist es Blitze, die in das Gebäude treffen, zu speichern um Gebäude mit Strom zu versorgen.
Meine Frage ist nun ob es irgend wie möglich ist den Radius, in dem die Blitze angezogen werden, zu vergößern ?
EDIT1:
Habe gerade heraus gefunden, dass der Radius im Blitzobjekt selbst definiert ist (Objects->Effects->Lightning->Script.c). Gibt es hier eine Möglichkeit die Funktion "Advance" zu überladen ?
Hier mal die komplette Funktion (Die rot markierten Stellen müssen geändert werden) :
zu beachten ist das du wohlmöglich lokale variabeln im append Objekt auch definieren musst, zumindest auf die auf die du zugreifst.
Nein. Zumindest nicht wenn man das Append in System.c4g steckt.
Du musst die ganze Funktion Advance kopieren, anders gehts nicht. Und dann musst du eben diese Zeile ersetzen. Wenn du jedoch im Objekt nachfragen willst, in welchem Radius es Blitze abfängt, wird das Ganze ziemlich happig. Du kommst nicht drumherum, jedes Objekt zu fragen und dann per Distance() zu checken. Denn per Find_Distance kannst du die Suche nicht eingrenzen, da prinzipiell ein Objekt einen höheren Wert zurückliefern könnte.
Also zB so:
Code:
for (var obj in FindObjects(Find_Func("AttractLightning"))) { var dist = obj->~AttractLightningRadius() || 50; //Standard if (Distance(GetX(obj), GetY(obj), GetX()+iVtxX, GetY()+iVtxY) < dist) { Attraction(obj); break; } }