* Added a define for star gladiator feel/hate info array length (follow up to r8721 and r11840).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14523 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
ai4rei 2010-11-30 08:25:03 +00:00
parent 72c5290837
commit 6cb2c681c9
6 changed files with 11 additions and 9 deletions

View File

@ -1,6 +1,7 @@
Date Added Date Added
2010/11/30 2010/11/30
* Added a define for star gladiator feel/hate info array length (follow up to r8721 and r11840). [Ai4rei]
* Fixed script command getusers causing 'player not attached' errors when asking for character count in entire server (bugreport:4591, since r14495). [Ai4rei] * Fixed script command getusers causing 'player not attached' errors when asking for character count in entire server (bugreport:4591, since r14495). [Ai4rei]
2010/11/29 2010/11/29
* Resolved issues with item delay system. [Ai4rei] * Resolved issues with item delay system. [Ai4rei]

View File

@ -1942,8 +1942,8 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo
if (sc && sc->data[SC_MIRACLE]) i = 2; //Star anger if (sc && sc->data[SC_MIRACLE]) i = 2; //Star anger
else else
ARR_FIND(0, 3, i, t_class == sd->hate_mob[i]); ARR_FIND(0, MAX_PC_FEELHATE, i, t_class == sd->hate_mob[i]);
if (i < 3 && (skill=pc_checkskill(sd,sg_info[i].anger_id))) if (i < MAX_PC_FEELHATE && (skill=pc_checkskill(sd,sg_info[i].anger_id)))
{ {
skillratio = sd->status.base_level + sstatus->dex + sstatus->luk; skillratio = sd->status.base_level + sstatus->dex + sstatus->luk;
if (i == 2) skillratio += sstatus->str; //Star Anger if (i == 2) skillratio += sstatus->str; //Star Anger

View File

@ -12260,7 +12260,7 @@ void clif_parse_FeelSaveOk(int fd,struct map_session_data *sd)
if (sd->menuskill_id != SG_FEEL) if (sd->menuskill_id != SG_FEEL)
return; return;
i = sd->menuskill_val-1; i = sd->menuskill_val-1;
if (i<0 || i > 2) return; //Bug? if (i<0 || i >= MAX_PC_FEELHATE) return; //Bug?
sd->feel_map[i].index = map_id2index(sd->bl.m); sd->feel_map[i].index = map_id2index(sd->bl.m);
sd->feel_map[i].m = sd->bl.m; sd->feel_map[i].m = sd->bl.m;

View File

@ -2064,9 +2064,9 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
temp = status_get_class(&md->bl); temp = status_get_class(&md->bl);
if(sd->sc.data[SC_MIRACLE]) i = 2; //All mobs are Star Targets if(sd->sc.data[SC_MIRACLE]) i = 2; //All mobs are Star Targets
else else
ARR_FIND(0, 3, i, temp == sd->hate_mob[i] && ARR_FIND(0, MAX_PC_FEELHATE, i, temp == sd->hate_mob[i] &&
(battle_config.allow_skill_without_day || sg_info[i].day_func())); (battle_config.allow_skill_without_day || sg_info[i].day_func()));
if(i<3 && (temp=pc_checkskill(sd,sg_info[i].bless_id))) if(i<MAX_PC_FEELHATE && (temp=pc_checkskill(sd,sg_info[i].bless_id)))
bonus += (i==2?20:10)*temp; bonus += (i==2?20:10)*temp;
} }
if(battle_config.mobs_level_up && md->level > md->db->lv) // [Valaris] if(battle_config.mobs_level_up && md->level > md->db->lv) // [Valaris]

View File

@ -67,7 +67,7 @@ struct duel duel_list[MAX_DUEL];
int duel_count = 0; int duel_count = 0;
//Links related info to the sd->hate_mob[]/sd->feel_map[] entries //Links related info to the sd->hate_mob[]/sd->feel_map[] entries
const struct sg_data sg_info[3] = { const struct sg_data sg_info[MAX_PC_FEELHATE] = {
{ SG_SUN_ANGER, SG_SUN_BLESS, SG_SUN_COMFORT, "PC_FEEL_SUN", "PC_HATE_MOB_SUN", is_day_of_sun }, { SG_SUN_ANGER, SG_SUN_BLESS, SG_SUN_COMFORT, "PC_FEEL_SUN", "PC_HATE_MOB_SUN", is_day_of_sun },
{ SG_MOON_ANGER, SG_MOON_BLESS, SG_MOON_COMFORT, "PC_FEEL_MOON", "PC_HATE_MOB_MOON", is_day_of_moon }, { SG_MOON_ANGER, SG_MOON_BLESS, SG_MOON_COMFORT, "PC_FEEL_MOON", "PC_HATE_MOB_MOON", is_day_of_moon },
{ SG_STAR_ANGER, SG_STAR_BLESS, SG_STAR_COMFORT, "PC_FEEL_STAR", "PC_HATE_MOB_STAR", is_day_of_star } { SG_STAR_ANGER, SG_STAR_BLESS, SG_STAR_COMFORT, "PC_FEEL_STAR", "PC_HATE_MOB_STAR", is_day_of_star }
@ -1030,7 +1030,7 @@ int pc_reg_received(struct map_session_data *sd)
} }
//SG map and mob read [Komurka] //SG map and mob read [Komurka]
for(i=0;i<3;i++) //for now - someone need to make reading from txt/sql for(i=0;i<MAX_PC_FEELHATE;i++) //for now - someone need to make reading from txt/sql
{ {
if ((j = pc_readglobalreg(sd,sg_info[i].feel_var))!=0) { if ((j = pc_readglobalreg(sd,sg_info[i].feel_var))!=0) {
sd->feel_map[i].index = j; sd->feel_map[i].index = j;
@ -5460,7 +5460,7 @@ int pc_resetfeel(struct map_session_data* sd)
int i; int i;
nullpo_ret(sd); nullpo_ret(sd);
for (i=0; i<3; i++) for (i=0; i<MAX_PC_FEELHATE; i++)
{ {
sd->feel_map[i].m = -1; sd->feel_map[i].m = -1;
sd->feel_map[i].index = 0; sd->feel_map[i].index = 0;

View File

@ -17,6 +17,7 @@
#include "mob.h" #include "mob.h"
#define MAX_PC_BONUS 10 #define MAX_PC_BONUS 10
#define MAX_PC_FEELHATE 3
struct weapon_data { struct weapon_data {
int atkmods[3]; int atkmods[3];
@ -733,7 +734,7 @@ struct sg_data {
char hate_var[NAME_LENGTH]; char hate_var[NAME_LENGTH];
int (*day_func)(void); int (*day_func)(void);
}; };
extern const struct sg_data sg_info[3]; extern const struct sg_data sg_info[MAX_PC_FEELHATE];
void pc_setinvincibletimer(struct map_session_data* sd, int val); void pc_setinvincibletimer(struct map_session_data* sd, int val);
void pc_delinvincibletimer(struct map_session_data* sd); void pc_delinvincibletimer(struct map_session_data* sd);