Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Создание новой руды, RunUO 2.3 r 987
Nerengot
сообщение 18.11.2020, 19:47
Сообщение #1


*

Registred
Сообщений: 4
Регистрация: 18.11.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.803
Возраст: 33



Приветствую. Хочется все таки понять как создать новую руду. Вроде пробовал делать по аналогии с родными - сервер не стартует. Почитал подобные темы тут и увидел про приведение к string но что и как приводить не понял. В С# немного разбираюсь. Есть ли желающие потратить время на помощь и написать какие файлы надо менять и как именно? Для начала просто добавить руду, для примера Mithril Ore и дать возможность переплавки.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Juzzver
сообщение 18.11.2020, 20:59
Сообщение #2


**********

Модератор RunUO
Сообщений: 3.344
Регистрация: 1.11.2008
Группа: Супермодераторы
Наличность: 19790
Из: Северная Корея
Пользователь №: 11.273



Цитата(Nerengot @ 18.11.2020, 20:47) *

Приветствую. Хочется все таки понять как создать новую руду. Вроде пробовал делать по аналогии с родными - сервер не стартует. Почитал подобные темы тут и увидел про приведение к string но что и как приводить не понял. В С# немного разбираюсь. Есть ли желающие потратить время на помощь и написать какие файлы надо менять и как именно? Для начала просто добавить руду, для примера Mithril Ore и дать возможность переплавки.

string нужен для того, чтобы обойти проблему с клилоком, откуда берутся все имена предметов, ресурсов в том числе. По стандарту мы имеем от Iron до Valorite диапазон ресурсов. Соответственно в чем идея стринга, просто переписываются значения из Int переменной клилока в текстовый вид. Что позволяет добавлять новые и изменять уже существующие виды ресурсов.

Основная же проблема - это найти и правильно дописать прочие скрипты, где используются ресурсы. Если использовать Visual Studio среду или просто что-то типа Notepad++ блокнотика, можно произвести поиск по всем файлам в папке Scripts, по ключу к примеру Valorite или Iron. Таким образом ты явно выйдешь на все места, где используются базовые металлы. По памяти, это будет около 40-50 файлов, если это RunUO сборка.

Из сложного - это правильно указать процентные соотношения по добыче ресурсов в Mining.cs. Т.к. в сумме должно выйти 100% на все виды металлов, иначе то что переваливает за 100% - будет вне досягаемости игроков.

А так-же Bulk Orders, там много правок сделать надо. Но если это не будет использоваться в заказах, то можно просто проигнорировать.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Nerengot
сообщение 19.11.2020, 0:15
Сообщение #3


*

Registred
Сообщений: 4
Регистрация: 18.11.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.803
Возраст: 33



Так в том и дело что я полный ноль пока. Я понимаю что инт клилока надо преобразовать в стринг, но как именно не трогая (кроме шанса 100%) родные руды УО дописать свою не понимаю. Я хочу оставить все родные и добавить несколько "своих" (практически самые распространенные Лава, Мифрил, Сталь, ну и пару своих). Может ли кто-то подсказать в каких строках и что менять если использую Ранку 2.3 r 987. Использую для работы Notepad++. Был бы очень благодарен.

Делаю шард для себя лично. Хочется практически оригинальный ХС и пару плюшек. Остальное вроде все сделал (статику пока не трогал), а вот с рудой и логами встал. Пойму как делать руду, пойму и как делать логи. Дописать крафты я думаю будет легче если понять кто такие клилоки (впервые встретил данное понятие) и понять какие строки файла Ore.cs отвечают за правильное добавление руды.

Покажите пожалуйста пример на файле этой сборки. (можно несколько файлов в 1 архиве, с добавленной любой рудой и комментами по возможности.

И в догонку, как изменять цвета руды? Есть ли какие-то мануалы или таблицы цветов?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Juzzver
сообщение 19.11.2020, 18:30
Сообщение #4


**********

Модератор RunUO
Сообщений: 3.344
Регистрация: 1.11.2008
Группа: Супермодераторы
Наличность: 19790
Из: Северная Корея
Пользователь №: 11.273



Цитата
Так в том и дело что я полный ноль пока.

Ну ты же сказал, что немного разбираешься (IMG:style_emoticons/default/smile.gif)
Там идёт не преобразование инта, а присвоение ему значения через switch блок. К примеру мы крафтим любую часть армора, т.е. работаем с родительским классом BaseArmor. У него есть метод, который отвечает за отображение имени void NameProperties(ObjectProperyLabel list) или что-то в этом роде. Задача метода - собрать из кусков данных (тип ресурса, имя предмета, экзепшионал ли, и прочее) - имя предмета. В данном методе тебе нужно будет просто переопределить int значения клилока на string значение.

В BaseArmor класс уже был передан параметр Resource при создании объекта, и по нему делается выборка в метода NamePropeties через switch блок. типа
Код
switch(Resource)
{
case CraftResource.Iron: res = 4124124; break;
case CraftResource.Copper: res = 345235; break;
}

соответственно твоя задача - это создать переменную типа string, и таким же образом просто присвоить ей соответствующее значение в зависимости от типа ресурса.
string resource = "";
Код
switch(Resource)
{
case CraftResource.Iron: resource = "Iron"; break;
case CraftResource.Copper: res = "Copper"; break;
}


а чтобы добавить в список ресурсов свой новый Mythril, сделать это можно в Scripts/Misc/ResourceInfo.cs
по примеру любого из существующих ресурсов просто добавь свои строки. Тут у тебя тоже возникнут небольшие проблемы с клилоками, когда будешь регистрировать созданный кастомный ресурс, но там, если не обишаюсь, уже есть готовые перегрузки для методов, которые примут в параметр string значения. Чтобы сразу видеть и понимать такие методы и какие параметры они могут использовать - установи Visual Studio среду разработки. Работая через проект стулии - ты получить куда лучшую навигацию по коду, чем через какой либо другой редактор.

Как найти в каких файлах править.
Открываешь Notepad++, жмёшь Ctrl+Shif+F, вбиваешь папку со скриптами и ключ для поиска -"Valorite", без ковычек. На что тебе выдаст все скрипты, в которых упоминается данный тип. И по тому же сценарию просто добавляешь себе Mythril и т.д уже со своими параметрами.


Сообщение отредактировал Juzzver - 19.11.2020, 18:27


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Nerengot
сообщение 19.11.2020, 19:29
Сообщение #5


*

Registred
Сообщений: 4
Регистрация: 18.11.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.803
Возраст: 33



Цитата(Juzzver @ 19.11.2020, 18:30) *

Ну ты же сказал, что немного разбираешься (IMG:style_emoticons/default/smile.gif)
Там идёт не преобразование инта, а присвоение ему значения через switch блок. К примеру мы крафтим любую часть армора, т.е. работаем с родительским классом BaseArmor. У него есть метод, который отвечает за отображение имени void NameProperties(ObjectProperyLabel list) или что-то в этом роде. Задача метода - собрать из кусков данных (тип ресурса, имя предмета, экзепшионал ли, и прочее) - имя предмета. В данном методе тебе нужно будет просто переопределить int значения клилока на string значение.

В BaseArmor класс уже был передан параметр Resource при создании объекта, и по нему делается выборка в метода NamePropeties через switch блок. типа
Код
switch(Resource)
{
case CraftResource.Iron: res = 4124124; break;
case CraftResource.Copper: res = 345235; break;
}

соответственно твоя задача - это создать переменную типа string, и таким же образом просто присвоить ей соответствующее значение в зависимости от типа ресурса.
string resource = "";
Код
switch(Resource)
{
case CraftResource.Iron: resource = "Iron"; break;
case CraftResource.Copper: res = "Copper"; break;
}


а чтобы добавить в список ресурсов свой новый Mythril, сделать это можно в Scripts/Misc/ResourceInfo.cs
по примеру любого из существующих ресурсов просто добавь свои строки. Тут у тебя тоже возникнут небольшие проблемы с клилоками, когда будешь регистрировать созданный кастомный ресурс, но там, если не обишаюсь, уже есть готовые перегрузки для методов, которые примут в параметр string значения. Чтобы сразу видеть и понимать такие методы и какие параметры они могут использовать - установи Visual Studio среду разработки. Работая через проект стулии - ты получить куда лучшую навигацию по коду, чем через какой либо другой редактор.

Как найти в каких файлах править.
Открываешь Notepad++, жмёшь Ctrl+Shif+F, вбиваешь папку со скриптами и ключ для поиска -"Valorite", без ковычек. На что тебе выдаст все скрипты, в которых упоминается данный тип. И по тому же сценарию просто добавляешь себе Mythril и т.д уже со своими параметрами.

Не все понял, но общую суть вроде уловил. Попробую что-то сделать по данной инструкции.

Но вообще я просил именно правки в файлах: Ore.cs и Ingots.cs
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Juzzver
сообщение 19.11.2020, 21:05
Сообщение #6


**********

Модератор RunUO
Сообщений: 3.344
Регистрация: 1.11.2008
Группа: Супермодераторы
Наличность: 19790
Из: Северная Корея
Пользователь №: 11.273



Цитата
Но вообще я просил именно правки в файлах: Ore.cs и Ingots.cs

Так там особо менять то и нечего.
Начинать надо с ResourceInfo.cs, куда ты добавляешь новый тип ресурса с его параметрами.
Оттуда идешь в Ore.cs и Ingots.cs, где копи-пастом делаешь руду нужного тебе типа. Дополнительно указываешь difficulty для уровня скилла при переплавке руды. Клилоки трогать не зачем в Ore и Ingots скриптах


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Nerengot
сообщение 19.11.2020, 21:17
Сообщение #7


*

Registred
Сообщений: 4
Регистрация: 18.11.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.803
Возраст: 33



Цитата(Juzzver @ 19.11.2020, 21:05) *

Так там особо менять то и нечего.
Начинать надо с ResourceInfo.cs, куда ты добавляешь новый тип ресурса с его параметрами.
Оттуда идешь в Ore.cs и Ingots.cs, где копи-пастом делаешь руду нужного тебе типа. Дополнительно указываешь difficulty для уровня скилла при переплавке руды. Клилоки трогать не зачем в Ore и Ingots скриптах

Теперь понял. Базово надо плясать от файла ResourcesInfo.cs, а не от Ore.cs как думал я. Теперь все встало по местам. Большое спасибо за терпение и отзывчивость)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 1.12.2020, 14:45
Designed by Nickostyle