Назад

Гайд по добавлению новой профы

Автор: Eleidan: Дата: 10.25.2009

[Гайд] Добавление Кастом Профы

Сделан для: Ratalaika Переведен Eleidan (Sparrow)

В этом гайде вам расскажу как добавлять собственную профессию.

1є Идем в src\common
И открываем mmo.h

Ищем:

JOB_SUMMER,
JOB_MAX_BASIC,



Заменяем на:

JOB_SUMMER,
JOB_BURGLAR= 35,
JOB_MAX_BASIC,



Сохраните этот файл, и идем в src\map
Открываем atcommand.c

Ищем:
{ "ninja",	25 },
{ "high novice", 4001 },



Заменяем на:

{ "ninja",	25 },
{ "burglar", 35 },
{ "high novice", 4001 },


Сохранаем файл, и открываем этот: map.h

Ищем:
MAPID_NINJA,
MAPID_XMAS,
MAPID_SUMMER,



Заменяем на:

MAPID_NINJA,
MAPID_XMAS,
MAPID_SUMMER,
MAPID_BURGLAR = 0x0E,


Сохраняем этот файл, и открываем: itemdb.c

Ищем:
if (jobmask & 1<
		bclass[0] |= 1<
 }



Заменяем на:

if (jobmask & 1<
		bclass[0] |= 1<
	//items job
if (jobmask & 1<<35)
bclass[0] |= 1< }



Сохраняем, открываем: pc.c

Ищем:

case JOB_SUMMER:
class_ = MAPID_SUMMER;
break;
default:
return -1;
}
return class_;
}



Заменяем на:

case JOB_SUMMER:
class_ = MAPID_SUMMER;
break;
case JOB_BURGLAR:
class_ |= MAPID_BURGLAR;
break;
default:
return -1;
}
return class_;
}



Ищем:

case MAPID_SUMMER:		  return JOB_SUMMER;



Заменяем на:

case MAPID_BURGLAR:			return JOB_BURGLAR;



И наконец то последнее здесь. Ищем:

case JOB_SUMMER:
return msg_txt(621);



И заменяем на:

case JOB_BURGLAR:
return msg_txt(700);




С src закончили, компилим.


2є Теперь нам нужна папка db

Открываем файл: const.txt

Ищем:

 Job_Gunslinger	24
Job_Ninja 25
Job_Xmas 26



Заменяем на:


 Job_Gunslinger	24
Job_Ninja 25
Job_Xmas 26
Job_Burglar 35



В этом же файле ищем:

 EAJ_TAEKWON	0x7
EAJ_GUNSLINGER 0x9
EAJ_NINJA 0x0A



И заменяем на:


 EAJ_TAEKWON	0x7
EAJ_GUNSLINGER 0x9
EAJ_NINJA 0x0A
EAJ_BURGLAR 0x0E



Сохранаем этот файл. Открываем exp.txt

Ищем

Ваш максимальный уровень,0:1:2:3:4:5:6:7:8:9:10:11:12...



Заменяем на:


 Ваш максимальный уровень,0:1:2:3:4:5:6:7:8:9:10:11:12:35...



В этом же файле ищем:


 Ваш максимальный уровень,1:2:3:4:5:6:26:4046,1



Заменяем на:


 Ваш максимальный уровень,1:2:3:4:5:6:26:4046:35,1



Сохраняем. Открываем файл: job_db1.txt
И в конце всего добавляем свою строчку:

//Burglar
35, 28000,70 ,500 ,200 ,400 ,500 ,550 ,600 ,650 ,700 ,700 ,750 ,650 ,700 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000


Esta linea es la del swordman puedes copiar otra cualquiera cambiando el primer umero que es el jobid o puedes hacer la tuya propia (тупость, не смог правильно перевести(Эта линия - линия swordman ты можешь копировать любую другую меняя первый umero, который является jobid, или ты можешь делать твоя собственная))

Сохраняем. Открываем: job_db2.txt
И в конце всего добавляем свою строчку:

 //Burglar
35,0,1,0,0,0,3,0,0,0,5,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,2,0,0,1,0,0,5,0,3,0
1,0,3,0,6,0,2,1,0,1,1


Эта линия - линия мечника. Ты можешь копировать любую другую, меняя первое число, которое является jobid, или ты можешь сделать свою собственную.

Сейчас нам надо прописать скиллы. Для этого открываем файл skill_tree.txt
В конце всего мы вставляем:

//Burglar
//Необходимо
35,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
35,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
//Ты можешь выбирать те скиллы, которые хочешь
35,2,10,0,0,0,0,0,0,0,0,0,0 //SM_SWORD#Sword Mastery#
35,4,10,0,0,0,0,0,0,0,0,0,0 //SM_RECOVERY#Increase HP Recovery#
35,5,10,0,0,0,0,0,0,0,0,0,0 //SM_BASH#Bash#
35,6,10,0,0,0,0,0,0,0,0,0,0 //SM_PROVOKE#Provoke#
35,7,10,5,5,0,0,0,0,0,0,0,0 //SM_MAGNUM#Magnum Break#
35,8,10,6,5,0,0,0,0,0,0,0,0 //SM_ENDURE#Endure#
35,26,2,24,1,0,0,0,0,0,0,0,0 //AL_TELEPORT#Teleport#
35,27,4,26,2,0,0,0,0,0,0,0,0 //AL_WARP#Warp Portal#
35,28,10,0,0,0,0,0,0,0,0,0,0 //AL_HEAL#Heal#
35,33,10,22,3,0,0,0,0,0,0,0,0 //AL_ANGELUS#Angelus#
35,34,10,22,5,0,0,0,0,0,0,0,0 //AL_BLESSING#Blessing#
35,35,1,28,2,0,0,0,0,0,0,0,0 //AL_CURE#Cure#
//Необходимые
35,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
35,681,1,0,0,0,0,0,0,0,0,0,0 //ALL_INCCARRY#Enlarge Weight Limit R#



И это скиллы, которые будут у этой профессии. Ты можешь добавлять любые скиллы профессии, копируя строчку скилла, и добавляя ее с заменой id. Пример:

//Нам хочется взять скилл Дабл Атаки. Копируем
12,48,10,0,0,0,0,0,0,0,0,0,0 //TF_DOUBLE#Double Attack#



Теперь вставляем его и изменяем id 12 на 35.

 35,48,10,0,0,0,0,0,0,0,0,0,0 //TF_DOUBLE#Double Attack#



Мы изменили первое число, чтобы подменить id скилла для нашей профессии. Но даже если ты разрабатываешь твой собственный набор умений, Ты ОБЯЗАТЕЛЬНО ДОЛЖЕН добавить ему эти строчки:

 35,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
35,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
35,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
35,681,1,0,0,0,0,0,0,0,0,0,0 //ALL_INCCARRY#Enlarge Weight Limit R#



Если ты забудешь про эти обязательные строчки, то могут возникнуть ошибки.

На этом мы заканчиваем с папкой db.

Теперь мы открываем папку с эмулятором. Заходим в папку conf, и открываем файл msg_athena.conf

Ищем:

 620: Ninja
621: Summer



Заменяем на:

 620: Ninja
621: Summer
700: Burglar



И опять же мы заканчиваем с этим разделом..


Теперь клиентская часть.

Сначала открываем class_tab.txt

Ищем:

 !52
°Л»з
ё¶№э»з



Заменяем на:

 !35
Burglar
!52
°Л»з
ё¶№э»з



Открываем: imf_tab.txt

Ищем:

 !52
°Л»з
ё¶№э»з



Заменяем:

 !35
јєБчАЪ
!52
°Л»з
ё¶№э»з



Открываем: reality_dir_tab.txt

Ищем:

 !52
°Л»з\\°Л»з
ё¶№э»з\\ё¶№э»з



Заменяем:

 !35
јєБчАЪ\\јєБчАЪ
!52
°Л»з\\°Л»з
ё¶№э»з\\ё¶№э»з



Открываем: reality_tab.txt

Ищем:

 !52
°Л»з
ё¶№э»з



Заменяем:

 !35
јєБчАЪ
!52
°Л»з
ё¶№э»з



Открываем: monstrosity_tab.txt

Ищем:

 !47
1_M_01
1_M_02
1_M_03



Заменяем:

 !35
Burglar
!47
1_M_01
1_M_02
1_M_03
1_M_04



Сейчас нам нужно закинуть спрайты в grf архив или еще куда нибудь в папки:
Мужской спрайт:
sprite\АО°ЈБ•\ёцЕл\іІ

Женский спрайт:
sprite\АО°ЈБ•\ёцЕл\ї©

Нужные файлы:
Мужской спрайт:

 Burglar_іІ.spr
Burglar_іІ.act



Женский спрайт:

 Burglar_ї©.spr
Burglar_ї©.act


[size=4]Вроде все)[/size]

Автор: Rectedo: Дата: 03.22.2010

А вот тут ошибочка не вышла?


Ищем:


case MAPID_SUMMER: return JOB_SUMMER;

Заменяем на:


case MAPID_BURGLAR: return JOB_BURGLAR;



Помоему надо заменить на:


case MAPID_SUMMER: return JOB_SUMMER;
case MAPID_BURGLAR: return JOB_BURGLAR;


Или я что то путаю?