* Added emotion_type enumeration for clif_emotion constants.
- Made clif_parse_Emotion use clif_emotion, rather than having it's code inlined. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14518 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
5d1bbf6c2a
commit
93e376eac5
@ -1,6 +1,8 @@
|
|||||||
Date Added
|
Date Added
|
||||||
|
|
||||||
2010/11/28
|
2010/11/28
|
||||||
|
* Added emotion_type enumeration for clif_emotion constants. [Ai4rei]
|
||||||
|
- Made clif_parse_Emotion use clif_emotion, rather than having it's code inlined.
|
||||||
* Added clr_type enumeration for vanish effect constants. [Ai4rei]
|
* Added clr_type enumeration for vanish effect constants. [Ai4rei]
|
||||||
* Resolved multiple issues with the party booking system (bugreport:4573, since r14412). [Ai4rei]
|
* Resolved multiple issues with the party booking system (bugreport:4573, since r14412). [Ai4rei]
|
||||||
- Fixed recruitments were limited to party leaders.
|
- Fixed recruitments were limited to party leaders.
|
||||||
|
@ -9063,10 +9063,8 @@ void clif_parse_ChangeDir(int fd, struct map_session_data *sd)
|
|||||||
*------------------------------------------*/
|
*------------------------------------------*/
|
||||||
void clif_parse_Emotion(int fd, struct map_session_data *sd)
|
void clif_parse_Emotion(int fd, struct map_session_data *sd)
|
||||||
{
|
{
|
||||||
unsigned char buf[64];
|
|
||||||
|
|
||||||
if (battle_config.basic_skill_check == 0 || pc_checkskill(sd, NV_BASIC) >= 2) {
|
if (battle_config.basic_skill_check == 0 || pc_checkskill(sd, NV_BASIC) >= 2) {
|
||||||
if (RFIFOB(fd,2) == 34) {// prevent use of the mute emote [Valaris]
|
if (RFIFOB(fd,2) == E_MUTE) {// prevent use of the mute emote [Valaris]
|
||||||
clif_skill_fail(sd, 1, 0, 1);
|
clif_skill_fail(sd, 1, 0, 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -9078,10 +9076,7 @@ void clif_parse_Emotion(int fd, struct map_session_data *sd)
|
|||||||
}
|
}
|
||||||
sd->emotionlasttime = time(NULL) + 1; // not more than 1 per second (using /commands the client can spam it)
|
sd->emotionlasttime = time(NULL) + 1; // not more than 1 per second (using /commands the client can spam it)
|
||||||
|
|
||||||
WBUFW(buf,0) = 0xc0;
|
clif_emotion(&sd->bl, RFIFOB(fd,2));
|
||||||
WBUFL(buf,2) = sd->bl.id;
|
|
||||||
WBUFB(buf,6) = RFIFOB(fd,2);
|
|
||||||
clif_send(buf, packet_len(0xc0), &sd->bl, AREA);
|
|
||||||
} else
|
} else
|
||||||
clif_skill_fail(sd, 1, 0, 1);
|
clif_skill_fail(sd, 1, 0, 1);
|
||||||
}
|
}
|
||||||
|
@ -78,6 +78,93 @@ typedef enum send_target {
|
|||||||
BG_AREA_WOS,
|
BG_AREA_WOS,
|
||||||
} send_target;
|
} send_target;
|
||||||
|
|
||||||
|
typedef enum emotion_type
|
||||||
|
{
|
||||||
|
E_GASP = 0, // /!
|
||||||
|
E_WHAT, // /?
|
||||||
|
E_HO,
|
||||||
|
E_LV,
|
||||||
|
E_SWT,
|
||||||
|
E_IC,
|
||||||
|
E_AN,
|
||||||
|
E_AG,
|
||||||
|
E_CASH, // /$
|
||||||
|
E_DOTS, // /...
|
||||||
|
E_SCISSORS, // /gawi --- 10
|
||||||
|
E_ROCK, // /bawi
|
||||||
|
E_PAPER, // /bo
|
||||||
|
E_KOREA,
|
||||||
|
E_LV2,
|
||||||
|
E_THX,
|
||||||
|
E_WAH,
|
||||||
|
E_SRY,
|
||||||
|
E_HEH,
|
||||||
|
E_SWT2,
|
||||||
|
E_HMM, // --- 20
|
||||||
|
E_NO1,
|
||||||
|
E_NO, // /??
|
||||||
|
E_OMG,
|
||||||
|
E_OH,
|
||||||
|
E_X,
|
||||||
|
E_HLP,
|
||||||
|
E_GO,
|
||||||
|
E_SOB,
|
||||||
|
E_GG,
|
||||||
|
E_KIS, // --- 30
|
||||||
|
E_KIS2,
|
||||||
|
E_PIF,
|
||||||
|
E_OK,
|
||||||
|
E_MUTE, // red /... used for muted characters
|
||||||
|
E_INDONESIA,
|
||||||
|
E_BZZ, // /bzz, /stare
|
||||||
|
E_RICE,
|
||||||
|
E_AWSM, // /awsm, /cool
|
||||||
|
E_MEH,
|
||||||
|
E_SHY, // --- 40
|
||||||
|
E_PAT, // /pat, /goodboy
|
||||||
|
E_MP, // /mp, /sptime
|
||||||
|
E_SLUR,
|
||||||
|
E_COM, // /com, /comeon
|
||||||
|
E_YAWN, // /yawn, /sleepy
|
||||||
|
E_GRAT, // /grat, /congrats
|
||||||
|
E_HP, // /hp, /hptime
|
||||||
|
E_PHILIPPINES,
|
||||||
|
E_MALAYSIA,
|
||||||
|
E_SINGAPORE, // --- 50
|
||||||
|
E_BRAZIL,
|
||||||
|
E_FLASH, // /fsh
|
||||||
|
E_SPIN, // /spin
|
||||||
|
E_SIGH,
|
||||||
|
E_PROUD, // /dum
|
||||||
|
E_LOUD, // /crwd
|
||||||
|
E_OHNOES, // /desp, /otl
|
||||||
|
E_DICE1,
|
||||||
|
E_DICE2,
|
||||||
|
E_DICE3, // --- 60
|
||||||
|
E_DICE4,
|
||||||
|
E_DICE5,
|
||||||
|
E_DICE6,
|
||||||
|
E_INDIA,
|
||||||
|
E_LOOSER,
|
||||||
|
E_RUSSIA,
|
||||||
|
E_VIRGIN,
|
||||||
|
E_PHONE,
|
||||||
|
E_MAIL,
|
||||||
|
E_CHINESE, // --- 70
|
||||||
|
E_SIGNAL,
|
||||||
|
E_SIGNAL2,
|
||||||
|
E_SIGNAL3,
|
||||||
|
E_HUM,
|
||||||
|
E_ABS,
|
||||||
|
E_OOPS,
|
||||||
|
E_SPIT,
|
||||||
|
E_ENE,
|
||||||
|
E_PANIC,
|
||||||
|
E_WHISP, // --- 80
|
||||||
|
//
|
||||||
|
E_MAX
|
||||||
|
} emotion_type;
|
||||||
|
|
||||||
typedef enum clr_type
|
typedef enum clr_type
|
||||||
{
|
{
|
||||||
CLR_OUTSIGHT = 0,
|
CLR_OUTSIGHT = 0,
|
||||||
|
@ -68,7 +68,7 @@ int merc_hom_dead(struct homun_data *hd, struct block_list *src)
|
|||||||
//There's no intimacy penalties on death (from Tharis)
|
//There's no intimacy penalties on death (from Tharis)
|
||||||
struct map_session_data *sd = hd->master;
|
struct map_session_data *sd = hd->master;
|
||||||
|
|
||||||
clif_emotion(&hd->bl, 16) ; //wah
|
clif_emotion(&hd->bl, E_WAH);
|
||||||
|
|
||||||
//Delete timers when dead.
|
//Delete timers when dead.
|
||||||
merc_hom_hungry_timer_delete(hd);
|
merc_hom_hungry_timer_delete(hd);
|
||||||
@ -77,7 +77,7 @@ int merc_hom_dead(struct homun_data *hd, struct block_list *src)
|
|||||||
if (!sd) //unit remove map will invoke unit free
|
if (!sd) //unit remove map will invoke unit free
|
||||||
return 3;
|
return 3;
|
||||||
|
|
||||||
clif_emotion(&sd->bl, 28) ; //sob
|
clif_emotion(&sd->bl, E_SOB);
|
||||||
//Remove from map (if it has no intimacy, it is auto-removed from memory)
|
//Remove from map (if it has no intimacy, it is auto-removed from memory)
|
||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
@ -291,7 +291,7 @@ int merc_hom_evolution(struct homun_data *hd)
|
|||||||
|
|
||||||
if(!hd->homunculusDB->evo_class || hd->homunculus.class_ == hd->homunculusDB->evo_class)
|
if(!hd->homunculusDB->evo_class || hd->homunculus.class_ == hd->homunculusDB->evo_class)
|
||||||
{
|
{
|
||||||
clif_emotion(&hd->bl, 4) ; //swt
|
clif_emotion(&hd->bl, E_SWT);
|
||||||
return 0 ;
|
return 0 ;
|
||||||
}
|
}
|
||||||
sd = hd->master;
|
sd = hd->master;
|
||||||
@ -321,7 +321,7 @@ int merc_hom_evolution(struct homun_data *hd)
|
|||||||
map_addblock(&hd->bl);
|
map_addblock(&hd->bl);
|
||||||
|
|
||||||
clif_spawn(&hd->bl);
|
clif_spawn(&hd->bl);
|
||||||
clif_emotion(&sd->bl, 21); //no1
|
clif_emotion(&sd->bl, E_NO1);
|
||||||
clif_misceffect2(&hd->bl,568);
|
clif_misceffect2(&hd->bl,568);
|
||||||
|
|
||||||
//status_Calc flag&1 will make current HP/SP be reloaded from hom structure
|
//status_Calc flag&1 will make current HP/SP be reloaded from hom structure
|
||||||
@ -448,19 +448,19 @@ int merc_hom_food(struct map_session_data *sd, struct homun_data *hd)
|
|||||||
|
|
||||||
if ( hd->homunculus.hunger >= 91 ) {
|
if ( hd->homunculus.hunger >= 91 ) {
|
||||||
merc_hom_decrease_intimacy(hd, 50);
|
merc_hom_decrease_intimacy(hd, 50);
|
||||||
emotion = 16;
|
emotion = E_WAH;
|
||||||
} else if ( hd->homunculus.hunger >= 76 ) {
|
} else if ( hd->homunculus.hunger >= 76 ) {
|
||||||
merc_hom_decrease_intimacy(hd, 5);
|
merc_hom_decrease_intimacy(hd, 5);
|
||||||
emotion = 19;
|
emotion = E_SWT2;
|
||||||
} else if ( hd->homunculus.hunger >= 26 ) {
|
} else if ( hd->homunculus.hunger >= 26 ) {
|
||||||
merc_hom_increase_intimacy(hd, 75);
|
merc_hom_increase_intimacy(hd, 75);
|
||||||
emotion = 2;
|
emotion = E_HO;
|
||||||
} else if ( hd->homunculus.hunger >= 11 ) {
|
} else if ( hd->homunculus.hunger >= 11 ) {
|
||||||
merc_hom_increase_intimacy(hd, 100);
|
merc_hom_increase_intimacy(hd, 100);
|
||||||
emotion = 2;
|
emotion = E_HO;
|
||||||
} else {
|
} else {
|
||||||
merc_hom_increase_intimacy(hd, 50);
|
merc_hom_increase_intimacy(hd, 50);
|
||||||
emotion = 2;
|
emotion = E_HO;
|
||||||
}
|
}
|
||||||
|
|
||||||
hd->homunculus.hunger += 10; //dunno increase value for each food
|
hd->homunculus.hunger += 10; //dunno increase value for each food
|
||||||
@ -474,7 +474,7 @@ int merc_hom_food(struct map_session_data *sd, struct homun_data *hd)
|
|||||||
|
|
||||||
// Too much food :/
|
// Too much food :/
|
||||||
if(hd->homunculus.intimacy == 0)
|
if(hd->homunculus.intimacy == 0)
|
||||||
return merc_hom_delete(sd->hd, 23); //omg
|
return merc_hom_delete(sd->hd, E_OMG);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -500,18 +500,18 @@ static int merc_hom_hungry(int tid, unsigned int tick, int id, intptr data)
|
|||||||
|
|
||||||
hd->homunculus.hunger-- ;
|
hd->homunculus.hunger-- ;
|
||||||
if(hd->homunculus.hunger <= 10) {
|
if(hd->homunculus.hunger <= 10) {
|
||||||
clif_emotion(&hd->bl, 6) ; //an
|
clif_emotion(&hd->bl, E_AN);
|
||||||
} else if(hd->homunculus.hunger == 25) {
|
} else if(hd->homunculus.hunger == 25) {
|
||||||
clif_emotion(&hd->bl, 20) ; //hmm
|
clif_emotion(&hd->bl, E_HMM);
|
||||||
} else if(hd->homunculus.hunger == 75) {
|
} else if(hd->homunculus.hunger == 75) {
|
||||||
clif_emotion(&hd->bl, 33) ; //ok
|
clif_emotion(&hd->bl, E_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(hd->homunculus.hunger < 0) {
|
if(hd->homunculus.hunger < 0) {
|
||||||
hd->homunculus.hunger = 0;
|
hd->homunculus.hunger = 0;
|
||||||
// Delete the homunculus if intimacy <= 100
|
// Delete the homunculus if intimacy <= 100
|
||||||
if ( !merc_hom_decrease_intimacy(hd, 100) )
|
if ( !merc_hom_decrease_intimacy(hd, 100) )
|
||||||
return merc_hom_delete(hd, 23); //omg
|
return merc_hom_delete(hd, E_OMG);
|
||||||
clif_send_homdata(sd,SP_INTIMATE,hd->homunculus.intimacy / 100);
|
clif_send_homdata(sd,SP_INTIMATE,hd->homunculus.intimacy / 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -509,7 +509,7 @@ int pet_catch_process2(struct map_session_data* sd, int target_id)
|
|||||||
if (sd->catch_target_class == 0 && !(md->status.mode&MD_BOSS))
|
if (sd->catch_target_class == 0 && !(md->status.mode&MD_BOSS))
|
||||||
sd->catch_target_class = md->class_;
|
sd->catch_target_class = md->class_;
|
||||||
if(i < 0 || sd->catch_target_class != md->class_) {
|
if(i < 0 || sd->catch_target_class != md->class_) {
|
||||||
clif_emotion(&md->bl, 7); //mob will do /ag if wrong lure is used on them.
|
clif_emotion(&md->bl, E_AG); //mob will do /ag if wrong lure is used on them.
|
||||||
clif_pet_roulette(sd,0);
|
clif_pet_roulette(sd,0);
|
||||||
sd->catch_target_class = -1;
|
sd->catch_target_class = -1;
|
||||||
return 1;
|
return 1;
|
||||||
@ -1100,7 +1100,7 @@ int pet_recovery_timer(int tid, unsigned int tick, int id, intptr data)
|
|||||||
//Detoxify is chosen for now.
|
//Detoxify is chosen for now.
|
||||||
clif_skill_nodamage(&pd->bl,&sd->bl,TF_DETOXIFY,1,1);
|
clif_skill_nodamage(&pd->bl,&sd->bl,TF_DETOXIFY,1,1);
|
||||||
status_change_end(&sd->bl,pd->recovery->type,-1);
|
status_change_end(&sd->bl,pd->recovery->type,-1);
|
||||||
clif_emotion(&pd->bl, 33);
|
clif_emotion(&pd->bl, E_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
pd->recovery->timer = INVALID_TIMER;
|
pd->recovery->timer = INVALID_TIMER;
|
||||||
|
@ -8693,7 +8693,7 @@ BUILDIN_FUNC(homunculus_evolution)
|
|||||||
if (sd->hd->homunculus.intimacy > 91000)
|
if (sd->hd->homunculus.intimacy > 91000)
|
||||||
merc_hom_evolution(sd->hd);
|
merc_hom_evolution(sd->hd);
|
||||||
else
|
else
|
||||||
clif_emotion(&sd->hd->bl, 4) ; //swt
|
clif_emotion(&sd->hd->bl, E_SWT);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -734,7 +734,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
|
|||||||
case AM_ACIDTERROR:
|
case AM_ACIDTERROR:
|
||||||
sc_start(bl,SC_BLEEDING,(skilllv*3),skilllv,skill_get_time2(skillid,skilllv));
|
sc_start(bl,SC_BLEEDING,(skilllv*3),skilllv,skill_get_time2(skillid,skilllv));
|
||||||
if (skill_break_equip(bl, EQP_ARMOR, 100*skill_get_time(skillid,skilllv), BCT_ENEMY))
|
if (skill_break_equip(bl, EQP_ARMOR, 100*skill_get_time(skillid,skilllv), BCT_ENEMY))
|
||||||
clif_emotion(bl,23);
|
clif_emotion(bl,E_OMG);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AM_DEMONSTRATION:
|
case AM_DEMONSTRATION:
|
||||||
@ -3002,7 +3002,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case NPC_DARKBREATH:
|
case NPC_DARKBREATH:
|
||||||
clif_emotion(src,7);
|
clif_emotion(src,E_AG);
|
||||||
case SN_FALCONASSAULT:
|
case SN_FALCONASSAULT:
|
||||||
case PA_PRESSURE:
|
case PA_PRESSURE:
|
||||||
case CR_ACIDDEMONSTRATION:
|
case CR_ACIDDEMONSTRATION:
|
||||||
@ -9408,7 +9408,7 @@ void skill_weaponrefine (struct map_session_data *sd, int idx)
|
|||||||
clif_refine(sd->fd,1,idx,item->refine);
|
clif_refine(sd->fd,1,idx,item->refine);
|
||||||
pc_delitem(sd,idx,1,0,2);
|
pc_delitem(sd,idx,1,0,2);
|
||||||
clif_misceffect(&sd->bl,2);
|
clif_misceffect(&sd->bl,2);
|
||||||
clif_emotion(&sd->bl, 23);
|
clif_emotion(&sd->bl, E_OMG);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1083,7 +1083,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
|
|||||||
|
|
||||||
if (sc->data[SC_WINKCHARM] && target && !flag)
|
if (sc->data[SC_WINKCHARM] && target && !flag)
|
||||||
{ //Prevents skill usage
|
{ //Prevents skill usage
|
||||||
clif_emotion(src, 3);
|
clif_emotion(src, E_LV);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5266,7 +5266,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
|
|||||||
case SC_SIGNUMCRUCIS:
|
case SC_SIGNUMCRUCIS:
|
||||||
val2 = 10 + 4*val1; //Def reduction
|
val2 = 10 + 4*val1; //Def reduction
|
||||||
tick = -1;
|
tick = -1;
|
||||||
clif_emotion(bl,4);
|
clif_emotion(bl,E_SWT);
|
||||||
break;
|
break;
|
||||||
case SC_MAXIMIZEPOWER:
|
case SC_MAXIMIZEPOWER:
|
||||||
val2 = tick>0?tick:60000;
|
val2 = tick>0?tick:60000;
|
||||||
@ -5483,7 +5483,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case SC_CONFUSION:
|
case SC_CONFUSION:
|
||||||
clif_emotion(bl,1);
|
clif_emotion(bl,E_WHAT);
|
||||||
break;
|
break;
|
||||||
case SC_BLEEDING:
|
case SC_BLEEDING:
|
||||||
val4 = tick/10000;
|
val4 = tick/10000;
|
||||||
|
@ -1973,7 +1973,7 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file,
|
|||||||
ud->canact_tick = ud->canmove_tick; //It appears HOM do reset the can-act tick.
|
ud->canact_tick = ud->canmove_tick; //It appears HOM do reset the can-act tick.
|
||||||
if( !hd->homunculus.intimacy && !(hd->master && !hd->master->state.active) )
|
if( !hd->homunculus.intimacy && !(hd->master && !hd->master->state.active) )
|
||||||
{ //If logging out, this is deleted on unit_free
|
{ //If logging out, this is deleted on unit_free
|
||||||
clif_emotion(bl, 28) ; //sob
|
clif_emotion(bl, E_SOB);
|
||||||
clif_clearunit_area(bl,clrtype);
|
clif_clearunit_area(bl,clrtype);
|
||||||
map_delblock(bl);
|
map_delblock(bl);
|
||||||
unit_free(bl,CLR_OUTSIGHT);
|
unit_free(bl,CLR_OUTSIGHT);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user