[CSS] Following C4 v1.0.1

Тема в разделе "Плагины для SourceMod", создана пользователем ilga80, 5 дек 2012.

  1. ilga80

    ilga80

    Сообщения:
    153
    Симпатии:
    827
    [CSS] Following C4 v1.0.1
    Описание:
    Забавный плагин. Бомба следует за игроком который ее поставил.Когда игрок умрет, c4 будет преследовать ближайшего игрока.

    Квары(Cvars):
    Находятся в cstrike/cfg/sourcemod/plugin.FollowingC4.cfg
    PHP:
    sm_followingc4_auto_update 1/(Включить автообновление)
    sm_followingc4_model "models/weapons/w_c4_planted.mdl" путь к модели бомбы
    sm_followingc4_size 
    "1.0" размер бомбы
    Установка:
    FollowingC4.smx кинуть в addons/sourcemod/plugins
    FollowingC4.sp кинуть в addons/sourcemod/scripting
    plugin.FollowingC4.cfg кинуть в cfg/sourcemod

    Для автообновления установите Updater

    http://www.youtube.com/watch?v=X4kApIKCHjM

    FollowingC4new.sp - новая версия без кваров(исходник компилится)
    PHP:
    sm_followingc4_size
    sm_followingc4_model
    P.S.Сам проверил на css v75 карта de_dust2
    Оригинал
     
    Последнее редактирование: 22 фев 2013
  2. Пыхарь

    Пыхарь

    Сообщения:
    150
    Симпатии:
    19
    Re: [CSS] Following C4 v1.0.0

    #include <sourcemod>
    #include <sdktools>
    #include <smlib>

    всё учел?
     
  3. legend1998

    legend1998

    Сообщения:
    292
    Симпатии:
    178
    Re: [CSS] Following C4 v1.0.0

    Замените if (edict_distance < distance || distance = 0.0) на if (edict_distance < distance || distance == 0.0)
    Появятся другие ошибки... :(
     
  4. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    Re: [CSS] Following C4 v1.0.0

    PHP:
    #pragma semicolon 1

    #include <sourcemod>
    #include <sdktools>
    #include <smlib>

    #undef REQUIRE_PLUGIN
    #include <updater>

    #define UPDATE_URL    "http://snbx.info/followingc4/followingc4.txt"
    #define PLUGIN_VERSION "1.0.1"

    public Plugin:myinfo =
    {
        
    name "Following C4",
        
    author "Mitch",
        
    description "Makes the C4 Follow the planter, and if he dies then follows another unfortunate soul.",
        
    version PLUGIN_VERSION,
        
    url "http://snbx.info/"
    };

    new 
    Handle:updaterCvar INVALID_HANDLE;
    new 
    gLeaderOffset;

    new 
    C4Hostage;
    new 
    FollowingPlayer;

    public 
    OnPluginStart()
    {
        
    updaterCvar CreateConVar("sm_followingc4_auto_update""1""Enables automatic updating (has no effect if Updater is not installed)");
        
    AutoExecConfig();
        
    gLeaderOffset FindSendPropOffs("CHostage""m_leader");
        
    HookEvent("player_death"PlayerDeathEvent);
        
    HookEvent("bomb_planted"BomPlanted_Event);
    }
    public 
    OnPluginEnd()
    {
        if(
    IsHostage(C4Hostage))
        {
            
    AcceptEntityInput(C4Hostage"Kill");
        }
    }
    public 
    OnClientDisconnect(client)
    {
        if(
    client==FollowingPlayer)
        {
            
    FindNewPlayer();
        }
    }
    public 
    PlayerDeathEvent(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new 
    client = (GetClientOfUserId(GetEventInt(event"userid")));
        if(
    client==FollowingPlayer)
        {
            
    FindNewPlayer();
        }
    }
    public 
    OnAllPluginsLoaded() 
    {
        if(
    LibraryExists("updater")) 
        {
            
    Updater_AddPlugin(UPDATE_URL);
        }
        
    CreateConVar("sm_followingc4_version"PLUGIN_VERSION"C4Model Version"FCVAR_DONTRECORD|FCVAR_NOTIFY);    
    }
    FindNewPlayer()
    {
        new 
    Float:orig[3];
        
    GetEntPropVector(C4HostageProp_Send"m_vecOrigin"orig);
        
        
    decl Float:vecOrigin_edict[3];
        new 
    Float:distance 0.0;
        new 
    closestEdict INVALID_ENT_REFERENCE;
        new 
    Float:edict_distance 0.0;

        for (new 
    edict=1edict <= MaxClientsedict++) 
        {        
            if (!
    IsValidEdict(edict))
            {
                continue;
            }
            
            if (
    edict == C4Hostage)
            {
                continue;
            }
                
            if (
    GetEntSendPropOffs(edict"m_vecOrigin") == -1)
            {
                continue;
            }
                
            
    GetEntPropVector(edictProp_Send"m_vecOrigin"vecOrigin_edict);
            
    edict_distance GetVectorDistance(origvecOrigin_edict);
            if (
    edict_distance distance || distance == 0.0)
            {
                
    distance edict_distance;
                
    closestEdict edict;
            }
        }
        
    FollowingPlayer closestEdict;
        if(
    FollowingPlayer && IsClientInGame(FollowingPlayer) && IsPlayerAlive(FollowingPlayer))
        {
            if(
    IsHostage(C4Hostage))
            {
                
    SetEntDataEnt2(C4HostagegLeaderOffsetFollowingPlayer);
            }
        }
    }
    public 
    OnMapStart()
    {
        
    CreateTimer(5.0Timer_OwnerRepeat_TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
    }
    public 
    Action:Timer_OwnerRepeat(Handle:timer)
    {
        if(
    FollowingPlayer && IsClientInGame(FollowingPlayer) && IsPlayerAlive(FollowingPlayer))
        {
            if(
    IsHostage(C4Hostage))
            {
                
    SetEntDataEnt2(C4HostagegLeaderOffsetFollowingPlayer);
            }
        }
    }
    public 
    Action:BomPlanted_Event(Handle:event, const String:name[], bool:dontBroadcast)
    {
        
    FollowingPlayer GetClientOfUserId(GetEventInt(event"userid"));
        new 
    c4 = -1;
        
    c4 FindEntityByClassname(c4"planted_c4");
        new 
    Float:pos[3], Float:angles[3];
        if(
    c4 != -1)
        {
            
    GetEntPropVector(FollowingPlayerProp_Data"m_vecOrigin"pos);
            
    GetEntPropVector(FollowingPlayerProp_Data"m_angRotation"angles);
            
    decl String:c4Model[128];
            
    GetEntPropString(c4Prop_Data"m_ModelName"c4Model,sizeof(c4Model));
            
    C4Hostage CreateEntityByName("hostage_entity");
            if((
    C4Hostage == -1) )
                
    PrintToServer("Error making hostage!");
            
            
    DispatchKeyValue(C4Hostage"model"c4Model);
            
    DispatchKeyValue(C4Hostage"skin""1");
            
    DispatchKeyValue(C4Hostage"solid""0");
            
    DispatchKeyValue(C4Hostage"disableshadows""1");
            
    SetEntityModel(C4Hostagec4Model);
            
    DispatchSpawn(C4Hostage);
            
    SetEntProp(C4HostageProp_Data"m_takedamage"0);
            
    SetEntityRenderColor(C4Hostage2552552550);
            
    SetEntityRenderMode(C4HostageRENDER_TRANSALPHA);

            
    TeleportEntity(C4HostageposanglesNULL_VECTOR);
            
            
    SetEntProp(C4HostageProp_Data"m_CollisionGroup"1);
            
    SetEntData(C4HostageFindSendPropOffs("CHostage""m_isRescued"), true4true);
            
            
    SetVariantString("!activator");
            
    AcceptEntityInput(c4"SetParent"C4Hostagec40);
        }
        return 
    Plugin_Continue;
    }

    public 
    Action:Updater_OnPluginDownloading() 
    {
        if(!
    GetConVarBool(updaterCvar)) 
        {
            return 
    Plugin_Handled;
        }
        return 
    Plugin_Continue;
    }

    public 
    Updater_OnPluginUpdated() 
    {
        
    ReloadPlugin();
    }
    bool:IsHostage(Ent)
    {
        if(
    Ent != -1)
        {
            if(
    IsValidEdict(Ent) && IsValidEntity(Ent) && IsEntNetworkable(Ent))
            {
                
    decl String:ClassName[255];
                
    GetEdictClassname(EntClassName255);
                if(
    StrEqual(ClassName"hostage_entity"))
                {
                    return 
    true;
                }
            }
        }
        return 
    false;
    }
    :victory:
     

    Вложения:

    • cspp.sp
      Размер файла:
      4,7 КБ
      Просмотров:
      12
    • cspp.smx
      Размер файла:
      13,4 КБ
      Просмотров:
      5
    • Plugin.jpg
      Plugin.jpg
      Размер файла:
      20,9 КБ
      Просмотров:
      39
    Руслан Ахметшин нравится это.
  5. SenatoR

    SenatoR Модератор

    Сообщения:
    714
    Симпатии:
    270
    Re: [CSS] Following C4 v1.0.0

    Помойму ты не ту часть кода скинул....
     
  6. legend1998

    legend1998

    Сообщения:
    292
    Симпатии:
    178
    Последнее редактирование: 9 дек 2012
    AlmazON нравится это.
  7. SenatoR

    SenatoR Модератор

    Сообщения:
    714
    Симпатии:
    270
    Re: [CSS] Following C4 v1.0.0

    Добавил 2 квара

    Following_C4_Size = CreateConVar("c4_size", "1.0", "Размер бомбы.", 0, true, 0.1, true, 10.0);
    Following_C4_Model = CreateConVar("c4_model", "models/weapons/w_c4_planted.mdl", "Модель бомбы");
     

    Вложения:

    • FollowingC4.smx
      Размер файла:
      14,1 КБ
      Просмотров:
      7
    • FollowingC4.sp
      Размер файла:
      5,9 КБ
      Просмотров:
      9
    Последнее редактирование: 9 дек 2012
    AlmazON и The End Is Near... нравится это.
  8. SenatoR

    SenatoR Модератор

    Сообщения:
    714
    Симпатии:
    270
    Re: [CSS] Following C4 v1.0.0

    Исправил, компилируется нормально (Банальная ошибка была...)
     
    AlmazON нравится это.
  9. SenatoR

    SenatoR Модератор

    Сообщения:
    714
    Симпатии:
    270
    Re: [CSS] Following C4 v1.0.0

    Да,ща сделаю модель еще
     
  10. SenatoR

    SenatoR Модератор

    Сообщения:
    714
    Симпатии:
    270
    Re: [CSS] Following C4 v1.0.0

    обновил...
     
  11. SenatoR

    SenatoR Модератор

    Сообщения:
    714
    Симпатии:
    270
    Re: [CSS] Following C4 v1.0.0

    Загляну,только я в бомбе ничего не писал, использовал код тогоже автора...
    Плагин на который ты кинул ссылку - посмотрю
     
    Последнее редактирование модератором: 2 фев 2016
  12. patriot_css

    patriot_css

    Сообщения:
    15
    Симпатии:
    1
    Бомбу что разменировать нельзя?
     
  13. patriot_css

    patriot_css

    Сообщения:
    15
    Симпатии:
    1
    Всех теров убил бомба на месте стойт начинаю минировать ана в начале минирования обрывается.