Added Oktoberfest costume.
- Requires client version 20131218 or newer.
This commit is contained in:
parent
1ba024069a
commit
b818c78f1d
@ -132,6 +132,10 @@ summer_ignorepalette: no
|
|||||||
// Set this to yes if your cloth palettes pack doesn't have Hanbok palettes (or has less than the other jobs)
|
// Set this to yes if your cloth palettes pack doesn't have Hanbok palettes (or has less than the other jobs)
|
||||||
hanbok_ignorepalette: no
|
hanbok_ignorepalette: no
|
||||||
|
|
||||||
|
// Do not display cloth colors for the Oktoberfest class?
|
||||||
|
// Set this to yes if your cloth palettes pack doesn't have Oktoberfest palettes (or has less than the other jobs)
|
||||||
|
oktoberfest_ignorepalette: no
|
||||||
|
|
||||||
// Set this to 1 if your clients have langtype problems and can't display motd properly
|
// Set this to 1 if your clients have langtype problems and can't display motd properly
|
||||||
motd_type: 0
|
motd_type: 0
|
||||||
|
|
||||||
|
@ -694,6 +694,7 @@
|
|||||||
693: Shadow Chaser T
|
693: Shadow Chaser T
|
||||||
694: Hanbok
|
694: Hanbok
|
||||||
695: Rebellion
|
695: Rebellion
|
||||||
|
696: Oktoberfest
|
||||||
|
|
||||||
// @vip
|
// @vip
|
||||||
700: Usage: @vip <time> <character name>
|
700: Usage: @vip <time> <character name>
|
||||||
|
@ -44,6 +44,7 @@ Job_Ninja 25
|
|||||||
Job_Xmas 26
|
Job_Xmas 26
|
||||||
Job_Summer 27
|
Job_Summer 27
|
||||||
Job_Hanbok 28
|
Job_Hanbok 28
|
||||||
|
Job_Oktoberfest 29
|
||||||
|
|
||||||
Job_Novice_High 4001
|
Job_Novice_High 4001
|
||||||
Job_Swordman_High 4002
|
Job_Swordman_High 4002
|
||||||
@ -326,6 +327,7 @@ Option_Dragon4 0x02000000
|
|||||||
Option_Dragon5 0x04000000
|
Option_Dragon5 0x04000000
|
||||||
Option_Hanbok 0x08000000
|
Option_Hanbok 0x08000000
|
||||||
Option_Mounting 0x10000000
|
Option_Mounting 0x10000000
|
||||||
|
Option_Oktoberfest 0x20000000
|
||||||
|
|
||||||
bc_all 0
|
bc_all 0
|
||||||
bc_map 1
|
bc_map 1
|
||||||
@ -1720,7 +1722,10 @@ SC_MTF_RANGEATK 582
|
|||||||
SC_MTF_MATK 583
|
SC_MTF_MATK 583
|
||||||
SC_MTF_MLEATKED 584
|
SC_MTF_MLEATKED 584
|
||||||
SC_MTF_CRIDAMAGE 585
|
SC_MTF_CRIDAMAGE 585
|
||||||
SC_EXTREMITYFIST2 586
|
SC_OKTOBERFEST 586
|
||||||
|
SC_STRANGELIGHTS 587
|
||||||
|
SC_DECORATION_OF_MUSIC 588
|
||||||
|
SC_EXTREMITYFIST2 589
|
||||||
|
|
||||||
//Status Icon
|
//Status Icon
|
||||||
SI_BLANK -1
|
SI_BLANK -1
|
||||||
|
@ -8887,7 +8887,7 @@
|
|||||||
22620,Memorial_Box,Box Of Memories,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ /* TODO */ },{},{}
|
22620,Memorial_Box,Box Of Memories,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ /* TODO */ },{},{}
|
||||||
22621,Squid_Bbq,Barbecued Squid,2,5000,,250,,,,,0xFFFFFFFF,63,2,,,,,,{ specialeffect2 EF_EXIT; /* SetBuff "EFST_JP_EVENT04" 300000 1 */ percentheal 5,5; },{},{}
|
22621,Squid_Bbq,Barbecued Squid,2,5000,,250,,,,,0xFFFFFFFF,63,2,,,,,,{ specialeffect2 EF_EXIT; /* SetBuff "EFST_JP_EVENT04" 300000 1 */ percentheal 5,5; },{},{}
|
||||||
22624,Riesen_Bretzel,Riesen Bretzel,0,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ percentheal 100,0; },{},{}
|
22624,Riesen_Bretzel,Riesen Bretzel,0,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ percentheal 100,0; },{},{}
|
||||||
22625,Oktoberfest_Bag,Oktoberfest Bag,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ /* sc_start SC_OKTOBERFEST,600000,0; */ },{},{}
|
22625,Oktoberfest_Bag,Oktoberfest Bag,2,0,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_OKTOBERFEST,600000,0; },{},{}
|
||||||
//
|
//
|
||||||
22648,Angeling_Package,Angel Ring Package,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /* TODO */ },{},{}
|
22648,Angeling_Package,Angel Ring Package,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /* TODO */ },{},{}
|
||||||
22649,Deviling_Package,Devil Ring Package,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /* TODO */ },{},{}
|
22649,Deviling_Package,Devil Ring Package,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /* TODO */ },{},{}
|
||||||
|
@ -616,6 +616,7 @@ enum {
|
|||||||
JOB_XMAS,
|
JOB_XMAS,
|
||||||
JOB_SUMMER,
|
JOB_SUMMER,
|
||||||
JOB_HANBOK,
|
JOB_HANBOK,
|
||||||
|
JOB_OKTOBERFEST,
|
||||||
JOB_MAX_BASIC,
|
JOB_MAX_BASIC,
|
||||||
|
|
||||||
JOB_NOVICE_HIGH = 4001,
|
JOB_NOVICE_HIGH = 4001,
|
||||||
|
@ -968,7 +968,7 @@ ACMD_FUNC(jobchange)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (job == JOB_KNIGHT2 || job == JOB_CRUSADER2 || job == JOB_WEDDING || job == JOB_XMAS || job == JOB_SUMMER || job == JOB_HANBOK
|
if (job == JOB_KNIGHT2 || job == JOB_CRUSADER2 || job == JOB_WEDDING || job == JOB_XMAS || job == JOB_SUMMER || job == JOB_HANBOK || job == JOB_OKTOBERFEST
|
||||||
|| job == JOB_LORD_KNIGHT2 || job == JOB_PALADIN2 || job == JOB_BABY_KNIGHT2 || job == JOB_BABY_CRUSADER2 || job == JOB_STAR_GLADIATOR2
|
|| job == JOB_LORD_KNIGHT2 || job == JOB_PALADIN2 || job == JOB_BABY_KNIGHT2 || job == JOB_BABY_CRUSADER2 || job == JOB_STAR_GLADIATOR2
|
||||||
|| (job >= JOB_RUNE_KNIGHT2 && job <= JOB_MECHANIC_T2) || (job >= JOB_BABY_RUNE2 && job <= JOB_BABY_MECHANIC2))
|
|| (job >= JOB_RUNE_KNIGHT2 && job <= JOB_MECHANIC_T2) || (job >= JOB_BABY_RUNE2 && job <= JOB_BABY_MECHANIC2))
|
||||||
{ // Deny direct transformation into dummy jobs
|
{ // Deny direct transformation into dummy jobs
|
||||||
|
@ -7046,6 +7046,7 @@ static const struct _battle_data {
|
|||||||
{ "xmas_ignorepalette", &battle_config.xmas_ignorepalette, 0, 0, 1, },
|
{ "xmas_ignorepalette", &battle_config.xmas_ignorepalette, 0, 0, 1, },
|
||||||
{ "summer_ignorepalette", &battle_config.summer_ignorepalette, 0, 0, 1, },
|
{ "summer_ignorepalette", &battle_config.summer_ignorepalette, 0, 0, 1, },
|
||||||
{ "hanbok_ignorepalette", &battle_config.hanbok_ignorepalette, 0, 0, 1, },
|
{ "hanbok_ignorepalette", &battle_config.hanbok_ignorepalette, 0, 0, 1, },
|
||||||
|
{ "oktoberfest_ignorepalette", &battle_config.oktoberfest_ignorepalette, 0, 0, 1, },
|
||||||
{ "natural_healhp_interval", &battle_config.natural_healhp_interval, 6000, NATURAL_HEAL_INTERVAL, INT_MAX, },
|
{ "natural_healhp_interval", &battle_config.natural_healhp_interval, 6000, NATURAL_HEAL_INTERVAL, INT_MAX, },
|
||||||
{ "natural_healsp_interval", &battle_config.natural_healsp_interval, 8000, NATURAL_HEAL_INTERVAL, INT_MAX, },
|
{ "natural_healsp_interval", &battle_config.natural_healsp_interval, 8000, NATURAL_HEAL_INTERVAL, INT_MAX, },
|
||||||
{ "natural_heal_skill_interval", &battle_config.natural_heal_skill_interval, 10000, NATURAL_HEAL_INTERVAL, INT_MAX, },
|
{ "natural_heal_skill_interval", &battle_config.natural_heal_skill_interval, 10000, NATURAL_HEAL_INTERVAL, INT_MAX, },
|
||||||
|
@ -229,6 +229,7 @@ extern struct Battle_Config
|
|||||||
int xmas_ignorepalette; // [Valaris]
|
int xmas_ignorepalette; // [Valaris]
|
||||||
int summer_ignorepalette; // [Zephyrus]
|
int summer_ignorepalette; // [Zephyrus]
|
||||||
int hanbok_ignorepalette;
|
int hanbok_ignorepalette;
|
||||||
|
int oktoberfest_ignorepalette;
|
||||||
int natural_healhp_interval;
|
int natural_healhp_interval;
|
||||||
int natural_healsp_interval;
|
int natural_healsp_interval;
|
||||||
int natural_heal_skill_interval;
|
int natural_heal_skill_interval;
|
||||||
|
@ -859,7 +859,7 @@ void clif_clearunit_delayed(struct block_list* bl, clr_type type, unsigned int t
|
|||||||
|
|
||||||
void clif_get_weapon_view(struct map_session_data* sd, unsigned short *rhand, unsigned short *lhand)
|
void clif_get_weapon_view(struct map_session_data* sd, unsigned short *rhand, unsigned short *lhand)
|
||||||
{
|
{
|
||||||
if(sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK))
|
if(sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST))
|
||||||
{
|
{
|
||||||
*rhand = *lhand = 0;
|
*rhand = *lhand = 0;
|
||||||
return;
|
return;
|
||||||
@ -3094,13 +3094,14 @@ void clif_changelook(struct block_list *bl,int type,int val)
|
|||||||
break;
|
break;
|
||||||
case LOOK_BASE:
|
case LOOK_BASE:
|
||||||
vd->class_ = val;
|
vd->class_ = val;
|
||||||
if (vd->class_ == JOB_WEDDING || vd->class_ == JOB_XMAS || vd->class_ == JOB_SUMMER || vd->class_ == JOB_HANBOK)
|
if (vd->class_ == JOB_WEDDING || vd->class_ == JOB_XMAS || vd->class_ == JOB_SUMMER || vd->class_ == JOB_HANBOK || vd->class_ == JOB_OKTOBERFEST)
|
||||||
vd->weapon = vd->shield = 0;
|
vd->weapon = vd->shield = 0;
|
||||||
if (vd->cloth_color && (
|
if (vd->cloth_color && (
|
||||||
(vd->class_ == JOB_WEDDING && battle_config.wedding_ignorepalette) ||
|
(vd->class_ == JOB_WEDDING && battle_config.wedding_ignorepalette) ||
|
||||||
(vd->class_ == JOB_XMAS && battle_config.xmas_ignorepalette) ||
|
(vd->class_ == JOB_XMAS && battle_config.xmas_ignorepalette) ||
|
||||||
(vd->class_ == JOB_SUMMER && battle_config.summer_ignorepalette) ||
|
(vd->class_ == JOB_SUMMER && battle_config.summer_ignorepalette) ||
|
||||||
(vd->class_ == JOB_HANBOK && battle_config.hanbok_ignorepalette)
|
(vd->class_ == JOB_HANBOK && battle_config.hanbok_ignorepalette) ||
|
||||||
|
(vd->class_ == JOB_OKTOBERFEST && battle_config.oktoberfest_ignorepalette)
|
||||||
))
|
))
|
||||||
clif_changelook(bl,LOOK_CLOTHES_COLOR,0);
|
clif_changelook(bl,LOOK_CLOTHES_COLOR,0);
|
||||||
break;
|
break;
|
||||||
@ -3124,7 +3125,8 @@ void clif_changelook(struct block_list *bl,int type,int val)
|
|||||||
(vd->class_ == JOB_WEDDING && battle_config.wedding_ignorepalette) ||
|
(vd->class_ == JOB_WEDDING && battle_config.wedding_ignorepalette) ||
|
||||||
(vd->class_ == JOB_XMAS && battle_config.xmas_ignorepalette) ||
|
(vd->class_ == JOB_XMAS && battle_config.xmas_ignorepalette) ||
|
||||||
(vd->class_ == JOB_SUMMER && battle_config.summer_ignorepalette) ||
|
(vd->class_ == JOB_SUMMER && battle_config.summer_ignorepalette) ||
|
||||||
(vd->class_ == JOB_HANBOK && battle_config.hanbok_ignorepalette)
|
(vd->class_ == JOB_HANBOK && battle_config.hanbok_ignorepalette) ||
|
||||||
|
(vd->class_ == JOB_OKTOBERFEST && battle_config.oktoberfest_ignorepalette)
|
||||||
))
|
))
|
||||||
val = 0;
|
val = 0;
|
||||||
vd->cloth_color = val;
|
vd->cloth_color = val;
|
||||||
@ -10226,7 +10228,7 @@ void clif_parse_ActionRequest_sub(struct map_session_data *sd, int action_type,
|
|||||||
if( pc_cant_act(sd) || sd->sc.option&OPTION_HIDE )
|
if( pc_cant_act(sd) || sd->sc.option&OPTION_HIDE )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK) )
|
if( sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( sd->sc.data[SC_BASILICA] || sd->sc.data[SC__SHADOWFORM] )
|
if( sd->sc.data[SC_BASILICA] || sd->sc.data[SC__SHADOWFORM] )
|
||||||
@ -11249,7 +11251,7 @@ void clif_parse_UseSkillToId(int fd, struct map_session_data *sd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK) )
|
if( sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( sd->sc.data[SC_BASILICA] && (skill_id != HP_BASILICA || sd->sc.data[SC_BASILICA]->val4 != sd->bl.id) )
|
if( sd->sc.data[SC_BASILICA] && (skill_id != HP_BASILICA || sd->sc.data[SC_BASILICA]->val4 != sd->bl.id) )
|
||||||
@ -11333,7 +11335,7 @@ static void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, uin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK) )
|
if( sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( sd->sc.data[SC_BASILICA] && (skill_id != HP_BASILICA || sd->sc.data[SC_BASILICA]->val4 != sd->bl.id) )
|
if( sd->sc.data[SC_BASILICA] && (skill_id != HP_BASILICA || sd->sc.data[SC_BASILICA]->val4 != sd->bl.id) )
|
||||||
|
@ -135,6 +135,7 @@ enum {
|
|||||||
MAPID_XMAS,
|
MAPID_XMAS,
|
||||||
MAPID_SUMMER,
|
MAPID_SUMMER,
|
||||||
MAPID_HANBOK,
|
MAPID_HANBOK,
|
||||||
|
MAPID_OKTOBERFEST,
|
||||||
MAPID_GANGSI,
|
MAPID_GANGSI,
|
||||||
//2-1 Jobs
|
//2-1 Jobs
|
||||||
MAPID_SUPER_NOVICE = JOBL_2_1|0x0,
|
MAPID_SUPER_NOVICE = JOBL_2_1|0x0,
|
||||||
|
12
src/map/pc.c
12
src/map/pc.c
@ -5281,6 +5281,7 @@ int pc_jobid2mapid(unsigned short b_class)
|
|||||||
case JOB_XMAS: return MAPID_XMAS;
|
case JOB_XMAS: return MAPID_XMAS;
|
||||||
case JOB_SUMMER: return MAPID_SUMMER;
|
case JOB_SUMMER: return MAPID_SUMMER;
|
||||||
case JOB_HANBOK: return MAPID_HANBOK;
|
case JOB_HANBOK: return MAPID_HANBOK;
|
||||||
|
case JOB_OKTOBERFEST: return MAPID_OKTOBERFEST;
|
||||||
case JOB_GANGSI: return MAPID_GANGSI;
|
case JOB_GANGSI: return MAPID_GANGSI;
|
||||||
//2-1 Jobs
|
//2-1 Jobs
|
||||||
case JOB_SUPER_NOVICE: return MAPID_SUPER_NOVICE;
|
case JOB_SUPER_NOVICE: return MAPID_SUPER_NOVICE;
|
||||||
@ -5424,6 +5425,7 @@ int pc_mapid2jobid(unsigned short class_, int sex)
|
|||||||
case MAPID_XMAS: return JOB_XMAS;
|
case MAPID_XMAS: return JOB_XMAS;
|
||||||
case MAPID_SUMMER: return JOB_SUMMER;
|
case MAPID_SUMMER: return JOB_SUMMER;
|
||||||
case MAPID_HANBOK: return JOB_HANBOK;
|
case MAPID_HANBOK: return JOB_HANBOK;
|
||||||
|
case MAPID_OKTOBERFEST: return JOB_OKTOBERFEST;
|
||||||
case MAPID_GANGSI: return JOB_GANGSI;
|
case MAPID_GANGSI: return JOB_GANGSI;
|
||||||
//2-1 Jobs
|
//2-1 Jobs
|
||||||
case MAPID_SUPER_NOVICE: return JOB_SUPER_NOVICE;
|
case MAPID_SUPER_NOVICE: return JOB_SUPER_NOVICE;
|
||||||
@ -5591,6 +5593,9 @@ const char* job_name(int class_)
|
|||||||
case JOB_HANBOK:
|
case JOB_HANBOK:
|
||||||
return msg_txt(NULL,694);
|
return msg_txt(NULL,694);
|
||||||
|
|
||||||
|
case JOB_OKTOBERFEST:
|
||||||
|
return msg_txt(NULL,696);
|
||||||
|
|
||||||
case JOB_NOVICE_HIGH:
|
case JOB_NOVICE_HIGH:
|
||||||
case JOB_SWORDMAN_HIGH:
|
case JOB_SWORDMAN_HIGH:
|
||||||
case JOB_MAGE_HIGH:
|
case JOB_MAGE_HIGH:
|
||||||
@ -7960,6 +7965,11 @@ void pc_setoption(struct map_session_data *sd,int type)
|
|||||||
else if (!(type&OPTION_HANBOK) && p_type&OPTION_HANBOK)
|
else if (!(type&OPTION_HANBOK) && p_type&OPTION_HANBOK)
|
||||||
new_look = -1;
|
new_look = -1;
|
||||||
|
|
||||||
|
if (type&OPTION_OKTOBERFEST && !(p_type&OPTION_OKTOBERFEST))
|
||||||
|
new_look = JOB_OKTOBERFEST;
|
||||||
|
else if (!(type&OPTION_OKTOBERFEST) && p_type&OPTION_OKTOBERFEST)
|
||||||
|
new_look = -1;
|
||||||
|
|
||||||
if (sd->disguise || !new_look)
|
if (sd->disguise || !new_look)
|
||||||
return; //Disguises break sprite changes
|
return; //Disguises break sprite changes
|
||||||
|
|
||||||
@ -10240,7 +10250,7 @@ int pc_readdb(void)
|
|||||||
for (i = 0; i < JOB_MAX; i++) {
|
for (i = 0; i < JOB_MAX; i++) {
|
||||||
int idx;
|
int idx;
|
||||||
if (!pcdb_checkid(i)) continue;
|
if (!pcdb_checkid(i)) continue;
|
||||||
if (i == JOB_WEDDING || i == JOB_XMAS || i == JOB_SUMMER || i == JOB_HANBOK)
|
if (i == JOB_WEDDING || i == JOB_XMAS || i == JOB_SUMMER || i == JOB_HANBOK || i == JOB_OKTOBERFEST)
|
||||||
continue; //Classes that do not need exp tables.
|
continue; //Classes that do not need exp tables.
|
||||||
idx = pc_class2idx(i);
|
idx = pc_class2idx(i);
|
||||||
if (!job_info[idx].max_level[0])
|
if (!job_info[idx].max_level[0])
|
||||||
|
@ -17272,9 +17272,10 @@ BUILDIN_FUNC(setmounting) {
|
|||||||
TBL_PC* sd;
|
TBL_PC* sd;
|
||||||
if( (sd = script_rid2sd(st)) == NULL )
|
if( (sd = script_rid2sd(st)) == NULL )
|
||||||
return 0;
|
return 0;
|
||||||
if( sd->sc.option&(OPTION_WUGRIDER|OPTION_RIDING|OPTION_DRAGON|OPTION_MADOGEAR) )
|
if( sd->sc.option&(OPTION_WUGRIDER|OPTION_RIDING|OPTION_DRAGON|OPTION_MADOGEAR) ) {
|
||||||
|
clif_msgtable(sd->fd, 0x78b);
|
||||||
script_pushint(st,0);//can't mount with one of these
|
script_pushint(st,0);//can't mount with one of these
|
||||||
else {
|
} else {
|
||||||
if( sd->sc.option&OPTION_MOUNTING )
|
if( sd->sc.option&OPTION_MOUNTING )
|
||||||
pc_setoption(sd, sd->sc.option&~OPTION_MOUNTING);//release mount
|
pc_setoption(sd, sd->sc.option&~OPTION_MOUNTING);//release mount
|
||||||
else
|
else
|
||||||
|
@ -949,8 +949,10 @@ void initChangeTables(void)
|
|||||||
StatusIconChangeTable[SC_MONSTER_TRANSFORM] = SI_MONSTER_TRANSFORM;
|
StatusIconChangeTable[SC_MONSTER_TRANSFORM] = SI_MONSTER_TRANSFORM;
|
||||||
StatusIconChangeTable[SC_MOONSTAR] = SI_MOONSTAR;
|
StatusIconChangeTable[SC_MOONSTAR] = SI_MOONSTAR;
|
||||||
StatusIconChangeTable[SC_SUPER_STAR] = SI_SUPER_STAR;
|
StatusIconChangeTable[SC_SUPER_STAR] = SI_SUPER_STAR;
|
||||||
|
StatusIconChangeTable[SC_STRANGELIGHTS] = SI_STRANGELIGHTS;
|
||||||
|
StatusIconChangeTable[SC_DECORATION_OF_MUSIC] = SI_DECORATION_OF_MUSIC;
|
||||||
StatusIconChangeTable[SC_BURNING] = SI_BURNT;
|
StatusIconChangeTable[SC_BURNING] = SI_BURNT;
|
||||||
|
|
||||||
StatusIconChangeTable[SC_H_MINE] = SI_H_MINE;
|
StatusIconChangeTable[SC_H_MINE] = SI_H_MINE;
|
||||||
StatusIconChangeTable[SC_QD_SHOT_READY] = SI_E_QD_SHOT_READY;
|
StatusIconChangeTable[SC_QD_SHOT_READY] = SI_E_QD_SHOT_READY;
|
||||||
StatusIconChangeTable[SC_HEAT_BARREL_AFTER] = SI_HEAT_BARREL_AFTER;
|
StatusIconChangeTable[SC_HEAT_BARREL_AFTER] = SI_HEAT_BARREL_AFTER;
|
||||||
@ -1043,6 +1045,8 @@ void initChangeTables(void)
|
|||||||
StatusChangeFlagTable[SC_MDEFSET] |= SCB_MDEF;
|
StatusChangeFlagTable[SC_MDEFSET] |= SCB_MDEF;
|
||||||
StatusChangeFlagTable[SC_MOONSTAR] |= SCB_NONE;
|
StatusChangeFlagTable[SC_MOONSTAR] |= SCB_NONE;
|
||||||
StatusChangeFlagTable[SC_SUPER_STAR] |= SCB_NONE;
|
StatusChangeFlagTable[SC_SUPER_STAR] |= SCB_NONE;
|
||||||
|
StatusChangeFlagTable[SC_STRANGELIGHTS] |= SCB_NONE;
|
||||||
|
StatusChangeFlagTable[SC_DECORATION_OF_MUSIC] |= SCB_NONE;
|
||||||
|
|
||||||
StatusChangeFlagTable[SC_MTF_ASPD] = SCB_ASPD|SCB_HIT;
|
StatusChangeFlagTable[SC_MTF_ASPD] = SCB_ASPD|SCB_HIT;
|
||||||
StatusChangeFlagTable[SC_MTF_MATK] = SCB_MATK;
|
StatusChangeFlagTable[SC_MTF_MATK] = SCB_MATK;
|
||||||
@ -6740,6 +6744,8 @@ void status_set_viewdata(struct block_list *bl, int class_)
|
|||||||
class_ = JOB_XMAS;
|
class_ = JOB_XMAS;
|
||||||
else if (sd->sc.option&OPTION_HANBOK)
|
else if (sd->sc.option&OPTION_HANBOK)
|
||||||
class_ = JOB_HANBOK;
|
class_ = JOB_HANBOK;
|
||||||
|
else if (sd->sc.option&OPTION_OKTOBERFEST)
|
||||||
|
class_ = JOB_OKTOBERFEST;
|
||||||
else if (sd->sc.option&OPTION_RIDING) {
|
else if (sd->sc.option&OPTION_RIDING) {
|
||||||
switch (class_) { // Adapt class to a Mounted one.
|
switch (class_) { // Adapt class to a Mounted one.
|
||||||
case JOB_KNIGHT:
|
case JOB_KNIGHT:
|
||||||
@ -6846,6 +6852,7 @@ void status_set_viewdata(struct block_list *bl, int class_)
|
|||||||
|| (vd->class_==JOB_XMAS && battle_config.xmas_ignorepalette)
|
|| (vd->class_==JOB_XMAS && battle_config.xmas_ignorepalette)
|
||||||
|| (vd->class_==JOB_SUMMER && battle_config.summer_ignorepalette)
|
|| (vd->class_==JOB_SUMMER && battle_config.summer_ignorepalette)
|
||||||
|| (vd->class_ == JOB_HANBOK && battle_config.hanbok_ignorepalette)
|
|| (vd->class_ == JOB_HANBOK && battle_config.hanbok_ignorepalette)
|
||||||
|
|| (vd->class_ == JOB_OKTOBERFEST && battle_config.oktoberfest_ignorepalette)
|
||||||
))
|
))
|
||||||
vd->cloth_color = 0;
|
vd->cloth_color = 0;
|
||||||
}
|
}
|
||||||
@ -8232,6 +8239,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
case SC_XMAS:
|
case SC_XMAS:
|
||||||
case SC_SUMMER:
|
case SC_SUMMER:
|
||||||
case SC_HANBOK:
|
case SC_HANBOK:
|
||||||
|
case SC_OKTOBERFEST:
|
||||||
if (!vd) return 0;
|
if (!vd) return 0;
|
||||||
// Store previous values as they could be removed.
|
// Store previous values as they could be removed.
|
||||||
val1 = vd->class_;
|
val1 = vd->class_;
|
||||||
@ -8241,7 +8249,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
unit_stop_attack(bl);
|
unit_stop_attack(bl);
|
||||||
clif_changelook(bl,LOOK_WEAPON,0);
|
clif_changelook(bl,LOOK_WEAPON,0);
|
||||||
clif_changelook(bl,LOOK_SHIELD,0);
|
clif_changelook(bl,LOOK_SHIELD,0);
|
||||||
clif_changelook(bl,LOOK_BASE,type==SC_WEDDING?JOB_WEDDING:type==SC_XMAS?JOB_XMAS:type==SC_SUMMER?JOB_SUMMER:JOB_HANBOK);
|
clif_changelook(bl,LOOK_BASE,type==SC_WEDDING?JOB_WEDDING:type==SC_XMAS?JOB_XMAS:type==SC_SUMMER?JOB_SUMMER:type==SC_HANBOK?JOB_HANBOK:JOB_OKTOBERFEST);
|
||||||
clif_changelook(bl,LOOK_CLOTHES_COLOR,vd->cloth_color);
|
clif_changelook(bl,LOOK_CLOTHES_COLOR,vd->cloth_color);
|
||||||
break;
|
break;
|
||||||
case SC_NOCHAT:
|
case SC_NOCHAT:
|
||||||
@ -9527,9 +9535,10 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
case SC_XMAS:
|
case SC_XMAS:
|
||||||
case SC_SUMMER:
|
case SC_SUMMER:
|
||||||
case SC_HANBOK:
|
case SC_HANBOK:
|
||||||
|
case SC_OKTOBERFEST:
|
||||||
clif_changelook(bl,LOOK_WEAPON,0);
|
clif_changelook(bl,LOOK_WEAPON,0);
|
||||||
clif_changelook(bl,LOOK_SHIELD,0);
|
clif_changelook(bl,LOOK_SHIELD,0);
|
||||||
clif_changelook(bl,LOOK_BASE,type==SC_WEDDING?JOB_WEDDING:type==SC_XMAS?JOB_XMAS:type==SC_SUMMER?JOB_SUMMER:JOB_HANBOK);
|
clif_changelook(bl,LOOK_BASE,type==SC_WEDDING?JOB_WEDDING:type==SC_XMAS?JOB_XMAS:type==SC_SUMMER?JOB_SUMMER:type==SC_HANBOK?JOB_HANBOK:JOB_OKTOBERFEST);
|
||||||
clif_changelook(bl,LOOK_CLOTHES_COLOR,val4);
|
clif_changelook(bl,LOOK_CLOTHES_COLOR,val4);
|
||||||
break;
|
break;
|
||||||
case SC_KAAHI:
|
case SC_KAAHI:
|
||||||
@ -9797,6 +9806,9 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
case SC_HANBOK:
|
case SC_HANBOK:
|
||||||
sc->option |= OPTION_HANBOK;
|
sc->option |= OPTION_HANBOK;
|
||||||
break;
|
break;
|
||||||
|
case SC_OKTOBERFEST:
|
||||||
|
sc->option |= OPTION_OKTOBERFEST;
|
||||||
|
break;
|
||||||
case SC_ORCISH:
|
case SC_ORCISH:
|
||||||
sc->option |= OPTION_ORCISH;
|
sc->option |= OPTION_ORCISH;
|
||||||
break;
|
break;
|
||||||
@ -9963,6 +9975,7 @@ int status_change_clear(struct block_list* bl, int type)
|
|||||||
case SC_XMAS:
|
case SC_XMAS:
|
||||||
case SC_SUMMER:
|
case SC_SUMMER:
|
||||||
case SC_HANBOK:
|
case SC_HANBOK:
|
||||||
|
case SC_OKTOBERFEST:
|
||||||
case SC_NOCHAT:
|
case SC_NOCHAT:
|
||||||
case SC_FUSION:
|
case SC_FUSION:
|
||||||
case SC_EARTHSCROLL:
|
case SC_EARTHSCROLL:
|
||||||
@ -10136,11 +10149,12 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
|
|||||||
case SC_XMAS:
|
case SC_XMAS:
|
||||||
case SC_SUMMER:
|
case SC_SUMMER:
|
||||||
case SC_HANBOK:
|
case SC_HANBOK:
|
||||||
|
case SC_OKTOBERFEST:
|
||||||
if (!vd) break;
|
if (!vd) break;
|
||||||
if (sd) {
|
if (sd) {
|
||||||
// Load data from sd->status.* as the stored values could have changed.
|
// Load data from sd->status.* as the stored values could have changed.
|
||||||
// Must remove OPTION to prevent class being rechanged.
|
// Must remove OPTION to prevent class being rechanged.
|
||||||
sc->option &= type==SC_WEDDING?~OPTION_WEDDING:type==SC_XMAS?~OPTION_XMAS:type==SC_SUMMER?~OPTION_SUMMER:~OPTION_HANBOK;
|
sc->option &= type==SC_WEDDING?~OPTION_WEDDING:type==SC_XMAS?~OPTION_XMAS:type==SC_SUMMER?~OPTION_SUMMER:type==SC_HANBOK?~OPTION_HANBOK:~OPTION_OKTOBERFEST;
|
||||||
clif_changeoption(&sd->bl);
|
clif_changeoption(&sd->bl);
|
||||||
status_set_viewdata(bl, sd->status.class_);
|
status_set_viewdata(bl, sd->status.class_);
|
||||||
} else {
|
} else {
|
||||||
@ -10609,6 +10623,9 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
|
|||||||
case SC_HANBOK:
|
case SC_HANBOK:
|
||||||
sc->option &= ~OPTION_HANBOK;
|
sc->option &= ~OPTION_HANBOK;
|
||||||
break;
|
break;
|
||||||
|
case SC_OKTOBERFEST:
|
||||||
|
sc->option &= ~OPTION_OKTOBERFEST;
|
||||||
|
break;
|
||||||
case SC_ORCISH:
|
case SC_ORCISH:
|
||||||
sc->option &= ~OPTION_ORCISH;
|
sc->option &= ~OPTION_ORCISH;
|
||||||
break;
|
break;
|
||||||
|
@ -685,6 +685,10 @@ typedef enum sc_type {
|
|||||||
SC_MTF_MLEATKED,
|
SC_MTF_MLEATKED,
|
||||||
SC_MTF_CRIDAMAGE,
|
SC_MTF_CRIDAMAGE,
|
||||||
|
|
||||||
|
SC_OKTOBERFEST,
|
||||||
|
SC_STRANGELIGHTS,
|
||||||
|
SC_DECORATION_OF_MUSIC,
|
||||||
|
|
||||||
#ifdef RENEWAL
|
#ifdef RENEWAL
|
||||||
SC_EXTREMITYFIST2,
|
SC_EXTREMITYFIST2,
|
||||||
#endif
|
#endif
|
||||||
@ -1567,7 +1571,7 @@ enum sc_opt3 {
|
|||||||
enum e_option {
|
enum e_option {
|
||||||
OPTION_NOTHING = 0x00000000,
|
OPTION_NOTHING = 0x00000000,
|
||||||
OPTION_SIGHT = 0x00000001,
|
OPTION_SIGHT = 0x00000001,
|
||||||
OPTION_HIDE = 0x00000002,
|
OPTION_HIDE = 0x00000002,
|
||||||
OPTION_CLOAK = 0x00000004,
|
OPTION_CLOAK = 0x00000004,
|
||||||
OPTION_FALCON = 0x00000010,
|
OPTION_FALCON = 0x00000010,
|
||||||
OPTION_RIDING = 0x00000020,
|
OPTION_RIDING = 0x00000020,
|
||||||
@ -1577,11 +1581,11 @@ enum e_option {
|
|||||||
OPTION_RUWACH = 0x00002000,
|
OPTION_RUWACH = 0x00002000,
|
||||||
OPTION_CHASEWALK = 0x00004000,
|
OPTION_CHASEWALK = 0x00004000,
|
||||||
OPTION_FLYING = 0x00008000, //Note that clientside Flying and Xmas are 0x8000 for clients prior to 2007.
|
OPTION_FLYING = 0x00008000, //Note that clientside Flying and Xmas are 0x8000 for clients prior to 2007.
|
||||||
OPTION_XMAS = 0x00010000,
|
OPTION_XMAS = 0x00010000,
|
||||||
OPTION_TRANSFORM = 0x00020000,
|
OPTION_TRANSFORM = 0x00020000,
|
||||||
OPTION_SUMMER = 0x00040000,
|
OPTION_SUMMER = 0x00040000,
|
||||||
OPTION_DRAGON1 = 0x00080000,
|
OPTION_DRAGON1 = 0x00080000,
|
||||||
OPTION_WUG = 0x00100000,
|
OPTION_WUG = 0x00100000,
|
||||||
OPTION_WUGRIDER = 0x00200000,
|
OPTION_WUGRIDER = 0x00200000,
|
||||||
OPTION_MADOGEAR = 0x00400000,
|
OPTION_MADOGEAR = 0x00400000,
|
||||||
OPTION_DRAGON2 = 0x00800000,
|
OPTION_DRAGON2 = 0x00800000,
|
||||||
@ -1590,6 +1594,7 @@ enum e_option {
|
|||||||
OPTION_DRAGON5 = 0x04000000,
|
OPTION_DRAGON5 = 0x04000000,
|
||||||
OPTION_HANBOK = 0x08000000,
|
OPTION_HANBOK = 0x08000000,
|
||||||
OPTION_MOUNTING = 0x10000000,
|
OPTION_MOUNTING = 0x10000000,
|
||||||
|
OPTION_OKTOBERFEST = 0x20000000,
|
||||||
|
|
||||||
#ifndef NEW_CARTS
|
#ifndef NEW_CARTS
|
||||||
OPTION_CART1 = 0x00000008,
|
OPTION_CART1 = 0x00000008,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user