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



hi

ich möchte das so wav files abgespielt werden wenn man z.B. "lol" schreibt.
verscuth hab ich das in der client.cpp und zwar bei der Host_Say funktion. Und zzwar so:

valve code:
// turn on color set 2 (color on, no sound)
if ( teamonly )
sprintf( text, "%c(TEAM) %s: ", 2, STRING( pEntity->v.netname ) );
else
sprintf( text, "%c%s: ", 2, STRING( pEntity->v.netname ) );

unter der else anweisung mein code:

if(text == "lol")
{
EMIT_SOUND(ENT(player->pev), CHAN_STATIC, "misc/lol.wav", 1, ATTN_NORM);
}

aber WEDER ich noch die spieler hören etwas. achja und bei precache habe ich die "lol.wav" natürlich drin.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
20.01.2004, 13:50
Killing Me Softly



zwei Fehler:
1. An der Stelle, an dem du den Code eingefügt hast, steht in 'text' der Name desjenigen, der den Text geschrieben hat (wahlweise mit '(TEAM) davor) und nicht das was er geschreiben hat.
2. Zeichenketten vergleicht man mit strcmp()

folgender Code müsste funktionieren:
Quellcode:if ( teamonly )
   sprintf( text, "%c(TEAM) %s: ", 2, STRING( pEntity->v.netname ) );
else
  sprintf( text, "%c%s: ", 2, STRING( pEntity->v.netname ) );

j = sizeof(text) - 2 - strlen(text);  // -2 for /n and null terminator
if ( (int)strlen(p) > j )
   p[j] = 0;

strcat( text, p );       //<== char *p zeigt auf den eigentlichen Text, und mit dem vergleichen wir gleich unser 'lol'
strcat( text, "\n" );

//-------------------------------------------------
// neuer Code
//-------------------------------------------------
if(strcmp(p,"lol")==0)
{
   EMIT_SOUND(ENT(player->pev), CHAN_STATIC, "misc/lol.wav", 1, ATTN_NORM);
}
//-------------------------------------------------

--

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


Dieser Beitrag wurde am 20.01.2004 um 13:50 von Killing Me Softly bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
20.01.2004, 22:55
fischKopf



hey das klappt, vielen dank killing ;-)

--

zum Seitenanfang zum Seitenende Profil || Suche
003
21.01.2004, 16:27
fischKopf



oh scheisse.

das problem ist, nur der jenige der es schreibt hört auch den sound dazu. alle anderen spieler hören den sound nicht. nur wenn sie selber "lol" schreiben. was muss ich tun damit der spieler selber und alle anderen dann den sound hören?

--

zum Seitenanfang zum Seitenende Profil || Suche
004
21.01.2004, 16:30
Exec



das zeigt mal wieder das du überhaupt kein plan hast ....
Quellcode:EMIT_SOUND(ENT(player->pev), CHAN_STATIC, "misc/lol.wav", 1, ATTN_NORM);player->pev ist ja nur der spieler, der das schreibt

--

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

zum Seitenanfang zum Seitenende Profil || Suche
005
21.01.2004, 16:33
fischKopf



und was muss anstelle von player? client->pev?

--

zum Seitenanfang zum Seitenende Profil || Suche
006
21.01.2004, 17:00
fischKopf



also ich dachte mir das ganze so:

Quellcode:if(teamonly == false)
    {
        for(int x = 0; x < 35; x++)
        {
            if(strcmp(p,Sound[x].c_str()) == 0)
            {
                client = NULL;
                while ( ((client = (CBasePlayer*)UTIL_FindEntityByClassname( client, "player" )) != NULL) && (!FNullEnt(client->edict())) )
                {
                    EMIT_SOUND(ENT(client->pev), CHAN_STATIC, "", 1, ATTN_NORM);
                }
                break;
            }
        }
    }
fahre ich so richtig?

--

zum Seitenanfang zum Seitenende Profil || Suche
007
22.01.2004, 15:34
fischKopf



"das zeigt mal wieder das du überhaupt kein plan hast ...."

naja geht doch :-)
hab mir hald mal überlegt wie das wohl mit dem text gehen würde, das alle diesen bekommen. dann sah ich unten hald die stelle wo das abgeht. konnte es heute mit einem spieler testen, es tut.

--

zum Seitenanfang zum Seitenende Profil || Suche