Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
24.05.2001, 11:34
thinktank



Wie adde ich ein Console Command, bei dem irgendeine
Variable in der CBasePlayer-Klasse verändert wird ?

Weiter Fragen :-) :
Wieso kann man keine Variablen
der CBaseEntity-Klasse und der
entvars_t-Strucktur hinzufügen
(Ausnahmefehler)?

--

zum Seitenanfang zum Seitenende Profil || Suche
001
24.05.2001, 11:47
TheVoice



das mit den consolencommands adden, hab ich schon in der DHCC mailinglist geklärt.. hoffe du kannst damit was anfangen:

Zitat:

von CG Koeter:
hiho,

ich glaube ich bin doof (zumindest geben mir die leute immer recht wenn ich
das sage *g*)
ich sehe mich nicht als guten programmierer ... und spiel auch nur mit dem
hl-source rum, weil ich sonst nichts zu tun habe ;)

ich bin aber schon zu blöd, heraus zu finden, wie man nen keyboard event
abfragt ... ich weiß .... ich bin schlecht =(

das müsste doch eigentlich ganz einfach sein ....

ich will ein menu schreiben (für waffen wählen)
wenn man (ähnlich wie in CS) zum beispiel "b" drückt, soll sich das menu
öffnen ... und schon da weiß ich gar nicht wie ich das machen soll ... und
vor allem: weiß vielleicht irgendwer, wie man im anfangsmenu (da wo man die
einstellungen macht) die liste der tasten ändert ? ich meine da wo man
einstellt mit welcher taste man nach links oder rechts geht, lampe anmacht,
etc ....
ich weiß auch dass ich mit sowas euch eigentlich nicht belasten sollte,
aber die liste is in letzter zeit so lahm, da kann man doch auch mal ne
blöde frage stellen =) vielleicht werden dann ja mal wieder welche wach *g*

ich hoffe mir hilft jemand weiter, bye

koeter

Meine antwort:
Also, zu der Keyboardabfrage:
Es gibt ja in Half-Life schon verdefinierte Flags (was falgs sind ? DHCC),
diese werden immer dann eingeschaltet, wenn eine bestimmte Taste
gerade gedrückt, bzw in diesem fall eine bestimmte Aktion gerade
ausgeführt wird... so gibt es zum Beispiel sowas:

if (pev->button & IN_USE) { ... }

Dann gibt es da noch IN_ATTACK, IN_DUCK, IN_JUMP, etc!
Diese Flags sind irgendwo in irgendeiner Headerdatei definiert...
frag mich jetzt nicht wo....

aber ich denke, dass du mit deinem Vorhaben mit dieser Methode
nicht auskommen wirst, dich interessiert sicherlich eher, wie man
es denn wohl schaffen könnte, dass wenn jemand auf der Tastatur
die Taste b drückt ein bestimmtes ereignis ausgelöst wird.

Nun, das geht so:
In der Console erstellst du ein neues bind:

bind b "buymenu"

beispielsweise.

dann gehst du in deine Client.cpp (mp.dsw) und dort
in der ClientCommand Funktion siehst du sehr viele else if
fälle.

nun fügst du irgendwo zwischen den else if s ein weiteres else if ein,
beispielsweise so:

else if ( FStrEq(pcmd, "buymenu" ) )
{
ClientPrint( &pEntity->v, HUD_PRINTCONSOLE, UTIL_VarArgs( "Du hast jetzt
das Buymenu aufgerufen, jedoch existiert noch keine Funktion\n", pcmd ) );
}

So, da wo jetzt diese ClientPrintfunktion aufgerufen wird, müsstest
du dann deine selbstgeschriebene BuyMenu Funktion aufrufen...
so einfach ist das :)

C ya!

--

Against TCPA | Resourcecode.de | Blender 3D | [ Darkzone | Pandorra | Alpine ]

zum Seitenanfang zum Seitenende Profil || Suche