12-02-2008, 04:36 PM
Создание нового класса / создание новой профессии
в данном примере делается новый класс 1я профа по аналогии с Артизаном
минимальные требования:
умение скачивать исходники сервака и компелить его (мануалы имеются в изобилии, всяческие проблемы тоже рассмотрены, на новые дадут ответы)
уметь настраивать сервак под себя и обладать нужным софтом (тоже всё есть на форуме)
и так берём исходники сервака (у меня это L2jFree 4843)
I. нам понадобятся следующие *.java файлы лежащие по адресу:
1) C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\datatables\CharTemplateTable.java
2) C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\model\baseClassId.java
3) C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\model\PlayerClass.java
II. а также *.sql:
1) C:\server\sql\char_templates.sql
2) C:\server\sql\lvlupgain.sql
3) C:\server\sql\class_list.sql
I. изменение исходников:
II. добавляем строки в *.sql:
взял батник C:\server\tool\database_installer.bat копирнул, изменил:
вот что нам вылазит:
на втором скрине вместо профы написанно "Граф. курсор" это уже клиентская часть открываем sysstring-e.dat находим "Граф. курсор" его id 305
так что хочется услышать мнения как можно изменить id
p.s.
надеюсь исправил все огрехи которые допустил пока писал.. =)
в данном примере делается новый класс 1я профа по аналогии с Артизаном
минимальные требования:
умение скачивать исходники сервака и компелить его (мануалы имеются в изобилии, всяческие проблемы тоже рассмотрены, на новые дадут ответы)
уметь настраивать сервак под себя и обладать нужным софтом (тоже всё есть на форуме)
и так берём исходники сервака (у меня это L2jFree 4843)
I. нам понадобятся следующие *.java файлы лежащие по адресу:
1) C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\datatables\CharTemplateTable.java
2) C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\model\baseClassId.java
3) C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\model\PlayerClass.java
II. а также *.sql:
1) C:\server\sql\char_templates.sql
2) C:\server\sql\lvlupgain.sql
3) C:\server\sql\class_list.sql
I. изменение исходников:
Цитата:1) CharTemplateTable.java находим строку:Компелим сервак, собираем, запихиваем всё скажем в C:\server
Цитата:"Dwarven Artisan",
"Warsmith",
"dummyEntry1", //меняем скажем на "New Class",
"dummyEntry2",
2) baseClassId.java находим строку:
Цитата:artisan (0x38, false, Race.Dwarf, dwarvenFighter),
warsmith (0x39, false, Race.Dwarf, artisan),
dummyEntry1 (58, false, null, null), //меняем скажем на newClass (0x3a, false, Race.Dwarf, dwarvenFighter),*
dummyEntry2 (59, false, null, null),
*тут нужно пояснить думаю:
0x3a = id проффы 58 в шестнадцатеричной системе это 3a (можно переводить в калькуляторе винды)
false = физик (true, = мистик)
Race.Dwarf = ссылается на расу указанную в C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\model\base\Race.java, чувствительно к регистру букв.
dwarvenFighter = предшествующая профа (видимо = )
3) PlayerClass.java находим строку:
DwarvenArtisan(Dwarf, Fighter, Second),
Цитата:Warsmith(Dwarf, Fighter, Third),**поясню:
dummyEntry1(null, null, null), //меняем скажем на NewClass(Dwarf, Fighter, Second),**
dummyEntry2(null, null, null),
Dwarf = опять расса
Fighter = тип класса (есть ещё два Mystic, Priest) C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\model\base\ClassType.java
Second = какая профа по счёту (бывает 4е вида: базовая First, первая Second, вторая Third, третья Fourth) они описанны в файле C:\L2jFree\l2jfree-core\src\main\java\com\l2jfree\gameserver\model\base\ClassLevel.java
II. добавляем строки в *.sql:
Цитата:1) char_templates.sqlобновляем таблици в вшей вабзе, лично я делаю это так:
каждый столбец описан в шапке и в принципе там всё понятно называетсяКод:(56, 'Artisan', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0),
(57, 'Warsmith', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0),
[color=Orange](58, 'New Class', 4, 39, 45, 29, 20, 10, 27, 4, 80, 6, 41, 300, 333, 33, 43, 33, 115, 83000, 108512, -174026, -400, 1, 1.09, 1.487196, 9.0, 18.0, 1.09, 1.487196, 5.0, 19.0),[/color]
(88, 'Duelist', 0, 40, 43, 30, 21, 11, 25, 4, 80, 6, 41, 300, 333, 33, 44, 33, 115, 81900, -71338, 258271, -3104, 0, 1.10, 1.188000, 9.0, 23.0, 1.10, 1.188000, 8.0, 23.5),
2) lvlupgain.sql
Цитата:INSERT INTO `lvlupgain` VALUES ('56', '346.0', '32.90', '0.37', '276.8', '26.30', '0.22', '144.0', '9.80', '0.14', '20');каждый столбец описан в шапке и в принципе там всё понятно называется
INSERT INTO `lvlupgain` VALUES ('57', '1063.0', '54.50', '0.37', '850.4', '43.58', '0.22', '359.1', '19.40', '0.14', '40');
INSERT INTO `lvlupgain` VALUES ('58', '346.0', '32.90', '0.37', '276.8', '26.30', '0.22', '144.0', '9.80', '0.14', '20');
INSERT INTO `lvlupgain` VALUES ('88', '3061.8', '63.08', '0.37', '2755.6', '56.77', '0.22', '1155.6', '24.90', '0.14', '76');
3) class_list.sql
Цитата:('D_Artisan', 56, 53),тут всё просто, текущая профа и предыдущая
('D_Warsmith', 57, 56),
('D_NewClass', 58, 53),
('D_Maestro', 118, 57),
взял батник C:\server\tool\database_installer.bat копирнул, изменил:
Код:
@echo off
REM ############################################
REM ## You can change here your own DB params ##
REM ############################################
REM MYSQL BIN PATH
set mysqlBinPath=C:\Program Files\MySQL\MySQL Server 6.0\bin
REM LOGINSERVER
set lsuser=
set lspass=
set lsdb=
set lshost=localhost
REM GAMESERVER
set gsuser=
set gspass=
set gsdb=
set gshost=localhost
REM ############################################
set mysqldumpPath="%mysqlBinPath%\mysqldump"
set mysqlPath="%mysqlBinPath%\mysql"
echo install..
echo lvlupgain.sql
%mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/lvlupgain.sql
echo char_templates.sql
%mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/char_templates.sql
echo class_list.sql
%mysqlPath% -h %gshost% -u %gsuser% --password=%gspass% -D %gsdb% < ../sql/class_list.sql
:end
echo.
echo Script complete.
pause
на втором скрине вместо профы написанно "Граф. курсор" это уже клиентская часть открываем sysstring-e.dat находим "Граф. курсор" его id 305
Цитата:303 a,Artisan\0можно конечно изменить "Граф. курсор" на "New Class" но это изменение будет видно скорее всего не тока в профе чара, но и в интерфейсе.. так что интересно как изменить с id 305 на id 2000 (там пустые значения)
304 a,Warsmith\0
305 u,Граф. курсор\0
306 u,Очень быстро\0
так что хочется услышать мнения как можно изменить id
p.s.
надеюсь исправил все огрехи которые допустил пока писал.. =)