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



Am Ende des Spectatortuts von Robin Walker steht ja:

So, das war's. Jetzt solltest du dein Mod starten, "spectate" eintippen und im Spectator-Modus herumfliegen können. Du müsstest noch in der client.dll anpassen, was passiert, wenn du die Enter-Taste drückst. Zur Zeit wird das TFC-Classmenu angezeigt, was du sicher nicht haben willst.
Am einfachsten ist es wahrscheinlich, wenn du einfach ein "stopspectate"-Command senden lässt und dann in der Server-DLL entsprechend drauf reagierst.

Hmm , wie mache ich das jetzt ? Weil die Abfrage, ob Enter gedrückt ist, scheint in der Engine verwurzelt zu sein.

P.S.: Noch ein Mini-Prob : Das HUD ist bei mit deaktiviert, wenn man aus dem Spectator-Mode "zurückkommt", wie kann ich das beheben ?

Thx !

--

zum Seitenanfang zum Seitenende Profil || Suche
001
18.08.2001, 22:10
thinktank



Was ist das Problem an dem Problem ;-) ?

Bitte , strengt eure grauen Zellen an ! *bettel*

--

zum Seitenanfang zum Seitenende Profil || Suche
002
21.08.2001, 12:01
thinktank



Warg ! Wie hat denn das CS-Team das gelöst ? Oder haben die nur einfach
Die TeamMenu-Class "überschrieben" ?

Thx

--

zum Seitenanfang zum Seitenende Profil || Suche
003
21.08.2001, 12:48
Mazze



Das mit dem HUD deaktiviert:

So....das hab ich grad im Tutorial gefunden:

// Ein paar Flags setzen
m_iHideHUD = (HIDEHUD_HEALTH | HIDEHUD_WEAPONS);
m_afPhysicsFlags |= PFLAG_OBSERVER;
pev->effects = EF_NODRAW;
pev->view_ofs = g_vecZero;
pev->angles = pev->v_angle = vecViewAngle;
pev->fixangle = TRUE;
pev->solid = SOLID_NOT;
pev->takedamage = DAMAGE_NO;
pev->movetype = MOVETYPE_NONE;
ClearBits( m_afPhysicsFlags, PFLAG_DUCKING );
ClearBits( pev->flags, FL_DUCKING );
pev->deadflag = DEAD_RESPAWNABLE;
pev->health = 1;

Das musst du halt wieder ändern.....

Ungefähr so:
pPlayer->m_iHideHUD &= ~HIDEHUD_WEAPONS;
pPlayer->m_iHideHUD &= ~HIDEHUD_HEALTH;
pPlayer->m_afPhysicsFlags &= ~PFLAG_OBSERVER;

Und den Rest natürlich noch.....movetype und so, aber das war mir jetzt zuviel arbeit, das auch noch zu posten! *gg*

--

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

zum Seitenanfang zum Seitenende Profil || Suche
004
21.08.2001, 19:05
Mazze



OK. Ich hab jetzt auch das Tutorial gemacht, aber bei mir ist das HUD nicht deaktiviert, wenn ich den Modus wieder verlasse!
Was meinst du mit deaktiviert?
Alles?
Du kannst nichts machen?

Zu der Enter-Taste:
Das steht in der client.dll in dieser Funktion:
Quellcode:
int TeamFortressViewport::KeyInput( int down, int keynum, const char *pszCurrentBinding )

Da steht sowas:
Quellcode:
// Enter gets out of Spectator Mode by bringing up the Team Menu
if (m_iUser1 && gEngfuncs.Con_IsVisible() == false )
{
if ( down && (keynum == K_ENTER || keynum == K_KP_ENTER) )
       ShowVGUIMenu( MENU_TEAM );
}

Einfach löschen bzw. ausklammern!

Ich hab das ganz einfach gefunden: Wenn man Enter drückt kommt ja das VGUI Auswahlmenü. Und zwar das MENU_TEAM, aber das ist nebensächlich!
Ich hab eine Funktion in der mp.dll die das VGUIMenu anzeigt namens ShowVGUI die hab ich gesucht und hatte um die 10 Treffer. Die bin ich einfach durchgegangen und hab gesehen, dass es da nicht ist!
Dann bin ich einfach in die client.dll gegangen und hab nach der Funktion ShowVGUIMenu gesucht. Gleich der 2. Treffer stimmte!

Ich wollte das nur mal sagen, da du ja schon länger dieses Problem zu haben scheinst (3 posts vor meinem)!

--

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

zum Seitenanfang zum Seitenende Profil || Suche
005
21.08.2001, 20:11
thinktank



Upps sorry, ich hab das übersehen. Ich hab nach ShowTeamMenu() (hätte keinen Sinn gemacht =) ) gesucht.
Thx !
[edit]
Naja , ein paar Tage hab ich gewartet (bin halt ungeduldig) =) .
Aber bei thewall.de ist man gewohnt, nach max. einem Tag min. eine Antwort zu bekommen.
[/edit]

--


Dieser Beitrag wurde am 21.08.2001 um 20:13 von thinktank bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
21.08.2001, 20:41
Mazze



Hier noch eine Frage, die keinen eigenen Thread verdient hat:

Kann man diesen Code noch effizienter machen?

Quellcode:
edict_t *pent;
ItemInfo Item;

int istr = MAKE_STRING(name);

pent = CREATE_NAMED_ENTITY(istr);

memset( &Item, 0, sizeof Item );

CBaseEntity *pEntity = CBaseEntity::Instance(pent);

((CBasePlayerItem*)pEntity)->GetItemInfo(&Item);

pPlayer->m_iWeaponWeight += Item.iWeight;

Ich will doch nur das Gewicht einer Waffe wissen....

--

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

zum Seitenanfang zum Seitenende Profil || Suche