Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
19.08.2000, 23:06
TheVoice



Hi leute!!

Ihr kennt ja sicher alle die Funktion in CS, die bei Pistolen volgendes ermöglicht:
"Je schneller man klickt, desto schneller schießt die Waffe auch. Wenn man lange gedrückt hält kommt nur ein Schuss."

Könnte mir jemand helfen so eine Funktion aufzubauen ??

Danke!!

MfG,
TheVoice!

--

Against TCPA | Resourcecode.de | Blender 3D | [ Darkzone | Pandorra | Alpine ]

zum Seitenanfang zum Seitenende Profil || Suche
001
19.08.2000, 23:07
TheVoice



Oh ich hab mich ein bisschen doof vertippt:

Hi leute!!
Ihr kennt ja sicher alle die Funktion in CS, die bei Pistolen folgendes ermöglicht:
"Je schneller man klickt, desto schneller schießt die Waffe auch. Wenn man lange gedrückt hält kommt nur ein Schuss."

Könnte mir jemand helfen so eine Funktion aufzubauen ??

Danke!!

MfG,
TheVoice!

--

Against TCPA | Resourcecode.de | Blender 3D | [ Darkzone | Pandorra | Alpine ]

zum Seitenanfang zum Seitenende Profil || Suche
002
21.08.2000, 17:37
Masterstroke



..eigentlich doch gaanz einfach, oder?? Einfach am Ende der Feuerfunktion das m_flNextPrimaryAttack = -1; Das sollte schon genügen, dann wird die Feuerfunktion nicht nach einer Zeit autmatisch wiederholt, sondern man muss immer klicken....

--

Masterstroke
resourcecode.de

zum Seitenanfang zum Seitenende Profil || Suche
003
21.08.2000, 20:04
TheVoice



Danke erstmal, dass du mir geantwortet hast... aaaaaber:

Probier's erstmal selbst und schick mir den Sourcecode... denn so einfach wie du mir das gesagt hast ist das nämlich nicht!
Du meinst es doch sicher so, dass ich die m_flNextPrimaryAttack in der hl_wpn_glock.cpp so verändern soll wie du gesagt hast.
Das funktioniert aber nicht so einfach!! Denn im SDK 2 ist da irgendwie was anders als vorher...

Nochmals danke!

Bis dann

--

Against TCPA | Resourcecode.de | Blender 3D | [ Darkzone | Pandorra | Alpine ]

zum Seitenanfang zum Seitenende Profil || Suche
004
21.08.2000, 23:11




Hi!
Also ich hab da diese Zeile in der hl_wpn_glock.cpp gesehen:
m_flNextPrimaryAttack = m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + flCycleTime;

daraus hab ich das gemacht
m_flNextPrimaryAttack = m_flNextSecondaryAttack = -1;

Aber, huuuuh, das ist jetzt voll das MG!!!!! Hat nen falschen Effekt, lol.

Cu

--

zum Seitenanfang zum Seitenende Profil || Suche
005
21.08.2000, 23:29
Masterstroke



Ok, dann mach es doch einfach andersrum...mach es auf + 1000 !!! Dann müsste der Spieler 1000 Sekunden geklickt halten, bis sich wieder was tut...(*sorry* War vorher ein kleiner denkfehler...) Vielleicht hat es dann aber schon wieder nicht den erwarteten Effekt...ich schauÄs mir mal an...

--

Masterstroke
resourcecode.de

zum Seitenanfang zum Seitenende Profil || Suche
006
22.08.2000, 17:18
TheVoice



Das funktioniert aber auch nicht!

Hier ist doch die eigentliche PrimaryAttack Klasse:
void CGlock::PrimaryAttack( void )
{
GlockFire( 0.01, 0.3, TRUE );
}

Muss ich mir da nicht ne funtkion machen und die dann wie folgt eingeben:

void CGlock::PrimaryAttack( void )
{
GlockFire( 0.01, funktion, TRUE );

}

Meine Funktion heißt in diesem Fall "funktion" und soll den nextAttack Wert wiedergeben (return).
Könnt ihr mir helfen solch eine Funktion dafür aufzubauen oder wie bzw WO kann ich die GlockFire Funktion so modifizieren ?

--

Against TCPA | Resourcecode.de | Blender 3D | [ Darkzone | Pandorra | Alpine ]

zum Seitenanfang zum Seitenende Profil || Suche
007
22.08.2000, 23:29
Prefect



Wie wär's wenn Du den ganzen GlockFire-Quark einfach rauslöschst? Es ist irgendwie lustig zu hören, wie viele Modcoder (z.B. Gooseman [Coder? Gooseman?]) einfach die GlockFire()-Funktion drinlassen... nunja.

IMHO die Beste Lösung ist, die m_afButtonsPressed-Variable von CBasePlayer zu verwenden. In dieser Variable sind nämlich die Bits für alle Buttons gesetzt, die erst diesen Frame gedürckt worden sind. Ganz genau was du brauchst, gelle?

Also wie wär's: m_flNextPrimaryAttack einfach vergessen (oder auf UTIL_WeaponBaseTime() setzen), und am Anfang der PrimaryAttack()-Funktion eine Zeile einzufügen:

if (!(m_pPlayer->m_afButtonsPressed & IN_ATTACK)) return;

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
008
23.08.2000, 12:11
TheVoice



Juhu Juhu Juhu Juhu!! Genau das wollte ich doch nur wissen (wusste gar nicht, dass diese Funktion in der Klasse CBasePlayer drin ist).

Mal wieder...Danker Prefect!!! =)

--

Against TCPA | Resourcecode.de | Blender 3D | [ Darkzone | Pandorra | Alpine ]

zum Seitenanfang zum Seitenende Profil || Suche
009
23.08.2000, 16:22
TheVoice



Danke nochmal... ich hab das natürlich gleich in die Praxis umgesetzt und hier nochmal für die Mitleser, die es ggf. auch mal ausprobieren möchten:

Also... als erstes hab ich mal runtergescrollt zu der Zeile, in der "void CGlock::PrimaryAttack( void )" steht, und habe dort wie es Prefect gesagt hat eine Zeile
mit "if (!(m_pPlayer->m_afButtonPressed & IN_ATTACK))" eingefügt. Dann habe ich Enter gedrückt und habe folgendes eingefügt: return;
Als kleines Extra habe ich dann noch ganz am Anfang (vor der IF-Anweisung) eine neue Variable deklariert ( float nextAtt; ) und habe unter "return;" else nextAtt = 0.1; geschrieben.
Dann habe ich in die GlockFire Funktion folgendes reingeschrieben: GlockFire (0.1, nextAtt, TRUE);
Und fertig ist sie... die PrimaryAttack:

void CGlock::PrimaryAttack( void )
{
float nextAtt;
if (!(m_pPlayer->m_afButtonPressed & IN_ATTACK))
return;
else nextAtt= 0.1;
GlockFire( 0.1, nextAtt, TRUE );
}

(@Prefect: Du hattest einen kleinen Tippfehler in deiner IF-Anweisung... vielleicht ist er dir ja schon aufgefallen).
Jetzt fragt bitte nicht warum ich das mit dem "else" und mit der Variable mache! Die Antwort ist einfach:
Ich kann nun immernoch einstellen, wie schnell man maximal schiessen kann...obwohl... man könnte es auch einfach so in die GlockFire Funktion reinschreiben...upss... ach egal... ist vielleicht ganz praktisch dort doch mit einer Variable zu arbeiten...
Also... es könnte auch so aussehen:

void CGlock::PrimaryAttack( void )
{
if (!(m_pPlayer->m_afButtonPressed & IN_ATTACK))
return;
GlockFire( 0.1, 0.1, TRUE );
}

...

Wer außerdem noch eine Zoomfunktion zu seiner Pistole hinzufügen möchte kann ja folgendes machen:

Ganz am Anfang deiner hl_wpn_glock.cpp fügst du unter all den #include's noch ein #include "gamerules.h" hinzu und modifizierst deine SecondaryAttack wie folgt:

void CGlock::SecondaryAttack( void )
{

if ( !g_pGameRules->IsMultiplayer() )
{
return;
}

if ( m_fInZoom )
{
m_fInZoom = FALSE;
m_pPlayer->m_iFOV = 0; // 0 means reset to default fov
}
else
{
m_fInZoom = TRUE;
m_pPlayer->m_iFOV = 40;
}

m_flNextSecondaryAttack = gpGlobals->time + 0.5;
}

Dann musst du noch vor "void CGlock::Spawn( )" und unter "LINK_ENTITY_TO_CLASS( weapon_9mmhandgun, CGlock );" eine neue boolische Variable deklarieren...: BOOL m_fInZoom;

Und fertig!

Viel Spass =)

Und jetzt was an die DHCC Leutz:
Macht das hier doch mal zum Tutorial für euer DHCC!

Bis denn!

--

Against TCPA | Resourcecode.de | Blender 3D | [ Darkzone | Pandorra | Alpine ]

zum Seitenanfang zum Seitenende Profil || Suche
010
23.08.2000, 19:31
Prefect



Du meinst m_afButtonPressed? Ja, war mir wegen dem Variablennamen nicht mehr ganz sicher :)

Also das mit dem Smiley im Funktionsnamen ist einfach zu lollig :P

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
011
23.08.2000, 19:39
TheVoice



Jo ! Lol!!! Kann man das ma abschalten ???

Sag mal... arbeitest du an der Half-Life: Repulse Mod GAAANZ alleine ??

--

Against TCPA | Resourcecode.de | Blender 3D | [ Darkzone | Pandorra | Alpine ]

zum Seitenanfang zum Seitenende Profil || Suche
012
23.08.2000, 19:44
TheVoice



ach so... nee doch nicht!

--

Against TCPA | Resourcecode.de | Blender 3D | [ Darkzone | Pandorra | Alpine ]

zum Seitenanfang zum Seitenende Profil || Suche