AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting (https://forums.alliedmods.net/forumdisplay.php?f=107)
-   -   Creating solid entity [CS:GO] (https://forums.alliedmods.net/showthread.php?t=318617)

SWRHARD 09-10-2019 11:18

Creating solid entity [CS:GO]
 
Hi, i have some problems with adding a solid entity.
I have this code:

Code:

public Action Build(int client, const char[] command, int argc) {
    int index = CreateEntityByName("prop_dynamic");
        if(index > -1) {
            SetEntityModel(index, TEST_ENTITY);
                  SetEntProp(index, Prop_Send, "m_nSolidType", 4);
                SetEntProp(index, Prop_Data, "m_CollisionGroup", 18);
                AcceptEntityInput(index, "EnableCollision" );
        DispatchSpawn(index);

        SDKHook(index, SDKHook_OnTakeDamage, TakeDamageFunc);
...
        }
        return Plugin_Handled;
}

Problem: i can hit my created entity, it works so good, but i also can walk through this model, but i want to forbid this.
I try to use all values for solid type
Code:

enum SolidType_t
{
        SOLID_NONE                        = 0,        // no solid model
        SOLID_BSP                        = 1,        // a BSP tree
        SOLID_BBOX                        = 2,        // an AABB
        SOLID_OBB                        = 3,        // an OBB (not implemented yet)
        SOLID_OBB_YAW                = 4,        // an OBB, constrained so that it can only yaw
        SOLID_CUSTOM                = 5,        // Always call into the entity for tests
        SOLID_VPHYSICS                = 6,        // solid vphysics object, get vcollide from the model and collide with that
        SOLID_LAST,
};

and for collision group:

Code:

enum Collision_Group_t
{
        COLLISION_GROUP_NONE  = 0,
        COLLISION_GROUP_DEBRIS,                        // Collides with nothing but world and static stuff
        COLLISION_GROUP_DEBRIS_TRIGGER, // Same as debris, but hits triggers
        COLLISION_GROUP_INTERACTIVE_DEBRIS,        // Collides with everything except other interactive debris or debris
        COLLISION_GROUP_INTERACTIVE,        // Collides with everything except interactive debris or debris
        COLLISION_GROUP_PLAYER,
        COLLISION_GROUP_BREAKABLE_GLASS,
        COLLISION_GROUP_VEHICLE,
        COLLISION_GROUP_PLAYER_MOVEMENT,  // For HL2, same as Collision_Group_Player, for
                                                                                // TF2, this filters out other players and CBaseObjects
        COLLISION_GROUP_NPC,                        // Generic NPC group
        COLLISION_GROUP_IN_VEHICLE,                // for any entity inside a vehicle
        COLLISION_GROUP_WEAPON,                        // for any weapons that need collision detection
        COLLISION_GROUP_VEHICLE_CLIP,        // vehicle clip brush to restrict vehicle movement
        COLLISION_GROUP_PROJECTILE,                // Projectiles!
        COLLISION_GROUP_DOOR_BLOCKER,        // Blocks entities not permitted to get near moving doors
        COLLISION_GROUP_PASSABLE_DOOR,        // Doors that the player shouldn't collide with
        COLLISION_GROUP_DISSOLVING,                // Things that are dissolving are in this group
        COLLISION_GROUP_PUSHAWAY,                // Nonsolid on client and server, pushaway in player code

        COLLISION_GROUP_NPC_ACTOR,                // Used so NPCs in scripts ignore the player.
        COLLISION_GROUP_NPC_SCRIPTED,        // USed for NPCs in scripts that should not collide with each other

        LAST_SHARED_COLLISION_GROUP
};

can u help me with it, thanks :shock:

Neuro Toxin 09-10-2019 19:28

Re: Creating solid entity [CS:GO]
 
Try SOLID_BSP with COLLISION_GROUP_INTERACTIVE

backwards 09-10-2019 22:11

Re: Creating solid entity [CS:GO]
 
Does the model have a proper physics box?

SWRHARD 09-11-2019 01:57

Re: Creating solid entity [CS:GO]
 
Quote:

Originally Posted by 1337norway (Post 2666611)
Does the model have a proper physics box?

I think yes, I checked 2 different models, one of these:

https://d.radikal.ru/d05/1909/45/f7618016973d.png

SWRHARD 09-11-2019 01:58

Re: Creating solid entity [CS:GO]
 
Quote:

Originally Posted by Neuro Toxin (Post 2666599)
Try SOLID_BSP with COLLISION_GROUP_INTERACTIVE

not working( i still can walk through this
I noticed a strange thing that when I shoot not in the model, the callback OnTakeDamage still works, it stops only when I start shooting on the other side of the map, probably collision group is wrong
May be wrong order (SetEntProp before DispatchSpawn or opposite), is it important?

BHaType 09-11-2019 05:52

Re: Creating solid entity [CS:GO]
 
Quote:

Originally Posted by SWRHARD (Post 2666622)
not working( i still can walk through this
I noticed a strange thing that when I shoot not in the model, the callback OnTakeDamage still works, it stops only when I start shooting on the other side of the map, probably collision group is wrong
May be wrong order (SetEntProp before DispatchSpawn or opposite), is it important?

Try this

PHP Code:

DispatchKeyValue(index"solid""6"); 


SWRHARD 09-11-2019 09:11

Re: Creating solid entity [CS:GO]
 
i try to use "Christmas tree" model from shared plugin and all works good, i cant move through the tree, dont understand why it's not working with my models, they have physics files too.
I notices one thing, when i walk through my model, my speed slows down and when i jumping on my model, i hear the sound of model material, but falls into it, i think physics file is bad, i opened this file in blender and all seems good :/

https://b.radikal.ru/b14/1909/60/aff4a0e645d9.png

UPDATE: i input a command "vcollide_wireframe 1" in the game, that to view collision meshes, and i saw, that my model doesnt have meshes xd, how it's possible, i dont know

Neuro Toxin 09-11-2019 18:33

Re: Creating solid entity [CS:GO]
 
Wait. U need to dispatch spawn before changing netprops.

SWRHARD 09-12-2019 00:48

Re: Creating solid entity [CS:GO]
 
this code works good for Christmas tree model:

Code:

public Action Build(int client, const char[] command, int argc) {
    int index = CreateEntityByName("prop_dynamic");
        if(index > -1) {
            SetEntityModel(index, TEST_ENTITY);
                  DispatchKeyValue(index, "Solid", "6");
        DispatchSpawn(index);

        SDKHook(index, SDKHook_OnTakeDamage, TakeDamageFunc);
        SetEntityMoveType(index, MOVETYPE_VPHYSICS);
...
        }
        return Plugin_Handled;
}

still is not working for my model


All times are GMT -4. The time now is 03:21.

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