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



Mojn, letztlich habe ich (endlich) rausgefunden wie man die Einstellungen von nem Entity in der Map auslesen kann...Quellcode:
void CMeinEntity::KeyValue( KeyValueData *pkvd )
{
if (FStrEq(pkvd->szKeyName, "eintrag_1_in_wc"))
{
Variable_1 = atof(pkvd->szValue); // für float
pkvd->fHandled = TRUE;
}
else if (FStrEq(pkvd->szKeyName, "eintrag_2_in_wc"))
{
Variable_2 = atoi(pkvd->szValue); // für integer
pkvd->fHandled = TRUE;
             }
}

Ist das jetzt richtig?

So, und nun die 2. Frage... damit kann ich die Einträge aus der Map auslesen, aber wie krige ich die Flags?

--

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
001
25.08.2001, 18:29
DarKnight



Das ist wohl richtig. Ausserdem gibt es eine Menge Tutorials auf DHCC, unter anderem auch meines, in dem das Auslesen von Entity Keys behandelt wird. Ist ja auch nicht gerade schwer.

Was meinst du mit Flags?

--

void CHudSayText :: EnsureTextFitsInOneLineAndWrapIfHaveTo( int line ) -- Aja?

zum Seitenanfang zum Seitenende Profil || Suche
002
25.08.2001, 19:10
Retro



Hmm, ok, muss ich wohl übersehen habe - sorry...

Aber Flags sind die dinger *boa wie erklär ich das* die man in Worldcraft einstellen kann, wo man nur Häcken macht.

Ich weis net, mappst du?
Setz mal nen env_explosion und geh auf dessen eigenschaften...
Dann bei dem TabSheet auf die zweite Seite die sich 'Flags' schimpft;)
Das sind die...

In der FGD sieht das so aus:Quellcode:
@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = env_explosion : "Explosion"
[
iMagnitude(Integer) : "Magnitude" : 100
[color="red"]spawnflags(flags) =
[
1: "No Damage" : 0
2: "Repeatable" : 0
4: "No Fireball" : 0
8: "No Smoke" : 0
16: "No Decal" : 0
32: "No Sparks" : 0
][/color]
]

Hmm, da fällt mir grad was auf...*g*Quellcode:
void CMeinEntity::KeyValue( KeyValueData *pkvd )
{
if (FStrEq(pkvd->szKeyName, "spawnflags"))
{
flags= atoi(pkvd->szValue);
switch(flags)
{
case 1: fVariable1 = TRUE;
case 2: fVariable2 = TRUE;
case 4: fVariable3 = TRUE;
case 8: fVariable4 = TRUE;
case 16: fVariable5 = TRUE;
case 32: fVariable6 = TRUE;
}
pkvd->fHandled = TRUE;
}
}

Puh... kann aber doch net sein:(

Wenn man mehrere Falgs ankreuzt dann stehen ja auch mehrere Zahlen in der 'spawnflags' drinne... und schon funzt mein case net mehr :(

Oder, also ich weis mir da net zu helfen - bitte vergesst den Code den ich eben gepostet hab, außer er stimmt... *g*

--

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 25.08.2001 um 19:10 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
25.08.2001, 19:34
Polymorph



zieh dir mal pev->spawnflags rein... da packen die das bitfeld mäßig (automatisch) rein.

--

----------------------------------------
[url="mailto:polymorph@gdnmail.net"]Polymorph[/url]
Lead Programmer of Paroxysm - Alien Encounters

zum Seitenanfang zum Seitenende Profil || Suche
004
25.08.2001, 19:37
Polymorph



also du kannst die einzelnen bits so abfragen:

Quellcode:
#define MEINSUPERTOLLESFLAG 256 // Halt das flag (1<<BITNUMMER)
if ( pev->spawnflags & MEINSUPERTOLLESFLAG )
{
// Flag ist gesetzt
}

mehrere flags kannst du so testen:

Quellcode:
#define MEINSUPERTOLLESFLAG 256
#define MEINNOCHTOLLERESFLAG 512
if ( pev->spawnflags & (MEINSUPERTOLLESFLAG|MEINNOCHTOLLERESFLAGS) )
{
// Flags sind gesetzt
}

--

----------------------------------------
[url="mailto:polymorph@gdnmail.net"]Polymorph[/url]
Lead Programmer of Paroxysm - Alien Encounters


Dieser Beitrag wurde am 25.08.2001 um 19:39 von Polymorph bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
25.08.2001, 19:48
Retro



Gut... großes Thx @ Polymorph
Quellcode:
if ( pev->spawnflags & FLAG_BLABLABLA)
{
// Flag ist gesetzt
fVariable = TRUE;
}
else
{
// Flag ist nicht gesetzt
fVariable = FALSE;
}

Jetzt brauch ich scheinbar ne Stunde Nachhilfe in Sachen HEX... =\Quellcode:
#define FLAG_BLABLABLA 0x0020

Tja, was bedeutet das jetzt?!
In der FGD habe ich ja 1 2 4 8 16 32...

Wie lässt sich das übersetzen, ich kenne nur die Farbwerte als HEX?!

--

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 25.08.2001 um 19:50 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
25.08.2001, 19:56
Another1



die brauchst du nich übersetzen, wenn du sie als 2 4 8 16 32 etc hast is das schon gut so, wozu als hex =P

--

Another1

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

zum Seitenanfang zum Seitenende Profil || Suche
007
25.08.2001, 21:00
Retro



Hmmkay... ;)

Thx, es klappt sogar! *fg*

--

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