UoKit.com Форумы > Ultima Online : Dev > RunUO Server > Вопросы по RunUO
Страницы: 1, 2, 3, 4
Chicos
В руководстве по сборке компиляции сказано что надо добавить папку Server в проект и скомпилить ядро. От предшественика мне уже досталось готовое ядро. Почему то подумалось что просто изменив в папке Scripts нужный мне скрипт я получу нужное. Для пробы изменил в кастоме явно свой объект. Но изменения на сервере не отобразились. То есть после каждого изменения в Scripts необходимо пересобирать exe ? Или как то по другому? Начал только разбираться с UO, и что то в сотнях тем прочитанных этот момент не нашел.
Вверх
Soteric
Ты понял верно. При запуске папка Scripts должна перекомпилироваться автоматически и твои изменения подхватятся. Нужно смотреть вывод в консоле. Там он пишет, что либо не нашел новых скриптов (и это странно в твоем случае) и перекомпиляция не нужна. Либо, что нашел изменения, компилирует их и тогда нужно смотреть твой скрипт, действительно ли ты сделал там именно то что ожидаешь увидеть в игре.
Вверх
Juzzver
Цитата
От предшественика мне уже досталось готовое ядро.

Если ядро в проекте объединяет обе папки Server и Scripts, при этом ScriptCompiler.cs отключен, то тогда придется делать компиляцию ядра для каждой правки.
Вверх
Aimed
Ну вы и ответы даёте... я бы не зная сабжа нафиг запутался.
Начнем сначала:
Ядро - это и есть твой RunUO.exe либо ServUO.exe. Исходники ядра находятся в папке Server.
Скрипты - это то что у папке скриптов(Scripts) находится. Они компилируются в рантайме уже ядром каждый раз когда ты запускаешь RunUO/ServUO.exe и создается кеш в виде дллки.

Цитата(Chicos @ 24.11.2017, 3:53)
То есть после каждого изменения в Scripts необходимо пересобирать exe ?

Нет, нужно просто перезапустить RunUO/ServUO.exe.

Если же изменение было в файлах из папки Server, нужно сперва пересобрать уже сам сервер RunUO/ServUO.exe и после этого эти изменения вступят в силу для твоих скриптов. Допустим ты в классе Mobile добавил новое protected поле, которое должно быть видно в PlayerMobile. Сперва нужно собрать ядро и тогда ты сможешь обращаться к этому полю в PlayerMobile.

Цитата(Juzzver @ 24.11.2017, 13:19)
Если ядро в проекте объединяет обе папки Server и Scripts, при этом ScriptCompiler.cs отключен, то тогда придется делать компиляцию ядра для каждой правки.


Да, если так уже сделали, то прийдется, но так делать вобще не надо. Лучше собрать все обратно в нормальную структуру ядро-скрипты и включить компиляцию скриптов.
Там есть проверки для сериализации и десериализации. Возможно так-же добавить свои кастомные проверки в ядро, ибо сериализация не очень надеждная система для записи/восстановления данных когда отключена компиляция скриптов и все это в руках не очень грамотных людей находится. Можно делов наделать с сейвами.

Собственно одна из главных причин почему на УОРПГ в свое время Вап сделал вывод что это провальная система сейвов и начал требовать новую систему сейвов, в итоге из-за этого ядро разработчиков команды УОРПГ окончательно разосралось )))
Вверх
StaticZ
Цитата(Aimed @ 24.11.2017, 18:51)
Да, если так уже сделали, то прийдется, но так делать вобще не надо. Лучше собрать все обратно в нормальную структуру ядро-скрипты и включить компиляцию скриптов.
Там есть проверки для сериализации и десериализации. Возможно так-же добавить свои кастомные проверки в ядро, ибо сериализация не очень надеждная система для хранения данных когда отключена компиляция скриптов и все это в руках не очень грамотных людей находится. Можно делов наделать с сейвами.

Как по мне при статичной компиляции куда проще и удобнее работать да и ошибки искать. Отладчик лучше всяких проверок, которые в лучшем случае способны выявить лишь общие проблемы, да и от криворукости с полноценным ЯП ничто не спасет, да даже LUA скрипты на практике сплошь и рядом способны привести к крашам =)
Вверх
Aimed
Цитата(StaticZ @ 24.11.2017, 17:05)

Как по мне при статичной компиляции куда проще и удобнее работать да и ошибки искать. Отладчик лучше всяких проверок, которые в лучшем случае способны выявить лишь общие проблемы, да и от криворукости с полноценным ЯП ничто не спасет, да даже LUA скрипты на практике сплошь и рядом способны привести к крашам =)


А кто мешает отладчиком пользоваться то?
Нужно просто запускать дебаг скриптов через .exe и будет вам отладка.
А вобще я специально заметил что это в руках не очень грамотных людей может доставить большие проблемы. Да или просто банально забыть разок и уже гора веселья гарантирована.
Вверх
StaticZ
Цитата(Aimed @ 24.11.2017, 19:10)
А кто мешает отладчиком пользоваться то?
Нужно просто запускать дебаг скриптов через .exe и будет вам отладка.
Ну так эта и есть статическая компиляция о которой я говорю. В ядре отключается компиляция скриптов а те компилируется уже в студии. Вообще этот ScriptCompiler большая кака.


Цитата(Aimed @ 24.11.2017, 19:10)
А вобще я специально заметил что это в руках не очень грамотных людей может доставить большие проблемы. Да или просто банально забыть разок и уже гора веселья гарантирована.
Ну вы еще скажите что ассемблер в руках не очень грамотных людей может доставить большие проблемы. Это и так очевидно если лезишь в это надо или знать ЯП и иметь навык или покрайней мере быть готовым к бессонным ночам мучений, ковыряний кода, обучению и поиску проблем.

Вверх
Aimed
Цитата(StaticZ @ 24.11.2017, 17:43)

Ну так эта и есть статическая компиляция о которой я говорю. В ядре отключается компиляция скриптов а те компилируется уже в студии. Вообще этот ScriptCompiler большая кака.


Линк был на FAQ о дебаге ядра + скриптов при нормальной структуре с динамической компиляцией скриптов во время рантайма.
Я не согласен что компилятор скриптов это кака. Для главной аудитории это безопаснее чем убрать его полностью. Даже для себя лично я предпочту такой подход, нежели полную компиляцию проекта сразу.

К тому-же если б кому-то действительно было дело до сервера, можно было-бы ещё больше обезопасить все это дело. Создав нормальный фреймворк для создания Save полей и метаданных о версиях и все это динамически проверять при запуске сервера, что-бы уменьшить шанс на всяческие проблемы связанные с сейвами.

Сейвы это наше все. Нужно лишь разок затупить или забыть что-то и можно сразу хорошенько приехать.
Я считаю что нужен очень щепетильный подход к этому делу. А вырубать все *лишнее*, потому что сервер на 20 сек дольше загружается, это по-моему не серьёзно.

Вобщем мое мнение вкратце: нужно не только компиляцию использовать, но и ещё более жесткие проверки добавлять в эту систему. Потому что я её считаю какой-то недоделанной.
Вверх
Chicos
Цитата(Aimed @ 24.11.2017, 22:55)

Линк был на FAQ о дебаге ядра + скриптов при нормальной структуре с динамической компиляцией скриптов во время рантайма.
Я не согласен что компилятор скриптов это кака. Для главной аудитории это безопаснее чем убрать его полностью. Даже для себя лично я предпочту такой подход, нежели полную компиляцию проекта сразу.

К тому-же если б кому-то действительно было дело до сервера, можно было-бы ещё больше обезопасить все это дело. Создав нормальный фреймворк для создания Save полей и метаданных о версиях и все это динамически проверять при запуске сервера, что-бы уменьшить шанс на всяческие проблемы связанные с сейвами.

Сейвы это наше все. Нужно лишь разок затупить или забыть что-то и можно сразу хорошенько приехать.
Я считаю что нужен очень щепетильный подход к этому делу. А вырубать все *лишнее*, потому что сервер на 20 сек дольше загружается, это по-моему не серьёзно.

Вобщем мое мнение вкратце: нужно не только компиляцию использовать, но и ещё более жесткие проверки добавлять в эту систему. Потому что я её считаю какой-то недоделанной.


Ну Аймед, так то то ты это и есть предшественик, я сейчас за тобой Нову подобрал, в принципе я уже разобрался, скомпилил ядро новое на тестовом, вижу что скриптс тоже в ядре сидят. Помоги чуть на первом этапе, я же 3 дня как с ней работаю. Пока сервак жив, народ бегает, не хочу что либо поломать по незнанию. Хочу просто список багов поправить и далее развить немного сервак, там народ все устаривает, чисто по нобходимости. Оплачу твое время, в пределах разумного. Мне не надо разжевывать, читать я умею форум, чисто что, где, и как в общих чертах, особенности сервака. Просто Спил скинул на меня, я не отказался, но и контактов не было твоих. Почта kns собак mail.ru

Вверх
Aimed
Цитата(Chicos @ 24.11.2017, 20:50)

Ну Аймед, так то то ты это и есть предшественик, я сейчас за тобой Нову подобрал, в принципе я уже разобрался, скомпилил ядро новое на тестовом, вижу что скриптс тоже в ядре сидят. Помоги чуть на первом этапе, я же 3 дня как с ней работаю. Пока сервак жив, народ бегает, не хочу что либо поломать по незнанию. Хочу просто список багов поправить и далее развить немного сервак, там народ все устаривает, чисто по нобходимости. Оплачу твое время, в пределах разумного. Мне не надо разжевывать, читать я умею форум, чисто что, где, и как в общих чертах, особенности сервака. Просто Спил скинул на меня, я не отказался, но и контактов не было твоих. Почта kns собак mail.ru


Послал в ЛС контакты. Вобще меня найти не должно быть сложно.
Вверх
Invision Power Board © 2001-2019 Invision Power Services, Inc.
Version for Pocket PC © 2006-2019, IPBest Studio.