Skinchooser, работа конфигов по префиксу карты

Тема в разделе "Программирование / Скриптинг", создана пользователем nikita1811, 17 окт 2016.

  1. nikita1811

    nikita1811

    Сообщения:
    86
    Симпатии:
    4
    Всем привет, прошу небольшой помощи по плагину Sm_Skinchooser, хочу переделать его, чтобы плагин использовал не название карты в файлах конфигурации, а префикс карты, подробнее:
    Сейчас для карты de_dust2 необходимо переименовывать конфиги так:
    Код:
    de_dust2_arms.ini
    de_dust2_arms_downloads.ini
    de_dust2_skins.ini
    de_dust2_skins_downloads.ini
    и сохранение скинов происходить в следующем порядке:
    Код:
    data/de_dust2_skinchooser_armsmodels.ini
    data/de_dust2_skinchooser_playermodels.ini
    Я же хочу сделать чтобы следующая настройка распространялась на все карты с префиксом de_, пример:
    Код:
    de_arms.ini
    de_arms_downloads.ini
    de_skins.ini
    de_skins_downloads.ini
    и соответственно сохраняло так же, по префиксу:
    Код:
    data/de_skinchooser_armsmodels.ini
    data/de_skinchooser_playermodels.ini
    Спасибо @AlmazON за то, что довольно сильно приблизил к желаемому результату.
    После 264 строки:
    Код:
    GetCurrentMap(curmap, sizeof(curmap));
    Добавь:
    PHP:
    decl position;
    if ((
    position FindCharInString(curmap'_'true)) != -1curmap[position] = '\0';
    Так же вставлял после 429.

    Это помогло, но есть 1 проблемка:
    С обычными картами (пример de_dust2), которые содержат один "_" (пробел), сохраняет нормально, как и надо:
    Код:
    data/de_skinchooser_armsmodels.ini
    data/de_skinchooser_playermodels.ini
    А вот если карта содержит боле 1 "_" (пробела), пример awp_lego_2, то сохраняет так:
    Код:
    data/awp_lego_skinchooser_armsmodels.ini
    data/awp_lego_skinchooser_playermodels.ini
    а нужно так:
    Код:
    data/awp_skinchooser_armsmodels.ini
    data/awp_skinchooser_playermodels.ini
    То есть обрезает только _2, может можно еще какую проверку впихнуть? (а ведь есть карты где больше 4 пробелов в названии карты...)

    Сам плагин:
    sm_skinchooser/sm_skinchooser.sp at master · NomisCZ/sm_skinchooser · GitHub
     
  2. Grey83

    Grey83

    Сообщения:
    321
    Симпатии:
    94
    в FindCharInString(curmap, '_', true) убери последний параметр и будет тебе счастье
    должно получиться FindCharInString(curmap, '_')
     
    nikita1811 нравится это.
  3. AlmazON

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

    Сообщения:
    4.514
    Симпатии:
    1.968
    Если в пути карты нет подчёркивания, кроме как в её имени, то да, самое то. Вроде у workshop-карт его и не бывает, только цифры.
     
    nikita1811 нравится это.
  4. nikita1811

    nikita1811

    Сообщения:
    86
    Симпатии:
    4
    Спасибо все получилось:dance2: