.| Autor | Beitrag |
|---|---|
|
000 10.07.2001, 17:10 Hanky |
Moin, Zwar: in hl haben die coder überlegt, pro schussmethode einfachmal ne neue .cs file anzulegen. (siehe shotgun, glock) in CS hat jede Waffe nur eine .cs datei. Eigentlich kein Problem, aber wie codet mal clientseitig eine Abfrage, ob die 2te Feuertaste mal gedrückt worden ist?? Dos is mal gerade mein prob, da ich waffe habe, die mit 8.sc files etwas aufwendig zu coden wären..:D -- |
|
Profil || Suche |
|
001 10.07.2001, 17:46 Retro |
Die *.sc ist doch überflüßig! Guck nur einmal in eine *.sc von CS dann weißte woszu die "gut" sind! hehe --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
002 10.07.2001, 18:22 Hanky |
JAha, der Inhalt is scheiss egal! Aber wie man das clientseitig codet..also ganz überflüssig sind se ja nit!! Sonst gäb es die ja auch in CS nicht!! Zur kommunikation gibbat die ja! -- |
|
Profil || Suche |
|
003 10.07.2001, 19:40 Retro |
Stimmt, die mußt du schon einrichten, nur in der Datei selber steht halt nichts drinne... Genau das habe ich heute gemacht, und seitdem es fertig ist, funzt meine Waffe auch zu 100% =D Ich such dir mal den Code raus, den ich gemacht hab... mom --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
004 10.07.2001, 19:53 Retro |
So, das alles ist Client-seitig, meine Waffe heißt in dem Fall M14: ev_hldm.cpp So, das andere kommt unter dem von der MP5 void EV_FireM14( event_args_t *args ) vec3_t ShellVelocity; idx = args->entindex; AngleVectors( angles, forward, right, up ); shell = gEngfuncs.pEventAPI->EV_FindModelIndex ("models/shell.mdl");// brass shell EV_GetDefaultShellInfo( args, origin, velocity, ShellVelocity, ShellOrigin, forward, right, up, 20, -12, 4 ); EV_EjectBrass ( ShellOrigin, ShellVelocity, angles[ YAW ], shell, TE_BOUNCE_SHELL ); switch( gEngfuncs.pfnRandomLong( 0, 1 ) ) EV_GetGunPosition( args, vecSrc, origin ); if ( gEngfuncs.GetMaxClients() > 1 ) if ( EV_IsLocal( idx ) ) ev_hldm.h enum m14_e hl_events.cpp void EV_FireMP5( struct event_args_s *args ); gEngfuncs.pfnHookEvent( "events/mp5.sc", EV_FireMP5 ); So, das wars! :) shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
005 10.07.2001, 21:51 Hanky |
hey..das weiss ich auch!! ABER was du da nu gepostet hast: 1 Schussmodus! Angenommen du hast eine Waffe mir Schalldämpfer! Dann ist die animation des Schusses eine andere (M14Fire1_SD z.B.) und die Lautstärke ist anders! Siehe CS! Thema CS: die haben für die Waffe nur eine .cs datei! Wie bekommt der client nu mit, ob die 2te Schusstaste gedrückt worden ist..?? (Schalldämpfer) -- |
|
Profil || Suche |
|
006 10.07.2001, 21:53 Hanky |
Uh..falls meine Antwort weiter oben das etwas unfreundlich klingt..sorry @Retro -- |
|
Profil || Suche |
|
007 10.07.2001, 23:18 Retro |
Nene, schon ok, wollte nur helfen, wußte nicht genau was du gemeint hattest. Aber dabei kann ich dir leider nicht helfen! :-\ --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
008 11.07.2001, 08:36 -DiKoMe- |
Mhhhh, man könnte durch ne zusätzliche message den Befehl geben das eine andere Funktion über die .sc Datei abgespielt wird, mhhh, find ich aber bissel umständlich, naja, es könnte auch sein...nein doch nicht. Lebensweisheit: *g*
|
|
Profil || Suche |
|
009 11.07.2001, 14:32 Hanky |
Eine kleine, umständliche Idee habe ich auch!! Zwar: Wie in der player.cpp die ganzen Messages weitergeschickt werden, an den Client, da könnte man ja 1 weitere verschicken: gmsgInAttack2 oder sowas in der Richtung! In dem Waffencode dann irgendwo sowas wie Nur wie man das nu in der client wieder abliest usw...ich glaube das macht keinen Spass..auch wennes nicht gerade schlecht wäre! -- |
|
Profil || Suche |
|
010 12.07.2001, 00:18 Killing Me Softly |
geht alles viel einfacher *g* ein Event wird auf der serverseite bekanntlich durch PLAYBACK_EVENT( 0, m_pPlayer->edict(), m_usEvent ); ausgelöst. Hierbei handelt es sich aber um die Kurzform. Wenn man sich die Definition von PLAYBACK_EVENT anschaut findet man folgendes: #define PLAYBACK_EVENT( flags, who, index ) PLAYBACK_EVENT_FULL( flags, who, index, 0, (float *)&g_vecZero, (float *)&g_vecZero, 0.0, 0.0, 0, 0, 0, 0 ); d.h. es werden also jede Menge weiterer Parameter mit übergeben. Die genaue Definition der Parameter lautet: (int flags, const edict_t *pInvoker, unsigned short eventindex, Interessant hierbei ist 'float delay' (ja, man kann Events verzögert auslösen *g*) und flags, fparam1, fparam2, iparam1, iparam2, bparam1 und bparam2. Interessant deswegen, weil diese dem Coder zum einen zur freien Verfügung stehen und zweitens diese in der 'struct event_args_t' auf dem Client plötzlich wieder auftauchen. Ein Zeiger auf ein 'struct event_args_t' wird Wer sich ein Beispiel anschauen möchte, dem empfehle ich die gauss.cpp (einfach nach PLAYBACK_EVENT_FULL suchen) anzuschauen und parallel dazu die entsprechende Event-Funktion (EV_FireGauss() ) in ev_hldm.cpp. Dort findet man nämlich die Zeilen float flDamage = args->fparam1; Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt. |
|
Profil || Suche |
|
011 12.07.2001, 08:43 Hanky |
jo, cool! Danke!! -- |
|
Profil || Suche |

