-Hotfixs for :

--bugreport:7364 null SC_STYLE_CHANGE crashing serv (when eleanor die and try to skill afterward)
--bugreport:7352 skillnotok_hom typo, checking other case.
-Remove unwanted debuginfo from r17211 

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17212 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
glighta 2013-03-26 06:56:01 +00:00
parent 55686799e4
commit 9a1076b7e9
3 changed files with 8 additions and 10 deletions

View File

@ -782,8 +782,6 @@ int merc_hom_alloc(struct map_session_data *sd, struct s_homunculus *hom)
map_addiddb(&hd->bl);
status_calc_homunculus(hd,1);
if(hom->class_ == 6052) //eleanor
sc_start(&hd->bl,&hd->bl, SC_STYLE_CHANGE, 100, MH_MD_FIGHTING, -1);
hd->hungry_timer = INVALID_TIMER;
return 0;

View File

@ -663,12 +663,15 @@ int skillnotok_hom(uint16 skill_id, struct homun_data *hd)
case MH_OVERED_BOOST:
if(hd->homunculus.hunger <= 1) //if we starving
return 1;
break;
case MH_GOLDENE_FERSE: //can be used with angriff
if(hd->sc.data[SC_ANGRIFFS_MODUS])
return 1;
break;
case MH_ANGRIFFS_MODUS:
if(hd->sc.data[SC_GOLDENE_FERSE])
return 1;
break;
case MH_TINDER_BREAKER:
case MH_CBC:
case MH_EQC:
@ -677,11 +680,9 @@ int skillnotok_hom(uint16 skill_id, struct homun_data *hd)
case MH_MIDNIGHT_FRENZY: {
struct status_change_entry *sce = hd->sc.data[SC_STYLE_CHANGE];
TBL_PC *sd;
if(!(sd=hd->master)) return 1; //we need a master
if(!sce || !sce->val3){ //homon doesn't have status or it's not a combo
if(skill_id != MH_SONIC_CRAW && skill_id != MH_TINDER_BREAKER)
return 1;
}
if(!(sd=hd->master) || !sce) return 1; //homon doesn't have status or a master
if((!sce->val3) && (skill_id != MH_SONIC_CRAW && skill_id != MH_TINDER_BREAKER))
return 1; // or it's not a combo
switch(skill_id){
case MH_SONIC_CRAW:

View File

@ -3197,6 +3197,8 @@ int status_calc_homunculus_(struct homun_data *hd, bool first)
if (first) {
hd->battle_status.hp = hom->hp ;
hd->battle_status.sp = hom->sp ;
if(hom->class_ == 6052) //eleanor
sc_start(&hd->bl,&hd->bl, SC_STYLE_CHANGE, 100, MH_MD_FIGHTING, -1);
}
status->rhw.atk = status->dex;
@ -9095,8 +9097,6 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
if( opt_flag&2 && sd && sd->touching_id )
npc_touchnext_areanpc(sd,false); // run OnTouch_ on next char in range
ShowInfo("status started with \n\ttype=%d\n\ttick=%d \n\trate=%d, \n\tval=[%d,%d,%d,%d] flag=%d\n",
type,tick, rate,val1,val2,val3,val4,flag);
return 1;
}
@ -9893,7 +9893,6 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
npc_touch_areanpc(sd,bl->m,bl->x,bl->y); //Trigger on-touch event.
ers_free(sc_data_ers, sce);
ShowInfo("status end type=%d\n",type);
return 1;
}