[CS: GO] NoShotZones

Тема в разделе "Продам", создана пользователем krivetka1337, 30 мар 2016.

Метки:
  1. krivetka1337

    krivetka1337

    Сообщения:
    14
    Симпатии:
    1
    Продаю плагин позволяющий делать зону в которой нельзя стрелять
    Данный плагин стоит 200р я думаю для вас пригодится =)
    Доступ к команде: !nsz имеет только админ по флагу p (есть возможность поменять данный флаг)
    Максимально можно создавать 100 зон на карту
    Принцип работы плагина:
    Создаваемая зона действует по радиусу от точки наведенного прицела по указаному в
    создаваемом конфиге cfg/sourcemod/noshootzones.cfg
    База сохраняется по addons/sourcemod/configs/noshootzones.txt
    Также
    При вхождении в зону по середине пишет "Стрелять запрещено"
    Выход из зоны пишет "Стрелять можно"

    Оффтоп
    Плагин продается БЕЗ ИСХОДНОГО КОДА БЕЗ ПРИВЯЗКИ
     
    Последнее редактирование: 31 мар 2016
  2. DRUID

    DRUID

    Сообщения:
    63
    Симпатии:
    8
    ₮αй₮оβый, AS TRO, Monomizer и ещё 1-му нравится это.
  3. krivetka1337

    krivetka1337

    Сообщения:
    14
    Симпатии:
    1
    Наподобие что то не наблюдаю =)))
    Мой плагин состоит из ~220 строк
     
  4. AS TRO

    AS TRO

    Сообщения:
    1.055
    Симпатии:
    509
    @DRUID, Оффтоп
     
    krivetka1337 нравится это.
  5. Monomizer

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

    Сообщения:
    1.528
    Симпатии:
    201
    И какая разница, из скольких строк плагин, если ты даже не удосужился основной его принцип объяснить? Вернее сохраняются ли "точки/позиции" после смены карты, сколько зон доступно, будет ли поддержка плагина и т.д.
    ----
    Администрация, м.б. как предложение, если без исходников будут продавать, м.б. Вы хоть "корявость" кода будете проверять?
     
    krivetka1337 нравится это.
  6. krivetka1337

    krivetka1337

    Сообщения:
    14
    Симпатии:
    1
    Я бы показал код но не хочу
    --- Добавлено позже ---
    А интересно есть подобный плагин что бы можно было создавать зоны для бомб и выдача теру бомбу на нестандартных картах
     
    Последнее редактирование: 31 мар 2016
  7. AS TRO

    AS TRO

    Сообщения:
    1.055
    Симпатии:
    509
    Есть) но не такой широкий функционал у этого плагина) где-то на форуме лежит
     
    krivetka1337 нравится это.
  8. Саша Шеин

    Саша Шеин

    Сообщения:
    1.259
    Симпатии:
    191
  9. krivetka1337

    krivetka1337

    Сообщения:
    14
    Симпатии:
    1
  10. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
  11. andrey19992

    andrey19992

    Сообщения:
    301
    Симпатии:
    26
    Ребенок на обеды зарабатывает :-)
     
    krivetka1337 нравится это.
  12. krivetka1337

    krivetka1337

    Сообщения:
    14
    Симпатии:
    1
    конкуренция =)
    --- Добавлено позже ---
    DEN был прав
     
  13. vaxa

    vaxa Rock Rulet!

    Сообщения:
    859
    Симпатии:
    102
    Screenshot
    @krivetka1337, Хоть тут крестьян не смеши шут наш,ой извините
    ruskydubl,поменял ник везде и говорит,я это не я.Screenshot
     
  14. Саша Шеин

    Саша Шеин

    Сообщения:
    1.259
    Симпатии:
    191
  15. Reiko1231

    Reiko1231 AlexTheRegent

    Сообщения:
    237
    Симпатии:
    569
    220~ строк? 200р? Без исходников?

    PHP:
    #include <sdktools>

    new Float:     g_center[100][3];
    new 
    Float:    g_radius;
    new         
    g_zones;

    public 
    OnPluginStart()
    {
        
    RegAdminCmd("sm_nsz"Command_NSZADMFLAG_CUSTOM6);
        
    CreateConVar("sm_nsz_radius""210.0""радиус зоны");
    }

    public 
    OnConfigsExecuted()
    {
        
    g_zones 0;
        
    LoadConfig();
        
    g_radius GetConVarFloat(FindConVar("sm_nsz_radius"));
    }

    public 
    Action:Command_NSZ(clientargs)
    {
        
    decl Float:origin[3], Float:angles[3];
        
    GetClientEyePosition(clientorigin);
        
    GetClientEyeAngles(clientangles);
        
    TR_TraceRayFilter(originanglesMASK_SOLIDRayType_InfiniteTR_DontHitSelfclient);
        if ( 
    g_zones 100 && TR_DidHit(INVALID_HANDLE) )
        {
            
    TR_GetEndPosition(g_center[g_zones], INVALID_HANDLE);
            
    SaveConfig(g_zones);
            
    g_zones++;
        }

        return 
    Plugin_Handled;
    }

    public 
    bool:TR_DontHitSelf(entitymaskdata) { return ( entity != data ); }

    public 
    Action:OnPlayerRunCmd(client, &buttons, &impulseFloat:vel[3], Float:angles[3], &weapon, &subtype, &cmdnum, &tickcount, &seedmouse[2])
    {
        if ( 
    buttons IN_ATTACK ) {
            
    decl Float:origin[3];
            
    GetClientAbsOrigin(clientorigin);
            for ( new 
    0g_zones; ++) {
                if ( 
    GetVectorDistance(origing_center[i]) <= g_radius ) {
                    
    buttons &= ~IN_ATTACK;
                    return 
    Plugin_Changed;
                }
            }
        }
        return 
    Plugin_Continue;
    }

    LoadConfig()
    {
        
    decl String:map[64], String:path[256];
        
    GetCurrentMap(mapsizeof(map));
        
    BuildPath(Path_SMpathsizeof(path), "configs/nsz/%s.txt"map);

        new 
    Handle:kv CreateKeyValues(map), String:key[4] = "0";
        if ( 
    FileToKeyValues(kvpath) ) {
            while ( 
    KvJumpToKey(kvkey) ) {
                
    KvGetVector(kv"origin"g_center[g_zones]);
                
    g_zones++;
          
                
    IntToString(g_zoneskeysizeof(key));
                
    KvGoBack(kv);
            }
        }
        
    CloseHandle(kv);
    }

    SaveConfig(num)
    {
        
    decl String:map[64], String:path[256];
        
    GetCurrentMap(mapsizeof(map));
        
    BuildPath(Path_SMpathsizeof(path), "configs/nsz/%s.txt"map);

        new 
    Handle:kv CreateKeyValues(map), String:key[4];
        
    IntToString(numkeysizeof(key));
        
    FileToKeyValues(kvpath);
        
    KvJumpToKey(kvkeytrue);
        
    KvSetVector(kv"origin"g_center[num]);

        
    KvRewind(kv);
        
    KeyValuesToFile(kvpath);
        
    CloseHandle(kv);
    }

    Кстати, такая реализация (через радиус, а т.к. нет круглой сущности, то это работает через OnPlayerRunCmd) ой какая затратная, особенно если она сделала не правильно. А так как исходников нет и код в два раза больше, то...
    Если кому этот плагин вдруг будет нужен, то надо будет ещё создать папку nsz в папке sourcemod/configs
    И ещё, этот вариант работает во всех source играх.
     
    Серый™, 666FoX666 и AlmazON нравится это.
  16. Саша Шеин

    Саша Шеин

    Сообщения:
    1.259
    Симпатии:
    191
  17. krivetka1337

    krivetka1337

    Сообщения:
    14
    Симпатии:
    1
    Обновил плагин при вхождении в зону
    При вхождении в зону по середине пишет "Стрелять запрещено"
    Выход из зоны пишет "Стрелять можно"
     
  18. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.515
    Симпатии:
    1.969
    Поэтому всё никак не сделают нормально, через касание к такой зоне? Не увидел такой реализации пока.
    Может там через события шага/прыжка + SDKHooks на запрет выстрела. Будет поболее и получше. Оффтоп
    Как же напоминает MapLimit (отбиваем охоту бегать на Б при малом количестве игроков на любой карте)...
     
    krivetka1337 нравится это.
  19. krivetka1337

    krivetka1337

    Сообщения:
    14
    Симпатии:
    1
    Вангуйте =)
     
  20. krivetka1337

    krivetka1337

    Сообщения:
    14
    Симпатии:
    1
    Код чистый