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



hi leute. sorry wenn ich euch stresse mit meinen blöden fragen :-)

ich möchte gerne das wenn ein spieler im game gelandet ist, das er dann eine willkommens nachricht sieht. den code habe ich mir so vorgestellt:

hudtextparms_t hText;
memset(&hText, 0, sizeof(hText));
char szChestshot[200];

hText.channel = 2;
hText.x = 0.0;
hText.y = 0.0;
hText.effect = 0;
hText.r2 = hText.g2 = hText.b2 = 0;
hText.a1 = 100;
hText.r1 = 81;
hText.g1 = 249;
hText.b1 = 0;
hText.a2 = 0;
hText.fadeinTime = 0.75;
hText.fadeoutTime = 0.75;
hText.holdTime = 60.0;
hText.fxTime = 0;
sprintf(szChestshot, "Willkommen!");
UTIL_HudMessage(this, hText, szChestshot);

blos wohin damit das es auch klappt?
versucht hab ichs bei:

void CHalfLifeMultiplay :: InitHUD( CBasePlayer *pl )

da gibts aber den fehler:

error C2664: 'UTIL_HudMessage' : cannot convert parameter 1 from 'class CHalfLifeMultiplay *const ' to 'class CBaseEnt
ity *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.

:-(((

--

zum Seitenanfang zum Seitenende Profil || Suche
001
22.12.2001, 00:00
RirA



hehe immernoch szChestshot...
such mal nach spawn oder connect!

--

zum Seitenanfang zum Seitenende Profil || Suche
002
22.12.2001, 00:10
fischKopf



/*hehe immernoch szChestshot...*/
:-)) hab den variablen namen mal so gelassen da er mich ned stört *g*

SO:
ich habs bei der BOOL ClientConnect funktion zwar versucht, aber da krieg ich mit obigem code probleme :-( ....

fehler:

error C2673: 'ClientConnect' : global functions do not have 'this' pointers

:-(

--

zum Seitenanfang zum Seitenende Profil || Suche
003
22.12.2001, 20:01
fischKopf



weis es niemand? :-((

--

zum Seitenanfang zum Seitenende Profil || Suche
004
22.12.2001, 23:53
hausi



Quellcode:
CBasePlayer *pPlayer = GetClassPtr((CBasePlayer *)pev);
hudtextparms_t hText;
memset(&hText, 0, sizeof(hText));
char szChestshot[200];

hText.channel = 2;
hText.x = 0.0;
hText.y = 0.0;
hText.effect = 0;
hText.r2 = hText.g2 = hText.b2 = 0;
hText.a1 = 100;
hText.r1 = 81;
hText.g1 = 249;
hText.b1 = 0;
hText.a2 = 0;
hText.fadeinTime = 0.75;
hText.fadeoutTime = 0.75;
hText.holdTime = 60.0;
hText.fxTime = 0;
sprintf(szChestshot, "Willkommen!");
UTIL_HudMessage(pPlayer, hText, szChestshot);

Habs zwar nicht getestet, sollte aber gehen. Einfach in die ClientConnect.

--


Dieser Beitrag wurde am 22.12.2001 um 23:54 von Superhausi bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
23.12.2001, 01:43
fischKopf



hi Superhausi :-)
vielen dank für deine antowrt. hab das gleich mal versucht aber klappt nicht ganz :-(

fehler:
error C2065: 'pev' : undeclared identifier

hmm, was muss ich den noch machen, das es klappt? :-)

--

zum Seitenanfang zum Seitenende Profil || Suche
006
23.12.2001, 10:15
hausi



Was braucht UTIL_HudMessage() für einen Parameter (den ersten)? Falls das ein CBaseEntity oder CBasePlayer ist, musst du den Pointer auf pPlayer ohne das pev machen.

--

zum Seitenanfang zum Seitenende Profil || Suche
007
23.12.2001, 11:39
Archangel



nee, UTIL_HudMessage braucht afaik schon nen CBasePlayer ptr
aber der fehler liegt in der zeile:
CBasePlayer *pPlayer = GetClassPtr((CBasePlayer *)pev);

in der ClientConnect wird nämlich kein entvars_t ptr übergeben, sondern ein edict_t ptr (pEntity), also mss vor dieser zeile noch eingefügt werden:

entvars_t *pev = &pEntity->v;

dann sollte es worken

--

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

zum Seitenanfang zum Seitenende Profil || Suche
008
23.12.2001, 14:01
fischKopf



@Archangel: Danke. nun geht das compilieren zwar, abe beim öffnen eines spiels stürzt der server kurz vor dem joinen ab :-(((

so sieht der code aus:

BOOL ClientConnect( edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ] )
{
entvars_t *pev = &pEntity->v;
CBasePlayer *pPlayer = GetClassPtr((CBasePlayer *)pev);
hudtextparms_t hText;
memset(&hText, 0, sizeof(hText));
char szChestshot[200];

hText.channel = 2;
hText.x = 0.0;
hText.y = 0.0;
hText.effect = 0;
hText.r2 = hText.g2 = hText.b2 = 0;
hText.a1 = 100;
hText.r1 = 81;
hText.g1 = 249;
hText.b1 = 0;
hText.a2 = 0;
hText.fadeinTime = 0.75;
hText.fadeoutTime = 0.75;
hText.holdTime = 60.0;
hText.fxTime = 0;
sprintf(szChestshot, "Willkommen!");
UTIL_HudMessage(pPlayer, hText, szChestshot);

return g_pGameRules->ClientConnected( pEntity, pszName, pszAddress, szRejectReason );

// a client connecting during an intermission can cause problems
// if (intermission_running)
// ExitIntermission ();

}

falls der code nicht in BOOL ClientConnect muss, wohin sonst?
bei void CHalfLifeMultiplay :: InitHUD( CBasePlayer *pl ) hab ichs breits versucht, klappt nicht. compiler problem :-((

ich verzweifle :-((

--

zum Seitenanfang zum Seitenende Profil || Suche
009
23.12.2001, 14:22
Archangel



nunja, das is so ne Sache mit ClientConnect
der CBasePlayer existiert noch nich wirklich, außerdem wird die funktion auch aufgerufen wenn der player nich joinen kann afaik..

schreib deinen code mal in ClientPutInServer (ans ende)

diesen code
entvars_t *pev = &pEntity->v;
CBasePlayer *pPlayer = GetClassPtr((CBasePlayer *)pev);
kannst du weglassen, der steht schon in der funktion

--

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

zum Seitenanfang zum Seitenende Profil || Suche
010
23.12.2001, 14:59
fischKopf



hm das klappt leider auch nicht :-(((
nun geht zwar alles (compilieren, ins game kommen), aber der text wird nicht angezeigt.

*heul*

--

zum Seitenanfang zum Seitenende Profil || Suche
011
23.12.2001, 15:22
RirA



weil das schon längst zu ende ist, bis man dann im spiel ist...
such die richtige funktion! zB Spawn und dann halt nur beim ersten mal anzeigen lassen...

--

zum Seitenanfang zum Seitenende Profil || Suche
012
23.12.2001, 16:46
fischKopf



menno. ich versteh das nicht. ich habs nun unter der funktion:

void CHalfLifeMultiplay :: PlayerSpawn( CBasePlayer *pPlayer )

aber der text wird nach dem Spawn nicht angezeigt. :-((
nun weis ich echt nicht mehr weiter. ich hätte schwören können das es da angezeigt werden muss. :-((

--

zum Seitenanfang zum Seitenende Profil || Suche
013
23.12.2001, 16:49
Archangel



ähm RirA, das glaub ich eher weniger, wegen
hText.holdTime = 60.0;

das sollte also schon seine zeit da stehen bleiben..

--

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

zum Seitenanfang zum Seitenende Profil || Suche
014
23.12.2001, 16:56
RirA



void CBasePlayer::Spawn( void )
müsste es doch sein...

--

zum Seitenanfang zum Seitenende Profil || Suche
015
23.12.2001, 17:20
fischKopf



ich gebe mir gleich die kugel.

ganz am ende von:
void CBasePlayer::Spawn( void )

hab ich nun:
hudtextparms_t hText;
memset(&hText, 0, sizeof(hText));
char szChestshot[200];

hText.channel = 2;
hText.x = 0.0;
hText.y = 0.0;
hText.effect = 0;
hText.r2 = hText.g2 = hText.b2 = 0;
hText.a1 = 100;
hText.r1 = 81;
hText.g1 = 249;
hText.b1 = 0;
hText.a2 = 0;
hText.fadeinTime = 0.75;
hText.fadeoutTime = 0.75;
hText.holdTime = 60.0;
hText.fxTime = 0;
sprintf(szChestshot, "Willkommen!");
UTIL_HudMessage(this, hText, szChestshot);

ergebniss:
kein text erscheint :-((

--


Dieser Beitrag wurde am 23.12.2001 um 17:20 von fischKopf bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
016
23.12.2001, 17:33
fischKopf



komisch komisch. ich habs nun mal aus testzwecken unter:
void CBasePlayer::PackDeadPlayerItems( void )
getan. siehe da, der text steht sobald ds packet erstellt wurde.

--

zum Seitenanfang zum Seitenende Profil || Suche
017
23.12.2001, 17:57
RirA



hmm versuchs weiter :)

--

zum Seitenanfang zum Seitenende Profil || Suche
018
24.12.2001, 01:11
[PE]Spinator



- nm, sorry -

--

This post was written using Opera 7.0 (http://www.opera.com)


Dieser Beitrag wurde am 24.12.2001 um 01:14 von [PE]Spinator bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
019
24.12.2001, 11:14
hausi



Und du bist ganz sicher, dass du ein HalflifeMutliplay-Game startest? (Könnte ja sein...)

--

zum Seitenanfang zum Seitenende Profil || Suche
020
24.12.2001, 14:56
fischKopf



/* Und du bist ganz sicher, dass du ein HalflifeMutliplay-Game startest? */

yepp ;-)

frohe weihnachten... *g*

--

zum Seitenanfang zum Seitenende Profil || Suche