Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ Вопросы по RunUO _ Поддержка старых клиентов

Автор: Александр Needle™ 6.5.2017, 2:49

Собственно, хотелось бы запустить ранку с поддержкой клиента 203, обычный классический, без всяких нинзей, такуно островов и прочий ... Максимально старую ранку находил 1 версии, но она не тянет клиент, крашит. Существуют ранки с поддержкой старых клиентов ибо я в не курсе, я в то время пользовался polserver?

Автор: Soteric 6.5.2017, 2:55

Можно попробовать запустить последнюю в режиме Expansion.None.

Автор: Александр Needle™ 6.5.2017, 2:57

Цитата(Soteric @ 6.5.2017, 2:55) *

Можно попробовать запустить последнюю в режиме Expansion.None.

Хм, сейчас попробую данный вариант. Только POL установлю до конца, а то уже начал.


UPD Работает, клиент заходит, но беда, команды купить/продать/и тп. не работают, но уже что-то
UPD Наверное, будет проще просто урезать новые возможности, тем самым новый клиент обрезать, убрать самураев и тп?

Автор: Juzzver 6.5.2017, 16:30

команды на ранке звучат: "vendor buy/sell" или еще вариант: "NPC Name buy"/

Цитата
UPD Наверное, будет проще просто урезать новые возможности, тем самым новый клиент обрезать, убрать самураев и тп?

Естественно.
Бери хоть самый последний клиент и просто экспансию нужную тебе активируй. Всё что ниже Expanshion.AOS - всё это убирает примочки типа инсура, тултипов, абилок, новые классы и т.д. Подавляющее число формул так же начинают работать по типу ренесанс версии уо.

Автор: Александр Needle™ 6.5.2017, 21:20

Цитата(Juzzver @ 6.5.2017, 16:30) *

команды на ранке звучат: "vendor buy/sell" или еще вариант: "NPC Name buy"/

Естественно.
Бери хоть самый последний клиент и просто экспансию нужную тебе активируй. Всё что ниже Expanshion.AOS - всё это убирает примочки типа инсура, тултипов, абилок, новые классы и т.д. Подавляющее число формул так же начинают работать по типу ренесанс версии уо.

Как только не пробовал, и так, как ты написал, и через точку как на пол сервере, и слэши, и say sell, и тому подобное, - ноль эмоций. Только включаю SA экспансию, все сразу начинает работать, ну или любую другую моложе AOS. (на UOR. None и LBR не работает)

Да как-то не охота во всем этом ковырять, отключать то отключал, но откровенно говоря слишком много переделок помимо этих функций, проще поставить Pol095 или моложе.

Кстати отключал я эти функции, менюшки покупки/продажи все равно есть, выбор персонажей работает как и прежде, урон над персонажем не проверял, да и не буду.

Автор: Juzzver 7.5.2017, 4:09

https://github.com/runuo/runuo/blob/master/Scripts/Mobiles/AI/VendorAI.cs
Метод:
public override void OnSpeech
В нём:

Код
if ( m_Mobile is BaseVendor && from.InRange( m_Mobile, Core.AOS ? 1 : 4 ) && !e.Handled )
            {
                if ( e.HasKeyword( 0x14D ) ) // *vendor sell*
                {
                    e.Handled = true;

                    ((BaseVendor)m_Mobile).VendorSell( from );
                    m_Mobile.FocusMob = from;
                }
                else if ( e.HasKeyword( 0x3C ) ) // *vendor buy*
                {
                    e.Handled = true;

                    ((BaseVendor)m_Mobile).VendorBuy( from );
                    m_Mobile.FocusMob = from;
                }
                else if ( WasNamed( e.Speech ) )
                {
                    if ( e.HasKeyword( 0x177 ) ) // *sell*
                    {
                        e.Handled = true;

                        ((BaseVendor)m_Mobile).VendorSell( from );
                    }
                    else if ( e.HasKeyword( 0x171 ) ) // *buy*
                    {
                        e.Handled = true;

                        ((BaseVendor)m_Mobile).VendorBuy( from );
                    }

                    m_Mobile.FocusMob = from;
                }
}


Если у нас аос и мы обращаемся к вендору в радиусе одной клетки, то он проверяет посылаемые ему кейворды, в данном случае *vendor buy* / *vendor sell*.
else if ( WasNamed( e.Speech ) ) - так же мы можем обратиться по имени вендора + buy/sell кейворд.

Если экспансия у нас выбрана ниже аоса, то данные правила будут отрабатывать в радиусе 4х клеток от вендора по тем же кейвордам, что и при аосе.

Если мы хотим добавить реакцию на sell/buy без примесей, то делаем следующее:
В начале метода создаем переменную в которую будет записываться текст вводимый игроком для нпц:
Код
 string speech = e.Speech.ToLower();


и в условиях проверяем, нужное ли это для нас слово или нет:
Цитата
if ( e.HasKeyword( 0x14D ) ) // *vendor sell*
- дописываем условие:
if ( e.HasKeyword( 0x14D ) || speech == "sell") // *vendor sell*


аналогично делаем и для Buy:
Цитата
else if ( e.HasKeyword( 0x3C ) || speech == "buy" ) // *vendor buy*

И теперь вендоры реагируют на Buy / Sell кейворды, в точности как и на поле smile.gif

Цитата
Кстати отключал я эти функции, менюшки покупки/продажи все равно есть, выбор персонажей работает как и прежде, урон над персонажем не проверял, да и не буду.

Ты отключал ObjectPropertyList, т.е. тултипы (подсказки), которые срабатывают при наведении на что либо.
То что открываются менюшки при клике на торговцев - это называется контекстное меню, отключить его можно будет скорее всего в базовом скрипте ContextMenu/ContextMenuEntry, или же просто обрубить обработку пакета с контекстными менюшками.

Цитата
урон над персонажем не проверял, да и не буду.

Это настривается строчкой:
Mobile.VisibleDamageType = VisibleDamageType.None;
в Misc/CurrentExpanshion.cs

Автор: RL_ka 8.5.2017, 13:10

Цитата(Александр Needle™ @ 6.5.2017, 20:20) *

Да как-то не охота во всем этом ковырять, отключать то отключал, но откровенно говоря слишком много переделок помимо этих функций, проще поставить Pol095 или моложе.


Если ставить то уж 099... и просто взять старый дистр скриптов, который заточен под ренессанс и старые клиенты

Автор: Александр Needle™ 9.5.2017, 2:20

Цитата(Juzzver @ 7.5.2017, 4:09) *

https://github.com/runuo/runuo/blob/master/Scripts/Mobiles/AI/VendorAI.cs
Метод:
public override void OnSpeech

Я читал другие твои сообщения на форуме, но так и не добился того, что бы персонаж мог что-то купить, продать или зайти в банк, и... я оставил затею с RunUO, разобраться можно, но не хочу больше тратить время. Мне нужен был эмулятор пустой, простой, и с поддержкой 2.0.3 клиента. smile.gif

Цитата
Если ставить то уж 099... и просто взять старый дистр скриптов, который заточен под ренессанс и старые клиенты

Ставил, дофига настроек, опять же потерял время, скачал 095, откомпилил и теперь работаю на нем.

Автор: RL_ka 9.5.2017, 11:33

Цитата(Александр Needle™ @ 9.5.2017, 1:20) *

Ставил, дофига настроек, опять же потерял время, скачал 095, откомпилил и теперь работаю на нем.


Время потеряешь если он начнёт крашить и совсем никто не сможет помочь тебе с решением smile.gif
а отличий 095 от 099 с гулькин нос, не знаю о каких настройках ты говоришь smile.gif
ну хозяин-барин.

Автор: Aimed 9.5.2017, 12:49

Не проще ли тогда уж Сферу поставить?
Дефолтная Сфера отлично с 2.0.3 клиентом работает.

Автор: Александр Needle™ 9.5.2017, 20:36

Цитата(RL_ka @ 9.5.2017, 11:33) *

Время потеряешь если он начнёт крашить и совсем никто не сможет помочь тебе с решением smile.gif
а отличий 095 от 099 с гулькин нос, не знаю о каких настройках ты говоришь smile.gif
ну хозяин-барин.

С чего вдруг ему начать крашится?
Для начала miltis, boats, первое что сразу вызывает ошибку, потом по накатанной по каждому умению персонажей и вещей в игре (с новых клиентов) быстрей было установить 095 чем ковырять и исправлять 099. Пока что ни один из эмуляторов толком не имеет поддержку старых клиентов и тем более новых, и тем более быстрое переключение между ними (что не мешало бы для разработчиков)

Цитата
Не проще ли тогда уж Сферу поставить?
Дефолтная Сфера отлично с 2.0.3 клиентом работает.

Сферу не люблю, принципиально не использую.

Автор: RL_ka 9.5.2017, 20:44

Цитата(Александр Needle™ @ 9.5.2017, 19:36) *

С чего вдруг ему начать крашится?


с того что пол крашит всю свою жизнь smile.gif а причины краша без исходников и нормального дебаггера можно искать годами... такая вот штука, этот с++

ну тут всё конечно зависит от цели. если цель просто запустить на 2 минуты сервер, не тратить на это время, и просто полюбоваться старым клиентом то сойдёт и сфера

Автор: Александр Needle™ 9.5.2017, 22:38

Цитата(RL_ka @ 9.5.2017, 20:44) *

с того что пол крашит всю свою жизнь smile.gif а причины краша без исходников и нормального дебаггера можно искать годами... такая вот штука, этот с++

ну тут всё конечно зависит от цели. если цель просто запустить на 2 минуты сервер, не тратить на это время, и просто полюбоваться старым клиентом то сойдёт и сфера

А каких еще исходников не хватает? Стандартный набор есть, все в *.src, ошибки подсвечивает и даже линию указывает, что еще нужно?)
Меня он более чем устраивает, в данный момент.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)