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

Austausch | 
 

 AttractLightning, Radius einstellen ? [gelöst]

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
Coolzero
Clonk
Clonk


Anmeldedatum : 16.04.09

BeitragThema: AttractLightning, Radius einstellen ? [gelöst]   Do 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
Benutzerprofil anzeigen
Liech
Fregattenkapitän
Fregattenkapitän


Männlich Alter : 26
Anmeldedatum : 02.02.09

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

Ja die gibt es, einfach per append
http://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
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: AttractLightning, Radius einstellen ? [gelöst]   Fr 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
Benutzerprofil anzeigen
Coolzero
Clonk
Clonk


Anmeldedatum : 16.04.09

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

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




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

Nach oben Nach unten
 
AttractLightning, Radius einstellen ? [gelöst]
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Wo kann man eine Inaktivitäts-Zeitbegrenzung einstellen?
» Forenbreite lässt sich nicht einstellen
» Hintergrundbild für die Smiley Liste einstellen (phpBB3 & phpBB2)
» VIP-Member im Forum einstellen
» rosen einstellen

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