UoKit.com Форумы > Ultima Online : Dev > RunUO Server > Вопросы по RunUO
Chicos
Долго искал но не могу найти где хранится список металлов, дерева для крафта вещей.
Например у нас нельзя сделать WoodenShield из дерева выше 100.
Мечи делаются из только из 4 видов метала.
Хочется добавить, но не могу найти где список.
тут
Код
AddCraft( typeof( ShepherdsCrook ), 1044295, 1023713, 78.9, 103.9, typeof( Log ), 1044041, 7, 1044351 );
AddCraft( typeof( QuarterStaff ), 1044295, 1023721, 73.6, 98.6, typeof( Log ), 1044041, 6, 1044351 );
AddCraft( typeof( GnarledStaff ), 1044295, 1025112, 78.9, 103.9, typeof( Log ), 1044041, 7, 1044351 );
AddCraft( typeof( WoodenShield ), 1044295, 1027034, 52.6, 77.6, typeof( Log ), 1044041, 9, 1044351 );

можно конечно ввести новые итемы и вместо typeof( Log ) сделать тот материал который я хочу но это не хочу так делать, надо просто разрешить использовать материал который я хочу
Вверх
Juzzver
Список ресурсов в: Scripts\Misc\ResourceInfo.cs

Ресурсы должны по умолчанию браться из списка, но в твоём случае с Nova - много костылей раскиданных по разным частям сборки. Попробуй посмотреть CraftItem, там много проверок по крафту вставлено.
Если пользуешься студией, то делай CTRL+SHIFT+F поиск по сборке, ища по ключевым словам совпадения, так выйдешь на место, где это может быть прописано.
Вверх
Chicos

ResourceInfo.cs у меня совсем нет, есть oreinfo, ясно дело все это прошерстил не один раз,но нет нигде привязки к именно этому типу щитов или посохов. Думал вначале группа влияет, но нет, в одной и той же группе одному типу предметов дает сделать из этого дерева, а другому нет. Проверил построчно все связанные разделы крафта и ресурсов нет нигде. Добавил Club ему так же как посохам дает сделать только из части дерева.
Условия то я нашел в CraftItem, но не понял как оно выполняется
Код
 
else if (item is BaseShield)
                            {
                                            if (craftSystem is DefCarpentry)
                                                message = "You could not make the shields from this type of wood";
                                            else
                                                message = "You could not make the shields from this type of metal.";
                                            Type resourceType = typeRes;

                                            if (resourceType == null)
                                                resourceType = Ressources.GetAt(0).ItemType;

                                            CraftResource thisResource = CraftResources.GetFromType(resourceType);
                                            if ((int)thisResource > 11 && (int)thisResource != 301)
                                            {
                                                from.EndAction(typeof(CraftSystem));
                                                from.SendGump(new CraftGump(from, craftSystem, tool, message));
                                            }
                                            else
                                                new InternalTimer(from, craftSystem, this, typeRes, tool, iRandom).Start();


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

Вверх
Juzzver
Посмотрел скрипт CraftItem.cs, там таки проверок много:
Метод: CraftItem
для оружия:
Код
                                            if (!(thisResource == CraftResource.Bronze) && !(thisResource == CraftResource.Copper) && !(thisResource == CraftResource.Shining) &&
                                                !(thisResource == CraftResource.Spectral) && !(thisResource == CraftResource.Star) && !(thisResource == CraftResource.Ablaze) &&
                                                !(thisResource == CraftResource.Azure) && !(thisResource == CraftResource.Divine) && !(thisResource == CraftResource.OakLog) &&
                                                !(thisResource == CraftResource.SandLog) && (!(thisResource == CraftResource.DarkLog) || item is BaseRanged) && (!(thisResource == CraftResource.CrystalLog) || item is BaseRanged))

т.е. из вышеперечисленных ресурсов нельзя сделать оружие.

и по щитам ты верно нашел строку:

В ней говорится, что щиты выше чем Ancient материала и если материал не "Log"(301) - не крафтятся.
Вверх
Chicos
Цитата(Juzzver @ 5.11.2018, 22:31)

Посмотрел скрипт CraftItem.cs, там таки проверок много:
Метод: CraftItem
для оружия:
Код
                                            if (!(thisResource == CraftResource.Bronze) && !(thisResource == CraftResource.Copper) && !(thisResource == CraftResource.Shining) &&
                                                !(thisResource == CraftResource.Spectral) && !(thisResource == CraftResource.Star) && !(thisResource == CraftResource.Ablaze) &&
                                                !(thisResource == CraftResource.Azure) && !(thisResource == CraftResource.Divine) && !(thisResource == CraftResource.OakLog) &&
                                                !(thisResource == CraftResource.SandLog) && (!(thisResource == CraftResource.DarkLog) || item is BaseRanged) && (!(thisResource == CraftResource.CrystalLog) || item is BaseRanged))

т.е. из вышеперечисленных ресурсов нельзя сделать оружие.

и по щитам ты верно нашел строку:

В ней говорится, что щиты выше чем Ancient материала и если материал не "Log"(301) - не крафтятся.


Спасибо, блин невнимательный я, вроде смотрел, а эти условия не увидел почему то

Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.