Привет фанатам NoX !!! > Картостроение, скриптинг и моддинг

Делимся скриптами

(1/12) > >>

2530:
Предлагаю выкладывать готовые (и рабочие, естественно :) )скрипты для Unimod'а и редактора карт, а также инструкцию по их эксплуатации здесь.

Начнём. Вот мой скрипт "записи игры". Сейчас он основан на записи скринов через определённый интервал в кадрах:


--- Код: ---isRecording=false

function Rec()
isRecording=true
print('Запись началась')
RecEngine()
end
function RecEngine()
if isRecording == true then conExec('image');setTimeout(RecEngine,4) end
end
function StopRec()
isRecording=false
print('Запись остановлена')
end
--- Конец кода ---

На работу этого скрипта можно посмотреть, просмотрев ролик: http://www.youtube.com/watch?v=Sed315tMbgo

Разъясню функции:
Rec() запускает процесс записи. StopRec(), соответственно, останавливает.
RecEngine() - движок "съёмщика". В нём всего одна строка. В ней Вы можете настраивать плавность съёмки скринов:

--- Код: ---setTimeout(RecEngine,4)
--- Конец кода ---
Изменяйте выделенное число, чтобы увеличить или уменьшить плавность съёмки. Помните, что чем меньше это число, тем выше нагрузка на Ваш компьютер. Рекомендуемые пределы: 3-5 кадров. Если Вы выберите меньше 3х, то пойдёт бесполезная нагрузка на компьютер (да и места на Вашем HDD понадобится намного больше), а если выберите больше 5, то пропадёт плавность движения.
У меня на компьютере при съёмке данным скриптом FPS Nox'а прыгал на уровне 20. На задержке 5 - на уровне 30-35 FPS. Всё зависит от мощности Вашего компьютера.

: "По поводу превращения кучи картинок в фильм" Насколько мне известно, для этого подойдёт любой видеоредактор. Я компоновал ролики в MovieMaker'е.
Длительность изображения в этом редакторе должно быть 0,125 сек. Рекомендую слабым компам в проект MovieMaker'а делать фильм кусками по 250 изображений, а затем из фильмов-кусков скомпоновать уже один большой фильм (у меня на компьютере возникла проблема с компиляцией фильма с числом картинок >255. Выдавал непонятную ошибку.).
P.S>Помните, что данный скрипт звуки не записывает! :) А это значит, что звук пока нужно записывать отдельным файлом.

Norten:
Или озвучивать с прищепкой на носу  :)

Классная тема, спасибо, Герман!

TheSim:
Кстати мне в голову пришла идеязаставить сервак скринить последний фраг на форум. Требуется небольшой скрипт на форуме, код для Post-отправки файла кажись внутри Unimod-а уже есть, если нет - могу добавить.

Evengard:
На серваке отключена графическая часть (флаг serveronly), забыл?

2530:
Для удобства тестирования новых текстур и скриптов связаных с FPS, перемещением NPC и прочего, я написал скрипт, который назвал "DebugMode".
Что же делает этот DebugMode? Если в консоли ввести setDebugMode(), то произойдёт следующее:
1. Включится показ экстентов;
2. Включится показ областей взаимодействия и путей перемещения NPC (команда show ai)
3. Включится показ FPS, Ping'а, информации о тайминге, информации о количестве рисуемых объектов на экране, количество отправляемых\принимаемых байт, номер кадра с момента старта сервера и прочая информация.
4. (Самое интересное) Включится FPS ограничитель на 30 FPS.
Функция unsetDebugMode() выключает этот кошмар и возвращает всё как было :)


Быстродействие:
Первое включение скрипта: 5-60 сек.
Последующие включения скрипта: 5-25 сек.
Выключение скрипта: менее 1 сек.


Системная информация:
setDebugMode() возвращает 0 (если режим уже запущен) или 1 (если режим запущен успешно)
unsetDebugMode() возвращает 0 (если режим уже выключен) или 1 (если режим выключен успешно)
Для выполнения требуется команда racoiaws!!!
: Исходный код здесь!
--- Код: ---isDebugMode=false
function setDebugMode()
if (isDebugMode==true) then print('Режим отладки уже активирован!') return 0 end
isDebugMode=true
print('Загрузка режима отладки...')
conExec('show extents')
conExec('show ai')
conExec('show gui')
conExec('show perfmon')
conExec('set frameratelimiter')
print('Режим отладки активирован')
return 1
end

function unsetDebugMode()
if (isDebugMode==false) then print('Режим отладки уже деактивирован!') return 0 end
isDebugMode=false
print('Выходим из режима отладки...')
conExec('show extents')
conExec('show ai')
conExec('show gui')
conExec('show perfmon')
conExec('unset frameratelimiter')
print('Режим отладки дективирован')
return 1
end

--- Конец кода ---
P.S>Надо быть честным со всеми, поэтому распишу код, который будет наиболее полезным:
Команда "show extents" - включает показ экстентов
Команда "show ai" - включает показ ai
Команда "show gui" - включает\отключает игровую панель
Команда "show perfmon" - включает показ Debug информации.
Команда "set frameratelimiter" - включает ограничитель FPS. "unset frameratelimiter" - выключает его. Требуется много времени при 1м включении лимита. Последующие включения проходят намного быстрее

P.P.S>И закончу переделанной фразой Рексара из игры, название которой произносить здесь опасно для жизни :) :

--- Цитата: 2530 ---"Команды написал я, но за последствия, которые возникли после их использования, отвечаете Вы..."
--- Конец цитаты ---

UPD>Простите, забыл сказать. Скрипт был написан с учётом того, что у Вас есть флаг -nolimit на EXE'шнике!

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии