CNDG
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.


Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  SuchenSuchen  Neueste BilderNeueste Bilder  AnmeldenAnmelden  LoginLogin  

 

 AttractLightning, Radius einstellen ? [gelöst]

Nach unten 
3 verfasser
AutorNachricht
Coolzero
Clonk
Clonk



Anmeldedatum : 16.04.09

AttractLightning, Radius einstellen ? [gelöst] Empty
BeitragThema: AttractLightning, Radius einstellen ? [gelöst]   AttractLightning, Radius einstellen ? [gelöst] EmptyDo Okt 07, 2010 9:56 pm

Hi,

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) :

private func Advance()
{
// Einschlag
var iVtx = GetVertexNum()-1, iVtxX = GetVertex(iVtx, 0), iVtxY = GetVertex(iVtx, 1);
if (GBackSemiSolid(iVtxX-GetX(), iVtxY-GetY() ))
return(Remove());

// Objektschaden
if (iVtx>5) BlastObjects(iVtxX, iVtxY, 5);

// Verzweigung
if (!Random(35))
LaunchLightning(iVtxX, iVtxY, iAdvX, iVarX, iAdvY, iVarY);

// Neuen Eckpunkt
if (!AddVertex( iVtxX+iAdvX+Random(iVarX), iVtxY+iAdvY+Random(iVarY)))
return(Remove());

// Objektanziehung
iVtx = GetVertexNum()-1; iVtxX = GetVertex(iVtx, 0); iVtxY = GetVertex(iVtx, 1);
var obj;
if (iVtx>7)
if (obj = FindObject( 0, iVtxX-GetX()-50, iVtxY-GetY()-50, 100, 100, OCF_AttractLightning(), 0,0, NoContainer() ) )
Attraction(obj);

LightningEffect(4);

// Weiter
return(ExecLgt());
}

MFG
Coolzero


Zuletzt von Coolzero am Fr Okt 08, 2010 9:17 pm bearbeitet; insgesamt 1-mal bearbeitet
Nach oben Nach unten
Liech
Fregattenkapitän
Fregattenkapitän



Männlich Alter : 32
Anmeldedatum : 02.02.09

AttractLightning, Radius einstellen ? [gelöst] Empty
BeitragThema: Re: AttractLightning, Radius einstellen ? [gelöst]   AttractLightning, Radius einstellen ? [gelöst] EmptyFr Okt 08, 2010 12:44 am

Ja die gibt es, einfach per append
https://cndg.forumieren.de/tutorials-f3/appendto-include-uberladung-t532.htm

zu beachten ist das du wohlmöglich lokale variabeln im append Objekt auch definieren musst, zumindest auf die auf die du zugreifst.
Nach oben Nach unten
Limeox
Admiral
Admiral
Limeox


Männlich Anmeldedatum : 25.04.10

AttractLightning, Radius einstellen ? [gelöst] Empty
BeitragThema: Re: AttractLightning, Radius einstellen ? [gelöst]   AttractLightning, Radius einstellen ? [gelöst] EmptyFr Okt 08, 2010 2:45 pm

Zitat :
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;
  }
}
Nach oben Nach unten
Coolzero
Clonk
Clonk



Anmeldedatum : 16.04.09

AttractLightning, Radius einstellen ? [gelöst] Empty
BeitragThema: Re: AttractLightning, Radius einstellen ? [gelöst]   AttractLightning, Radius einstellen ? [gelöst] EmptyFr Okt 08, 2010 9:15 pm

Danke Jungs, funktioniert echt super cheers.
Nach oben Nach unten
Gesponserte Inhalte





AttractLightning, Radius einstellen ? [gelöst] Empty
BeitragThema: Re: AttractLightning, Radius einstellen ? [gelöst]   AttractLightning, Radius einstellen ? [gelöst] Empty

Nach oben Nach unten
 
AttractLightning, Radius einstellen ? [gelöst]
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Cooldown einstellen
» Cooldown einstellen?
» Einstellen von Facet-Integern in einer Action
» Wie kann ich einstellen, wo ein Objekt produziert wird?
» "Wie geth?" DefCore richtig einstellen

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Sonstiges :: Scripthilfe-
Gehe zu: