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

 
Ответить в эту темуОткрыть новую тему
> Накопилось вопросов, Буду признателен за советы
ferik
сообщение 8.9.2020, 15:18
Сообщение #1


*

Registred
Сообщений: 1
Регистрация: 28.5.2020
Группа: Пользователи
Наличность: 27
Пользователь №: 19.655
Возраст: 31



Здравствуйте уважаемые!

Решил для себя создать сервер, чисто для фана и игры с друзьями (IMG:style_emoticons/default/rolleyes.gif)
Остановился на ServUO, по скриптам по сути разницы с Runuo не вижу, все скрипты от ранки работают на сервуо. Перечитал полностью ваш форум, но на некоторые вопросы так ответ и не нашел, буду очень признателен за помощь в данных вопросах:

1. Как полностью удалить из игры расы, эльф и гаргульи. В Expansion.cfg поставил AoS, выбрать расу нельзя, но они по прежнему видны в списке. А я хотел бы полностью удалить их, что-бы и следа не осталось =)

2. По аналогии с первым вопросом, как удалить Trammel, Malas и тд, оставив только Feluccia, дабы в игре был один единый мир.

3. Очень не нравится система бэкпаков. Когда персонаж просто не может положить в рюкзак более 10 000 золота. Как сделать так, что-бы персонаж мог брать в пак сколько угодно итемов, 60 000 стрел например, что-бы он при этом стоял на перевесе и не мог ходить, но взял их.

Решение 3 пункта:
Код
Нужно в файле Server\Items\Container.cs изменить следующие строки:

private static int m_GlobalMaxItems = XXX; // Где ХХХ - указать максимальное число предметов.
private static int m_GlobalMaxWeight = XXX; // Где ХХХ - указать максимальное количество веса.


4. Руда/бревна - как добавить в мир новый вид руды, не просто что-бы он был, а добывался, что-бы из него можно было крафтить предметы с определенными свойствами. Например новая руда *ядовитая* и при изготовлении из неё армора, у него был резист от яда.

5. Как создать новый уникальный предмет я разобрался, но хотел бы добавить его в нестандартную систему крафта. Например есть новая уникальная катана, что-бы сделать её, нужно 5 разных катан из разных металлов и свиток.

6. По поводу статов, скилов и капов для них. Я раньше играл только на Sphere, не совсем понимаю как тут устроена система статов, если стандартный кап 225, то каким образом нужно прокачать например лучника? Какой максимальный стат должен был, и какими остальные? Так-же смотрю что максимальное значение для скила - 100, но для некоторых животных нужно 120 таминга для приручения. Это как?) Догадываюсь что надев определенные шмотки, повышающие навык приручения, можно затамить нужное животное, поправьте пожалуйста если не прав.

7. Как сделать что-бы при смерти персонажа, все его вещи оставались в трупе, кроме определенных (тулсов для крафтов, ключей и тд), если умер - потерял весь армор/оружие.

8. Как сделать сундук, в котором через рандомное время появлялся бы определенный предмет/группа предметов?

9. Мне не очень нравится система поведения врагов лучников и волшебников, не могу понять почему если противник умеет атаковать на расстоянии, колдовать и стрелять, он всё время ломится в упор. Данную проблему решил путем добавления строчки "RangeFight = 10;" отдельно нужным мобам. - это правильное решение, или есть более толковый способ?

10. Система магии, как сделать что-бы при произнесении заклинания можно было свободно перемещаться? И что-бы волшебство работало по принципу: Нажал на спел, появился прицел, идёт заклинание.

11. Система лучника, как сделать что-бы стрелять можно было только стоя на месте и пешим?

12. Эра, не могу определится какая лучше и какие принципиальные отличия. В данный момент остановился на AoS, но сервер/клиент поддерживает любую эру вплоть до Endless Journey. Какую лучше выбрать?

13. Может у кого-то есть стандартная для такого сервера система роста статов от скилов и тд?

Вроде бы пока всё, заранее извиняюсь за количество вопросов (IMG:style_emoticons/default/rolleyes.gif) (IMG:style_emoticons/default/rolleyes.gif)

Пока шуршал, нашел решение на 1 свой вопрос, если никто не против, я буду редактировать данную тему добавляя решения, если вдруг кто-то задастся таким-же вопросом, тема будет полезна )
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Juzzver
сообщение 13.9.2020, 16:57
Сообщение #2


**********

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



1. Расы вшиты в интерфейс клиента, так что отключить можно лишь их выбор.
2. В PublicMoongate.cs просто убрать строки с этими картами, чтобы исключить возможность игрокам попадать туда. Так же придется сделать для локации создания перса и меню Help, где есть телепортация через stuck меню.
4. Потребуется переписать все места, которые касаются ресурсов и крафта.
Начиная с ResourceInfo ты обозначаешь имя, бонусы, цвет нового ресурса, Mining.cs - где ты добавишь рейты для добычи новых ресурсов, и конечно же сами ресурсы тоже надо добавить, их классы. Потом просто делай поиск по Valorite во всей сборке и ищи все используемые места, куда тебе придется дописывать параметры новых ресурсов. По памяти, это займет порядка 40-50 файлов для полного редактирования и добавления новых данных.
5. В стандартном меню крафта есть методы Add, через них, глядя на параметры, ты можешь добавить вещь для крафта. Далее приписывая к ней AddSubRes ты можешь добавлять вспомогательные ресурсы. Но в этом случае тебе потребуется иметь под каждый тип катаны соотвествующий класс, дабы передать соответствующее требование, что эта катана должна быть такая, а эта вот такая, и если все 5 подходят, то начинаем крафт. Но если это не удобно, ты можешь написать просто расширение для методов AddRes/AddSubRes, где будет проверятся просто тип указанной вещи и дополнительно сверятся тип ресурса, так будет правильнее даже.
Цитата
6. По поводу статов, скилов и капов для них. Я раньше играл только на Sphere, не совсем понимаю как тут устроена система статов, если стандартный кап 225, то каким образом нужно прокачать например лучника? Какой максимальный стат должен был, и какими остальные? Так-же смотрю что максимальное значение для скила - 100, но для некоторых животных нужно 120 таминга для приручения. Это как?) Догадываюсь что надев определенные шмотки, повышающие навык приручения, можно затамить нужное животное, поправьте пожалуйста если не прав.

Дефолтный кап 225, но с помощью спец систем можно добыть скролы до 250, и еще за ветеран реварды +5, и есть еще босс из новых паблишей, с которого тоже свиток падает +6, итого +260 макс сум стат. Остальное конечно же добивается спец шмотом, если это экспансия начиная от аос и выше, и все бегают с бутылками, бафами и т.д.
Аналогично и со скиллами, есть система чемпионов, за вызов и убийство которых есть шанс выбивать скроллы +5-10-15-20, таким образом подымают нужные скиллы до легендарного уровня (120 скиллов).

7. Тут есть 2 простых решения. Первый - просто назначить свойства вещам типа Blessed/Newbied, тогда они не будут падать при смерти. Либо в методах класса PlayerMobile аля OnBeforeDeath или OnDeath, где определяется дроп вещей в труп, то просто там создать проверку на список вещей, которые необходимо игнорировать. Например if (item != BaseTool) DropItem(item); и таким образом все возможные тулзы будут оставаться в паке игрока. Но это лишь псевдопример, там есть свои методы отвечающие за дроп вещей, типа DeathItemsMoveResult и т.п., они вызываются в базовых методах смерти игрока.

8.
Цитата
8. Как сделать сундук, в котором через рандомное время появлялся бы определенный предмет/группа предметов?

Можно посмотреть как работают Treasure Chests в мире, которые уже подобным образом генерят что либо, а потом по таймеру либо пересоздают лут, либо сами пересоздаются.
Вообще есть такой класс как Timer, на базе которого создают всевозможные таймеры такого типа, можешь условно подумать какие вещи работают с таймерами, найти более подходящую модель и посмотреть её реализацию. Например BlessSpell.cs, бафает на время, соответственно у него есть таймер.
Поняв как создавать таймер, ты можешь просто в свой сундук добавить переменные с датой последнего респа лута и интервал лута, передав сам сундук в качестве параметра и дальше в методе OnTick ты уже можешь создать проверку типа:
Код
if (DateTime.Now >= (myChest.LastRespawn + myChest.RespawnInterval))
myChest.DoRespawn(); // вызываем метод респа лута в сундука.

Так же можно использовать статические методы класса Timer, типа DelayCall
Пример можешь найти так же поиском, выглядеть должно примерным образом:
В конструкторе самого сундука создаем таймер:
Код

Timer.DelayCall(TimeSpan.FromSeconds(30), TimeSpan.FromMinutes(60),  delegate { AddItem( new Gold(50000); ) }); // Итого получится, что при создании сундука, через 30 секунд в нем появится 50к золота. Через час там появится еще 50к золота и так будет происходить каждый час. Соответственно ты можешь в блоке делегата создать свои условия на проверку того стоит пересоздавать что либо или не все условия выполнены для этого, а так же перечислить что ты там хочешь создавать в каком количестве и т.д.

Цитата
9. Мне не очень нравится система поведения врагов лучников и волшебников, не могу понять почему если противник умеет атаковать на расстоянии, колдовать и стрелять, он всё время ломится в упор. Данную проблему решил путем добавления строчки "RangeFight = 10;" отдельно нужным мобам. - это правильное решение, или есть более толковый способ?

У каждого моба параметрах конструктора или в теле конструктора обозначен тип его AI, если они Melee, то всегда будет идти в ближний бой. Если Archer или Range, то будет постоянно держать дистанцию для боя и отбегать, если противник приближается. Маг так же будет подбегать и отходить на короткую дистанцию.

Цитата
10. Система магии, как сделать что-бы при произнесении заклинания можно было свободно перемещаться? И что-бы волшебство работало по принципу: Нажал на спел, появился прицел, идёт заклинание.

Посмотри в коде Spell.cs BlockMovement методы, и там убери просто условие на фриз.
А что касается изменения порядка каста на тергет -> каст, тут уже в двух словах не объянить, много чего переписывать придётся. Начинай анализиовать с чего начинается каст в коде ( с каких методов ), меняй порядок вызовов сначала на появление такргета, а потом все последующие условия на результат клика этого таргета. В общем из всего выше перечисленного это пока самая сложная задача (IMG:style_emoticons/default/smile.gif).

Цитата
11. Система лучника, как сделать что-бы стрелять можно было только стоя на месте и пешим?

BaseRanged.cs метод, там есть методы аля OnSwing, и на примере того как там проверяется, что перс в парализе и фризе не может стрелять, там же можешь дописать себе если Mount != null, то мол тоже не стреляй.
А касательно стоя - то уже посмотри где и как пересчитывается таймер на задержку стрельбы, возможно его придётся перенести в метод бега, чтобы он постоянно обнулялся при беге и начинался отсчет с момента остановки перса.


Цитата
12. Эра, не могу определится какая лучше и какие принципиальные отличия. В данный момент остановился на AoS, но сервер/клиент поддерживает любую эру вплоть до Endless Journey. Какую лучше выбрать?

Чем выше эра - тем больше в неё включено контента, особенностей, миров, мобов, предметов, крафтов и т.д.
Исходить надо из того, что тебе вообще надо и какую цель преследуешь. Контент очень огромен сравнительно с привычными сфера серверами, но это не значит что тебе оттуда всё надо или пригодится. По большому счету для сфер обычно выбирают что-то типа ренесанса и т.д., после чего отключается почти весь оси контент и остается лишь олдскул. Что лучше - тут на любителя. В любом случае пока ты не разберешься в каждой эре и не прочувствуешь этого контента, то говорить особо не о чем будет (IMG:style_emoticons/default/smile.gif).
От себя могу посоветовать ставить что-то привычное тебе, и уже постепенно осваивать новое, выдирая то что приходится по вкусу. К примеру система чемпионов, боссов - это всё круто работает из коробки, так что стоит перенять. Домостроение - тоже круто, надо брать. И т.д. очень много еще новшеств имеется, на которые не мешало бы обратить внимание, поизучать что к чему.
Обычно сферойды плюются от контента незнакомого, мол нифига не понятно и кому оно надо вообще. Но на деле - это всё просто от незнания и непривычной среды. Как только осваиваются, чувствуют контраст между сферой и забывают её навсегда (IMG:style_emoticons/default/biggrin.gif). Но дабы это все прошло успешно, придётся изрядно постараться, чтобы всё правильно донести игрокам. Проще начинать с привычной для них среды, и постепенно вводить. Но для начала самому важно во всем разобраться, иначе сам себе проблем насоздаешь из-за некомпетентности.

Ну и на будущее, создавай по 1-2 вопроса в теме, не более.
Как видишь никто не поспешил потратить кучу времени на то, чтобы пройтись по всем твоим вопросам. Да и для поиска-индексации, 1 тема на 1 вопрос - куда более продуктивнее, чем потом кто-то будет листать страницы текста в поисках одной строчки решения своей проблемы.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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