Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
26.10.2005, 20:59
X4RD4S



Also ich hab eine neue Waffe im Code fertig und kann sie auch im Editor platzieren und im Spiel auswählen. Das v_model wird auch geladen funktioniert soweit.
Nur beim schiessen kommt weder sound noch kugeln aus der waffe ( also auch keine decals ) lediglich das Muzzleflash funktioniert. Im Übrigen führt er beim schiessen keine FIRE animation aus. Das Model selbst ist nicht fehlerhaft, da wenn ich es mit der mp5 ersetze perfekt funktioniert. Wisst ihr woran das eventuell liegen könnte ? Habe quasi die mp5-codeteile immer kopiert und an die oicw angepasst, habe auch eine oicw.sc datei ( event ).

--

zum Seitenanfang zum Seitenende Profil || Suche
001
26.10.2005, 21:54
HammerBlade



Beim Sound würde ich auf fehlendes Precache tippen.

Was meinst du mit "Kugeln", die Projektilspuren-Sprites oder die Hülsen? Wenn du die Hülsen meinst würde ich auf eine fehlerhafte Event tippen. Wird der Event auch korrekt gesendet und empfangen?

Wegen den Animationen: Stimmt die Animationsreihenfolge im neuen Model auch mit der Standardreihenfolge überein (da die Animation per Index angesprochen werden). Du kannst auch das enum ändern in dem die Indizes für die Animationen definiert werden. Achte auch darauf, dass es iirc im Clientside-Eventsystem ein ähnliches enum gibt was du auch anpassen musst.

--

"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon
Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium.
--
Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way

zum Seitenanfang zum Seitenende Profil || Suche
002
26.10.2005, 22:21
X4RD4S



1. Precached wird ...
2. Weder Projektilspuren noch Hülsen kommen
2. Die Animationsreihenfolge stimmt .. das kenn ich schon ...

"Wird der Event auch korrekt gesendet und empfangen?"
wie kann ich das testen ?^^

--

zum Seitenanfang zum Seitenende Profil || Suche
003
26.10.2005, 22:49
HammerBlade



Du könntest es in der Eventhandlerfunktion einfach mal mit

Quellcode:gEngfuncs.Con_Printf("Eventtest"); testen.

Hast du dich beim Eventhandlercode an den anderen Eventhandlern orientiert um zu sehen wie der Code aufgebaut sein muss? Bzw. post mal deine Eventhandlerfunktion und ein Codefragment wo du den Event sendest.

Das die Fire-Animation nicht abgespielt wird kann auch an der Eventhandlerfunktion liegen, weil man auch von hier aus Animation abspielen kann.

Hm... hast du die neuen Eventhandlerfunktion auch in 'hl_event.cpp' (cl_dll) in der Funktion Game_HookEvents() gehookt? Und hast du den Eventhandler auch in dem extern-"C"-Block am anfang der gleichen Datei deklariert, damit er von der .dll expotiert und und von der Engine geladen werden kann? In 'ev_hldm.cpp' (cl_dll) gibt es auch noch so einen extern-"C"-Block, da muss dein Eventhandler-Funktionskopf auch rein.

--

"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon
Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium.
--
Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way

zum Seitenanfang zum Seitenende Profil || Suche
004
27.10.2005, 11:37
X4RD4S



Was das HooKEvents angeht : Ja habe ich ..
gEngfuncs.pfnHookEvent( "events/oicw.sc", EV_FireOicw );

darüber in der C Extern da. ..
void EV_FireOicw( struct event_args_s *args );

Also in der Datei kann man eigentlich nichts falsch machen ....

in der ev_hldm.cpp habe ich auch im extern block das hier stehen:
void EV_FireOicw( struct event_args_s *args );

Und natürlich die vollständige Funktion weiter unten :

//////////////////////////

void EV_FireOicw( event_args_t *args )
{
int idx;
vec3_t origin;
vec3_t angles;
vec3_t velocity;

vec3_t ShellVelocity;
vec3_t ShellOrigin;
int shell;
vec3_t vecSrc, vecAiming;
vec3_t up, right, forward;
float flSpread = 0.01;

idx = args->entindex;
VectorCopy( args->origin, origin );
VectorCopy( args->angles, angles );
VectorCopy( args->velocity, velocity );

AngleVectors( angles, forward, right, up );

shell = gEngfuncs.pEventAPI->EV_FindModelIndex ("models/shell.mdl");// brass shell

if ( EV_IsLocal( idx ) )
{
// Add muzzle flash to current weapon model
EV_MuzzleFlash();
gEngfuncs.pEventAPI->EV_WeaponAnimation( OICW_FIRE1 + gEngfuncs.pfnRandomLong(0,2), 2 );

V_PunchAxis( 0, gEngfuncs.pfnRandomFloat( -2, 2 ) );
}

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 ) )
{
case 0:
gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/hks1.wav", 1, ATTN_NORM, 0, 94 + gEngfuncs.pfnRandomLong( 0, 0xf ) );
break;
case 1:
gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/hks2.wav", 1, ATTN_NORM, 0, 94 + gEngfuncs.pfnRandomLong( 0, 0xf ) );
break;
}

EV_GetGunPosition( args, vecSrc, origin );
VectorCopy( forward, vecAiming );

if ( gEngfuncs.GetMaxClients() > 1 )
{
EV_HLDM_FireBullets( idx, forward, right, up, 1, vecSrc, vecAiming, 8192, BULLET_PLAYER_MP5, 2, &tracerCount[idx-1], args->fparam1, args->fparam2 );
}
else
{
EV_HLDM_FireBullets( idx, forward, right, up, 1, vecSrc, vecAiming, 8192, BULLET_PLAYER_MP5, 2, &tracerCount[idx-1], args->fparam1, args->fparam2 );
}
}

///////////////////

in der ev_hldm.h datei habe ich auch alles richtig deklariert .denke ich

enum oicw_e
{
OICW_LONGIDLE = 0,
OICW_IDLE1,
OICW_LAUNCH,
OICW_RELOAD,
OICW_DEPLOY,
OICW_FIRE1,
OICW_FIRE2,
OICW_FIRE3,
};

Was bleibt denn da noch übrig ? =/

--

zum Seitenanfang zum Seitenende Profil || Suche