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



Hi! Habe meine Frage!
Ich wolte eine Skin wechsel bei dem RPG haben.
der SecondaryAttack der waffe schaltet ja nur den Laserdot an/aus und dabei soll der Skin gleichzeitig von "Skin 1" Laserdot an und "Skin 2" Laserdot aus gewächselt werden und das alles wenn ich denn SecondaryAttack betätige!

Habe nur keine ahrnug was ich alles an neuen funktionen haben muss! Da ich so etwas das erste mal mache. "Skin wechsel"

Ich bedanke mich.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
29.05.2006, 18:37
hausi



Ist zwar schon einige Jahre her, aber ich glaub es war ungefähr das hier:
- Skin precachen (falls das nicht automatisch beim precachen des Models gemacht wird)
- pev->skin auf die entsprechende Skin-Nummer setzen (0-basiert)
Das ganze natürlich dort, wo auch der RD an / ausgestellt wird.

--

zum Seitenanfang zum Seitenende Profil || Suche
002
29.05.2006, 21:50
Masterbee



Hmm? geht nicht?
info: 1 ist der aktiv zustand der waffe laserdot an! 2 ist inaktiv zustand der waffe laserdot off.
habe es so:

//=========================================================
// Revive - bring a suspended laser sight back.
//=========================================================
void CLaserSpot::Revive( void )
{
pev->effects &= ~EF_NODRAW;

pev->skin = 1;

SetThink( NULL );
}

void CLaserSpot::Precache( void )
{
PRECACHE_MODEL("sprites/laserdot.spr");
};

LINK_ENTITY_TO_CLASS( rpg_rocket, CRpgRocket );

bei aktiven dot.

void CLaserSpot::Spawn( void )
{
Precache( );
pev->movetype = MOVETYPE_NONE;
pev->solid = SOLID_NOT;

pev->skin = 1; // Hier!

pev->rendermode = kRenderGlow;
pev->renderfx = kRenderFxNoDissipation;
pev->renderamt = 255;

SET_MODEL(ENT(pev), "sprites/laserdot.spr");
UTIL_SetOrigin( pev, pev->origin );
};

wie die waffe am beim CLaserSpot::Spawn ist.

void CRpg::Reload( void )
{
int iResult;

pev->skin = 2; //aus beim reload

if ( m_iClip == 1 )
{
// don't bother with any of this if don't need to reload.
return;
}

if ( m_pPlayer->ammo_rockets <= 0 )
return;

// because the RPG waits to autoreload when no missiles are active while the LTD is on, the
// weapons code is constantly calling into this function, but is often denied because
// a) missiles are in flight, but the LTD is on
// or
// b) player is totally out of ammo and has nothing to switch to, and should be allowed to
// shine the designator around
//
// Set the next attack time into the future so that WeaponIdle will get called more often
// than reload, allowing the RPG LTD to be updated

m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.5;

if ( m_cActiveRockets && m_fSpotActive )
{
// no reloading when there are active missiles tracking the designator.
// ward off future autoreload attempts by setting next attack time into the future for a bit.
return;
pev->skin = 1; //skin on!
}

#ifndef CLIENT_DLL
if ( m_pSpot && m_fSpotActive )
{
m_pSpot->Suspend( 2.1 );
m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 2.1;
}
#endif

if ( m_iClip == 0 )
iResult = DefaultReload( RPG_MAX_CLIP, RPG_RELOAD, 2 );

if ( iResult )
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 );

}

und weiter? muss doch irget wo noch rein! beim reload bleibt es ebenfalls an!
Hilfe! heul!

--

zum Seitenanfang zum Seitenende Profil || Suche
003
29.05.2006, 22:19
hausi



1. Es gibt Code Tags. Dann kann man den Code nachher auch lesen. Bitte das nächste mal benutzen.
2. pev->skin = 1 hast du nur in der Klasse CLaserDot. Dort macht das aber kein Sinn, ausser du willst den Skin vom RD wechseln.

--

zum Seitenanfang zum Seitenende Profil || Suche
004
29.05.2006, 23:21
Masterbee



Danke für die tipps! ich werde nechste mal mehr Tags benutzen! und
2. pev->skin = 1 hast du nur in der Klasse CLaserDot. Dort macht das aber kein Sinn, ausser du willst den Skin vom RD wechseln.

guter tipp! hab trozdem immer noch kein überblick!

der gesamte code! bitte zeigt mir was ich genau wie das über haupt gehen soll! habe ka.

http://zombie-x.myflathost.com/downloads/rpg.zip

Wenn ihr ein tutureal habt wo man das nachlesen kann "keine monster tuts habe genug gefunden ist nur nicht das richtige" der soll das umstellen wenn ich denn SecondaryAttack ausführe und nicht im hammer editor!

das prinziep habe ich rausbekommen aber gehen tus immer noch nicht!

Jezt binn ich total verwirt wo hin? mit dem pev->skin? oder ganswoanders hin?

--

zum Seitenanfang zum Seitenende Profil || Suche
005
01.06.2006, 18:06
Dopefish



mit "code tags" meinte superhausi.

Quellcode://=========================================================
// Revive - bring a suspended laser sight back.
//=========================================================
void CLaserSpot::Revive( void )
{
pev->effects &= ~EF_NODRAW;

pev->skin = 1;

SetThink( NULL );
}
...
sowas ähnliches gibts übrigens für Zitate:

Zitat:
Superhausi postete:
2. pev->skin = 1 hast du nur in der Klasse CLaserDot. Dort macht das aber kein Sinn, ausser du willst den Skin vom RD wechseln.
kannst du alles hier nachlesen.

[edit]
.. zum deinem Problem habe ich übrigens nichts beizutragen, ... sorry.
[/edit]

--

Resetting politics:
http://www.onlinepartei.eu


Dieser Beitrag wurde am 01.06.2006 um 18:08 von Dopefish bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
12.06.2006, 13:39
Masterbee



Werde ich mir ansehen! THX

--

zum Seitenanfang zum Seitenende Profil || Suche