Opublikowano 4 Lutego4 Lut Nie moge sie zalogowac, po tym jak zmienilem haslo z test na inne, zrobilem znowu takie samo i pisze ze niepoprawna ;/ ktos cos?
Opublikowano 4 Lutego4 Lut Rozwiązanie hasło musi być w formacie. dla "test" będzie to: *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 https://metin2.dev/tools/password/
Opublikowano 4 Lutego4 Lut Autor 1 minutę temu, ExoCarossa napisał(a): hasło musi być w formacie. dla "test" będzie to: *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 https://metin2.dev/tools/password/ Dziekuje ci bardzo!!!
Opublikowano 4 Lutego4 Lut Autor 2 minuty temu, ExoCarossa napisał(a): hasło musi być w formacie. dla "test" będzie to: *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 https://metin2.dev/tools/password/ a wiesz czemu nie moge usuanc postaci kodem 1234567?
Opublikowano 4 Lutego4 Lut 5 minut temu, eksyyy napisał(a): a wiesz czemu nie moge usuanc postaci kodem 1234567? tabelka social_id musisz wypełnić 1234567
Opublikowano 4 Lutego4 Lut Autor Teraz, ExoCarossa napisał(a): tabelka social_id musisz wypełnić 1234567 Superancko, a powiedz mi nie majac registera na serwerze narazie, moge dodac jeszce konto jakos?
Opublikowano 4 Lutego4 Lut 6 minut temu, eksyyy napisał(a): Superancko, a powiedz mi nie majac registera na serwerze narazie, moge dodac jeszce konto jakos? Co? Średnio zrozumiałem, jeżeli chcesz nowe konto to skopiuj sobie swoją starą tabelke i zmien ID, LOGIN i ew. hasło.
Opublikowano 4 Lutego4 Lut Autor 4 minuty temu, ExoCarossa napisał(a): Co? Średnio zrozumiałem, jeżeli chcesz nowe konto to skopiuj sobie swoją starą tabelke i zmien ID, LOGIN i ew. hasło. nie mam jeszcze rerejstracji na serwerze i jak stworzyc nowe konto przez navicat, sory ja sie dopiero ucze 😛 nie potrafie tego skopowiac 😛
Opublikowano 5 Lutego5 Lut 11 minut temu, eksyyy napisał(a): nie mam jeszcze rerejstracji na serwerze i jak stworzyc nowe konto przez navicat, sory ja sie dopiero ucze 😛 nie potrafie tego skopowiac 😛 Nie ma problemu, naciśnij LPM na tą strzałkę to Ci zaznaczy cała linijke z wszystkimi rubrykami, ctrl C, na dole masz + i ponownie zaznaczasz strzałkę i wklejasz czy to ctrl V czy PPM
Opublikowano 5 Lutego5 Lut Autor 14 minut temu, ExoCarossa napisał(a): Nie ma problemu, naciśnij LPM na tą strzałkę to Ci zaznaczy cała linijke z wszystkimi rubrykami, ctrl C, na dole masz + i ponownie zaznaczasz strzałkę i wklejasz czy to ctrl V czy PPM DZIEKUJE!!!!
Opublikowano 5 Lutego5 Lut Autor Jak juz rozmawiamy to wkleje ci linijke. Spoiler #include "stdafx.h" #include "char.h" #include "../../common/CommonDefines.h" #include "../../common/length.h" TJobInitialPoints JobInitialPoints[JOB_MAX_NUM] = /* int st, ht, dx, iq; int max_hp, max_sp; int hp_per_ht, sp_per_iq; int hp_per_lv_begin, hp_per_lv_end; int sp_per_lv_begin, sp_per_lv_end; int max_stamina; int stamina_per_con; int stamina_per_lv_begin, stamina_per_lv_end; */ { { 6, 4, 3, 3, 600, 200, 40, 20, 36, 44, 18, 22, 800, 5, 1, 3 }, // JOB_WARRIOR 16 { 4, 3, 6, 3, 650, 200, 40, 20, 36, 44, 18, 22, 800, 5, 1, 3 }, // JOB_ASSASSIN 16 { 5, 3, 3, 5, 650, 200, 40, 20, 36, 44, 18, 22, 800, 5, 1, 3 }, // JOB_SURA 16 { 3, 4, 3, 6, 700, 200, 40, 20, 36, 44, 18, 22, 800, 5, 1, 3 }, // JOB_SHAMANa 16 #ifdef ENABLE_WOLFMAN_CHARACTER { 2, 6, 6, 2, 600, 200, 40, 20, 36, 44, 18, 22, 800, 5, 1, 3 }, #endif }; const TMobRankStat MobRankStats[MOB_RANK_MAX_NUM] = /* { int iGoldPercent; } */ { { 20, }, // MOB_RANK_PAWN, { 20, }, // MOB_RANK_S_PAWN, { 25, }, // MOB_RANK_KNIGHT, { 30, }, // MOB_RANK_S_KNIGHT, { 50, }, // MOB_RANK_BOSS, { 100, } // MOB_RANK_KING, }; TBattleTypeStat BattleTypeStats[BATTLE_TYPE_MAX_NUM] = /* int AttGradeBias; int DefGradeBias; int MagicAttGradeBias; int MagicDefGradeBias; */ { { 0, 0, 0, -10 }, // BATTLE_TYPE_MELEE, { 10, -20, -10, -15 }, // BATTLE_TYPE_RANGE, { -5, -5, 10, 10 }, // BATTLE_TYPE_MAGIC, { 0, 0, 0, 0 }, // BATTLE_TYPE_SPECIAL, { 10, -10, 0, -15 }, // BATTLE_TYPE_POWER, { -10, 10, -10, 0 }, // BATTLE_TYPE_TANKER, { 20, -20, 0, -10 }, // BATTLE_TYPE_SUPER_POWER, { -20, 20, -10, 0 }, // BATTLE_TYPE_SUPER_TANKER, }; const DWORD * exp_table = NULL; const DWORD exp_table_common[PLAYER_MAX_LEVEL_CONST + 1] = { 0, // 0 300, 800, 1500, 2500, 4300, 7200, 11000, 17000, 24000, 33000, // 10 43000, 58000, 76000, 100000, 130000, 169000, 219000, 283000, 365000, 472000, // 20 610000, 705000, 813000, 937000, 1077000, 1237000, 1418000, 1624000, 1857000, 2122000, // 30 2421000, 2761000, 3145000, 3580000, 4073000, 4632000, 5194000, 5717000, 6264000, 6837000, // 40 7600000, 8274000, 8990000, 9753000, 10560000, 11410000, 12320000, 13270000, 14280000, 15340000, // 50 16870000, 18960000, 19980000, 21420000, 22930000, 24530000, 26200000, 27960000, 29800000, 32780000, // 60 36060000, 39670000, 43640000, 48000000, 52800000, 58080000, 63890000, 70280000, 77310000, 85040000, // 70 93540000, 102900000, 113200000, 124500000, 137000000, 150700000, 165700000, 236990000, 260650000, 286780000, // 80 315380000, 346970000, 381680000, 419770000, 461760000, 508040000, 558740000, 614640000, 676130000, 743730000, // 90 1041222000, 1145344200, 1259878620, 1385866482, 1524453130, 1676898443, 1844588288, 2029047116, 2050000000, 2150000000u, // 100 2210000000u, 2250000000u, 2280000000u, 2310000000u, 2330000000u, // 105 2350000000u, 2370000000u, 2390000000u, 2400000000u, 2410000000u, // 110 2420000000u, 2430000000u, 2440000000u, 2450000000u, 2460000000u, // 115 2470000000u, 2480000000u, 2490000000u, 2490000000u, 2500000000u, // 120 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 125 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 130 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 135 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 140 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 145 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 150 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 155 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 160 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 165 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 170 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 175 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 180 }; const int * aiPercentByDeltaLev = NULL; const int * aiPercentByDeltaLevForBoss = NULL; const int aiPercentByDeltaLevForBoss_euckr[MAX_EXP_DELTA_OF_LEV] = { 1, // -15 0 3, // -14 1 5, // -13 2 7, // -12 3 15, // -11 4 30, // -10 5 60, // -9 6 90, // -8 7 91, // -7 8 92, // -6 9 93, // -5 10 94, // -4 11 95, // -3 12 97, // -2 13 99, // -1 14 100, // 0 15 105, // 1 16 110, // 2 17 115, // 3 18 120, // 4 19 125, // 5 20 130, // 6 21 135, // 7 22 140, // 8 23 145, // 9 24 150, // 10 25 155, // 11 26 160, // 12 27 165, // 13 28 170, // 14 29 180 // 15 30 }; const int aiPercentByDeltaLev_euckr[MAX_EXP_DELTA_OF_LEV] = { 1, // -15 0 5, // -14 1 10, // -13 2 20, // -12 3 30, // -11 4 50, // -10 5 70, // -9 6 80, // -8 7 85, // -7 8 90, // -6 9 92, // -5 10 94, // -4 11 96, // -3 12 98, // -2 13 100, // -1 14 100, // 0 15 105, // 1 16 110, // 2 17 115, // 3 18 120, // 4 19 125, // 5 20 130, // 6 21 135, // 7 22 140, // 8 23 145, // 9 24 150, // 10 25 155, // 11 26 160, // 12 27 165, // 13 28 170, // 14 29 180, // 15 30 }; const DWORD party_exp_distribute_table[PLAYER_EXP_TABLE_MAX + 1] = { 0, 10, 10, 10, 10, 15, 15, 20, 25, 30, 40, // 1 - 10 50, 60, 80, 100, 120, 140, 160, 184, 210, 240, // 11 - 20 270, 300, 330, 360, 390, 420, 450, 480, 510, 550, // 21 - 30 600, 640, 700, 760, 820, 880, 940, 1000, 1100, 1180, // 31 - 40 1260, 1320, 1380, 1440, 1500, 1560, 1620, 1680, 1740, 1800, // 41 - 50 1860, 1920, 2000, 2100, 2200, 2300, 2450, 2600, 2750, 2900, // 51 - 60 3050, 3200, 3350, 3500, 3650, 3800, 3950, 4100, 4250, 4400, // 61 - 70 4600, 4800, 5000, 5200, 5400, 5600, 5800, 6000, 6200, 6400, // 71 - 80 6600, 6900, 7100, 7300, 7600, 7800, 8000, 8300, 8500, 8800, // 81 - 90 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000, // 91 - 100 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, // 101 - 110 12000, 12000, 12000, 12000, 12000, 12000, 12000, 12000, 12000, 12000, // 111 - 120 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 130 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 140 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 150 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 160 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 170 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 180 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 190 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 200 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 210 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 220 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 230 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 240 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 250 }; Coord aArroundCoords[ARROUND_COORD_MAX_NUM] = { { 0, 0 }, { 0, 50 }, { 35, 35 }, { 50, -0 }, { 35, -35 }, { 0, -50 }, { -35, -35 }, { -50, 0 }, { -35, 35 }, { 0, 100 }, { 71, 71 }, { 100, -0 }, { 71, -71 }, { 0, -100 }, { -71, -71 }, { -100, 0 }, { -71, 71 }, { 0, 150 }, { 106, 106 }, { 150, -0 }, { 106, -106 }, { 0, -150 }, { -106, -106 }, { -150, 0 }, { -106, 106 }, { 0, 200 }, { 141, 141 }, { 200, -0 }, { 141, -141 }, { 0, -200 }, { -141, -141 }, { -200, 0 }, { -141, 141 }, { 0, 250 }, { 177, 177 }, { 250, -0 }, { 177, -177 }, { 0, -250 }, { -177, -177 }, { -250, 0 }, { -177, 177 }, { 0, 300 }, { 212, 212 }, { 300, -0 }, { 212, -212 }, { 0, -300 }, { -212, -212 }, { -300, 0 }, { -212, 212 }, { 0, 350 }, { 247, 247 }, { 350, -0 }, { 247, -247 }, { 0, -350 }, { -247, -247 }, { -350, 0 }, { -247, 247 }, { 0, 400 }, { 283, 283 }, { 400, -0 }, { 283, -283 }, { 0, -400 }, { -283, -283 }, { -400, 0 }, { -283, 283 }, { 0, 450 }, { 318, 318 }, { 450, -0 }, { 318, -318 }, { 0, -450 }, { -318, -318 }, { -450, 0 }, { -318, 318 }, { 0, 500 }, { 354, 354 }, { 500, -0 }, { 354, -354 }, { 0, -500 }, { -354, -354 }, { -500, 0 }, { -354, 354 }, { 0, 550 }, { 389, 389 }, { 550, -0 }, { 389, -389 }, { 0, -550 }, { -389, -389 }, { -550, 0 }, { -389, 389 }, { 0, 600 }, { 424, 424 }, { 600, -0 }, { 424, -424 }, { 0, -600 }, { -424, -424 }, { -600, 0 }, { -424, 424 }, { 0, 650 }, { 460, 460 }, { 650, -0 }, { 460, -460 }, { 0, -650 }, { -460, -460 }, { -650, 0 }, { -460, 460 }, { 0, 700 }, { 495, 495 }, { 700, -0 }, { 495, -495 }, { 0, -700 }, { -495, -495 }, { -700, 0 }, { -495, 495 }, { 0, 750 }, { 530, 530 }, { 750, -0 }, { 530, -530 }, { 0, -750 }, { -530, -530 }, { -750, 0 }, { -530, 530 }, { 0, 800 }, { 566, 566 }, { 800, -0 }, { 566, -566 }, { 0, -800 }, { -566, -566 }, { -800, 0 }, { -566, 566 }, { 0, 850 }, { 601, 601 }, { 850, -0 }, { 601, -601 }, { 0, -850 }, { -601, -601 }, { -850, 0 }, { -601, 601 }, { 0, 900 }, { 636, 636 }, { 900, -0 }, { 636, -636 }, { 0, -900 }, { -636, -636 }, { -900, 0 }, { -636, 636 }, { 0, 950 }, { 672, 672 }, { 950, -0 }, { 672, -672 }, { 0, -950 }, { -672, -672 }, { -950, 0 }, { -672, 672 }, { 0, 1000 }, { 707, 707 }, { 1000, -0 }, { 707, -707 }, { 0, -1000 }, { -707, -707 }, { -1000, 0 }, { -707, 707 }, }; const DWORD guild_exp_table[GUILD_MAX_LEVEL+1] = { 0, 15000UL, 45000UL, 90000UL, 160000UL, 235000UL, 325000UL, 430000UL, 550000UL, 685000UL, 835000UL, 1000000UL, 1500000UL, 2100000UL, 2800000UL, 3600000UL, 4500000UL, 6500000UL, 8000000UL, 10000000UL, 42000000UL }; const DWORD guild_exp_table2[GUILD_MAX_LEVEL+1] = { 0, 6000UL, 18000UL, 36000UL, 64000UL, 94000UL, 130000UL, 172000UL, 220000UL, 274000UL, 334000UL, 400000UL, 600000UL, 840000UL, 1120000UL, 1440000UL, 1800000UL, 2600000UL, 3200000UL, 4000000UL, 16800000UL }; const int aiMobEnchantApplyIdx[MOB_ENCHANTS_MAX_NUM] = { APPLY_CURSE_PCT, APPLY_SLOW_PCT, APPLY_POISON_PCT, APPLY_STUN_PCT, APPLY_CRITICAL_PCT, APPLY_PENETRATE_PCT, #if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_BLEEDING_AS_POISON) APPLY_BLEEDING_PCT, #endif }; const int aiMobResistsApplyIdx[MOB_RESISTS_MAX_NUM] = { APPLY_RESIST_SWORD, APPLY_RESIST_TWOHAND, APPLY_RESIST_DAGGER, APPLY_RESIST_BELL, APPLY_RESIST_FAN, APPLY_RESIST_BOW, APPLY_RESIST_FIRE, APPLY_RESIST_ELEC, APPLY_RESIST_MAGIC, APPLY_RESIST_WIND, APPLY_POISON_REDUCE, #if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_CLAW_AS_DAGGER) APPLY_RESIST_CLAW, #endif #if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_BLEEDING_AS_POISON) APPLY_BLEEDING_REDUCE, #endif }; const int aiSocketPercentByQty[5][4] = { { 0, 0, 0, 0 }, { 3, 0, 0, 0 }, { 10, 1, 0, 0 }, { 15, 10, 1, 0 }, { 20, 15, 10, 1 } }; const int aiWeaponSocketQty[WEAPON_NUM_TYPES] = { 3, // WEAPON_SWORD, 3, // WEAPON_DAGGER, 3, // WEAPON_BOW, 3, // WEAPON_TWO_HANDED, 3, // WEAPON_BELL, 3, // WEAPON_FAN, 0, // WEAPON_ARROW, 0, // WEAPON_MOUNT_SPEAR #ifdef ENABLE_WOLFMAN_CHARACTER 3, // WEAPON_CLAW #endif #ifdef ENABLE_QUIVER_SYSTEM 0, // WEAPON_QUIVER #endif }; const int aiArmorSocketQty[ARMOR_NUM_TYPES] = { 3, // ARMOR_BODY, 1, // ARMOR_HEAD, 1, // ARMOR_SHIELD, 0, // ARMOR_WRIST, 0, // ARMOR_FOOTS, 0 // ARMOR_ACCESSORY }; TItemAttrMap g_map_itemAttr; TItemAttrMap g_map_itemRare; const TApplyInfo aApplyInfo[MAX_APPLY_NUM] = /* { DWORD dwPointType; } */ { // Point Type { POINT_NONE, }, // APPLY_NONE, 0 { POINT_MAX_HP, }, // APPLY_MAX_HP, 1 { POINT_MAX_SP, }, // APPLY_MAX_SP, 2 { POINT_HT, }, // APPLY_CON, 3 { POINT_IQ, }, // APPLY_INT, 4 { POINT_ST, }, // APPLY_STR, 5 { POINT_DX, }, // APPLY_DEX, 6 { POINT_ATT_SPEED, }, // APPLY_ATT_SPEED, 7 { POINT_MOV_SPEED, }, // APPLY_MOV_SPEED, 8 { POINT_CASTING_SPEED, }, // APPLY_CAST_SPEED, 9 { POINT_HP_REGEN, }, // APPLY_HP_REGEN, 10 { POINT_SP_REGEN, }, // APPLY_SP_REGEN, 11 { POINT_POISON_PCT, }, // APPLY_POISON_PCT, 12 { POINT_STUN_PCT, }, // APPLY_STUN_PCT, 13 { POINT_SLOW_PCT, }, // APPLY_SLOW_PCT, 14 { POINT_CRITICAL_PCT, }, // APPLY_CRITICAL_PCT, 15 { POINT_PENETRATE_PCT, }, // APPLY_PENETRATE_PCT, 16 { POINT_ATTBONUS_HUMAN, }, // APPLY_ATTBONUS_HUMAN, 17 { POINT_ATTBONUS_ANIMAL, }, // APPLY_ATTBONUS_ANIMAL, 18 { POINT_ATTBONUS_ORC, }, // APPLY_ATTBONUS_ORC, 19 { POINT_ATTBONUS_MILGYO, }, // APPLY_ATTBONUS_MILGYO, 20 { POINT_ATTBONUS_UNDEAD, }, // APPLY_ATTBONUS_UNDEAD, 21 { POINT_ATTBONUS_DEVIL, }, // APPLY_ATTBONUS_DEVIL, 22 { POINT_STEAL_HP, }, // APPLY_STEAL_HP, 23 { POINT_STEAL_SP, }, // APPLY_STEAL_SP, 24 { POINT_MANA_BURN_PCT, }, // APPLY_MANA_BURN_PCT, 25 { POINT_DAMAGE_SP_RECOVER, }, // APPLY_DAMAGE_SP_RECOVER,26 { POINT_BLOCK, }, // APPLY_BLOCK, 27 { POINT_DODGE, }, // APPLY_DODGE, 28 { POINT_RESIST_SWORD, }, // APPLY_RESIST_SWORD, 29 { POINT_RESIST_TWOHAND, }, // APPLY_RESIST_TWOHAND, 30 { POINT_RESIST_DAGGER, }, // APPLY_RESIST_DAGGER, 31 { POINT_RESIST_BELL, }, // APPLY_RESIST_BELL, 32 { POINT_RESIST_FAN, }, // APPLY_RESIST_FAN, 33 { POINT_RESIST_BOW, }, // APPLY_RESIST_BOW, 34 { POINT_RESIST_FIRE, }, // APPLY_RESIST_FIRE, 35 { POINT_RESIST_ELEC, }, // APPLY_RESIST_ELEC, 36 { POINT_RESIST_MAGIC, }, // APPLY_RESIST_MAGIC, 37 { POINT_RESIST_WIND, }, // APPLY_RESIST_WIND, 38 { POINT_REFLECT_MELEE, }, // APPLY_REFLECT_MELEE, 39 { POINT_REFLECT_CURSE, }, // APPLY_REFLECT_CURSE, 40 { POINT_POISON_REDUCE, }, // APPLY_POISON_REDUCE, 41 { POINT_KILL_SP_RECOVER, }, // APPLY_KILL_SP_RECOVER, 42 { POINT_EXP_DOUBLE_BONUS, }, // APPLY_EXP_DOUBLE_BONUS, 43 { POINT_GOLD_DOUBLE_BONUS, }, // APPLY_GOLD_DOUBLE_BONUS,44 { POINT_ITEM_DROP_BONUS, }, // APPLY_ITEM_DROP_BONUS, 45 { POINT_POTION_BONUS, }, // APPLY_POTION_BONUS, 46 { POINT_KILL_HP_RECOVERY, }, // APPLY_KILL_HP_RECOVER, 47 { POINT_IMMUNE_STUN, }, // APPLY_IMMUNE_STUN, 48 { POINT_IMMUNE_SLOW, }, // APPLY_IMMUNE_SLOW, 49 { POINT_IMMUNE_FALL, }, // APPLY_IMMUNE_FALL, 50 { POINT_NONE, }, // APPLY_SKILL, 51 { POINT_BOW_DISTANCE, }, // APPLY_BOW_DISTANCE, 52 { POINT_ATT_GRADE_BONUS, }, // APPLY_ATT_GRADE, 53 { POINT_DEF_GRADE_BONUS, }, // APPLY_DEF_GRADE, 54 { POINT_MAGIC_ATT_GRADE_BONUS, }, // APPLY_MAGIC_ATT_GRADE, 55 { POINT_MAGIC_DEF_GRADE_BONUS, }, // APPLY_MAGIC_DEF_GRADE, 56 { POINT_CURSE_PCT, }, // APPLY_CURSE_PCT, 57 { POINT_MAX_STAMINA }, // APPLY_MAX_STAMINA 58 { POINT_ATTBONUS_WARRIOR }, // APPLY_ATTBONUS_WARRIOR 59 { POINT_ATTBONUS_ASSASSIN }, // APPLY_ATTBONUS_ASSASSIN 60 { POINT_ATTBONUS_SURA }, // APPLY_ATTBONUS_SURA 61 { POINT_ATTBONUS_SHAMAN }, // APPLY_ATTBONUS_SHAMAN 62 { POINT_ATTBONUS_MONSTER }, // APPLY_ATTBONUS_MONSTER 63 { POINT_ATT_BONUS }, // 64 // APPLY_MALL_ATTBONUS { POINT_MALL_DEFBONUS }, // 65 { POINT_MALL_EXPBONUS }, // 66 APPLY_MALL_EXPBONUS { POINT_MALL_ITEMBONUS }, // 67 { POINT_MALL_GOLDBONUS }, // 68 { POINT_MAX_HP_PCT }, // 69 { POINT_MAX_SP_PCT }, // 70 { POINT_SKILL_DAMAGE_BONUS }, // 71 { POINT_NORMAL_HIT_DAMAGE_BONUS }, // 72 // DEFEND_BONUS_ATTRIBUTES { POINT_SKILL_DEFEND_BONUS }, // 73 { POINT_NORMAL_HIT_DEFEND_BONUS }, // 74 // END_OF_DEFEND_BONUS_ATTRIBUTES { POINT_PC_BANG_EXP_BONUS }, // 75 { POINT_PC_BANG_DROP_BONUS }, // 76 { POINT_NONE, }, { POINT_RESIST_WARRIOR, }, { POINT_RESIST_ASSASSIN, }, { POINT_RESIST_SURA, }, { POINT_RESIST_SHAMAN, }, { POINT_ENERGY }, { POINT_DEF_GRADE }, { POINT_COSTUME_ATTR_BONUS }, { POINT_MAGIC_ATT_BONUS_PER }, { POINT_MELEE_MAGIC_ATT_BONUS_PER }, // 86 APPLY_MELEE_MAGIC_ATTBONUS_PER { POINT_RESIST_ICE, }, // APPLY_RESIST_ICE, 87 { POINT_RESIST_EARTH, }, // APPLY_RESIST_EARTH, 88 { POINT_RESIST_DARK, }, // APPLY_RESIST_DARK, 89 { POINT_RESIST_CRITICAL, }, // APPLY_ANTI_CRITICAL_PCT, 90 { POINT_RESIST_PENETRATE, }, // APPLY_ANTI_PENETRATE_PCT, 91 #ifdef ENABLE_WOLFMAN_CHARACTER { POINT_BLEEDING_REDUCE, }, // APPLY_BLEEDING_REDUCE, 92 { POINT_BLEEDING_PCT, }, // APPLY_BLEEDING_PCT, 93 { POINT_ATTBONUS_WOLFMAN, }, { POINT_RESIST_WOLFMAN, }, { POINT_RESIST_CLAW, }, #else { POINT_NONE, }, // APPLY_BLEEDING_REDUCE, 92 { POINT_NONE, }, // APPLY_BLEEDING_PCT, 93 { POINT_NONE, }, { POINT_NONE, }, { POINT_NONE, }, #endif #ifdef ENABLE_ACCE_COSTUME_SYSTEM { POINT_ACCEDRAIN_RATE, }, // APPLY_ACCEDRAIN_RATE, 97 #else { POINT_NONE, }, // APPLY_ACCEDRAIN_RATE, 97 #endif #ifdef ENABLE_MAGIC_REDUCTION_SYSTEM { POINT_RESIST_MAGIC_REDUCTION, }, // APPLY_RESIST_MAGIC_REDUCTION,98 #else { POINT_NONE, }, // APPLY_RESIST_MAGIC_REDUCTION,98 #endif { POINT_ENCHANT_ELECT, }, // APPLY_ENCHANT_ELECT,99 { POINT_ENCHANT_FIRE, }, // APPLY_ENCHANT_FIRE,100 { POINT_ENCHANT_ICE, }, // APPLY_ENCHANT_ICE,101 { POINT_ENCHANT_WIND, }, // APPLY_ENCHANT_WIND,102 { POINT_ENCHANT_EARTH, }, // APPLY_ENCHANT_EARTH,103 { POINT_ENCHANT_DARK, }, // APPLY_ENCHANT_DARK,104 { POINT_ATTBONUS_CZ, }, // APPLY_ATTBONUS_CZ,105 { POINT_ATTBONUS_INSECT, }, // APPLY_ATTBONUS_INSECT,106 { POINT_ATTBONUS_DESERT, }, // APPLY_ATTBONUS_DESERT,107 { POINT_ATTBONUS_SWORD, }, // APPLY_ATTBONUS_SWORD,108 { POINT_ATTBONUS_TWOHAND, }, // APPLY_ATTBONUS_TWOHAND,109 { POINT_ATTBONUS_DAGGER, }, // APPLY_ATTBONUS_DAGGER,110 { POINT_ATTBONUS_BELL, }, // APPLY_ATTBONUS_BELL,111 { POINT_ATTBONUS_FAN, }, // APPLY_ATTBONUS_FAN,112 { POINT_ATTBONUS_BOW, }, // APPLY_ATTBONUS_BOW,113 #ifdef ENABLE_WOLFMAN_CHARACTER { POINT_ATTBONUS_CLAW, }, // APPLY_ATTBONUS_CLAW,114 #else { POINT_NONE, }, // APPLY_ATTBONUS_CLAW,114 #endif { POINT_RESIST_HUMAN, }, // APPLY_RESIST_HUMAN,115 { POINT_RESIST_MOUNT_FALL, }, // APPLY_RESIST_MOUNT_FALL,116 { POINT_NONE, }, // APPLY_UNK117 (unimplemented) #ifdef ENABLE_MOUNT_COSTUME_EX_SYSTEM { POINT_MOUNT, }, // APPLY_MOUNT,118 #else { POINT_NONE, }, // APPLY_MOUNT,118 #endif }; const int aiItemMagicAttributePercentHigh[ITEM_ATTRIBUTE_MAX_LEVEL] = { 30, 40, 20, 8, 2 }; const int aiItemMagicAttributePercentLow[ITEM_ATTRIBUTE_MAX_LEVEL] = { 50, 40, 10, 0, 0 }; // ADD_ITEM_ATTRIBUTE const int aiItemAttributeAddPercent[ITEM_ATTRIBUTE_MAX_NUM] = { 100, 80, 60, 50, 30, 0, 0, }; // END_OF_ADD_ITEM_ATTRIBUTE const int aiExpLossPercents[PLAYER_EXP_TABLE_MAX + 1] = { 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, // 1 - 10 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, // 11 - 20 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, // 21 - 30 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 31 - 40 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, // 41 - 50 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 51 - 60 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, // 61 - 70 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 71 - 80 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 81 - 90 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 91 - 100 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 101 - 110 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 111 - 120 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 130 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 140 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 150 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 160 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 170 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 180 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 190 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 200 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 210 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 220 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 230 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 240 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 250 }; const int aiSkillBookCountForLevelUp[10] = { 3, 3, 3, 3, 3, 4, 4, 5, 5, 6 }; // ADD_GRANDMASTER_SKILL const int aiGrandMasterSkillBookCountForLevelUp[10] = { 3, 3, 5, 5, 7, 7, 10, 10, 10, 20, }; const int aiGrandMasterSkillBookMinCount[10] = { // 1, 1, 3, 5, 10, 15, 20, 30, 40, 50, // 3, 3, 5, 5, 10, 10, 15, 15, 20, 30 1, 1, 1, 2, 2, 3, 3, 4, 5, 6 }; const int aiGrandMasterSkillBookMaxCount[10] = { // 6, 15, 30, 45, 60, 80, 100, 120, 160, 200, // 6, 10, 15, 20, 30, 40, 50, 60, 70, 80 5, 7, 9, 11, 13, 15, 20, 25, 30, 35 }; // END_OF_ADD_GRANDMASTER_SKILL const int CHN_aiPartyBonusExpPercentByMemberCount[9] = { 0, 0, 12, 18, 26, 40, 53, 70, 100 }; // UPGRADE_PARTY_BONUS const int KOR_aiPartyBonusExpPercentByMemberCount[9] = { 0, 0, 30, // 66% * 2 - 100 60, // 53% * 3 - 100 75, // 44% * 4 - 100 90, // 38% * 5 - 100 105, // 34% * 6 - 100 110, // 30% * 7 - 100 140, // 30% * 8 - 100 }; const int KOR_aiUniqueItemPartyBonusExpPercentByMemberCount[9] = { 0, 0, 15*2, 14*3, 13*4, 12*5, 11*6, 10*7, 10*8, }; // END_OF_UPGRADE_PARTY_BONUS const int * aiChainLightningCountBySkillLevel = NULL; const int aiChainLightningCountBySkillLevel_euckr[SKILL_MAX_LEVEL+1] = { 0, // 0 2, // 1 2, // 2 2, // 3 2, // 4 2, // 5 2, // 6 2, // 7 2, // 8 3, // 9 3, // 10 3, // 11 3, // 12 3, // 13 3, // 14 3, // 15 3, // 16 3, // 17 3, // 18 4, // 19 4, // 20 4, // 21 4, // 22 4, // 23 5, // 24 5, // 25 5, // 26 5, // 27 5, // 28 5, // 29 5, // 30 5, // 31 5, // 32 5, // 33 5, // 34 5, // 35 5, // 36 5, // 37 5, // 38 5, // 39 5, // 40 }; const SStoneDropInfo aStoneDrop[STONE_INFO_MAX_NUM] = { // mob pct {+0 +1 +2 +3 +4} {8005, 60, {30, 30, 30, 9, 1} }, {8006, 60, {28, 29, 31, 11, 1} }, {8007, 60, {24, 29, 32, 13, 2} }, {8008, 60, {22, 28, 33, 15, 2} }, {8009, 60, {21, 27, 33, 17, 2} }, {8010, 60, {18, 26, 34, 20, 2} }, {8011, 60, {14, 26, 35, 22, 3} }, {8012, 60, {10, 26, 37, 24, 3} }, {8013, 60, {2, 26, 40, 29, 3} }, {8014, 60, {0, 26, 41, 30, 3} }, }; const char * c_apszEmpireNames[EMPIRE_MAX_NUM] = { "전제국", "신수국", "천조국", "진노국" }; const char * c_apszPrivNames[MAX_PRIV_NUM] = { "", "아이템이 나올 확률", "돈이 나올 확률", "돈 대박이 나올 확률", "경험치 배율", }; const int aiPolymorphPowerByLevel[SKILL_MAX_LEVEL + 1] = { 10, // 1 11, // 2 11, // 3 12, // 4 13, // 5 13, // 6 14, // 7 15, // 8 16, // 9 17, // 10 18, // 11 19, // 12 20, // 13 22, // 14 23, // 15 24, // 16 26, // 17 27, // 18 29, // 19 31, // 20 33, // 21 35, // 22 37, // 23 39, // 24 41, // 25 44, // 26 46, // 27 49, // 28 52, // 29 55, // 30 59, // 31 62, // 32 66, // 33 70, // 34 74, // 35 79, // 36 84, // 37 89, // 38 94, // 39 100, // 40 }; TGuildWarInfo KOR_aGuildWarInfo[GUILD_WAR_TYPE_MAX_NUM] = /* { long lMapIndex; int iWarPrice; int iWinnerPotionRewardPctToWinner; int iLoserPotionRewardPctToWinner; int iInitialScore; int iEndScore; }; */ { { 0, 0, 0, 0, 0, 0 }, { 110, 0, 100, 50, 0, 100 }, { 111, 0, 100, 50, 0, 10 }, }; const int aiAccessorySocketAddPct[ITEM_ACCESSORY_SOCKET_MAX_NUM] = { 50, 50, 50 }; const int aiAccessorySocketEffectivePct[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1] = { 0, 10, 20, 40 }; const int aiAccessorySocketDegradeTime[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1] = { 0, 3600 * 24, 3600 * 12, 3600 * 6 }; const int aiAccessorySocketPutPct[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1] = { 90, 80, 70, 0 }; #ifdef ENABLE_ASLAN_BIOLOGIST_SYSTEM const SBiologistInfo TBiologistInfo[BIOLOGIST_MISSION_MAX_NUM] = { /* Level Target-NPC, {collect_vnum, collect_count, chance, chance with bonus item} wait_time (min) {soulstone_vnum, dropchance (20 = 2%)} reward_item_vnum reward_bonus_type (0 = normal / 1 = select one), {bonus0, value0}, {bonus1, value1}, {bonus2, value2} */ { 30, 20084, {30006, 10, 80, 100}, 60, 30220, 50109, 0, {{POINT_MOV_SPEED, 10}, {0, 0}, {0, 0}}}, { 40, 20084, {30047, 15, 75, 100}, 60, 30221, 50110, 0, {{POINT_ATT_SPEED, 5}, {0, 0}, {0, 0}}}, { 50, 20084, {30015, 15, 75, 100}, 120, 30222, 50111, 0, {{POINT_DEF_GRADE_BONUS, 60}, {0, 0}, {0, 0}} }, { 60, 20084, {30050, 20, 75, 100}, 120, 30223, 50112, 0, {{POINT_ATT_GRADE_BONUS, 50}, {0, 0}, {0, 0}} }, { 70, 20084, {30165, 25, 65, 100}, 360, 30224, 50113, 0, {{POINT_MOV_SPEED, 11}, {POINT_NORMAL_HIT_DEFEND_BONUS, 10}, {0, 0}} }, { 80, 20084, {30166, 30, 65, 100}, 360, 30225, 50114, 0, {{POINT_ATT_SPEED, 6}, {POINT_SKILL_DAMAGE_BONUS, 10}, {POINT_NORMAL_HIT_DAMAGE_BONUS, 10}} }, { 85, 20084, {30167, 40, 65, 100}, 360, 30226, 50114, 0, {{POINT_ATTBONUS_HUMAN, 10}, {0, 0}, {0, 0}} }, { 90, 20084, {30168, 50, 65, 100}, 360, 30227, 50115, 0, {{POINT_RESIST_HUMAN, 8}, {0, 0}, {0, 0}} }, { 92, 20091, {30251, 10, 35, 70}, 720, 0, 0, 1, {{POINT_MAX_HP, 1000}, {POINT_DEF_GRADE_BONUS, 120}, {POINT_ATT_GRADE_BONUS, 51}} }, { 94, 20091, {30252, 20, 35, 70}, 720, 30228, 0, 1, {{POINT_MAX_HP, 1100}, {POINT_DEF_GRADE_BONUS, 140}, {POINT_ATT_GRADE_BONUS, 60}} }, }; #endif // END_OF_ACCESSORY_REFINE typedef struct SValueName { const char * c_pszName; long lValue; } TValueName; TValueName c_aApplyTypeNames[] = { { "STR", APPLY_STR }, { "DEX", APPLY_DEX }, { "CON", APPLY_CON }, { "INT", APPLY_INT }, { "MAX_HP", APPLY_MAX_HP }, { "MAX_SP", APPLY_MAX_SP }, { "MAX_STAMINA", APPLY_MAX_STAMINA }, { "POISON_REDUCE", APPLY_POISON_REDUCE }, { "EXP_DOUBLE_BONUS", APPLY_EXP_DOUBLE_BONUS }, { "GOLD_DOUBLE_BONUS", APPLY_GOLD_DOUBLE_BONUS }, { "ITEM_DROP_BONUS", APPLY_ITEM_DROP_BONUS }, { "HP_REGEN", APPLY_HP_REGEN }, { "SP_REGEN", APPLY_SP_REGEN }, { "ATTACK_SPEED", APPLY_ATT_SPEED }, { "MOVE_SPEED", APPLY_MOV_SPEED }, { "CAST_SPEED", APPLY_CAST_SPEED }, { "ATT_BONUS", APPLY_ATT_GRADE_BONUS }, { "DEF_BONUS", APPLY_DEF_GRADE_BONUS }, { "MAGIC_ATT_GRADE",APPLY_MAGIC_ATT_GRADE }, { "MAGIC_DEF_GRADE",APPLY_MAGIC_DEF_GRADE }, { "SKILL", APPLY_SKILL }, { "ATTBONUS_ANIMAL",APPLY_ATTBONUS_ANIMAL }, { "ATTBONUS_UNDEAD",APPLY_ATTBONUS_UNDEAD }, { "ATTBONUS_DEVIL", APPLY_ATTBONUS_DEVIL }, { "ATTBONUS_HUMAN", APPLY_ATTBONUS_HUMAN }, { "ADD_BOW_DISTANCE",APPLY_BOW_DISTANCE }, { "DODGE", APPLY_DODGE }, { "BLOCK", APPLY_BLOCK }, { "RESIST_SWORD", APPLY_RESIST_SWORD }, { "RESIST_TWOHAND", APPLY_RESIST_TWOHAND }, { "RESIST_DAGGER", APPLY_RESIST_DAGGER }, { "RESIST_BELL", APPLY_RESIST_BELL }, { "RESIST_FAN", APPLY_RESIST_FAN }, { "RESIST_BOW", APPLY_RESIST_BOW }, { "RESIST_FIRE", APPLY_RESIST_FIRE }, { "RESIST_ELEC", APPLY_RESIST_ELEC }, { "RESIST_MAGIC", APPLY_RESIST_MAGIC }, { "RESIST_WIND", APPLY_RESIST_WIND }, { "REFLECT_MELEE", APPLY_REFLECT_MELEE }, { "REFLECT_CURSE", APPLY_REFLECT_CURSE }, { "RESIST_ICE", APPLY_RESIST_ICE }, { "RESIST_EARTH", APPLY_RESIST_EARTH }, { "RESIST_DARK", APPLY_RESIST_DARK }, { "RESIST_CRITICAL", APPLY_ANTI_CRITICAL_PCT }, { "RESIST_PENETRATE", APPLY_ANTI_PENETRATE_PCT }, { "POISON", APPLY_POISON_PCT }, { "SLOW", APPLY_SLOW_PCT }, { "STUN", APPLY_STUN_PCT }, { "STEAL_HP", APPLY_STEAL_HP }, { "STEAL_SP", APPLY_STEAL_SP }, { "MANA_BURN_PCT", APPLY_MANA_BURN_PCT }, { "CRITICAL", APPLY_CRITICAL_PCT }, { "PENETRATE", APPLY_PENETRATE_PCT }, { "KILL_SP_RECOVER",APPLY_KILL_SP_RECOVER }, { "KILL_HP_RECOVER",APPLY_KILL_HP_RECOVER }, { "PENETRATE_PCT", APPLY_PENETRATE_PCT }, { "CRITICAL_PCT", APPLY_CRITICAL_PCT }, { "POISON_PCT", APPLY_POISON_PCT }, { "STUN_PCT", APPLY_STUN_PCT }, { "ATT_BONUS_TO_WARRIOR", APPLY_ATTBONUS_WARRIOR }, { "ATT_BONUS_TO_ASSASSIN", APPLY_ATTBONUS_ASSASSIN }, { "ATT_BONUS_TO_SURA", APPLY_ATTBONUS_SURA }, { "ATT_BONUS_TO_SHAMAN", APPLY_ATTBONUS_SHAMAN }, { "ATT_BONUS_TO_MONSTER", APPLY_ATTBONUS_MONSTER }, { "ATT_BONUS_TO_MOB", APPLY_ATTBONUS_MONSTER }, { "MALL_ATTBONUS", APPLY_MALL_ATTBONUS }, { "MALL_EXPBONUS", APPLY_MALL_EXPBONUS }, { "MALL_DEFBONUS", APPLY_MALL_DEFBONUS }, { "MALL_ITEMBONUS", APPLY_MALL_ITEMBONUS }, { "MALL_GOLDBONUS", APPLY_MALL_GOLDBONUS }, { "MAX_HP_PCT", APPLY_MAX_HP_PCT }, { "MAX_SP_PCT", APPLY_MAX_SP_PCT }, { "SKILL_DAMAGE_BONUS", APPLY_SKILL_DAMAGE_BONUS }, { "NORMAL_HIT_DAMAGE_BONUS",APPLY_NORMAL_HIT_DAMAGE_BONUS }, { "SKILL_DEFEND_BONUS", APPLY_SKILL_DEFEND_BONUS }, { "NORMAL_HIT_DEFEND_BONUS",APPLY_NORMAL_HIT_DEFEND_BONUS }, { "PCBANG_EXP_BONUS", APPLY_PC_BANG_EXP_BONUS }, { "PCBANG_DROP_BONUS", APPLY_PC_BANG_DROP_BONUS }, { "RESIST_WARRIOR", APPLY_RESIST_WARRIOR}, { "RESIST_ASSASSIN", APPLY_RESIST_ASSASSIN}, { "RESIST_SURA", APPLY_RESIST_SURA}, { "RESIST_SHAMAN", APPLY_RESIST_SHAMAN}, { "INFINITE_AFFECT_DURATION", 0x1FFFFFFF }, { "ENERGY", APPLY_ENERGY }, { "COSTUME_ATTR_BONUS", APPLY_COSTUME_ATTR_BONUS }, { "MAGIC_ATTBONUS_PER", APPLY_MAGIC_ATTBONUS_PER }, { "MELEE_MAGIC_ATTBONUS_PER", APPLY_MELEE_MAGIC_ATTBONUS_PER }, #ifdef ENABLE_WOLFMAN_CHARACTER { "BLEEDING_REDUCE",APPLY_BLEEDING_REDUCE }, { "BLEEDING_PCT",APPLY_BLEEDING_PCT }, { "ATT_BONUS_TO_WOLFMAN",APPLY_ATTBONUS_WOLFMAN }, { "RESIST_WOLFMAN",APPLY_RESIST_WOLFMAN }, { "RESIST_CLAW",APPLY_RESIST_CLAW }, #endif #ifdef ENABLE_ACCE_COSTUME_SYSTEM { "ACCEDRAIN_RATE",APPLY_ACCEDRAIN_RATE }, #endif #ifdef ENABLE_MAGIC_REDUCTION_SYSTEM { "RESIST_MAGIC_REDUCTION",APPLY_RESIST_MAGIC_REDUCTION }, #endif { "ENCHANT_ELECT", APPLY_ENCHANT_ELECT }, { "ENCHANT_FIRE", APPLY_ENCHANT_FIRE }, { "ENCHANT_ICE", APPLY_ENCHANT_ICE }, { "ENCHANT_WIND", APPLY_ENCHANT_WIND }, { "ENCHANT_EARTH", APPLY_ENCHANT_EARTH }, { "ENCHANT_DARK", APPLY_ENCHANT_DARK }, { NULL, 0 } }; long FN_get_apply_type(const char *apply_type_string) { TValueName *value_name; for (value_name = c_aApplyTypeNames; value_name->c_pszName; ++value_name) { if (0==strcasecmp(value_name->c_pszName, apply_type_string)) return value_name->lValue; } return 0; } //martysama0134's cc449580f8a0ea79d66107125c7ee3d3
Opublikowano 5 Lutego5 Lut Autor 8 godzin temu, eksyyy napisał(a): Jak juz rozmawiamy to wkleje ci linijke. #include "stdafx.h" #include "char.h" #include "../../common/CommonDefines.h" #include "../../common/length.h" TJobInitialPoints JobInitialPoints[JOB_MAX_NUM] = /* int st, ht, dx, iq; int max_hp, max_sp; int hp_per_ht, sp_per_iq; int hp_per_lv_begin, hp_per_lv_end; int sp_per_lv_begin, sp_per_lv_end; int max_stamina; int stamina_per_con; int stamina_per_lv_begin, stamina_per_lv_end; */ { { 6, 4, 3, 3, 600, 200, 40, 20, 36, 44, 18, 22, 800, 5, 1, 3 }, // JOB_WARRIOR 16 { 4, 3, 6, 3, 650, 200, 40, 20, 36, 44, 18, 22, 800, 5, 1, 3 }, // JOB_ASSASSIN 16 { 5, 3, 3, 5, 650, 200, 40, 20, 36, 44, 18, 22, 800, 5, 1, 3 }, // JOB_SURA 16 { 3, 4, 3, 6, 700, 200, 40, 20, 36, 44, 18, 22, 800, 5, 1, 3 }, // JOB_SHAMANa 16 #ifdef ENABLE_WOLFMAN_CHARACTER { 2, 6, 6, 2, 600, 200, 40, 20, 36, 44, 18, 22, 800, 5, 1, 3 }, #endif }; const TMobRankStat MobRankStats[MOB_RANK_MAX_NUM] = /* { int iGoldPercent; } */ { { 20, }, // MOB_RANK_PAWN, { 20, }, // MOB_RANK_S_PAWN, { 25, }, // MOB_RANK_KNIGHT, { 30, }, // MOB_RANK_S_KNIGHT, { 50, }, // MOB_RANK_BOSS, { 100, } // MOB_RANK_KING, }; TBattleTypeStat BattleTypeStats[BATTLE_TYPE_MAX_NUM] = /* int AttGradeBias; int DefGradeBias; int MagicAttGradeBias; int MagicDefGradeBias; */ { { 0, 0, 0, -10 }, // BATTLE_TYPE_MELEE, { 10, -20, -10, -15 }, // BATTLE_TYPE_RANGE, { -5, -5, 10, 10 }, // BATTLE_TYPE_MAGIC, { 0, 0, 0, 0 }, // BATTLE_TYPE_SPECIAL, { 10, -10, 0, -15 }, // BATTLE_TYPE_POWER, { -10, 10, -10, 0 }, // BATTLE_TYPE_TANKER, { 20, -20, 0, -10 }, // BATTLE_TYPE_SUPER_POWER, { -20, 20, -10, 0 }, // BATTLE_TYPE_SUPER_TANKER, }; const DWORD * exp_table = NULL; const DWORD exp_table_common[PLAYER_MAX_LEVEL_CONST + 1] = { 0, // 0 300, 800, 1500, 2500, 4300, 7200, 11000, 17000, 24000, 33000, // 10 43000, 58000, 76000, 100000, 130000, 169000, 219000, 283000, 365000, 472000, // 20 610000, 705000, 813000, 937000, 1077000, 1237000, 1418000, 1624000, 1857000, 2122000, // 30 2421000, 2761000, 3145000, 3580000, 4073000, 4632000, 5194000, 5717000, 6264000, 6837000, // 40 7600000, 8274000, 8990000, 9753000, 10560000, 11410000, 12320000, 13270000, 14280000, 15340000, // 50 16870000, 18960000, 19980000, 21420000, 22930000, 24530000, 26200000, 27960000, 29800000, 32780000, // 60 36060000, 39670000, 43640000, 48000000, 52800000, 58080000, 63890000, 70280000, 77310000, 85040000, // 70 93540000, 102900000, 113200000, 124500000, 137000000, 150700000, 165700000, 236990000, 260650000, 286780000, // 80 315380000, 346970000, 381680000, 419770000, 461760000, 508040000, 558740000, 614640000, 676130000, 743730000, // 90 1041222000, 1145344200, 1259878620, 1385866482, 1524453130, 1676898443, 1844588288, 2029047116, 2050000000, 2150000000u, // 100 2210000000u, 2250000000u, 2280000000u, 2310000000u, 2330000000u, // 105 2350000000u, 2370000000u, 2390000000u, 2400000000u, 2410000000u, // 110 2420000000u, 2430000000u, 2440000000u, 2450000000u, 2460000000u, // 115 2470000000u, 2480000000u, 2490000000u, 2490000000u, 2500000000u, // 120 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 125 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 130 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 135 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 140 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 145 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 150 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 155 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 160 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 165 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 170 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 175 2500000000u, 2500000000u, 2500000000u, 2500000000u, 2500000000u, // 180 }; const int * aiPercentByDeltaLev = NULL; const int * aiPercentByDeltaLevForBoss = NULL; const int aiPercentByDeltaLevForBoss_euckr[MAX_EXP_DELTA_OF_LEV] = { 1, // -15 0 3, // -14 1 5, // -13 2 7, // -12 3 15, // -11 4 30, // -10 5 60, // -9 6 90, // -8 7 91, // -7 8 92, // -6 9 93, // -5 10 94, // -4 11 95, // -3 12 97, // -2 13 99, // -1 14 100, // 0 15 105, // 1 16 110, // 2 17 115, // 3 18 120, // 4 19 125, // 5 20 130, // 6 21 135, // 7 22 140, // 8 23 145, // 9 24 150, // 10 25 155, // 11 26 160, // 12 27 165, // 13 28 170, // 14 29 180 // 15 30 }; const int aiPercentByDeltaLev_euckr[MAX_EXP_DELTA_OF_LEV] = { 1, // -15 0 5, // -14 1 10, // -13 2 20, // -12 3 30, // -11 4 50, // -10 5 70, // -9 6 80, // -8 7 85, // -7 8 90, // -6 9 92, // -5 10 94, // -4 11 96, // -3 12 98, // -2 13 100, // -1 14 100, // 0 15 105, // 1 16 110, // 2 17 115, // 3 18 120, // 4 19 125, // 5 20 130, // 6 21 135, // 7 22 140, // 8 23 145, // 9 24 150, // 10 25 155, // 11 26 160, // 12 27 165, // 13 28 170, // 14 29 180, // 15 30 }; const DWORD party_exp_distribute_table[PLAYER_EXP_TABLE_MAX + 1] = { 0, 10, 10, 10, 10, 15, 15, 20, 25, 30, 40, // 1 - 10 50, 60, 80, 100, 120, 140, 160, 184, 210, 240, // 11 - 20 270, 300, 330, 360, 390, 420, 450, 480, 510, 550, // 21 - 30 600, 640, 700, 760, 820, 880, 940, 1000, 1100, 1180, // 31 - 40 1260, 1320, 1380, 1440, 1500, 1560, 1620, 1680, 1740, 1800, // 41 - 50 1860, 1920, 2000, 2100, 2200, 2300, 2450, 2600, 2750, 2900, // 51 - 60 3050, 3200, 3350, 3500, 3650, 3800, 3950, 4100, 4250, 4400, // 61 - 70 4600, 4800, 5000, 5200, 5400, 5600, 5800, 6000, 6200, 6400, // 71 - 80 6600, 6900, 7100, 7300, 7600, 7800, 8000, 8300, 8500, 8800, // 81 - 90 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000, // 91 - 100 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, // 101 - 110 12000, 12000, 12000, 12000, 12000, 12000, 12000, 12000, 12000, 12000, // 111 - 120 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 130 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 140 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 150 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 160 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 170 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 180 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 190 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 200 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 210 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 220 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 230 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 240 // 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, 14000, // 250 }; Coord aArroundCoords[ARROUND_COORD_MAX_NUM] = { { 0, 0 }, { 0, 50 }, { 35, 35 }, { 50, -0 }, { 35, -35 }, { 0, -50 }, { -35, -35 }, { -50, 0 }, { -35, 35 }, { 0, 100 }, { 71, 71 }, { 100, -0 }, { 71, -71 }, { 0, -100 }, { -71, -71 }, { -100, 0 }, { -71, 71 }, { 0, 150 }, { 106, 106 }, { 150, -0 }, { 106, -106 }, { 0, -150 }, { -106, -106 }, { -150, 0 }, { -106, 106 }, { 0, 200 }, { 141, 141 }, { 200, -0 }, { 141, -141 }, { 0, -200 }, { -141, -141 }, { -200, 0 }, { -141, 141 }, { 0, 250 }, { 177, 177 }, { 250, -0 }, { 177, -177 }, { 0, -250 }, { -177, -177 }, { -250, 0 }, { -177, 177 }, { 0, 300 }, { 212, 212 }, { 300, -0 }, { 212, -212 }, { 0, -300 }, { -212, -212 }, { -300, 0 }, { -212, 212 }, { 0, 350 }, { 247, 247 }, { 350, -0 }, { 247, -247 }, { 0, -350 }, { -247, -247 }, { -350, 0 }, { -247, 247 }, { 0, 400 }, { 283, 283 }, { 400, -0 }, { 283, -283 }, { 0, -400 }, { -283, -283 }, { -400, 0 }, { -283, 283 }, { 0, 450 }, { 318, 318 }, { 450, -0 }, { 318, -318 }, { 0, -450 }, { -318, -318 }, { -450, 0 }, { -318, 318 }, { 0, 500 }, { 354, 354 }, { 500, -0 }, { 354, -354 }, { 0, -500 }, { -354, -354 }, { -500, 0 }, { -354, 354 }, { 0, 550 }, { 389, 389 }, { 550, -0 }, { 389, -389 }, { 0, -550 }, { -389, -389 }, { -550, 0 }, { -389, 389 }, { 0, 600 }, { 424, 424 }, { 600, -0 }, { 424, -424 }, { 0, -600 }, { -424, -424 }, { -600, 0 }, { -424, 424 }, { 0, 650 }, { 460, 460 }, { 650, -0 }, { 460, -460 }, { 0, -650 }, { -460, -460 }, { -650, 0 }, { -460, 460 }, { 0, 700 }, { 495, 495 }, { 700, -0 }, { 495, -495 }, { 0, -700 }, { -495, -495 }, { -700, 0 }, { -495, 495 }, { 0, 750 }, { 530, 530 }, { 750, -0 }, { 530, -530 }, { 0, -750 }, { -530, -530 }, { -750, 0 }, { -530, 530 }, { 0, 800 }, { 566, 566 }, { 800, -0 }, { 566, -566 }, { 0, -800 }, { -566, -566 }, { -800, 0 }, { -566, 566 }, { 0, 850 }, { 601, 601 }, { 850, -0 }, { 601, -601 }, { 0, -850 }, { -601, -601 }, { -850, 0 }, { -601, 601 }, { 0, 900 }, { 636, 636 }, { 900, -0 }, { 636, -636 }, { 0, -900 }, { -636, -636 }, { -900, 0 }, { -636, 636 }, { 0, 950 }, { 672, 672 }, { 950, -0 }, { 672, -672 }, { 0, -950 }, { -672, -672 }, { -950, 0 }, { -672, 672 }, { 0, 1000 }, { 707, 707 }, { 1000, -0 }, { 707, -707 }, { 0, -1000 }, { -707, -707 }, { -1000, 0 }, { -707, 707 }, }; const DWORD guild_exp_table[GUILD_MAX_LEVEL+1] = { 0, 15000UL, 45000UL, 90000UL, 160000UL, 235000UL, 325000UL, 430000UL, 550000UL, 685000UL, 835000UL, 1000000UL, 1500000UL, 2100000UL, 2800000UL, 3600000UL, 4500000UL, 6500000UL, 8000000UL, 10000000UL, 42000000UL }; const DWORD guild_exp_table2[GUILD_MAX_LEVEL+1] = { 0, 6000UL, 18000UL, 36000UL, 64000UL, 94000UL, 130000UL, 172000UL, 220000UL, 274000UL, 334000UL, 400000UL, 600000UL, 840000UL, 1120000UL, 1440000UL, 1800000UL, 2600000UL, 3200000UL, 4000000UL, 16800000UL }; const int aiMobEnchantApplyIdx[MOB_ENCHANTS_MAX_NUM] = { APPLY_CURSE_PCT, APPLY_SLOW_PCT, APPLY_POISON_PCT, APPLY_STUN_PCT, APPLY_CRITICAL_PCT, APPLY_PENETRATE_PCT, #if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_BLEEDING_AS_POISON) APPLY_BLEEDING_PCT, #endif }; const int aiMobResistsApplyIdx[MOB_RESISTS_MAX_NUM] = { APPLY_RESIST_SWORD, APPLY_RESIST_TWOHAND, APPLY_RESIST_DAGGER, APPLY_RESIST_BELL, APPLY_RESIST_FAN, APPLY_RESIST_BOW, APPLY_RESIST_FIRE, APPLY_RESIST_ELEC, APPLY_RESIST_MAGIC, APPLY_RESIST_WIND, APPLY_POISON_REDUCE, #if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_CLAW_AS_DAGGER) APPLY_RESIST_CLAW, #endif #if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_BLEEDING_AS_POISON) APPLY_BLEEDING_REDUCE, #endif }; const int aiSocketPercentByQty[5][4] = { { 0, 0, 0, 0 }, { 3, 0, 0, 0 }, { 10, 1, 0, 0 }, { 15, 10, 1, 0 }, { 20, 15, 10, 1 } }; const int aiWeaponSocketQty[WEAPON_NUM_TYPES] = { 3, // WEAPON_SWORD, 3, // WEAPON_DAGGER, 3, // WEAPON_BOW, 3, // WEAPON_TWO_HANDED, 3, // WEAPON_BELL, 3, // WEAPON_FAN, 0, // WEAPON_ARROW, 0, // WEAPON_MOUNT_SPEAR #ifdef ENABLE_WOLFMAN_CHARACTER 3, // WEAPON_CLAW #endif #ifdef ENABLE_QUIVER_SYSTEM 0, // WEAPON_QUIVER #endif }; const int aiArmorSocketQty[ARMOR_NUM_TYPES] = { 3, // ARMOR_BODY, 1, // ARMOR_HEAD, 1, // ARMOR_SHIELD, 0, // ARMOR_WRIST, 0, // ARMOR_FOOTS, 0 // ARMOR_ACCESSORY }; TItemAttrMap g_map_itemAttr; TItemAttrMap g_map_itemRare; const TApplyInfo aApplyInfo[MAX_APPLY_NUM] = /* { DWORD dwPointType; } */ { // Point Type { POINT_NONE, }, // APPLY_NONE, 0 { POINT_MAX_HP, }, // APPLY_MAX_HP, 1 { POINT_MAX_SP, }, // APPLY_MAX_SP, 2 { POINT_HT, }, // APPLY_CON, 3 { POINT_IQ, }, // APPLY_INT, 4 { POINT_ST, }, // APPLY_STR, 5 { POINT_DX, }, // APPLY_DEX, 6 { POINT_ATT_SPEED, }, // APPLY_ATT_SPEED, 7 { POINT_MOV_SPEED, }, // APPLY_MOV_SPEED, 8 { POINT_CASTING_SPEED, }, // APPLY_CAST_SPEED, 9 { POINT_HP_REGEN, }, // APPLY_HP_REGEN, 10 { POINT_SP_REGEN, }, // APPLY_SP_REGEN, 11 { POINT_POISON_PCT, }, // APPLY_POISON_PCT, 12 { POINT_STUN_PCT, }, // APPLY_STUN_PCT, 13 { POINT_SLOW_PCT, }, // APPLY_SLOW_PCT, 14 { POINT_CRITICAL_PCT, }, // APPLY_CRITICAL_PCT, 15 { POINT_PENETRATE_PCT, }, // APPLY_PENETRATE_PCT, 16 { POINT_ATTBONUS_HUMAN, }, // APPLY_ATTBONUS_HUMAN, 17 { POINT_ATTBONUS_ANIMAL, }, // APPLY_ATTBONUS_ANIMAL, 18 { POINT_ATTBONUS_ORC, }, // APPLY_ATTBONUS_ORC, 19 { POINT_ATTBONUS_MILGYO, }, // APPLY_ATTBONUS_MILGYO, 20 { POINT_ATTBONUS_UNDEAD, }, // APPLY_ATTBONUS_UNDEAD, 21 { POINT_ATTBONUS_DEVIL, }, // APPLY_ATTBONUS_DEVIL, 22 { POINT_STEAL_HP, }, // APPLY_STEAL_HP, 23 { POINT_STEAL_SP, }, // APPLY_STEAL_SP, 24 { POINT_MANA_BURN_PCT, }, // APPLY_MANA_BURN_PCT, 25 { POINT_DAMAGE_SP_RECOVER, }, // APPLY_DAMAGE_SP_RECOVER,26 { POINT_BLOCK, }, // APPLY_BLOCK, 27 { POINT_DODGE, }, // APPLY_DODGE, 28 { POINT_RESIST_SWORD, }, // APPLY_RESIST_SWORD, 29 { POINT_RESIST_TWOHAND, }, // APPLY_RESIST_TWOHAND, 30 { POINT_RESIST_DAGGER, }, // APPLY_RESIST_DAGGER, 31 { POINT_RESIST_BELL, }, // APPLY_RESIST_BELL, 32 { POINT_RESIST_FAN, }, // APPLY_RESIST_FAN, 33 { POINT_RESIST_BOW, }, // APPLY_RESIST_BOW, 34 { POINT_RESIST_FIRE, }, // APPLY_RESIST_FIRE, 35 { POINT_RESIST_ELEC, }, // APPLY_RESIST_ELEC, 36 { POINT_RESIST_MAGIC, }, // APPLY_RESIST_MAGIC, 37 { POINT_RESIST_WIND, }, // APPLY_RESIST_WIND, 38 { POINT_REFLECT_MELEE, }, // APPLY_REFLECT_MELEE, 39 { POINT_REFLECT_CURSE, }, // APPLY_REFLECT_CURSE, 40 { POINT_POISON_REDUCE, }, // APPLY_POISON_REDUCE, 41 { POINT_KILL_SP_RECOVER, }, // APPLY_KILL_SP_RECOVER, 42 { POINT_EXP_DOUBLE_BONUS, }, // APPLY_EXP_DOUBLE_BONUS, 43 { POINT_GOLD_DOUBLE_BONUS, }, // APPLY_GOLD_DOUBLE_BONUS,44 { POINT_ITEM_DROP_BONUS, }, // APPLY_ITEM_DROP_BONUS, 45 { POINT_POTION_BONUS, }, // APPLY_POTION_BONUS, 46 { POINT_KILL_HP_RECOVERY, }, // APPLY_KILL_HP_RECOVER, 47 { POINT_IMMUNE_STUN, }, // APPLY_IMMUNE_STUN, 48 { POINT_IMMUNE_SLOW, }, // APPLY_IMMUNE_SLOW, 49 { POINT_IMMUNE_FALL, }, // APPLY_IMMUNE_FALL, 50 { POINT_NONE, }, // APPLY_SKILL, 51 { POINT_BOW_DISTANCE, }, // APPLY_BOW_DISTANCE, 52 { POINT_ATT_GRADE_BONUS, }, // APPLY_ATT_GRADE, 53 { POINT_DEF_GRADE_BONUS, }, // APPLY_DEF_GRADE, 54 { POINT_MAGIC_ATT_GRADE_BONUS, }, // APPLY_MAGIC_ATT_GRADE, 55 { POINT_MAGIC_DEF_GRADE_BONUS, }, // APPLY_MAGIC_DEF_GRADE, 56 { POINT_CURSE_PCT, }, // APPLY_CURSE_PCT, 57 { POINT_MAX_STAMINA }, // APPLY_MAX_STAMINA 58 { POINT_ATTBONUS_WARRIOR }, // APPLY_ATTBONUS_WARRIOR 59 { POINT_ATTBONUS_ASSASSIN }, // APPLY_ATTBONUS_ASSASSIN 60 { POINT_ATTBONUS_SURA }, // APPLY_ATTBONUS_SURA 61 { POINT_ATTBONUS_SHAMAN }, // APPLY_ATTBONUS_SHAMAN 62 { POINT_ATTBONUS_MONSTER }, // APPLY_ATTBONUS_MONSTER 63 { POINT_ATT_BONUS }, // 64 // APPLY_MALL_ATTBONUS { POINT_MALL_DEFBONUS }, // 65 { POINT_MALL_EXPBONUS }, // 66 APPLY_MALL_EXPBONUS { POINT_MALL_ITEMBONUS }, // 67 { POINT_MALL_GOLDBONUS }, // 68 { POINT_MAX_HP_PCT }, // 69 { POINT_MAX_SP_PCT }, // 70 { POINT_SKILL_DAMAGE_BONUS }, // 71 { POINT_NORMAL_HIT_DAMAGE_BONUS }, // 72 // DEFEND_BONUS_ATTRIBUTES { POINT_SKILL_DEFEND_BONUS }, // 73 { POINT_NORMAL_HIT_DEFEND_BONUS }, // 74 // END_OF_DEFEND_BONUS_ATTRIBUTES { POINT_PC_BANG_EXP_BONUS }, // 75 { POINT_PC_BANG_DROP_BONUS }, // 76 { POINT_NONE, }, { POINT_RESIST_WARRIOR, }, { POINT_RESIST_ASSASSIN, }, { POINT_RESIST_SURA, }, { POINT_RESIST_SHAMAN, }, { POINT_ENERGY }, { POINT_DEF_GRADE }, { POINT_COSTUME_ATTR_BONUS }, { POINT_MAGIC_ATT_BONUS_PER }, { POINT_MELEE_MAGIC_ATT_BONUS_PER }, // 86 APPLY_MELEE_MAGIC_ATTBONUS_PER { POINT_RESIST_ICE, }, // APPLY_RESIST_ICE, 87 { POINT_RESIST_EARTH, }, // APPLY_RESIST_EARTH, 88 { POINT_RESIST_DARK, }, // APPLY_RESIST_DARK, 89 { POINT_RESIST_CRITICAL, }, // APPLY_ANTI_CRITICAL_PCT, 90 { POINT_RESIST_PENETRATE, }, // APPLY_ANTI_PENETRATE_PCT, 91 #ifdef ENABLE_WOLFMAN_CHARACTER { POINT_BLEEDING_REDUCE, }, // APPLY_BLEEDING_REDUCE, 92 { POINT_BLEEDING_PCT, }, // APPLY_BLEEDING_PCT, 93 { POINT_ATTBONUS_WOLFMAN, }, { POINT_RESIST_WOLFMAN, }, { POINT_RESIST_CLAW, }, #else { POINT_NONE, }, // APPLY_BLEEDING_REDUCE, 92 { POINT_NONE, }, // APPLY_BLEEDING_PCT, 93 { POINT_NONE, }, { POINT_NONE, }, { POINT_NONE, }, #endif #ifdef ENABLE_ACCE_COSTUME_SYSTEM { POINT_ACCEDRAIN_RATE, }, // APPLY_ACCEDRAIN_RATE, 97 #else { POINT_NONE, }, // APPLY_ACCEDRAIN_RATE, 97 #endif #ifdef ENABLE_MAGIC_REDUCTION_SYSTEM { POINT_RESIST_MAGIC_REDUCTION, }, // APPLY_RESIST_MAGIC_REDUCTION,98 #else { POINT_NONE, }, // APPLY_RESIST_MAGIC_REDUCTION,98 #endif { POINT_ENCHANT_ELECT, }, // APPLY_ENCHANT_ELECT,99 { POINT_ENCHANT_FIRE, }, // APPLY_ENCHANT_FIRE,100 { POINT_ENCHANT_ICE, }, // APPLY_ENCHANT_ICE,101 { POINT_ENCHANT_WIND, }, // APPLY_ENCHANT_WIND,102 { POINT_ENCHANT_EARTH, }, // APPLY_ENCHANT_EARTH,103 { POINT_ENCHANT_DARK, }, // APPLY_ENCHANT_DARK,104 { POINT_ATTBONUS_CZ, }, // APPLY_ATTBONUS_CZ,105 { POINT_ATTBONUS_INSECT, }, // APPLY_ATTBONUS_INSECT,106 { POINT_ATTBONUS_DESERT, }, // APPLY_ATTBONUS_DESERT,107 { POINT_ATTBONUS_SWORD, }, // APPLY_ATTBONUS_SWORD,108 { POINT_ATTBONUS_TWOHAND, }, // APPLY_ATTBONUS_TWOHAND,109 { POINT_ATTBONUS_DAGGER, }, // APPLY_ATTBONUS_DAGGER,110 { POINT_ATTBONUS_BELL, }, // APPLY_ATTBONUS_BELL,111 { POINT_ATTBONUS_FAN, }, // APPLY_ATTBONUS_FAN,112 { POINT_ATTBONUS_BOW, }, // APPLY_ATTBONUS_BOW,113 #ifdef ENABLE_WOLFMAN_CHARACTER { POINT_ATTBONUS_CLAW, }, // APPLY_ATTBONUS_CLAW,114 #else { POINT_NONE, }, // APPLY_ATTBONUS_CLAW,114 #endif { POINT_RESIST_HUMAN, }, // APPLY_RESIST_HUMAN,115 { POINT_RESIST_MOUNT_FALL, }, // APPLY_RESIST_MOUNT_FALL,116 { POINT_NONE, }, // APPLY_UNK117 (unimplemented) #ifdef ENABLE_MOUNT_COSTUME_EX_SYSTEM { POINT_MOUNT, }, // APPLY_MOUNT,118 #else { POINT_NONE, }, // APPLY_MOUNT,118 #endif }; const int aiItemMagicAttributePercentHigh[ITEM_ATTRIBUTE_MAX_LEVEL] = { 30, 40, 20, 8, 2 }; const int aiItemMagicAttributePercentLow[ITEM_ATTRIBUTE_MAX_LEVEL] = { 50, 40, 10, 0, 0 }; // ADD_ITEM_ATTRIBUTE const int aiItemAttributeAddPercent[ITEM_ATTRIBUTE_MAX_NUM] = { 100, 80, 60, 50, 30, 0, 0, }; // END_OF_ADD_ITEM_ATTRIBUTE const int aiExpLossPercents[PLAYER_EXP_TABLE_MAX + 1] = { 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, // 1 - 10 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, // 11 - 20 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, // 21 - 30 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 31 - 40 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, // 41 - 50 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 51 - 60 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, // 61 - 70 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 71 - 80 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 81 - 90 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 91 - 100 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 101 - 110 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 111 - 120 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 130 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 140 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 150 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 160 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 170 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 180 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 190 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 200 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 210 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 220 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 230 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 240 // 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 250 }; const int aiSkillBookCountForLevelUp[10] = { 3, 3, 3, 3, 3, 4, 4, 5, 5, 6 }; // ADD_GRANDMASTER_SKILL const int aiGrandMasterSkillBookCountForLevelUp[10] = { 3, 3, 5, 5, 7, 7, 10, 10, 10, 20, }; const int aiGrandMasterSkillBookMinCount[10] = { // 1, 1, 3, 5, 10, 15, 20, 30, 40, 50, // 3, 3, 5, 5, 10, 10, 15, 15, 20, 30 1, 1, 1, 2, 2, 3, 3, 4, 5, 6 }; const int aiGrandMasterSkillBookMaxCount[10] = { // 6, 15, 30, 45, 60, 80, 100, 120, 160, 200, // 6, 10, 15, 20, 30, 40, 50, 60, 70, 80 5, 7, 9, 11, 13, 15, 20, 25, 30, 35 }; // END_OF_ADD_GRANDMASTER_SKILL const int CHN_aiPartyBonusExpPercentByMemberCount[9] = { 0, 0, 12, 18, 26, 40, 53, 70, 100 }; // UPGRADE_PARTY_BONUS const int KOR_aiPartyBonusExpPercentByMemberCount[9] = { 0, 0, 30, // 66% * 2 - 100 60, // 53% * 3 - 100 75, // 44% * 4 - 100 90, // 38% * 5 - 100 105, // 34% * 6 - 100 110, // 30% * 7 - 100 140, // 30% * 8 - 100 }; const int KOR_aiUniqueItemPartyBonusExpPercentByMemberCount[9] = { 0, 0, 15*2, 14*3, 13*4, 12*5, 11*6, 10*7, 10*8, }; // END_OF_UPGRADE_PARTY_BONUS const int * aiChainLightningCountBySkillLevel = NULL; const int aiChainLightningCountBySkillLevel_euckr[SKILL_MAX_LEVEL+1] = { 0, // 0 2, // 1 2, // 2 2, // 3 2, // 4 2, // 5 2, // 6 2, // 7 2, // 8 3, // 9 3, // 10 3, // 11 3, // 12 3, // 13 3, // 14 3, // 15 3, // 16 3, // 17 3, // 18 4, // 19 4, // 20 4, // 21 4, // 22 4, // 23 5, // 24 5, // 25 5, // 26 5, // 27 5, // 28 5, // 29 5, // 30 5, // 31 5, // 32 5, // 33 5, // 34 5, // 35 5, // 36 5, // 37 5, // 38 5, // 39 5, // 40 }; const SStoneDropInfo aStoneDrop[STONE_INFO_MAX_NUM] = { // mob pct {+0 +1 +2 +3 +4} {8005, 60, {30, 30, 30, 9, 1} }, {8006, 60, {28, 29, 31, 11, 1} }, {8007, 60, {24, 29, 32, 13, 2} }, {8008, 60, {22, 28, 33, 15, 2} }, {8009, 60, {21, 27, 33, 17, 2} }, {8010, 60, {18, 26, 34, 20, 2} }, {8011, 60, {14, 26, 35, 22, 3} }, {8012, 60, {10, 26, 37, 24, 3} }, {8013, 60, {2, 26, 40, 29, 3} }, {8014, 60, {0, 26, 41, 30, 3} }, }; const char * c_apszEmpireNames[EMPIRE_MAX_NUM] = { "전제국", "신수국", "천조국", "진노국" }; const char * c_apszPrivNames[MAX_PRIV_NUM] = { "", "아이템이 나올 확률", "돈이 나올 확률", "돈 대박이 나올 확률", "경험치 배율", }; const int aiPolymorphPowerByLevel[SKILL_MAX_LEVEL + 1] = { 10, // 1 11, // 2 11, // 3 12, // 4 13, // 5 13, // 6 14, // 7 15, // 8 16, // 9 17, // 10 18, // 11 19, // 12 20, // 13 22, // 14 23, // 15 24, // 16 26, // 17 27, // 18 29, // 19 31, // 20 33, // 21 35, // 22 37, // 23 39, // 24 41, // 25 44, // 26 46, // 27 49, // 28 52, // 29 55, // 30 59, // 31 62, // 32 66, // 33 70, // 34 74, // 35 79, // 36 84, // 37 89, // 38 94, // 39 100, // 40 }; TGuildWarInfo KOR_aGuildWarInfo[GUILD_WAR_TYPE_MAX_NUM] = /* { long lMapIndex; int iWarPrice; int iWinnerPotionRewardPctToWinner; int iLoserPotionRewardPctToWinner; int iInitialScore; int iEndScore; }; */ { { 0, 0, 0, 0, 0, 0 }, { 110, 0, 100, 50, 0, 100 }, { 111, 0, 100, 50, 0, 10 }, }; const int aiAccessorySocketAddPct[ITEM_ACCESSORY_SOCKET_MAX_NUM] = { 50, 50, 50 }; const int aiAccessorySocketEffectivePct[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1] = { 0, 10, 20, 40 }; const int aiAccessorySocketDegradeTime[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1] = { 0, 3600 * 24, 3600 * 12, 3600 * 6 }; const int aiAccessorySocketPutPct[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1] = { 90, 80, 70, 0 }; #ifdef ENABLE_ASLAN_BIOLOGIST_SYSTEM const SBiologistInfo TBiologistInfo[BIOLOGIST_MISSION_MAX_NUM] = { /* Level Target-NPC, {collect_vnum, collect_count, chance, chance with bonus item} wait_time (min) {soulstone_vnum, dropchance (20 = 2%)} reward_item_vnum reward_bonus_type (0 = normal / 1 = select one), {bonus0, value0}, {bonus1, value1}, {bonus2, value2} */ { 30, 20084, {30006, 10, 80, 100}, 60, 30220, 50109, 0, {{POINT_MOV_SPEED, 10}, {0, 0}, {0, 0}}}, { 40, 20084, {30047, 15, 75, 100}, 60, 30221, 50110, 0, {{POINT_ATT_SPEED, 5}, {0, 0}, {0, 0}}}, { 50, 20084, {30015, 15, 75, 100}, 120, 30222, 50111, 0, {{POINT_DEF_GRADE_BONUS, 60}, {0, 0}, {0, 0}} }, { 60, 20084, {30050, 20, 75, 100}, 120, 30223, 50112, 0, {{POINT_ATT_GRADE_BONUS, 50}, {0, 0}, {0, 0}} }, { 70, 20084, {30165, 25, 65, 100}, 360, 30224, 50113, 0, {{POINT_MOV_SPEED, 11}, {POINT_NORMAL_HIT_DEFEND_BONUS, 10}, {0, 0}} }, { 80, 20084, {30166, 30, 65, 100}, 360, 30225, 50114, 0, {{POINT_ATT_SPEED, 6}, {POINT_SKILL_DAMAGE_BONUS, 10}, {POINT_NORMAL_HIT_DAMAGE_BONUS, 10}} }, { 85, 20084, {30167, 40, 65, 100}, 360, 30226, 50114, 0, {{POINT_ATTBONUS_HUMAN, 10}, {0, 0}, {0, 0}} }, { 90, 20084, {30168, 50, 65, 100}, 360, 30227, 50115, 0, {{POINT_RESIST_HUMAN, 8}, {0, 0}, {0, 0}} }, { 92, 20091, {30251, 10, 35, 70}, 720, 0, 0, 1, {{POINT_MAX_HP, 1000}, {POINT_DEF_GRADE_BONUS, 120}, {POINT_ATT_GRADE_BONUS, 51}} }, { 94, 20091, {30252, 20, 35, 70}, 720, 30228, 0, 1, {{POINT_MAX_HP, 1100}, {POINT_DEF_GRADE_BONUS, 140}, {POINT_ATT_GRADE_BONUS, 60}} }, }; #endif // END_OF_ACCESSORY_REFINE typedef struct SValueName { const char * c_pszName; long lValue; } TValueName; TValueName c_aApplyTypeNames[] = { { "STR", APPLY_STR }, { "DEX", APPLY_DEX }, { "CON", APPLY_CON }, { "INT", APPLY_INT }, { "MAX_HP", APPLY_MAX_HP }, { "MAX_SP", APPLY_MAX_SP }, { "MAX_STAMINA", APPLY_MAX_STAMINA }, { "POISON_REDUCE", APPLY_POISON_REDUCE }, { "EXP_DOUBLE_BONUS", APPLY_EXP_DOUBLE_BONUS }, { "GOLD_DOUBLE_BONUS", APPLY_GOLD_DOUBLE_BONUS }, { "ITEM_DROP_BONUS", APPLY_ITEM_DROP_BONUS }, { "HP_REGEN", APPLY_HP_REGEN }, { "SP_REGEN", APPLY_SP_REGEN }, { "ATTACK_SPEED", APPLY_ATT_SPEED }, { "MOVE_SPEED", APPLY_MOV_SPEED }, { "CAST_SPEED", APPLY_CAST_SPEED }, { "ATT_BONUS", APPLY_ATT_GRADE_BONUS }, { "DEF_BONUS", APPLY_DEF_GRADE_BONUS }, { "MAGIC_ATT_GRADE",APPLY_MAGIC_ATT_GRADE }, { "MAGIC_DEF_GRADE",APPLY_MAGIC_DEF_GRADE }, { "SKILL", APPLY_SKILL }, { "ATTBONUS_ANIMAL",APPLY_ATTBONUS_ANIMAL }, { "ATTBONUS_UNDEAD",APPLY_ATTBONUS_UNDEAD }, { "ATTBONUS_DEVIL", APPLY_ATTBONUS_DEVIL }, { "ATTBONUS_HUMAN", APPLY_ATTBONUS_HUMAN }, { "ADD_BOW_DISTANCE",APPLY_BOW_DISTANCE }, { "DODGE", APPLY_DODGE }, { "BLOCK", APPLY_BLOCK }, { "RESIST_SWORD", APPLY_RESIST_SWORD }, { "RESIST_TWOHAND", APPLY_RESIST_TWOHAND }, { "RESIST_DAGGER", APPLY_RESIST_DAGGER }, { "RESIST_BELL", APPLY_RESIST_BELL }, { "RESIST_FAN", APPLY_RESIST_FAN }, { "RESIST_BOW", APPLY_RESIST_BOW }, { "RESIST_FIRE", APPLY_RESIST_FIRE }, { "RESIST_ELEC", APPLY_RESIST_ELEC }, { "RESIST_MAGIC", APPLY_RESIST_MAGIC }, { "RESIST_WIND", APPLY_RESIST_WIND }, { "REFLECT_MELEE", APPLY_REFLECT_MELEE }, { "REFLECT_CURSE", APPLY_REFLECT_CURSE }, { "RESIST_ICE", APPLY_RESIST_ICE }, { "RESIST_EARTH", APPLY_RESIST_EARTH }, { "RESIST_DARK", APPLY_RESIST_DARK }, { "RESIST_CRITICAL", APPLY_ANTI_CRITICAL_PCT }, { "RESIST_PENETRATE", APPLY_ANTI_PENETRATE_PCT }, { "POISON", APPLY_POISON_PCT }, { "SLOW", APPLY_SLOW_PCT }, { "STUN", APPLY_STUN_PCT }, { "STEAL_HP", APPLY_STEAL_HP }, { "STEAL_SP", APPLY_STEAL_SP }, { "MANA_BURN_PCT", APPLY_MANA_BURN_PCT }, { "CRITICAL", APPLY_CRITICAL_PCT }, { "PENETRATE", APPLY_PENETRATE_PCT }, { "KILL_SP_RECOVER",APPLY_KILL_SP_RECOVER }, { "KILL_HP_RECOVER",APPLY_KILL_HP_RECOVER }, { "PENETRATE_PCT", APPLY_PENETRATE_PCT }, { "CRITICAL_PCT", APPLY_CRITICAL_PCT }, { "POISON_PCT", APPLY_POISON_PCT }, { "STUN_PCT", APPLY_STUN_PCT }, { "ATT_BONUS_TO_WARRIOR", APPLY_ATTBONUS_WARRIOR }, { "ATT_BONUS_TO_ASSASSIN", APPLY_ATTBONUS_ASSASSIN }, { "ATT_BONUS_TO_SURA", APPLY_ATTBONUS_SURA }, { "ATT_BONUS_TO_SHAMAN", APPLY_ATTBONUS_SHAMAN }, { "ATT_BONUS_TO_MONSTER", APPLY_ATTBONUS_MONSTER }, { "ATT_BONUS_TO_MOB", APPLY_ATTBONUS_MONSTER }, { "MALL_ATTBONUS", APPLY_MALL_ATTBONUS }, { "MALL_EXPBONUS", APPLY_MALL_EXPBONUS }, { "MALL_DEFBONUS", APPLY_MALL_DEFBONUS }, { "MALL_ITEMBONUS", APPLY_MALL_ITEMBONUS }, { "MALL_GOLDBONUS", APPLY_MALL_GOLDBONUS }, { "MAX_HP_PCT", APPLY_MAX_HP_PCT }, { "MAX_SP_PCT", APPLY_MAX_SP_PCT }, { "SKILL_DAMAGE_BONUS", APPLY_SKILL_DAMAGE_BONUS }, { "NORMAL_HIT_DAMAGE_BONUS",APPLY_NORMAL_HIT_DAMAGE_BONUS }, { "SKILL_DEFEND_BONUS", APPLY_SKILL_DEFEND_BONUS }, { "NORMAL_HIT_DEFEND_BONUS",APPLY_NORMAL_HIT_DEFEND_BONUS }, { "PCBANG_EXP_BONUS", APPLY_PC_BANG_EXP_BONUS }, { "PCBANG_DROP_BONUS", APPLY_PC_BANG_DROP_BONUS }, { "RESIST_WARRIOR", APPLY_RESIST_WARRIOR}, { "RESIST_ASSASSIN", APPLY_RESIST_ASSASSIN}, { "RESIST_SURA", APPLY_RESIST_SURA}, { "RESIST_SHAMAN", APPLY_RESIST_SHAMAN}, { "INFINITE_AFFECT_DURATION", 0x1FFFFFFF }, { "ENERGY", APPLY_ENERGY }, { "COSTUME_ATTR_BONUS", APPLY_COSTUME_ATTR_BONUS }, { "MAGIC_ATTBONUS_PER", APPLY_MAGIC_ATTBONUS_PER }, { "MELEE_MAGIC_ATTBONUS_PER", APPLY_MELEE_MAGIC_ATTBONUS_PER }, #ifdef ENABLE_WOLFMAN_CHARACTER { "BLEEDING_REDUCE",APPLY_BLEEDING_REDUCE }, { "BLEEDING_PCT",APPLY_BLEEDING_PCT }, { "ATT_BONUS_TO_WOLFMAN",APPLY_ATTBONUS_WOLFMAN }, { "RESIST_WOLFMAN",APPLY_RESIST_WOLFMAN }, { "RESIST_CLAW",APPLY_RESIST_CLAW }, #endif #ifdef ENABLE_ACCE_COSTUME_SYSTEM { "ACCEDRAIN_RATE",APPLY_ACCEDRAIN_RATE }, #endif #ifdef ENABLE_MAGIC_REDUCTION_SYSTEM { "RESIST_MAGIC_REDUCTION",APPLY_RESIST_MAGIC_REDUCTION }, #endif { "ENCHANT_ELECT", APPLY_ENCHANT_ELECT }, { "ENCHANT_FIRE", APPLY_ENCHANT_FIRE }, { "ENCHANT_ICE", APPLY_ENCHANT_ICE }, { "ENCHANT_WIND", APPLY_ENCHANT_WIND }, { "ENCHANT_EARTH", APPLY_ENCHANT_EARTH }, { "ENCHANT_DARK", APPLY_ENCHANT_DARK }, { NULL, 0 } }; long FN_get_apply_type(const char *apply_type_string) { TValueName *value_name; for (value_name = c_aApplyTypeNames; value_name->c_pszName; ++value_name) { if (0==strcasecmp(value_name->c_pszName, apply_type_string)) return value_name->lValue; } return 0; } //martysama0134's cc449580f8a0ea79d66107125c7ee3d3 Chce dodać 180 LVL na serwer i chyba zrobiłem wszystko git nie? dodam również ze w pliku lenght.h zmieniłem na a plik podesłany wyżej to constans.cpp
Opublikowano 5 Lutego5 Lut 8 godzin temu, eksyyy napisał(a): Chce dodać 180 LVL na serwer i chyba zrobilem wszystko git nie? dodam rowniez ze w pliku lenght.h zmienilem na a plik podeslany wyzej to constans.cpp i co nie śmiga? zobacz może w configu masz zmienna na Lv gotowa już home/channele
Opublikowano 5 Lutego5 Lut Autor 8 godzin temu, Dex666 napisał(a): i co nie śmiga? zobacz może w configu masz zmienna na Lv gotowa już Już ogarnąłem, musiałem jeszcze w channelach pozmieniać Lv z max 120 na 180 🙂