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



Hi, ich hab auch mal wieder ne Frage. Und zwar möchte ich gerne unter bestimmten Bedingungen das Viewmodel (also die Waffe) ausblenden. Es geht aber leider für meinen Code nicht, einfach pPlayer->pev->viewmodel auf iNullString zu setzen (warum ist jetzt zu aufwendig zu erklären - nehmt es als Tatsache hin).
Also muss ich wohl clientseitig an das Viewmodel ran. Gut, das bekomme ich mit GetViewModel, und dann hab ich mir gedacht, ich setze view->baseline.effects |= EF_NODRAW, oder view->baseline.rendermode auf kRenderTransTexture und renderamt auf 0. Pustekuchen, weder das eine noch das andere funktioniert. Als rendermode scheint er auch nur kRenderTransAdd zu akzeptieren, der geht, aber leider ist der auch bei renderamt = 0 nicht komplett unsichtbar. Ich hab auch Glowshell und die ganzen netten Sachen ausprobiert, ich kann alles mit dem Viewmodel anstellen, aber leider kann ich's nicht verstecken. Wie geht das?
Achja, falls es was zur Sache tut: Ich rufe den Code in der V_CalcNormalRefdef auf.

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
001
29.10.2001, 23:12
Basiror



gegenfrage warum kannste es net einfach auf nullstring setzen?
brauchste irwendwelche attachments?

--

Basiror's Labs Game-Development page

Hifle in form von Tutorials, Artikeln und anderem wird dankbar angenommen


Dieser Beitrag wurde am 29.10.2001 um 23:13 von Basiror bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
30.10.2001, 07:17
hausi



Und wieso nicht einfach die Holster-Funktion Server-Side aufrufen? Sieht zusätzlich auch noch viel echter aus...

--

zum Seitenanfang zum Seitenende Profil || Suche
003
30.10.2001, 12:51
TheTinySteini



Rah, verdammt, ich hab doch gesagt, es geht net mit iStringNull!
Ok, nun gut, ich erklär's euch doch, warum es net geht:
Ich hab eine Sniper, und deren Fadenkreuz mach ich mit TriAPI. So, nun wird aber leider das Viewmodel vor die TriApi gezeichnet, also muss ich das Viewmodel ausschalten, wenn man im Zoom ist. Soweit kein Problem. Aber: ich kann das Viewmodel nicht einfach auf iStringNull setzen, weil ich nach jedem Schuss eine Waffenanimation aufrufe, ähnlich wie bei der AWM in CS. So, wenn jetzt aber kein Waffenmodel vorhanden ist, wird dieser Animationsaufruf einfach so lange aufgeschoben, bis ein Waffenmodel da ist. Soll heißen, wenn jetzt jemand während dieser Animation aus dem Zoom rausgeht, dann fängt die Animation verspätet an, nämlich dann, wenn das viewmodel wieder gesetzt ist, bricht dann aber abrupt ab, weil direkt nach der "Nachlade"-Animation die idle-Anim gesetzt wird (durch WeaponIdle() ).
Zu kompliziert? Ich verdeutliche das ganze mal mit ner Grafik:

Ich hoffe jetzt ist es klar... die Animation wird verspätet abgespielt und dann von der WeaponIdle() abgebrochen, was natürlich blöde aussieht. Also muss ich das Model weiterhin geladen haben, aber halt unsichtbar.

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
004
30.10.2001, 15:09
McMapper



Tadaaaa ich hab meinen grossen auftritt ;)
in der hud_redraw.cpp machste in die

void CHud::Think(void)

Quellcode:
cl_entity_t *view = gEngfuncs.GetViewModel();
if (verstecke) // ich setze das mit einer msg, denke du weisst wie ;)
{
view->curstate.renderamt = 0;
        view->curstate.rendermode = kRenderTransAdd;
}
    else
{
view->curstate.renderamt = 255;
view->curstate.rendermode = kRenderNormal;
}

das funzt, habs auch in meiner mod, ich hab sooo elend lange gehabt bis ich endlich uf kRenderTransAdd gekommen bin ...

ka obs bei deiner func auch so geht, ich denke es muss jedes frame gemacht werden.

--


Dieser Beitrag wurde am 30.10.2001 um 15:15 von McMapper bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
30.10.2001, 16:02
TheTinySteini



Hunh? Genauso hab ich das auch schon ausprobiert, ich hab's jetzt extra nochmal in die Hud::Think geschrieben, nix. Zwar ist dann das Model transparenter, aber nicht unsichtbar. Sieht zwar ganz nett aus, aber leider nicht der gewünschte Effekt. Seltsamerweise scheint es auch nix zu ändern, wenn ich renderamt auf 220 stelle, es wird nicht opaquer... strange...

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
006
30.10.2001, 16:10
Archangel



hmm, so ganz das gleiche is das nich:

TTT:
view->baseline.rendermode ...

McMapper:
view->curstate.rendermode ....

versuch mal in der V_CalcNormalRefdef sowohl die einstellungen für baseline, curstate und .. hmm, da gibs nochn drittes... prevstate? gleichzeitig so zu setzen....

ob das was bringt, kA, aber versuchs wenigstens mal

--

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
007
30.10.2001, 16:38
TheTinySteini



Ja, hab ich auch alles getestet:
Quellcode:
view = gEngfuncs.GetViewModel();
view->curstate.renderamt = 0;
view->curstate.rendermode = kRenderTransAdd;
view->baseline.renderamt = 0;
view->baseline.rendermode = kRenderTransAdd;
view->prevstate.renderamt = 0;
view->prevstate.rendermode = kRenderTransAdd;

Mit diesem mangelnden Erfolg:

(keine Angst, das ist kein Screenshot aus Poke646, sondern aus meinem crappy Testmod =)

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
008
30.10.2001, 17:12
McMapper



kRenderNormal, // src
kRenderTransColor, // c*a+dest*(1-a)
kRenderTransTexture, // src*a+dest*(1-a)
kRenderGlow, // src*a+dest -- No Z buffer checks
kRenderTransAlpha, // src*srca+dest*(1-srca)
kRenderTransAdd, // src*a+dest

irgendeins von dem wirds sein ...

--

zum Seitenanfang zum Seitenende Profil || Suche
009
30.10.2001, 17:31
RirA



vielleicht is das jetzt ne blöde idee, aber warum machst du nicht einfach ein submodel, das unsichtbar ist...

--

zum Seitenanfang zum Seitenende Profil || Suche
010
30.10.2001, 18:04
hausi



Hmm. So, wie ich dein Grafik oben "gelesen" habe, könntest du doch einfach die IdleThink später beginnen lassen. Würde das dein Problem dann lösen?

--

zum Seitenanfang zum Seitenende Profil || Suche
011
30.10.2001, 18:13
Retro



Ist zwar ne ziemlich absurde Idee, aber dieser weiße Schimmer den die Hivehand hat, kommt mir von den Sprites+Nebel bekannt vor.

Und da es bei einem geht, und bei dir nicht könnte ich mir vorstellen das auch hier mal wieder der böse Nebel am werk war...

Sry wenns nicht stimmt, war nur mein erster Gedanke als ich das Bild gesehen hab.

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
012
30.10.2001, 18:47
Rockefeller



also an der baseline am besten garnicht rumfummeln! das ist nämlich für den netcode gedacht, d.h. bei einer entity werden nur die von baseline verschiedenen werte übertragen, wenn ihr aber jetzt an der baseline rumfummelt, dann kann die engine diese packete nicht mehr in jedem fall korrekt zusammensetzen.

In deinem Fall also eher nur prev und curstate.

--


Dieser Beitrag wurde am 30.10.2001 um 18:51 von Rockefeller bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
013
30.10.2001, 18:52
TheTinySteini



@Rockefeller: ja, ich weiß, aber es war ja auch nur testweise. Normalerweise müsste es reichen, curstate zu verändern. Aber da sich nix tat, hab ich einfach sicherheitshalber noch die baseline verändert.

@McMapper: die hab ich mittlerweile alle ausprobiert, aber ich werde nochmal rumtesten

@Superhausi: Nein, das würde zwar das Problem lösen, aber dafür das "Nachladen" verzögern. Schlecht.

@RirA: wenn alle Stricke reißen, dann wohl so, ja. Aber das würde ich als Pfusch betrachten =P

@Retro: nein, mit dem Nebel hat es nix zu tun, es geht auch ohne Nebel net =)

Hachja...

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
014
30.10.2001, 18:54
RirA



das is auch pfusch, oder wie ich es nenne ein T R I C K [klingt besser]

--

zum Seitenanfang zum Seitenende Profil || Suche
015
30.10.2001, 20:15
McMapper



für den code für das sub model wär ich dankbar ...
Mich wundert nur dass Texture cl side nicht funktioniert, serverside kannich das model komplett unsichtbar machen (siehe dazu mein tut auf ThW/coding)

--

zum Seitenanfang zum Seitenende Profil || Suche
016
02.11.2001, 20:10
Creeper



Also ich habs schon mal geschafft das Playermodel unssichtbar zu machen, ich guck zuhause mal nach, was ich da geändert habe, ok ?

--

Head Coder:Sudden-Impact

Listen to CKY you fuCKYrs http://www.ckymusic.com

zum Seitenanfang zum Seitenende Profil || Suche
017
02.11.2001, 21:03
TheTinySteini



jo, wäre gut, thx schonma...

Ich hab zwar mittlerweile alles ein bisschen umgestellt, aber die schönste Lösung wäre immer noch ein unsichtbares Viewmodel.

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche