|
|
|
Надо помощь в RunUO! |
|
|
Dragon Killer |
12.5.2015, 15:18
|
Novice
Сообщений: 63
Регистрация: 4.4.2014 Группа: Пользователи Наличность: 0
Пользователь №: 16.748
Возраст: 29
|
И так пытаюсь разобраться в файлах RanUO сам не скриптер но как по мне ранка этот как лего можно склепать что захочешь, ну по крайней мере я так надеюсь ... FAQ толкового нет ... Хочу вот разобраться что к чему , настроить шард под свои нужды что то добавить что то убрать .... Помогите разобраться с файлами что за что отвечает файл ExpansionInfo.cs и давайте его разложим его по полочкам за что отвечают флаги и ну вообщем кую функцию они выполняют что включают и отключают хочу знать все ... прошу не ленится а реально описать файл ..... и помочь разобраться... Код using System;
namespace Server { public enum Expansion { None, T2A, UOR, UOTD, LBR, AOS, SE, ML, SA, HS }
[Flags] public enum ClientFlags { None = 0x00000000, Felucca = 0x00000001, Trammel = 0x00000002, Ilshenar= 0x00000004, Malas = 0x00000008, Tokuno = 0x00000010, TerMur = 0x00000020, Unk1 = 0x00000040, Unk2 = 0x00000080, UOTD = 0x00000100 }
[Flags] public enum FeatureFlags { None = 0x00000000, T2A = 0x00000001, UOR = 0x00000002, UOTD = 0x00000004, LBR = 0x00000008, AOS = 0x00000010, SixthCharacterSlot = 0x00000020, SE = 0x00000040, ML = 0x00000080, EigthAge = 0x00000100, NinthAge = 0x00000200, /* Crystal/Shadow Custom House Tiles */ TenthAge = 0x00000400, IncreasedStorage = 0x00000800, /* Increased Housing/Bank Storage */ SeventhCharacterSlot= 0x00001000, RoleplayFaces = 0x00002000, TrialAccount = 0x00004000, LiveAccount = 0x00008000, SA = 0x00010000, HS = 0x00020000, Gothic = 0x00040000, Rustic = 0x00080000,
ExpansionNone = None, ExpansionT2A = T2A, ExpansionUOR = ExpansionT2A | UOR, ExpansionUOTD = ExpansionUOR | UOTD, ExpansionLBR = ExpansionUOTD | LBR, ExpansionAOS = ExpansionLBR | AOS | LiveAccount, ExpansionSE = ExpansionAOS | SE, ExpansionML = ExpansionSE | ML | NinthAge, ExpansionSA = ExpansionML | SA | Gothic | Rustic, ExpansionHS = ExpansionSA | HS }
[Flags] public enum CharacterListFlags { None = 0x00000000, Unk1 = 0x00000001, OverwriteConfigButton = 0x00000002, OneCharacterSlot = 0x00000004, ContextMenus = 0x00000008, SlotLimit = 0x00000010, AOS = 0x00000020, SixthCharacterSlot = 0x00000040, SE = 0x00000080, ML = 0x00000100, Unk2 = 0x00000200, UO3DClientType = 0x00000400, Unk3 = 0x00000800, SeventhCharacterSlot = 0x00001000, Unk4 = 0x00002000, NewMovementSystem = 0x00004000, NewFeluccaAreas = 0x00008000,
ExpansionNone = ContextMenus, // ExpansionT2A = ContextMenus, // ExpansionUOR = ContextMenus, // None ExpansionUOTD = ContextMenus, // ExpansionLBR = ContextMenus, // ExpansionAOS = ContextMenus | AOS, ExpansionSE = ExpansionAOS | SE, ExpansionML = ExpansionSE | ML, ExpansionSA = ExpansionML, ExpansionHS = ExpansionSA }
public class ExpansionInfo { public static ExpansionInfo[] Table { get { return m_Table; } } private static ExpansionInfo[] m_Table = new ExpansionInfo[] { new ExpansionInfo( 0, "None", ClientFlags.None, FeatureFlags.ExpansionNone, CharacterListFlags.ExpansionNone, 0x0000 ), new ExpansionInfo( 1, "The Second Age", ClientFlags.Felucca, FeatureFlags.ExpansionT2A, CharacterListFlags.ExpansionT2A, 0x0000 ), new ExpansionInfo( 2, "Renaissance", ClientFlags.Trammel, FeatureFlags.ExpansionUOR, CharacterListFlags.ExpansionUOR, 0x0000 ), new ExpansionInfo( 3, "Third Dawn", ClientFlags.Ilshenar, FeatureFlags.ExpansionUOTD, CharacterListFlags.ExpansionUOTD, 0x0000 ), new ExpansionInfo( 4, "Blackthorn's Revenge", ClientFlags.Ilshenar, FeatureFlags.ExpansionLBR, CharacterListFlags.ExpansionLBR, 0x0000 ), new ExpansionInfo( 5, "Age of Shadows", ClientFlags.Malas, FeatureFlags.ExpansionAOS, CharacterListFlags.ExpansionAOS, 0x0000 ), new ExpansionInfo( 6, "Samurai Empire", ClientFlags.Tokuno, FeatureFlags.ExpansionSE, CharacterListFlags.ExpansionSE, 0x00C0 ), // 0x20 | 0x80 new ExpansionInfo( 7, "Mondain's Legacy", new ClientVersion( "5.0.0a" ), FeatureFlags.ExpansionML, CharacterListFlags.ExpansionML, 0x02C0 ), // 0x20 | 0x80 | 0x200 new ExpansionInfo( 8, "Stygian Abyss", ClientFlags.TerMur, FeatureFlags.ExpansionSA, CharacterListFlags.ExpansionSA, 0xD02C0 ), // 0x20 | 0x80 | 0x200 | 0x10000 | 0x40000 | 0x80000 new ExpansionInfo( 9, "High Seas", new ClientVersion( "7.0.9.0" ), FeatureFlags.ExpansionHS, CharacterListFlags.ExpansionHS, 0xD02C0 ) // 0x20 | 0x80 | 0x200 | 0x10000 | 0x40000 | 0x80000 };
private string m_Name; private int m_ID, m_CustomHousingFlag;
private ClientFlags m_ClientFlags; private FeatureFlags m_SupportedFeatures; private CharacterListFlags m_CharListFlags;
private ClientVersion m_RequiredClient; // Used as an alternative to the flags
public string Name{ get{ return m_Name; } } public int ID{ get{ return m_ID; } } public ClientFlags ClientFlags{ get{ return m_ClientFlags; } } public FeatureFlags SupportedFeatures{ get{ return m_SupportedFeatures; } } public CharacterListFlags CharacterListFlags { get { return m_CharListFlags; } } public int CustomHousingFlag { get{ return m_CustomHousingFlag; } } public ClientVersion RequiredClient { get { return m_RequiredClient; } }
public ExpansionInfo( int id, string name, ClientFlags clientFlags, FeatureFlags supportedFeatures, CharacterListFlags charListFlags, int customHousingFlag ) { m_Name = name; m_ID = id; m_ClientFlags = clientFlags; m_SupportedFeatures = supportedFeatures; m_CharListFlags = charListFlags; m_CustomHousingFlag = customHousingFlag; }
public ExpansionInfo( int id, string name, ClientVersion requiredClient, FeatureFlags supportedFeatures, CharacterListFlags charListFlags, int customHousingFlag ) { m_Name = name; m_ID = id; m_SupportedFeatures = supportedFeatures; m_CharListFlags = charListFlags; m_CustomHousingFlag = customHousingFlag; m_RequiredClient = requiredClient; }
public static ExpansionInfo GetInfo( Expansion ex ) { return GetInfo( (int)ex ); }
public static ExpansionInfo GetInfo( int ex ) { int v = (int)ex;
if( v < 0 || v >= m_Table.Length ) v = 0;
return m_Table[v]; }
public static ExpansionInfo CurrentExpansion { get { return GetInfo( Core.Expansion ); } }
public override string ToString() { return m_Name; } } }
Сообщение отредактировал Juzzver - 12.5.2015, 20:56
|
|
|
|
Juzzver |
12.5.2015, 18:32
|
Модератор RunUO
Сообщений: 3.425
Регистрация: 1.11.2008 Группа: Супермодераторы Наличность: 22565 Из: Северная Корея
Пользователь №: 11.273
|
Цитата Однако рулить фичами отсюда не надо. Это не файл настройки, а описание протокола по которому сервер и клиент согласуют свои настройки. Если здесь что-то поправить, то может случиться, что клиент и сервер перестанут понимать друг друга. Это касается всей папки Server в целом, куда лезть на начальном этапе весьма нежелательно. Начинать стоит с папки Scripts, где находится тот же конфигурационный файл для экспансий: Scripts->Misc->CurrentExpansion.cs И этот участок кода уже имеет смысл разбирать построчно: Код public class CurrentExpansion { private static readonly Expansion Expansion = Expansion.HS;
public static void Configure() { Core.Expansion = Expansion;
bool Enabled = Core.AOS;
Mobile.InsuranceEnabled = Enabled; ObjectPropertyList.Enabled = Enabled; Mobile.VisibleDamageType = Enabled ? VisibleDamageType.Related : VisibleDamageType.None; Mobile.GuildClickMessage = !Enabled; Mobile.AsciiClickMessage = !Enabled;
if ( Enabled ) { AOS.DisableStatInfluences();
if ( ObjectPropertyList.Enabled ) PacketHandlers.SingleClickProps = true; // single click for everything is overriden to check object property list
Mobile.ActionDelay = 1000; Mobile.AOSStatusHandler = new AOSStatusHandler( AOS.GetStatus ); } } private static readonly Expansion Expansion = Expansion.HS; - задается текущая экспансия, если выбрать .HS - активируются все ветви кода, которые предназначены для High Seas расширения игры ( это крафт новых вещей, создание новой расы Гаргулии, работа новых скиллов, новые комплектующие для постройки домов(станы, плитка, двери и т.д.), новые города и т.д.). Если поставить .T2A или .UOR, то мы активируем настройки уо эпохи Ренесанса, соответственно часть новых фитч у нас деактивируется, но заработают старые конфиги, алгоритмы, формулы и т.д. Ранка в том комплекте как она поставляется продвинулась не столь далеко и обладает лишь поддержкой ML (Mondain's Legacy) расширением, соответственно выставляя экспансию .SA или .HS существенных приоритетов нам не создаст, но стоит понимать, что включая .HS, в неё будут включены по умолчанию все фитчи предыдущих AOS, SE, ML, SA, HS расширений. По памяти, для SA/HS эры, мы можем получить доступ в новые миры, созданию новой рассы, плавное передвижение по морям, новые элементы для постройки домов, ну и что нибудь еще (IMG: style_emoticons/default/smile.gif), т.е. не шибко много. Всякие там новые крафт вещи, мобов, системы из новых эр и т.д. - это придется делать самим, или же искать в интернете плоды сторонних разработчиков. Для полноты ощущений, рекомендую все же использовать Expansion.HS; bool Enabled = Core.AOS; // Если у нас активирована экспансия AOS, то переменная Enabled у нас будет активирована(true), если ниже чем .AOS ( к примеру Core.UOR ), то деактивирована (false). Ну и смотрим ниже по списку, что этой переменной активируют. Mobile.InsuranceEnabled = Enabled; // Если .AOS, то активируем систему страхования вещей (система, которая позволяет сохранять свои вещи в момент смерти, но при этом снимая налог за страховку). Если мы хотим продолжать использовать эру AOS или выше, но при этом захотим отключить систему страховки, то просто меняем заменяем Enable(повторюсь, который несет у нас значение true, если мы стоим на AOS или выше экспансии) на false. Получаея следующий вид: Mobile.InsuranceEnabled = false; // так будет выглядеть отключение системы страховки. ObjectPropertyList.Enabled = Enabled; // Показывает лейблы со свойствами предметов, при наведении на них. Если отключить, то мы будем видеть привычное название итемов без какой либо доп. информации, как на сферах и пол серверах. Mobile.VisibleDamageType = Enabled ? VisibleDamageType.Related : VisibleDamageType.None; // Показывает получаемый урон над головой у персонажа, соответственно так же ставим false, если хотим отключить. Mobile.GuildClickMessage = !Enabled; // По идее какие то гильд приписки, которые показываются при клике на персонажа, состоящего в гильдии. !Enabled; - означает, что значение не равно Core.AOS (т.е. не true), соответственно оно будет являтся false(деактивированное). Если мы хотим активировать, то пишем либо просто Enable, либо true. Mobile.AsciiClickMessage = !Enabled; // Аналогично, только для различных предметов, ников и т.д. Если активировать, то мы будем видеть привычные старые типы символов из клиента (ренесансные, как на сферах и полах), а не стандартный строчный тип, которым я сейчас пишу. AOS.DisableStatInfluences(); // Что-то связанное с ростом статов, если не ошибаюсь, в зависимости от качаемых навыков. Для уточнения, смотреть что изложенно в методе DisableStatInfluences(); Цитата if ( ObjectPropertyList.Enabled ) PacketHandlers.SingleClickProps = true; // single click for everything is overriden to check object property list Если у нас включено отображение свойств, то включаем отображение этих свойств по одиночному клику мышки. Mobile.ActionDelay = 1000; // задержка для перекидывания предметов с одного места на другое, 1000 указано в мс, соответственно это 1 секунда. Mobile.AOSStatusHandler = new AOSStatusHandler( AOS.GetStatus ); // Похоже на статус гамп персонажа, где перечислены его характеристики(статы, резисты, вес и т.д.), соответственно если поменять его на другой, нужно посмотреть какие статусы еще есть в наличии (типа старых, ренесансных) и есть ли они вообще.
--------------------
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|