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

[insurgency] Upgrades


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
woklex
Member
Join Date: Sep 2012
Old 06-04-2017 , 15:42   [insurgency] Upgrades
Reply With Quote #1

Hello!

I want to get weapon attach, but I can not do anything. I found the following in netprops and it seems this is what I need, but I can not get the data. How can I get the data?

Data:
PHP Code:
Memberm_hWeapon (offset 4) (type integer) (bits 32) ()
     
Memberm_iSlot (offset 44) (type integer) (bits 5) ()
     
Memberm_iSubSlot (offset 48) (type integer) (bits 5) ()
     
Tablem_hUpgrades (offset 8) (type m_hUpgrades)
      
Member000 (offset 0) (type integer) (bits 8) (Unsigned)
      
Member001 (offset 4) (type integer) (bits 8) (Unsigned)
      
Member002 (offset 8) (type integer) (bits 8) (Unsigned)
      
Member003 (offset 12) (type integer) (bits 8) (Unsigned)
      
Member004 (offset 16) (type integer) (bits 8) (Unsigned)
      
Member005 (offset 20) (type integer) (bits 8) (Unsigned)
      
Member006 (offset 24) (type integer) (bits 8) (Unsigned)
      
Member007 (offset 28) (type integer) (bits 8) (Unsigned)
      
Member008 (offset 32) (type integer) (bits 8) (Unsigned
How I tried:
PHP Code:
new ActiveWeapon GetEntPropEnt(clientProp_Data"m_hActiveWeapon")
// NOT WORK
//int m_hUpgrades = GetEntProp(ActiveWeapon, Prop_Data, "m_hUpgrades");
// NOT WORK
// int m_hUpgrades = GetEntProp(ActiveWeapon, Prop_Data, "m_hUpgrades", 1) 

Last edited by woklex; 06-04-2017 at 15:43.
woklex is offline
woklex
Member
Join Date: Sep 2012
Old 06-05-2017 , 02:11   Re: [insurgency] Upgrades
Reply With Quote #2

I found this https://forums.alliedmods.net/showthread.php?t=58176.
It should help me.
woklex is offline
psychonic

BAFFLED
Join Date: May 2008
Old 06-05-2017 , 10:02   Re: [insurgency] Upgrades
Reply With Quote #3

Code:
int m_hUpgrades = GetEntProp(ActiveWeapon, Prop_Data, "m_hUpgrades", 1)
This one is almost correct.

You need to use Prop_Send instead of Prop_Data for sendprops, and I presume that it's an entity handle due to the 'h' before Upgrades, so you'd want GetEntPropEnt, not GetEntProp.
psychonic is offline
woklex
Member
Join Date: Sep 2012
Old 06-05-2017 , 14:24   Re: [insurgency] Upgrades
Reply With Quote #4

PHP Code:
// WORK
    
decl String:Class[64];
    for(new 
offset 0offset 128offset += 4)     // +4 to skip to next entry in array.
    
{
         new 
ent GetEntDataEnt2(clientm_hMyWeapons offset);
         
GetEdictClassname(ent, Class, sizeof(Class));
         
PrintToServer("[%s]", Class);
    }

//NOT WORK
    
decl String:Class2[64];
    new 
ActiveWeapon GetEntPropEnt(clientProp_Data"m_hActiveWeapon")
    new 
index GetEntProp(ActiveWeaponProp_Send"m_nModelIndex"1)
     for(new 
offset2 0offset2 128offset2 += 4)     // +4 to skip to next entry in array.
     
{
        
//NOT WORK
         //new ent2 = GetEntDataEnt2(client, m_hUpgrades + offset2);
        //NOT WORK
        //new ent2 = GetEntDataEnt2(index, m_hUpgrades + offset2);
        //NOT WORK
        
new ent2 GetEntDataEnt2(ActiveWeaponm_hUpgrades offset2);
        
GetEdictClassname(ent2Class2sizeof(Class2));
        
PrintToServer("[%s]"Class2);
     }

// NOT WORK
int m_hUpgrades GetEntProp(ActiveWeaponProp_Send"m_hUpgrades"1);
// NOT WORK
int m_hUpgrades GetEntPropEnt(ActiveWeaponProp_Send"m_hUpgrades"1); 
Any ideas?

Last edited by woklex; 06-05-2017 at 14:25.
woklex is offline
woklex
Member
Join Date: Sep 2012
Old 06-05-2017 , 16:16   Re: [insurgency] Upgrades
Reply With Quote #5

hmm..

PHP Code:
   Tablem_EquippedGear (offset 16) (type m_EquippedGear)
    
Member000 (offset 0) (type integer) (bits 8) (Unsigned)
    
Member001 (offset 4) (type integer) (bits 8) (Unsigned)
    
Member002 (offset 8) (type integer) (bits 8) (Unsigned)
    
Member003 (offset 12) (type integer) (bits 8) (Unsigned)
    
Member004 (offset 16) (type integer) (bits 8) (Unsigned)
    
Member005 (offset 20) (type integer) (bits 8) (Unsigned)
    
Member006 (offset 24) (type integer) (bits 8) (Unsigned
PHP Code:
//not work
     
for(new offset 0offset 128offset += 4)     // +4 to skip to next entry in array.
         
{
         new 
ent GetEntDataEnt2(clientm_EquippedGear offset);
         for(new 
offset2 0offset2 128offset2 += 4)     // +4 to skip to next entry in array.
             
{
             new 
ent2 GetEntDataEnt2(clientm_EquippedGearoffset2);
             
GetEdictClassname(ent2Class2sizeof(Class2));
        /        
PrintToServer("[%s]"Class2);
         }
     } 
And this also does not work, although I expected that here it is similar m_hWeapon

Logs:
L 06/05/2017 - 23:12:53: [SM] Exception reported: Invalid edict (-1 - -1)
L 06/05/2017 - 23:12:53: [SM] Blaming: reload.smx
L 06/05/2017 - 23:12:53: [SM] Call stack trace:
L 06/05/2017 - 23:12:53: [SM] [0] GetEdictClassname
L 06/05/2017 - 23:12:53: [SM] [1] Line 172, /home/groups/sourcemod/upload_tmp/phpnnjoMv.sp::Event_PlayerShoot
woklex is offline
woklex
Member
Join Date: Sep 2012
Old 06-10-2017 , 13:37   Re: [insurgency] Upgrades
Reply With Quote #6

Solution:
PHP Code:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#define PLUGIN_VERSION    "1.0.0"

public Plugin:myinfo =
{
    
name        "Test",
    
author        "FrozDark",
    
description    "",
    
version        PLUGIN_VERSION,
    
url            "www.hlmod.ru"
}

public 
OnPluginStart()
{
    
RegConsoleCmd("sm_test"Command_Test);
    
RegConsoleCmd("sm_test2"Command_Test2);
}

public 
Action:Command_Test2(clientargs)
{
    if (
client 0)
    {
        new 
offset GetEntSendPropOffs(client"m_EquippedGear"true);
        if (
offset == -1)
        {
            
LogError("Failed to find m_EquippedGear on client");
        }
        else
        {
            
//decl String:sClassname[64];
            
for (new 024i+=4)
            {
                new 
value GetEntData(clientoffset i);
                
ReplyToCommand(client"Value: %d | At offset %d"valuei);
                
//if (entity != -1 && GetEntityClassname(entity, sClassname, sizeof(sClassname)))
                //{
                //    ReplyToCommand(client, sClassname);
                //}
            
}
        }
    }
    return 
Plugin_Handled;
}

public 
Action:Command_Test(clientargs)
{
    if (
client 0)
    {
        new 
weapon_index GetEntPropEnt(clientProp_Send"m_hActiveWeapon");
        if (
weapon_index == -1)
        {
            
LogError("No active weapon");
        }
        else
        {
            new 
offset GetEntSendPropOffs(weapon_index"m_upgradeSlots"true);
            if (
offset == -1)
            {
                
LogError("Failed to find m_upgradeSlots on wepaon");
            }
            else
            {
                
//decl String:sClassname[64];
                
for (new 032i+=4)
                {
                    new 
value GetEntData(weapon_indexoffset i);
                    
ReplyToCommand(client"Value: %d | At offset %d"valuei);
                    
//if (entity != -1 && GetEntityClassname(entity, sClassname, sizeof(sClassname)))
                    //{
                    //    ReplyToCommand(client, sClassname);
                    //}
                
}
            }
        }
    }
    return 
Plugin_Handled;

woklex is offline
`666
AlliedModders Donor
Join Date: Jan 2006
Old 08-19-2019 , 05:28   Re: [insurgency] Upgrades
Reply With Quote #7

Quote:
Originally Posted by woklex View Post
Solution:
Thank you very much!!!!
`666 is offline
Reply



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:40.


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