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



Hallo,

Ich hab diese Tutorial auf FPSBanana gefunden und wollte es mal testen jetzt hab ich da so meine Probleme mit der weapon_parse.cpp...

es Heisst ja....
Quellcode:Basic knowledge of C++ is needed




hl2mp_weapon_parse.h (DM) or weapon_parse.h (Singleplayer)

Add this in the bottom of the file. Only add the lines with //ADDED behind.





public:

//jorg40 - ironsight
Vector m_expOffset; //ADDED
QAngle m_expOriOffset; //ADDED

int m_iPlayerDamage;
};

hl2mp_weapon_parse.cpp (DM) or weapon_parse.cpp (Singleplayer)

Add this in the file.

void CHL2MPSWeaponInfo::Parse( KeyValues *pKeyValuesData, const char *szWeaponName )
{
...
// this just saves off the data in the script file for later use
KeyValues *pEt = pKeyValuesData->FindKey("ExpOffset");
if (pEt)
{
m_expOffset.x = pEt->GetFloat("x", 0.0f);
m_expOffset.y = pEt->GetFloat("y", 0.0f);
m_expOffset.z = pEt->GetFloat("z", 0.0f);

m_expOriOffset.x = pEt->GetFloat("xori", 0.0f);
m_expOriOffset.y = pEt->GetFloat("yori", 0.0f);
m_expOriOffset.z = pEt->GetFloat("zori", 0.0f);
}
else
{
m_expOffset = vec3_origin;
m_expOriOffset.Init();
}
...
}
Also ich muss bei der weapon_parse.h ganz unten das hin:

Quellcode:Vector m_expOffset; //ADDED
QAngle m_expOriOffset; //ADDED
Ich hab es hier am schluss drin:

Quellcode:// Each game implements this. It can return a derived class and override Parse() if it wants.
extern FileWeaponInfo_t* CreateWeaponInfo();


Vector m_expOffset;
QAngle m_expOriOffset;


#endif // WEAPON_PARSE_H
dan heisst es das ich in der weapon_parse.cppd das ich das einfügen soll:

Quellcode:void CHL2MPSWeaponInfo::Parse( KeyValues *pKeyValuesData, const char *szWeaponName )
{
...
// this just saves off the data in the script file for later use
KeyValues *pEt = pKeyValuesData->FindKey("ExpOffset");
if (pEt)
{
m_expOffset.x = pEt->GetFloat("x", 0.0f);
m_expOffset.y = pEt->GetFloat("y", 0.0f);
m_expOffset.z = pEt->GetFloat("z", 0.0f);

m_expOriOffset.x = pEt->GetFloat("xori", 0.0f);
m_expOriOffset.y = pEt->GetFloat("yori", 0.0f);
m_expOriOffset.z = pEt->GetFloat("zori", 0.0f);
}
else
{
m_expOffset = vec3_origin;
m_expOriOffset.Init();
}
...
}
Nur wo genau... Ich hab es Ganz Ganz untenJedoch wen ich es kompiliere sind 17fehler vorhanden. ich hab auch bischen ein Problem mit "void CHL2MPSWeaponInfo" den es ist ja für das Singelplayer und der void ist doch für Hl2mp.

kannd das sein das ich den teil in die "void FileWeaponInfo_t::Parse( KeyValues *pKeyValuesData, const char *szWeaponName )" Einfügen muss ??

Der Rest Danach........

weiss evt jemand weiter oder wo ich den fehler mache ?

--

Schaut euch mal den Map teil an und votet mal mit Verbesserungsvorschlägen usw... (Like Comments)
http://www.youtube.com/watch?v=UVoLsur8hmE


Dieser Beitrag wurde am 04.07.2010 um 21:01 von GabbaWorld bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
04.07.2010, 21:05
GabbaWorld



----------------------- Alles zurückgenommen ---------------

--

Schaut euch mal den Map teil an und votet mal mit Verbesserungsvorschlägen usw... (Like Comments)
http://www.youtube.com/watch?v=UVoLsur8hmE


Dieser Beitrag wurde am 04.07.2010 um 21:11 von GabbaWorld bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
05.07.2010, 01:24
Bluthund



'm_' ist nach ungarischer Notation das Sichtbarkeitspraefix fuer eine Membervariable einer Klasse. Die Variablendefinitionen haben also sicher nichts im globalen Scope verloren.
Der Autor hat ja schon extra m_iPlayerDamage als Orientierungshilfe fuer Leute ohne Ahnung hinterlassen...

--

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
003
05.07.2010, 12:35
GabbaWorld



ja nach m_iPlayerDamage hab ich auch gesucht und eben nicht gefunden...

hab nun das Tutorial gewechslt auf...

http://developer.valvesoftware.com/wiki/Adding_Ironsights

Da klappt eigentlich alles bis dann:
Quellcode:Getting the offsets

Now we will add simple functions to get the information we parsed from the weapon-scripts. But we also want to have console-variables to overwrite the parsed info so we can easily make new ironsight-offsets.
basecombatweapon_shared.h

This goes to the public functions:

    Vector                    GetIronsightPositionOffset( void ) const;
    QAngle                    GetIronsightAngleOffset( void ) const;
    float                    GetIronsightFOVOffset( void ) const;

basecombatweapon_shared.cpp

These ConVars usually go after the includes:

//forward declarations of callbacks used by viewmodel_adjust_enable and viewmodel_adjust_fov
void vm_adjust_enable_callback( IConVar *pConVar, char const *pOldString, float flOldValue );
void vm_adjust_fov_callback( IConVar *pConVar, const char *pOldString, float flOldValue );

ConVar viewmodel_adjust_forward( "viewmodel_adjust_forward", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_right( "viewmodel_adjust_right", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_up( "viewmodel_adjust_up", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_pitch( "viewmodel_adjust_pitch", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_yaw( "viewmodel_adjust_yaw", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_roll( "viewmodel_adjust_roll", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_fov( "viewmodel_adjust_fov", "0", FCVAR_REPLICATED, "Note: this feature is not available during any kind of zoom", vm_adjust_fov_callback );
ConVar viewmodel_adjust_enabled( "viewmodel_adjust_enabled", "0", FCVAR_REPLICATED|FCVAR_CHEAT, "enabled viewmodel adjusting", vm_adjust_enable_callback );

And then you add the function definitions:

Vector CBaseCombatWeapon::GetIronsightPositionOffset( void ) const
{
    if( viewmodel_adjust_enabled.GetBool() )
        return Vector( viewmodel_adjust_forward.GetFloat(), viewmodel_adjust_right.GetFloat(), viewmodel_adjust_up.GetFloat() );
    return GetWpnData().vecIronsightPosOffset;
}

QAngle CBaseCombatWeapon::GetIronsightAngleOffset( void ) const
{
    if( viewmodel_adjust_enabled.GetBool() )
        return QAngle( viewmodel_adjust_pitch.GetFloat(), viewmodel_adjust_yaw.GetFloat(), viewmodel_adjust_roll.GetFloat() );
    return GetWpnData().angIronsightAngOffset;
}

float CBaseCombatWeapon::GetIronsightFOVOffset( void ) const
{
    if( viewmodel_adjust_enabled.GetBool() )
        return viewmodel_adjust_fov.GetFloat();
    return GetWpnData().flIronsightFOVOffset;
}
Es steht ja das man das unter den Include einfügen soll
Quellcode://forward declarations of callbacks used by viewmodel_adjust_enable and viewmodel_adjust_fov
void vm_adjust_enable_callback( IConVar *pConVar, char const *pOldString, float flOldValue );
void vm_adjust_fov_callback( IConVar *pConVar, const char *pOldString, float flOldValue );

ConVar viewmodel_adjust_forward( "viewmodel_adjust_forward", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_right( "viewmodel_adjust_right", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_up( "viewmodel_adjust_up", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_pitch( "viewmodel_adjust_pitch", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_yaw( "viewmodel_adjust_yaw", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_roll( "viewmodel_adjust_roll", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_fov( "viewmodel_adjust_fov", "0", FCVAR_REPLICATED, "Note: this feature is not available during any kind of zoom", vm_adjust_fov_callback );
ConVar viewmodel_adjust_enabled( "viewmodel_adjust_enabled", "0", FCVAR_REPLICATED|FCVAR_CHEAT, "enabled viewmodel adjusting", vm_adjust_enable_callback );
Also sollte es ja Unter das:
Quellcode://
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
#include "in_buttons.h"
#include "engine/IEngineSound.h"
#include "ammodef.h"
#include "SoundEmitterSystem/isoundemittersystembase.h"
#include "physics_saverestore.h"
#include "datacache/imdlcache.h"


#if !defined( CLIENT_DLL )

// Game DLL Headers
#include "soundent.h"
#include "eventqueue.h"
#include "fmtstr.h"
#include "gameweaponmanager.h"

#ifdef HL2MP
    #include "hl2mp_gamerules.h"
#endif

#endif

// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"



// The minimum time a hud hint for a weapon should be on screen. If we switch away before
// this, then teh hud hint counter will be deremented so the hint will be shown again, as
// if it had never been seen. The total display time for a hud hint is specified in client
// script HudAnimations.txt (which I can't read here).
#define MIN_HUDHINT_DISPLAY_TIME 7.0f

#define HIDEWEAPON_THINK_CONTEXT            "BaseCombatWeapon_HideThink"

extern bool UTIL_ItemCanBeTouchedByPlayer( CBaseEntity *pItem, CBasePlayer *pPlayer );
Sprich:
Quellcode://========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
#include "in_buttons.h"
#include "engine/IEngineSound.h"
#include "ammodef.h"
#include "SoundEmitterSystem/isoundemittersystembase.h"
#include "physics_saverestore.h"
#include "datacache/imdlcache.h"


#if !defined( CLIENT_DLL )

// Game DLL Headers
#include "soundent.h"
#include "eventqueue.h"
#include "fmtstr.h"
#include "gameweaponmanager.h"

#ifdef HL2MP
    #include "hl2mp_gamerules.h"
#endif

#endif

// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"



// The minimum time a hud hint for a weapon should be on screen. If we switch away before
// this, then teh hud hint counter will be deremented so the hint will be shown again, as
// if it had never been seen. The total display time for a hud hint is specified in client
// script HudAnimations.txt (which I can't read here).
#define MIN_HUDHINT_DISPLAY_TIME 7.0f

#define HIDEWEAPON_THINK_CONTEXT            "BaseCombatWeapon_HideThink"

extern bool UTIL_ItemCanBeTouchedByPlayer( CBaseEntity *pItem, CBasePlayer *pPlayer );

// ADD NEW LINES ---------------------------------------------------------------------------------------------------------------------
//forward declarations of callbacks used by viewmodel_adjust_enable and viewmodel_adjust_fov
void vm_adjust_enable_callback( IConVar *pConVar, char const *pOldString, float flOldValue );
void vm_adjust_fov_callback( IConVar *pConVar, const char *pOldString, float flOldValue );

ConVar viewmodel_adjust_forward( "viewmodel_adjust_forward", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_right( "viewmodel_adjust_right", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_up( "viewmodel_adjust_up", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_pitch( "viewmodel_adjust_pitch", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_yaw( "viewmodel_adjust_yaw", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_roll( "viewmodel_adjust_roll", "0", FCVAR_REPLICATED );
ConVar viewmodel_adjust_fov( "viewmodel_adjust_fov", "0", FCVAR_REPLICATED, "Note: this feature is not available during any kind of zoom", vm_adjust_fov_callback );
ConVar viewmodel_adjust_enabled( "viewmodel_adjust_enabled", "0", FCVAR_REPLICATED|FCVAR_CHEAT, "enabled viewmodel adjusting", vm_adjust_enable_callback );
Teil 1

--

Schaut euch mal den Map teil an und votet mal mit Verbesserungsvorschlägen usw... (Like Comments)
http://www.youtube.com/watch?v=UVoLsur8hmE

zum Seitenanfang zum Seitenende Profil || Suche
004
05.07.2010, 12:36
GabbaWorld



Teil 2

Danach sollte ich ja die funktionen einfügen das hab ich GAAAnz am schluss gemacht

Also das hier :
Quellcode:Vector CBaseCombatWeapon::GetIronsightPositionOffset( void ) const
{
    if( viewmodel_adjust_enabled.GetBool() )
        return Vector( viewmodel_adjust_forward.GetFloat(), viewmodel_adjust_right.GetFloat(), viewmodel_adjust_up.GetFloat() );
    return GetWpnData().vecIronsightPosOffset;
}

QAngle CBaseCombatWeapon::GetIronsightAngleOffset( void ) const
{
    if( viewmodel_adjust_enabled.GetBool() )
        return QAngle( viewmodel_adjust_pitch.GetFloat(), viewmodel_adjust_yaw.GetFloat(), viewmodel_adjust_roll.GetFloat() );
    return GetWpnData().angIronsightAngOffset;
}

float CBaseCombatWeapon::GetIronsightFOVOffset( void ) const
{
    if( viewmodel_adjust_enabled.GetBool() )
        return viewmodel_adjust_fov.GetFloat();
    return GetWpnData().flIronsightFOVOffset;
}
So hin:
Quellcode://-----------------------------------------------------------------------------
// Purpose: Propagation data for weapons. Only sent when a player's holding it.
//-----------------------------------------------------------------------------
BEGIN_NETWORK_TABLE_NOBASE( CBaseCombatWeapon, DT_LocalActiveWeaponData )
#if !defined( CLIENT_DLL )
    SendPropTime( SENDINFO( m_flNextPrimaryAttack ) ),
    SendPropTime( SENDINFO( m_flNextSecondaryAttack ) ),
    SendPropInt( SENDINFO( m_nNextThinkTick ) ),
    SendPropTime( SENDINFO( m_flTimeWeaponIdle ) ),

#if defined( TF_DLL )
    SendPropExclude( "DT_AnimTimeMustBeFirst" , "m_flAnimTime" ),
#endif

#else
    RecvPropTime( RECVINFO( m_flNextPrimaryAttack ) ),
    RecvPropTime( RECVINFO( m_flNextSecondaryAttack ) ),
    RecvPropInt( RECVINFO( m_nNextThinkTick ) ),
    RecvPropTime( RECVINFO( m_flTimeWeaponIdle ) ),
#endif
END_NETWORK_TABLE()

//-----------------------------------------------------------------------------
// Purpose: Add New Lines ----------------------------------------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------
Vector CBaseCombatWeapon::GetIronsightPositionOffset( void ) const
{
    if( viewmodel_adjust_enabled.GetBool() )
        return Vector( viewmodel_adjust_forward.GetFloat(), viewmodel_adjust_right.GetFloat(), viewmodel_adjust_up.GetFloat() );
    return GetWpnData().vecIronsightPosOffset;
}

QAngle CBaseCombatWeapon::GetIronsightAngleOffset( void ) const
{
    if( viewmodel_adjust_enabled.GetBool() )
        return QAngle( viewmodel_adjust_pitch.GetFloat(), viewmodel_adjust_yaw.GetFloat(), viewmodel_adjust_roll.GetFloat() );
    return GetWpnData().angIronsightAngOffset;
}

float CBaseCombatWeapon::GetIronsightFOVOffset( void ) const
{
    if( viewmodel_adjust_enabled.GetBool() )
        return viewmodel_adjust_fov.GetFloat();
    return GetWpnData().flIronsightFOVOffset;
}

//-----------------------------------------------------------------------------
// Purpose: Propagation data for weapons. Only sent when a player's holding it.
//-----------------------------------------------------------------------------
BEGIN_NETWORK_TABLE_NOBASE( CBaseCombatWeapon, DT_LocalWeaponData )
#if !defined( CLIENT_DLL )
    SendPropIntWithMinusOneFlag( SENDINFO(m_iClip1 ), 8 ),
    SendPropIntWithMinusOneFlag( SENDINFO(m_iClip2 ), 8 ),
    SendPropInt( SENDINFO(m_iPrimaryAmmoType ), 8 ),
    SendPropInt( SENDINFO(m_iSecondaryAmmoType ), 8 ),

    SendPropInt( SENDINFO( m_nViewModelIndex ), VIEWMODEL_INDEX_BITS, SPROP_UNSIGNED ),

#if defined( TF_DLL )
    SendPropExclude( "DT_AnimTimeMustBeFirst" , "m_flAnimTime" ),
#endif

#else
    RecvPropIntWithMinusOneFlag( RECVINFO(m_iClip1 )),
    RecvPropIntWithMinusOneFlag( RECVINFO(m_iClip2 )),
    RecvPropInt( RECVINFO(m_iPrimaryAmmoType )),
    RecvPropInt( RECVINFO(m_iSecondaryAmmoType )),

    RecvPropInt( RECVINFO( m_nViewModelIndex ) ),

#endif
END_NETWORK_TABLE()

BEGIN_NETWORK_TABLE(CBaseCombatWeapon, DT_BaseCombatWeapon)
#if !defined( CLIENT_DLL )
    SendPropDataTable("LocalWeaponData", 0, &REFERENCE_SEND_TABLE(DT_LocalWeaponData), SendProxy_SendLocalWeaponDataTable ),
    SendPropDataTable("LocalActiveWeaponData", 0, &REFERENCE_SEND_TABLE(DT_LocalActiveWeaponData), SendProxy_SendActiveLocalWeaponDataTable ),
    SendPropModelIndex( SENDINFO(m_iViewModelIndex) ),
    SendPropModelIndex( SENDINFO(m_iWorldModelIndex) ),
    SendPropInt( SENDINFO(m_iState ), 8, SPROP_UNSIGNED ),
    SendPropEHandle( SENDINFO(m_hOwner) ),
#else
    RecvPropDataTable("LocalWeaponData", 0, 0, &REFERENCE_RECV_TABLE(DT_LocalWeaponData)),
    RecvPropDataTable("LocalActiveWeaponData", 0, 0, &REFERENCE_RECV_TABLE(DT_LocalActiveWeaponData)),
    RecvPropInt( RECVINFO(m_iViewModelIndex)),
    RecvPropInt( RECVINFO(m_iWorldModelIndex)),
    RecvPropInt( RECVINFO(m_iState )),
    RecvPropEHandle( RECVINFO(m_hOwner ) ),
#endif
END_NETWORK_TABLE()
hmmm weisst du evt wo genau ich die fehler mach wen ich es kompiliere gibt es 3 fehler, die das besagen:
Quellcode:1>   Bibliothek ".\Release_episodic/Server.lib" und Objekt ".\Release_episodic/Server.exp" werden erstellt.
1>basecombatweapon_shared.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""void __cdecl vm_adjust_fov_callback(class IConVar *,char const *,float)" (?vm_adjust_fov_callback@@YAXPAVIConVar@@PBDM@Z)" in Funktion ""void __cdecl `dynamic initializer for 'viewmodel_adjust_fov''(void)" (??__Eviewmodel_adjust_fov@@YAXXZ)".
1>basecombatweapon_shared.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""void __cdecl vm_adjust_enable_callback(class IConVar *,char const *,float)" (?vm_adjust_enable_callback@@YAXPAVIConVar@@PBDM@Z)" in Funktion ""void __cdecl `dynamic initializer for 'viewmodel_adjust_enabled''(void)" (??__Eviewmodel_adjust_enabled@@YAXXZ)".
1>.\Release_episodic/Server.dll : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\GabbaWorld\src\game\server\Release_episodic\BuildLog.htm" gespeichert.
1>Server Episodic - 3 Fehler, 3 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========
Gruss

--

Schaut euch mal den Map teil an und votet mal mit Verbesserungsvorschlägen usw... (Like Comments)
http://www.youtube.com/watch?v=UVoLsur8hmE

zum Seitenanfang zum Seitenende Profil || Suche
005
05.07.2010, 12:58
Bluthund



Du hast vm_adjust_fov_callback und vm_adjust_fov_callback (das Symbol) nur deklariert aber nicht definiert und nutzt sie in viewmodel_adjust_fov bzw. viewmodel_adjust_fov (der Verweis).
Das ist genau der Grund warum man C++ einigermassen drauf haben sollte bevor man sich in den Source-Code wagt.

--

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
006
05.07.2010, 13:04
GabbaWorld



also heißt das ich muss zuerst den ganzen Sourcecode bearbeiten und erst dann kompilieren wegen den verweisen ?

Ja ich hab eben mit der falschen Sprachen angefangen ich hab fast 3jahre Delphi Gelernt und dann mit XNA, erst seit neuem bin ich auf C++/C# und hab da noch so meine Problemen da die Sprache doch komplexer ist als Delphi. Und ich weiss halt noch nicht genau wo was wie deklariert wird in Delphi hätte ich keine problem damit aber eben...

--

Schaut euch mal den Map teil an und votet mal mit Verbesserungsvorschlägen usw... (Like Comments)
http://www.youtube.com/watch?v=UVoLsur8hmE

zum Seitenanfang zum Seitenende Profil || Suche
007
05.07.2010, 13:19
Bluthund



Natuerlich musst du das ganze Tutorial vorm Kompilieren durcharbeiten wenn du schon wie so ein dressierter Schimpanse nur kopierst und einfuegst.
Die beiden Funktionen werden erst im naechsten Abschnitt "Adding toggle-functions" implementiert.

Das was du gemacht hast, ist jemandem zu sagen es gibt einen Eimer Wasser, der sieht so und so aus, und jetzt hol mir den Eimer Wasser. Du hast den Eimer Wasser aber nie hingestellt und das arme Schwein trotzdem losgeschickt um ihn zu holen.

--

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 05.07.2010 um 13:28 von Bluthund bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
05.07.2010, 13:31
GabbaWorld



So unglaublich wie es sich anhört aber ich hab Imfall den ganzen Code abgeschrieben....
weil mir mal jemand gesagt hat das man so auch lernen kann so hat man es wenigstens mal geschrieben.

--

Schaut euch mal den Map teil an und votet mal mit Verbesserungsvorschlägen usw... (Like Comments)
http://www.youtube.com/watch?v=UVoLsur8hmE

zum Seitenanfang zum Seitenende Profil || Suche
009
05.07.2010, 13:39
GabbaWorld



Zitat:
Bluthund postete
Du hast vm_adjust_fov_callback und vm_adjust_fov_callback (das Symbol) nur deklariert aber nicht definiert und nutzt sie in viewmodel_adjust_fov bzw. viewmodel_adjust_fov (der Verweis).
Das ist genau der Grund warum man C++ einigermassen drauf haben sollte bevor man sich in den Source-Code wagt.
Aber die Positionen wo ich es eingefügt hab ist richtig, oder ?

hmmm ich verstehe das nicht ganz wo soll das Hin ???

Quellcode:basecombatweapon_shared.cpp

Network them, let them be predicted and give 'em default values.

Constructor:

    m_bIsIronsighted = false;
    m_flIronsightedTime = 0.0f;
hier oder:Quellcode:CBaseCombatWeapon::CBaseCombatWeapon()
{
    // Constructor must call this
    // CONSTRUCT_PREDICTABLE( CBaseCombatWeapon );

    // Some default values.  There should be set in the particular weapon classes
    m_fMinRange1        = 65;
    m_fMinRange2        = 65;
    m_fMaxRange1        = 1024;
    m_fMaxRange2        = 1024;

    m_bIsIronsighted = false;
    m_flIronsightedTime = 0.0f;

    m_bReloadsSingly    = false;

    // Defaults to zero
    m_nViewModelIndex    = 0;

#if defined( CLIENT_DLL )
    m_iState = m_iOldState = WEAPON_NOT_CARRIED;
    m_iClip1 = -1;
    m_iClip2 = -1;
    m_iPrimaryAmmoType = -1;
    m_iSecondaryAmmoType = -1;
#endif

--

Schaut euch mal den Map teil an und votet mal mit Verbesserungsvorschlägen usw... (Like Comments)
http://www.youtube.com/watch?v=UVoLsur8hmE


Dieser Beitrag wurde am 05.07.2010 um 13:44 von GabbaWorld bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
05.07.2010, 14:17
Bluthund



Zitat:
So unglaublich wie es sich anhört aber ich hab Imfall den ganzen Code abgeschrieben....
So unglaublich es sich auch anhoert: Zum Kopieren und Einfuegen gehoeren nicht zwangslaeufig die Funktionen Kopieren und Einfuegen, die dir vom Werkzeug deiner Wahl bereitgestellt werden. Abschreiben erfuellt den Tatbestand ausreichend gut.
Denn wenn du verstehen wuerdest, was du da einfuegst, wuerdest du hier nicht solche Fragen stellen.
Zitat:
hier oder:
Ja, das ist der Kontruktor.
Tu dir etwas Gutes: http://www.amazon.de/C-Programming-Language-Special/dp/0201700735

Ansonsten gilt: Das ist hier kein Chat. Also schreib das Tutorial komplett ab wenn du schon musst und dann stell Fragen im Anschluss (nachdem du versucht hast aufgetretene Probleme selbst zu loesen).

--

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
011
05.07.2010, 22:28
GabbaWorld



Hab schon Bücher gelesen von C aber das ist ja mein Problem ich verstehe das "Template" nicht, oder wie man dem sagt nicht, bei Delphi ist es mir total logisch.

Quellcode:unit CstmBln;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, OffBtn, oaBaloon;

type
  TCustomBalloon = class(TAssistantBalloon)
    Panel1: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Bevel1: TBevel;
    Office97Button1: TOffice97Button;
    Label0: TLabel;
    Label1: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    procedure Office97Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  CustomBalloon: TCustomBalloon;

implementation

{$R *.DFM}

procedure TCustomBalloon.Office97Button1Click(Sender: TObject);
begin
  Tu was interessantes....
end;

end.
Zuerst Interface dann uses usw... da weiß ich genau wo aber bei C sehe ich manchmal mitten im Code Deklarierte variablen, dann wider funktionen irgendwie einfach ein durcheinander...

usw... wie gesagt hab ja schon das Buch von XNA FrameWork

--

Schaut euch mal den Map teil an und votet mal mit Verbesserungsvorschlägen usw... (Like Comments)
http://www.youtube.com/watch?v=UVoLsur8hmE


Dieser Beitrag wurde am 05.07.2010 um 22:29 von GabbaWorld bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
012
05.07.2010, 23:18
Bluthund



Der HL2-Gamecode ist in C++ geschrieben und nicht in C. Und eben davon handelt das Buch, das ich dir oben verlinkt habe (auch wenn die sprechende URL etwas anderes vermuten laesst).
Schlechte Code-Strukturierung ist kein Makel der Sprache selbst sondern lediglich eine Frage dessen, wie diszipliniert die Programmierer die ihnen gegebene Freiheit nutzen.
Dein Buch zum XNA Framework nuetzt dir da gar nichts, da XNA nur mit C# funktioniert und diese Sprache bei weitem nicht die Eigenheiten wie C++ besitzt (und auf den 345 Seiten in deinem Buch ist wahrscheinlich auch nur ein Bruchteil der Moeglichkeiten die C# bietet abgehandelt). Dein Object Pascal Snippet beeindruckt btw so ziemlich garnicht.
Es gibt keine Schablone fuer C++-Code, die einem von der Sprache auferlegt wird, und das ist auch gut so.

"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg." — Bjarne Stroustrup.

edit:

Zitat:
mitten im Code Deklarierte variablen
Das hat durchaus seinen Sinn, um naemlich die Lebenszeit einer Variable klein zu halten (vgl. Code Complete 2nd Ed. S. 246 ff. (10.4. Scope))

--

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 05.07.2010 um 23:35 von Bluthund bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
013
06.07.2010, 11:00
GabbaWorld



Ja das stimmt es ist echt recht kurz gehalten. Ich wollte es nicht mit C vergleichen nur sagen das ich das schon mal gelesen habe, C und C++ können nicht unterschiedlich sein das hab ich gemerkt...

Ich wollte ja eigentlich einfach mal das Tutorial ausprobieren. In C++ müsste ich wen dann eh zuerst mit OOP usw anfange da wäre Spiele Programmierung wohl eher lange später dran. Wie gesagt in Delphi Arbeit ich schon 3 Jahre und man kann über DirectX auch Spiele Programmieren aber solang bin ich damit noch nicht...

--

Schaut euch mal den Map teil an und votet mal mit Verbesserungsvorschlägen usw... (Like Comments)
http://www.youtube.com/watch?v=UVoLsur8hmE

zum Seitenanfang zum Seitenende Profil || Suche
014
04.09.2011, 23:44
Vegetaelite



Hi

Sry das ich den alten Thread ausgrabe ich hätte da eine Frage
und zwa Wie komm ich an diese Daten ran? bzw kann es besser modifizieren?:

Right:
UP:
Forward:
pitch:
yaw:
Roll:

Da ich die Cinematic mod benutze und ich die waffen nicht gelungen finde und vorallem nicht die Ironsights. Hab ich mir eigene runtergeladen jetzt muss ich nur noch die Ironsights anpassen allerdings isses ziemliche Fummel arbeit es perfekt hinzubekommen bzw die perfekten Daten anzugeben und immer das spiel neustarten und nachkontrolliern.
Deshalb wollt ich fragen wie man es schnell und einfach macht.

MFG
Vegeta

--

zum Seitenanfang zum Seitenende Profil || Suche