[CS: Source] Bomb Events

Тема в разделе "Утверждённые плагины", создана пользователем rJIa3, 7 янв 2011.

  1. rJIa3

    rJIa3

    Сообщения:
    169
    Симпатии:
    171
    Bomb Events
    Описание:
    Плагина делает сообщения событий о бомбе.
    Когда игрок сбросит бомбу, разрядит, подберёт и т.д. показывает подсказку в чате, или сообщение в центре, какое действие с бомбой делает игрок.
    А когда вы поставите (разрядите) или взрыв бомбы, будет играть звук для всех игроков.

    Требования:
    SourceMod 1.2 и выше

    Установка:
    Скопируйте файл Bomb_Events.smx в папку plugins
    Скопируйте файл Bomb_Events.sp в папку scripting
    Файлы c4powa.wav, witch.wav, laugh.wav поместить в sound/misc/

    Настройки:

    • be_enabled - 1 - вкл / 0 - выкл
    • be_planted - 1 - показывает сообщение, когда игрок установил бомбу
    • be_defused - 1 - показывает сообщение, когда игрок обезвредили бомбу
    • be_planting - 1 - показывает сообщение, когда игрок на пленте
    • be_exploded - 1 - показывает сообщение когда бомба взорвана
    • be_abort - 1 - показывает сообщение о взрыве бомбы
    • be_pickup - 1 - показывает сообщение, когда игрок поднимает бомбу
    • be_dropped - 1 - показывает сообщение, когда игрок сбрасывает бомбу
    • be_defusing - 1 - показывает сообщение, когда дифузят бомбу
    • be_abortdefuse - 1 - показывает сообщение, когда перестают дефузить
    • be_printtype- где отображать ( 1 - везде, 2 - чат, 3 - центр )

    Оригинал

     

    Вложения:

    KoHb, AlmazON, wow/Skyline и 2 другим нравится это.
  2. Seruy

    Seruy

    Сообщения:
    73
    Симпатии:
    6
    Так а показывает события всем или только своей тиме? Кто ставил уже?
     
  3. Usami4

    Usami4

    Сообщения:
    2
    Симпатии:
    0
    плагин в списке загруженых весит, но звуков нет. вавки лежат на своём месте
     
  4. kv.acid

    kv.acid Супер-модератор

    Сообщения:
    2.033
    Симпатии:
    767
    Usami4, Оффтоп
    Оффтоп
     
  5. Leckter Hannibal

    Leckter Hannibal

    Сообщения:
    521
    Симпатии:
    146
    Здравствуйте.
    Может у кого не будь есть с русским переводом , блин плагин отличный.
     
  6. Horseman

    Horseman

    Сообщения:
    13
    Симпатии:
    1
    :beer:Да согласен с русским было бы намного лучше
     
  7. fallen1994

    fallen1994

    Сообщения:
    2.347
    Симпатии:
    544
    Что руки совсем обленились перевести пару строк?)
     
    Horseman нравится это.
  8. Leckter Hannibal

    Leckter Hannibal

    Сообщения:
    521
    Симпатии:
    146
    Дак вот уметь бы,и еще английский знать
     
  9. mihaput

    mihaput

    Сообщения:
    698
    Симпатии:
    175
    Вот как то так на русский перевел:
    Код:
    #include <sourcemod>
    #include <sdktools>
    #include <sdktools_sound>
    
    #define PLUGIN_AUTHOR    "tuty"
    #define PLUGIN_VERSION    "1.1"
    
    #pragma semicolon 1
    
    new Handle:gBombEvents = INVALID_HANDLE;
    new Handle:gBombPlanted = INVALID_HANDLE;
    new Handle:gBombDefused = INVALID_HANDLE;
    new Handle:gBombPlanting = INVALID_HANDLE;
    new Handle:gBombExploded = INVALID_HANDLE;
    new Handle:gBombAbort = INVALID_HANDLE;
    new Handle:gBombPickUp = INVALID_HANDLE;
    new Handle:gBombDropped = INVALID_HANDLE;
    new Handle:gBombDefusing = INVALID_HANDLE;
    new Handle:gBombAbortDef = INVALID_HANDLE;
    new Handle:gPrintType = INVALID_HANDLE;
    
    public Plugin:myinfo = 
    {
        name = "Bomb Events",
        author = PLUGIN_AUTHOR,
        description = "Bomb events. Show when a player planted ... defused the bomb.",
        version = PLUGIN_VERSION,
        url = "www.sourcemod.net"
    };
    public OnPluginStart()
    {
        gBombEvents = CreateConVar( "be_enabled", "1" );
        CreateConVar( "bombevents_version", PLUGIN_VERSION, "Bomb Events", FCVAR_PLUGIN | FCVAR_SPONLY | FCVAR_REPLICATED | FCVAR_NOTIFY );
        
        if( GetConVarInt( gBombEvents ) != 0 )
        {
            HookEvent( "bomb_beginplant", Event_BeginPlant );
            HookEvent( "bomb_abortplant", Event_BombAbort );
            HookEvent( "bomb_planted", Event_BombPlanted );
            HookEvent( "bomb_defused", Event_BombDefused );
            HookEvent( "bomb_exploded", Event_BombExploded );
            HookEvent( "bomb_dropped", Event_BombDropped );
            HookEvent( "bomb_pickup", Event_BombPickup );
            HookEvent( "bomb_begindefuse", Event_BombBeginDefuse );
            HookEvent( "bomb_abortdefuse", Event_BombAbortDefuse );
        
        
            gBombPlanted = CreateConVar( "be_planted", "1" );
            gBombDefused = CreateConVar( "be_defused", "1" );
            gBombPlanting = CreateConVar( "be_planting", "1" );
            gBombExploded = CreateConVar( "be_exploded", "1" );
            gBombAbort = CreateConVar( "be_abort", "1" );
            gBombPickUp = CreateConVar( "be_pickup", "1" );
            gBombDropped = CreateConVar( "be_dropped", "1" );
            gBombDefusing = CreateConVar( "be_defusing", "1" );
            gBombAbortDef = CreateConVar( "be_abortdefuse", "1" );    
            gPrintType = CreateConVar( "be_printtype", "1" ); // 1 hint, 2 chat, 3 center
        }
    }
    public OnMapStart()
    {
        decl String:planted[ 256 ];
        decl String:defused[ 256 ];
        decl String:exploded[ 256 ];
    
        FormatEx( planted, sizeof( planted ) - 1, "sound/misc/c4powa.wav" );
        FormatEx( defused, sizeof( defused ) - 1, "sound/misc/laugh.wav" );
        FormatEx( exploded, sizeof( exploded ) - 1, "sound/misc/witch.wav" );
    
        if( FileExists( planted ) && FileExists( defused ) && FileExists( exploded ) )
        {
            AddFileToDownloadsTable( planted );
            AddFileToDownloadsTable( defused );
            AddFileToDownloadsTable( exploded );
    
            PrecacheSound( "misc/c4powa.wav", true );
            PrecacheSound( "misc/laugh.wav", true );
            PrecacheSound( "misc/witch.wav", true );
        }
    }    
    public Action:Event_BeginPlant( Handle:event, const String:name[], bool:dontBroadcast )
    {
        if( GetConVarInt( gBombPlanting ) == 1 )
        {
            new id = GetClientOfUserId( GetEventInt( event, "userid" ) );
            
            decl String:Name[ 32 ];
            GetClientName( id, Name, sizeof( Name ) - 1 );
            
            switch( GetConVarInt( gPrintType ) )
            {
                case 1:    PrintHintTextToAll( "Внимание! %s Установка Бомбы!!", Name );
                case 2:    PrintToChatAll( "\x03Внимание! %s Установка Бомбы!!", Name );
                case 3:    PrintCenterTextAll( "Внимание! %s Установка Бомбы!!", Name );
            }
        }
    }
    public Action:Event_BombAbort( Handle:event, const String:name[], bool:dontBroadcast )
    {
        if( GetConVarInt( gBombAbort ) == 1 )
        {
            new id = GetClientOfUserId( GetEventInt( event, "userid" ) );
            
            decl String:Name[ 32 ];
            GetClientName( id, Name, sizeof( Name ) - 1 );
            
            switch( GetConVarInt( gPrintType ) )
            {
                case 1:    PrintHintTextToAll( " %s Бомба не установлена!", Name );
                case 2:    PrintToChatAll( "\x03 %s Бомба не устновлена!", Name );
                case 3:    PrintCenterTextAll( " %s Бомба не установлена!", Name );
            }
        }
    }
    public Action:Event_BombPlanted( Handle:event, const String:name[], bool:dontBroadcast )
    {
        if( GetConVarInt( gBombPlanted ) == 1 )
        {
            new id = GetClientOfUserId( GetEventInt( event, "userid" ) );
            
            decl String:Name[ 32 ];
            GetClientName( id, Name, sizeof( Name ) - 1 );
            
            switch( GetConVarInt( gPrintType ) )
            {
                case 1:    PrintHintTextToAll( "%s Бомба установлена!", Name );
                case 2:    PrintToChatAll( "\x03%s Бомба установлена!", Name );
                case 3:    PrintCenterTextAll( "%s Бомба установлена!", Name );
            }
            EmitSoundToAll( "misc/c4powa.wav" );
        }
    }
    public Action:Event_BombDefused( Handle:event, const String:name[], bool:dontBroadcast )
    {
        if( GetConVarInt( gBombDefused ) == 1 )
        {
            new id = GetClientOfUserId( GetEventInt( event, "userid" ) );
            
            decl String:Name[ 32 ];
            GetClientName( id, Name, sizeof( Name ) - 1 );
            
            switch( GetConVarInt( gPrintType ) )
            {
                case 1:    PrintHintTextToAll( "%s Бомба разминирована!", Name );
                case 2:    PrintToChatAll( "\x03%s Бомба разминирована!", Name );
                case 3:    PrintCenterTextAll( "%s Бомба разминирована!", Name );
            }
            EmitSoundToAll( "misc/laugh.wav" );
        }
    }
    public Action:Event_BombExploded( Handle:event, const String:name[], bool:dontBroadcast )
    {
        if( GetConVarInt( gBombExploded ) == 1 )
        {
            switch( GetConVarInt( gPrintType ) )
            {
                case 1:    PrintHintTextToAll( "Бомба взорвана!" );
                case 2:    PrintToChatAll( "\x03Бомба взорвана!" );
                case 3:    PrintCenterTextAll( "Бомба взорвана!" );
            }
            EmitSoundToAll( "misc/witch.wav" );
        }
    }
    public Action:Event_BombDropped( Handle:event, const String:name[], bool:dontBroadcast )
    {
        if( GetConVarInt( gBombDropped ) == 1 )
        {
            new id = GetClientOfUserId( GetEventInt( event, "userid" ) );
            
            decl String:Name[ 32 ];
            GetClientName( id, Name, sizeof( Name ) - 1 );
            
            switch( GetConVarInt( gPrintType ) )
            {
                case 1:    PrintHintTextToAll( "%s Бомба сброшена!", Name );
                case 2:    PrintToChatAll( "\x03%s Бомба сброшена!", Name );
                case 3:    PrintCenterTextAll( "%s Бомба сброшена!", Name );
            }
        }
    }
    public Action:Event_BombPickup( Handle:event, const String:name[], bool:dontBroadcast )
    {
        if( GetConVarInt( gBombPickUp ) == 1 )
        {
            new id = GetClientOfUserId( GetEventInt( event, "userid" ) );
            
            decl String:Name[ 32 ];
            GetClientName( id, Name, sizeof( Name ) - 1 );
            
            switch( GetConVarInt( gPrintType ) )
            {
                case 1:    PrintHintTextToAll( "%s Бомба поднята!", Name );
                case 2:    PrintToChatAll( "\x03%s Бомба поднята!", Name );
                case 3:    PrintCenterTextAll( "%s Бомба поднята!", Name );
            }
        }
    }
    public Action:Event_BombBeginDefuse( Handle:event, const String:name[], bool:dontBroadcast )
    {
        if( GetConVarInt( gBombDefusing ) == 1 )
        {
            new id = GetClientOfUserId( GetEventInt( event, "userid" ) );
            
            decl String:Name[ 32 ];
            GetClientName( id, Name, sizeof( Name ) - 1 );
            
            switch( GetConVarInt( gPrintType ) )
            {
                case 1:    PrintHintTextToAll( "Внимание! %s Дефьюз Бомбы!!!!", Name );
                case 2:    PrintToChatAll( "\x03Внимание! %s Дефьюз Бомбы!!!!", Name );
                case 3:    PrintCenterTextAll( "Внимание! %s Дефьюз Бомбы!!!!", Name );
            }
        }
    }
    public Action:Event_BombAbortDefuse( Handle:event, const String:name[], bool:dontBroadcast )
    {
        if( GetConVarInt( gBombAbortDef ) == 1 )
        {
            new id = GetClientOfUserId( GetEventInt( event, "userid" ) );
            
            decl String:Name[ 32 ];
            GetClientName( id, Name, sizeof( Name ) - 1 );
            
            switch( GetConVarInt( gPrintType ) )
            {
                case 1:    PrintHintTextToAll( "%s Дефьюз Бомбы прекращен!", Name );
                case 2:    PrintToChatAll( "\x03%s Дефьюз Бомбы прекращен!", Name );
                case 3:    PrintCenterTextAll( "%s Дефьюз Бомбы прекращен!", Name );
            }
        }
    }
    
    Все вроде работает, только почему -то не пишет что бомба взорвана. По крайней мере у меня...
     

    Вложения:

    • Bomb_Events.sp
      Размер файла:
      8 КБ
      Просмотров:
      181
    • Bomb_Events.smx
      Размер файла:
      6,2 КБ
      Просмотров:
      145
    wow/Skyline, random.81, Horseman и 2 другим нравится это.
  10. Leckter Hannibal

    Leckter Hannibal

    Сообщения:
    521
    Симпатии:
    146
    mihaput все работает.
    Большой рахмат тебе
     
  11. mihaput

    mihaput

    Сообщения:
    698
    Симпатии:
    175
    lecktercss, Да незачто :)
     
    Horseman нравится это.
  12. ggginex

    ggginex Помог? Жми спасибо

    Сообщения:
    26
    Симпатии:
    1
    по русски не пишет,почему ?

    Добавлено через 13 минут
    а все работает сорри
     
    Последнее редактирование: 17 мар 2012
  13. Дмитрий Айцев 286513862

    Дмитрий Айцев 286513862

    Сообщения:
    17
    Симпатии:
    0
  14. runner

    runner

    Сообщения:
    22
    Симпатии:
    3
    Вот Мой Перевод Плагина :boss:
     

    Вложения:

  15. andriyzver

    andriyzver

    Сообщения:
    173
    Симпатии:
    9
    Как убрать звуки вовсе? Они мне не нужны.
     
  16. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.528
    Симпатии:
    201
    В исходнике закоментируй все три EmitSoundToAll и скомпилируй, либо вовсе эти строчки удали
     
  17. andriyzver

    andriyzver

    Сообщения:
    173
    Симпатии:
    9
    Этого достаточно будет? Просто я смотрел там эти звуки повторяются по одному несколько раз.
     
  18. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.528
    Симпатии:
    201
    Ровно по одному разу, мог бы уже попробовать и проверить
    [​IMG]
     
  19. andriyzver

    andriyzver

    Сообщения:
    173
    Симпатии:
    9
    Я имел введу сами звуки. Удалил эти строчки, вроде больше не кеширует в консоли. Спасибо за помощь.

    Кстати могу поделится исходником и плагином с переводом и отключенными звуками:
     

    Вложения:

    • Bomb_Events.smx
      Размер файла:
      7,5 КБ
      Просмотров:
      2
    • Bomb_Events.sp
      Размер файла:
      8 КБ
      Просмотров:
      9
  20. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.528
    Симпатии:
    201
    Ааа, я понял тебя, посмотри public OnMapStart(), там всё что можно с этими звуками связано, поидее вообще можно его убрать и всё будет работать
    Попробуй, я только закомментировал да и #include <sdktools_sound> тогда не нужен
     

    Вложения:

    • Bomb_Events.sp
      Размер файла:
      7,7 КБ
      Просмотров:
      2