* Implemented Summer Outfit care of Zephyrus_CR.
- Increased MAX_GUILDCASTLE in mmo.h to 29 for future implementation of the 12.1 Guild Castles. * Added constants for Summer Outfit and updated the Summer_Event_Suit item script. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11321 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
43ddb195f7
commit
694679913a
@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
|
||||
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||
|
||||
2007/09/28
|
||||
* Rev. 11321 Implemented Summer Outfit care of Zephyrus_CR. [L0ne_W0lf]
|
||||
- Increased MAX_GUILDCASTLE in mmo.h to 29 for future implementation
|
||||
of the 12.1 Guild Castles.
|
||||
* Fixed sql target not including the save target in the Makefile, needed
|
||||
by the map server for save/mapreg.txt. (bugreport:131) [FlavioJS]
|
||||
2007/09/27
|
||||
|
@ -38,6 +38,7 @@
|
||||
|
||||
=======================
|
||||
09/27
|
||||
* Rev. 11321 Added constants for Summer Outfit and updated the Summer_Event_Suit item script. [L0ne_W0lf]
|
||||
* Rev. 11319 Re-added an ETC item that got lost in the item update. (7062) [L0ne_W0lf]
|
||||
* Removed Final Strike from skill_cast_db [Playtester]
|
||||
- also updated sql files
|
||||
|
@ -166,6 +166,7 @@ EAJ_BABY_SOUL_LINKER 0x2207
|
||||
|
||||
Option_Wedding 0x1000
|
||||
Option_Xmas 0x20000
|
||||
Option_Summer 0x40000
|
||||
|
||||
bc_all 0
|
||||
bc_map 1
|
||||
@ -752,6 +753,7 @@ SC_INCDEXRATE 248
|
||||
SC_JAILED 249
|
||||
SC_ENCHANTARMS 250
|
||||
SC_MAGICALATTACK 251
|
||||
SC_SUMMER 256
|
||||
|
||||
e_gasp 0
|
||||
e_what 1
|
||||
|
@ -3297,7 +3297,7 @@
|
||||
12257,Cold_Medicine,Cold_Medicine,2,,10,100,,,,,0xFFFFFFFF,7,2,,,50,,,{ percentheal 25,25; },{},{}
|
||||
12258,Bomb_Poring_Box,Bomb Poring Box,2,,10,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
//12259,환상의_비약,환상의_비약,2,,10,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12260,Summer_Event_Suit,Summer Event Suit,2,,10,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12260,Summer_Event_Suit,Summer Event Suit,2,,10,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_Summer,600000,0; },{},{}
|
||||
//12261,환상의_비약,환상의_비약,2,,10,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
12262,Inspector_Certificate_,Authoritative Badge,2,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ specialeffect 507; sc_start SC_SpeedUp0,180000,0; },{},{}
|
||||
12701,Old_Blue_Box_F,Old Blue Box,2,,,200,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
|
||||
|
@ -45,7 +45,7 @@
|
||||
#define MAX_GUILDEXPULSION 32
|
||||
#define MAX_GUILDALLIANCE 16
|
||||
#define MAX_GUILDSKILL 15 // increased max guild skills because of new skills [Sara-chan]
|
||||
#define MAX_GUILDCASTLE 24 // increased to include novice castles [Valaris]
|
||||
#define MAX_GUILDCASTLE 29 // increased to include novice castles [Valaris]
|
||||
#define MAX_GUILDLEVEL 50
|
||||
#define MAX_GUARDIANS 8 //Local max per castle. [Skotlex]
|
||||
|
||||
@ -443,6 +443,7 @@ enum {
|
||||
JOB_GUNSLINGER,
|
||||
JOB_NINJA,
|
||||
JOB_XMAS,
|
||||
JOB_SUMMER,
|
||||
|
||||
JOB_NOVICE_HIGH = 4001,
|
||||
JOB_SWORDMAN_HIGH,
|
||||
|
@ -3447,6 +3447,7 @@ static const struct _battle_data {
|
||||
{ "wedding_modifydisplay", &battle_config.wedding_modifydisplay, 0, 0, 1, },
|
||||
{ "wedding_ignorepalette", &battle_config.wedding_ignorepalette, 0, 0, 1, },
|
||||
{ "xmas_ignorepalette", &battle_config.xmas_ignorepalette, 0, 0, 1, },
|
||||
{ "summer_ignorepalette", &battle_config.summer_ignorepalette, 0, 0, 1, },
|
||||
{ "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_heal_skill_interval", &battle_config.natural_heal_skill_interval, 10000, NATURAL_HEAL_INTERVAL, INT_MAX, },
|
||||
|
@ -200,6 +200,7 @@ extern struct Battle_Config
|
||||
int wedding_modifydisplay;
|
||||
int wedding_ignorepalette; //[Skotlex]
|
||||
int xmas_ignorepalette; // [Valaris]
|
||||
int summer_ignorepalette; // [Zephyrus]
|
||||
int natural_healhp_interval;
|
||||
int natural_healsp_interval;
|
||||
int natural_heal_skill_interval;
|
||||
|
@ -718,7 +718,7 @@ void clif_get_weapon_view(struct map_session_data* sd, unsigned short *rhand, un
|
||||
struct item_data *id;
|
||||
#endif
|
||||
|
||||
if(sd->sc.option&(OPTION_WEDDING|OPTION_XMAS))
|
||||
if(sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER))
|
||||
{
|
||||
*rhand = *lhand = 0;
|
||||
return;
|
||||
@ -2672,11 +2672,12 @@ int clif_changelook(struct block_list *bl,int type,int val)
|
||||
break;
|
||||
case LOOK_BASE:
|
||||
vd->class_ = val;
|
||||
if (vd->class_ == JOB_WEDDING || vd->class_ == JOB_XMAS)
|
||||
if (vd->class_ == JOB_WEDDING || vd->class_ == JOB_XMAS || vd->class_ == JOB_SUMMER)
|
||||
vd->weapon = vd->shield = 0;
|
||||
if (vd->cloth_color && (
|
||||
(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)
|
||||
))
|
||||
clif_changelook(bl,LOOK_CLOTHES_COLOR,0);
|
||||
break;
|
||||
@ -2698,7 +2699,8 @@ int clif_changelook(struct block_list *bl,int type,int val)
|
||||
case LOOK_CLOTHES_COLOR:
|
||||
if (val && (
|
||||
(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)
|
||||
))
|
||||
val = 0;
|
||||
vd->cloth_color = val;
|
||||
@ -8651,7 +8653,7 @@ void clif_parse_ActionRequest_sub(struct map_session_data *sd, int action_type,
|
||||
if (clif_cant_act(sd) || sd->sc.option&OPTION_HIDE)
|
||||
return;
|
||||
|
||||
if(sd->sc.option&(OPTION_WEDDING|OPTION_XMAS))
|
||||
if(sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER))
|
||||
return;
|
||||
|
||||
if (!battle_config.sdelay_attack_enable && pc_checkskill(sd, SA_FREECAST) <= 0) {
|
||||
@ -9522,7 +9524,7 @@ void clif_parse_UseSkillToId(int fd, struct map_session_data *sd)
|
||||
return;
|
||||
}
|
||||
|
||||
if(sd->sc.option&(OPTION_WEDDING|OPTION_XMAS))
|
||||
if(sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER))
|
||||
return;
|
||||
|
||||
if(target_id<0 && -target_id == sd->bl.id) // for disguises [Valaris]
|
||||
@ -9628,7 +9630,7 @@ void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, int skilll
|
||||
return;
|
||||
}
|
||||
|
||||
if(sd->sc.option&(OPTION_WEDDING|OPTION_XMAS))
|
||||
if(sd->sc.option&(OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER))
|
||||
return;
|
||||
|
||||
if(sd->menuskill_id)
|
||||
|
@ -95,6 +95,7 @@ enum {
|
||||
MAPID_GUNSLINGER,
|
||||
MAPID_NINJA,
|
||||
MAPID_XMAS, // [Valaris]
|
||||
MAPID_SUMMER, // [Zephyrs]
|
||||
//2_1 classes
|
||||
MAPID_SUPER_NOVICE = JOBL_2_1|0x0,
|
||||
MAPID_KNIGHT,
|
||||
|
16
src/map/pc.c
16
src/map/pc.c
@ -3777,6 +3777,9 @@ int pc_jobid2mapid(unsigned short b_class)
|
||||
case JOB_XMAS:
|
||||
class_ = MAPID_XMAS;
|
||||
break;
|
||||
case JOB_SUMMER:
|
||||
class_ = MAPID_SUMMER;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
@ -3799,6 +3802,7 @@ int pc_mapid2jobid(unsigned short class_, int sex)
|
||||
case MAPID_GUNSLINGER: return JOB_GUNSLINGER;
|
||||
case MAPID_NINJA: return JOB_NINJA;
|
||||
case MAPID_XMAS: return JOB_XMAS;
|
||||
case MAPID_SUMMER: return JOB_SUMMER;
|
||||
//2_1 classes
|
||||
case MAPID_SUPER_NOVICE: return JOB_SUPER_NOVICE;
|
||||
case MAPID_KNIGHT: return JOB_KNIGHT;
|
||||
@ -3909,7 +3913,10 @@ char* job_name(int class_)
|
||||
|
||||
case JOB_XMAS:
|
||||
return msg_txt(570 - JOB_WEDDING+class_);
|
||||
|
||||
|
||||
case JOB_SUMMER:
|
||||
return msg_txt(621);
|
||||
|
||||
case JOB_NOVICE_HIGH:
|
||||
case JOB_SWORDMAN_HIGH:
|
||||
case JOB_MAGE_HIGH:
|
||||
@ -5758,6 +5765,11 @@ int pc_setoption(struct map_session_data *sd,int type)
|
||||
else if (!(type&OPTION_XMAS) && p_type&OPTION_XMAS)
|
||||
new_look = -1;
|
||||
|
||||
if (type&OPTION_SUMMER && !(p_type&OPTION_SUMMER))
|
||||
new_look = JOB_SUMMER;
|
||||
else if (!(type&OPTION_SUMMER) && p_type&OPTION_SUMMER)
|
||||
new_look = -1;
|
||||
|
||||
if (new_look < 0) { //Restore normal look.
|
||||
status_set_viewdata(&sd->bl, sd->status.class_);
|
||||
new_look = sd->vd.class_;
|
||||
@ -7349,7 +7361,7 @@ int pc_readdb(void)
|
||||
fclose(fp);
|
||||
for (i = 0; i < MAX_PC_CLASS; i++) {
|
||||
if (!pcdb_checkid(i)) continue;
|
||||
if (i == JOB_WEDDING || i == JOB_XMAS)
|
||||
if (i == JOB_WEDDING || i == JOB_XMAS || i == JOB_SUMMER)
|
||||
continue; //Classes that do not need exp tables.
|
||||
if (!max_level[i][0])
|
||||
ShowWarning("Class %s (%d) does not has a base exp table.\n", job_name(i), i);
|
||||
|
@ -4261,6 +4261,9 @@ void status_set_viewdata(struct block_list *bl, int class_)
|
||||
if (sd->sc.option&OPTION_WEDDING)
|
||||
class_ = JOB_WEDDING;
|
||||
else
|
||||
if (sd->sc.option&OPTION_SUMMER)
|
||||
class_ = JOB_SUMMER;
|
||||
else
|
||||
if (sd->sc.option&OPTION_XMAS)
|
||||
class_ = JOB_XMAS;
|
||||
else
|
||||
@ -4350,6 +4353,7 @@ void status_set_viewdata(struct block_list *bl, int class_)
|
||||
if (vd && vd->cloth_color && (
|
||||
(vd->class_==JOB_WEDDING && battle_config.wedding_ignorepalette)
|
||||
|| (vd->class_==JOB_XMAS && battle_config.xmas_ignorepalette)
|
||||
|| (vd->class_==JOB_SUMMER && battle_config.summer_ignorepalette)
|
||||
))
|
||||
vd->cloth_color = 0;
|
||||
}
|
||||
@ -5156,6 +5160,7 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
|
||||
|
||||
case SC_WEDDING:
|
||||
case SC_XMAS:
|
||||
case SC_SUMMER:
|
||||
if (!vd) return 0;
|
||||
//Store previous values as they could be removed.
|
||||
val1 = vd->class_;
|
||||
@ -5165,7 +5170,7 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
|
||||
unit_stop_attack(bl);
|
||||
clif_changelook(bl,LOOK_WEAPON,0);
|
||||
clif_changelook(bl,LOOK_SHIELD,0);
|
||||
clif_changelook(bl,LOOK_BASE,type==SC_WEDDING?JOB_WEDDING:JOB_XMAS);
|
||||
clif_changelook(bl,LOOK_BASE,type==SC_WEDDING?JOB_WEDDING:type==SC_XMAS?JOB_XMAS:JOB_SUMMER);
|
||||
clif_changelook(bl,LOOK_CLOTHES_COLOR,vd->cloth_color);
|
||||
break;
|
||||
case SC_NOCHAT:
|
||||
@ -5812,9 +5817,10 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
|
||||
switch (type) {
|
||||
case SC_WEDDING:
|
||||
case SC_XMAS:
|
||||
case SC_SUMMER:
|
||||
clif_changelook(bl,LOOK_WEAPON,0);
|
||||
clif_changelook(bl,LOOK_SHIELD,0);
|
||||
clif_changelook(bl,LOOK_BASE,type==SC_WEDDING?JOB_WEDDING:JOB_XMAS);
|
||||
clif_changelook(bl,LOOK_BASE,type==SC_WEDDING?JOB_WEDDING:type==SC_XMAS?JOB_XMAS:JOB_SUMMER);
|
||||
clif_changelook(bl,LOOK_CLOTHES_COLOR,val4);
|
||||
break;
|
||||
case SC_KAAHI:
|
||||
@ -5977,6 +5983,9 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
|
||||
case SC_XMAS:
|
||||
sc->option |= OPTION_XMAS;
|
||||
break;
|
||||
case SC_SUMMER:
|
||||
sc->option |= OPTION_SUMMER;
|
||||
break;
|
||||
case SC_ORCISH:
|
||||
sc->option |= OPTION_ORCISH;
|
||||
break;
|
||||
@ -6064,6 +6073,7 @@ int status_change_clear(struct block_list *bl,int type)
|
||||
case SC_EDP:
|
||||
case SC_MELTDOWN:
|
||||
case SC_XMAS:
|
||||
case SC_SUMMER:
|
||||
case SC_NOCHAT:
|
||||
case SC_FUSION:
|
||||
case SC_TKREST:
|
||||
@ -6153,11 +6163,13 @@ int status_change_end( struct block_list* bl , int type,int tid )
|
||||
switch(type){
|
||||
case SC_WEDDING:
|
||||
case SC_XMAS:
|
||||
case SC_SUMMER:
|
||||
if (!vd) return 0;
|
||||
if (sd)
|
||||
{ //Load data from sd->status.* as the stored values could have changed.
|
||||
//Must remove OPTION to prevent class being rechanged.
|
||||
sc->option &= type==SC_WEDDING?~OPTION_WEDDING:~OPTION_XMAS;
|
||||
sc->option &= type==SC_WEDDING?~OPTION_WEDDING:type==SC_XMAS?~OPTION_XMAS:~OPTION_SUMMER;
|
||||
clif_changeoption(&sd->bl);
|
||||
status_set_viewdata(bl, sd->status.class_);
|
||||
} else {
|
||||
vd->class_ = sc->data[type].val1;
|
||||
@ -6427,6 +6439,9 @@ int status_change_end( struct block_list* bl , int type,int tid )
|
||||
case SC_XMAS:
|
||||
sc->option &= ~OPTION_XMAS;
|
||||
break;
|
||||
case SC_SUMMER:
|
||||
sc->option &= ~OPTION_SUMMER;
|
||||
break;
|
||||
case SC_ORCISH:
|
||||
sc->option &= ~OPTION_ORCISH;
|
||||
break;
|
||||
|
@ -269,6 +269,7 @@ enum {
|
||||
SC_CRITICALWOUND,
|
||||
SC_MAGICMIRROR,
|
||||
SC_SLOWCAST,
|
||||
SC_SUMMER, // [Zephyrus Summer]
|
||||
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
|
||||
};
|
||||
int SkillStatusChangeTable(int skill);
|
||||
@ -509,6 +510,7 @@ enum {
|
||||
//Note that clientside Flying and Xmas are 0x8000 for clients prior to 2007.
|
||||
#define OPTION_FLYING 0x0008000
|
||||
#define OPTION_XMAS 0x00010000
|
||||
#define OPTION_SUMMER 0x00040000 // [Zephyrus Summer]
|
||||
|
||||
#define OPTION_CART (OPTION_CART1|OPTION_CART2|OPTION_CART3|OPTION_CART4|OPTION_CART5)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user