Здесь задавать вопросы по плагиностроению для Обливиона.
Тема по Обливиону. Тема по Морровинду тут.
Вопросы по плагиностроению
#1261
Отправлено
Сила - способность улыбаться © Белльмере-сан "One Piece"<img src="http://www.kolobok.u...zer/pirate.gif" border="0" class="linked-sig-image" />
#1262
Отправлено
Просто приведу пример:
messageboxex"Открыть дверь?|Да|Нет не стоит"
messagebox"Открыть дверь", "Да", "Нет не стоит"
Как видите в messageboxex кнопки разделяются знаком | тем более первая кнопка отделяется от прочего предложения тоже знаком |. В messagebox кнопки отделяются кавычками с запятой после предложения и каждой кнопки(не включая последней.)
Легче использовать глобальные переменные чем постоянно делать отсылку к другому квесту или предмету. Когда вам придется импортировать плагин на новую среду(к примеру из обливиона в нерим) Вы просто запутаетесь используя отсылки, а использовав глобальные переменные вы просто можете их для начала создать в новой среде, а потом без проблем перетаскивать скрипты.
Есть некоторые правила написания скриптов, которые могут облегчить вам их написание:
1. Всегда используйте в названии переменных в названии самого скритпа имена, которые вам понятны, и которые отображают суть переменной или названия скрипта.
2. Делайте пометки, и пояснения. Пояснения делаются на одной строке после знака ; переход на новую строку означает написание новой команды.
3. Старайтесь избегать повторения команд. Лучше одну команду вписать в какую-нибудь переменную, и далее использовать эту переменную. Пример:
set weapout to player.isweaponout
if(weapout == 0)
message"Игрок не обнажил оружие"
else
message"Игрок обнажил оружие"
endif
Как видите, переменные всегда будут занимать меньше места. Так же вы можете использовать очень короткие переменные всего в одну букву, но будь осторожны, потом вы можете не понять что эта за переменная, и потому делайте всегда пометки на таких переменных.
4.Не пользуйтесь всегда глобальными скриптами(скрипты квестов). Если есть возможность используйте скрипты на предметах одежде и т.д. Потому что глобальные скрипты огромных размеров тратят очень много памяти.
5. И лично мое правило. Никогда не сидите за написанием скриптов и созданием мода более 2- х часов. Всегда делайте перерывы не менее получаса. Так обеспечите себе и здоровье и сохраните свежесть ума.
В следующий раз я объясню новую команду getiscrosshairref и объясню как задействовать в скрипте много NPC, чтобы проходя рядом они смотрели на игрока во время его совершения анимации и хлопали.
#1264
Отправлено
Ниче ж себе...Ну, главное, что хотя бы так можно.Отдельно не получится... собственно, да, вручную каждый НПС!
#1266
Отправлено
- che_guevaro это нравится
#1267
Отправлено
#1268
Отправлено
#1275
Отправлено
#1276
Отправлено
Например, тело скрипта может содержать такую информацию:
scn ScriptName
long Key
Begin GameMode
if getgamerestarted
RunBatchScript "Data\Ini\ModName.ini" ; запуск внешнего скрипта с указанием пути к нему
endif
if ( IsKeyPressed key )
; здесь обычно выполняется нужное действие
endif
end
В таком случае в баш-скрипте ModName.ini указывается информация о назначении клавиши:
set QuestScript.key to 71 ; где QuestScript это QuestID, а 71 кодировка клавиши G (по таблице скан-кодов можно выбрать любую другую)
********
Возможно создание внешнего скрипта это не самый лучший вариант, но определенно заметно, что значительное количество скриптеров используют именно его. Тем более, что во внешнем скрипте можно задать далеко не только назначение "горячей клавиши".
Есть еще команда iskeypressed но она не работает(не понятно почему)
Она работает, просто для этой команды используются скан-коды клавиш Windows (Virtual-Key Codes), а для iskeypressed2 и 3 используются коды DirectX. Клавиши те же, но разная нумерация.
#1277
Отправлено
Основное назначение скрипта в подсчете времени, которое использует активатор в активном режиме. Более подробно: я "включаю" активатор-свечу и начинается отсчет времени, но мне нужно чтобы свеча "сгорела" только после 2 часов (дней) игрового времени. И самое главное: учитывается то условие, что я могу "задувать" свечу в процессе, т.е. вопрос - как отследить скриптом именно "рабочее время" свечи, а не с того момента как я "зажег" ее впервые?
На вопрос какую команду использовать для отсчета, GetSecondsPassed (для реалтайма), или типа GameDaysPassed (игровое) - без разницы.
#1278
Отправлено
Закономерность: если выключить свет в КС, то текстуры пропадают, и становятся как в игре - чоорными.
Сообщение отредактировал Death The Kid: 20 сентября 2012 - 12:31
#1279
Отправлено
Все равно какую, главное чтобы скрипт исполнялся независимо от объекта-свечи (такие скрипты работают только когда игрок в одной локации со свечей)Прошу помощи в создании скрипта.
Основное назначение скрипта в подсчете времени, которое использует активатор в активном режиме. Более подробно: я "включаю" активатор-свечу и начинается отсчет времени, но мне нужно чтобы свеча "сгорела" только после 2 часов (дней) игрового времени. И самое главное: учитывается то условие, что я могу "задувать" свечу в процессе, т.е. вопрос - как отследить скриптом именно "рабочее время" свечи, а не с того момента как я "зажег" ее впервые?
На вопрос какую команду использовать для отсчета, GetSecondsPassed (для реалтайма), или типа GameDaysPassed (игровое) - без разницы.
т.е. просто вешаем скрипт на квест и там же управляем всем процессом (в том числе *скоростью* скрипта , т.к. по дефолту квестовые скрипты *медленноваты*.
Подробней надо самому читать , что означают и как работают команды ОБСЕ,Про использование массива прошу поподробней.
могу показать только работающий скрипт:
scn aaAIQQQ
array_var qai
short busy
float tq
int si
begin menumode
set busy to 1
end
begin gamemode
let tq+=getsecondspassed
if tq>5||busy==1
let tq:=0
if qai
let qai:=ar_null
endif
let si:=ar_size qai
if si<0
let qai:=ar_construct array
endif
let qai:=GetHighActors ;собственно этой командой запоминаем в массив всех нпс в cell
let si:=ar_size qai
if si>0
printC"QAI SIZE==%0f"si
endif
set busy to 0
endif
end
#1280
Отправлено
4.Не пользуйтесь всегда глобальными скриптами(скрипты квестов). Если есть возможность используйте скрипты на предметах одежде и т.д. Потому что глобальные скрипты огромных размеров тратят очень много памяти.
Тут в общем не хотелось бы спорить, но у скриптов на объектах и спеллах есть большой недостаток:
Информация о референсах в них хранится очень короткое время, что может привести к вылетам, при обращении к ним, так же стопроцентный вылет если дать игроку два таких объекта (спелла)со скриптами,
а также такие скрипты исполняются каждый фрейм, что тормозит ЦП,
так уж лучше использовать больше памяти , чем время ЦП и падение фпс,
кроме того предметы или атеры (ссылки на них) , которые хранятся в квестовых скриптах никогда не потеряются, к ним всегда можно обратиться из другого скрипта, что очень удобно.
Темы с аналогичным тегами как создать торговца, oblivion cs торговец, cs как создать торговца, oblivion, моделирование
Моддинг →
Моддинг Oblivion →
Какие файлы в моде отвечают за изменение лиц и заставку в меню игры Oblivion?Автор AlexisUmbra, 06 апр 2024 oblivion, tes 4, tes 4 oblivion и 5 еще... |
|
|||
The Elder Scrolls →
Oblivion →
Моды Oblivion →
Каковы правила загрузки модов на сайт?Автор AlexisUmbra, 04 мар 2024 моды, обливион, tes и 2 еще... |
|
|||
The Elder Scrolls →
Oblivion →
Моды Oblivion →
Где можно заказать сборку?Автор KiritoSwords, 03 апр 2023 сборка на заказ и 2 еще... |
|
|||
The Elder Scrolls →
Oblivion →
Обсуждение Oblivion →
Чемпион Сиродила между TES4 и TES5Автор PavelIks, 26 янв 2022 oblivion, tes и 1 еще... |
|
|||
The Elder Scrolls →
Oblivion →
Обсуждение Oblivion →
ШРИФТЫ ИЗ ИГРЫАвтор ALexid, 20 дек 2021 шрифт, oblivion |
|
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 скрытых