aL☢ Опубликовано 24 января, 2017 Автор Жалоба Поделиться Опубликовано 24 января, 2017 ааа. Видимо поэтому у многих так и осталось неприятие МВСЕ Угу. Я с ним знаком еще с ранних глючных версий и не менее глючных ранних плагинов под МВСЕ. никогда не забуду, как у меня в одном плагине сбился скрипт и по всему ввардену был скурим. Летали драконы по почти всем городам, да... Ссылка на комментарий Поделиться на другие сайты Поделиться
usolo Опубликовано 27 февраля, 2017 Жалоба Поделиться Опубликовано 27 февраля, 2017 (изменено) Скрипт, считывающий параметры взятого в руки оружия (в данном случае - вес) Пример скрипта для отображения веса begin weaponWeight long variable long itemRef long itemCount long itemID long itemType long itemValue float itemWeight long itemName long myRef long itemEquip setx myRef to xGetRef "player" setx itemID itemCount itemType itemValue itemWeight itemName itemRef to myRef->xContentList itemRef setx itemEquip to myRef->xHasItemEquipped itemID ifx (itemEquip) if (itemType == 1346454871) set variable to itemWeight StopScript weaponWeight return endif endif end В данном примере вес записывается в глобальную переменную. Функция также позволяет позволяет вернуть:itemID - айди предмета, например, "iron axe"itemCount - кол-во в слотеitemValue - цена предметаitemWeight - вес предметаitemName - название предмета, например, "железный топор"itemRef - ссылка на след. предмет в коллекции. Не подходит для работы с предметомitemType - тип, согласно классификации типов МВСЕ 1230259009 = ACTI (Activator)1212369985 = ALCH (Alchemy/Potion)1095782465 = APPA (Alchemy Apparatus)1330467393 = ARMO (Armour)1263488834 = BOOK (Book/Scroll)1414483011 = CLOT (Clothing)1414418243 = CONT (Container)1095062083 = CREA (Creature)1380929348 = DOOR (Door)1380404809 = INGR (Ingredient)1129727308 = LEVC (Levelled Creature)1230390604 = LEVI (Levelled Item)1212631372 = LIGH (Light)1262702412 = LOCK (Lockpick)1129531725 = MISC (Misc. Item)1598246990 = NPC_ (NPC)1112494672 = PROB (Probe)1095779666 = REPA (Repair Tool)1414546259 = SCPT (Script)1195658835 = SNDG (Sound Generator)1413567571 = STAT (Static)1346454871 = WEAP (Weapon) Замена числового значения в строке if (itemType == 1346454871) позволит переориентировать скрипт с оружия на броню, например. Изменено 6 марта, 2017 пользователем cepoe Ссылка на комментарий Поделиться на другие сайты Поделиться
usolo Опубликовано 21 марта, 2017 Жалоба Поделиться Опубликовано 21 марта, 2017 (изменено) Работа со скилами Последние пару версий MWSE содержат функции работы со скилами - xGetSkillInfo и xSetSkillInfo.Как известно, у каждого скила есть прокачиваемый аттрибут, специализация и до 4 параметров. Параметры отвечают за прокачку скила - каждое действие (по сути - имя параметра) прокачивает скилл на определенную величину. Для работы с функциями нужны id скилов.Например, акробатика (прокачивает силу, специализация - скрытность) прокачивается от прыжка (на 0.15) и от падения с нанесением вреда здоровью (на 3.00).xGetSkillInfoТекст скрипта: begin aa_test long my_ref setx my_ref to xGetRef "player" long attribute long specialization float action1 float action2 float action3 float action4 setx attribute specialization action1 action2 action3 action4 to my_ref->xGetSkillInfo 20 // 20 - акробатика xMessageFix "attr.: %d, spec.: %d" attribute specialization MessageBox "1111111111111111111111111111" MessageBox "1: %f, 2: %f:, 3: %f:, 4: %f:" action1 action2 action3 action4 end Результат работы:Судя по всему, атрибуты и специализация - это тоже id. Проверял для разных скилов - значения меняются.Ну и в след. сообщении цифры 1-4 соответствуют значениям параметров скила. Неиспользуемые параметры возвращают 1, что неудобно... Но уж как есть.xSetSkillInfoПозволяет менять все параметры скила. Отличный инструмент для плагиностроения.Текст скрипта: begin aa_test2 long my_ref setx my_ref to xGetRef "player" long result long attribute long specialization float action1 float action2 float action3 float action4 set attribute to 1 set specialization to 1 set action1 to 0.11 set action2 to 0.11 set action3 to 1 set action4 to 1 setx result to my_ref->xSetSkillInfo 20 attribute specialization action1 action2 action3 action4 // result = 1 в случае успеха и 0 в обратном случае xMessageFix "result: %d" result MessageBox "1111111111111111111111111111" end Результат работы:Как видно, функция отработала и вернула "1".Я был недоверчив и поэтому запустил проверку все ли прошло успешно на самом деле.Текст скрипта: begin aa_test2 long my_ref setx my_ref to xGetRef "player" long result long attribute long specialization float action1 float action2 float action3 float action4 set attribute to 1 set specialization to 1 set action1 to 0.11 set action2 to 0.11 set action3 to 1 set action4 to 1 setx result to my_ref->xSetSkillInfo 20 attribute specialization action1 action2 action3 action4 // создаю дополнительные переменные для возврата значений скила long attribute1 long specialization1 float action11 float action21 float action31 float action41 setx attribute1 specialization1 action11 action21 action31 action41 to my_ref->xGetSkillInfo 20 xMessageFix "attr.: %d, spec.: %d" attribute specialization MessageBox "1111111111111111111111111111" MessageBox "1: %f, 2: %f:, 3: %f:, 4: %f:" action1 action2 action3 action4 end Результат работы:Все работает :)Поздравляю мододелов с новым инструментом) Изменено 21 марта, 2017 пользователем cepoe Ссылка на комментарий Поделиться на другие сайты Поделиться
aL☢ Опубликовано 2 декабря, 2017 Автор Жалоба Поделиться Опубликовано 2 декабря, 2017 Все вопросы по плагину можно задавать тут: http://www.fullrest.ru/forum/topic/36164-morrowind-fullrest-repack/http://www.fullrest.ru/forum/topic/40977-beta-test-mfr-20/ При необходимости тему можно будет заново открыть, закрываю все лишнее, чтобы не захламлять основной канал, для "хлама" у нас есть архив МФР. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения