Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
27.08.2001, 22:20
thinktank



Folgendes Problem :
Ich will das der Spieler, gleich wenn er in das Game kommt, ein Spectator ist und dann halt per Menü das Team auswählen kann. Also hab ich die

CHalflifeMultiplay::InitHUD() - Funktion
folgendes reingeschrieben:
pl->StartObserver(Vector(0,0,0),Vector(0,0,0));

Jetzt wird - wenn ich ins Spiel gehe - dauernd angezeigt, dass ich ins Spiel käme, also folgendermaßen:

Karl joined the game
Karl joined the game
Karl joined the game
...

bis er abkratzt

Ich hab nachgeschaut, und entdeckt, dass "joined the game" auch in der InitHUD ausgegeben wird und dass InitHUD nur einmal aufgerufen werden kann,
da die Abfrage folgendermaßen aussieht (jetzt mal so im Halb-Pseudo-Code=)):

if (!hudinitialized)
{
InitHud();
hudinitialized = true;
}

hudinitialized wird aber (per VC-Suchfunktion geschaut) nur da geändert. Jetzt stehe ich vor einem Rätsel .................

Jedenfalls geht der Spec-Mode, wenn man gespawnt wird und dann
spectate eingibt. Der Mode geht auch , wenn man statt StartObserver , StartDeathCam nimmt, aber da wird komischerweise, immer noch das Playermodel angezeigt (also es verschwindet nach dem Tod ned mehr und steht einfach nur rum).

Wie mache ich das jetzt ?

P.S.:
Der Spectator-Mode wurde nach Robin Walkers Tut gemacht.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
28.08.2001, 13:31
Mazze



geh doch ganz einfach erst in den Spectator Mode wenn du die Klasse bzw. das Team gewählt hast!

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
002
28.08.2001, 14:35
thinktank



Hmm aber solange ist man ja im Game !
Also kann schon spielen !

--


Dieser Beitrag wurde am 28.08.2001 um 14:35 von thinktank bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
28.08.2001, 14:42
Mazze



Wenn du das in die PlayerSpawn Funktion einbaust nicht!

Quellcode:
if((!FStrEq(pPlayer->m_szTeamName, TEAM1_NAME)) && (!FStrEq(pPlayer->m_szTeamName, TEAM2_NAME)))
{
     // Make player dead to the game
     pPlayer->pev->classname = MAKE_STRING("observer");
     pPlayer->pev->solid = SOLID_NOT;
     pPlayer->pev->takedamage = DAMAGE_NO;
     pPlayer->pev->movetype = MOVETYPE_NONE;
     pPlayer->pev->flags |= FL_NOTARGET;
     pPlayer->pev->effects |= EF_NODRAW;
     pPlayer->m_afPhysicsFlags |= PFLAG_OBSERVER;
     pPlayer->m_iHideHUD |= HIDEHUD_WEAPONS | HIDEHUD_FLASHLIGHT | HIDEHUD_HEALTH | HIDEHUD_MONEY;

     addDefault = FALSE;
}
else
{
     // Make sure the player can see the HUD again
     pPlayer->m_iHideHUD &= ~HIDEHUD_WEAPONS;
     pPlayer->m_iHideHUD &= ~HIDEHUD_FLASHLIGHT;
     pPlayer->m_iHideHUD &= ~HIDEHUD_HEALTH;
     pPlayer->m_iHideHUD &= ~HIDEHUD_MONEY;
     pPlayer->m_iHideHUD &= ~HIDEHUD_TIMER;
     pPlayer->m_afPhysicsFlags &= ~PFLAG_OBSERVER;
}

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
004
28.08.2001, 15:37
thinktank



K , ich wusste halt auch nicht wo ich das einbauen sollte, da es wahnsinnig viele Möglichkeiten gibt. Danke !

--

zum Seitenanfang zum Seitenende Profil || Suche
005
28.08.2001, 15:43
thinktank



Ich habs jetzt hinbekommen, ist aber ein bischen kürzer :
if (!pPlayer->pev->playerclass)
{
pPlayer->StartObserver(Vector(0,0,0),Vector(0,0,0));
return;
}

--

zum Seitenanfang zum Seitenende Profil || Suche
006
28.08.2001, 16:48
thinktank



Hmm das geht zwar einigermaßen , aber es gibt immer noch was komisches :
Man kann keine Waffen auswählen, obwohl man einen item_suit hat .....
(also nach dem respawnen)

--

zum Seitenanfang zum Seitenende Profil || Suche
007
28.08.2001, 18:33
thinktank



Sind wahrscheinlich wieder vergessene Flags in der StopObserver .....
Weil ich hab bemerkt, dass die tripmines nicht mehr auf mich reagieren ....

--

zum Seitenanfang zum Seitenende Profil || Suche