Veloth Опубликовано 25 марта, 2020 Жалоба Поделиться Опубликовано 25 марта, 2020 Вопрос такой:я пишу длинный скрипт, в котором много раз повторяется один и тот же блок текста; каждый блок отличается только ID объекта, с которым производится операция, например: if ( player->GetItemCount, "ID_1") player->drop, "ID_1" 1 endif if ( player->GetItemCount, "ID_2") player->drop, "ID_2" 1 endif if ( player->GetItemCount, "ID_3") player->drop, "ID_3" 1 endif <...> Как автоматизировать этот процесс? В моем скрипте около 400 разных ID.Может, подскажете макрос для Ворда? P.S. Если еще расскажете, как вытянуть из Object Window все ID в списке, буду вдвойне благодарен! Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 25 марта, 2020 Жалоба Поделиться Опубликовано 25 марта, 2020 (изменено) Вопрос такой:я пишу длинный скрипт, в котором много раз повторяется один и тот же блок текста; каждый блок отличается только ID объекта, с которым производится операция, например: if ( player->GetItemCount, "ID_1") player->drop, "ID_1" 1endifif ( player->GetItemCount, "ID_2") player->drop, "ID_2" 1endifif ( player->GetItemCount, "ID_3") player->drop, "ID_3" 1endif<...>Как автоматизировать этот процесс? В моем скрипте около 400 разных ID.Может, подскажете макрос для Ворда? Сначала вордом заменяешь до изменяемого числа то же с добавлением ^t (табуляции), потом что после, заменяешь приписывание табуляции. Заменяешь переходы строки на $. Там где цикл одинаковых строк начинается, туда вставить перехода строки. Копируешь полученный блок текста в Эксель. Там тянешь строки сколько надо, подставляя нужные цифры. Потом копируешь назад в Ворд, повторяя обратные процедуры.Про получение индексов из кс, это меню файл->экспорт. Открыть в Экселе. Изменено 25 марта, 2020 пользователем Larkin Ссылка на комментарий Поделиться на другие сайты Поделиться
Veloth Опубликовано 25 марта, 2020 Автор Жалоба Поделиться Опубликовано 25 марта, 2020 Сначала вордом заменяешь до изменяемого числа то же с добавлением ^t (табуляции), потом что после, заменяешь приписывание табуляции. Заменяешь переходы строки на $. Копируешь полученный блок текста в Эксель. Там тянешь строки сколько надо, подставляя нужные цифры. Потом копируешь назад в Ворд, повторяя обратные процедуры.А можно показать, как будет выглядеть такой блок в Ворде? Не вполне понял про изменяемое число и приписывание табуляции. Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 25 марта, 2020 Жалоба Поделиться Опубликовано 25 марта, 2020 (изменено) У меня сейчас нет Ворда под рукой, я бы сделал. Блок будет как одна строка текста if ( player->GetItemCount,$"^tID_1^t")$player->drop, "ID_1" 1$endif При копировании его в Эксель ID_1 окажется в отдельном столбце, и останется просто растянуть его на нужное кол-во строк, и подставить туда нужные Id Изменено 25 марта, 2020 пользователем Larkin Ссылка на комментарий Поделиться на другие сайты Поделиться
Veloth Опубликовано 25 марта, 2020 Автор Жалоба Поделиться Опубликовано 25 марта, 2020 (изменено) Может, что не так сделал, но у меня ничего не оказалось в отдельном столбце, ничего не поменялось (см. приложение).Я уж извиняюсь, что так туплю, но в Ыкселе я почти полный нуб. Изменено 25 марта, 2020 пользователем Veloth Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 25 марта, 2020 Жалоба Поделиться Опубликовано 25 марта, 2020 (изменено) Э-м, ну короче, подожди пока я доберусь до экселя. Или кто другой поможет. Там вместо ^t должна быть табуляция, чтобы эти ID оказались в отдельном столбце. Изменено 25 марта, 2020 пользователем Larkin Ссылка на комментарий Поделиться на другие сайты Поделиться
Veloth Опубликовано 25 марта, 2020 Автор Жалоба Поделиться Опубликовано 25 марта, 2020 (изменено) OK, Larkin, я спрошу на форуме эксельщиков. Я уже осознал, что это решается именно средствами Экселя.Спасибо за помощь, особенно подсказку про экспорт. Не знал ;) Изменено 25 марта, 2020 пользователем Veloth Ссылка на комментарий Поделиться на другие сайты Поделиться
Dun Dram Опубликовано 25 марта, 2020 Жалоба Поделиться Опубликовано 25 марта, 2020 Там вместо ^t должна быть табуляция, чтобы эти ID оказались в отдельном столбце.Да в принципе можно и без табуляции, просто руками сделать. То есть в один столбец написатьif ( player->GetItemCount, "Во второй - разместить список нужных ID. В третий - ")$ player->drop, "Ну и так далее. Ссылка на комментарий Поделиться на другие сайты Поделиться
mintmike Опубликовано 1 апреля, 2020 Жалоба Поделиться Опубликовано 1 апреля, 2020 (изменено) На Луа очень просто делается Создаешь текстовый файл с текстом программы, например "prog.lua": io.output('script.txt') -- задаём файл с результатом for i = 1, 400 do -- цикл 400 повторений -- пишем строки в файл io.write('(if ( player->GetItemCount, "ID_'..i..'")\n') -- вставляем номер i в стоку io.write(' player->drop, "ID_1" 1\n') io.write('endif\n') io.write('\n') -- \n - новая строка endПеретаскиваешь мышкой файл на lua53.exe и отпускаешь, тут же появляется твой готовый script.txt Скачать lua53.exe можно тут: http://luabinaries.sourceforge.net/download.html Больше про Луа для Морровинд в этой теме: https://www.fullrest.ru/forum/topic/41708-mwse-21-uroki-po-lua-skriptam/?do=findComment&comment=997434 Изменено 1 апреля, 2020 пользователем mintmike Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти