//Attempts to set a mob.
int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl)
{
int class_;
if (!sd || !bl || pos < 0 || pos > 2)
return 0;
if (sd->hate_mob[pos] != -1)
{ //Can't change hate targets.
clif_hate_info(sd, pos, sd->hate_mob[pos], 0); //Display current
return 0;
}
class_ = status_get_class(bl);
if (!pcdb_checkid(class_)) {
unsigned int max_hp = status_get_max_hp(bl);
if ((pos == 1 && max_hp < 6000) || (pos == 2 && max_hp < 20000))
return 0;
if (pos != status_get_size(bl))
return 0; //Wrong size
}
sd->hate_mob[pos] = class_;
pc_setglobalreg(sd,hate_var[pos],class_+1);
clif_hate_info(sd, pos, class_, 1);
return 1;
}Заменить на это:
Код:
//Attempts to set a mob.
int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl)
{
int class_;
if (!sd || !bl || pos < 0 || pos > 2)
return 0;
if (sd->hate_mob[pos] != -1)
class_ = status_get_class(bl);
if (!pcdb_checkid(class_)) {
unsigned int max_hp = status_get_max_hp(bl);
if ((pos == 1 && max_hp < 6000) || (pos == 2 && max_hp < 20000))
return 0;
}
sd->hate_mob[pos] = class_;
pc_setglobalreg(sd,sg_info[pos].hate_var,class_+1);
clif_hate_info(sd, pos, class_, 1);
return 1;
}Примечание:Код на афине у меня выдавал ошибки.Пришлось почитать коменты в коде и убрать ограничения