Плагин sourcemod Dissolve с эффектом огня

Тема в разделе "Запросы", создана пользователем Черная вдова, 27 дек 2011.

  1. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    Здраствуйте,ищу плагин sourcemod Dissolve с эффектом огня
    В рамках v34 sourcemod 1.4.0 и sdkhooks
    Видел этот плагин на одном zm,но мне кажеться он был на eventscripts
     
  2. fallen1994

    fallen1994

    Сообщения:
    2.347
    Симпатии:
    544
    на см нету.
     
  3. acik

    acik

    Сообщения:
    734
    Симпатии:
    628
    Ну можно сделать в сервере это пиши
    sv_turbophysics "1" // Вкл/Выкл 1|0 позволяет толкать предметы при нажатии на кнопку "E"
    phys_pushscale "5" // Сила отталкивания предмета от "0" до 100 ври выстреле или ударе ножа
    ну dissolve для соурс мода качай но не могу подсказать какой плагиб поджигал трупа просто так
    Знаю Gorex там от грены тело горит)
     
  4. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    так
    PHP:
    #include <sourcemod>
    #include <sdktools>

    public OnPluginStart()
    {
        
    HookEvent("player_death"OnPlayerDeath);
    }

    public 
    OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new 
    ragdoll GetEntPropEnt(GetClientOfUserId(GetEventInt(event"userid")), Prop_Send"m_hRagdoll");
        
    IgniteEntity(ragdoll3.0);
        
    CreateTimer(3.0DeleteRagdollragdollTIMER_FLAG_NO_MAPCHANGE);
    }

    public 
    Action:DeleteRagdoll(Handle:eventany:ragdoll)
    {
        
    ExtinguishEntity(ragdoll);
        
    RemoveEdict(ragdoll);
    }
     
  5. CTe6eJIeK_vRn

    CTe6eJIeK_vRn Супер-модератор

    Сообщения:
    2.014
    Симпатии:
    1.797
    FrozDark, работает! А как увеличить время сохранения трупов до того как они сгорят?
     
  6. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    3.0 - меняй это везде
     
  7. Satan

    Satan

    Сообщения:
    162
    Симпатии:
    338
    FrozDark, на DM mod не работает. В логи идут ошибки:

    [SM] Native "IgniteEntity" reported: NULL not allowed
    [SM] Displaying call stack trace for plugin "lol.smx":
    [SM] [0] Line 12, tt.sp::OnPlayerDeath()

    в cssdm.cfg стоит cssdm_ragdoll_time "22"
     
  8. Пихалыч

    Пихалыч ══►Game-Division.Ru◄══

    Сообщения:
    52
    Симпатии:
    0
    Плагин крашит сервер детран ... понял, что ragdoll детрана и ragdoll FrozDarka не пашут вместе)))
     
  9. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
  10. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    можно так попробовать

    PHP:
    #pragma semicolon 1

    #include <sourcemod>
    #include <sdktools>

    new Handle:h_IgniteDuration;

    public 
    Plugin:myinfo 
    {
        
    name "Ragdoll Ignition",
        
    author "FrozDark",
        
    description "Ignites ragdoll when a client dies",
        
    version "1.0",
        
    url "http://hlmod.ru/"
    }

    public 
    OnPluginStart()
    {
        
    HookEvent("player_death"OnPlayerDeath);
        
    h_IgniteDuration CreateConVar("sm_ragdoll_ignite_duration""3.0""Длительность горения тела. 0 - чтобы выключить"FCVAR_PLUGINtrue0.0true10.0);
    }

    public 
    OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new 
    Float:duration GetConVarFloat(h_IgniteDuration);
        if (
    duration <= 0.0)
            return;
        
        new 
    ragdoll GetEntPropEnt(GetClientOfUserId(GetEventInt(event"userid")), Prop_Send"m_hRagdoll");
        
        if (
    ragdoll <= MaxClients || !IsValidEdict(ragdoll))
            return;
        
        
    IgniteEntity(ragdollduration);
        
    CreateTimer(durationDissolveEntityragdollTIMER_FLAG_NO_MAPCHANGE);
    }

    public 
    Action:DissolveEntity(Handle:eventany:ragdoll)
    {
        
    ExtinguishEntity(ragdoll);
        
        if (!
    IsValidEdict(ragdoll))
            return;

        
    decl String:target[32];
        
    Format(targetsizeof(target), "target_%d"ragdoll);
        
        new 
    ent CreateEntityByName("env_entity_dissolver");
        if (
    ent 0)
        {
            
    DispatchKeyValue(ragdoll"targetname"target);
            
    DispatchKeyValue(ent"dissolvetype""3");
            
    DispatchKeyValue(ent"target"target);
            
    AcceptEntityInput(ent"Dissolve");
            
    AcceptEntityInput(ent"kill");
        }
    }
     

    Вложения:

    san911, apache, Solo6669 и 6 другим нравится это.
  11. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    Это чем-то даже лучше,спасибо!:good:
     
  12. Biokanobioz

    Biokanobioz

    Сообщения:
    106
    Симпатии:
    1
    Ошибка в errors логе
    L 02/11/2014 - 17:21:21: [SM] Native "ExtinguishEntity" reported: Entity 124 is not valid
    L 02/11/2014 - 17:21:21: [SM] Displaying call stack trace for plugin "ragdoll_ignition.smx":
    L 02/11/2014 - 17:21:21: [SM] [0] Line 40, D:\Games\Servers\CSS-Public_Server\css\cstrike\addons\sourcemod\scripti ng\ragdoll_ignition.sp::DissolveEntity()
    L 02/11/2014 - 17:21:21: [SM] Native "ExtinguishEntity" reported: Entity 129 is not valid
    L 02/11/2014 - 17:21:21: [SM] Displaying call stack trace for plugin "ragdoll_ignition.smx":
    L 02/11/2014 - 17:21:21: [SM] [0] Line 40, D:\Games\Servers\CSS-Public_Server\css\cstrike\addons\sourcemod\scripti ng\ragdoll_ignition.sp::DissolveEntity()
    L 02/11/2014 - 17:21:23: [SM] Native "ExtinguishEntity" reported: Entity 139 is not valid
    L 02/11/2014 - 17:21:23: [SM] Displaying call stack trace for plugin "ragdoll_ignition.smx":
    L 02/11/2014 - 17:21:23: [SM] [0] Line 40, D:\Games\Servers\CSS-Public_Server\css\cstrike\addons\sourcemod\scripti ng\ragdoll_ignition.sp::DissolveEntity()

    Как исправить ?
     
  13. cangncan

    cangncan

    Сообщения:
    69
    Симпатии:
    2
    а можно в этот плагин добавить эффект горения?
    PHP:
    #pragma semicolon 1

    #include <sourcemod>
    #include <sdktools>

    #define PLUGIN_VERSION "1.2.4"

    new bool:g_bEndingbool:g_bEnabledbool:g_bRagdollsbool:g_bDissolveFloat:g_fDelayFloat:g_fXAxisFloat:g_fYAxisFloat:g_fZAxisString:g_sDissolve[16], String:g_sMagnitude[16];
    new 
    Handle:g_hEnabled INVALID_HANDLE;
    new 
    Handle:g_hRagdolls INVALID_HANDLE;
    new 
    Handle:g_hXAxis INVALID_HANDLE;
    new 
    Handle:g_hYAxis INVALID_HANDLE;
    new 
    Handle:g_hZAxis INVALID_HANDLE;
    new 
    Handle:g_hDelay INVALID_HANDLE;
    new 
    Handle:g_hDissolve INVALID_HANDLE;
    new 
    Handle:g_hMagnitude INVALID_HANDLE;

    public 
    Plugin:myinfo 
    {
        
    name "Ragdoll Modifications",
        
    author "Twisted|Panda",
        
    description "Provides a few options for modifying players' ragdolls.",
        
    version PLUGIN_VERSION,
        
    url "http://ominousgaming.com/"
    };

    public 
    OnPluginStart() 

        
    CreateConVar("sm_ragdolls_version"PLUGIN_VERSION"Ragdolls Version"FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
        
    g_hEnabled CreateConVar("sm_ragdolls_enabled""1.0""Enables/Disables all features of this plugin."FCVAR_NONEtrue0.0true1.0);
        
    g_hRagdolls CreateConVar("sm_ragdolls_mode""1.0""If enabled, ragdolls will be exaggerated upon death."FCVAR_NONEtrue0.0true1.0);
        
    g_hXAxis CreateConVar("sm_ragdolls_exaggerate_x""100.0""The 'x' factor to be applied on exaggerated ragdolls."FCVAR_NONE);
        
    g_hYAxis CreateConVar("sm_ragdolls_exaggerate_y""100.0""The 'y' factor to be applied on exaggerated ragdolls."FCVAR_NONE);
        
    g_hZAxis CreateConVar("sm_ragdolls_exaggerate_z""500.0""The 'z' factor to be applied on exaggerated ragdolls."FCVAR_NONE);
        
    g_hDissolve CreateConVar("sm_ragdolls_dissolve""2""The dissolve effect to be used. (-1 = Disabled, 0 = Energy, 1 = Light, 2 = Heavy, 3 = Core)"FCVAR_NONEtrue, -1.0true3.0);
        
    g_hDelay CreateConVar("sm_ragdolls_delay""3.0""The delay after a body is created that it is deleted or dissolved."FCVAR_NONE);
        
    g_hMagnitude CreateConVar("sm_ragdolls_magnitude""15.0""The magnitude of the dissolve effect."FCVAR_NONEtrue0.0);
        
    AutoExecConfig(true"ragdolls");

        
    HookEvent("player_death"Event_OnPlayerDeathEventHookMode_Pre);
        
    HookEvent("round_start"Event_OnRoundStart);
        
    HookEvent("round_end"Event_OnRoundEnd);

        
    HookConVarChange(g_hEnabledAction_OnSettingsChange);
        
    HookConVarChange(g_hRagdollsAction_OnSettingsChange);
        
    HookConVarChange(g_hXAxisAction_OnSettingsChange);
        
    HookConVarChange(g_hYAxisAction_OnSettingsChange);
        
    HookConVarChange(g_hZAxisAction_OnSettingsChange);
        
    HookConVarChange(g_hDissolveAction_OnSettingsChange);
        
    HookConVarChange(g_hDelayAction_OnSettingsChange);
        
    HookConVarChange(g_hMagnitudeAction_OnSettingsChange);
    }

    public 
    OnMapStart()
    {
        
    Void_SetDefaults();
    }

    public 
    Action:Event_OnRoundStart(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if(
    g_bEnabled)
        {
            
    g_bEnding false;
        }
    }

    public 
    Action:Event_OnRoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if(
    g_bEnabled)
        {
            
    g_bEnding true;
        }
    }

    public 
    Action:Event_OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if(
    g_bEnabled && !g_bEnding)
        {
            new 
    client GetClientOfUserId(GetEventInt(event"userid"));
            if(!
    client || !IsClientInGame(client))
                return 
    Plugin_Continue;
            
            new 
    _iEntity GetEntPropEnt(clientProp_Send"m_hRagdoll");
            if(
    _iEntity && IsValidEdict(_iEntity))
            {
                if(
    g_bRagdolls)
                {
                    
    decl Float:_fForce[3], Float:_fVelocity[3];

                    
    GetEntPropVector(_iEntityProp_Send"m_vecForce"_fForce);
                    
    _fForce[0] *= g_fXAxis;
                    
    _fForce[1] *= g_fYAxis;
                    
    _fForce[2] *= g_fZAxis;
                    
    SetEntPropVector(_iEntityProp_Send"m_vecForce"_fForce);

                    
    GetEntPropVector(_iEntityProp_Send"m_vecRagdollVelocity"_fVelocity);
                    
    _fVelocity[0] *= g_fXAxis;
                    
    _fVelocity[1] *= g_fYAxis;
                    
    _fVelocity[2] *= g_fZAxis;
                    
    SetEntPropVector(_iEntityProp_Send"m_vecRagdollVelocity"_fVelocity);
                    
                    if(
    g_fDelay 0.0)
                    {
                        if(
    g_bDissolve)
                            
    CreateTimer(g_fDelayTimer_DissolveEntIndexToEntRef(_iEntity), TIMER_FLAG_NO_MAPCHANGE); 
                        else
                            
    CreateTimer(g_fDelayTimer_RemoveEntIndexToEntRef(_iEntity), TIMER_FLAG_NO_MAPCHANGE);
                    }
                }
                else if(
    g_bDissolve)
                {
                    if(
    g_fDelay 0.0)
                        
    CreateTimer(g_fDelayTimer_DissolveEntIndexToEntRef(_iEntity), TIMER_FLAG_NO_MAPCHANGE);
                    else
                        
    Void_Dissolve(INVALID_ENT_REFERENCE_iEntity);
                }
            }
        }
        
        return 
    Plugin_Continue;
    }

    public 
    Action:Timer_Remove(Handle:timerany:ref
    {
        new 
    entity EntRefToEntIndex(ref);
        if(
    entity != INVALID_ENT_REFERENCE && !g_bEnding)
            
    AcceptEntityInput(entity"Kill");
    }

    public 
    Action:Timer_Dissolve(Handle:timerany:ref)
    {
        new 
    entity EntRefToEntIndex(ref);
        if(
    entity != INVALID_ENT_REFERENCE && !g_bEnding)
            
    Void_Dissolve(refentity);
    }

    Void_Dissolve(any:refany:entity)
    {
        if(
    entity && IsValidEdict(entity) && IsValidEntity(entity))
        {
            new 
    g_iDissolve CreateEntityByName("env_entity_dissolver");
            if(
    g_iDissolve 0)
            {
                
    decl String:g_sName[32];
                
    Format(g_sName32"Ref_%d_Ent_%d"refentity);

                
    DispatchKeyValue(entity"targetname"g_sName);
                
    DispatchKeyValue(g_iDissolve"target"g_sName);
                
    DispatchKeyValue(g_iDissolve"dissolvetype"g_sDissolve);
                
    DispatchKeyValue(g_iDissolve"magnitude"g_sMagnitude);
                
    AcceptEntityInput(g_iDissolve"Dissolve");
                
    AcceptEntityInput(g_iDissolve"Kill");
            }
            else
                
    AcceptEntityInput(entity"Kill");
        }
    }

    Void_SetDefaults()
    {
        
    g_bEnabled GetConVarInt(g_hEnabled) ? true false;
        
    g_bRagdolls GetConVarInt(g_hRagdolls) ? true false;
        
    g_fXAxis GetConVarFloat(g_hXAxis);
        
    g_fYAxis GetConVarFloat(g_hYAxis);
        
    g_fZAxis GetConVarFloat(g_hZAxis);
        
    g_fDelay GetConVarFloat(g_hDelay);
        
    GetConVarString(g_hDissolveg_sDissolve32);
        
    g_bDissolve StringToInt(g_sDissolve) >= true false;
        
    GetConVarString(g_hMagnitudeg_sMagnitude32);
    }

    public 
    Action_OnSettingsChange(Handle:cvar, const String:oldvalue[], const String:newvalue[])
    {
        if(
    cvar == g_hEnabled)
            
    g_bEnabled StringToInt(newvalue) ? true false;
        else if(
    cvar == g_hRagdolls)
            
    g_bRagdolls StringToInt(newvalue) ? true false;
        else if(
    cvar == g_hXAxis)
            
    g_fXAxis StringToFloat(newvalue);
        else if(
    cvar == g_hYAxis)
            
    g_fYAxis StringToFloat(newvalue);
        else if(
    cvar == g_hZAxis)
            
    g_fZAxis StringToFloat(newvalue);
        else if(
    cvar == g_hDelay)
            
    g_fDelay StringToFloat(newvalue);
        else if(
    cvar == g_hDissolve)
        {
            
    Format(g_sDissolvesizeof(g_sDissolve), "%s"newvalue);
            
    g_bDissolve StringToInt(newvalue) >= true false;
        }
        else if(
    cvar == g_hMagnitude)
            
    Format(g_sMagnitudesizeof(g_sMagnitude), "%s"newvalue);
    }