Raised This Month: $51 Target: $400
 12% 

Objectcaps & Entity PlayerUse


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
teh ORiON
Member
Join Date: Sep 2011
Location: Denmark
Old 08-30-2013 , 18:52   Objectcaps & Entity PlayerUse
Reply With Quote #1

Greetings.

Idk if anyone needs this, but I did anyway.

Basically not all ents are useable, sure you can hook use on them, but it wont register when a player hits his use key on it. You can change this however by messing a bit with the function objectcaps.

What is objectcaps?
PHP Code:
virtual int        ObjectCapsvoid ) { return FCAP_ACROSS_TRANSITION; } 
Basically objectcaps defines some basic capabilities for any given entity. The function returns a bitmask where you can use the following bits:
From the sdk:
PHP Code:
// These are caps bits to indicate what an object's capabilities (currently used for save/restore and level transitions)
#define        FCAP_CUSTOMSAVE                0x00000001
#define        FCAP_ACROSS_TRANSITION         0x00000002        // should transfer between transitions
#define        FCAP_MUST_SPAWN                0x00000004        // Spawn after restore
#define        FCAP_DONT_SAVE                 0x80000000        // Don't save this
#define        FCAP_IMPULSE_USE               0x00000008        // can be used by the player
#define        FCAP_CONTINUOUS_USE            0x00000010        // can be used by the player
#define        FCAP_ONOFF_USE                 0x00000020        // can be used by the player
#define        FCAP_DIRECTIONAL_USE           0x00000040        // Player sends +/- 1 when using (currently only tracktrains)
#define        FCAP_MASTER                    0x00000080        // Can be used to "master" other entities (like multisource) 
And thus if you flip e.g. the FCAP_IMPULSE_USE bit on your return, you will be able to register a player's use on the entity. Below is an example with info_target.

PHP Code:
#include <amxmodx>
#include <hamsandwich>

#define        FCAP_CUSTOMSAVE                0x00000001
#define        FCAP_ACROSS_TRANSITION        0x00000002        // should transfer between transitions
#define        FCAP_MUST_SPAWN                0x00000004        // Spawn after restore
#define        FCAP_DONT_SAVE                0x80000000        // Don't save this
#define        FCAP_IMPULSE_USE            0x00000008        // can be used by the player
#define        FCAP_CONTINUOUS_USE            0x00000010        // can be used by the player
#define        FCAP_ONOFF_USE                0x00000020        // can be used by the player
#define        FCAP_DIRECTIONAL_USE        0x00000040        // Player sends +/- 1 when using (currently only tracktrains)
#define        FCAP_MASTER                    0x00000080

public plugin_init()
{
    
RegisterHam(Ham_ObjectCaps,"info_target","OnObjectCaps")
    
RegisterHam(Ham_Use,"info_target","OnUse")
}

public 
OnObjectCaps()
{
    
SetHamReturnInteger(FCAP_IMPULSE_USE)    
    return 
HAM_OVERRIDE
}

public 
OnUse(thisidcaller)
{
    
client_print(idcaller,print_chat,"Use!")

Attached Files
File Type: sma Get Plugin or Get Source (ObjectcapsTest.sma - 971 views - 1.1 KB)

Last edited by teh ORiON; 08-30-2013 at 20:19.
teh ORiON is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 07:23.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode