Странный баг при добавлении свечения

ElectricStalin

Участник
Сообщения
24
Реакции
0
Добрый день. Потребовалось добавить энтитям оружия на земле свечение через стены. Все получилось, но оружие теперь почему-то спавнится высоко в небе (см. скрин).
Вот код:
thumb.png

C-подобный:
void CreateWeapon(int i)
{
    new index;
    char buffer[64];
    weapons.GetString(i,buffer,sizeof(buffer));
    TrimString(buffer);
    index=CreateEntityByName(buffer);
    allWeapons[i][ind]=index;
    if (index < 1) 
    { 
        LogError("Error during creating '%s'",buffer);
        return; 
    }
    SetEntProp(index, Prop_Send, "m_iItemDefinitionIndex", GetWeaponIndex(i));   
        DispatchKeyValueVector(index, "origin", spawnWeaponPositions[i]);
        DispatchKeyValue(index, "spawnflags", "1");
    entList[i]=index;
    SetEntProp(index, Prop_Data, "m_iClip1", weaponClip(buffer));
    SetEntProp(index, Prop_Send, "m_iPrimaryReserveAmmoCount",weaponReserve(buffer));
        DispatchSpawn(index);
    SDKHook(index, SDKHook_StartTouchPost, OnEntityTouch);

    TeleportEntity(index, spawnWeaponPositions[i], NULL_VECTOR, NULL_VECTOR);
    LogError("Create weapon ",i); 
    if(g_iGameState!=STATE_WARMUP)
    {
        SetSkin(i);
    }
    SetGlowing(index);
}

void SetGlowing(int entityIndex)
{
    char model[128];  
    GetEntPropString(entityIndex, Prop_Data, "m_ModelName", model, 128)  
    int skin = CreateEntModelProp(entityIndex, model);  
    SetEntProp(skin, Prop_Send, "m_bShouldGlow", true, true);
     
    SetEntProp(skin, Prop_Send, "m_nGlowStyle", 0);
    SetEntPropFloat(skin, Prop_Send, "m_flGlowMaxDist", 10000000.0);
     
    SetEntData(skin, GetEntSendPropOffs(skin, "m_clrGlow"), 192, _, true);    // Red
    SetEntData(skin, GetEntSendPropOffs(skin, "m_clrGlow") + 1, 160, _, true); // Green
    SetEntData(skin, GetEntSendPropOffs(skin, "m_clrGlow") + 2, 96, _, true); // Blue
    SetEntData(skin, GetEntSendPropOffs(skin, "m_clrGlow") + 3, 64, _, true); // Alpha
}

int CreateEntModelProp(int entity, char[] sModel)  
{
    RemoveSkin(entity);
    int Ent = CreateEntityByName("prop_dynamic_override");
    DispatchKeyValue(Ent, "model", sModel);
    DispatchKeyValue(Ent, "disablereceiveshadows", "1");
    DispatchKeyValue(Ent, "disableshadows", "1");
    DispatchKeyValue(Ent, "solid", "0");
    DispatchKeyValue(Ent, "spawnflags", "256");
    SetEntProp(Ent, Prop_Send, "m_CollisionGroup", 11);
    DispatchSpawn(Ent);
    SetEntProp(Ent, Prop_Send, "m_fEffects", EF_BONEMERGE|EF_NOSHADOW|EF_NORECEIVESHADOW|EF_PARENT_ANIMATES);
    SetVariantString("!activator");
    AcceptEntityInput(Ent, "SetParent", entity, Ent, 0);
    SetVariantString("primary");
   AcceptEntityInput(Ent, "SetParentAttachment", Ent, Ent, 0);

    return Ent;
}

void RemoveSkin(entity)  
{
    if(IsValidEntity(entity)) 
    {
        AcceptEntityInput(entity, "Kill");
    }
     
    SetEntityRenderMode(entity, RENDER_NORMAL);
}

spawnWeaponPositions координаты точек спавна я получаю из файла. В общем, если я отключаю свечение, то оружие спавнится как надо, если включаю, то оружие начинает светится, но спавнится совсем по другим координатам.
В логах ошибок нет
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
Если это CS:GO, то тут подобная тема нормальное явление. Вообще, для таких случаев есть квар mp_weapons_glow_on_ground.
 

ElectricStalin

Участник
Сообщения
24
Реакции
0
Если это CS:GO, то тут подобная тема нормальное явление. Вообще, для таких случаев есть квар mp_weapons_glow_on_ground.
Да, CS GO. Да, я знаю про этот квар, но мне нужно выключать свечения для каждой отдельной энитити, после того, как она была подобрана + цвет свечения будет различаться.
 
Сверху Снизу