View Single Post
VoiDeD
AlliedModders Donor
Join Date: Mar 2009
Location: Illinois, USA
Old 07-13-2014 , 15:57   Re: New API and Syntax
Reply With Quote #3

For developers looking to harness the methodmap syntax for an object-oriented API for interacting with game entities, check out these helpers includes.

Example of usage:
PHP Code:
stock void GiveObjectHatCBaseObject objectEnt, const char hatModelPLATFORM_MAX_PATH ] )
{
    
CBaseEntity hatProp Entity_CreateByName"prop_dynamic_override" );

    if ( 
hatProp.IsValid )
    {
        
hatProp.SetModelhatModel );
        
hatProp.Spawn();

        
hatProp.AcceptInput"DisableCollision" );
        
hatProp.AcceptInput"DisableShadow" );

        
ParentHathatPropobjectEnt );
    }
}

stock void ParentHatCBaseEntity hatPropCBaseObject objectEnt )
{
    
char hatModelPLATFORM_MAX_PATH ];
    
hatProp.GetModelhatModelsizeofhatModel ) );

    
float modelScale 1.0;
    
float modelOffset 0.0;

    if ( !
Config_GetHatByModelhatModelmodelOffsetmodelScale ) )
    {
        
LogError"Unable to find hat config for hat: %s"hatModel );
        return;
    }

    
hatProp.Skin objectEnt.Builder.Team 2;
    
hatProp.ModelScale modelScale;

    
char attachmentName128 ];
    
GetAttachmentNameobjectEntattachmentNamesizeofattachmentName ) );

    
hatProp.SetParentobjectEnt );
    
hatProp.SetParentAttachmentattachmentName );

    
float vecPos]; float angRot];
    
hatProp.GetLocalOriginvecPos );
    
hatProp.GetLocalAnglesangRot );

    
// apply z offset
    
vecPos] += modelOffset;

    
// apply position/angle fixes based on object type
    
OffsetAttachmentPositionobjectEntvecPosangRot );

    
hatProp.TeleportvecPosangRotNULL_VECTOR );

__________________
VoiDeD is offline