MD_Shved
| Дата: Четверг, 25.08.2016, 23:21 | Сообщение # 1 |
| Клиент: Locale_inc.h Ищем: Вставляем новой строкой Код #define ENABLE_7AND8TH_SKILLS PythonNetworkStreamPhaseGame.cpp Ищем: Код bool CPythonNetworkStream::RecvSkillLevelNew() Меняем на : Код bool CPythonNetworkStream::RecvSkillLevelNew() На сервере: common/service.h Ищем #endif далее вставляем с новой строки: Код #define __7AND8TH_SKILLS__ game/src/char.h Ищем void SkillLevelPacket() и с новой строки вставляем :
Код #ifdef __7AND8TH_SKILLS__ bool SkillCanUp(DWORD dwVnum);#endif game/src/char_skill.cpp ищем const DWORD GetRandomSkillVnum(BYTE bJob) с новой строки:
Код const int SKILL_COUNT = 6;static const DWORD SkillList[JOB_MAX_NUM][SKILL_GROUP_MAX_NUM][SKILL_COUNT] ={ { {1, 2, 3, 4, 5, 6}, {16, 17, 18, 19, 20, 21} }, { {31, 32, 33, 34, 35, 36}, {46, 47, 48, 49, 50, 51} }, { {61, 62, 63, 64, 65, 66}, {76, 77, 78, 79, 80, 81} }, { {91, 92, 93, 94, 95, 96}, {106, 107, 108, 109, 110, 111} },#ifdef __WOLFMAN_CHARACTER__ { {170, 171, 172, 173, 174, 175}, {0, 0, 0, 0, 0, 0} },#endif};const DWORD GetRandomSkillVnum(BYTE bJob = JOB_MAX_NUM);const DWORD GetRandomSkillVnum(BYTE bJob){ DWORD dwSkillVnum = 0; do { DWORD tmpJob = (bJob != JOB_MAX_NUM)?MINMAX(0, bJob, JOB_MAX_NUM-1):number(0, JOB_MAX_NUM-1); DWORD tmpSkillGroup = number(0, SKILL_GROUP_MAX_NUM-1); DWORD tmpSkillCount = number(0, SKILL_COUNT-1); dwSkillVnum = SkillList[tmpJob][tmpSkillGroup][tmpSkillCount]; if (dwSkillVnum != 0 && NULL != CSkillManager::instance().Get(dwSkillVnum)) break; } while (true); return dwSkillVnum;} Ищем m_pSkillLevels[dwVnum].bLevel = MIN(40, bLev); с новой строки: Код #ifdef __7AND8TH_SKILLS__ Ищем bool CHARACTER::IsLearnableSkill(DWORD dwSkillVnum) const в конце вставляем Код #ifdef __7AND8TH_SKILLS__ Ищем Код if (m_pSkillLevels[pkSk->dwVnum].bLevel == 0) далее вставляем Код #ifdef __7AND8TH_SKILLS__ Ищем void CHARACTER::SkillLevelUp(DWORD dwVnum, BYTE bMethod) далее вставляем Код #ifdef __7AND8TH_SKILLS__ Ищем void CHARACTER::SkillLevelUp(DWORD dwVnum, BYTE bMethod) в функции с новой строки Код #ifdef __7AND8TH_SKILLS__ Ищем sys_log(0, "%s CHAIN INDEX %d DAM %d DT %d", m_pkChr->GetName(), m_pkChr->GetChainLightningIndex() - 1, iDam, dt); с новой строки Код #ifdef __7AND8TH_SKILLS__ game/src/cmd_general.cpp ищем ACMD(do_skillup) заменяем функцию
Код { char arg1[256]; one_argument(argument, arg1, sizeof(arg1)); if (!*arg1) return; DWORD vnum = 0; str_to_number(vnum, arg1); if (true == ch->CanUseSkill(vnum)) { ch->SkillLevelUp(vnum); } else { switch(vnum) { case SKILL_HORSE_WILDATTACK: case SKILL_HORSE_CHARGE: case SKILL_HORSE_ESCAPE: case SKILL_HORSE_WILDATTACK_RANGE: case SKILL_ADD_HP: case SKILL_RESIST_PENETRATE:#ifdef __7AND8TH_SKILLS__ case SKILL_ANTI_PALBANG: case SKILL_ANTI_AMSEOP: case SKILL_ANTI_SWAERYUNG: case SKILL_ANTI_YONGBI: case SKILL_ANTI_GIGONGCHAM: case SKILL_ANTI_HWAJO: case SKILL_ANTI_MARYUNG: case SKILL_ANTI_BYEURAK:#ifdef __WOLFMAN_CHARACTER__ case SKILL_ANTI_SALPOONG:#endif case SKILL_HELP_PALBANG: case SKILL_HELP_AMSEOP: case SKILL_HELP_SWAERYUNG: case SKILL_HELP_YONGBI: case SKILL_HELP_GIGONGCHAM: case SKILL_HELP_HWAJO: case SKILL_HELP_MARYUNG: case SKILL_HELP_BYEURAK:#ifdef __WOLFMAN_CHARACTER__ case SKILL_HELP_SALPOONG:#endif#endif ch->SkillLevelUp(vnum); break; } }} game/src/item_manager.cpp ищем if (vnum == 50300 || vnum == ITEM_SKILLFORGET_VNUM) с новой строки Код #ifdef __7AND8TH_SKILLS__ game/src/skill.h ищем Код #ifdef __WOLFMAN_CHARACTER__ если не нашли пробуем GUILD_SKILL_COUNT = GUILD_SKILL_END - GUILD_SKILL_START + 1, далее с новой строки Код #ifdef __7AND8TH_SKILLS__ Возвращаемся в клиент и в Item_list добавляем
Код 50323 ETC icon/item/50324.tga50324 ETC icon/item/50323.tga50514 ETC icon/item/50514.tga50515 ETC icon/item/50515.tga50516 ETC icon/item/50516.tga50517 ETC icon/item/50516.tga50518 ETC icon/item/50516.tga50519 ETC icon/item/50516.tga50520 ETC icon/item/50516.tga50521 ETC icon/item/50516.tga50522 ETC icon/item/50516.tga50523 ETC icon/item/50516.tga50524 ETC icon/item/50516.tga50525 ETC icon/item/50526.tga50560 ETC icon/item/50560.tga50561 ETC icon/item/50560.tga50562 ETC icon/item/50560.tga50563 ETC icon/item/50560.tga50564 ETC icon/item/50560.tga50565 ETC icon/item/50560.tga50566 ETC icon/item/50560.tga50567 ETC icon/item/50560.tga50568 ETC icon/item/50560.tga71000 ETC icon/item/71000.tga в skilltable добавить
Код 221 팔방풍우파해 6 1 1 0 NONE 24*k NONE 0 0 NORMAL 1 1 1000 0222 암습파해 6 1 1 0 NONE 24*k NONE 0 0 NORMAL 1 1 1000 0223 쇄령지파해 6 1 1 0 NONE 24*k NONE 0 0 NORMAL 1 1 1000 0224 용파산파해 6 1 1 0 NONE 24*k NONE 0 0 NORMAL 1 1 1000 0225 기공참파해 6 1 1 0 NONE 24*k NONE 0 0 NORMAL 1 1 1000 0226 화조파파해 6 1 1 0 NONE 24*k NONE 0 0 NORMAL 1 1 1000 0227 마령파해 6 1 1 0 NONE 24*k NONE 0 0 NORMAL 1 1 1000 0228 벼락파해 6 1 1 0 NONE 24*k NONE 0 0 NORMAL 1 1 1000 0229 살풍파해 6 1 1 0 NONE 24*k NONE 0 0 NORMAL 1 1 1000 0236 팔방풍우강화 6 1 1 0 NONE 16*k NONE 0 0 NORMAL 1 1 1000 0237 암습강화 6 1 1 0 NONE 16*k NONE 0 0 NORMAL 1 1 1000 0238 쇄령지강화 6 1 1 0 NONE 16*k NONE 0 0 NORMAL 1 1 1000 0239 용파산강화 6 1 1 0 NONE 16*k NONE 0 0 NORMAL 1 1 1000 0240 기공참강화 6 1 1 0 NONE 16*k NONE 0 0 NORMAL 1 1 1000 0241 화조파강화 6 1 1 0 NONE 16*k NONE 0 0 NORMAL 1 1 1000 0242 마령강화 6 1 1 0 NONE 16*k NONE 0 0 NORMAL 1 1 1000 0243 벼락강화 6 1 1 0 NONE 16*k NONE 0 0 NORMAL 1 1 1000 0244 살풍강화 6 1 1 0 NONE 16*k NONE 0 0 NORMAL 1 1 1000 0 необходимые итемы добавляем в item_proto по idам из item_list.
Далее идём в навикат и в skill_proto добавляем Код INSERT INTO `skill_proto` VALUES ('221', 'Sword Spin Ward', '6', '1', '1', '0', 'NONE', '24*k', '', '', '', '', '', '', null, 'YMIR', 'NONE', '', '', 'YMIR', 'NONE', '', '', '', '0', '0', 'NORMAL', '0', '1', '1000', '0'); Идём на сервер в локалку special_item_group добавляем
Код Group WardBookChest{ Vnum 50323 1 50516 1 1 2 50517 1 1 3 50518 1 1 4 50519 1 1 5 50520 1 1 6 50521 1 1 7 50522 1 1 8 50523 1 1 9 50524 1 1} Group BoostBookChest{ Vnum 50324 1 50560 1 1 2 50561 1 1 3 50562 1 1 4 50563 1 1 5 50564 1 1 6 50565 1 1 7 50566 1 1 8 50567 1 1 9 50568 1 1}
скачиваем https://mega.nz/#F!XkRQzSZb!jcvSl49uCI3sTOtLyTTtUA добавляем в клиент.
То, что сделано одним человеком, всегда может быть сломано другим человеком. Вопрос лишь в том какие цели преследует человек и можно ли будет считать его человеком потом...
 
|
|
| |