000
02.02.2001, 18:16
bArTmAn
|
>>geh zurück zum Anfang der Datei und füge diese Funktion zum public Teil, der Klassendeklerationen:
void ZoomThink(void);
Diese Funktion wird mehrmals aufgerufen während die Waffe den Zoom ausführt.
Nun füge diese neuen public Variablen in der gleichen Gegend hinzu:
BOOL NowZooming;
BOOL ZoomStopped;
Diese zwei Variablen speichern den Status des Zoomens. NowZooming zeigt an, dass wir gerade zoomen, und ZoomStopped, dass das Zoomen gestoppt wurde, während es lief und dass es beim nächsten Klick wieder zurückgestellt werden muss. <<
hmm, also könnte mir mal jemand sagen wo die public variablen und der public teil sind? ich kenn mich noch nicht sehr gut mit dem ganzen zeug aus...
--
|
|
Profil || Suche
|
001
02.02.2001, 21:27
Archangel
|
du gehst an den anfang der crossbow.cpp
dort steht dann das copyright blablabla und die #include 's und #define 's.
dadrunter steht die zeile
class CCrossbow : public CBasePlayerWeapon
dann kommt die einleitende "{" und dadrunter steht der public: teil der klasse. dort einfach die funktionen/variablen eintragen. der public teil ist beim "};
LINK_ENTITY_TO_CLASS..." zu ende
hoffe ich konnte helfen
für fehler übernehme ich keine haftung ;)
--
Mar 01 01:10:13 <voice> jo Mar 01 01:10:40 <voice> bis dann ^^ Mar 01 01:11:20 <Archangel> jo **** ENDING LOGGING AT Tue Mar 1 01:58:13 2005
|
|
Profil || Suche
|
002
03.02.2001, 11:01
apfelkorn
|
Tut mir leid, aber sowas sind die Basic's von C.
was Archangel gesagt hat, ist sicherlich nicht falsch, aber ein wenig ungenau.
Wenn eine Klasse definiert (kann man definiert hier sagen?) wird, Sieht das etwa so aus:
class CKlasse
{
...
};
Da kommen da alle moglichen Deklarationen rein, wie float flwasauchimmer; usw. Wenn es jetzt aber so ist, das wir eine interne Variable brauchen, auf die geschützt sein soll und auf die man nur innerhalb der Klasse zugreifen darf, muss das ganze so aussehen:
class CKlasse
{
public:
float flPublicVariable;
private:
float flPrivateVariable;
};
Jetzt kann man zwar auch von anderen Klassen her auf die flPublicVariable zugreifen, aber nicht auf die flPrivateVariable. Die ist nur zugänglich innerhalb der Klasse. Aussehen würde das so:
CKlasse *pKlasse;
pKlasse->flPublicVariable = neuerWert; // Das geht in Ordnung!
pKlasse->flPrivateVariable = neuerWert; // Das gibt einen Compiler-Error!
Warum man denn Public- und Private-Variablen braucht? Eigentlich einfach: Ich erklär das mal an einem Beispiel:
#include <iostream>
using namespace std;
class CKlasse
{
public:
void SetAenderbare( float Wert )
{
flAenderbareVariable = Wert;
flPrivateVariable = (Wert * 100 + 20) / 25; // Wie auch immer *gg*
}
float GetAenderbare( ) { return flAenderbareVariable; }
float GetPrivate( ) { return flPrivateVariable; }
private:
float flPrivateVariable;
float flAenderbareVariable;
};
void Main( );
{
CKlasse *pKlasse;
pKlasse->SetAenderbare( 255 );
cout << pKlasse->GetPrivate() << "\n";
}
Dieses Stück Code verhindert, dass der Programmierer direkt die flPrivateVariable-Variable ändern kann, sondern dass sie immer erst berechnet wird. Ich hoffe das Beispiel war nicht zu absurd.
--
|
|
Profil || Suche
|
003
03.02.2001, 11:24
bArTmAn
|
danke an euch beide!! ich habs jetzt geschnallt :)
@apfelkorn naja, aber irgendwann fängt man eben an und da weiß man noch nicht alles... trotzdem danke für die außführlicher erklärung!!
--
|
|
Profil || Suche
|
004
03.02.2001, 22:30
Prophyle
|
Weiß nicht aber ich finde so ist es viel einfacher:
CBasePlayer::m_UnZoomed deklarieren und in Spawn auf 1 setzen.
if ( m_pPlayer->m_afButtonLast & IN_ATTACK2 || m_pPlayer->m_UnZoomed )
{
// Zoom!
if ( m_pPlayer->m_iFOV > 0 )
m_pPlayer->m_iFOV--;
m_pPlayer->m_UnZoomed = 0;
m_flNextThirdAttack = gpGlobals->time + 0.05;
}
else
{
// Unzoom!
m_pPlayer->m_iFOV = 90;
m_pPlayer->m_UnZoomed = 1;
m_flNextSecondaryAttack = gpGlobals->time +0.75;
m_flNextThirdAttack = gpGlobals->time +1.0;
}
--
Prophyle, Coder beim SGT: http://mod.famkos.de.
Delphi, C++, Qt
|
|
Profil || Suche
|