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


Hi,

Ich möchte die Spielerfarbe (topcolor,bottomcolor) ändern und das am besten serverseitig. Es soll so sein, das der Mod die Farbe des Spieler angibt, und der Spieler nix mehr dran ändern kann...

--

www.d3opencoop.com - A Doom3 Cooperative Mod

zum Seitenanfang zum Seitenende Profil || Suche
001
13.03.2002, 16:33
golloza



was für ne farbe des spielers?

--

zum Seitenanfang zum Seitenende Profil || Suche
002
13.03.2002, 16:40
Exec



g_engfuncs.pfnSetClientKeyValue( clientIndex, g_engfuncs.pfnGetInfoKeyBuffer( pPlayer->edict() ), "bottomcolor","0");

so gehts server-side, ansonsten weis ich nich weiter ...

--

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

zum Seitenanfang zum Seitenende Profil || Suche
003
13.03.2002, 17:12
Nicemice
Moderator


@golloza: Im Standard HL Deathmatch kann man bei den SpielerModels die Farben änderen, im Customize Menü, die Farben mein ich.

@da_EXE: genau sowas hab ich gesucht. Mit clientIndex ist wahrscheinlich der EntityIndex gemeint ?!

mmh, jetzt muß ich nur noch hinbekommen, das der Spieler die Farbe nicht selber verändern kann....

und noch ne Frage: Wie rechne ich einen Standrard R,G,B Wert auf die HL-Farb Scala um ?

edit: ich habs gefunden (wenns interessiert)
Quellcode:
void RGBtoHSV( float r, float g, float b, float *h, float *s, float *v )
{
float min, max, delta;
min = MIN( r, g, b );
max = MAX( r, g, b );
*v = max; // v
delta = max - min;
if( max != 0 )
*s = delta / max; // s
else {
// r = g = b = 0 // s = 0, v is undefined
*s = 0;
*h = -1;
return;
}
if( r == max )
*h = ( g - b ) / delta; // between yellow & magenta
else if( g == max )
*h = 2 + ( b - r ) / delta; // between cyan & yellow
else
*h = 4 + ( r - g ) / delta; // between magenta & cyan
*h *= 60; // degrees
if( *h < 0 )
*h += 360;
}

--

www.d3opencoop.com - A Doom3 Cooperative Mod


Dieser Beitrag wurde am 13.03.2002 um 17:43 von Nicemice bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
13.03.2002, 18:20
Exec



nomodels "1" in die liblist.gam .... da kann man aba euch kein model mehr wählen, wenns sowas geben sollte, würde ich das dann eben per vgui machen....

aso .... naja, wenn der player respawnt, dann wird die farbe so umgeändert ... ich glaube nich, das jemand immer wieder duíe farbe umstellt ...

--

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

zum Seitenanfang zum Seitenende Profil || Suche
005
13.03.2002, 18:22
Nicemice
Moderator


naja, man kann die farbe über die console ändern: einfach 'topcolor XY' eingeben... von daher wollte ich das schon sperren.

--

www.d3opencoop.com - A Doom3 Cooperative Mod

zum Seitenanfang zum Seitenende Profil || Suche
006
13.03.2002, 20:02
RirA



Check einfach in der PreThink ob die Farbe von deinem vorgegebenen Wert unterschiedlich ist, wenn ja, dann resette es...

--

zum Seitenanfang zum Seitenende Profil || Suche
007
13.03.2002, 23:48
Nicemice
Moderator


Ich hab ne gerade eine bessere Funktion gefunden wo das reinpasst

g_pGameRules->ClientUserInfoChanged( ... );

--

www.d3opencoop.com - A Doom3 Cooperative Mod


Dieser Beitrag wurde am 13.03.2002 um 23:53 von Nicemice bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
13.03.2002, 23:58
Another1



du kannst das sperren, genau wie im normal hl teamplay auch der modelwechsel auf die valid teams limitiert is, dazu gehst du in die function
void CHalfLifeTeamplay::ClientUserInfoChanged( CBasePlayer *pPlayer, char *infobuffer )
die wird immer aufgerufen wenn der player über die console oso irgendetwas wie topcolor,bottomcolor,name,model [...] verändert. Hier guckst du dann ob, wenn top/bottomcolor geändert wurde, für diese cvars erlaubte werte eingesetzt wurden, wenn nich, dann änderst du das eben wieder zurück ... hoffe das war nich allzu unverständlich.

[EDIT] ... argh

--

Another1

...relaxing..atm =)
... und Schweiz suckt!


Dieser Beitrag wurde am 13.03.2002 um 23:59 von Another1 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
009
25.03.2002, 23:23
Nicemice
Moderator


Klappt leider nicht ganz.
Irgendwie stimmt die Half-Life Farb Scala nicht mit der HSV Farbscala überein - zumindest nicht nach meinen Tests.
Ich hab unabhängig von dem o.g. Code mal ein paar Werte durchprobiert und mit einem Malprogramm verglichen und bin ratlos.

Ich weiß nicht das HL da für eine komische Farbskala benutzt. Hat da jemand eine Idee ?

--

www.d3opencoop.com - A Doom3 Cooperative Mod

zum Seitenanfang zum Seitenende Profil || Suche
010
26.03.2002, 22:14
[GOD]ShadowLord



mir würde da nur eins einfallen:
bau doch ein,dass man per konsolen-command(mit bind auf taste) die
rot/grün/blau-werte in fünferschritten erhöhen/senken kann,dann machst
du
entweder ne tabelle und packst die resultierenden farben da rein
oder guckst einfach welche rgb-werte deine gewünschte farbe ergeben.

ich weiss,dass das sehr umständlich ist,aber mir fällt wie gesagt keine
andere methode ein,um das ordentlich zu testen.

ich persönlich glaub,dass hl nur ne fadinglist benutzt,die alle farbtöne
enthält.das ist sehr praktisch,da man so den schieberegler nicht so
komplex machen muss(10 pixel nach rechts -> 10 töne inner farbskala)

beispiel für ne fadinglist-palette

rot-orange-gelb-grün etc. bei "-" wird das dann gefaded,so dass man
fliessende farben bekommt.(unschärfe?)

--

they come in peace - and go in pieces

zum Seitenanfang zum Seitenende Profil || Suche
011
27.03.2002, 22:27
zufall



also des mit der topcolor und bottomcolor ist so:
die skala fängt bei 0 an und gteht bis 500 oso!
bei hl geht das folgendermaßen: wenn 0 gelb wär und 100 blau dann ist 50 grün.
den 3 grund-farben wurden einfach zahlen zugeordnet und werte die dazwischen liegen sind dann halt mischungen aus den grund farben je nach dem wie weit ein wert von einer fabe weg ist!
teste einfach in hl welcher wert welche farbe ergibt und setzt das in dein code ein!
cu

-------------------------------------------
www.scientistmod.de
webmaster@scientistmod.de

--

zum Seitenanfang zum Seitenende Profil || Suche