Вылет игры SetEntityModel к игроку CSGO

Колян

Участник
Сообщения
180
Реакции
5
PHP:
PrecacheModel("models/props_c17/oildrum001.mdl", true);
    SetEntityModel(client, "models/props_c17/oildrum001.mdl");
   
    char fullPath[100];
    GetClientModel(client, fullPath, sizeof(fullPath));
    PrintToChat(client, "%s", fullPath);
   

    entity = CreateEntityByName("prop_physics_override");
    if (IsValidEntity(entity)) 
    {
        PrecacheModel(fullPath, true);
        SetEntityModel(entity, fullPath);
        SetEntityMoveType(entity, MOVETYPE_NONE);
        SetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity", client);
        SetEntProp(entity, Prop_Data, "m_CollisionGroup", 1);
        SetEntProp(entity, Prop_Send, "m_usSolidFlags", 12);
        SetEntProp(entity, Prop_Send, "m_nSolidType", 6);
        DispatchSpawn(entity);
        SetEntData(entity, g_Freeze, FL_CLIENT | FL_ATCONTROLS, 4, true);
        SetEntityMoveType(entity, MOVETYPE_NONE);
        SetEntPropEnt(entity, Prop_Data, "m_hLastAttacker", client);

        SetEntityRenderMode(client, RENDER_NONE);
        SetEntityRenderMode(entity, RENDER_TRANSCOLOR);

        float orig[3];
        GetClientAbsOrigin(client,orig);
        TeleportEntity(entity, orig, NULL_VECTOR, NULL_VECTOR);
   
        SetVariantString("!activator");
        AcceptEntityInput(entity, "SetParent", client, entity, 0);
    }

Присваиваю игроку текстуру SetEntityModel(client, "models/props_c17/oildrum001.mdl"); после чего ставлю на место игрока ее entity = CreateEntityByName("prop_physics_override");

Все работает нормально, но как только убивают игрока - Вылетает игра... подскажите из-за чего и как это пофиксить?
 

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,335
У модели нет анимации смерти.
На прехуке смерти игрока надо возвращать старую модель.
 

Колян

Участник
Сообщения
180
Реакции
5
У модели нет анимации смерти.
На прехуке смерти игрока надо возвращать старую модель.
да я так и думал но разбирал плагин PropHunt - там в момент playeDaeth ничего подобого нет а playerDeath_Pre - вовсе нет.... вот и спрашиваю можно проблему можно решить без костылей...
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
PHP:
PrecacheModel("models/props_c17/oildrum001.mdl", true);
    PrintToChat(client, "models/props_c17/oildrum001.mdl");

    entity = CreateEntityByName("prop_physics_override");
    if (IsValidEntity(entity))
    {
        SetEntityModel(entity, "models/props_c17/oildrum001.mdl");
        SetEntityMoveType(entity, MOVETYPE_NONE);
        SetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity", client);
        SetEntProp(entity, Prop_Data, "m_CollisionGroup", 1);
        SetEntProp(entity, Prop_Send, "m_usSolidFlags", 12);
        SetEntProp(entity, Prop_Send, "m_nSolidType", 6);
        DispatchSpawn(entity);
        SetEntData(entity, g_Freeze, FL_CLIENT | FL_ATCONTROLS, 4, true);
        SetEntityMoveType(entity, MOVETYPE_NONE);
        SetEntPropEnt(entity, Prop_Data, "m_hLastAttacker", client);

        SetEntityRenderMode(client, RENDER_NONE);
        SetEntityRenderMode(entity, RENDER_TRANSCOLOR);

        float orig[3];
        GetClientAbsOrigin(client,orig);
        TeleportEntity(entity, orig, NULL_VECTOR, NULL_VECTOR);
   
        SetVariantString("!activator");
        AcceptEntityInput(entity, "SetParent", client, entity, 0);
    }
для нормальной работы нужен sv_disable_immunity_alpha 1
 

Колян

Участник
Сообщения
180
Реакции
5
PHP:
  HookEvent("player_death", Event_OnPlayerDeath_Pre, EventHookMode_Pre);

public Action Event_OnPlayerDeath_Pre(Handle event, const char[] name, bool dontBroadcast) {
    int client = GetClientOfUserId(GetEventInt(event, "userid"));
    PrecacheModel("models/player/custom_player/legacy/ctm_st6.mdl", true);
    SetEntityModel(client, "models/player/custom_player/legacy/ctm_st6.mdl");
    return Plugin_Continue;
}

не помогло...
--- Добавлено позже ---
PHP:
PrecacheModel("models/props_c17/oildrum001.mdl", true);
    PrintToChat(client, "models/props_c17/oildrum001.mdl");

    entity = CreateEntityByName("prop_physics_override");
    if (IsValidEntity(entity))
    {
        SetEntityModel(entity, "models/props_c17/oildrum001.mdl");
        SetEntityMoveType(entity, MOVETYPE_NONE);
        SetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity", client);
        SetEntProp(entity, Prop_Data, "m_CollisionGroup", 1);
        SetEntProp(entity, Prop_Send, "m_usSolidFlags", 12);
        SetEntProp(entity, Prop_Send, "m_nSolidType", 6);
        DispatchSpawn(entity);
        SetEntData(entity, g_Freeze, FL_CLIENT | FL_ATCONTROLS, 4, true);
        SetEntityMoveType(entity, MOVETYPE_NONE);
        SetEntPropEnt(entity, Prop_Data, "m_hLastAttacker", client);

        SetEntityRenderMode(client, RENDER_NONE);
        SetEntityRenderMode(entity, RENDER_TRANSCOLOR);

        float orig[3];
        GetClientAbsOrigin(client,orig);
        TeleportEntity(entity, orig, NULL_VECTOR, NULL_VECTOR);
  
        SetVariantString("!activator");
        AcceptEntityInput(entity, "SetParent", client, entity, 0);
    }
для нормальной работы нужен sv_disable_immunity_alpha 1

Т.Е просто поставить sv_disable_immunity_alpha 1 и все в коде ниве менять не надо?
--- Добавлено позже ---
PHP:
PrecacheModel("models/props_c17/oildrum001.mdl", true);
    PrintToChat(client, "models/props_c17/oildrum001.mdl");

    entity = CreateEntityByName("prop_physics_override");
    if (IsValidEntity(entity))
    {
        SetEntityModel(entity, "models/props_c17/oildrum001.mdl");
        SetEntityMoveType(entity, MOVETYPE_NONE);
        SetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity", client);
        SetEntProp(entity, Prop_Data, "m_CollisionGroup", 1);
        SetEntProp(entity, Prop_Send, "m_usSolidFlags", 12);
        SetEntProp(entity, Prop_Send, "m_nSolidType", 6);
        DispatchSpawn(entity);
        SetEntData(entity, g_Freeze, FL_CLIENT | FL_ATCONTROLS, 4, true);
        SetEntityMoveType(entity, MOVETYPE_NONE);
        SetEntPropEnt(entity, Prop_Data, "m_hLastAttacker", client);

        SetEntityRenderMode(client, RENDER_NONE);
        SetEntityRenderMode(entity, RENDER_TRANSCOLOR);

        float orig[3];
        GetClientAbsOrigin(client,orig);
        TeleportEntity(entity, orig, NULL_VECTOR, NULL_VECTOR);
  
        SetVariantString("!activator");
        AcceptEntityInput(entity, "SetParent", client, entity, 0);
    }
для нормальной работы нужен sv_disable_immunity_alpha 1

"sv_disable_immunity_alpha" = "1" ( def. "0" ) game replicated - If set, clients won't slam the player model render settings each frame for immun

уже стоит "1"
--- Добавлено позже ---
как быть ? ниче не помогает...
 
Последнее редактирование:

komashchenko

Идиот
Сообщения
916
Реакции
2,569
Кусок того что когда-то написал

C-подобный:
public OnPluginStart()
{
   HookEvent("player_death", Event_Death);
}


public Action:Event_Death(Handle:event, const String:name[], bool:dontBroadcast)
{
    new iClient = GetClientOfUserId(GetEventInt(event, "userid"));
    new ragdoll = GetEntPropEnt(iClient, Prop_Send, "m_hRagdoll");
    if (ragdoll > 0) RemoveEdict(ragdoll);
}
 
Сверху Снизу