Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
22.02.2002, 21:30
assi



In meiner mod hab ich das Problem, dass ich die Suite erstens ohne Sound haben will und man die Taschenlampe extra einammeln soll. Ich bin halt ein Noob was Coding angeht, viel mehr als ne Waffe (wenn überhaupt :( ) krieg ich nicht hin.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
22.02.2002, 22:09
Killing Me Softly



Ist eigentlich recht simpel. Als erstes brauchen wir ein Item zum aufsammeln für die Taschenlampe. Einfach aus items.cpp den Code für das LongJump-Modul klauen:
Quellcode:
class CItemTaschenlampe : public CItem
{
void Spawn( void )
{
Precache( );
SET_MODEL(ENT(pev), "models/w_longjump.mdl");
CItem::Spawn( );
}
void Precache( void )
{
PRECACHE_MODEL ("models/w_longjump.mdl");
}
BOOL MyTouch( CBasePlayer *pPlayer )
{
if ( pPlayer->m_fTaschenlampe )
{
return FALSE;
}

if ( ( pPlayer->pev->weapons & (1<<WEAPON_SUIT) ) )
{
pPlayer->m_fTaschenlampe = TRUE;                          return TRUE;
}
return FALSE;
}
};

LINK_ENTITY_TO_CLASS( item_taschenlampe, CItemTaschenlampe );

In der 'void W_Precache(void)' (zu finden in der weapons.cpp) sollte noch ein 'UTIL_PrecacheOther( "item_taschenlampe" );' eingefügt werden.

Wird das Item von einem Spieler berührt, so wird die Variable 'm_fTaschenlampe' auf true gesetzt.
m_fTaschenlampe muss natürlich erstmal in CBasePlayer drin sein, also in player.h in die Deklaraion von CBasePlayer irgendwo ein
Quellcode:
BOOL m_fTaschenlampe

reinschreiben und vorsichtshalber in CBasePlayer::Spawn() das Teil auf FALSE setzten.

So, jetzt brauchen wir nur noch ne kleine if-Abfrage dort, wo die Taschenlampe ein- bzw. ausgeschalten wird. Das Ein- bzw. Ausschalten ist ein sog. Impulse-Command (keinen blassen Schimmer wieso man's so versteckt hat). In der player.cpp findet man die Funktion 'void CBasePlayer::ImpulseCommands( )' und dort unter case100: folgendes eintragen (das meiste steht so schon drin):
Quellcode:
case 100:
        if ( FlashlightIsOn() )
{
FlashlightTurnOff();
}
        else [b]if (m_fTaschenlampe)[/b]
{
FlashlightTurnOn();
}
break;

Färtisch. Müßte funktionieren; hab's ehrlichgesagt nicht ausprobiert.

Und wenn du mir erzählst, wie du das mit dem 'ohne Sound bei dem Suit' meinst, dann kann ich dir dabei vielleicht auch helfen.

--

Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

zum Seitenanfang zum Seitenende Profil || Suche
002
23.02.2002, 12:19
assi



Erstmal danke für die Antwort. Wenn ich im normalen HL die Suite einsammle
schwafelt da eine Frauenstimme irgendwas von den Schutzfunktionen des Anzugs. Das kann man zwar wegkriegen, indem man den Sound "leer" macht, aber das ist eigenlich keine Lösung. Ich will eigentlich blos wissen, aus welcher Datei ich die Precache und Play (oder so ahnlich) Zeilen löschen muss.

--

zum Seitenanfang zum Seitenende Profil || Suche
003
24.02.2002, 12:30
hausi



Such doch mal in deinen .cpp-Files nach dem Namen des Sounds. K.A., wie der heisst, solltest aber min. ein File finden. Dann nur noch auskommentieren...

--

zum Seitenanfang zum Seitenende Profil || Suche
004
24.02.2002, 18:00
[RMen]OneStone



Bitte nicht nur die PREACACHE_SOUND( ... ) auskommentieren ;)

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
005
26.02.2002, 16:34
assi



Diese Suche wollte ich eigentlich erspart haben, aber was solls 0,-

--

zum Seitenanfang zum Seitenende Profil || Suche
006
26.02.2002, 18:17
Exec



hmmm, ich glaube, das sind messages aus ner .txt ... z.b. (ka obs das jetzt gibt) !A3_E (oder so) -> in der .txt sind die reihenfolgen der messages festgelegt -> einfach da rausmachen, sollte auch gehn

--

"selbermachen rockt am meisten :D" - -LeJean-

zum Seitenanfang zum Seitenende Profil || Suche