Damphil Опубликовано 4 декабря, 2015 Жалоба Опубликовано 4 декабря, 2015 Что то я не вкурил в скриптах про склонность к магии и технологии. С хорошей подачи ув. Positiff Можем лицезреть такое description "Helm of Light WIELD ON" MAX_LINES_ALLOCATED 10 0. magic/tech: adjust Counter 0 by item Attachee used by Triggerer: store in Local 0 1. IF Local 0 <= 1 THEN return and RUN default 2. Counter 1 = 79 + Local 0 3. script eye candy: play Counter 1 on Triggerer 4. return and RUN default 5. script eye candy: stop Counter 1 on Triggerer 6. return and RUN default Тут чем больше склонность к магии тем в +(плюс). Вопрос :- А как сделать к технологии подобный скрипт? Я догадался что нужно использовать эту строчку magic/tech: adjust (num) by item (obj) used by (obj) on (obj): store in (num) Но я все равно не понимаю - как ? UPD - ошибся, понял что это скрипт на проверку отношения к игроку кого то и т.д. Короче не то. Первый нужно разбирать. Народ примеры хоть чего то есть? Человек - это звучит горько. Мы родились - распался СССР, пошли в школу - начался дефолт, поступили в универ - начался кризис, закончим универ - конец света. Ну прям поколение лохов.
gamer_777 Опубликовано 5 декабря, 2015 Жалоба Опубликовано 5 декабря, 2015 Тут чем больше склонность к магии тем в +(плюс). Вопрос :- А как сделать к технологии подобный скрипт? Я догадался что нужно использовать эту строчку magic/tech: adjust (num) by item (obj) used by (obj) on (obj): store in (num) Но я все равно не понимаю - как ? Этот скрипт и эта строчка - универсальны. Их работа зависит от маг/тех склонности того предмета, к которому этот скрипт прицеплен. Цепляем этот скрипт к магическому предмету - эффект будет зависеть от магии. Цепляем этот скрипт к технологическому предмету - эффект будет зависеть от технологии. Народ примеры хоть чего то есть? Заряженное Кольцо, эффект которого в оригинальном Аркануме зависит от склонности персонажа к технологии. 29005Tech_Charged_Ring_WIELD_ON.scr Борітеся – поборете, Вам Бог помагає! За вас Правда, за вас Слава і Воля святая!
Damphil Опубликовано 5 декабря, 2015 Жалоба Опубликовано 5 декабря, 2015 gamer_777 Спасибо. Только как в поговорке - смотрю на скрипт, вижу фигню. Все таки это не мое, не понимаю последовательность строк. Пишу: 0. magic/tech: adjust Counter 0 by item Attachee used by Triggerer: store in Local 0 1. IF Local 0 <= 1 THEN return and RUN default 2. Counter 1 = 79 + Local 0 3. script eye candy: play Counter 1 on Triggerer 4. return and RUN default 5. script eye candy: stop Counter 1 on Triggerer 6. return and RUN default Добавил это: 1. IF Triggerer has item named 2401 THEN do nothing ELSE goto line 6 2. drain 1 charges from Triggerer На выходе получаю: 0. magic/tech: adjust Counter 0 by item Attachee used by Triggerer: store in Local 0 1. IF Triggerer has item named 2401 THEN do nothing ELSE goto line 6 2. drain 1 charges from Triggerer 3. IF Local 0 <= 1 THEN return and RUN default 4. Counter 1 = 79 + Local 0 5. script eye candy: play Counter 1 on Triggerer 6. return and RUN default 7. script eye candy: stop Counter 1 on Triggerer 8. return and RUN default При тесте работы - ошибок нет. Но в игре - хаос. Шлем отнивает - батарейку - если одевать предмет. Но и радиус света при каждом одевании предмета увеличивается. Если предмет снять - свет на персонаже остается. Человек - это звучит горько. Мы родились - распался СССР, пошли в школу - начался дефолт, поступили в универ - начался кризис, закончим универ - конец света. Ну прям поколение лохов.
gamer_777 Опубликовано 5 декабря, 2015 Жалоба Опубликовано 5 декабря, 2015 При тесте работы - ошибок нет. Но в игре - хаос. Шлем отнивает - батарейку - если одевать предмет. Но и радиус света при каждом одевании предмета увеличивается. Если предмет снять - свет на персонаже остается. Чтобы твой скрипт правильно работал, к шлему должен быть прицеплен ещё один скрипт на Wield Off. И этот второй скрипт должен выглядеть так: 0. call script attached to Attachee at point 24 at line 7 with triggerer Triggerer 1. return and RUN default Если такого скрипта на шлеме нет - сделай. Если такой скрипт уже есть, но его код немного отличается - сделай скрипт точно таким, как я написал. P.S. Это может не подействовать на тех сейвах, где уже произошёл баг и на персонаже осталось освещение после снятия шлема. Борітеся – поборете, Вам Бог помагає! За вас Правда, за вас Слава і Воля святая!
Damphil Опубликовано 6 декабря, 2015 Жалоба Опубликовано 6 декабря, 2015 gamer_777 Заработал, спасибо. Но так как это просто эксперименты для разбирательства работы скрипта(для меня). Я понял как заработал - OFF скрипт. Только не понял :- Что такое, point 24 ? Откуда оно берется?. call script attached to (obj) at point (num) at line (num) with triggerer (obj) От куда мы знаем что там должно быть 24, а не 1 или 99. *** А что с этим скриптом не так? 0. call script 30354 at line 0 with triggerer Triggerer and attachee Attachee in 100 seconds 1. IF Triggerer has item named 2401 THEN do nothing ELSE goto line 6 2. drain 1 charges from Triggerer 3. script eye candy: stop 78 on Triggerer 4. script eye candy: play 78 on Triggerer 5. return and RUN default 6. script eye candy: stop 78 on Triggerer 7. return and RUN default >> 30354 - это номер файла скрипта. 30354_Electric_Light_WIELD_ON.scr И понятно, что этот скрипт будет вызываться каждый 100 секунд если если... >> Далее понятно, идет проверка на наличие предмета. >> Сколько будет использоваться - 1 >> Ну и сам номер скрипта 78 в \Arcanum\data\rules\ScriptEyeCandy.mes Который ссылается на Арт в \Arcanum\data\art\eye_candy\Electric-Light_f.art Почему выкл потом вкл и потом снова выкл ?! Вот сюда я и хотел прилепить: magic/tech: adjust (num) by item (obj) used by (obj): store in (num) То есть получить что то вроде: 0.call script 30354 at line 0 with triggerer Triggerer and attachee Attachee in 100 seconds 1. IF Triggerer has item named 2401 THEN do nothing ELSE goto line 6 2. drain 1 charges from Triggerer 3. magic/tech: adjust Counter 0 by item Attachee used by Triggerer: store in Local 0 4. IF Triggerer has item named 2401 THEN do nothing ELSE goto line 6 5. drain 1 charges from Triggerer 6. IF Local 0 <= 1 THEN return and RUN default 7. Counter 1 = 79 + Local 0 8. script eye candy: play Counter 1 on Triggerer 9. return and RUN default 10. script eye candy: stop Counter 1 on Triggerer 11. return and RUN default И вылетает ошибка: Unable to determine action OPCODE for all script (num) at line (num) with (obj) (obj) and (obj) (obj) in (num) seconds on line 0 Error parsing script: Unknown opcode "0. all script 30354 at line 0 with triggerer Triggerer and attachee Attachee in 100 seconds" on line 0 Есть идеи? Человек - это звучит горько. Мы родились - распался СССР, пошли в школу - начался дефолт, поступили в универ - начался кризис, закончим универ - конец света. Ну прям поколение лохов.
gamer_777 Опубликовано 6 декабря, 2015 Жалоба Опубликовано 6 декабря, 2015 Рекомендуется внимательно прочитать официальный мануал по моддингу от Тройки. Там есть ответы на вопросы. Например, полезно посмотреть там таблицу номеров Script Attachment Points, описание команды "return and RUN default" и т.д. и т.п. P.S. ScriptEd - это инструмент для опытных моддеров. ScriptEd не терпит пропущенных пробелов и прочих опечаток пользователя. Борітеся – поборете, Вам Бог помагає! За вас Правда, за вас Слава і Воля святая!
Damphil Опубликовано 8 декабря, 2015 Жалоба Опубликовано 8 декабря, 2015 gamer_777 Спасибо, от сюда я и черпал понимания как что работает, а вот про таблицу спасибо. И все равно одних описаний мало. PS. видать это не мое. Человек - это звучит горько. Мы родились - распался СССР, пошли в школу - начался дефолт, поступили в универ - начался кризис, закончим универ - конец света. Ну прям поколение лохов.
Кислый Опубликовано 21 января, 2017 Жалоба Опубликовано 21 января, 2017 А есть адекватный редактор скриптов с возможностью сохранять всё свое безобразие в какой-нибудь TXT ?
BadLife Опубликовано 21 января, 2017 Жалоба Опубликовано 21 января, 2017 А есть адекватный редактор скриптов с возможностью сохранять всё свое безобразие в какой-нибудь TXT ? Вроде нет. Программеры, может что-нибудь подскажут)) Mods Pack v1.9 for Arcanum Expansion (2012)
Gentle Giant Опубликовано 24 января, 2017 Жалоба Опубликовано 24 января, 2017 А есть адекватный редактор скриптов с возможностью сохранять всё свое безобразие в какой-нибудь TXT ? ScriptEd 1.0 beta 2 by Dj Unique: File → Save Script As… → Plain Text (*.txt) И москаль, и хохол — хитрые люди, и хитрость обоих выражается в притворстве: первый любит притворяться дураком, а второй умным. © В.О. Ключевский.
Alkor Опубликовано 15 сентября, 2017 Жалоба Опубликовано 15 сентября, 2017 Друзья! Спешу поделиться своей радостью! Я наконец-то сумел с помощью скриптов реализовать аналог "HeartBeat" для неживых объектов. Более того, смог сделать так, что этот "хёртбит" работает только тогда, когда объект выключен. Это позволяет без труда включать выключеные объекты в соответствии с заданными условиями. Поразительно! Прикреплять файлы я, к сожалению, не умею, по этому если кому-то интересно - пишите в ЛС. Искренне ваш, Алкор.
Vindicator Опубликовано 22 апреля, 2019 Жалоба Опубликовано 22 апреля, 2019 HELP, PLEASE! Приветствую! Помогите написать скрипт. Мне нужно, чтобы после float line 200 above Attachee, npc сам со мной заговорил.
Positiff Опубликовано 22 апреля, 2019 Жалоба Опубликовано 22 апреля, 2019 Приветствую! Помогите написать скрипт. Мне нужно, чтобы после float line 200 above Attachee, npc сам со мной заговорил.Конкретнее пиши всё. В каком скрипте у тебя находится строчка "float line 200 above Attachee"? Это один из скриптов нужного тебе NPC или какой-то другой скрипт?
EternalSorrow Опубликовано 14 мая, 2019 Жалоба Опубликовано 14 мая, 2019 Ковыряю свой скрипт, на этот раз симулирующий разлет дроби у дробовика. Алгоритм такой, что при стрельбе в даль 5 дробинок распределяются по криттерам поблизости от цели. Вот по распрделению дробинок и вопрос: Кандидаты в цели - не-союзные не-лежачие криттеры в прямой видимости на расстоянии < 13. Каждый проходит импровизированную проверку попадания-уклонения, а перед ней - на сколько сильно он отстоит от прямой между стреляющим и целью. Для этого использую неравенство треугольника (расстояния стреляющий-цель, стреляющий-криттер и цель-криттер) - сумма двух кратчайших сторон минус длина длиннейшей. Разность больше одного - криттер отметается и смотрим следуюший. Внимание, вопрос: почему тогда здесь был задет второй кайт, если он отстоит от прямой существенно дальше, чем надо, чтобы он был отброшен по признаку расстояния? Это у игры такая геометрия, или я напортачил в скрипте (который я для приличия все же несколько раз перепроверил)? Скриншот
Positiff Опубликовано 15 мая, 2019 Жалоба Опубликовано 15 мая, 2019 Ковыряю свой скрипт, на этот раз симулирующий разлет дроби у дробовика. Алгоритм такой, что при стрельбе в даль 5 дробинок распределяются по криттерам поблизости от цели. Кандидаты в цели - не-союзные не-лежачие криттеры в прямой видимости на расстоянии < 13. Каждый проходит импровизированную проверку попадания-уклонения, а перед ней - на сколько сильно он отстоит от прямой между стреляющим и целью. Для этого использую неравенство треугольника (расстояния стреляющий-цель, стреляющий-криттер и цель-криттер) - сумма двух кратчайших сторон минус длина длиннейшей. Разность больше одного - криттер отметается и смотрим следуюший. Внимание, вопрос: почему тогда здесь был задет второй кайт, если он отстоит от прямой существенно дальше, чем надо, чтобы он был отброшен по признаку расстояния? Это у игры такая геометрия, или я напортачил в скрипте (который я для приличия все же несколько раз перепроверил)? Если я верно понял твои объяснения, то нет ничего удивительного в том, что второй кайт был задет. Особенно если учесть, что в Аркануме сетка координат задаётся гексагональными ячейками, а так же учесть их относительно большой размер. На глаз у тебя между стреляющим и целью расстояние составляет 9 клеток, между целью и криттером - 3 клетки, между стреляющим и криттером - 11 клеток. А это вполне удовлетворяет твоему условию: 9 + 3 - 11 = 1. В принципе ты можешь легко посмотреть какие точно расстояния у тебя между целями. Просто добавь к скрипту файл диалога с 16 строчками, в которых запиши номера от 0 до 15. Поле сохранения расстояния между какими-то двумя существами в переменную Local 0, отобрази его командой "print line Local 0 above Triggerer".
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти