Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
12.08.2001, 16:24
Retro



Moin.

Unser Modeler (Alpha) hat jetzt nen paar schöne Hände gemodelt, und die habe ich nun geskinnt, einmal mit schwarzen Ärmeln, einmal mit tarnfarben und einmal mit snow-camo...

Die Hände sind nun auch an die HL-Waffen 'drangemacht' wurden, und jeder der drei skins (snow/flecktarn/schwarz) wurde jetzt mit in die Waffe übernommen. Es funzt auch alles.

Nun soll der Mapper in Worldcraft einstellen können, welche 'Ärmelfarbe' der Player in der Map haben soll...

Dafür habe ich die FGD so geändert:
Quellcode:@SolidClass = worldspawn : "World entity"
[
message(string) : "Map Description / Title"
skyname(string) : "environment map (cl_skyname)"
sounds(integer) : "CD track to play" : 1
light(integer) : "Default light level"
WaveHeight(string) : "Default Wave Height"
MaxRange(string) : "Max viewable distance" : "4096"
chaptertitle(string) : "Chapter Title Message"
startdark(choices) : "Level Fade In" : 0 =
[
0 : "No"
1 : "Yes"
]
gametitle(choices) : "Display game title" : 0 =
[
0 : "No"
1 : "Yes"
]
newunit(choices) : "New Level Unit" : 0 =
[
0 : "No, keep current"
1 : "Yes, clear previous levels"
]
mapteams(string) : "Map Team List"
defaultteam(choices) : "Default Team" : 0 =
[
0 : "Fewest Players"
1 : "First Team"
]
hands(choices) : "Hand-Color" : 0 =
[
0 : "Black"
1 : "Cammo"
2 : "Snow"
]
]

So, ich dürfte nu ne Variable haben (hands) die entweder 0 oder 1 oder 2 ist...
Die Frage ist wie ich die Variable im Code wieder abrufen kann?

Desweiteren: wo muss ich den Code hinsetzen der den Skin des v_ Models bestimmt? In die CBasePlayer::Spwan denke ich mal?

Aber irgendwie ist das ziemlich schwammig... da das v_ Model ja bei jeden Weaponchange wechselt... müßte ich da ne neue Variable machen die in jeder waffen.cpp abgefragt wird und dann den Skin des v_ Models bestimmt...

Na gut, das krig ich schon nopch hin, aber mir gehts darum wie ich die Variable abfrage die ich in der Map bestimmt habe... das habe ich schon nen bissel aus den anderen Entities abgeguckt, aber es mag nicht funktionieren... ich hoffe da hat jemand mal ne Lösung für mich...

--

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 */


Dieser Beitrag wurde am 14.08.2001 um 21:41 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
12.08.2001, 16:30
Archangel



du kannst die variable in der CWorld::KeyValues(); abfragen... du musst dort anfügen (vor dem abschließendem else):

else if(FStrEq(pkvd->szKeyName, "hands")) {
int handtype = atoi(pkvd->szValue);
}

so jetzt hast du den hand typ in der variable handtype, kannst damit anstellen was du willst :)
(PS: ich würd die handtype-variable aber global deklarieren, nich lokal wie im codebeispiel, damit du sie auch extern nutzen kannst...)

--

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
002
12.08.2001, 21:14
Retro



So, das ist erledigt... Thx
Wie mache ich jetzt den Rest? *gg*

-nein, scherz! =)

Ich brauch das ganze ja in jeder waffen.cpp wo deklariere ich nu am besten die Variable handtype? hmm...

--

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
003
14.08.2001, 21:44
Retro



Bitte nur nochmal ganz schnell, wo in welcher cpp kann ich die Variable 'handtype' mit Quellcode:int handtype deklarieren, damit ich sie in jeder waffen.cpp und auch im restlichen Code nutzen kann?

Ich hab bisher ausschließlich cpp-interne Variablen genutzt - also nischt mit Global, wo kann ich die jetzt deklarieren? :|

--

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
004
14.08.2001, 21:55
Archangel



hmm.. du könntest sie in der gpGlobals struct deklarieren, kA welche datei das jetzt ist, such mal nach globalvars_t
oder du deklarierst sie in der world.cpp als global, und schreibst dann in die weapons.h:
extern int handtype;
dann ist die variable in jeder waffen.cpp datei vorhanden

--

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
005
14.08.2001, 21:56
RirA



benutz doch einfach extern int...

--

zum Seitenanfang zum Seitenende Profil || Suche
006
14.08.2001, 22:20
Retro



So, ich hab jetzt am Anfang von der world.cpp Quellcode:int handtype; geschrieben, weiter unten dann: Quellcode:else if ( FStrEq(pkvd->szKeyName, "hands") )
{
handtype = atoi(pkvd->szValue);
}
Und dann in der weapons.h ganz oben: Quellcode:extern int handtype; Und zum schluss das in die Spawn-Funktion der Waffe: Quellcode: switch(handtype)
{
case 0: pev->skin = 0;
break;
case 1: pev->skin = 1;
break;
case 2: pev->skin = 2;
break;
}

Es dürfte so funzen - es kommen auch keiner Fehler, aber ich will lieber mal nachhaken ob ich alles richtig gemacht hab, also? alles korrekt?

--

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
007
14.08.2001, 22:26
Firo9



wird aber sowieso nicht klappen, da dun den skin eines waffenviewmodels nicht serversided verändern kannst.

--

cya,
Firo9

zum Seitenanfang zum Seitenende Profil || Suche
008
14.08.2001, 22:34
Retro



Was is denn das jetzt wieder für ne scheiße?! =(

Ganz sicher das es nicht klappt?
Aber wie soll ich es denn anstellen, in der client.dll gibt es einen solchen Teil ja noch nichtmal...

--

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
009
15.08.2001, 04:20
Another1



da is der clientside code zum ändern des skins einer waffe:

cl_entity_s* viewEnt = gEngfuncs.GetViewModel();
if(viewEnt)
{
viewEnt->curstate.skin = YourSkinNumberHere;
}

--

Another1

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

zum Seitenanfang zum Seitenende Profil || Suche
010
15.08.2001, 13:27
Retro



Hmm, jetzt geht der scheiß mit den Messages wieder los! =\

--

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