|
|
Модератор форума: Dimitro |
Форум » TrinityCore » Установка / Настройка TrinityCore » Новые расы (Руководство #1) |
Новые расы |
* Информация:
Файлы интерфейса и DBC хранятся в папке Data/ruRU. А файлы текстур, моделей, карт хранятся в папке Data. - DBC: ChrRaces.dbc CharBaseInfo.dbc CharStartOutfit.dbc SkillLineAbility.dbc SkillRaceClassInfo.dbc Faction.dbc - Файлы интерфейса: GlueStrings.lua CharacterCreate.lua CharacterCreate.xml GlueParent.lua VideoOptionsPanels.lua - Файлы сервера: SharedDefines.h MPQ Editor [Для открытия патчей] DBC Editor [Для открытия и эдитинга ДБЦ] DBC-CSV [Для конвертации ДБЦ в ЦСВ] И хороший блокнотик [Я юзаю Akelpad] Рассмотрим на примере Гоблинов. Для начала создадим папку с именем DBC (например), и положим в неё все выше перечисленные DBC. Скачаем DBC-CSV конвертер. Переконвертируем все DBC в CSV, и удалим ранее скопированные DBC. (DBC-CSV почему-то не захотел конвертировать файл ChrRaces.dbc, поэтому я сначала открыл его в DBCEditor и ч/з него переконвертировал в CSV) Пункт 1.1 ChrRaces.csv Находим строчку: Code 9,1,1,0x0,6894,6895,"Go",7,7,15007,0x448,"Goblin",0,0x2,,,"Goblin",,,,,,,,,,,,,,0xFF01FE,,, "Goblin",,,,,,,,,,,,,,0xFF01CC,,,"Goblin" ,,,,,,,,,,,,,,0xFF01CC,"NORMAL","NONE","NORMAL",0 Структура файла: Code Колонка | Поле | Примечания для редактирования файла 1 | ID Рассы | Тут вписан ID вашей рассы первоначально, но если вы делаете новую рассу (не входящую в список доступных), то должны поставить любой не использующийся номер. 2 | Флаги | Для того чтобы за выбраную расу можно было играть необходимо поставить 12. 3 | Фракция | ID фракции можно узнать в Faction.dbc 4 | Разведка | 5 | Муж.модель | Используется только для создания персонажей на экране выбора персонажа 6 | Жен.модель | Используется только для создания персонажей на экране выбора персонажа 7 | Аббревиатура | Две любые буквы, с помощью их подмены можно править отображение шлема* 8 | Сторона | 1-Орда, 7-Альянс 9 | Тип | 7-Гуманоид 10 | Неизвестно | Всегда 15007 11 | Неизвестно | 1090-Дварфы, 1096-Все остальные (*Если у вас например на гоблине не отображается шлем, или криво отображается, то вы можете просто заменить на людей к примеру, но размер будет такой же как и у человека) Пункт 1.2 Faction.csv Создаём новую фракцию "ИГРОК: гоблин" : Code Крутим в конец и вставляем следующее: 1161,-1,0,0,0x0,0x0,0,0,0x0,0x0,0,0,0,0,0x0,0,0x0,0x0,0,1.0,1.0,5,5,,,,,,,,,"ИГРОК: гоблин",,,,,,,,0xFF01FE,,,,,,,,,"",,,,,,,,0xFF01DC, Пункт 1.3 CharBaseInfo.csv Вы можете узнать ID рассы посмотрев в предыдущем файле. Вот ID классов: Code 1-Воин 2-Паладин 3-Охотник 4-Разбойник 5-Жрец 6-Рыцарь смерти 7-Шаман 8-Маг 9-Чернокнижник 11-Друид Далее прописываем рассам - классы Code 1-ый столбик | 2-ой столбик Расса | Класс Пункт 1.4 SkillLineAbility.csv Рассмотрим как же добавить поддержку спелла новой рассе. На примере главных языков. Спелл для Альянса: Code 590,98,668,1101,0,,,1,0,0x2,0,0,,, Спелл для орды: Code 592,109,669,690,0,,,1,0,0x2,0,0,,, 2-номер спелла 3-ID спелла 4-использование спелла Мы видим 4-ое значение, которое нам нужно перевести в двоичный код.(Вот сайт для перевода) После чего выстраивается такая таблица: 11|10|9|8|7|6|5|4|3|2|1 1| 0 |0|0|1|0|0|1|1|0|1 (двоичный код) Где 1 строка - ID рассы, 2 строка - разрешение на использование спелла (1-можно, 0-нельзя). Так как сейчас редактируется спелл для альянса, следовательно вы его даёте только тем рассам которые будут за альянс, то есть расса 2(орк) под ним стоит "0", а под 1(человек) стоит 1, следовательно в языке для орды всё будет наоборот. Стоит отметить, что если у вас получилась, к примеру, такая таблица: 14|13|12|11|10|9|8|7|6|5|4|3|2|1 0 | 1 | 0 | 1 | 0 |0|0|1|0|0|1|1|0|1 то есть начинается с "0", то чтобы переделать в DEC(десятеричный) код, можно убрать первое значение. После того как всё расставили, переводим назад в десятеричный код. И сохраняем полученное число вместо предыдущего. Пункт 1.5 SkillRaceClassInfo.csv: Ищем: Code 40,98,1101,1535,0x80,0x0,0,0x0, Видите 3-ее значение 1101? Заменяем его на получившееся в предыдущем файле. (Для орды ищем по номеру спелла,ID спелла). Пункт 1.6 Faction.csv Сново, только по другому поводу. Сейчас будем настраивать что бы новая расса получала репутацию у других фракций. Настраивается ч/з двоичную систему. У фракций 1100-альянс, 1791-орда, просто настройте и переведите обратно в десятеричный, а после с помощью функции "замены" в блокноте, или чем вы пользуетесь замените все значения на новые. Пункт 1.7 CharStartOutfit.csv Начальная одежда персонажа. Структура: Code Column Field Type Notes 1 ID Integer 2.1 Race iRefID (byte) 2.2 Class iRefID (byte) 2.3 Gender byte male, female 2.4 Pad byte Alignment to 4-bytes 3 Items[24] Integer[] These reference item IDs (see wowhead or the itemcache). -1 or 0 if none. Actually ignored by the client. 28 DisplayInfo[24] Integer[] Both only set if Item[x] is set too. 53 InventoryType[24] Integer[] Values from -1 to 26. (С этим ещё не разобрался) Пункт 2.1 SharedDefines.h Ищем: Code { RACE_HUMAN = 1, RACE_ORC = 2, RACE_DWARF = 3, RACE_NIGHTELF = 4, RACE_UNDEAD_PLAYER = 5, RACE_TAUREN = 6, RACE_GNOME = 7, RACE_TROLL = 8, //RACE_GOBLIN = 9, RACE_BLOODELF = 10, RACE_DRAENEI = 11, //RACE_FEL_ORC = 12, //RACE_NAGA = 13, //RACE_BROKEN = 14, //RACE_SKELETON = 15, //RACE_VRYKUL = 16, //RACE_TUSKARR = 17, //RACE_FOREST_TROLL = 18, //RACE_TAUNKA = 19, //RACE_NORTHREND_SKELETON = 20, //RACE_ICE_TROLL = 21 }; Мы хотим открыть Гоблинов, значит удаляем перед ней //RACE_GOBLIN = 9, два слэшика(//), и получится RACE_GOBLIN = 9. (Сразу предупрежу если у вас например после RACE_DRAENEI=11 стоит "." (Это в том случае если вы хотите добавить Наг, например, и вам нужно их открыть) замените её на "," что бы при компиляции не выдовало ошибок) Пункт 2.2 Ищем: Code #define MAX_RACES 12 (Расчитывается так, ID последней рассы без слешей + 1) (То есть если у вас последняя расса RACE_SKELETON=15, то #define MAX_RACES 12 = #define MAX_RACES 16) Пункт 2.3 Ищем: Code #define RACEMASK_ALL_PLAYABLE \ ((1<<(RACE_HUMAN-1)) |(1<<(RACE_ORC-1)) |(1<<(RACE_DWARF-1)) | \ (1<<(RACE_NIGHTELF-1))|(1<<(RACE_UNDEAD_PLAYER-1))|(1<<(RACE_TAUREN-1)) | \ (1<<(RACE_GNOME-1)) |(1<<(RACE_TROLL-1)) |(1<<(RACE_BLOODELF-1))| \ (1<<(RACE_DRAENEI-1))) Заменяем: Code #define RACEMASK_ALL_PLAYABLE \ ((1<<(RACE_HUMAN-1)) |(1<<(RACE_ORC-1)) |(1<<(RACE_DWARF-1)) | \ (1<<(RACE_NIGHTELF-1)) |(1<<(RACE_UNDEAD_PLAYER-1))|(1<<(RACE_TAUREN-1)) | \ (1<<(RACE_GNOME-1)) |(1<<(RACE_TROLL-1)) |(1<<(RACE_BLOODELF-1))| \ (1<<(RACE_DRAENEI-1)) |(1<<(RACE_GOBLIN-1))) Скачиваем wow.exe, в котором уже убрана проверка файлов интерфейса на изменения. (За файл спасибо S[er]G) (Эта версия под 3.3.5а) Interface\GlueXML\GlueStrings.lua Interface\GlueXML\CharacterCreate.lua Interface\GlueXML\CharacterCreate.xml Intarface\GlueXML\GlueP arent.lua Intarface\GlueXML\VideoOptionsPanels.lua Пункт 4.1 В GlueStrings.lua : (Вставить после RACE_CHANGE_IN_PROGRESS) Code RACE_INFO_GOBLIN = "Информация о гоблинах."; RACE_INFO_GOBLIN_FEMALE = "Информация о гоблинах."; (Вставить после ABILITY_INFO_BLOODELF1) Code ABILITY_INFO_GOBLIN1 = "Способность1"; ABILITY_INFO_GOBLIN2 = "Способность2"; ABILITY_INFO_GOBLIN3 = "Способность3"; ABILITY_INFO_GOBLIN4 = "Способность4"; Пункт 4.2 В CharacterCreate.lua : Находим: Code MAX_RACES = 10; Заменяем на: Code MAX_RACES = 11; (Вставить после : Code ["DRAENEI_MALE"] = {0.5, 0.625, 0, 0.25}, ["DRAENEI_FEMALE"] = {0.5, 0.625, 0.5, 0.75},) Code ["GOBLIN_MALE"] = {0.5, 0.625, 0, 0.25}, ["GOBLIN_FEMALE"] = {0.5, 0.625, 0, 0.25}, (Если захотите сделать под себя иконку, то ковыряйте файл: Interface\GLUES\CHARACTERCREATE\UI-CharacterCreate-Races.blp) Пункт 4.3 В CharacterCreate.xml Здесь настраиваем расположение кнопок выбора персонажа в клиенте. Пункт 4.4 В VideoOptionsPanels.lua : Заменить: Code VideoOptionsEffectsPanelQualityLabel:SetFormattedText(VIDEO_QUALITY_S, _G["VIDEO_QUALITY_LABEL" .. quality]); На: Code VideoOptionsEffectsPanelQualityLabel:SetFormattedText("VIDEO_QUALITY_S", _G["VIDEO_QUALITY_LABEL" .. quality]); Пункт 4.5 В GlueParent.lua: Настройки отображения в клиенте персонажа. (Можете покапатся я ещё в нём не разобрался) Здесь в основном будет написано про копирование спеллов со "старых" расс. Это сделано для быстрой настройки сервера, но если вы захотите настроить по особенному, то придется все делать самому. Пункт 5.1 Копия спеллов с человека война на гоблина война: Code SET @NEW_RACE = 9; -- ID of adding race. SET @NEW_CLASS = 1; -- ID of class of the new race. SET @COPY_RACE = 1; -- ID of the race where we copy datas. DELETE FROM `playercreateinfo_spell` WHERE race = @NEW_RACE AND class = @NEW_CLASS ; INSERT INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) SELECT @NEW_RACE, @NEW_CLASS, `Spell`, `Note` FROM `playercreateinfo_spell` WHERE race = @COPY_RACE AND class = @NEW_CLASS; Пункт 5.2 Копия кнопок действия с человека война: Code SET @NEW_RACE = 9; -- ID of adding race. SET @NEW_CLASS = 1; -- ID of class of the new race. SET @COPY_RACE = 1; -- ID of the race where we copy datas. DELETE FROM `playercreateinfo_action` WHERE race = @NEW_RACE AND class = @NEW_CLASS ; INSERT INTO `playercreateinfo_action` (`race`, `class`, `button`, `action`, `type`) SELECT @NEW_RACE, @NEW_CLASS, `button`, `action`, `type` FROM `playercreateinfo_action` WHERE race = @COPY_RACE AND class = @NEW_CLASS; Пункт 5.3 Копия стартовой локации с человека: Code INSERT INTO `playercreateinfo` (`race`, `class`, `map`, `zone`, `position_x`, `position_y`, `position_z`) VALUES ('9','1','0','12','-8949.95','-132.493','83.5312'); Пункт 5.4 Копия статов с человека: Code SET @NEW_RACE = 9; -- ID of adding race. SET @NEW_CLASS = 1; -- ID of class of the new race. SET @COPY_RACE = 1; -- ID of the race where we copy datas. DELETE FROM `player_levelstats` WHERE race = @NEW_RACE AND class = @NEW_CLASS ; INSERT INTO `player_levelstats` (`race`, `class`, `level`, `str`, `agi`, `sta`, `inte`, `spi`) SELECT @NEW_RACE, @NEW_CLASS, `level`, `str`, `agi`, `sta`, `inte`, `spi` FROM `player_levelstats` WHERE race = @COPY_RACE AND class = @NEW_CLASS; P.S. Весь материал был взят, дополнен и переведён с сайта Modcraft. P.P.S Я всё это делал на исходниках аспирина. С помощью руководства и патча от scourge.su и гоблины у меня работают. P.P.P.S Если вы копируете этот перевод, то ставте копирайт: Автор:Khira ,Перевод:Radds. |
| |||
| |||