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

Austausch | 
 

 Zauber erstellen

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
Toastbrot
Kadett
Kadett
avatar

Männlich Anmeldedatum : 10.03.09

BeitragThema: Zauber erstellen   Mi Jan 06, 2010 2:26 pm

Zauber erstellen:

Vorraussetzungen:
- Funktion
-Sin/Cos

Zauber sind ganz einfache Objecte man kann sie wie jedes andere Object auch mit CreateObject erstellen und man löst sie mittels Activate(object Caster) aus bzw. der Zauberer Ruft diese Funktion im Zauber aus.
Im einfachsten Fall könnte das so Aussehen:
Code:

//Erschaffe einen Clonk
var clonk;
clonk=CreateObject(CLNK,100,100,-1);
//Erschaffe einen Zauber und lasse ihn vom Clonk Zaubern
CreateObject(ZauberID,0,0,-1)->Activate(clonk);

Und der Code des Zaubers könnte in diesem Fall so aussehen:
Code:

  public func Activate(object Caster){
                Sound("Magic*");
                return(RemoveObject());
                                          }

Mit diesem tollen Zauber kann der Zauberer ein magisches Geräusch erzeugen.
Man kann aber auch beliebige andere dinge in die Funktion schreiben
um sinnvolle Ergebnisse zu erzielen dies ist nur ein einfaches Beispiel zur Demonstration.


Damit wären die Grundlagen geschaffen und wir können jetzt an einem richtigen Beispiel lernen
wie man überhaupt das Object erstellt.

Zuerst müssen wir ein neues Object machen und den Defcore ändern:
Defcore:
Spoiler:
 

Jetzt kann man noch Beschreibung und das Bild des Zaubers ändern und sich schließlich dem script widmen. Dieser Zauber soll sowohl gezielt als auch nicht gezielt verwendet werden können. Er soll einen Glühenden Hagel aus roten Partikeln in die gewählte richtung schleudern und auch über das Kombosystem Verfügbar sein.Zusätzlich soll er wenn man ein Stück Erde im Inventar hat die Farbe der Partikel zu grün ändern.

So wird das nacher aussehen:


Der script sieht so aus den werden wir gleich stück für stück durchgehen:
Zitat :

/*-- Ein nuer Zauber --*/

#strict 2

//Diese Funktion wird vom Zauberer Aufgerufen
public func Activate(object Caster)
{
//Magisches Geräusch
Sound("Magic*");
//prüfen ob der Zauberer Zielen kann
if (Caster->~DoSpellAim(this())) return true;
//Ansonsten gerade nach oben Zaubern
ActivateAngle(0);
//und Object löschen
RemoveObject();
}

//Diese Funktion wird vom Zauberer Aufgerufen falls er zielen
//kann in dem moment wo er den Zauber loslässt

public func ActivateAngle(object Caster,int Angle)
{
//Eine Variable die die Farbe der Partikel speichert
var color;
color=RGB(180,0,0);

//Falls der Zauberer einen Erdklumpen im Inventar hat
if(FindContents(ERTH,Caster)){
//Den Erdklumpen entfernen
RemoveObject(FindContents(ERTH,Caster));
//und die Farbe zu grün ändern
color=RGB(0,180,0);
}

//In einer for schleife Particle erzeugen und in die angegebene Richtung schleudern
for(var i=0;i<25;i++)
CreateParticle(
"PSpark", //Particle vom Typ PSpark erzeugen
0,0, // an der Position des Zaubers
Sin(Angle+RandomX(-10,10),10+Random(40)), //am winkel X-
-Cos(Angle+RandomX(-10,10),10+Random(40)), //und Y-Geschwindigkeit berechnen
80,color); //größe und Farbe

//Zauber löschen
return(RemoveObject());
}


//Diese Funktion muss wahr zurückgeben wenn der Zauber gezielt werden kann
public func IsAimerSpell() { return true; }
//Der Zauber ist im Kombomenu unter Feuer zu finden
public func GetSpellClass(object pMage) { return(FIRE); }
//Die Kombo ist Werfen-Werfen-Runter
public func GetSpellCombo(pMage) { return ("442"); }


Das meiste erklärt sich durch die Kommentare einige Stellen nenn ich aber nochmal:

if (Caster->~DoSpellAim(this())) return true;
Hier wird im Zauberer(Caster) die Funktion DoSpellAim mit dem ZAuber als Parameter aufgerufen, diese
gibt true zurück wenn der Zauberer den Zauber zielen konnte ansonsten gibt sie false zurück.Falls
sie true zurückgibt wird die Funktion Activate hier amgebrochen(return true;) ansonsten läuft sie weiter.

CreateParticle("PSpark",0,0,Sin(Angle+RandomX(-10,10),10+Random(40)),-Cos(Angle+RandomX(-10,10),10+Random(40))),80,color);
Zu den Parametern von CreateParticle kann man folgendes Sagen:
1)Name des Particles als string. Ich nehme PSpark weil der Schwerkraftsunabhändig ist
2&3)X/Y-Position hier 0 damit der Particle direkt über dem Zauber entsteht
4)X-Anfangsgeschwindigkeit wird aus dem Winkel mittels Sin berechnet. Der Winkel wird mittels RandomX leicht manipuliert und die geschwindigkeit mittels Random zufallsabhändig gemacht
5)wie bei Parameter4 nur -Cos weil es die Y-Geschwindigkeit ist
6)Größe des Partikles 80 ist in Ordnung
7)Farbe des Particles hier wird die Variable color eingesetzt die entweder Rot oder Grün darstellt

public func GetSpellClass(object pMage) { return(FIRE); }
public func GetSpellCombo(pMage) { return ("442"); }

Für das Kombomenu wichtig die erste Funktion legt fest welchem Element der Zauber angehört und die zweite wie die genaue Kombo ist.Für die erste kann man FIRE=Feuer EART=Erde WATR=Wasser und AIR1=Luft als return-Wert nehmen.Für die zweite setzt man einfach eine Dreistellige Zahl ein die die Kombo darstellt 1:Zurück; 2:Runter; 3:Vorwärts; 4:Werfen; 5:Springen; 6:Graben

Das ist dann auch schon alles was zu einem Zauber gehört jetzt sollte man auch andere Zauber selber entwickeln können.
Viel Spass.
Nach oben Nach unten
Benutzerprofil anzeigen
Burning Thing
Brigadegeneral
Brigadegeneral
avatar

Männlich Alter : 20
Ort : Wien
Anmeldedatum : 07.06.09

BeitragThema: Re: Zauber erstellen   Mi Jan 06, 2010 7:42 pm

Danke, genau sowas hatte ich mir gewünscht. Very Happy
Nach oben Nach unten
Benutzerprofil anzeigen
Stephan Borgs
Kadett
Kadett
avatar

Männlich Alter : 23
Ort : Duisburg Meiderich
Anmeldedatum : 09.03.10

BeitragThema: Re: Zauber erstellen   Di Apr 13, 2010 1:03 pm

//Diese Funktion wird vom Zauberer Aufgerufen
public func Activate(object Caster)
{
//Magisches Geräusch
Sound("Magic*");
//prüfen ob der Zauberer Zielen kann
if (Caster->~DoSpellAim(this())) return true;
//Ansonsten gerade nach oben Zaubern
ActivateAngle(0);
//und Object löschen
RemoveObject();
}

Was ist denn, wenn ich hier RemoveObject weglassen würde?
Was wird dadurch überhaupt gelöscht
Die Erde ja nicht! Question
Nach oben Nach unten
Benutzerprofil anzeigen
Toastbrot
Kadett
Kadett
avatar

Männlich Anmeldedatum : 10.03.09

BeitragThema: Re: Zauber erstellen   Di Apr 13, 2010 2:20 pm

Der Zauber wird dadurch gelöscht.Denn der ist ja auch nur ein Objekt das den Effect erzeugt und anschließend gelöscht werden muss.
Nach oben Nach unten
Benutzerprofil anzeigen
Stephan Borgs
Kadett
Kadett
avatar

Männlich Alter : 23
Ort : Duisburg Meiderich
Anmeldedatum : 09.03.10

BeitragThema: Re: Zauber erstellen   Di Apr 13, 2010 3:00 pm

Ja, aber was passiert, wenn mans nicht löscht?
Nach oben Nach unten
Benutzerprofil anzeigen
Wipfmagus
Konteradmiral
Konteradmiral
avatar

Weiblich Alter : 22
Anmeldedatum : 06.03.10

BeitragThema: Re: Zauber erstellen   Sa Mai 29, 2010 10:28 pm

Dann ist das Zauberobjekt ewig in der Map, und so etwas frisst Performance, ist unschön gescriptet und könnte die Funktionalität anderer - und dieses - Scripts lahmlegen.
Nach oben Nach unten
Benutzerprofil anzeigen
Mr. X
Feldmarschall
Feldmarschall
avatar

Männlich Alter : 21
Ort : Schweiz/Baselland
Anmeldedatum : 23.02.10

BeitragThema: Re: Zauber erstellen   Fr Jun 11, 2010 3:43 pm

irgendwie geht bei mir der Spoiler zur Defcore nicht
Nach oben Nach unten
Benutzerprofil anzeigen http://www.klick-mich-blos-nicht.de.vu/
Gamer
Staatsrat
Staatsrat
avatar

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

BeitragThema: Re: Zauber erstellen   Fr Jun 11, 2010 4:13 pm

Ich bestätige das. Das geht auch i-wie bei allen anderen Spoilnern nichtmehr.. Egal welcher Beitrag. Was isn da faul? :O

_________________
Star Wars Projekt Homepage: http://sites.google.com/site/clonkprojekte/star-wars

Das Burg Projekt.................................................................... Schaut doch mal im Super-Mario Clonk Editon Forum vorbei!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.gamer95.npage.de/
NilsZ
Admiral
Admiral


Männlich Ort : Mein Rekord: 27 Punkte! :D
Anmeldedatum : 07.08.08

BeitragThema: Re: Zauber erstellen   Fr Jun 11, 2010 4:22 pm

drückt einfach mal auf quote dann seht ihr was in dem Spoiler drinnen steht.
Nach oben Nach unten
Benutzerprofil anzeigen
Till
Fähnrich
Fähnrich
avatar

Männlich Alter : 20
Ort : Friedenweiler
Anmeldedatum : 12.02.11

BeitragThema: Re: Zauber erstellen   Sa Feb 26, 2011 4:30 pm

wie mach ich das der zauber dann auch im editor bei "welche zauber gibt es" da sind?
Nach oben Nach unten
Benutzerprofil anzeigen http://www.clonk.nuecom.de
Gamer
Staatsrat
Staatsrat
avatar

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

BeitragThema: Re: Zauber erstellen   Sa Feb 26, 2011 4:36 pm

Category Wert richtig setzen.
Ein "|C4D_Magic" anhängen sollte genügen.

EDIT: Oh, ich seh grade, das alle Zauber nur Category=C4D_Magic drinnhaben.
Also einfach C4D_Magic setzen und mal F5 / F8 drücken zum reload.

_________________
Star Wars Projekt Homepage: http://sites.google.com/site/clonkprojekte/star-wars

Das Burg Projekt.................................................................... Schaut doch mal im Super-Mario Clonk Editon Forum vorbei!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.gamer95.npage.de/
Horst
Clonk
Clonk
avatar

Männlich Alter : 20
Anmeldedatum : 06.07.11

BeitragThema: Re: Zauber erstellen   Fr Aug 12, 2011 7:36 pm

Ich wollte den Zauber ausprobieren. Aber auf einmal haben die Icons aller Objekte verrückt gespielt und ein Clonk hatte z.B. einen toten Baum als Icon.
Nach oben Nach unten
Benutzerprofil anzeigen
Magus111
Oberst
Oberst
avatar

Männlich Alter : 21
Ort : Clonk Planet
Anmeldedatum : 01.01.09

BeitragThema: Re: Zauber erstellen   Mo Aug 22, 2011 6:26 pm

Du benutzt nicht zufällig CE oder eine andere nicht aktuelle Clonk Version oder?
Nach oben Nach unten
Benutzerprofil anzeigen
Horst
Clonk
Clonk
avatar

Männlich Alter : 20
Anmeldedatum : 06.07.11

BeitragThema: Re: Zauber erstellen   Fr Okt 14, 2011 3:19 pm

Ich benutze CE.ist das schlimm?
(konnte nicht eher antworten weil mein PC im A**** war)
Nach oben Nach unten
Benutzerprofil anzeigen
Horst
Clonk
Clonk
avatar

Männlich Alter : 20
Anmeldedatum : 06.07.11

BeitragThema: Re: Zauber erstellen   Fr Okt 14, 2011 3:36 pm

Hi
Nach oben Nach unten
Benutzerprofil anzeigen
Horst
Clonk
Clonk
avatar

Männlich Alter : 20
Anmeldedatum : 06.07.11

BeitragThema: Re: Zauber erstellen   Fr Okt 14, 2011 3:36 pm

von Horst
Nach oben Nach unten
Benutzerprofil anzeigen
Gamer
Staatsrat
Staatsrat
avatar

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

BeitragThema: Re: Zauber erstellen   Fr Okt 14, 2011 3:53 pm

Hm einfach mal CE neu installieren (vorher szens und key sichern) und schauen obs immernoch da ist. Wenn nicht, dann verrate uns mal die Spezifikationen deines PCs (Prozessor, Grafikkarte, RAM etc).

_________________
Star Wars Projekt Homepage: http://sites.google.com/site/clonkprojekte/star-wars

Das Burg Projekt.................................................................... Schaut doch mal im Super-Mario Clonk Editon Forum vorbei!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.gamer95.npage.de/
Horst
Clonk
Clonk
avatar

Männlich Alter : 20
Anmeldedatum : 06.07.11

BeitragThema: Re: Zauber erstellen   Fr Okt 14, 2011 3:57 pm

das mit den "hi" und "von horst" war mein bruder. Wink ok mach ich
Nach oben Nach unten
Benutzerprofil anzeigen
Gesponserte Inhalte




BeitragThema: Re: Zauber erstellen   

Nach oben Nach unten
 
Zauber erstellen
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Fell erstellen mit der SP ->bitte unbedingt lesen!!!
» Layout erstellen (Video)
» Unterforen erstellen und auf Admin stellen
» Wie kann ich eine Umfrage erstellen ??
» Archiv des Forums erstellen?

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