De/Creating A Class System

From Valve Developer Community
< De
Revision as of 03:14, 25 June 2006 by T-VIRUS (talk | contribs)
Jump to navigation Jump to search

Einleitung

Hi und willkommen zum Coding Tutorial um ein Klassensystem zuerstellen. Das Klassensystem ist aus meiner Army Mod. Dass ist eine abgeschwächte Version mit nur 3 Klassen aber am ende könnt ihr das erweitern! Damit es nicht alzu schwer wird werden wir nur 3 Klassen erstellen. Sollten wir aber eine Klasse wechseln dann werden wir getötet und bekommen beim Spawn unsere Klasse. Aber der Server bekommt eine Standartklasse die jeder beim ersten Spawnen bekommt :)

Wir nehmen die Klassen Supporter, Medic und Assaulter


Daten die gebraucht werden

Als erstes eine Auflistung was wir brauchen an Codedateien.

Header:

dlls/player.h

Quellcodedateien

dlls/player.cpp


Das Klassensystem wird zu 100% Serverseitig sein aber der Client kann die Klassenwechseln ;)

Das wars auch schon :)

Die Deklarationen

Als erstes müssen wir uns an die Deklarationen machen. Was wir brauchen sind einige Variablen und einige Funktionen. Aber als erstes werden wir ein Enum erstellen das die Werte unserer Klassen enthält!

Das Enum machen wir erstmal so:

enum
{
 Unassigned=0,
 Assaulter,
 Supporter,
 Medic
}

Später brauchen wir das für die Vergleiche!

Jetzt werden wir uns der Klasse CBasePlayer wiedmen.

Zum beginn werden wir einen neuen public und einen neuen Private bereich am ende von CBasePlayer adden. Dort schreiben wir den gesamten Code für das Klassensystem rein!

//Die neuen Bereiche für das Klassensystem!
public:
private:


Nun werde ich euch alle Variablen die wir brauchen auflisten:


Okay das wäre alles an Variablen!

Jetzt kommen unsere Methodendeklarationen.

Als erstes brauchen wir eine Methode die unsere Klasse wechselt. Diese setzen wir im public bereich.

Wir nennen sie mal void ChangeClass(int iClass):

Jetzt brauchen wir noch eine Methode die die gültigkeit deer Klasse prüft. Diese nennen wir void CheckClassValue();

Diese kommt auch in den public bereich.

Okay jetzt brauchen wir aber noch eine Methode die Prüft ob wir das erste mal Spawnen. Diese taufen wir auf den Namen bool IsFirstSpawn();

Diese setzen wir auch public.

Jetzt brauchen wir aber noch die Metoden die unsere Klassen verteil und noch Methoden die unsere Klassen setzt!

Zum verteilen nehmen wir mal void SetPlayerClass(); Diese Methode setzen wir public.

Und die Klassensetzen wir per void SetClassAssaulter(); ,void SetClassSupporter(); und void SetClassMedic();. Diese kommen wie unsere Variablen Private!


Jetzt brauchen wir noch eine Methode die uns beim Wechsel der Klasse tötet und uns einen Punkt gibt da wir sonst als Spieler einen Minuspunkt bekommen.

Diese nennen wir void OnClassChange(); und setzen sie public!

Da jede Klasse unterschiedliche Rüstung und Leben hat müssen wir noch Funktionen zum holen des Lebens und der Armor machen! Dazu nehmen wir int GetHealth(), int GetMaxHealth(), int GetArmor(), int GetMaxArmor();

Diese Methoden kommen alle public.

Nun sollte eure Deklaration am ende der Klasse so aussehen: