Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
03.05.2007, 15:33
hackslash



Huhu,

ist es möglich per code ein bild oder ein Video für ein paar sekunden anzuzeigen bzw. abzuspielen? In meinem Mod kann man nicht sterben, sondern man wird, sobald man getroffen wird an der startposition wieder respawnt. Also dies sollte in der Funktion
int CBasePlayer::OnTakeDamage( const CTakeDamageInfo &inputInfo )
passieren aber irgendwie klappt das nicht ganz.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
03.05.2007, 16:08
feigling



Was heißt denn, klappt nicht ganz? Poste doch einfach mal den Code.

--

zum Seitenanfang zum Seitenende Profil || Suche
002
03.05.2007, 16:23
hackslash



int CBasePlayer::OnTakeDamage( const CTakeDamageInfo &inputInfo )
{
CVGuiScreen *overlay;
overlay->SetOverlayMaterial("test");
overlay->SetActive(true);

Spawn();
return 100;
}

1. er findet das material nicht obwohl es im Order liegt
2. weis nicht ob der Code denn der rihctige ist, wenn er das material finden würde

--

zum Seitenanfang zum Seitenende Profil || Suche
003
03.05.2007, 21:48
Bluthund



Quellcode:CVGuiScreen *overlay;
overlay->SetOverlayMaterial("test");
Was soll das denn werden? Der Pointer zeigt doch sonstwohin...

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-

zum Seitenanfang zum Seitenende Profil || Suche
004
04.05.2007, 08:29
hackslash



ja ich weis ebend nicht wies geht... übern Hammer editor isses ja einfach da gibts env_screenoverlay. im Client hab ich sowas ähnliches schon probiert mit

IMaterial *pMaterial = materials->FindMaterial("bild.vtf",TEXTURE_GROUP_CLIENT_EFFECTS, false );
if ( !IsErrorMaterial( pMaterial ) )
{
view->SetScreenOverlayMaterial( pMaterial );
}

aber das hat auch nicht geklappt :(.

--

zum Seitenanfang zum Seitenende Profil || Suche
005
04.05.2007, 10:27
feigling



Warum guckst du dann nicht einfach mal im Code von env_screenoverlay nach?

--

zum Seitenanfang zum Seitenende Profil || Suche
006
04.05.2007, 11:11
hackslash



hab ich gemacht aber da gibts keine funktion zum anzeigen, scheinbar nur über Hammer verwendbar. Wie geht das denn nun genau?

--

zum Seitenanfang zum Seitenende Profil || Suche
007
04.05.2007, 15:52
Bluthund



Zitat:
hackslash postete
hab ich gemacht aber da gibts keine funktion zum anzeigen, scheinbar nur über Hammer verwendbar. Wie geht das denn nun genau?
Du weißt aber schon, dass die Entities, die du im Hammer erstellst, nur genau das tun können, was im Code für ihre Funktionsweise vorgesehen ist. Ergo muss es eine Funktion in den Sourcen des env_screenoverlay geben, die genau diese Funktionsweise realisiert.
Das Problem an deinem Code oben ist, dass du einen Pointer erzeugst aber kein Objekt auf das der Pointer zeigt (bzw. du ihm auch keine Adresse gibst, auf der ein Objekt der Klasse CVGuiScreen liegt).

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-

zum Seitenanfang zum Seitenende Profil || Suche
008
08.05.2007, 10:50
hackslash



ok das anzeigen klappt jetzt:

if ( pPlayer->GetHealth() <= 0 )
{
IMaterial *pMaterial = materials->FindMaterial("console/background.vmt", TEXTURE_GROUP_CLIENT_EFFECTS, false );
if ( !IsErrorMaterial( pMaterial ) )
{
view->SetScreenOverlayMaterial( pMaterial );
}
}

aber wie kann ich das overlay wieder ausblenden??

ich habs versucht mit view->SetScreenOverlayMaterial(NULL); aber da hat er alles ausgeblendet (auch die waffen).

--

zum Seitenanfang zum Seitenende Profil || Suche
009
09.05.2007, 10:00
hackslash



weis denn keiner wie man nur dieses material wieder ausblenden kann ohne alles andere auch auszublenden???

--

zum Seitenanfang zum Seitenende Profil || Suche