[СКРИПТ] Генератор листа карт

Тема в разделе "Linux", создана пользователем TolikCorp, 5 авг 2013.

  1. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    PHP:
    #!/bin/bash/
    ####################################################   
       
    cd ./cstrike/maps
    ####################################################
    # exclude_maplist - карты, исключаемые из списка
       
    exclude_maplist="background itemtest test_"
    ####################################################
       
    ls -*.bsp sed 's/.bsp//g' > ./maplist.temp
       
    for now_grep in $exclude_maplist; do
          echo 
    "Исключение из списка карт: $now_grep"
          
    sed -"/$now_grep/d" ./maplist.temp
       done
       cat 
    ./maplist.temp > ../mapcycle.txt
       cat 
    ./maplist.temp > ../cfg/mapcycle.txt
       cat 
    ./maplist.temp > ../maplist.txt
       cat 
    ./maplist.temp > ../cfg/maplist.txt
       rm 
    ./maplist.temp
    ####################################################
     
    BMW M6, kv.acid, CTe6eJIeK_vRn и 3 другим нравится это.
  2. tiger_by

    tiger_by Гл. Админ SourceGames.RU

    Сообщения:
    629
    Симпатии:
    279
    Поудобнее для множества исключений было бы
    PHP:
    #! /bin/bash
    cd ./cstrike/maps
    ls
    echo "Что исключить? используй копипаст через пробел, а потом ентер."
    read exclude
    for bad in $exclude; do
       
    ls -*.bsp grep -"$badcut -"." -f 1 >> /tmp/map.txt 
    done
    cat 
    /tmp/map.txt > ...
    {
    как у автора}

     
    KorDen нравится это.
  3. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Tiger, твой скрипт не проверил, как мне кажется:

    делаем трассировку

    допустим 3 исключения: awp_ 35hp_ aim_

    Пробегаем первый раз, получаем список всех карт, убираем awp_ из списка, отсекаем название то первой точки. Перенаправляем вывод в конец файла.

    Пробегаем второй раз, получаем список из карт без 35hp_, но в списках будут awp_, далее то же самое. Перенаправляем в конец, получается уже в файле повторки появились, да еще и из списка не убралось ничего.

    Пробегаем третий раз, там воще жесть в файле будет.



    И кстати, лучше писать в каталог с картами сервера, чем в темп.
    Вдруг сразу несколько серверов запускаются?

    или использовать схему maplist_${game_port}.txt

    Добавлено через 24 минуты
    Затестил, зацени-ка:
    PHP:
    user@debian:~/hl2dm_1/hl2mp/maps$ ./1
    dm_powerhouse
    .bsp  dm_sniper.bsp     graphs
    dm_lockdown
    .bsp   dm_resistance.bsp  dm_steamlab.bsp   halls3.bsp
    dm_overwatch
    .bsp  dm_runoff.bsp      dm_underpass.bsp
    Что исключить
    используй копипаст через пробела потом ентер.
    halls3 dm_lock dm_runoff
    user
    @debian:~/hl2dm_1/hl2mp/mapscat /tmp/map.txt
    dm_lockdown
    dm_overwatch
    dm_powerhouse
    dm_resistance
    dm_runoff
    dm_sniper
    dm_steamlab
    dm_underpass
    dm_overwatch
    dm_powerhouse
    dm_resistance
    dm_runoff
    dm_sniper
    dm_steamlab
    dm_underpass
    halls3
    dm_lockdown
    dm_overwatch
    dm_powerhouse
    dm_resistance
    dm_sniper
    dm_steamlab
    dm_underpass
    halls3
     
    Последнее редактирование: 11 авг 2013
  4. tiger_by

    tiger_by Гл. Админ SourceGames.RU

    Сообщения:
    629
    Симпатии:
    279
    Так надо исключать конкретные карты или карты по типу?
    Все исключения указываются сразу как аргумент через пробел.
    Код:
    ./script de_dust2.bsp cs_italy.bsp
    Но я думаю, что ввобще существование подобного скрипта не несет никакой нагрузки. Удобнее делать cfg файлы и выполнять exec mapcycle_something.txt при нужных режимах игры.

    Да и вообще разница в методах исключения в grep -v "..." и sed "/.../d" Только sed нужен for в твоем случае, а egrep -v "(var1|var2|var3)" он не нужен
     
  5. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    У меня убирает и по типу, и конкретные. Я лишь указал, что твой скрипт ничего не исключит, даже если карты целиком писать. Он просто N раз запишет в конец файла список карт.

    Добавлено через 12 минут
    Может быть, ты и прав. Свой скрипт проверен. А тот твой немного с багом, допили как надо свой чтобы и конкретные и по типу убирал, да выложи. Мб я нового узнаю чего.
     
    Последнее редактирование: 12 авг 2013