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  

 

 Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1

Nach unten 
5 verfasser
AutorNachricht
Flinti
Kadett
Kadett



Männlich Alter : 30
Anmeldedatum : 07.04.09

Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 Empty
BeitragThema: Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1   Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 EmptyDo Mai 21, 2009 10:16 pm

Voraussetzungen
-Funktionen (Definition, Aufruf, Parameter)
-Timer in der DefCore definieren
-Kommentare

__________________________________________________________

Schonmal darüber geärgert, dass es keine DefCore- und ActMap-Appendtos gibt? Ihr braucht trotzdem einen Timer? So geht's!


Zuerst müsst ihr einen Effektnamen aussuchen. Achtet auf sinnvolle Namesgebung! Ein Effekt namens "bla" macht nicht viel Sinn. In diesem Tutorial nenne ich den Effekt "IntTutorialEffect". Ein vorangestelltes "Int" signalisiert einen internen Effekt. Weiteres in der Doku nachlesen oder auf das nächste Tutorial warten.

Aber beginnen wir! Zuerst wollen wir das Grundgerüst aufsetzen. Für einen reinen, obiektinternen Timer-Effekt, der nach Zerstörung/Entfernung nicht mehr weiter besteht, bietet sich folgendes an:

Code:


//Dies ist unsere "Timer-Funktion"

protected func Fx*Timer (object pTarget)
{
//Das passiert bei jedem Timer-Intervall
}


Dies ist das reine Grundgerüst unseres Timer-Effektes. (Natürlich sind Effekte noch viel vielseitiger - aber dazu später mehr). Jetzt müssen wir nurnoch das Sternchen (*) durch unseren Effektnamen ersetzen und die Anweisungen, die bei jedem Timer-Intervall ausgeführt werden, einfügen. Dabei repräsentiert 'pTarget' das Objekt, das der Timer "trifft", wie bspw. ein Partikeleffekt. Machen wir eine Manaregeneration!

Code:


protected func FxIntTutorialEffectTimer (object pTarget)
{
//Unser Zielobjekt des Timers regeneriert Mana
DoMagicEnergy(1, pTraget);
}


Jetzt haben wir aber ein Problem. Der Effekt ist noch gar nicht gestartet! Jetzt müsst ihr euch überlegen, wann der Effekt gestartet werden soll. In diesem Fall werden wir ihn in Initialize() starten - bei der Erstellung des Objektes! Dazu benötigen wir die Funktion "AddEffect (string szEffectName, object pTarget, int iPrio, int iTimerIntervall, object pCmdTarget)". Das scheint auf den ersten Blick sehr kryptisch. Also lasst uns die Parameter aufschlüsseln!


AddEffect (string szEffectName, object pTarget, int iPrio, int iTimerIntervall, object pCmdTarget)


szEffectName: Ist der Effektname, den wir für das Sternchen oben eingesetzt haben. Also in diesem Falle "Int TutorialEffect"

pTarget: Ist das Ziel des Timers. Ihr werdet wohl "this" am häufigsten angeben: Das aufrufende Objekt selbst! Dies ist auch der Parameter 'pTarget' in der Timer-Funktion.

iPrio: Hierzu später mehr. Eine simple, einfache und tolle '1' sollte hier genügen.

iTimerIntervall: Der Intervall des Timers! Dies kennt ihr schon von 'TimerCall' in der DefCore. Der Intervall bestimmt die Zeit, in der die Timer-Funktion regelmäßig aufgerufen wird.

pCmdTarget: Bestimmt das Objekt, in dem wir unsere Timer-Funktion hineingeschrieben haben. Ein "this" sollte hier ebenfall genügen! (Alternativ könnt ihr die Timerfunktion auch im Szenarioscript als 'global' deklarieren und hier '0' angeben)


So sieht unsere Initialize()-Funktion also jetzt aus:
Code:

protected func Inittialize()
{
//Wir fügen den Effekt "IntTutorialEffect" hinzu, der alle 2 Frames "FxIntTutorialEffectTimer" aufruft,
//da wir als Intervall 2 angegeben haben. Dieser Aufruf erfolgt in diesem Objekt.
AddEffect("IntTutorialEffect", this, 1, 2, this)
}

So. Die Timerfunktion befindet sich perfekterweise schon im Objekt, nun auch die Initialize-Funktion. So sollte das jetzt ungefähr aussehen:

Code:

proetcted func FxIntTutorialEffectTimer (object pTarget)
{
//Unser Zielobjekt des Timers regeneriert Mana
Domagicenergy(1, pTarget);
}

protected func Inittialize()
{
//Wir fügen den Effekt "IntTutorialEffect" hinzu, der alle 2 Frames "FxIntTutorialEffectTimer" aufruft,
//da wir als Intervall 2 angegeben haben. Dieser Aufruf erfolgt in diesem Objekt.
addeffect("IntTutorialEffect", this, 1, 2, this);
}



So. Dies ist das Ende meines Tutorials. Ich hoffe, ihr konntet damit etwas anfangen und eure eigenen, eleganten Timer erstellen.

WICHTIG: In den fertigen Scripts habe ich Fehler eingebaut Razz. Dies wird euch dazu bewegen, nichts außer die Vorlagen zu kopieren. Vorlagen wird auch ein erfahrener Scripter kopieren, um sich Schreibarbeit zu ersparen Very Happy


Das nächste Tutorial über Effekte zeigt euch, wie ihr eigene Zauber erstellen könnt!


Zuletzt von Flinti am So Okt 04, 2009 12:49 am bearbeitet; insgesamt 5-mal bearbeitet
Nach oben Nach unten
Gamer
Staatsrat
Staatsrat
Gamer


Männlich Alter : 28
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 Empty
BeitragThema: Re: Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1   Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 EmptyDo Mai 21, 2009 10:19 pm

Lustig^^
Inittialize()
Das mal zu Initialize() (ohne doppel "t")
Endlich check ich mal Effekte! DANKE!
Nach oben Nach unten
http://www.gamer95.npage.de/
Flinti
Kadett
Kadett



Männlich Alter : 30
Anmeldedatum : 07.04.09

Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 Empty
BeitragThema: Re: Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1   Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 EmptyDo Mai 21, 2009 10:20 pm

>In den fertigen Scripts haben sich Fehler eingeschlichen. Dies wird euch dazu bewegen, nichts außer die Vorlagen zu kopieren

Wink



Gern geschehen, übrigens!
Nach oben Nach unten
Flinti
Kadett
Kadett



Männlich Alter : 30
Anmeldedatum : 07.04.09

Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 Empty
BeitragThema: Re: Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1   Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 EmptyDo Mai 21, 2009 10:29 pm

Ich habe mich doch bemüht, Fehler einzubauen Sad
Nach oben Nach unten
Mega Hazard
Staatsrat
Staatsrat
Mega Hazard


Männlich Alter : 31
Ort : Brunswiek *helllau*
Anmeldedatum : 24.01.08

Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 Empty
BeitragThema: Re: Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1   Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 EmptyFr Mai 22, 2009 1:05 am

Zum Titel möchte ich mal folgendes sagen:

Schedule bzw. ScheduleCall machen das viel einfacher.
Nach oben Nach unten
http://megahazard.lima-city.de/Main.htm
Flinti
Kadett
Kadett



Männlich Alter : 30
Anmeldedatum : 07.04.09

Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 Empty
BeitragThema: Re: Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1   Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 EmptyFr Mai 22, 2009 1:47 am

Ist aber letztendlich auch nichts anderes als ein Effekt - außerdem möchte ich hiermit auf mein nächstes Tutorial weiterleiten :-)
Nach oben Nach unten
Simsi
Staatssekretär
Staatssekretär
Simsi


Männlich Alter : 31
Ort : Vaihingen/Enz
Anmeldedatum : 30.03.08

Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 Empty
BeitragThema: Re: Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1   Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 EmptyFr Mai 22, 2009 11:17 am

Geniale idee mit den fehlern. hab mich zuerst auch geärgert, aber dann hab ichs unten gelesen...

lasst uns auf einen zweiten teil hoffen Very Happy
Nach oben Nach unten
Yasu
Oberst
Oberst
Yasu


Anmeldedatum : 11.12.08

Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 Empty
BeitragThema: Re: Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1   Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 EmptyMo Jun 29, 2009 2:00 pm

ja gel ... wo bleibt das? Will haben! xD
Nach oben Nach unten
http://operation-rising-sun.forumieren.info
Flinti
Kadett
Kadett



Männlich Alter : 30
Anmeldedatum : 07.04.09

Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 Empty
BeitragThema: Re: Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1   Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 EmptySa Jul 11, 2009 11:46 pm

Hm...wenig Zeit..andere Clonkprojekte...spätestens in 4 Wochen, frühestens in einer...
Nach oben Nach unten
Gesponserte Inhalte





Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 Empty
BeitragThema: Re: Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1   Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1 Empty

Nach oben Nach unten
 
Effekte - Timer ohne DefCore-Änderungen - Flinti Tutorial 1
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Flinti Tutorial 2.1: Von pCmdTarget und idCmdTarget, globalen Effekten und Fx*Stop
» Effekte
» Effekte - Schaden
» Haus ohne Fundament
» Hazardkarte ohne Ways...

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Fortgeschrittene :: Tutorials-
Gehe zu: