![]() |
Здравствуйте, гость ( Вход | Регистрация )
— В рамках здравого смысла ограничьте флуд и офф-топ;
— Называйте темы понятно и конкретно;
— Если Вы хотите узнать, где можно скачать какой-либо файл, патч, мод или саму игру Arcanum: Of Streamworks and Magick Obscura, ознакомьтесь с нашей подборкой ссылок
— Просьба: Голосуйте иногда в рейтингах на форуме/сайте (низ страницы — баннеры). Для чего это делать: пропаганда игры, ведь АРКАНУМ жил, жив и будет жить;
— Для двухстороннего общения пользуйте личные сообщения или асю.
![]() ![]() |
![]() |
Braxton Bry |
![]()
Сообщение
#1
|
![]() Amazing Experiments of Doctor Komatique ![]() Группа: Ветераны Сообщений: 136 Регистрация: 13.11.2008 Пользователь №: 2 914 ![]() |
Теория:
Код //сброс global variable0 0: if global variable0==7 then global variable0==0 //проверка - если произошла перезарядка, то возвращаем скорость триггерера в исходное значение 1: if global variable0==0 then stat 11 of triggerer: adjust by 5 //если патроны в магазине кончились, то есть global variable==6, то переход на линию 4 2: if global variable0==6 then goto line4 else global variable0=global variable0+1 3: return and skip default //здесь можно вставить звук перезарядки оружия вместо (num). Кстати, можно в Арканум вставлять звуки помимо существующих или нет? 4: play sound (num) at triggerer //триггерер изображает популярный в фоллауте жест 5: have triggerer perform animation 12 //уменьшаеи скорость триггерера, вроде как "отнимаем action points". При следующем выстреле будет потрачено больше AP 6: stat 11 of triggerer: adjust by -5 7: return and skip default Вешается скрипт на HIT и MISS, то есть учитывается каждый выстрел. Можно еще напрячься и повесить на CRITICAL HIT и CRITICAL MISS, но возни очень много с ними. Практически реализовать это тоже не слишком сложно. Возможно, стоит сделать проверку триггерера на скорость, чтобы она не стала внезапно отрицательной. Или снимать процент со скорости. Самая большая задача - сидеть и вешать этот скрипт каждому прототипу огнестрельного оружия. Время это займет прилично. Так вот у меня вопрос - стоит ли овчинка выделки? Популярный в Фоллауте жест - это когда криттер делает поклон в одну четверть, отклянчивает зад, вытягивает руки и делает вращательные движения типа "наматывание проволоки". Этим простым и незамысловатым движением криттер открывает ящики, шкафчики, ворует, лечит, использует компьютер и другие не менее интересные и полезные вещи. Самое удивительное, что никто не жаловался. А попробуйте изобразить такие па в жизни. На мой взгляд, очень глупо выглядит. Работает или нет - понятия не имею. В теории все замечательно выходит) Возможно, будет разница между реалтаймом и пошаговым режимами. Сообщение отредактировал Braxton Bry - 8.12.2008, 2:16 |
Gentle_Giant |
![]()
Сообщение
#2
|
![]() Предземшара ![]() Группа: Модераторы Сообщений: 1 051 Регистрация: 26.10.2006 Пользователь №: 15 ![]() |
Что за гвара 0? Где она устанавливается (в скрипте)? Почему именно глобал, а не локал?
-------------------- И москаль, и хохол — хитрые люди, и хитрость обоих выражается в притворстве: первый любит притворяться дураком, а второй умным. © В.О. Ключевский.
|
Braxton Bry |
![]()
Сообщение
#3
|
![]() Amazing Experiments of Doctor Komatique ![]() Группа: Ветераны Сообщений: 136 Регистрация: 13.11.2008 Пользователь №: 2 914 ![]() |
любой глобал вар берем. Ноль - это так, для примера. Проще конечно взять локал вар, но будет ли она сохраняться для каждого нового вызова скрипта?
С глобал варами вообще засада. Потому что если в висинити будут хотя бы два криттера, имеющих огнестрельное оружие, то для каждого надо будет завести свою глобал вару. /я не пробовал его писать, и скорее всего не буду. Просто пришла в голову мысль по аналогии с тем скриптом что я пишу, и решил сюда выложить, вдруг кому пригодится/ а все переменные по умолчанию 0, не так ли? тогда к чему ее где-то в скрипте устанавливать? Сообщение отредактировал Braxton Bry - 8.12.2008, 2:22 |
Gentle_Giant |
![]()
Сообщение
#4
|
![]() Предземшара ![]() Группа: Модераторы Сообщений: 1 051 Регистрация: 26.10.2006 Пользователь №: 15 ![]() |
Проще конечно взять локал вар, но будет ли она сохраняться для каждого нового вызова скрипта? Да. С глобал варами вообще засада. Потому что если в висинити будут хотя бы два криттера, имеющих огнестрельное оружие, то для каждого надо будет завести свою глобал вару. ... Поэтому лучше использовать локал вару. Должен быть какой-то инкремент на подсчет выстрелов, например: Код 0. Local 0 = Local 0 + 1 // Сделан выстрел... 1. IF Local 0 <= 5 // Проверка на кол-во выстрелов. THEN do nothing ELSE goto line X /* Если сделано 6 выстрелов, то переход на строчку с скрипта, где анимация, уменьшение скорости и установка Local 0 = 0. */ 2. return and RUN default Ну, это так, в теории. ![]() -------------------- И москаль, и хохол — хитрые люди, и хитрость обоих выражается в притворстве: первый любит притворяться дураком, а второй умным. © В.О. Ключевский.
|
Braxton Bry |
![]()
Сообщение
#5
|
![]() Amazing Experiments of Doctor Komatique ![]() Группа: Ветераны Сообщений: 136 Регистрация: 13.11.2008 Пользователь №: 2 914 ![]() |
все правильно, да. Ну раз можно с локал варами, тогда остается ровно одна проблема - развешать этот скрипт в прототипы.
А нужен ли он народу? Цитата else global variable0=global variable0+1 вот мой инкремент! Уменьшению скорости обязательно должно следовать ее обратное увеличение, поэтому я настаиваю на этих строках: Цитата //сброс global variable0 0: if global variable0==7 then global variable0==0 //проверка - если произошла перезарядка, то возвращаем скорость триггерера в исходное значение 1: if global variable0==0 then stat 11 of triggerer: adjust by 5 Естественно, заменяя global на local. Но это все лирика и сотрясание воздуха. Кому нужен этот скрипт? Реально тактическую составляющую, даже минимальную, в пошаговый режим он не внесет. Или внесет? Пока что получается красивая теория, почти как опыты в пробирке. |
Gentle_Giant |
![]()
Сообщение
#6
|
![]() Предземшара ![]() Группа: Модераторы Сообщений: 1 051 Регистрация: 26.10.2006 Пользователь №: 15 ![]() |
Цитата else global variable0=global variable0+1 вот мой инкремент! Это не будет работать - вара спрятана за условием; строго говоря ее вообще не существует. Инкремент должен быть в первой строчке. P.S. Рекомендую использовать ScriptEd от Dj Unique. ![]() -------------------- И москаль, и хохол — хитрые люди, и хитрость обоих выражается в притворстве: первый любит притворяться дураком, а второй умным. © В.О. Ключевский.
|
Braxton Bry |
![]()
Сообщение
#7
|
![]() Amazing Experiments of Doctor Komatique ![]() Группа: Ветераны Сообщений: 136 Регистрация: 13.11.2008 Пользователь №: 2 914 ![]() |
да, эта штука гораздо удобнее чем сцрмейкер. Спасибо.
Попробую написать и потестить. УПД: удобнее то удобнее, но скрипт написаный в сокманки, отлично себя зарекомендовавший в игре, наотказ не хочет компилиться в скриптеде. Он, видите ли, не признает вычитание (5): invalid action opcode "Local 8 = 11 - Local 0" Сообщение отредактировал Braxton Bry - 8.12.2008, 3:00 |
Gentle_Giant |
![]()
Сообщение
#8
|
![]() Предземшара ![]() Группа: Модераторы Сообщений: 1 051 Регистрация: 26.10.2006 Пользователь №: 15 ![]() |
Наверное, все же в рамках идеи нужно использовать Counter нежели гл. или лок. вары, в плане сохранения переменных: локал вар - для скрипта, каунтер - для моба. Если я ничего не забыл...
![]() Ты попробуй скрипт просто к мобу в WorldEd привяжи, протестируй (создай тестовый мод с картой). -------------------- И москаль, и хохол — хитрые люди, и хитрость обоих выражается в притворстве: первый любит притворяться дураком, а второй умным. © В.О. Ключевский.
|
Braxton Bry |
![]()
Сообщение
#9
|
![]() Amazing Experiments of Doctor Komatique ![]() Группа: Ветераны Сообщений: 136 Регистрация: 13.11.2008 Пользователь №: 2 914 ![]() |
Зачем для моба counter? Это нецелевое расходование средств) Нам ведь нужно только учитывать количество вылетевших патронов. Это HIT и MISS.
|
Gentle_Giant |
![]()
Сообщение
#10
|
![]() Предземшара ![]() Группа: Модераторы Сообщений: 1 051 Регистрация: 26.10.2006 Пользователь №: 15 ![]() |
УПД: удобнее то удобнее, но скрипт написаный в сокманки, отлично себя зарекомендовавший в игре, наотказ не хочет компилиться в скриптеде. Он, видите ли, не признает вычитание (5): invalid action opcode "Local 8 = 11 - Local 0" У меня эта строчка комплится. ![]() Настроить, наверное, надо, у меня примерно так в ScriptEd.ini: Код [General] DATPath=D:\GAMES\ARCANUM DLG_Editor=D:\Games\Arcanum Modding\DLG Debugger\dlgdebug.exe MES_Editor=D:\Games\Arcanum Modding\MES Editor\mesedit.exe Read File List=0 Debug Mode=0 Use Compressed Data=1 OpcodeBoxMaxItems=25 Generate Dialogue Lines=0 [Files] Open_DLG_LastDir=D:\Games\Arcanum\data\scr Save_DLG_LastDir=D:\Games\Arcanum\data\scr LastModuleDir=TestMod Главное - путь к DAT'ам в каталоге с игрой. Зачем для моба counter? Это нецелевое расходование средств) Нам ведь нужно только учитывать количество вылетевших патронов. Это HIT и MISS. Один моб = одна ед. огнестрельного оружия в игре, но на всех один скрипт... ![]() -------------------- И москаль, и хохол — хитрые люди, и хитрость обоих выражается в притворстве: первый любит притворяться дураком, а второй умным. © В.О. Ключевский.
|
![]() ![]() |
Текстовая версия | Сейчас: 28.1.2023, 15:10 |