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



ich habe dieses tutorial gemacht: http://developer.valvesoftware.com/wiki/Simulated_Bullets
und bekomme beim kompilieren folgenden fehler:

1>c:\mod_v2\src\game\client\bullet_manager.cpp(47) : error C2664: 'ConVar::ConVar(const char *,const char *,int,const char *,FnChangeCallback_t)': Konvertierung des Parameters 5 von 'void (__cdecl *)(ConVar *,const char *)' in 'FnChangeCallback_t' nicht möglich
1> Keine Funktion mit diesem Namen im Gültigkeitsbereich stimmt mit dem Zieltyp überein

...bin alles 2 mal durchgegangen, hab den fehler aber nicht entdeckt :(

--

(\_/)
(O.o)
(> < ) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

zum Seitenanfang zum Seitenende Profil || Suche
001
22.06.2010, 19:16
Bluthund



Zitat:
D:\SourceSDK\public\tier1\iconvar.h (1 hits)
Line 91: typedef void ( *FnChangeCallback_t )( IConVar *var, const char *pOldValue, float flOldValue );
Dein Callback hat einen Parameter zu wenig.

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-

zum Seitenanfang zum Seitenende Profil || Suche
002
22.06.2010, 19:58
Lord Eintopf



ConVar sv_bullet_speed_modifier( "sv_bullet_speed_modifier", "700.000000", (FCVAR_ARCHIVE | FCVAR_REPLICATED),
"Density/(This Value) * (Distance Penetrated) = (Change in Speed)",
BulletSpeedModifierCallback );

meiner meinung nach sind das 5 parameter?!

seltsam ich hab das genauso aus dem tut übernommen und beim author scheints zu funktionieren...

--

(\_/)
(O.o)
(> < ) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

zum Seitenanfang zum Seitenende Profil || Suche
003
22.06.2010, 20:15
Bluthund



Richtig es sind 5 und der letzte ist ein Funktionspointer vom Typ FnChangeCallback_t, der oben genannte Signatur zu besitzen hat. Deine Funktion BulletSpeedModifierCallback erfuellt diese Bedingung nicht, da ein Pointer darauf vom Typ void (*)(ConVar*, const char*) ist und damit nur 2 der benoetigten 3 Parameter uebernimmt.

Zitat:
seltsam ich hab das genauso aus dem tut übernommen und beim author scheints zu funktionieren...
Monkey see, monkey do?
Selber denken macht fett?

Lies am besten nochmal den Part zu Funktionspointern im Referenzwerk deines Vertrauens.

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-


Dieser Beitrag wurde am 22.06.2010 um 20:24 von Bluthund bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
26.06.2010, 13:38
Lord Eintopf



werd ich tun, trotzdem danke ;)
EDIT:
static void BulletSpeedModifierCallback(ConVar *var, const char *pOldString)
{
if(var->GetFloat()==0.0f)
var->Revert();
}

was soll ich denn daran ändern? einfach einen parameter hinzufügen? :S

--

(\_/)
(O.o)
(> < ) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.


Dieser Beitrag wurde am 26.06.2010 um 13:53 von Lord Eintopf bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche