cxx updates

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@861 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
amber 2004-12-29 19:18:18 +00:00
parent 11b797dabb
commit 0452a9c55f
32 changed files with 570 additions and 565 deletions

View File

@ -1,5 +1,6 @@
Date Added Date Added
12/29 12/29
* Some code cleanup in prep for new debugging malloc (SVN 861) [MouseJstr]
* Updated Soul Breaker's damage calculation [celest] * Updated Soul Breaker's damage calculation [celest]
* Updated Meteor Assault's cast delay to be not affected by dex [celest] * Updated Meteor Assault's cast delay to be not affected by dex [celest]
* Changed int_guild.c so it will calculate average guild level only if > 0 * Changed int_guild.c so it will calculate average guild level only if > 0

View File

@ -1,6 +1,7 @@
# $Id: Makefile 158 2004-10-01 03:45:15Z PoW $ # $Id: Makefile 158 2004-10-01 03:45:15Z PoW $
CC = gcc -pipe CC = gcc -pipe
# CC = gcc -pipe -x c++
# CC = gcc -pipe -DGCOLLECT # CC = gcc -pipe -DGCOLLECT
# CC = /usr/local/bin/gcc -fbounds-checking -pipe -DBCHECK # CC = /usr/local/bin/gcc -fbounds-checking -pipe -DBCHECK

View File

@ -269,7 +269,7 @@ int mmo_char_tostr(char *str, struct mmo_charstatus *p) {
"\t%d,%d,%d\t%d,%d,%d\t%d,%d,%d\t%d,%d,%d,%d,%d" "\t%d,%d,%d\t%d,%d,%d\t%d,%d,%d\t%d,%d,%d,%d,%d"
"\t%s,%d,%d\t%s,%d,%d,%d\t", "\t%s,%d,%d\t%s,%d,%d,%d\t",
p->char_id, p->account_id, p->char_num, p->name, // p->char_id, p->account_id, p->char_num, p->name, //
p->class, p->base_level, p->job_level, p->class_, p->base_level, p->job_level,
p->base_exp, p->job_exp, p->zeny, p->base_exp, p->job_exp, p->zeny,
p->hp, p->max_hp, p->sp, p->max_sp, p->hp, p->max_hp, p->sp, p->max_sp,
p->str, p->agi, p->vit, p->int_, p->dex, p->luk, p->str, p->agi, p->vit, p->int_, p->dex, p->luk,
@ -397,7 +397,7 @@ int mmo_char_fromstr(char *str, struct mmo_charstatus *p) {
p->char_id = tmp_int[0]; p->char_id = tmp_int[0];
p->account_id = tmp_int[1]; p->account_id = tmp_int[1];
p->char_num = tmp_int[2]; p->char_num = tmp_int[2];
p->class = tmp_int[3]; p->class_ = tmp_int[3];
p->base_level = tmp_int[4]; p->base_level = tmp_int[4];
p->job_level = tmp_int[5]; p->job_level = tmp_int[5];
p->base_exp = tmp_int[6]; p->base_exp = tmp_int[6];
@ -947,7 +947,7 @@ int make_new_char(int fd, unsigned char *dat) {
char_dat[i].account_id = sd->account_id; char_dat[i].account_id = sd->account_id;
char_dat[i].char_num = dat[30]; char_dat[i].char_num = dat[30];
strcpy(char_dat[i].name, dat); strcpy(char_dat[i].name, dat);
char_dat[i].class = 0; char_dat[i].class_ = 0;
char_dat[i].base_level = 1; char_dat[i].base_level = 1;
char_dat[i].job_level = 1; char_dat[i].job_level = 1;
char_dat[i].base_exp = 0; char_dat[i].base_exp = 0;
@ -1156,12 +1156,12 @@ void create_online_files(void) {
break; break;
case 4: // by job (and job level) case 4: // by job (and job level)
for(k = 0; k < players; k++) for(k = 0; k < players; k++)
if (char_dat[j].class < char_dat[id[k]].class || if (char_dat[j].class_ < char_dat[id[k]].class_ ||
// if same job, we sort by job level. // if same job, we sort by job level.
(char_dat[j].class == char_dat[id[k]].class && (char_dat[j].class_ == char_dat[id[k]].class_ &&
char_dat[j].job_level < char_dat[id[k]].job_level) || char_dat[j].job_level < char_dat[id[k]].job_level) ||
// if same job and job level, we sort by job exp. // if same job and job level, we sort by job exp.
(char_dat[j].class == char_dat[id[k]].class && (char_dat[j].class_ == char_dat[id[k]].class_ &&
char_dat[j].job_level == char_dat[id[k]].job_level && char_dat[j].job_level == char_dat[id[k]].job_level &&
char_dat[j].job_exp < char_dat[id[k]].job_exp)) { char_dat[j].job_exp < char_dat[id[k]].job_exp)) {
for(l = players; l > k; l--) for(l = players; l > k; l--)
@ -1302,7 +1302,7 @@ void create_online_files(void) {
} }
// displaying of the job // displaying of the job
if (online_display_option & 6) { if (online_display_option & 6) {
char * jobname = job_name(char_dat[j].class); char * jobname = job_name(char_dat[j].class_);
if ((online_display_option & 6) == 6) { if ((online_display_option & 6) == 6) {
fprintf(fp2, " <td>%s %d/%d</td>\n", jobname, char_dat[j].base_level, char_dat[j].job_level); fprintf(fp2, " <td>%s %d/%d</td>\n", jobname, char_dat[j].base_level, char_dat[j].job_level);
fprintf(fp, "%-18s %3d/%3d ", jobname, char_dat[j].base_level, char_dat[j].job_level); fprintf(fp, "%-18s %3d/%3d ", jobname, char_dat[j].base_level, char_dat[j].job_level);
@ -1436,7 +1436,7 @@ int mmo_char_send006b(int fd, struct char_session_data *sd) {
WFIFOW(fd,j+46) = (p->sp > 0x7fff) ? 0x7fff : p->sp; WFIFOW(fd,j+46) = (p->sp > 0x7fff) ? 0x7fff : p->sp;
WFIFOW(fd,j+48) = (p->max_sp > 0x7fff) ? 0x7fff : p->max_sp; WFIFOW(fd,j+48) = (p->max_sp > 0x7fff) ? 0x7fff : p->max_sp;
WFIFOW(fd,j+50) = DEFAULT_WALK_SPEED; // p->speed; WFIFOW(fd,j+50) = DEFAULT_WALK_SPEED; // p->speed;
WFIFOW(fd,j+52) = p->class; WFIFOW(fd,j+52) = p->class_;
WFIFOW(fd,j+54) = p->hair; WFIFOW(fd,j+54) = p->hair;
WFIFOW(fd,j+56) = p->weapon; WFIFOW(fd,j+56) = p->weapon;
WFIFOW(fd,j+58) = p->base_level; WFIFOW(fd,j+58) = p->base_level;
@ -1717,7 +1717,7 @@ int parse_tologin(int fd) {
if (acc > 0) { if (acc > 0) {
for (i = 0; i < char_num; i++) { for (i = 0; i < char_num; i++) {
if (char_dat[i].account_id == acc) { if (char_dat[i].account_id == acc) {
int jobclass = char_dat[i].class; int jobclass = char_dat[i].class_;
char_dat[i].sex = sex; char_dat[i].sex = sex;
auth_fifo[i].sex = sex; auth_fifo[i].sex = sex;
if (jobclass == 19 || jobclass == 20 || if (jobclass == 19 || jobclass == 20 ||
@ -1725,11 +1725,11 @@ int parse_tologin(int fd) {
jobclass == 4042 || jobclass == 4043) { jobclass == 4042 || jobclass == 4043) {
// job modification // job modification
if (jobclass == 19 || jobclass == 20) { if (jobclass == 19 || jobclass == 20) {
char_dat[i].class = (sex) ? 19 : 20; char_dat[i].class_ = (sex) ? 19 : 20;
} else if (jobclass == 4020 || jobclass == 4021) { } else if (jobclass == 4020 || jobclass == 4021) {
char_dat[i].class = (sex) ? 4020 : 4021; char_dat[i].class_ = (sex) ? 4020 : 4021;
} else if (jobclass == 4042 || jobclass == 4043) { } else if (jobclass == 4042 || jobclass == 4043) {
char_dat[i].class = (sex) ? 4042 : 4043; char_dat[i].class_ = (sex) ? 4042 : 4043;
} }
// remove specifical skills of classes 19, 4020 and 4042 // remove specifical skills of classes 19, 4020 and 4042
for(j = 315; j <= 322; j++) { for(j = 315; j <= 322; j++) {
@ -2730,7 +2730,7 @@ int parse_char(int fd) {
WFIFOW(fd,2+46) = (char_dat[i].sp > 0x7fff) ? 0x7fff : char_dat[i].sp; WFIFOW(fd,2+46) = (char_dat[i].sp > 0x7fff) ? 0x7fff : char_dat[i].sp;
WFIFOW(fd,2+48) = (char_dat[i].max_sp > 0x7fff) ? 0x7fff : char_dat[i].max_sp; WFIFOW(fd,2+48) = (char_dat[i].max_sp > 0x7fff) ? 0x7fff : char_dat[i].max_sp;
WFIFOW(fd,2+50) = DEFAULT_WALK_SPEED; // char_dat[i].speed; WFIFOW(fd,2+50) = DEFAULT_WALK_SPEED; // char_dat[i].speed;
WFIFOW(fd,2+52) = char_dat[i].class; WFIFOW(fd,2+52) = char_dat[i].class_;
WFIFOW(fd,2+54) = char_dat[i].hair; WFIFOW(fd,2+54) = char_dat[i].hair;
WFIFOW(fd,2+58) = char_dat[i].base_level; WFIFOW(fd,2+58) = char_dat[i].base_level;

View File

@ -45,7 +45,7 @@ int inter_guild_tostr(char *str, struct guild *g) {
len += sprintf(str + len, "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\t%s\t", len += sprintf(str + len, "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\t%s\t",
m->account_id, m->char_id, m->account_id, m->char_id,
m->hair, m->hair_color, m->gender, m->hair, m->hair_color, m->gender,
m->class, m->lv, m->exp, m->exp_payper, m->position, m->class_, m->lv, m->exp, m->exp_payper, m->position,
((m->account_id > 0) ? m->name : "-")); ((m->account_id > 0) ? m->name : "-"));
} }
// ð<E28093>E // ð<E28093>E
@ -138,7 +138,7 @@ int inter_guild_fromstr(char *str, struct guild *g) {
m->hair = tmp_int[2]; m->hair = tmp_int[2];
m->hair_color = tmp_int[3]; m->hair_color = tmp_int[3];
m->gender = tmp_int[4]; m->gender = tmp_int[4];
m->class = tmp_int[5]; m->class_ = tmp_int[5];
m->lv = tmp_int[6]; m->lv = tmp_int[6];
m->exp = tmp_int[7]; m->exp = tmp_int[7];
m->exp_payper = tmp_int[8]; m->exp_payper = tmp_int[8];
@ -767,7 +767,7 @@ int mapif_guild_memberinfoshort(struct guild *g, int idx) {
WBUFL(buf,10) = g->member[idx].char_id; WBUFL(buf,10) = g->member[idx].char_id;
WBUFB(buf,14) = g->member[idx].online; WBUFB(buf,14) = g->member[idx].online;
WBUFW(buf,15) = g->member[idx].lv; WBUFW(buf,15) = g->member[idx].lv;
WBUFW(buf,17) = g->member[idx].class; WBUFW(buf,17) = g->member[idx].class_;
mapif_sendall(buf, 19); mapif_sendall(buf, 19);
return 0; return 0;
} }
@ -1101,7 +1101,7 @@ int mapif_parse_GuildChangeMemberInfoShort(int fd, int guild_id, int account_id,
if (g->member[i].account_id == account_id && g->member[i].char_id == char_id) { if (g->member[i].account_id == account_id && g->member[i].char_id == char_id) {
g->member[i].online = online; g->member[i].online = online;
g->member[i].lv = lv; g->member[i].lv = lv;
g->member[i].class = class; g->member[i].class_ = class;
mapif_guild_memberinfoshort(g, i); mapif_guild_memberinfoshort(g, i);
} }
if (g->member[i].account_id > 0) { if (g->member[i].account_id > 0) {

View File

@ -30,7 +30,7 @@ int inter_pet_tostr(char *str,struct s_pet *p)
p->intimate = 1000; p->intimate = 1000;
len=sprintf(str,"%d,%d,%s\t%d,%d,%d,%d,%d,%d,%d,%d,%d", len=sprintf(str,"%d,%d,%s\t%d,%d,%d,%d,%d,%d,%d,%d,%d",
p->pet_id,p->class,p->name,p->account_id,p->char_id,p->level,p->egg_id, p->pet_id,p->class_,p->name,p->account_id,p->char_id,p->level,p->egg_id,
p->equip,p->intimate,p->hungry,p->rename_flag,p->incuvate); p->equip,p->intimate,p->hungry,p->rename_flag,p->incuvate);
return 0; return 0;
@ -52,7 +52,7 @@ int inter_pet_fromstr(char *str,struct s_pet *p)
return 1; return 1;
p->pet_id = tmp_int[0]; p->pet_id = tmp_int[0];
p->class = tmp_int[1]; p->class_ = tmp_int[1];
memcpy(p->name,tmp_str,24); memcpy(p->name,tmp_str,24);
p->account_id = tmp_int[2]; p->account_id = tmp_int[2];
p->char_id = tmp_int[3]; p->char_id = tmp_int[3];
@ -225,7 +225,7 @@ int mapif_create_pet(int fd,int account_id,int char_id,short pet_class,short pet
p->account_id = account_id; p->account_id = account_id;
p->char_id = char_id; p->char_id = char_id;
} }
p->class = pet_class; p->class_ = pet_class;
p->level = pet_lv; p->level = pet_lv;
p->egg_id = pet_egg_id; p->egg_id = pet_egg_id;
p->equip = pet_equip; p->equip = pet_equip;

View File

@ -440,7 +440,7 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus *p){
//===================================================================================================== //=====================================================================================================
if ((p->base_exp != cp->base_exp) || (p->class != cp->class) || if ((p->base_exp != cp->base_exp) || (p->class_ != cp->class_) ||
(p->base_level != cp->base_level) || (p->job_level != cp->job_level) || (p->base_level != cp->base_level) || (p->job_level != cp->job_level) ||
(p->job_exp != cp->job_exp) || (p->zeny != cp->zeny) || (p->job_exp != cp->job_exp) || (p->zeny != cp->zeny) ||
(p->last_point.x != cp->last_point.x) || (p->last_point.y != cp->last_point.y) || (p->last_point.x != cp->last_point.x) || (p->last_point.y != cp->last_point.y) ||
@ -498,7 +498,7 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus *p){
"`option`='%d',`karma`='%d',`manner`='%d',`party_id`='%d',`guild_id`='%d',`pet_id`='%d'," "`option`='%d',`karma`='%d',`manner`='%d',`party_id`='%d',`guild_id`='%d',`pet_id`='%d',"
"`hair`='%d',`hair_color`='%d',`clothes_color`='%d',`weapon`='%d',`shield`='%d',`head_top`='%d',`head_mid`='%d',`head_bottom`='%d'," "`hair`='%d',`hair_color`='%d',`clothes_color`='%d',`weapon`='%d',`shield`='%d',`head_top`='%d',`head_mid`='%d',`head_bottom`='%d',"
"`last_map`='%s',`last_x`='%d',`last_y`='%d',`save_map`='%s',`save_x`='%d',`save_y`='%d',`partner_id`='%d' WHERE `account_id`='%d' AND `char_id` = '%d'", "`last_map`='%s',`last_x`='%d',`last_y`='%d',`save_map`='%s',`save_x`='%d',`save_y`='%d',`partner_id`='%d' WHERE `account_id`='%d' AND `char_id` = '%d'",
char_db, p->class, p->base_level, p->job_level, char_db, p->class_, p->base_level, p->job_level,
p->base_exp, p->job_exp, p->zeny, p->base_exp, p->job_exp, p->zeny,
p->max_hp, p->hp, p->max_sp, p->sp, p->status_point, p->skill_point, p->max_hp, p->hp, p->max_sp, p->sp, p->status_point, p->skill_point,
p->str, p->agi, p->vit, p->int_, p->dex, p->luk, p->str, p->agi, p->vit, p->int_, p->dex, p->luk,
@ -913,7 +913,7 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus *p, int online){
p->account_id = atoi(sql_row[1]); p->account_id = atoi(sql_row[1]);
p->char_num = atoi(sql_row[2]); p->char_num = atoi(sql_row[2]);
strcpy(p->name, sql_row[3]); strcpy(p->name, sql_row[3]);
p->class = atoi(sql_row[4]); p->class_ = atoi(sql_row[4]);
p->base_level = atoi(sql_row[5]); p->base_level = atoi(sql_row[5]);
p->job_level = atoi(sql_row[6]); p->job_level = atoi(sql_row[6]);
p->base_exp = atoi(sql_row[7]); p->base_exp = atoi(sql_row[7]);
@ -1429,7 +1429,7 @@ int mmo_char_send006b(int fd, struct char_session_data *sd) {
WFIFOW(fd,j+46) = (p->sp > 0x7fff) ? 0x7fff : p->sp; WFIFOW(fd,j+46) = (p->sp > 0x7fff) ? 0x7fff : p->sp;
WFIFOW(fd,j+48) = (p->max_sp > 0x7fff) ? 0x7fff : p->max_sp; WFIFOW(fd,j+48) = (p->max_sp > 0x7fff) ? 0x7fff : p->max_sp;
WFIFOW(fd,j+50) = DEFAULT_WALK_SPEED; // p->speed; WFIFOW(fd,j+50) = DEFAULT_WALK_SPEED; // p->speed;
WFIFOW(fd,j+52) = p->class; WFIFOW(fd,j+52) = p->class_;
WFIFOW(fd,j+54) = p->hair; WFIFOW(fd,j+54) = p->hair;
WFIFOW(fd,j+56) = p->weapon; WFIFOW(fd,j+56) = p->weapon;
WFIFOW(fd,j+58) = p->base_level; WFIFOW(fd,j+58) = p->base_level;
@ -2539,7 +2539,7 @@ int parse_char(int fd) {
WFIFOW(fd,2+46) = (char_dat[i].sp > 0x7fff) ? 0x7fff : char_dat[i].sp; WFIFOW(fd,2+46) = (char_dat[i].sp > 0x7fff) ? 0x7fff : char_dat[i].sp;
WFIFOW(fd,2+48) = (char_dat[i].max_sp > 0x7fff) ? 0x7fff : char_dat[i].max_sp; WFIFOW(fd,2+48) = (char_dat[i].max_sp > 0x7fff) ? 0x7fff : char_dat[i].max_sp;
WFIFOW(fd,2+50) = DEFAULT_WALK_SPEED; // char_dat[i].speed; WFIFOW(fd,2+50) = DEFAULT_WALK_SPEED; // char_dat[i].speed;
WFIFOW(fd,2+52) = char_dat[i].class; WFIFOW(fd,2+52) = char_dat[i].class_;
WFIFOW(fd,2+54) = char_dat[i].hair; WFIFOW(fd,2+54) = char_dat[i].hair;
WFIFOW(fd,2+58) = char_dat[i].base_level; WFIFOW(fd,2+58) = char_dat[i].base_level;

View File

@ -229,7 +229,7 @@ int inter_guild_tosql(struct guild *g,int flag)
g->guild_id, g->guild_id,
m->account_id,m->char_id, m->account_id,m->char_id,
m->hair,m->hair_color,m->gender, m->hair,m->hair_color,m->gender,
m->class,m->lv,m->exp,m->exp_payper,m->online,m->position, m->class_,m->lv,m->exp,m->exp_payper,m->online,m->position,
0,0, 0,0,
jstrescapecpy(t_member,m->name)); jstrescapecpy(t_member,m->name));
@ -405,7 +405,7 @@ struct guild * inter_guild_fromsql(int guild_id)
m->hair=atoi(sql_row[3]); m->hair=atoi(sql_row[3]);
m->hair_color=atoi(sql_row[4]); m->hair_color=atoi(sql_row[4]);
m->gender=atoi(sql_row[5]); m->gender=atoi(sql_row[5]);
m->class=atoi(sql_row[6]); m->class_=atoi(sql_row[6]);
m->lv=atoi(sql_row[7]); m->lv=atoi(sql_row[7]);
m->exp=atoi(sql_row[8]); m->exp=atoi(sql_row[8]);
m->exp_payper=atoi(sql_row[9]); m->exp_payper=atoi(sql_row[9]);
@ -908,7 +908,7 @@ int mapif_guild_memberinfoshort(struct guild *g,int idx)
WBUFL(buf,10)=g->member[idx].char_id; WBUFL(buf,10)=g->member[idx].char_id;
WBUFB(buf,14)=g->member[idx].online; WBUFB(buf,14)=g->member[idx].online;
WBUFW(buf,15)=g->member[idx].lv; WBUFW(buf,15)=g->member[idx].lv;
WBUFW(buf,17)=g->member[idx].class; WBUFW(buf,17)=g->member[idx].class_;
mapif_sendall(buf,19); mapif_sendall(buf,19);
return 0; return 0;
} }
@ -1283,7 +1283,7 @@ int mapif_parse_GuildChangeMemberInfoShort(int fd,int guild_id,
g->member[i].online=online; g->member[i].online=online;
g->member[i].lv=lv; g->member[i].lv=lv;
g->member[i].class=class; g->member[i].class_=class;
mapif_guild_memberinfoshort(g,i); mapif_guild_memberinfoshort(g,i);
idx = i; idx = i;
} }
@ -1303,7 +1303,7 @@ int mapif_parse_GuildChangeMemberInfoShort(int fd,int guild_id,
if(mysql_query(&mysql_handle, tmp_sql) ) if(mysql_query(&mysql_handle, tmp_sql) )
printf("DB server Error: %s - %s\n", tmp_sql, mysql_error(&mysql_handle) ); printf("DB server Error: %s - %s\n", tmp_sql, mysql_error(&mysql_handle) );
sprintf(tmp_sql, "UPDATE `%s` SET `online`=%d,`lv`=%d,`class`=%d WHERE `char_id`=%d", guild_member_db, g->member[idx].online, g->member[idx].lv, g->member[idx].class, g->member[idx].char_id); sprintf(tmp_sql, "UPDATE `%s` SET `online`=%d,`lv`=%d,`class`=%d WHERE `char_id`=%d", guild_member_db, g->member[idx].online, g->member[idx].lv, g->member[idx].class_, g->member[idx].char_id);
if(mysql_query(&mysql_handle, tmp_sql) ) if(mysql_query(&mysql_handle, tmp_sql) )
printf("DB server Error: %s - %s\n", tmp_sql, mysql_error(&mysql_handle) ); printf("DB server Error: %s - %s\n", tmp_sql, mysql_error(&mysql_handle) );

View File

@ -39,11 +39,11 @@ int inter_pet_tosql(int pet_id, struct s_pet *p) {
if (sql_res!=NULL && mysql_num_rows(sql_res)>0) if (sql_res!=NULL && mysql_num_rows(sql_res)>0)
//row reside -> updating //row reside -> updating
sprintf(tmp_sql, "UPDATE `%s` SET `class`='%d',`name`='%s',`account_id`='%d',`char_id`='%d',`level`='%d',`egg_id`='%d',`equip`='%d',`intimate`='%d',`hungry`='%d',`rename_flag`='%d',`incuvate`='%d' WHERE `pet_id`='%d'", sprintf(tmp_sql, "UPDATE `%s` SET `class`='%d',`name`='%s',`account_id`='%d',`char_id`='%d',`level`='%d',`egg_id`='%d',`equip`='%d',`intimate`='%d',`hungry`='%d',`rename_flag`='%d',`incuvate`='%d' WHERE `pet_id`='%d'",
pet_db, p->class, t_name, p->account_id, p->char_id, p->level, p->egg_id, pet_db, p->class_, t_name, p->account_id, p->char_id, p->level, p->egg_id,
p->equip, p->intimate, p->hungry, p->rename_flag, p->incuvate, p->pet_id); p->equip, p->intimate, p->hungry, p->rename_flag, p->incuvate, p->pet_id);
else //no row -> insert else //no row -> insert
sprintf(tmp_sql,"INSERT INTO `%s` (`pet_id`, `class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incuvate`) VALUES ('%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')", sprintf(tmp_sql,"INSERT INTO `%s` (`pet_id`, `class`,`name`,`account_id`,`char_id`,`level`,`egg_id`,`equip`,`intimate`,`hungry`,`rename_flag`,`incuvate`) VALUES ('%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
pet_db, pet_id, p->class, t_name, p->account_id, p->char_id, p->level, p->egg_id, pet_db, pet_id, p->class_, t_name, p->account_id, p->char_id, p->level, p->egg_id,
p->equip, p->intimate, p->hungry, p->rename_flag, p->incuvate); p->equip, p->intimate, p->hungry, p->rename_flag, p->incuvate);
mysql_free_result(sql_res) ; //resource free mysql_free_result(sql_res) ; //resource free
if(mysql_query(&mysql_handle, tmp_sql) ) { if(mysql_query(&mysql_handle, tmp_sql) ) {
@ -72,7 +72,7 @@ int inter_pet_fromsql(int pet_id, struct s_pet *p){
sql_row = mysql_fetch_row(sql_res); sql_row = mysql_fetch_row(sql_res);
p->pet_id = pet_id; p->pet_id = pet_id;
p->class = atoi(sql_row[1]); p->class_ = atoi(sql_row[1]);
memcpy(p->name, sql_row[2],24); memcpy(p->name, sql_row[2],24);
p->account_id = atoi(sql_row[3]); p->account_id = atoi(sql_row[3]);
p->char_id = atoi(sql_row[4]); p->char_id = atoi(sql_row[4]);
@ -215,7 +215,7 @@ int mapif_create_pet(int fd, int account_id, int char_id, short pet_class, short
pet_pt->account_id = account_id; pet_pt->account_id = account_id;
pet_pt->char_id = char_id; pet_pt->char_id = char_id;
} }
pet_pt->class = pet_class; pet_pt->class_ = pet_class;
pet_pt->level = pet_lv; pet_pt->level = pet_lv;
pet_pt->egg_id = pet_egg_id; pet_pt->egg_id = pet_egg_id;
pet_pt->equip = pet_equip; pet_pt->equip = pet_equip;

View File

@ -6,6 +6,7 @@
#include "db.h" #include "db.h"
#include "mmo.h" #include "mmo.h"
#include "utils.h" #include "utils.h"
#include "malloc.h"
#ifdef MEMWATCH #ifdef MEMWATCH
#include "memwatch.h" #include "memwatch.h"

View File

@ -284,7 +284,7 @@ static void decode_des_etc(BYTE *buf,int len,int type,int cycle)
* Grf data decode sub : zip * Grf data decode sub : zip
*------------------------------------------ *------------------------------------------
*/ */
int decode_zip(char *dest, unsigned long* destLen, const char* source, unsigned long sourceLen) int decode_zip(unsigned char *dest, unsigned long* destLen, const unsigned char* source, unsigned long sourceLen)
{ {
z_stream stream; z_stream stream;
int err; int err;
@ -294,7 +294,7 @@ int decode_zip(char *dest, unsigned long* destLen, const char* source, unsigned
/* Check for source > 64K on 16-bit machine: */ /* Check for source > 64K on 16-bit machine: */
if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
stream.next_out = dest; stream.next_out = (Bytef*) dest;
stream.avail_out = (uInt)*destLen; stream.avail_out = (uInt)*destLen;
if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
@ -315,7 +315,7 @@ int decode_zip(char *dest, unsigned long* destLen, const char* source, unsigned
return err; return err;
} }
int encode_zip(char *dest, unsigned long* destLen, const char* source, unsigned long sourceLen) { int encode_zip(unsigned char *dest, unsigned long* destLen, const unsigned char* source, unsigned long sourceLen) {
z_stream stream; z_stream stream;
int err; int err;
@ -324,7 +324,7 @@ int encode_zip(char *dest, unsigned long* destLen, const char* source, unsigned
/* Check for source > 64K on 16-bit machine: */ /* Check for source > 64K on 16-bit machine: */
if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
stream.next_out = dest; stream.next_out = (Bytef*) dest;
stream.avail_out = (uInt)*destLen; stream.avail_out = (uInt)*destLen;
if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
@ -382,7 +382,7 @@ FILELIST *filelist_find(char *fname)
{ {
int hash; int hash;
for(hash=filelist_hash[filehash(fname)];hash>=0;hash=filelist[hash].next) { for(hash=filelist_hash[filehash((unsigned char *) fname)];hash>=0;hash=filelist[hash].next) {
if(strcmpi(filelist[hash].fn,fname)==0) if(strcmpi(filelist[hash].fn,fname)==0)
break; break;
} }
@ -421,7 +421,7 @@ static FILELIST* filelist_add(FILELIST *entry)
memcpy( &filelist[filelist_entrys], entry, sizeof(FILELIST) ); memcpy( &filelist[filelist_entrys], entry, sizeof(FILELIST) );
hash = filehash(entry->fn); hash = filehash((unsigned char *) entry->fn);
filelist[filelist_entrys].next = filelist_hash[hash]; filelist[filelist_entrys].next = filelist_hash[hash];
filelist_hash[hash] = filelist_entrys; filelist_hash[hash] = filelist_entrys;
@ -576,7 +576,7 @@ void* grfio_reads(char *fname, int *size)
lentry.declen = ftell(in); lentry.declen = ftell(in);
} }
fseek(in,0,0); // SEEK_SET fseek(in,0,0); // SEEK_SET
buf2 = calloc(lentry.declen+1024, 1); buf2 = (unsigned char *) aCalloc(lentry.declen+1024, 1);
if (buf2==NULL) { if (buf2==NULL) {
printf("file read memory allocate error : declen\n"); printf("file read memory allocate error : declen\n");
goto errret; goto errret;
@ -598,7 +598,7 @@ void* grfio_reads(char *fname, int *size)
} }
} }
if (entry!=NULL && entry->gentry>0) { // Archive[GRF] File Read if (entry!=NULL && entry->gentry>0) { // Archive[GRF] File Read
buf = calloc(entry->srclen_aligned+1024, 1); buf = (unsigned char *) aCalloc(entry->srclen_aligned+1024, 1);
if (buf==NULL) { if (buf==NULL) {
printf("file read memory allocate error : srclen_aligned\n"); printf("file read memory allocate error : srclen_aligned\n");
goto errret; goto errret;
@ -614,7 +614,7 @@ void* grfio_reads(char *fname, int *size)
fseek(in,entry->srcpos,0); fseek(in,entry->srcpos,0);
fread(buf,1,entry->srclen_aligned,in); fread(buf,1,entry->srclen_aligned,in);
fclose(in); fclose(in);
buf2=calloc(entry->declen+1024, 1); buf2 = (unsigned char *) aCalloc(entry->declen+1024, 1);
if (buf2==NULL) { if (buf2==NULL) {
printf("file decode memory allocate error\n"); printf("file decode memory allocate error\n");
goto errret; goto errret;
@ -694,7 +694,7 @@ static int grfio_entryread(char *gfname,int gentry)
grf_size = ftell(fp); grf_size = ftell(fp);
fseek(fp,0,0); // SEEK_SET fseek(fp,0,0); // SEEK_SET
fread(grf_header,1,0x2e,fp); fread(grf_header,1,0x2e,fp);
if(strcmp(grf_header,"Master of Magic") || fseek(fp,getlong(grf_header+0x1e),1)){ // SEEK_CUR if(strcmp((const char *) grf_header,"Master of Magic") || fseek(fp,getlong(grf_header+0x1e),1)){ // SEEK_CUR
fclose(fp); fclose(fp);
printf("%s read error\n",gfname); printf("%s read error\n",gfname);
return 2; // 2:file format error return 2; // 2:file format error
@ -704,7 +704,7 @@ static int grfio_entryread(char *gfname,int gentry)
if (grf_version==0x01) { //****** Grf version 01xx ****** if (grf_version==0x01) { //****** Grf version 01xx ******
list_size = grf_size-ftell(fp); list_size = grf_size-ftell(fp);
grf_filelist = calloc(list_size, 1); grf_filelist = (unsigned char *) aCalloc(list_size, 1);
if(grf_filelist==NULL){ if(grf_filelist==NULL){
fclose(fp); fclose(fp);
printf("out of memory : grf_filelist\n"); printf("out of memory : grf_filelist\n");
@ -725,13 +725,13 @@ static int grfio_entryread(char *gfname,int gentry)
type = grf_filelist[ofs2+12]; type = grf_filelist[ofs2+12];
if( type!=0 ){ // Directory Index ... skip if( type!=0 ){ // Directory Index ... skip
fname = decode_filename(grf_filelist+ofs+6,grf_filelist[ofs]-6); fname = decode_filename(grf_filelist+ofs+6,grf_filelist[ofs]-6);
if(strlen(fname)>sizeof(aentry.fn)-1){ if(strlen((const char *) fname)>sizeof(aentry.fn)-1){
printf("file name too long : %s\n",fname); printf("file name too long : %s\n",fname);
free(grf_filelist); free(grf_filelist);
exit(1); exit(1);
} }
srclen=0; srclen=0;
if((period_ptr=strrchr(fname,'.'))!=NULL){ if((period_ptr=strrchr((const char *) fname,'.'))!=NULL){
for(lop=0;lop<4;lop++) { for(lop=0;lop<4;lop++) {
if(strcmpi(period_ptr,".gnd\0.gat\0.act\0.str"+lop*5)==0) if(strcmpi(period_ptr,".gnd\0.gat\0.act\0.str"+lop*5)==0)
break; break;
@ -752,7 +752,7 @@ static int grfio_entryread(char *gfname,int gentry)
aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e; aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e;
aentry.cycle = srccount; aentry.cycle = srccount;
aentry.type = type; aentry.type = type;
strncpy(aentry.fn,fname,sizeof(aentry.fn)-1); strncpy(aentry.fn, (const char *) fname,sizeof(aentry.fn)-1);
#ifdef GRFIO_LOCAL #ifdef GRFIO_LOCAL
aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck
#else #else
@ -779,13 +779,13 @@ static int grfio_entryread(char *gfname,int gentry)
return 4; return 4;
} }
rBuf = calloc( rSize , 1); // Get a Read Size rBuf = (unsigned char *) aCalloc( rSize , 1); // Get a Read Size
if (rBuf==NULL) { if (rBuf==NULL) {
fclose(fp); fclose(fp);
printf("out of memory : grf compress entry table buffer\n"); printf("out of memory : grf compress entry table buffer\n");
return 3; return 3;
} }
grf_filelist = calloc( eSize , 1); // Get a Extend Size grf_filelist = (unsigned char *) aCalloc( eSize , 1); // Get a Extend Size
if (grf_filelist==NULL) { if (grf_filelist==NULL) {
free(rBuf); free(rBuf);
fclose(fp); fclose(fp);
@ -806,7 +806,7 @@ static int grfio_entryread(char *gfname,int gentry)
FILELIST aentry; FILELIST aentry;
fname = grf_filelist+ofs; fname = grf_filelist+ofs;
if (strlen(fname)>sizeof(aentry.fn)-1) { if (strlen((const char *) fname)>sizeof(aentry.fn)-1) {
printf("grf : file name too long : %s\n",fname); printf("grf : file name too long : %s\n",fname);
free(grf_filelist); free(grf_filelist);
exit(1); exit(1);
@ -927,7 +927,7 @@ int grfio_add(char *fname)
} }
} }
len = strlen( fname ); len = strlen( fname );
buf = calloc(len+1, 1); buf = aCalloc(len+1, 1);
if (buf==NULL) { if (buf==NULL) {
printf("out of memory : gentry\n"); printf("out of memory : gentry\n");
exit(1); exit(1);

View File

@ -8,8 +8,8 @@ void* grfio_read(char*); // GRFIO data file read
void* grfio_reads(char*,int*); // GRFIO data file read & size get void* grfio_reads(char*,int*); // GRFIO data file read & size get
int grfio_size(char*); // GRFIO data file size get int grfio_size(char*); // GRFIO data file size get
int decode_zip(char *dest, unsigned long* destLen, const char* source, unsigned long sourceLen); int decode_zip(unsigned char *dest, unsigned long* destLen, const unsigned char* source, unsigned long sourceLen);
int encode_zip(char *dest, unsigned long* destLen, const char* source, unsigned long sourceLen); int encode_zip(unsigned char *dest, unsigned long* destLen, const unsigned char* source, unsigned long sourceLen);
// Accessor to GRF filenames // Accessor to GRF filenames
char *grfio_setdatafile(const char *str); char *grfio_setdatafile(const char *str);

View File

@ -114,7 +114,7 @@ struct s_pet {
int account_id; int account_id;
int char_id; int char_id;
int pet_id; int pet_id;
short class; short class_;
short level; short level;
short egg_id;//pet egg id short egg_id;//pet egg id
short equip;//pet equip name_id short equip;//pet equip name_id
@ -132,7 +132,7 @@ struct mmo_charstatus {
int base_exp,job_exp,zeny; int base_exp,job_exp,zeny;
short class; short class_;
short status_point,skill_point; short status_point,skill_point;
int hp,max_hp,sp,max_sp; int hp,max_hp,sp,max_sp;
short option,karma,manner; short option,karma,manner;
@ -204,7 +204,7 @@ struct party {
struct guild_member { struct guild_member {
int account_id, char_id; int account_id, char_id;
short hair,hair_color,gender,class,lv; short hair,hair_color,gender,class_,lv;
int exp,exp_payper; int exp,exp_payper;
short online,position; short online,position;
int rsv1,rsv2; int rsv1,rsv2;

View File

@ -200,8 +200,8 @@ static int connect_client(int listen_fd)
#endif #endif
CREATE(session[fd], struct socket_data, 1); CREATE(session[fd], struct socket_data, 1);
CREATE(session[fd]->rdata, char, rfifo_size); CREATE(session[fd]->rdata, unsigned char, rfifo_size);
CREATE(session[fd]->wdata, char, wfifo_size); CREATE(session[fd]->wdata, unsigned char, wfifo_size);
session[fd]->max_rdata = rfifo_size; session[fd]->max_rdata = rfifo_size;
session[fd]->max_wdata = wfifo_size; session[fd]->max_wdata = wfifo_size;
@ -339,8 +339,8 @@ int make_connection(long ip,int port)
FD_SET(fd,&readfds); FD_SET(fd,&readfds);
CREATE(session[fd], struct socket_data, 1); CREATE(session[fd], struct socket_data, 1);
CREATE(session[fd]->rdata, char, rfifo_size); CREATE(session[fd]->rdata, unsigned char, rfifo_size);
CREATE(session[fd]->wdata, char, wfifo_size); CREATE(session[fd]->wdata, unsigned char, wfifo_size);
session[fd]->max_rdata = rfifo_size; session[fd]->max_rdata = rfifo_size;
session[fd]->max_wdata = wfifo_size; session[fd]->max_wdata = wfifo_size;
@ -374,11 +374,11 @@ int realloc_fifo(int fd,int rfifo_size,int wfifo_size)
{ {
struct socket_data *s=session[fd]; struct socket_data *s=session[fd];
if( s->max_rdata != rfifo_size && s->rdata_size < rfifo_size){ if( s->max_rdata != rfifo_size && s->rdata_size < rfifo_size){
RECREATE(s->rdata, char, rfifo_size); RECREATE(s->rdata, unsigned char, rfifo_size);
s->max_rdata = rfifo_size; s->max_rdata = rfifo_size;
} }
if( s->max_wdata != wfifo_size && s->wdata_size < wfifo_size){ if( s->max_wdata != wfifo_size && s->wdata_size < wfifo_size){
RECREATE(s->wdata, char, wfifo_size); RECREATE(s->wdata, unsigned char, wfifo_size);
s->max_wdata = wfifo_size; s->max_wdata = wfifo_size;
} }
return 0; return 0;

View File

@ -12,6 +12,7 @@
#include <sys/socket.h> #include <sys/socket.h>
#include <netinet/in.h> #include <netinet/in.h>
#endif #endif
#include "malloc.h"
// define declaration // define declaration

View File

@ -4,6 +4,7 @@
#include "strlib.h" #include "strlib.h"
#include "utils.h" #include "utils.h"
#include "malloc.h"
//----------------------------------------------- //-----------------------------------------------
// string lib. // string lib.

View File

@ -27,11 +27,11 @@
#define CREATE(result, type, number) do {\ #define CREATE(result, type, number) do {\
if ((number) * sizeof(type) <= 0) \ if ((number) * sizeof(type) <= 0) \
printf("SYSERR: Zero bytes or less requested at %s:%d.\n", __FILE__, __LINE__); \ printf("SYSERR: Zero bytes or less requested at %s:%d.\n", __FILE__, __LINE__); \
if (!((result) = (type *) calloc ((number), sizeof(type)))) \ if (!((result) = (type *) aCalloc ((number), sizeof(type)))) \
{ perror("SYSERR: malloc failure"); abort(); } } while(0) { perror("SYSERR: malloc failure"); abort(); } } while(0)
#define RECREATE(result,type,number) do {\ #define RECREATE(result,type,number) do {\
if (!((result) = (type *) realloc ((result), sizeof(type) * (number))))\ if (!((result) = (type *) aRealloc ((result), sizeof(type) * (number))))\
{ printf("SYSERR: realloc failure"); abort(); } } while(0) { printf("SYSERR: realloc failure"); abort(); } } while(0)
struct StringBuf { struct StringBuf {

View File

@ -831,7 +831,7 @@ static int atmobsearch_sub(struct block_list *bl,va_list ap)
md = (struct mob_data *)bl; md = (struct mob_data *)bl;
if(md && fd && (mob_id==-1 || (md->class==mob_id))){ if(md && fd && (mob_id==-1 || (md->class_==mob_id))){
snprintf(output, sizeof output, "%2d[%3d:%3d] %s", snprintf(output, sizeof output, "%2d[%3d:%3d] %s",
++number,bl->x, bl->y,md->name); ++number,bl->x, bl->y,md->name);
clif_displaymessage(fd, output); clif_displaymessage(fd, output);
@ -1285,9 +1285,9 @@ int atcommand_who2(
player_name[j] = tolower(player_name[j]); player_name[j] = tolower(player_name[j]);
if (strstr(player_name, match_text) != NULL) { // search with no case sensitive if (strstr(player_name, match_text) != NULL) { // search with no case sensitive
if (pl_GM_level > 0) if (pl_GM_level > 0)
sprintf(output, "Name: %s (GM:%d) | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_GM_level, pl_sd->status.base_level, job_name(pl_sd->status.class), pl_sd->status.job_level); sprintf(output, "Name: %s (GM:%d) | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_GM_level, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level);
else else
sprintf(output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class), pl_sd->status.job_level); sprintf(output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level);
clif_displaymessage(fd, output); clif_displaymessage(fd, output);
count++; count++;
} }
@ -1478,9 +1478,9 @@ int atcommand_whomap2(
if (!((battle_config.hide_GM_session || (pl_sd->status.option & OPTION_HIDE)) && (pl_GM_level > GM_level))) { // you can look only lower or same level if (!((battle_config.hide_GM_session || (pl_sd->status.option & OPTION_HIDE)) && (pl_GM_level > GM_level))) { // you can look only lower or same level
if (pl_sd->bl.m == map_id) { if (pl_sd->bl.m == map_id) {
if (pl_GM_level > 0) if (pl_GM_level > 0)
sprintf(output, "Name: %s (GM:%d) | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_GM_level, pl_sd->status.base_level, job_name(pl_sd->status.class), pl_sd->status.job_level); sprintf(output, "Name: %s (GM:%d) | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_GM_level, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level);
else else
sprintf(output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class), pl_sd->status.job_level); sprintf(output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level);
clif_displaymessage(fd, output); clif_displaymessage(fd, output);
count++; count++;
} }
@ -1621,7 +1621,7 @@ int atcommand_whogm(
if (strstr(player_name, match_text) != NULL) { // search with no case sensitive if (strstr(player_name, match_text) != NULL) { // search with no case sensitive
sprintf(output, "Name: %s (GM:%d) | Location: %s %d %d", pl_sd->status.name, pl_GM_level, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); sprintf(output, "Name: %s (GM:%d) | Location: %s %d %d", pl_sd->status.name, pl_GM_level, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y);
clif_displaymessage(fd, output); clif_displaymessage(fd, output);
sprintf(output, " BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.base_level, job_name(pl_sd->status.class), pl_sd->status.job_level); sprintf(output, " BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level);
clif_displaymessage(fd, output); clif_displaymessage(fd, output);
g = guild_search(pl_sd->status.guild_id); g = guild_search(pl_sd->status.guild_id);
if (g == NULL) if (g == NULL)
@ -1884,30 +1884,30 @@ int atcommand_option(
} }
sd->status.option = param3; sd->status.option = param3;
// fix pecopeco display // fix pecopeco display
if (sd->status.class == 13 || sd->status.class == 21 || sd->status.class == 4014 || sd->status.class == 4022) { if (sd->status.class_ == 13 || sd->status.class_ == 21 || sd->status.class_ == 4014 || sd->status.class_ == 4022) {
if (!pc_isriding(sd)) { // sd have the new value... if (!pc_isriding(sd)) { // sd have the new value...
if (sd->status.class == 13) if (sd->status.class_ == 13)
sd->status.class = sd->view_class = 7; sd->status.class_ = sd->view_class = 7;
else if (sd->status.class == 21) else if (sd->status.class_ == 21)
sd->status.class = sd->view_class = 14; sd->status.class_ = sd->view_class = 14;
else if (sd->status.class == 4014) else if (sd->status.class_ == 4014)
sd->status.class = sd->view_class = 4008; sd->status.class_ = sd->view_class = 4008;
else if (sd->status.class == 4022) else if (sd->status.class_ == 4022)
sd->status.class = sd->view_class = 4015; sd->status.class_ = sd->view_class = 4015;
} }
} else { } else {
if (pc_isriding(sd)) { // sd have the new value... if (pc_isriding(sd)) { // sd have the new value...
if (sd->disguise > 0) { // temporary prevention of crash caused by peco + disguise, will look into a better solution [Valaris] (code added by [Yor]) if (sd->disguise > 0) { // temporary prevention of crash caused by peco + disguise, will look into a better solution [Valaris] (code added by [Yor])
sd->status.option &= ~0x0020; sd->status.option &= ~0x0020;
} else { } else {
if (sd->status.class == 7) if (sd->status.class_ == 7)
sd->status.class = sd->view_class = 13; sd->status.class_ = sd->view_class = 13;
else if (sd->status.class == 14) else if (sd->status.class_ == 14)
sd->status.class = sd->view_class = 21; sd->status.class_ = sd->view_class = 21;
else if (sd->status.class == 4008) else if (sd->status.class_ == 4008)
sd->status.class = sd->view_class = 4014; sd->status.class_ = sd->view_class = 4014;
else if (sd->status.class == 4015) else if (sd->status.class_ == 4015)
sd->status.class = sd->view_class = 4022; sd->status.class_ = sd->view_class = 4022;
else else
sd->status.option &= ~0x0020; sd->status.option &= ~0x0020;
} }
@ -2049,14 +2049,14 @@ int atcommand_jobchange(
// fix pecopeco display // fix pecopeco display
if ((job != 13 && job != 21 && job != 4014 && job != 4022)) { if ((job != 13 && job != 21 && job != 4014 && job != 4022)) {
if (pc_isriding(sd)) { if (pc_isriding(sd)) {
if (sd->status.class == 13) if (sd->status.class_ == 13)
sd->status.class = sd->view_class = 7; sd->status.class_ = sd->view_class = 7;
if (sd->status.class == 21) if (sd->status.class_ == 21)
sd->status.class = sd->view_class = 14; sd->status.class_ = sd->view_class = 14;
if (sd->status.class == 4014) if (sd->status.class_ == 4014)
sd->status.class = sd->view_class = 4008; sd->status.class_ = sd->view_class = 4008;
if (sd->status.class == 4022) if (sd->status.class_ == 4022)
sd->status.class = sd->view_class = 4015; sd->status.class_ = sd->view_class = 4015;
sd->status.option &= ~0x0020; sd->status.option &= ~0x0020;
clif_changeoption(&sd->bl); clif_changeoption(&sd->bl);
pc_calcstatus(sd, 0); pc_calcstatus(sd, 0);
@ -2280,9 +2280,9 @@ int atcommand_item(
for (i = 0; i < number; i += get_count) { for (i = 0; i < number; i += get_count) {
// if pet egg // if pet egg
if (pet_id >= 0) { if (pet_id >= 0) {
sd->catch_target_class = pet_db[pet_id].class; sd->catch_target_class = pet_db[pet_id].class_;
intif_create_pet(sd->status.account_id, sd->status.char_id, intif_create_pet(sd->status.account_id, sd->status.char_id,
pet_db[pet_id].class, mob_db[pet_db[pet_id].class].lv, pet_db[pet_id].class_, mob_db[pet_db[pet_id].class_].lv,
pet_db[pet_id].EggID, 0, pet_db[pet_id].intimate, pet_db[pet_id].EggID, 0, pet_db[pet_id].intimate,
100, 0, 1, pet_db[pet_id].jname); 100, 0, 1, pet_db[pet_id].jname);
// if not pet egg // if not pet egg
@ -2480,7 +2480,7 @@ int atcommand_joblevelup(
int up_level = 50, level; int up_level = 50, level;
struct pc_base_job s_class; struct pc_base_job s_class;
nullpo_retr(-1, sd); nullpo_retr(-1, sd);
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
if (!message || !*message || (level = atoi(message)) == 0) { if (!message || !*message || (level = atoi(message)) == 0) {
clif_displaymessage(fd, "Please, enter a level adjustement (usage: @joblvup/@jlevel/@joblvlup <number of levels>)."); clif_displaymessage(fd, "Please, enter a level adjustement (usage: @joblvup/@jlevel/@joblvlup <number of levels>).");
@ -2492,7 +2492,7 @@ int atcommand_joblevelup(
// super novices can go up to 99 [celest] // super novices can go up to 99 [celest]
else if (s_class.job == 23) else if (s_class.job == 23)
up_level += 49; up_level += 49;
else if (sd->status.class > 4007 && sd->status.class < 4023) else if (sd->status.class_ > 4007 && sd->status.class_ < 4023)
up_level += 20; up_level += 20;
if (level > 0) { if (level > 0) {
@ -2748,7 +2748,7 @@ int atcommand_model(
hair_color >= MIN_HAIR_COLOR && hair_color <= MAX_HAIR_COLOR && hair_color >= MIN_HAIR_COLOR && hair_color <= MAX_HAIR_COLOR &&
cloth_color >= MIN_CLOTH_COLOR && cloth_color <= MAX_CLOTH_COLOR) { cloth_color >= MIN_CLOTH_COLOR && cloth_color <= MAX_CLOTH_COLOR) {
//服の色変更 //服の色変更
if (cloth_color != 0 && sd->status.sex == 1 && (sd->status.class == 12 || sd->status.class == 17)) { if (cloth_color != 0 && sd->status.sex == 1 && (sd->status.class_ == 12 || sd->status.class_ == 17)) {
//服の色未実装職の判定 //服の色未実装職の判定
clif_displaymessage(fd, msg_table[35]); // You can't use this command with this class. clif_displaymessage(fd, msg_table[35]); // You can't use this command with this class.
return -1; return -1;
@ -2814,7 +2814,7 @@ int atcommand_hair_style(const int fd, struct map_session_data* sd, const char*
} }
if (hair_style >= MIN_HAIR_STYLE && hair_style <= MAX_HAIR_STYLE) { if (hair_style >= MIN_HAIR_STYLE && hair_style <= MAX_HAIR_STYLE) {
if (hair_style != 0 && sd->status.sex == 1 && (sd->status.class == 12 || sd->status.class == 17)) { if (hair_style != 0 && sd->status.sex == 1 && (sd->status.class_ == 12 || sd->status.class_ == 17)) {
clif_displaymessage(fd, msg_table[35]); // You can't use this command with this class. clif_displaymessage(fd, msg_table[35]); // You can't use this command with this class.
return -1; return -1;
} else { } else {
@ -2860,7 +2860,7 @@ int atcommand_hair_color(const int fd, struct map_session_data* sd, const char*
} }
if (hair_color >= MIN_HAIR_COLOR && hair_color <= MAX_HAIR_COLOR) { if (hair_color >= MIN_HAIR_COLOR && hair_color <= MAX_HAIR_COLOR) {
if (hair_color != 0 && sd->status.sex == 1 && (sd->status.class == 12 || sd->status.class == 17)) { if (hair_color != 0 && sd->status.sex == 1 && (sd->status.class_ == 12 || sd->status.class_ == 17)) {
clif_displaymessage(fd, msg_table[35]); // You can't use this command with this class. clif_displaymessage(fd, msg_table[35]); // You can't use this command with this class.
return -1; return -1;
} else { } else {
@ -3976,10 +3976,10 @@ int atcommand_makeegg(
if (pet_id < 0) if (pet_id < 0)
pet_id = search_petDB_index(id, PET_EGG); pet_id = search_petDB_index(id, PET_EGG);
if (pet_id >= 0) { if (pet_id >= 0) {
sd->catch_target_class = pet_db[pet_id].class; sd->catch_target_class = pet_db[pet_id].class_;
intif_create_pet( intif_create_pet(
sd->status.account_id, sd->status.char_id, sd->status.account_id, sd->status.char_id,
pet_db[pet_id].class, mob_db[pet_db[pet_id].class].lv, pet_db[pet_id].class_, mob_db[pet_db[pet_id].class_].lv,
pet_db[pet_id].EggID, 0, pet_db[pet_id].intimate, pet_db[pet_id].EggID, 0, pet_db[pet_id].intimate,
100, 0, 1, pet_db[pet_id].jname); 100, 0, 1, pet_db[pet_id].jname);
} else { } else {
@ -4711,14 +4711,14 @@ int atcommand_character_joblevel(
} }
if ((pl_sd = map_nick2sd(character)) != NULL) { if ((pl_sd = map_nick2sd(character)) != NULL) {
pl_s_class = pc_calc_base_job(pl_sd->status.class); pl_s_class = pc_calc_base_job(pl_sd->status.class_);
if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change job level only lower or same gm level if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change job level only lower or same gm level
if (pl_s_class.job == 0) if (pl_s_class.job == 0)
max_level -= 40; max_level -= 40;
// super novices can go up to 99 [celest] // super novices can go up to 99 [celest]
else if (pl_s_class.job == 23) else if (pl_s_class.job == 23)
max_level += 49; max_level += 49;
else if (pl_sd->status.class > 4007 && pl_sd->status.class < 4023) else if (pl_sd->status.class_ > 4007 && pl_sd->status.class_ < 4023)
max_level += 20; max_level += 20;
if (level > 0) { if (level > 0) {
@ -5316,7 +5316,7 @@ int atcommand_charmodel(
if (cloth_color != 0 && if (cloth_color != 0 &&
pl_sd->status.sex == 1 && pl_sd->status.sex == 1 &&
(pl_sd->status.class == 12 || pl_sd->status.class == 17)) { (pl_sd->status.class_ == 12 || pl_sd->status.class_ == 17)) {
clif_displaymessage(fd, msg_table[35]); // You can't use this command with this class. clif_displaymessage(fd, msg_table[35]); // You can't use this command with this class.
return -1; return -1;
} else { } else {
@ -5782,7 +5782,7 @@ int atcommand_mapinfo(
default: strcpy(direction, "Unknown"); break; default: strcpy(direction, "Unknown"); break;
} }
sprintf(output, "NPC %d: %s | Direction: %s | Sprite: %d | Location: %d %d", sprintf(output, "NPC %d: %s | Direction: %s | Sprite: %d | Location: %d %d",
++i, nd->name, direction, nd->class, nd->bl.x, nd->bl.y); ++i, nd->name, direction, nd->class_, nd->bl.x, nd->bl.y);
clif_displaymessage(fd, output); clif_displaymessage(fd, output);
} }
break; break;
@ -5826,15 +5826,15 @@ int atcommand_mount_peco(
} }
if (!pc_isriding(sd)) { // if actually no peco if (!pc_isriding(sd)) { // if actually no peco
if (sd->status.class == 7 || sd->status.class == 14 || sd->status.class == 4008 || sd->status.class == 4015) { if (sd->status.class_ == 7 || sd->status.class_ == 14 || sd->status.class_ == 4008 || sd->status.class_ == 4015) {
if (sd->status.class == 7) if (sd->status.class_ == 7)
sd->status.class = sd->view_class = 13; sd->status.class_ = sd->view_class = 13;
else if (sd->status.class == 14) else if (sd->status.class_ == 14)
sd->status.class = sd->view_class = 21; sd->status.class_ = sd->view_class = 21;
else if (sd->status.class == 4008) else if (sd->status.class_ == 4008)
sd->status.class = sd->view_class = 4014; sd->status.class_ = sd->view_class = 4014;
else if (sd->status.class == 4015) else if (sd->status.class_ == 4015)
sd->status.class = sd->view_class = 4022; sd->status.class_ = sd->view_class = 4022;
pc_setoption(sd, sd->status.option | 0x0020); pc_setoption(sd, sd->status.option | 0x0020);
clif_displaymessage(fd, msg_table[102]); // Mounted Peco. clif_displaymessage(fd, msg_table[102]); // Mounted Peco.
} else { } else {
@ -5842,14 +5842,14 @@ int atcommand_mount_peco(
return -1; return -1;
} }
} else { } else {
if (sd->status.class == 13) if (sd->status.class_ == 13)
sd->status.class = sd->view_class = 7; sd->status.class_ = sd->view_class = 7;
else if (sd->status.class == 21) else if (sd->status.class_ == 21)
sd->status.class = sd->view_class = 14; sd->status.class_ = sd->view_class = 14;
else if (sd->status.class == 4014) else if (sd->status.class_ == 4014)
sd->status.class = sd->view_class = 4008; sd->status.class_ = sd->view_class = 4008;
else if (sd->status.class == 4022) else if (sd->status.class_ == 4022)
sd->status.class = sd->view_class = 4015; sd->status.class_ = sd->view_class = 4015;
pc_setoption(sd, sd->status.option & ~0x0020); pc_setoption(sd, sd->status.option & ~0x0020);
clif_displaymessage(fd, msg_table[214]); // Unmounted Peco. clif_displaymessage(fd, msg_table[214]); // Unmounted Peco.
} }
@ -5883,15 +5883,15 @@ int atcommand_char_mount_peco(
} }
if (!pc_isriding(pl_sd)) { // if actually no peco if (!pc_isriding(pl_sd)) { // if actually no peco
if (pl_sd->status.class == 7 || pl_sd->status.class == 14 || pl_sd->status.class == 4008 || pl_sd->status.class == 4015) { if (pl_sd->status.class_ == 7 || pl_sd->status.class_ == 14 || pl_sd->status.class_ == 4008 || pl_sd->status.class_ == 4015) {
if (pl_sd->status.class == 7) if (pl_sd->status.class_ == 7)
pl_sd->status.class = pl_sd->view_class = 13; pl_sd->status.class_ = pl_sd->view_class = 13;
else if (pl_sd->status.class == 14) else if (pl_sd->status.class_ == 14)
pl_sd->status.class = pl_sd->view_class = 21; pl_sd->status.class_ = pl_sd->view_class = 21;
else if (pl_sd->status.class == 4008) else if (pl_sd->status.class_ == 4008)
pl_sd->status.class = pl_sd->view_class = 4014; pl_sd->status.class_ = pl_sd->view_class = 4014;
else if (pl_sd->status.class == 4015) else if (pl_sd->status.class_ == 4015)
pl_sd->status.class = pl_sd->view_class = 4022; pl_sd->status.class_ = pl_sd->view_class = 4022;
pc_setoption(pl_sd, pl_sd->status.option | 0x0020); pc_setoption(pl_sd, pl_sd->status.option | 0x0020);
clif_displaymessage(fd, msg_table[216]); // Now, this player mounts a peco. clif_displaymessage(fd, msg_table[216]); // Now, this player mounts a peco.
} else { } else {
@ -5899,14 +5899,14 @@ int atcommand_char_mount_peco(
return -1; return -1;
} }
} else { } else {
if (pl_sd->status.class == 13) if (pl_sd->status.class_ == 13)
pl_sd->status.class = pl_sd->view_class = 7; pl_sd->status.class_ = pl_sd->view_class = 7;
else if (pl_sd->status.class == 21) else if (pl_sd->status.class_ == 21)
pl_sd->status.class = pl_sd->view_class = 14; pl_sd->status.class_ = pl_sd->view_class = 14;
else if (pl_sd->status.class == 4014) else if (pl_sd->status.class_ == 4014)
pl_sd->status.class = pl_sd->view_class = 4008; pl_sd->status.class_ = pl_sd->view_class = 4008;
else if (pl_sd->status.class == 4022) else if (pl_sd->status.class_ == 4022)
pl_sd->status.class = pl_sd->view_class = 4015; pl_sd->status.class_ = pl_sd->view_class = 4015;
pc_setoption(pl_sd, pl_sd->status.option & ~0x0020); pc_setoption(pl_sd, pl_sd->status.option & ~0x0020);
clif_displaymessage(fd, msg_table[218]); // Now, this player has not more peco. clif_displaymessage(fd, msg_table[218]); // Now, this player has not more peco.
} }
@ -7175,7 +7175,7 @@ atcommand_skilltree(const int fd, struct map_session_data* sd,
if((pl_sd=map_nick2sd(target)) == NULL) if((pl_sd=map_nick2sd(target)) == NULL)
return -1; return -1;
s_class = pc_calc_base_job(pl_sd->status.class); s_class = pc_calc_base_job(pl_sd->status.class_);
c = s_class.job; c = s_class.job;
s = s_class.upper; s = s_class.upper;
@ -7620,7 +7620,7 @@ atcommand_summon(
if((md=(struct mob_data *)map_id2bl(id))){ if((md=(struct mob_data *)map_id2bl(id))){
md->master_id=sd->bl.id; md->master_id=sd->bl.id;
md->state.special_mob_ai=1; md->state.special_mob_ai=1;
md->mode=mob_db[md->class].mode|0x04; md->mode=mob_db[md->class_].mode|0x04;
md->deletetimer=add_timer(tick+60000,mob_timer_delete,id,0); md->deletetimer=add_timer(tick+60000,mob_timer_delete,id,0);
clif_misceffect2(&md->bl,344); clif_misceffect2(&md->bl,344);
} }
@ -7894,7 +7894,7 @@ atcommand_petid(const int fd, struct map_session_data* sd,
strcpy(temp0,pet_db[i].jname); strcpy(temp0,pet_db[i].jname);
strcpy(temp0, estr_lower(temp1)); strcpy(temp0, estr_lower(temp1));
if (strstr(temp1, searchtext) || strstr(temp0, searchtext) ) { if (strstr(temp1, searchtext) || strstr(temp0, searchtext) ) {
snprintf(temp0, sizeof(temp0), "ID: %i -- Name: %s", pet_db[i].class, snprintf(temp0, sizeof(temp0), "ID: %i -- Name: %s", pet_db[i].class_,
pet_db[i].jname); pet_db[i].jname);
if (cnt >= 100) { // Only if there are custom pets if (cnt >= 100) { // Only if there are custom pets
clif_displaymessage(fd, "Be more specific, can't send more than" clif_displaymessage(fd, "Be more specific, can't send more than"

View File

@ -64,11 +64,11 @@ int battle_get_class(struct block_list *bl)
{ {
nullpo_retr(0, bl); nullpo_retr(0, bl);
if(bl->type==BL_MOB && (struct mob_data *)bl) if(bl->type==BL_MOB && (struct mob_data *)bl)
return ((struct mob_data *)bl)->class; return ((struct mob_data *)bl)->class_;
else if(bl->type==BL_PC && (struct map_session_data *)bl) else if(bl->type==BL_PC && (struct map_session_data *)bl)
return ((struct map_session_data *)bl)->status.class; return ((struct map_session_data *)bl)->status.class_;
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
return ((struct pet_data *)bl)->class; return ((struct pet_data *)bl)->class_;
else else
return 0; return 0;
} }
@ -115,11 +115,11 @@ int battle_get_range(struct block_list *bl)
{ {
nullpo_retr(0, bl); nullpo_retr(0, bl);
if(bl->type==BL_MOB && (struct mob_data *)bl) if(bl->type==BL_MOB && (struct mob_data *)bl)
return mob_db[((struct mob_data *)bl)->class].range; return mob_db[((struct mob_data *)bl)->class_].range;
else if(bl->type==BL_PC && (struct map_session_data *)bl) else if(bl->type==BL_PC && (struct map_session_data *)bl)
return ((struct map_session_data *)bl)->attackrange; return ((struct map_session_data *)bl)->attackrange;
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
return mob_db[((struct pet_data *)bl)->class].range; return mob_db[((struct pet_data *)bl)->class_].range;
else else
return 0; return 0;
} }
@ -152,10 +152,10 @@ int battle_get_max_hp(struct block_list *bl)
struct status_change *sc_data=battle_get_sc_data(bl); struct status_change *sc_data=battle_get_sc_data(bl);
int max_hp=1; int max_hp=1;
if(bl->type==BL_MOB && ((struct mob_data*)bl)) { if(bl->type==BL_MOB && ((struct mob_data*)bl)) {
max_hp = mob_db[((struct mob_data*)bl)->class].max_hp; max_hp = mob_db[((struct mob_data*)bl)->class_].max_hp;
if(battle_config.mobs_level_up) // mobs leveling up increase [Valaris] if(battle_config.mobs_level_up) // mobs leveling up increase [Valaris]
max_hp+=(((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class].lv)*battle_get_vit(bl); max_hp+=(((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class_].lv)*battle_get_vit(bl);
if(mob_db[((struct mob_data*)bl)->class].mexp > 0) { if(mob_db[((struct mob_data*)bl)->class_].mexp > 0) {
if(battle_config.mvp_hp_rate != 100) if(battle_config.mvp_hp_rate != 100)
max_hp = (max_hp * battle_config.mvp_hp_rate)/100; max_hp = (max_hp * battle_config.mvp_hp_rate)/100;
} }
@ -165,8 +165,8 @@ int battle_get_max_hp(struct block_list *bl)
} }
} }
else if(bl->type==BL_PET && ((struct pet_data*)bl)) { else if(bl->type==BL_PET && ((struct pet_data*)bl)) {
max_hp = mob_db[((struct pet_data*)bl)->class].max_hp; max_hp = mob_db[((struct pet_data*)bl)->class_].max_hp;
if(mob_db[((struct pet_data*)bl)->class].mexp > 0) { if(mob_db[((struct pet_data*)bl)->class_].mexp > 0) {
if(battle_config.mvp_hp_rate != 100) if(battle_config.mvp_hp_rate != 100)
max_hp = (max_hp * battle_config.mvp_hp_rate)/100; max_hp = (max_hp * battle_config.mvp_hp_rate)/100;
} }
@ -198,14 +198,14 @@ int battle_get_str(struct block_list *bl)
nullpo_retr(0, bl); nullpo_retr(0, bl);
sc_data=battle_get_sc_data(bl); sc_data=battle_get_sc_data(bl);
if(bl->type==BL_MOB && ((struct mob_data *)bl)) { if(bl->type==BL_MOB && ((struct mob_data *)bl)) {
str = mob_db[((struct mob_data *)bl)->class].str; str = mob_db[((struct mob_data *)bl)->class_].str;
if(battle_config.mobs_level_up) // mobs leveling up increase [Valaris] if(battle_config.mobs_level_up) // mobs leveling up increase [Valaris]
str+=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class].lv; str+=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class_].lv;
} }
else if(bl->type==BL_PC && ((struct map_session_data *)bl)) else if(bl->type==BL_PC && ((struct map_session_data *)bl))
return ((struct map_session_data *)bl)->paramc[0]; return ((struct map_session_data *)bl)->paramc[0];
else if(bl->type==BL_PET && ((struct pet_data *)bl)) else if(bl->type==BL_PET && ((struct pet_data *)bl))
str = mob_db[((struct pet_data *)bl)->class].str; str = mob_db[((struct pet_data *)bl)->class_].str;
if(sc_data) { if(sc_data) {
if(sc_data[SC_LOUD].timer!=-1 && sc_data[SC_QUAGMIRE].timer == -1 && bl->type != BL_PC) if(sc_data[SC_LOUD].timer!=-1 && sc_data[SC_QUAGMIRE].timer == -1 && bl->type != BL_PC)
@ -235,14 +235,14 @@ int battle_get_agi(struct block_list *bl)
nullpo_retr(0, bl); nullpo_retr(0, bl);
sc_data=battle_get_sc_data(bl); sc_data=battle_get_sc_data(bl);
if(bl->type==BL_MOB && (struct mob_data *)bl) { if(bl->type==BL_MOB && (struct mob_data *)bl) {
agi=mob_db[((struct mob_data *)bl)->class].agi; agi=mob_db[((struct mob_data *)bl)->class_].agi;
if(battle_config.mobs_level_up) // increase of mobs leveling up [Valaris] if(battle_config.mobs_level_up) // increase of mobs leveling up [Valaris]
agi+=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class].lv; agi+=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class_].lv;
} }
else if(bl->type==BL_PC && (struct map_session_data *)bl) else if(bl->type==BL_PC && (struct map_session_data *)bl)
agi=((struct map_session_data *)bl)->paramc[1]; agi=((struct map_session_data *)bl)->paramc[1];
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
agi=mob_db[((struct pet_data *)bl)->class].agi; agi=mob_db[((struct pet_data *)bl)->class_].agi;
if(sc_data) { if(sc_data) {
if( sc_data[SC_INCREASEAGI].timer!=-1 && sc_data[SC_QUAGMIRE].timer == -1 && sc_data[SC_DONTFORGETME].timer == -1 && if( sc_data[SC_INCREASEAGI].timer!=-1 && sc_data[SC_QUAGMIRE].timer == -1 && sc_data[SC_DONTFORGETME].timer == -1 &&
@ -280,14 +280,14 @@ int battle_get_vit(struct block_list *bl)
nullpo_retr(0, bl); nullpo_retr(0, bl);
sc_data=battle_get_sc_data(bl); sc_data=battle_get_sc_data(bl);
if(bl->type==BL_MOB && (struct mob_data *)bl) { if(bl->type==BL_MOB && (struct mob_data *)bl) {
vit=mob_db[((struct mob_data *)bl)->class].vit; vit=mob_db[((struct mob_data *)bl)->class_].vit;
if(battle_config.mobs_level_up) // increase from mobs leveling up [Valaris] if(battle_config.mobs_level_up) // increase from mobs leveling up [Valaris]
vit+=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class].lv; vit+=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class_].lv;
} }
else if(bl->type==BL_PC && (struct map_session_data *)bl) else if(bl->type==BL_PC && (struct map_session_data *)bl)
vit=((struct map_session_data *)bl)->paramc[2]; vit=((struct map_session_data *)bl)->paramc[2];
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
vit=mob_db[((struct pet_data *)bl)->class].vit; vit=mob_db[((struct pet_data *)bl)->class_].vit;
if(sc_data) { if(sc_data) {
if(sc_data[SC_STRIPARMOR].timer != -1 && bl->type!=BL_PC) if(sc_data[SC_STRIPARMOR].timer != -1 && bl->type!=BL_PC)
vit = vit*60/100; vit = vit*60/100;
@ -311,14 +311,14 @@ int battle_get_int(struct block_list *bl)
nullpo_retr(0, bl); nullpo_retr(0, bl);
sc_data=battle_get_sc_data(bl); sc_data=battle_get_sc_data(bl);
if(bl->type==BL_MOB && (struct mob_data *)bl){ if(bl->type==BL_MOB && (struct mob_data *)bl){
int_=mob_db[((struct mob_data *)bl)->class].int_; int_=mob_db[((struct mob_data *)bl)->class_].int_;
if(battle_config.mobs_level_up) // increase from mobs leveling up [Valaris] if(battle_config.mobs_level_up) // increase from mobs leveling up [Valaris]
int_+=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class].lv; int_+=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class_].lv;
} }
else if(bl->type==BL_PC && (struct map_session_data *)bl) else if(bl->type==BL_PC && (struct map_session_data *)bl)
int_=((struct map_session_data *)bl)->paramc[3]; int_=((struct map_session_data *)bl)->paramc[3];
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
int_=mob_db[((struct pet_data *)bl)->class].int_; int_=mob_db[((struct pet_data *)bl)->class_].int_;
if(sc_data) { if(sc_data) {
if( sc_data[SC_BLESSING].timer != -1 && bl->type != BL_PC){ // ブレッシング if( sc_data[SC_BLESSING].timer != -1 && bl->type != BL_PC){ // ブレッシング
@ -347,14 +347,14 @@ int battle_get_dex(struct block_list *bl)
nullpo_retr(0, bl); nullpo_retr(0, bl);
sc_data=battle_get_sc_data(bl); sc_data=battle_get_sc_data(bl);
if(bl->type==BL_MOB && (struct mob_data *)bl) { if(bl->type==BL_MOB && (struct mob_data *)bl) {
dex=mob_db[((struct mob_data *)bl)->class].dex; dex=mob_db[((struct mob_data *)bl)->class_].dex;
if(battle_config.mobs_level_up) // increase from mobs leveling up [Valaris] if(battle_config.mobs_level_up) // increase from mobs leveling up [Valaris]
dex+=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class].lv; dex+=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class_].lv;
} }
else if(bl->type==BL_PC && (struct map_session_data *)bl) else if(bl->type==BL_PC && (struct map_session_data *)bl)
dex=((struct map_session_data *)bl)->paramc[4]; dex=((struct map_session_data *)bl)->paramc[4];
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
dex=mob_db[((struct pet_data *)bl)->class].dex; dex=mob_db[((struct pet_data *)bl)->class_].dex;
if(sc_data) { if(sc_data) {
if(sc_data[SC_CONCENTRATE].timer!=-1 && sc_data[SC_QUAGMIRE].timer == -1 && bl->type != BL_PC) if(sc_data[SC_CONCENTRATE].timer!=-1 && sc_data[SC_QUAGMIRE].timer == -1 && bl->type != BL_PC)
@ -391,14 +391,14 @@ int battle_get_luk(struct block_list *bl)
nullpo_retr(0, bl); nullpo_retr(0, bl);
sc_data=battle_get_sc_data(bl); sc_data=battle_get_sc_data(bl);
if(bl->type==BL_MOB && (struct mob_data *)bl) { if(bl->type==BL_MOB && (struct mob_data *)bl) {
luk=mob_db[((struct mob_data *)bl)->class].luk; luk=mob_db[((struct mob_data *)bl)->class_].luk;
if(battle_config.mobs_level_up) // increase from mobs leveling up [Valaris] if(battle_config.mobs_level_up) // increase from mobs leveling up [Valaris]
luk+=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class].lv; luk+=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class_].lv;
} }
else if(bl->type==BL_PC && (struct map_session_data *)bl) else if(bl->type==BL_PC && (struct map_session_data *)bl)
luk=((struct map_session_data *)bl)->paramc[5]; luk=((struct map_session_data *)bl)->paramc[5];
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
luk=mob_db[((struct pet_data *)bl)->class].luk; luk=mob_db[((struct pet_data *)bl)->class_].luk;
if(sc_data) { if(sc_data) {
if(sc_data[SC_GLORIA].timer!=-1 && bl->type != BL_PC) // グロリア(PCはpc.cで) if(sc_data[SC_GLORIA].timer!=-1 && bl->type != BL_PC) // グロリア(PCはpc.cで)
@ -580,9 +580,9 @@ int battle_get_atk(struct block_list *bl)
if(bl->type==BL_PC && (struct map_session_data *)bl) if(bl->type==BL_PC && (struct map_session_data *)bl)
atk = ((struct map_session_data*)bl)->watk; atk = ((struct map_session_data*)bl)->watk;
else if(bl->type==BL_MOB && (struct mob_data *)bl) else if(bl->type==BL_MOB && (struct mob_data *)bl)
atk = mob_db[((struct mob_data*)bl)->class].atk1; atk = mob_db[((struct mob_data*)bl)->class_].atk1;
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
atk = mob_db[((struct pet_data*)bl)->class].atk1; atk = mob_db[((struct pet_data*)bl)->class_].atk1;
if(sc_data) { if(sc_data) {
if(sc_data[SC_PROVOKE].timer!=-1 && bl->type != BL_PC) if(sc_data[SC_PROVOKE].timer!=-1 && bl->type != BL_PC)
@ -627,9 +627,9 @@ int battle_get_atk2(struct block_list *bl)
struct status_change *sc_data=battle_get_sc_data(bl); struct status_change *sc_data=battle_get_sc_data(bl);
int atk2=0; int atk2=0;
if(bl->type==BL_MOB && (struct mob_data *)bl) if(bl->type==BL_MOB && (struct mob_data *)bl)
atk2 = mob_db[((struct mob_data*)bl)->class].atk2; atk2 = mob_db[((struct mob_data*)bl)->class_].atk2;
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
atk2 = mob_db[((struct pet_data*)bl)->class].atk2; atk2 = mob_db[((struct pet_data*)bl)->class_].atk2;
if(sc_data) { if(sc_data) {
if( sc_data[SC_IMPOSITIO].timer!=-1) if( sc_data[SC_IMPOSITIO].timer!=-1)
atk2 += sc_data[SC_IMPOSITIO].val1*5; atk2 += sc_data[SC_IMPOSITIO].val1*5;
@ -746,12 +746,12 @@ int battle_get_def(struct block_list *bl)
skillid = ((struct map_session_data *)bl)->skillid; skillid = ((struct map_session_data *)bl)->skillid;
} }
else if(bl->type==BL_MOB && (struct mob_data *)bl) { else if(bl->type==BL_MOB && (struct mob_data *)bl) {
def = mob_db[((struct mob_data *)bl)->class].def; def = mob_db[((struct mob_data *)bl)->class_].def;
skilltimer = ((struct mob_data *)bl)->skilltimer; skilltimer = ((struct mob_data *)bl)->skilltimer;
skillid = ((struct mob_data *)bl)->skillid; skillid = ((struct mob_data *)bl)->skillid;
} }
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
def = mob_db[((struct pet_data *)bl)->class].def; def = mob_db[((struct pet_data *)bl)->class_].def;
if(def < 1000000) { if(def < 1000000) {
if(sc_data) { if(sc_data) {
@ -808,9 +808,9 @@ int battle_get_mdef(struct block_list *bl)
if(bl->type==BL_PC && (struct map_session_data *)bl) if(bl->type==BL_PC && (struct map_session_data *)bl)
mdef = ((struct map_session_data *)bl)->mdef; mdef = ((struct map_session_data *)bl)->mdef;
else if(bl->type==BL_MOB && (struct mob_data *)bl) else if(bl->type==BL_MOB && (struct mob_data *)bl)
mdef = mob_db[((struct mob_data *)bl)->class].mdef; mdef = mob_db[((struct mob_data *)bl)->class_].mdef;
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
mdef = mob_db[((struct pet_data *)bl)->class].mdef; mdef = mob_db[((struct pet_data *)bl)->class_].mdef;
if(mdef < 1000000) { if(mdef < 1000000) {
if(sc_data) { if(sc_data) {
@ -842,9 +842,9 @@ int battle_get_def2(struct block_list *bl)
if(bl->type==BL_PC) if(bl->type==BL_PC)
def2 = ((struct map_session_data *)bl)->def2; def2 = ((struct map_session_data *)bl)->def2;
else if(bl->type==BL_MOB) else if(bl->type==BL_MOB)
def2 = mob_db[((struct mob_data *)bl)->class].vit; def2 = mob_db[((struct mob_data *)bl)->class_].vit;
else if(bl->type==BL_PET) else if(bl->type==BL_PET)
def2 = mob_db[((struct pet_data *)bl)->class].vit; def2 = mob_db[((struct pet_data *)bl)->class_].vit;
if(sc_data) { if(sc_data) {
if( sc_data[SC_ANGELUS].timer!=-1 && bl->type != BL_PC) if( sc_data[SC_ANGELUS].timer!=-1 && bl->type != BL_PC)
@ -872,11 +872,11 @@ int battle_get_mdef2(struct block_list *bl)
nullpo_retr(0, bl); nullpo_retr(0, bl);
if(bl->type==BL_MOB) if(bl->type==BL_MOB)
mdef2 = mob_db[((struct mob_data *)bl)->class].int_ + (mob_db[((struct mob_data *)bl)->class].vit>>1); mdef2 = mob_db[((struct mob_data *)bl)->class_].int_ + (mob_db[((struct mob_data *)bl)->class_].vit>>1);
else if(bl->type==BL_PC) else if(bl->type==BL_PC)
mdef2 = ((struct map_session_data *)bl)->mdef2 + (((struct map_session_data *)bl)->paramc[2]>>1); mdef2 = ((struct map_session_data *)bl)->mdef2 + (((struct map_session_data *)bl)->paramc[2]>>1);
else if(bl->type==BL_PET) else if(bl->type==BL_PET)
mdef2 = mob_db[((struct pet_data *)bl)->class].int_ + (mob_db[((struct pet_data *)bl)->class].vit>>1); mdef2 = mob_db[((struct pet_data *)bl)->class_].int_ + (mob_db[((struct pet_data *)bl)->class_].vit>>1);
if(sc_data) { if(sc_data) {
if( sc_data[SC_MINDBREAKER].timer!=-1 && bl->type != BL_PC) if( sc_data[SC_MINDBREAKER].timer!=-1 && bl->type != BL_PC)
mdef2 -= (mdef2*6*sc_data[SC_MINDBREAKER].val1)/100; mdef2 -= (mdef2*6*sc_data[SC_MINDBREAKER].val1)/100;
@ -901,7 +901,7 @@ int battle_get_speed(struct block_list *bl)
if(bl->type==BL_MOB && (struct mob_data *)bl) { if(bl->type==BL_MOB && (struct mob_data *)bl) {
speed = ((struct mob_data *)bl)->speed; speed = ((struct mob_data *)bl)->speed;
if(battle_config.mobs_level_up) // increase from mobs leveling up [Valaris] if(battle_config.mobs_level_up) // increase from mobs leveling up [Valaris]
speed-=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class].lv; speed-=((struct mob_data *)bl)->level - mob_db[((struct mob_data *)bl)->class_].lv;
} }
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
speed = ((struct pet_data *)bl)->msd->petDB->speed; speed = ((struct pet_data *)bl)->msd->petDB->speed;
@ -960,9 +960,9 @@ int battle_get_adelay(struct block_list *bl)
struct status_change *sc_data=battle_get_sc_data(bl); struct status_change *sc_data=battle_get_sc_data(bl);
int adelay=4000,aspd_rate = 100,i; int adelay=4000,aspd_rate = 100,i;
if(bl->type==BL_MOB && (struct mob_data *)bl) if(bl->type==BL_MOB && (struct mob_data *)bl)
adelay = mob_db[((struct mob_data *)bl)->class].adelay; adelay = mob_db[((struct mob_data *)bl)->class_].adelay;
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
adelay = mob_db[((struct pet_data *)bl)->class].adelay; adelay = mob_db[((struct pet_data *)bl)->class_].adelay;
if(sc_data) { if(sc_data) {
//ツーハンドクイッケン使用時でクァグマイアでも私を忘れないで…でもない時は3割減算 //ツーハンドクイッケン使用時でクァグマイアでも私を忘れないで…でもない時は3割減算
@ -1016,9 +1016,9 @@ int battle_get_amotion(struct block_list *bl)
struct status_change *sc_data=battle_get_sc_data(bl); struct status_change *sc_data=battle_get_sc_data(bl);
int amotion=2000,aspd_rate = 100,i; int amotion=2000,aspd_rate = 100,i;
if(bl->type==BL_MOB && (struct mob_data *)bl) if(bl->type==BL_MOB && (struct mob_data *)bl)
amotion = mob_db[((struct mob_data *)bl)->class].amotion; amotion = mob_db[((struct mob_data *)bl)->class_].amotion;
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
amotion = mob_db[((struct pet_data *)bl)->class].amotion; amotion = mob_db[((struct pet_data *)bl)->class_].amotion;
if(sc_data) { if(sc_data) {
if(sc_data[SC_TWOHANDQUICKEN].timer != -1 && sc_data[SC_QUAGMIRE].timer == -1 && sc_data[SC_DONTFORGETME].timer == -1) // 2HQ if(sc_data[SC_TWOHANDQUICKEN].timer != -1 && sc_data[SC_QUAGMIRE].timer == -1 && sc_data[SC_DONTFORGETME].timer == -1) // 2HQ
@ -1061,7 +1061,7 @@ int battle_get_dmotion(struct block_list *bl)
nullpo_retr(0, bl); nullpo_retr(0, bl);
sc_data = battle_get_sc_data(bl); sc_data = battle_get_sc_data(bl);
if(bl->type==BL_MOB && (struct mob_data *)bl){ if(bl->type==BL_MOB && (struct mob_data *)bl){
ret=mob_db[((struct mob_data *)bl)->class].dmotion; ret=mob_db[((struct mob_data *)bl)->class_].dmotion;
if(battle_config.monster_damage_delay_rate != 100) if(battle_config.monster_damage_delay_rate != 100)
ret = ret*battle_config.monster_damage_delay_rate/400; ret = ret*battle_config.monster_damage_delay_rate/400;
} }
@ -1071,7 +1071,7 @@ int battle_get_dmotion(struct block_list *bl)
ret = ret*battle_config.pc_damage_delay_rate/400; ret = ret*battle_config.pc_damage_delay_rate/400;
} }
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
ret=mob_db[((struct pet_data *)bl)->class].dmotion; ret=mob_db[((struct pet_data *)bl)->class_].dmotion;
else else
return 2000; return 2000;
@ -1093,7 +1093,7 @@ int battle_get_element(struct block_list *bl)
else if(bl->type==BL_PC && (struct map_session_data *)bl) else if(bl->type==BL_PC && (struct map_session_data *)bl)
ret=20+((struct map_session_data *)bl)->def_ele; // 防御属性Lv1 ret=20+((struct map_session_data *)bl)->def_ele; // 防御属性Lv1
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
ret = mob_db[((struct pet_data *)bl)->class].element; ret = mob_db[((struct pet_data *)bl)->class_].element;
if(sc_data) { if(sc_data) {
if( sc_data[SC_BENEDICTIO].timer!=-1 ) // 聖体降福 if( sc_data[SC_BENEDICTIO].timer!=-1 ) // 聖体降福
@ -1183,7 +1183,7 @@ int battle_get_guild_id(struct block_list *bl)
if(bl->type==BL_PC && (struct map_session_data *)bl) if(bl->type==BL_PC && (struct map_session_data *)bl)
return ((struct map_session_data *)bl)->status.guild_id; return ((struct map_session_data *)bl)->status.guild_id;
else if(bl->type==BL_MOB && (struct mob_data *)bl) else if(bl->type==BL_MOB && (struct mob_data *)bl)
return ((struct mob_data *)bl)->class; return ((struct mob_data *)bl)->class_;
else if(bl->type==BL_SKILL && (struct skill_unit *)bl) else if(bl->type==BL_SKILL && (struct skill_unit *)bl)
return ((struct skill_unit *)bl)->group->guild_id; return ((struct skill_unit *)bl)->group->guild_id;
else else
@ -1193,11 +1193,11 @@ int battle_get_race(struct block_list *bl)
{ {
nullpo_retr(0, bl); nullpo_retr(0, bl);
if(bl->type==BL_MOB && (struct mob_data *)bl) if(bl->type==BL_MOB && (struct mob_data *)bl)
return mob_db[((struct mob_data *)bl)->class].race; return mob_db[((struct mob_data *)bl)->class_].race;
else if(bl->type==BL_PC && (struct map_session_data *)bl) else if(bl->type==BL_PC && (struct map_session_data *)bl)
return 7; return 7;
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
return mob_db[((struct pet_data *)bl)->class].race; return mob_db[((struct pet_data *)bl)->class_].race;
else else
return 0; return 0;
} }
@ -1205,11 +1205,11 @@ int battle_get_size(struct block_list *bl)
{ {
nullpo_retr(1, bl); nullpo_retr(1, bl);
if(bl->type==BL_MOB && (struct mob_data *)bl) if(bl->type==BL_MOB && (struct mob_data *)bl)
return mob_db[((struct mob_data *)bl)->class].size; return mob_db[((struct mob_data *)bl)->class_].size;
else if(bl->type==BL_PC && (struct map_session_data *)bl) else if(bl->type==BL_PC && (struct map_session_data *)bl)
return 1; return 1;
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
return mob_db[((struct pet_data *)bl)->class].size; return mob_db[((struct pet_data *)bl)->class_].size;
else else
return 1; return 1;
} }
@ -1217,9 +1217,9 @@ int battle_get_mode(struct block_list *bl)
{ {
nullpo_retr(0x01, bl); nullpo_retr(0x01, bl);
if(bl->type==BL_MOB && (struct mob_data *)bl) if(bl->type==BL_MOB && (struct mob_data *)bl)
return mob_db[((struct mob_data *)bl)->class].mode; return mob_db[((struct mob_data *)bl)->class_].mode;
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
return mob_db[((struct pet_data *)bl)->class].mode; return mob_db[((struct pet_data *)bl)->class_].mode;
else else
return 0x01; // とりあえず動くということで1 return 0x01; // とりあえず動くということで1
} }
@ -1228,9 +1228,9 @@ int battle_get_mexp(struct block_list *bl)
{ {
nullpo_retr(0, bl); nullpo_retr(0, bl);
if(bl->type==BL_MOB && (struct mob_data *)bl) if(bl->type==BL_MOB && (struct mob_data *)bl)
return mob_db[((struct mob_data *)bl)->class].mexp; return mob_db[((struct mob_data *)bl)->class_].mexp;
else if(bl->type==BL_PET && (struct pet_data *)bl) else if(bl->type==BL_PET && (struct pet_data *)bl)
return mob_db[((struct pet_data *)bl)->class].mexp; return mob_db[((struct pet_data *)bl)->class_].mexp;
else else
return 0; return 0;
} }
@ -1914,7 +1914,7 @@ static struct Damage battle_calc_pet_weapon_attack(
atkmin = battle_get_atk(src); atkmin = battle_get_atk(src);
atkmax = battle_get_atk2(src); atkmax = battle_get_atk2(src);
} }
if(mob_db[pd->class].range>3 ) if(mob_db[pd->class_].range>3 )
flag=(flag&~BF_RANGEMASK)|BF_LONG; flag=(flag&~BF_RANGEMASK)|BF_LONG;
if(atkmin > atkmax) atkmin = atkmax; if(atkmin > atkmax) atkmin = atkmax;
@ -2375,7 +2375,7 @@ static struct Damage battle_calc_mob_weapon_attack(
atkmin = battle_get_atk(src); atkmin = battle_get_atk(src);
atkmax = battle_get_atk2(src); atkmax = battle_get_atk2(src);
} }
if(mob_db[md->class].range>3 ) if(mob_db[md->class_].range>3 )
flag=(flag&~BF_RANGEMASK)|BF_LONG; flag=(flag&~BF_RANGEMASK)|BF_LONG;
if(atkmin > atkmax) atkmin = atkmax; if(atkmin > atkmax) atkmin = atkmax;
@ -2722,12 +2722,12 @@ static struct Damage battle_calc_mob_weapon_attack(
int cardfix=100,i; int cardfix=100,i;
cardfix=cardfix*(100-tsd->subele[s_ele])/100; // 属 性によるダメージ耐性 cardfix=cardfix*(100-tsd->subele[s_ele])/100; // 属 性によるダメージ耐性
cardfix=cardfix*(100-tsd->subrace[s_race])/100; // 種族によるダメージ耐性 cardfix=cardfix*(100-tsd->subrace[s_race])/100; // 種族によるダメージ耐性
if(mob_db[md->class].mode & 0x20) if(mob_db[md->class_].mode & 0x20)
cardfix=cardfix*(100-tsd->subrace[10])/100; cardfix=cardfix*(100-tsd->subrace[10])/100;
else else
cardfix=cardfix*(100-tsd->subrace[11])/100; cardfix=cardfix*(100-tsd->subrace[11])/100;
for(i=0;i<tsd->add_def_class_count;i++) { for(i=0;i<tsd->add_def_class_count;i++) {
if(tsd->add_def_classid[i] == md->class) { if(tsd->add_def_classid[i] == md->class_) {
cardfix=cardfix*(100-tsd->add_def_classrate[i])/100; cardfix=cardfix*(100-tsd->add_def_classrate[i])/100;
break; break;
} }
@ -3798,7 +3798,7 @@ static struct Damage battle_calc_pc_weapon_attack(
cardfix=cardfix*(100-tsd->subrace[11])/100; //ボス以外からの攻撃はダメージ減少 cardfix=cardfix*(100-tsd->subrace[11])/100; //ボス以外からの攻撃はダメージ減少
//特定Class用補正処理左手(少女の日記→ボンゴン用?) //特定Class用補正処理左手(少女の日記→ボンゴン用?)
for(i=0;i<tsd->add_def_class_count;i++) { for(i=0;i<tsd->add_def_class_count;i++) {
if(tsd->add_def_classid[i] == sd->status.class) { if(tsd->add_def_classid[i] == sd->status.class_) {
cardfix=cardfix*(100-tsd->add_def_classrate[i])/100; cardfix=cardfix*(100-tsd->add_def_classrate[i])/100;
break; break;
} }
@ -4984,7 +4984,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
if(su && su->group->target_flag==BCT_NOENEMY) if(su && su->group->target_flag==BCT_NOENEMY)
return 1; return 1;
else if (battle_config.pk_mode && else if (battle_config.pk_mode &&
(((struct map_session_data*)ss)->status.class==0 || ((struct map_session_data*)target)->status.class==0 || (((struct map_session_data*)ss)->status.class_==0 || ((struct map_session_data*)target)->status.class_==0 ||
((struct map_session_data*)ss)->status.base_level < battle_config.pk_min_level || ((struct map_session_data*)ss)->status.base_level < battle_config.pk_min_level ||
((struct map_session_data*)target)->status.base_level < battle_config.pk_min_level)) ((struct map_session_data*)target)->status.base_level < battle_config.pk_min_level))
return 1; // prevent novice engagement in pk_mode [Valaris] return 1; // prevent novice engagement in pk_mode [Valaris]

View File

@ -309,14 +309,14 @@ int charcommand_jobchange(
// fix pecopeco display // fix pecopeco display
if ((job != 13 && job != 21 && job != 4014 && job != 4022)) { if ((job != 13 && job != 21 && job != 4014 && job != 4022)) {
if (pc_isriding(sd)) { if (pc_isriding(sd)) {
if (pl_sd->status.class == 13) if (pl_sd->status.class_ == 13)
pl_sd->status.class = pl_sd->view_class = 7; pl_sd->status.class_ = pl_sd->view_class = 7;
if (pl_sd->status.class == 21) if (pl_sd->status.class_ == 21)
pl_sd->status.class = pl_sd->view_class = 14; pl_sd->status.class_ = pl_sd->view_class = 14;
if (pl_sd->status.class == 4014) if (pl_sd->status.class_ == 4014)
pl_sd->status.class = pl_sd->view_class = 4008; pl_sd->status.class_ = pl_sd->view_class = 4008;
if (pl_sd->status.class == 4022) if (pl_sd->status.class_ == 4022)
pl_sd->status.class = pl_sd->view_class = 4015; pl_sd->status.class_ = pl_sd->view_class = 4015;
pl_sd->status.option &= ~0x0020; pl_sd->status.option &= ~0x0020;
clif_changeoption(&pl_sd->bl); clif_changeoption(&pl_sd->bl);
pc_calcstatus(pl_sd, 0); pc_calcstatus(pl_sd, 0);
@ -502,7 +502,7 @@ int charcommand_stats(
{ "Zeny - %d", pl_sd->status.zeny }, { "Zeny - %d", pl_sd->status.zeny },
{ NULL, 0 } { NULL, 0 }
}; };
sprintf(job_jobname, "Job - %s %s", job_name(pl_sd->status.class), "(level %d)"); sprintf(job_jobname, "Job - %s %s", job_name(pl_sd->status.class_), "(level %d)");
sprintf(output, msg_table[53], pl_sd->status.name); // '%s' stats: sprintf(output, msg_table[53], pl_sd->status.name); // '%s' stats:
clif_displaymessage(fd, output); clif_displaymessage(fd, output);
for (i = 0; output_table[i].format != NULL; i++) { for (i = 0; output_table[i].format != NULL; i++) {
@ -582,30 +582,30 @@ int charcommand_option(
pl_sd->opt2 = opt2; pl_sd->opt2 = opt2;
pl_sd->status.option = opt3; pl_sd->status.option = opt3;
// fix pecopeco display // fix pecopeco display
if (pl_sd->status.class == 13 || pl_sd->status.class == 21 || pl_sd->status.class == 4014 || pl_sd->status.class == 4022) { if (pl_sd->status.class_ == 13 || pl_sd->status.class_ == 21 || pl_sd->status.class_ == 4014 || pl_sd->status.class_ == 4022) {
if (!pc_isriding(pl_sd)) { // pl_sd have the new value... if (!pc_isriding(pl_sd)) { // pl_sd have the new value...
if (pl_sd->status.class == 13) if (pl_sd->status.class_ == 13)
pl_sd->status.class = pl_sd->view_class = 7; pl_sd->status.class_ = pl_sd->view_class = 7;
else if (pl_sd->status.class == 21) else if (pl_sd->status.class_ == 21)
pl_sd->status.class = pl_sd->view_class = 14; pl_sd->status.class_ = pl_sd->view_class = 14;
else if (pl_sd->status.class == 4014) else if (pl_sd->status.class_ == 4014)
pl_sd->status.class = pl_sd->view_class = 4008; pl_sd->status.class_ = pl_sd->view_class = 4008;
else if (pl_sd->status.class == 4022) else if (pl_sd->status.class_ == 4022)
pl_sd->status.class = pl_sd->view_class = 4015; pl_sd->status.class_ = pl_sd->view_class = 4015;
} }
} else { } else {
if (pc_isriding(pl_sd)) { // pl_sd have the new value... if (pc_isriding(pl_sd)) { // pl_sd have the new value...
if (pl_sd->disguise > 0) { // temporary prevention of crash caused by peco + disguise, will look into a better solution [Valaris] (code added by [Yor]) if (pl_sd->disguise > 0) { // temporary prevention of crash caused by peco + disguise, will look into a better solution [Valaris] (code added by [Yor])
pl_sd->status.option &= ~0x0020; pl_sd->status.option &= ~0x0020;
} else { } else {
if (pl_sd->status.class == 7) if (pl_sd->status.class_ == 7)
pl_sd->status.class = pl_sd->view_class = 13; pl_sd->status.class_ = pl_sd->view_class = 13;
else if (pl_sd->status.class == 14) else if (pl_sd->status.class_ == 14)
pl_sd->status.class = pl_sd->view_class = 21; pl_sd->status.class_ = pl_sd->view_class = 21;
else if (pl_sd->status.class == 4008) else if (pl_sd->status.class_ == 4008)
pl_sd->status.class = pl_sd->view_class = 4014; pl_sd->status.class_ = pl_sd->view_class = 4014;
else if (pl_sd->status.class == 4015) else if (pl_sd->status.class_ == 4015)
pl_sd->status.class = pl_sd->view_class = 4022; pl_sd->status.class_ = pl_sd->view_class = 4022;
else else
pl_sd->status.option &= ~0x0020; pl_sd->status.option &= ~0x0020;
} }
@ -701,7 +701,7 @@ int charcommand_stats_all(const int fd, struct map_session_data* sd, const char*
else else
sprintf(gmlevel, " "); sprintf(gmlevel, " ");
sprintf(output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d) | HP: %d/%d | SP: %d/%d", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class), pl_sd->status.job_level, pl_sd->status.hp, pl_sd->status.max_hp, pl_sd->status.sp, pl_sd->status.max_sp); sprintf(output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d) | HP: %d/%d | SP: %d/%d", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level, pl_sd->status.hp, pl_sd->status.max_hp, pl_sd->status.sp, pl_sd->status.max_sp);
clif_displaymessage(fd, output); clif_displaymessage(fd, output);
sprintf(output, "STR: %d | AGI: %d | VIT: %d | INT: %d | DEX: %d | LUK: %d | Zeny: %d %s", pl_sd->status.str, pl_sd->status.agi, pl_sd->status.vit, pl_sd->status.int_, pl_sd->status.dex, pl_sd->status.luk, pl_sd->status.zeny, gmlevel); sprintf(output, "STR: %d | AGI: %d | VIT: %d | INT: %d | DEX: %d | LUK: %d | Zeny: %d %s", pl_sd->status.str, pl_sd->status.agi, pl_sd->status.vit, pl_sd->status.int_, pl_sd->status.dex, pl_sd->status.luk, pl_sd->status.zeny, gmlevel);
clif_displaymessage(fd, output); clif_displaymessage(fd, output);
@ -1061,9 +1061,9 @@ int charcommand_item(
for (i = 0; i < number; i += get_count) { for (i = 0; i < number; i += get_count) {
// if pet egg // if pet egg
if (pet_id >= 0) { if (pet_id >= 0) {
sd->catch_target_class = pet_db[pet_id].class; sd->catch_target_class = pet_db[pet_id].class_;
intif_create_pet(sd->status.account_id, sd->status.char_id, intif_create_pet(sd->status.account_id, sd->status.char_id,
pet_db[pet_id].class, mob_db[pet_db[pet_id].class].lv, pet_db[pet_id].class_, mob_db[pet_db[pet_id].class_].lv,
pet_db[pet_id].EggID, 0, pet_db[pet_id].intimate, pet_db[pet_id].EggID, 0, pet_db[pet_id].intimate,
100, 0, 1, pet_db[pet_id].jname); 100, 0, 1, pet_db[pet_id].jname);
// if not pet egg // if not pet egg

View File

@ -606,7 +606,7 @@ int chrif_changedsex(int fd)
sd = map_id2sd(acc); sd = map_id2sd(acc);
if (acc > 0) { if (acc > 0) {
if (sd != NULL && sd->status.sex != sex) { if (sd != NULL && sd->status.sex != sex) {
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
if (sd->status.sex == 0) { if (sd->status.sex == 0) {
sd->status.sex = 1; sd->status.sex = 1;
sd->sex = 1; sd->sex = 1;
@ -641,9 +641,9 @@ int chrif_changedsex(int fd)
clif_updatestatus(sd, SP_SKILLPOINT); clif_updatestatus(sd, SP_SKILLPOINT);
// change job if necessary // change job if necessary
if (s_class.job == 20 || s_class.job == 4021 || s_class.job == 4043) if (s_class.job == 20 || s_class.job == 4021 || s_class.job == 4043)
sd->status.class -= 1; sd->status.class_ -= 1;
else if (s_class.job == 19 || s_class.job == 4020 || s_class.job == 4042) else if (s_class.job == 19 || s_class.job == 4020 || s_class.job == 4042)
sd->status.class += 1; sd->status.class_ += 1;
} }
// save character // save character
chrif_save(sd); chrif_save(sd);

View File

@ -973,21 +973,21 @@ static int clif_mob0078(struct mob_data *md, unsigned char *buf)
WBUFW(buf,8)=md->opt1; WBUFW(buf,8)=md->opt1;
WBUFW(buf,10)=md->opt2; WBUFW(buf,10)=md->opt2;
WBUFW(buf,12)=md->option; WBUFW(buf,12)=md->option;
WBUFW(buf,14)=mob_get_viewclass(md->class); WBUFW(buf,14)=mob_get_viewclass(md->class_);
if((mob_get_viewclass(md->class) <= 23) || (mob_get_viewclass(md->class) == 812) || (mob_get_viewclass(md->class) >= 4001)) { if((mob_get_viewclass(md->class_) <= 23) || (mob_get_viewclass(md->class_) == 812) || (mob_get_viewclass(md->class_) >= 4001)) {
WBUFW(buf,12)|=mob_db[md->class].option; WBUFW(buf,12)|=mob_db[md->class_].option;
WBUFW(buf,16)=mob_get_hair(md->class); WBUFW(buf,16)=mob_get_hair(md->class_);
WBUFW(buf,18)=mob_get_weapon(md->class); WBUFW(buf,18)=mob_get_weapon(md->class_);
WBUFW(buf,20)=mob_get_head_buttom(md->class); WBUFW(buf,20)=mob_get_head_buttom(md->class_);
WBUFW(buf,22)=mob_get_shield(md->class); WBUFW(buf,22)=mob_get_shield(md->class_);
WBUFW(buf,24)=mob_get_head_top(md->class); WBUFW(buf,24)=mob_get_head_top(md->class_);
WBUFW(buf,26)=mob_get_head_mid(md->class); WBUFW(buf,26)=mob_get_head_mid(md->class_);
WBUFW(buf,28)=mob_get_hair_color(md->class); WBUFW(buf,28)=mob_get_hair_color(md->class_);
WBUFW(buf,30)=mob_get_clothes_color(md->class); //Add for player monster dye - Valaris WBUFW(buf,30)=mob_get_clothes_color(md->class_); //Add for player monster dye - Valaris
WBUFB(buf,45)=mob_get_sex(md->class); WBUFB(buf,45)=mob_get_sex(md->class_);
} }
if (md->class >= 1285 && md->class <= 1287 && md->guild_id) { // Added guardian emblems [Valaris] if (md->class_ >= 1285 && md->class_ <= 1287 && md->guild_id) { // Added guardian emblems [Valaris]
struct guild *g; struct guild *g;
struct guild_castle *gc=guild_mapname2gc(map[md->bl.m].name); struct guild_castle *gc=guild_mapname2gc(map[md->bl.m].name);
if (gc && gc->guild_id > 0) { if (gc && gc->guild_id > 0) {
@ -1025,23 +1025,23 @@ static int clif_mob007b(struct mob_data *md, unsigned char *buf) {
WBUFW(buf,8)=md->opt1; WBUFW(buf,8)=md->opt1;
WBUFW(buf,10)=md->opt2; WBUFW(buf,10)=md->opt2;
WBUFW(buf,12)=md->option; WBUFW(buf,12)=md->option;
WBUFW(buf,14)=mob_get_viewclass(md->class); WBUFW(buf,14)=mob_get_viewclass(md->class_);
if ((mob_get_viewclass(md->class) < 24) || (mob_get_viewclass(md->class) > 4000)) { if ((mob_get_viewclass(md->class_) < 24) || (mob_get_viewclass(md->class_) > 4000)) {
WBUFW(buf,12)|=mob_db[md->class].option; WBUFW(buf,12)|=mob_db[md->class_].option;
WBUFW(buf,16)=mob_get_hair(md->class); WBUFW(buf,16)=mob_get_hair(md->class_);
WBUFW(buf,18)=mob_get_weapon(md->class); WBUFW(buf,18)=mob_get_weapon(md->class_);
WBUFW(buf,20)=mob_get_head_buttom(md->class); WBUFW(buf,20)=mob_get_head_buttom(md->class_);
WBUFL(buf,22)=gettick(); WBUFL(buf,22)=gettick();
WBUFW(buf,26)=mob_get_shield(md->class); WBUFW(buf,26)=mob_get_shield(md->class_);
WBUFW(buf,28)=mob_get_head_top(md->class); WBUFW(buf,28)=mob_get_head_top(md->class_);
WBUFW(buf,30)=mob_get_head_mid(md->class); WBUFW(buf,30)=mob_get_head_mid(md->class_);
WBUFW(buf,32)=mob_get_hair_color(md->class); WBUFW(buf,32)=mob_get_hair_color(md->class_);
WBUFW(buf,34)=mob_get_clothes_color(md->class); //Add for player monster dye - Valaris WBUFW(buf,34)=mob_get_clothes_color(md->class_); //Add for player monster dye - Valaris
WBUFB(buf,49)=mob_get_sex(md->class); WBUFB(buf,49)=mob_get_sex(md->class_);
} else } else
WBUFL(buf,22)=gettick(); WBUFL(buf,22)=gettick();
if(md->class >= 1285 && md->class <= 1287 && md->guild_id) { // Added guardian emblems [Valaris] if(md->class_ >= 1285 && md->class_ <= 1287 && md->guild_id) { // Added guardian emblems [Valaris]
struct guild *g; struct guild *g;
struct guild_castle *gc=guild_mapname2gc(map[md->bl.m].name); struct guild_castle *gc=guild_mapname2gc(map[md->bl.m].name);
if(gc && gc->guild_id > 0){ if(gc && gc->guild_id > 0){
@ -1075,8 +1075,8 @@ static int clif_npc0078(struct npc_data *nd, unsigned char *buf) {
WBUFW(buf,0)=0x78; WBUFW(buf,0)=0x78;
WBUFL(buf,2)=nd->bl.id; WBUFL(buf,2)=nd->bl.id;
WBUFW(buf,6)=nd->speed; WBUFW(buf,6)=nd->speed;
WBUFW(buf,14)=nd->class; WBUFW(buf,14)=nd->class_;
if ((nd->class == 722) && (nd->u.scr.guild_id > 0) && ((g=guild_search(nd->u.scr.guild_id)) != NULL)) { if ((nd->class_ == 722) && (nd->u.scr.guild_id > 0) && ((g=guild_search(nd->u.scr.guild_id)) != NULL)) {
WBUFL(buf,22)=g->emblem_id; WBUFL(buf,22)=g->emblem_id;
WBUFL(buf,26)=g->guild_id; WBUFL(buf,26)=g->guild_id;
} }
@ -1099,8 +1099,8 @@ static int clif_npc007b(struct npc_data *nd, unsigned char *buf) {
WBUFW(buf,0)=0x7b; WBUFW(buf,0)=0x7b;
WBUFL(buf,2)=nd->bl.id; WBUFL(buf,2)=nd->bl.id;
WBUFW(buf,6)=nd->speed; WBUFW(buf,6)=nd->speed;
WBUFW(buf,14)=nd->class; WBUFW(buf,14)=nd->class_;
if ((nd->class == 722) && (nd->u.scr.guild_id > 0) && ((g=guild_search(nd->u.scr.guild_id)) != NULL)) { if ((nd->class_ == 722) && (nd->u.scr.guild_id > 0) && ((g=guild_search(nd->u.scr.guild_id)) != NULL)) {
WBUFL(buf,22)=g->emblem_id; WBUFL(buf,22)=g->emblem_id;
WBUFL(buf,26)=g->guild_id; WBUFL(buf,26)=g->guild_id;
} }
@ -1127,18 +1127,18 @@ static int clif_pet0078(struct pet_data *pd, unsigned char *buf) {
WBUFW(buf,0)=0x78; WBUFW(buf,0)=0x78;
WBUFL(buf,2)=pd->bl.id; WBUFL(buf,2)=pd->bl.id;
WBUFW(buf,6)=pd->speed; WBUFW(buf,6)=pd->speed;
WBUFW(buf,14)=mob_get_viewclass(pd->class); WBUFW(buf,14)=mob_get_viewclass(pd->class_);
if((mob_get_viewclass(pd->class) < 24) || (mob_get_viewclass(pd->class) > 4000)) { if((mob_get_viewclass(pd->class_) < 24) || (mob_get_viewclass(pd->class_) > 4000)) {
WBUFW(buf,12)=mob_db[pd->class].option; WBUFW(buf,12)=mob_db[pd->class_].option;
WBUFW(buf,16)=mob_get_hair(pd->class); WBUFW(buf,16)=mob_get_hair(pd->class_);
WBUFW(buf,18)=mob_get_weapon(pd->class); WBUFW(buf,18)=mob_get_weapon(pd->class_);
WBUFW(buf,20)=mob_get_head_buttom(pd->class); WBUFW(buf,20)=mob_get_head_buttom(pd->class_);
WBUFW(buf,22)=mob_get_shield(pd->class); WBUFW(buf,22)=mob_get_shield(pd->class_);
WBUFW(buf,24)=mob_get_head_top(pd->class); WBUFW(buf,24)=mob_get_head_top(pd->class_);
WBUFW(buf,26)=mob_get_head_mid(pd->class); WBUFW(buf,26)=mob_get_head_mid(pd->class_);
WBUFW(buf,28)=mob_get_hair_color(pd->class); WBUFW(buf,28)=mob_get_hair_color(pd->class_);
WBUFW(buf,30)=mob_get_clothes_color(pd->class); //Add for player pet dye - Valaris WBUFW(buf,30)=mob_get_clothes_color(pd->class_); //Add for player pet dye - Valaris
WBUFB(buf,45)=mob_get_sex(pd->class); WBUFB(buf,45)=mob_get_sex(pd->class_);
} else { } else {
WBUFW(buf,16)=0x14; WBUFW(buf,16)=0x14;
if((view = itemdb_viewid(pd->equip)) > 0) if((view = itemdb_viewid(pd->equip)) > 0)
@ -1169,19 +1169,19 @@ static int clif_pet007b(struct pet_data *pd, unsigned char *buf) {
WBUFW(buf,0)=0x7b; WBUFW(buf,0)=0x7b;
WBUFL(buf,2)=pd->bl.id; WBUFL(buf,2)=pd->bl.id;
WBUFW(buf,6)=pd->speed; WBUFW(buf,6)=pd->speed;
WBUFW(buf,14)=mob_get_viewclass(pd->class); WBUFW(buf,14)=mob_get_viewclass(pd->class_);
if((mob_get_viewclass(pd->class) < 24) || (mob_get_viewclass(pd->class) > 4000)) { if((mob_get_viewclass(pd->class_) < 24) || (mob_get_viewclass(pd->class_) > 4000)) {
WBUFW(buf,12)=mob_db[pd->class].option; WBUFW(buf,12)=mob_db[pd->class_].option;
WBUFW(buf,16)=mob_get_hair(pd->class); WBUFW(buf,16)=mob_get_hair(pd->class_);
WBUFW(buf,18)=mob_get_weapon(pd->class); WBUFW(buf,18)=mob_get_weapon(pd->class_);
WBUFW(buf,20)=mob_get_head_buttom(pd->class); WBUFW(buf,20)=mob_get_head_buttom(pd->class_);
WBUFL(buf,22)=gettick(); WBUFL(buf,22)=gettick();
WBUFW(buf,26)=mob_get_shield(pd->class); WBUFW(buf,26)=mob_get_shield(pd->class_);
WBUFW(buf,28)=mob_get_head_top(pd->class); WBUFW(buf,28)=mob_get_head_top(pd->class_);
WBUFW(buf,30)=mob_get_head_mid(pd->class); WBUFW(buf,30)=mob_get_head_mid(pd->class_);
WBUFW(buf,32)=mob_get_hair_color(pd->class); WBUFW(buf,32)=mob_get_hair_color(pd->class_);
WBUFW(buf,34)=mob_get_clothes_color(pd->class); //Add for player pet dye - Valaris WBUFW(buf,34)=mob_get_clothes_color(pd->class_); //Add for player pet dye - Valaris
WBUFB(buf,49)=mob_get_sex(pd->class); WBUFB(buf,49)=mob_get_sex(pd->class_);
} else { } else {
WBUFW(buf,16)=0x14; WBUFW(buf,16)=0x14;
if ((view = itemdb_viewid(pd->equip)) > 0) if ((view = itemdb_viewid(pd->equip)) > 0)
@ -1285,11 +1285,11 @@ int clif_spawnpc(struct map_session_data *sd) {
clif_guild_emblem(sd,g); clif_guild_emblem(sd,g);
} // end addition [Valaris] } // end addition [Valaris]
if (sd->status.class==13 || sd->status.class==21 || sd->status.class==4014 || sd->status.class==4022) if (sd->status.class_==13 || sd->status.class_==21 || sd->status.class_==4014 || sd->status.class_==4022)
pc_setoption(sd,sd->status.option|0x0020); // [Valaris] pc_setoption(sd,sd->status.option|0x0020); // [Valaris]
if ((pc_isriding(sd) && pc_checkskill(sd,KN_RIDING)>0) && (sd->status.class==7 || if ((pc_isriding(sd) && pc_checkskill(sd,KN_RIDING)>0) && (sd->status.class_==7 ||
sd->status.class==14 || sd->status.class==4008 || sd->status.class==4015)) sd->status.class_==14 || sd->status.class_==4008 || sd->status.class_==4015))
pc_setriding(sd); // update peco riders for people upgrading athena [Valaris] pc_setriding(sd); // update peco riders for people upgrading athena [Valaris]
@ -1318,7 +1318,7 @@ int clif_spawnnpc(struct npc_data *nd)
nullpo_retr(0, nd); nullpo_retr(0, nd);
if(nd->class < 0 || nd->flag&1 || nd->class == INVISIBLE_CLASS) if(nd->class_ < 0 || nd->flag&1 || nd->class_ == INVISIBLE_CLASS)
return 0; return 0;
memset(buf,0,packet_len_table[0x7c]); memset(buf,0,packet_len_table[0x7c]);
@ -1326,7 +1326,7 @@ int clif_spawnnpc(struct npc_data *nd)
WBUFW(buf,0)=0x7c; WBUFW(buf,0)=0x7c;
WBUFL(buf,2)=nd->bl.id; WBUFL(buf,2)=nd->bl.id;
WBUFW(buf,6)=nd->speed; WBUFW(buf,6)=nd->speed;
WBUFW(buf,20)=nd->class; WBUFW(buf,20)=nd->class_;
WBUFPOS(buf,36,nd->bl.x,nd->bl.y); WBUFPOS(buf,36,nd->bl.x,nd->bl.y);
clif_send(buf,packet_len_table[0x7c],&nd->bl,AREA); clif_send(buf,packet_len_table[0x7c],&nd->bl,AREA);
@ -1348,7 +1348,7 @@ int clif_spawnmob(struct mob_data *md)
nullpo_retr(0, md); nullpo_retr(0, md);
if (mob_get_viewclass(md->class) > 23 ) { if (mob_get_viewclass(md->class_) > 23 ) {
memset(buf,0,packet_len_table[0x7c]); memset(buf,0,packet_len_table[0x7c]);
WBUFW(buf,0)=0x7c; WBUFW(buf,0)=0x7c;
@ -1357,7 +1357,7 @@ int clif_spawnmob(struct mob_data *md)
WBUFW(buf,8)=md->opt1; WBUFW(buf,8)=md->opt1;
WBUFW(buf,10)=md->opt2; WBUFW(buf,10)=md->opt2;
WBUFW(buf,12)=md->option; WBUFW(buf,12)=md->option;
WBUFW(buf,20)=mob_get_viewclass(md->class); WBUFW(buf,20)=mob_get_viewclass(md->class_);
WBUFPOS(buf,36,md->bl.x,md->bl.y); WBUFPOS(buf,36,md->bl.x,md->bl.y);
clif_send(buf,packet_len_table[0x7c],&md->bl,AREA); clif_send(buf,packet_len_table[0x7c],&md->bl,AREA);
} }
@ -1365,8 +1365,8 @@ int clif_spawnmob(struct mob_data *md)
len = clif_mob0078(md,buf); len = clif_mob0078(md,buf);
clif_send(buf,len,&md->bl,AREA); clif_send(buf,len,&md->bl,AREA);
if (mob_get_equip(md->class) > 0) // mob equipment [Valaris] if (mob_get_equip(md->class_) > 0) // mob equipment [Valaris]
clif_mob_equip(md,mob_get_equip(md->class)); clif_mob_equip(md,mob_get_equip(md->class_));
if(md->size==2) // tiny/big mobs [Valaris] if(md->size==2) // tiny/big mobs [Valaris]
clif_specialeffect(&md->bl,423,0); clif_specialeffect(&md->bl,423,0);
@ -1389,13 +1389,13 @@ int clif_spawnpet(struct pet_data *pd)
nullpo_retr(0, pd); nullpo_retr(0, pd);
if (mob_get_viewclass(pd->class) >= MAX_PC_CLASS) { if (mob_get_viewclass(pd->class_) >= MAX_PC_CLASS) {
memset(buf,0,packet_len_table[0x7c]); memset(buf,0,packet_len_table[0x7c]);
WBUFW(buf,0)=0x7c; WBUFW(buf,0)=0x7c;
WBUFL(buf,2)=pd->bl.id; WBUFL(buf,2)=pd->bl.id;
WBUFW(buf,6)=pd->speed; WBUFW(buf,6)=pd->speed;
WBUFW(buf,20)=mob_get_viewclass(pd->class); WBUFW(buf,20)=mob_get_viewclass(pd->class_);
WBUFPOS(buf,36,pd->bl.x,pd->bl.y); WBUFPOS(buf,36,pd->bl.x,pd->bl.y);
clif_send(buf,packet_len_table[0x7c],&pd->bl,AREA); clif_send(buf,packet_len_table[0x7c],&pd->bl,AREA);
@ -3552,7 +3552,7 @@ void clif_getareachar_npc(struct map_session_data* sd,struct npc_data* nd)
int len; int len;
nullpo_retv(sd); nullpo_retv(sd);
nullpo_retv(nd); nullpo_retv(nd);
if(nd->class < 0 || nd->flag&1 || nd->class == INVISIBLE_CLASS) if(nd->class_ < 0 || nd->flag&1 || nd->class_ == INVISIBLE_CLASS)
return; return;
if(nd->state.state == MS_WALK){ if(nd->state.state == MS_WALK){
len = clif_npc007b(nd,WFIFOP(sd->fd,0)); len = clif_npc007b(nd,WFIFOP(sd->fd,0));
@ -3580,8 +3580,8 @@ int clif_movemob(struct mob_data *md)
len = clif_mob007b(md,buf); len = clif_mob007b(md,buf);
clif_send(buf,len,&md->bl,AREA); clif_send(buf,len,&md->bl,AREA);
if(mob_get_equip(md->class) > 0) // mob equipment [Valaris] if(mob_get_equip(md->class_) > 0) // mob equipment [Valaris]
clif_mob_equip(md,mob_get_equip(md->class)); clif_mob_equip(md,mob_get_equip(md->class_));
if(md->size==2) // tiny/big mobs [Valaris] if(md->size==2) // tiny/big mobs [Valaris]
clif_specialeffect(&md->bl,423,0); clif_specialeffect(&md->bl,423,0);
@ -3739,8 +3739,8 @@ void clif_getareachar_mob(struct map_session_data* sd,struct mob_data* md)
WFIFOSET(sd->fd,len); WFIFOSET(sd->fd,len);
} }
if(mob_get_equip(md->class) > 0) // mob equipment [Valaris] if(mob_get_equip(md->class_) > 0) // mob equipment [Valaris]
clif_mob_equip(md,mob_get_equip(md->class)); clif_mob_equip(md,mob_get_equip(md->class_));
if(md->size==2) // tiny/big mobs [Valaris] if(md->size==2) // tiny/big mobs [Valaris]
clif_specialeffect(&md->bl,423,0); clif_specialeffect(&md->bl,423,0);
@ -3976,7 +3976,7 @@ int clif_pcoutsight(struct block_list *bl,va_list ap)
} }
break; break;
case BL_NPC: case BL_NPC:
if( ((struct npc_data *)bl)->class != INVISIBLE_CLASS ) if( ((struct npc_data *)bl)->class_ != INVISIBLE_CLASS )
clif_clearchar_id(bl->id,0,sd->fd); clif_clearchar_id(bl->id,0,sd->fd);
break; break;
case BL_MOB: case BL_MOB:
@ -4191,7 +4191,7 @@ int clif_skillinfo(struct map_session_data *sd,int skillid,int type,int range)
memset(WFIFOP(fd,14),0,24); memset(WFIFOP(fd,14),0,24);
if(!(skill_get_inf2(id)&0x01) || battle_config.quest_skill_learn == 1 || (battle_config.gm_allskill > 0 && pc_isGM(sd) >= battle_config.gm_allskill) ) if(!(skill_get_inf2(id)&0x01) || battle_config.quest_skill_learn == 1 || (battle_config.gm_allskill > 0 && pc_isGM(sd) >= battle_config.gm_allskill) )
//WFIFOB(fd,38)= (sd->status.skill[skillid].lv < skill_get_max(id) && sd->status.skill[skillid].flag ==0 )? 1:0; //WFIFOB(fd,38)= (sd->status.skill[skillid].lv < skill_get_max(id) && sd->status.skill[skillid].flag ==0 )? 1:0;
WFIFOB(fd,38)= (sd->status.skill[skillid].lv < skill_tree_get_max(id, sd->status.class) && sd->status.skill[skillid].flag ==0 )? 1:0; WFIFOB(fd,38)= (sd->status.skill[skillid].lv < skill_tree_get_max(id, sd->status.class_) && sd->status.skill[skillid].flag ==0 )? 1:0;
else else
WFIFOB(fd,38) = 0; WFIFOB(fd,38) = 0;
WFIFOSET(fd,packet_len_table[0x147]); WFIFOSET(fd,packet_len_table[0x147]);
@ -4226,7 +4226,7 @@ int clif_skillinfoblock(struct map_session_data *sd)
memset(WFIFOP(fd,len+12),0,24); memset(WFIFOP(fd,len+12),0,24);
if(!(skill_get_inf2(id)&0x01) || battle_config.quest_skill_learn == 1 || (battle_config.gm_allskill > 0 && pc_isGM(sd) >= battle_config.gm_allskill) ) if(!(skill_get_inf2(id)&0x01) || battle_config.quest_skill_learn == 1 || (battle_config.gm_allskill > 0 && pc_isGM(sd) >= battle_config.gm_allskill) )
//WFIFOB(fd,len+36)= (sd->status.skill[i].lv < skill_get_max(id) && sd->status.skill[i].flag ==0 )? 1:0; //WFIFOB(fd,len+36)= (sd->status.skill[i].lv < skill_get_max(id) && sd->status.skill[i].flag ==0 )? 1:0;
WFIFOB(fd,len+36)= (sd->status.skill[i].lv < skill_tree_get_max(id, sd->status.class) && sd->status.skill[i].flag ==0 )? 1:0; WFIFOB(fd,len+36)= (sd->status.skill[i].lv < skill_tree_get_max(id, sd->status.class_) && sd->status.skill[i].flag ==0 )? 1:0;
else else
WFIFOB(fd,len+36) = 0; WFIFOB(fd,len+36) = 0;
len+=37; len+=37;
@ -4259,7 +4259,7 @@ int clif_skillup(struct map_session_data *sd,int skill_num)
range = battle_get_range(&sd->bl) - (range + 1); range = battle_get_range(&sd->bl) - (range + 1);
WFIFOW(fd,8) = range; WFIFOW(fd,8) = range;
//WFIFOB(fd,10) = (sd->status.skill[skill_num].lv < skill_get_max(sd->status.skill[skill_num].id)) ? 1 : 0; //WFIFOB(fd,10) = (sd->status.skill[skill_num].lv < skill_get_max(sd->status.skill[skill_num].id)) ? 1 : 0;
WFIFOB(fd,10) = (sd->status.skill[skill_num].lv < skill_tree_get_max(sd->status.skill[skill_num].id, sd->status.class)) ? 1 : 0; WFIFOB(fd,10) = (sd->status.skill[skill_num].lv < skill_tree_get_max(sd->status.skill[skill_num].id, sd->status.class_)) ? 1 : 0;
WFIFOSET(fd,packet_len_table[0x10e]); WFIFOSET(fd,packet_len_table[0x10e]);
return 0; return 0;
@ -4623,13 +4623,13 @@ int clif_skill_estimation(struct map_session_data *sd,struct block_list *dst)
return 0; return 0;
WBUFW(buf, 0)=0x18c; WBUFW(buf, 0)=0x18c;
WBUFW(buf, 2)=mob_get_viewclass(md->class); WBUFW(buf, 2)=mob_get_viewclass(md->class_);
WBUFW(buf, 4)=md->level; WBUFW(buf, 4)=md->level;
WBUFW(buf, 6)=mob_db[md->class].size; WBUFW(buf, 6)=mob_db[md->class_].size;
WBUFL(buf, 8)=md->hp; WBUFL(buf, 8)=md->hp;
WBUFW(buf,12)=battle_get_def2(&md->bl); WBUFW(buf,12)=battle_get_def2(&md->bl);
WBUFW(buf,14)=mob_db[md->class].race; WBUFW(buf,14)=mob_db[md->class_].race;
WBUFW(buf,16)=battle_get_mdef2(&md->bl) - (mob_db[md->class].vit>>1); WBUFW(buf,16)=battle_get_mdef2(&md->bl) - (mob_db[md->class_].vit>>1);
WBUFW(buf,18)=battle_get_elem_type(&md->bl); WBUFW(buf,18)=battle_get_elem_type(&md->bl);
for(i=0;i<9;i++) for(i=0;i<9;i++)
WBUFB(buf,20+i)= battle_attr_fix(100,i+1,md->def_ele); WBUFB(buf,20+i)= battle_attr_fix(100,i+1,md->def_ele);
@ -5831,7 +5831,7 @@ int clif_update_mobhp(struct mob_data *md)
WBUFL(buf,2) = md->bl.id; WBUFL(buf,2) = md->bl.id;
memcpy(WBUFP(buf,6), md->name, 24); memcpy(WBUFP(buf,6), md->name, 24);
sprintf(mobhp, "hp: %d/%d", md->hp, mob_db[md->class].max_hp); sprintf(mobhp, "hp: %d/%d", md->hp, mob_db[md->class_].max_hp);
WBUFW(buf, 0) = 0x195; WBUFW(buf, 0) = 0x195;
memcpy(WBUFP(buf,30), mobhp, 24); memcpy(WBUFP(buf,30), mobhp, 24);
WBUFL(buf,54) = 0; WBUFL(buf,54) = 0;
@ -6023,7 +6023,7 @@ int clif_pet_emotion(struct pet_data *pd,int param)
if(sd->petDB->talk_convert_class < 0) if(sd->petDB->talk_convert_class < 0)
return 0; return 0;
else if(sd->petDB->talk_convert_class > 0) { else if(sd->petDB->talk_convert_class > 0) {
param -= (pd->class - 100)*100; param -= (pd->class_ - 100)*100;
param += (sd->petDB->talk_convert_class - 100)*100; param += (sd->petDB->talk_convert_class - 100)*100;
} }
} }
@ -6501,7 +6501,7 @@ int clif_guild_memberlist(struct map_session_data *sd)
WFIFOW(fd,c*104+12)=m->hair; WFIFOW(fd,c*104+12)=m->hair;
WFIFOW(fd,c*104+14)=m->hair_color; WFIFOW(fd,c*104+14)=m->hair_color;
WFIFOW(fd,c*104+16)=m->gender; WFIFOW(fd,c*104+16)=m->gender;
WFIFOW(fd,c*104+18)=m->class; WFIFOW(fd,c*104+18)=m->class_;
WFIFOW(fd,c*104+20)=m->lv; WFIFOW(fd,c*104+20)=m->lv;
WFIFOL(fd,c*104+22)=m->exp; WFIFOL(fd,c*104+22)=m->exp;
WFIFOL(fd,c*104+26)=m->online; WFIFOL(fd,c*104+26)=m->online;
@ -7439,10 +7439,10 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
if(sd->state.connect_new) { if(sd->state.connect_new) {
sd->state.connect_new = 0; sd->state.connect_new = 0;
if(sd->status.class != sd->view_class) if(sd->status.class_ != sd->view_class)
clif_changelook(&sd->bl,LOOK_BASE,sd->view_class); clif_changelook(&sd->bl,LOOK_BASE,sd->view_class);
if(sd->status.pet_id > 0 && sd->pd && sd->pet.intimate > 900) if(sd->status.pet_id > 0 && sd->pd && sd->pet.intimate > 900)
clif_pet_emotion(sd->pd,(sd->pd->class - 100)*100 + 50 + pet_hungry_val(sd)); clif_pet_emotion(sd->pd,(sd->pd->class_ - 100)*100 + 50 + pet_hungry_val(sd));
/* Stop players from spawning inside castles [Valaris] */ /* Stop players from spawning inside castles [Valaris] */
@ -7753,7 +7753,7 @@ void clif_parse_GetCharNameRequest(int fd, struct map_session_data *sd) {
nullpo_retv(md); nullpo_retv(md);
memcpy(WFIFOP(fd,6), md->name, 24); memcpy(WFIFOP(fd,6), md->name, 24);
if (md->class >= 1285 && md->class <= 1288 && md->guild_id) { if (md->class_ >= 1285 && md->class_ <= 1288 && md->guild_id) {
struct guild *g; struct guild *g;
struct guild_castle *gc = guild_mapname2gc(map[md->bl.m].name); struct guild_castle *gc = guild_mapname2gc(map[md->bl.m].name);
if (gc && gc->guild_id > 0 && (g = guild_search(gc->guild_id)) != NULL) { if (gc && gc->guild_id > 0 && (g = guild_search(gc->guild_id)) != NULL) {
@ -7767,7 +7767,7 @@ void clif_parse_GetCharNameRequest(int fd, struct map_session_data *sd) {
} }
} else if (battle_config.show_mob_hp == 1) { } else if (battle_config.show_mob_hp == 1) {
char mobhp[50]; char mobhp[50];
sprintf(mobhp, "hp: %d/%d", md->hp, mob_db[md->class].max_hp); sprintf(mobhp, "hp: %d/%d", md->hp, mob_db[md->class_].max_hp);
WFIFOW(fd, 0) = 0x195; WFIFOW(fd, 0) = 0x195;
memcpy(WFIFOP(fd,30), mobhp, 24); memcpy(WFIFOP(fd,30), mobhp, 24);
WFIFOB(fd,54) = 0; WFIFOB(fd,54) = 0;
@ -7849,7 +7849,7 @@ void clif_parse_GlobalMessage(int fd, struct map_session_data *sd) { // S 008c <
WFIFOSET(fd, WFIFOW(fd,2)); WFIFOSET(fd, WFIFOW(fd,2));
// Celest // Celest
if (pc_calc_base_job2 (sd->status.class) == 23 ) { if (pc_calc_base_job2 (sd->status.class_) == 23 ) {
int next = pc_nextbaseexp(sd)>0 ? pc_nextbaseexp(sd) : sd->status.base_exp; int next = pc_nextbaseexp(sd)>0 ? pc_nextbaseexp(sd) : sd->status.base_exp;
if ((sd->status.base_exp*100/next)%10 == 0) { if ((sd->status.base_exp*100/next)%10 == 0) {
estr_lower(RFIFOP(fd,4)); estr_lower(RFIFOP(fd,4));
@ -8680,17 +8680,17 @@ void clif_parse_GetItemFromCart(int fd,struct map_session_data *sd)
void clif_parse_RemoveOption(int fd,struct map_session_data *sd) void clif_parse_RemoveOption(int fd,struct map_session_data *sd)
{ {
if(pc_isriding(sd)) { // jobchange when removing peco [Valaris] if(pc_isriding(sd)) { // jobchange when removing peco [Valaris]
if(sd->status.class==13) if(sd->status.class_==13)
sd->status.class=sd->view_class=7; sd->status.class_=sd->view_class=7;
if(sd->status.class==21) if(sd->status.class_==21)
sd->status.class=sd->view_class=14; sd->status.class_=sd->view_class=14;
if(sd->status.class==4014) if(sd->status.class_==4014)
sd->status.class=sd->view_class=4008; sd->status.class_=sd->view_class=4008;
if(sd->status.class==4022) if(sd->status.class_==4022)
sd->status.class=sd->view_class=4015; sd->status.class_=sd->view_class=4015;
} }
pc_setoption(sd,0); pc_setoption(sd,0);
@ -10011,7 +10011,7 @@ void clif_parse_sn_explosionspirits(int fd, struct map_session_data *sd)
{ {
if(sd){ if(sd){
int nextbaseexp=pc_nextbaseexp(sd); int nextbaseexp=pc_nextbaseexp(sd);
struct pc_base_job s_class = pc_calc_base_job(sd->status.class); struct pc_base_job s_class = pc_calc_base_job(sd->status.class_);
if (battle_config.etc_log){ if (battle_config.etc_log){
if(nextbaseexp != 0) if(nextbaseexp != 0)
printf("SuperNovice explosionspirits!! %d %d %d %d\n",sd->bl.id,s_class.job,sd->status.base_exp,(int)((double)1000*sd->status.base_exp/nextbaseexp)); printf("SuperNovice explosionspirits!! %d %d %d %d\n",sd->bl.id,s_class.job,sd->status.base_exp,(int)((double)1000*sd->status.base_exp/nextbaseexp));

View File

@ -242,7 +242,7 @@ void guild_makemember(struct guild_member *m,struct map_session_data *sd)
m->hair =sd->status.hair; m->hair =sd->status.hair;
m->hair_color =sd->status.hair_color; m->hair_color =sd->status.hair_color;
m->gender =sd->sex; m->gender =sd->sex;
m->class =sd->status.class; m->class_ =sd->status.class_;
m->lv =sd->status.base_level; m->lv =sd->status.base_level;
m->exp =0; m->exp =0;
m->exp_payper =0; m->exp_payper =0;
@ -722,7 +722,7 @@ int guild_send_memberinfoshort(struct map_session_data *sd,int online)
return 0; return 0;
intif_guild_memberinfoshort(g->guild_id, intif_guild_memberinfoshort(g->guild_id,
sd->status.account_id,sd->status.char_id,online,sd->status.base_level,sd->status.class); sd->status.account_id,sd->status.char_id,online,sd->status.base_level,sd->status.class_);
if( !online ){ // ログアウトするならsdをクリアして終了 if( !online ){ // ログアウトするならsdをクリアして終了
int i=guild_getindex(g,sd->status.account_id,sd->status.char_id); int i=guild_getindex(g,sd->status.account_id,sd->status.char_id);
@ -762,7 +762,7 @@ int guild_recv_memberinfoshort(int guild_id,int account_id,int char_id,int onlin
oldonline=m->online; oldonline=m->online;
m->online=online; m->online=online;
m->lv=lv; m->lv=lv;
m->class=class; m->class_=class;
idx=i; idx=i;
} }
if(m->account_id>0){ if(m->account_id>0){

View File

@ -158,7 +158,7 @@ struct item_data* itemdb_search(int nameid)
id->weight=10; id->weight=10;
id->sex=2; id->sex=2;
id->elv=0; id->elv=0;
id->class=0xffffffff; id->class_=0xffffffff;
id->flag.available=0; id->flag.available=0;
id->flag.value_notdc=0; //ˆê‰ž<E280B0>E<EFBFBD>E<EFBFBD>E id->flag.value_notdc=0; //ˆê‰ž<E280B0>E<EFBFBD>E<EFBFBD>E
id->flag.value_notoc=0; id->flag.value_notoc=0;
@ -339,7 +339,7 @@ static int itemdb_readdb(void)
id->def=atoi(str[8]); id->def=atoi(str[8]);
id->range=atoi(str[9]); id->range=atoi(str[9]);
id->slot=atoi(str[10]); id->slot=atoi(str[10]);
id->class=atoi(str[11]); id->class_=atoi(str[11]);
id->sex=atoi(str[12]); id->sex=atoi(str[12]);
if(id->equip != atoi(str[13])){ if(id->equip != atoi(str[13])){
id->equip=atoi(str[13]); id->equip=atoi(str[13]);
@ -814,7 +814,7 @@ static int itemdb_read_sqldb(void)
id->def = (sql_row[8] != NULL) ? atoi(sql_row[8]) : 0; id->def = (sql_row[8] != NULL) ? atoi(sql_row[8]) : 0;
id->range = (sql_row[9] != NULL) ? atoi(sql_row[9]) : 0; id->range = (sql_row[9] != NULL) ? atoi(sql_row[9]) : 0;
id->slot = (sql_row[10] != NULL) ? atoi(sql_row[10]) : 0; id->slot = (sql_row[10] != NULL) ? atoi(sql_row[10]) : 0;
id->class = (sql_row[11] != NULL) ? atoi(sql_row[11]) : 0; id->class_ = (sql_row[11] != NULL) ? atoi(sql_row[11]) : 0;
id->sex = (sql_row[12] != NULL) ? atoi(sql_row[12]) : 0; id->sex = (sql_row[12] != NULL) ? atoi(sql_row[12]) : 0;
id->equip = (sql_row[13] != NULL) ? atoi(sql_row[13]) : 0; id->equip = (sql_row[13] != NULL) ? atoi(sql_row[13]) : 0;
id->wlv = (sql_row[14] != NULL) ? atoi(sql_row[14]) : 0; id->wlv = (sql_row[14] != NULL) ? atoi(sql_row[14]) : 0;

View File

@ -12,7 +12,7 @@ struct item_data {
int value_buy; int value_buy;
int value_sell; int value_sell;
int type; int type;
int class; int class_;
int sex; int sex;
int equip; int equip;
int weight; int weight;

View File

@ -348,7 +348,7 @@ struct npc_item_list {
struct npc_data { struct npc_data {
struct block_list bl; struct block_list bl;
short n; short n;
short class,dir; short class_,dir;
short speed; short speed;
char name[24]; char name[24];
char exname[24]; char exname[24];
@ -395,7 +395,7 @@ struct npc_data {
struct mob_data { struct mob_data {
struct block_list bl; struct block_list bl;
short n; short n;
short base_class,class,dir,mode,level; short base_class,class_,dir,mode,level;
short m,x0,y0,xs,ys; short m,x0,y0,xs,ys;
char name[24]; char name[24];
int spawndelay1,spawndelay2; int spawndelay1,spawndelay2;
@ -457,7 +457,7 @@ struct mob_data {
struct pet_data { struct pet_data {
struct block_list bl; struct block_list bl;
short n; short n;
short class,dir; short class_,dir;
short speed; short speed;
char name[24]; char name[24];
struct { struct {

View File

@ -99,7 +99,7 @@ int mob_spawn_dataset(struct mob_data *md,const char *mobname,int class)
memcpy(md->name,mobname,24); memcpy(md->name,mobname,24);
md->n = 0; md->n = 0;
md->base_class = md->class = class; md->base_class = md->class_ = class;
md->bl.id= npc_get_new_npc_id(); md->bl.id= npc_get_new_npc_id();
memset(&md->state,0,sizeof(md->state)); memset(&md->state,0,sizeof(md->state));
@ -600,11 +600,11 @@ static int mob_attack(struct mob_data *md,unsigned int tick,int data)
if(!md->mode) if(!md->mode)
mode=mob_db[md->class].mode; mode=mob_db[md->class_].mode;
else else
mode=md->mode; mode=md->mode;
race=mob_db[md->class].race; race=mob_db[md->class_].race;
if(!(mode&0x80)){ if(!(mode&0x80)){
md->target_id=0; md->target_id=0;
md->state.targettype = NONE_ATTACKABLE; md->state.targettype = NONE_ATTACKABLE;
@ -617,7 +617,7 @@ static int mob_attack(struct mob_data *md,unsigned int tick,int data)
return 0; return 0;
} }
range = mob_db[md->class].range; range = mob_db[md->class_].range;
if(mode&1) if(mode&1)
range++; range++;
if(distance(md->bl.x,md->bl.y,tbl->x,tbl->y) > range) if(distance(md->bl.x,md->bl.y,tbl->x,tbl->y) > range)
@ -912,7 +912,7 @@ int mob_spawn(int id)
map_delblock(&md->bl); map_delblock(&md->bl);
} }
else else
md->class = md->base_class; md->class_ = md->base_class;
md->bl.m =md->m; md->bl.m =md->m;
do { do {
@ -946,11 +946,11 @@ int mob_spawn(int id)
md->move_fail_count = 0; md->move_fail_count = 0;
if(!md->speed) if(!md->speed)
md->speed = mob_db[md->class].speed; md->speed = mob_db[md->class_].speed;
md->def_ele = mob_db[md->class].element; md->def_ele = mob_db[md->class_].element;
if(!md->level) // [Valaris] if(!md->level) // [Valaris]
md->level=mob_db[md->class].lv; md->level=mob_db[md->class_].lv;
md->master_id=0; md->master_id=0;
md->master_dist=0; md->master_dist=0;
@ -964,7 +964,7 @@ int mob_spawn(int id)
md->canmove_tick = tick; md->canmove_tick = tick;
md->guild_id = 0; md->guild_id = 0;
if (md->class >= 1285 && md->class <= 1288) { if (md->class_ >= 1285 && md->class_ <= 1288) {
struct guild_castle *gc=guild_mapname2gc(map[md->bl.m].name); struct guild_castle *gc=guild_mapname2gc(map[md->bl.m].name);
if(gc) if(gc)
md->guild_id = gc->guild_id; md->guild_id = gc->guild_id;
@ -998,7 +998,7 @@ int mob_spawn(int id)
md->hp = battle_get_max_hp(&md->bl); md->hp = battle_get_max_hp(&md->bl);
if(md->hp<=0){ if(md->hp<=0){
mob_makedummymobdb(md->class); mob_makedummymobdb(md->class_);
md->hp = battle_get_max_hp(&md->bl); md->hp = battle_get_max_hp(&md->bl);
} }
@ -1094,7 +1094,7 @@ int mob_can_reach(struct mob_data *md,struct block_list *bl,int range)
//=========== guildcastle guardian no search start=========== //=========== guildcastle guardian no search start===========
//when players are the guild castle member not attack them ! //when players are the guild castle member not attack them !
if(md->class >= 1285 && md->class <= 1287){ if(md->class_ >= 1285 && md->class_ <= 1287){
struct map_session_data *sd; struct map_session_data *sd;
struct guild *g=NULL; struct guild *g=NULL;
struct guild_castle *gc=guild_mapname2gc(map[bl->m].name); struct guild_castle *gc=guild_mapname2gc(map[bl->m].name);
@ -1171,10 +1171,10 @@ int mob_target(struct mob_data *md,struct block_list *bl,int dist)
sc_data = battle_get_sc_data(bl); sc_data = battle_get_sc_data(bl);
option = battle_get_option(bl); option = battle_get_option(bl);
race=mob_db[md->class].race; race=mob_db[md->class_].race;
if(!md->mode) if(!md->mode)
mode=mob_db[md->class].mode; mode=mob_db[md->class_].mode;
else else
mode=md->mode; mode=md->mode;
@ -1236,13 +1236,13 @@ static int mob_ai_sub_hard_activesearch(struct block_list *bl,va_list ap)
return 0; return 0;
if(!smd->mode) if(!smd->mode)
mode=mob_db[smd->class].mode; mode=mob_db[smd->class_].mode;
else else
mode=smd->mode; mode=smd->mode;
// アクティブでターゲット射程内にいるなら、ロックする // アクティブでターゲット射程内にいるなら、ロックする
if( mode&0x04 ){ if( mode&0x04 ){
race=mob_db[smd->class].race; race=mob_db[smd->class_].race;
//対象がPCの場合 //対象がPCの場合
if(tsd && if(tsd &&
!pc_isdead(tsd) && !pc_isdead(tsd) &&
@ -1295,7 +1295,7 @@ static int mob_ai_sub_hard_lootsearch(struct block_list *bl,va_list ap)
nullpo_retr(0, itc=va_arg(ap,int *)); nullpo_retr(0, itc=va_arg(ap,int *));
if(!md->mode) if(!md->mode)
mode=mob_db[md->class].mode; mode=mob_db[md->class_].mode;
else else
mode=md->mode; mode=md->mode;
@ -1332,8 +1332,8 @@ static int mob_ai_sub_hard_linksearch(struct block_list *bl,va_list ap)
nullpo_retr(0, target=va_arg(ap,struct block_list *)); nullpo_retr(0, target=va_arg(ap,struct block_list *));
// same family free in a range at a link monster -- it will be made to lock if MOB is // same family free in a range at a link monster -- it will be made to lock if MOB is
/* if( (md->target_id > 0 && md->state.targettype == ATTACKABLE) && mob_db[md->class].mode&0x08){ /* if( (md->target_id > 0 && md->state.targettype == ATTACKABLE) && mob_db[md->class_].mode&0x08){
if( tmd->class==md->class && (!tmd->target_id || md->state.targettype == NONE_ATTACKABLE) && tmd->bl.m == md->bl.m){ if( tmd->class_==md->class_ && (!tmd->target_id || md->state.targettype == NONE_ATTACKABLE) && tmd->bl.m == md->bl.m){
if( mob_can_reach(tmd,target,12) ){ // Reachability judging if( mob_can_reach(tmd,target,12) ){ // Reachability judging
tmd->target_id=md->target_id; tmd->target_id=md->target_id;
tmd->state.targettype = ATTACKABLE; tmd->state.targettype = ATTACKABLE;
@ -1341,8 +1341,8 @@ static int mob_ai_sub_hard_linksearch(struct block_list *bl,va_list ap)
} }
} }
}*/ }*/
if( md->attacked_id > 0 && mob_db[md->class].mode&0x08){ if( md->attacked_id > 0 && mob_db[md->class_].mode&0x08){
if( tmd->class==md->class && tmd->bl.m == md->bl.m && (!tmd->target_id || md->state.targettype == NONE_ATTACKABLE)){ if( tmd->class_==md->class_ && tmd->bl.m == md->bl.m && (!tmd->target_id || md->state.targettype == NONE_ATTACKABLE)){
if( mob_can_reach(tmd,target,12) ){ // Reachability judging if( mob_can_reach(tmd,target,12) ){ // Reachability judging
tmd->target_id=md->attacked_id; tmd->target_id=md->attacked_id;
tmd->state.targettype = ATTACKABLE; tmd->state.targettype = ATTACKABLE;
@ -1368,7 +1368,7 @@ static int mob_ai_sub_hard_slavemob(struct mob_data *md,unsigned int tick)
if((bl=map_id2bl(md->master_id)) != NULL ) if((bl=map_id2bl(md->master_id)) != NULL )
mmd=(struct mob_data *)bl; mmd=(struct mob_data *)bl;
mode=mob_db[md->class].mode; mode=mob_db[md->class_].mode;
// It is not main monster/leader. // It is not main monster/leader.
if(!mmd || mmd->bl.type!=BL_MOB || mmd->bl.id!=md->master_id) if(!mmd || mmd->bl.type!=BL_MOB || mmd->bl.id!=md->master_id)
@ -1439,7 +1439,7 @@ static int mob_ai_sub_hard_slavemob(struct mob_data *md,unsigned int tick)
struct map_session_data *sd=map_id2sd(mmd->target_id); struct map_session_data *sd=map_id2sd(mmd->target_id);
if(sd!=NULL && !pc_isdead(sd) && sd->invincible_timer == -1 && !pc_isinvisible(sd)){ if(sd!=NULL && !pc_isdead(sd) && sd->invincible_timer == -1 && !pc_isinvisible(sd)){
race=mob_db[md->class].race; race=mob_db[md->class_].race;
if(mode&0x20 || if(mode&0x20 ||
(sd->sc_data[SC_TRICKDEAD].timer == -1 && sd->sc_data[SC_BASILICA].timer == -1 && (sd->sc_data[SC_TRICKDEAD].timer == -1 && sd->sc_data[SC_BASILICA].timer == -1 &&
( (!pc_ishiding(sd) && !sd->state.gangsterparadise) || ((race == 4 || race == 6) && !sd->perfect_hiding) ) ) ){ // 妨害がないか判定 ( (!pc_ishiding(sd) && !sd->state.gangsterparadise) || ((race == 4 || race == 6) && !sd->perfect_hiding) ) ) ){ // 妨害がないか判定
@ -1457,7 +1457,7 @@ static int mob_ai_sub_hard_slavemob(struct mob_data *md,unsigned int tick)
struct map_session_data *sd=map_id2sd(md->target_id); struct map_session_data *sd=map_id2sd(md->target_id);
if(sd!=NULL && !pc_isdead(sd) && sd->invincible_timer == -1 && !pc_isinvisible(sd)){ if(sd!=NULL && !pc_isdead(sd) && sd->invincible_timer == -1 && !pc_isinvisible(sd)){
race=mob_db[mmd->class].race; race=mob_db[mmd->class_].race;
if(mode&0x20 || if(mode&0x20 ||
(sd->sc_data[SC_TRICKDEAD].timer == -1 && (sd->sc_data[SC_TRICKDEAD].timer == -1 &&
(!(sd->status.option&0x06) || race==4 || race==6) (!(sd->status.option&0x06) || race==4 || race==6)
@ -1525,7 +1525,7 @@ static int mob_randomwalk(struct mob_data *md,int tick)
md->target_dir = 0; md->target_dir = 0;
if(md->move_fail_count>1000){ if(md->move_fail_count>1000){
if(battle_config.error_log) if(battle_config.error_log)
printf("MOB cant move. random spawn %d, class = %d\n",md->bl.id,md->class); printf("MOB cant move. random spawn %d, class = %d\n",md->bl.id,md->class_);
md->move_fail_count=0; md->move_fail_count=0;
mob_spawn(md->bl.id); mob_spawn(md->bl.id);
} }
@ -1577,11 +1577,11 @@ static int mob_ai_sub_hard(struct block_list *bl,va_list ap)
} }
if(!md->mode) if(!md->mode)
mode=mob_db[md->class].mode; mode=mob_db[md->class_].mode;
else else
mode=md->mode; mode=md->mode;
race=mob_db[md->class].race; race=mob_db[md->class_].race;
// Abnormalities // Abnormalities
if((md->opt1 > 0 && md->opt1 != 6) || md->state.state==MS_DELAY || md->sc_data[SC_BLADESTOP].timer != -1) if((md->opt1 > 0 && md->opt1 != 6) || md->state.state==MS_DELAY || md->sc_data[SC_BLADESTOP].timer != -1)
@ -1674,7 +1674,7 @@ static int mob_ai_sub_hard(struct block_list *bl,va_list ap)
((pc_ishiding(tsd) || tsd->state.gangsterparadise) && ((pc_ishiding(tsd) || tsd->state.gangsterparadise) &&
!((race == 4 || race == 6) && !tsd->perfect_hiding) )) ) !((race == 4 || race == 6) && !tsd->perfect_hiding) )) )
mob_unlocktarget(md,tick); // スキルなどによる策敵妨害 mob_unlocktarget(md,tick); // スキルなどによる策敵妨害
else if(!battle_check_range(&md->bl,tbl,mob_db[md->class].range)){ else if(!battle_check_range(&md->bl,tbl,mob_db[md->class_].range)){
// 攻撃範囲外なので移動 // 攻撃範囲外なので移動
if(!(mode&1)){ // 移動しないモード if(!(mode&1)){ // 移動しないモード
mob_unlocktarget(md,tick); mob_unlocktarget(md,tick);
@ -1889,7 +1889,7 @@ static int mob_ai_sub_lazy(void * key,void * data,va_list app)
} }
if(DIFF_TICK(md->next_walktime,tick)<0 && if(DIFF_TICK(md->next_walktime,tick)<0 &&
(mob_db[md->class].mode&1) && mob_can_move(md) ){ (mob_db[md->class_].mode&1) && mob_can_move(md) ){
if( map[md->bl.m].users>0 ){ if( map[md->bl.m].users>0 ){
// Since PC is in the same map, somewhat better negligent processing is carried out. // Since PC is in the same map, somewhat better negligent processing is carried out.
@ -1900,7 +1900,7 @@ static int mob_ai_sub_lazy(void * key,void * data,va_list app)
// MOB which is not not the summons MOB but BOSS, either sometimes reboils. // MOB which is not not the summons MOB but BOSS, either sometimes reboils.
else if( rand()%1000<MOB_LAZYWARPPERC && md->x0<=0 && md->master_id!=0 && else if( rand()%1000<MOB_LAZYWARPPERC && md->x0<=0 && md->master_id!=0 &&
mob_db[md->class].mexp <= 0 && !(mob_db[md->class].mode & 0x20)) mob_db[md->class_].mexp <= 0 && !(mob_db[md->class_].mode & 0x20))
mob_spawn(md->bl.id); mob_spawn(md->bl.id);
}else{ }else{
@ -1908,7 +1908,7 @@ static int mob_ai_sub_lazy(void * key,void * data,va_list app)
// MOB which is not BOSS which is not Summons MOB, either -- a case -- sometimes -- leaping // MOB which is not BOSS which is not Summons MOB, either -- a case -- sometimes -- leaping
if( rand()%1000<MOB_LAZYWARPPERC && md->x0<=0 && md->master_id!=0 && if( rand()%1000<MOB_LAZYWARPPERC && md->x0<=0 && md->master_id!=0 &&
mob_db[md->class].mexp <= 0 && !(mob_db[md->class].mode & 0x20)) mob_db[md->class_].mexp <= 0 && !(mob_db[md->class_].mode & 0x20))
mob_warp(md,-1,-1,-1,-1); mob_warp(md,-1,-1,-1,-1);
} }
@ -2018,7 +2018,7 @@ int mob_delete(struct mob_data *md)
mob_changestate(md,MS_DEAD,0); mob_changestate(md,MS_DEAD,0);
clif_clearchar_area(&md->bl,1); clif_clearchar_area(&md->bl,1);
map_delblock(&md->bl); map_delblock(&md->bl);
if(mob_get_viewclass(md->class) <= 1000) if(mob_get_viewclass(md->class_) <= 1000)
clif_clearchar_delay(gettick()+3000,&md->bl,0); clif_clearchar_delay(gettick()+3000,&md->bl,0);
mob_deleteslave(md); mob_deleteslave(md);
mob_setdelayspawn(md->bl.id); mob_setdelayspawn(md->bl.id);
@ -2220,7 +2220,7 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
md->hp-=damage; md->hp-=damage;
if(md->class >= 1285 && md->class <=1287) { // guardian hp update [Valaris] if(md->class_ >= 1285 && md->class_ <=1287) { // guardian hp update [Valaris]
struct guild_castle *gc=guild_mapname2gc(map[md->bl.m].name); struct guild_castle *gc=guild_mapname2gc(map[md->bl.m].name);
if(gc) { if(gc) {
@ -2292,7 +2292,7 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
if(md->state.special_mob_ai == 2){//スフィアーマイン if(md->state.special_mob_ai == 2){//スフィアーマイン
int skillidx=0; int skillidx=0;
if((skillidx=mob_skillid2skillidx(md->class,NPC_SELFDESTRUCTION2))>=0){ if((skillidx=mob_skillid2skillidx(md->class_,NPC_SELFDESTRUCTION2))>=0){
md->mode |= 0x1; md->mode |= 0x1;
md->next_walktime=tick; md->next_walktime=tick;
mobskill_use_id(md,&md->bl,skillidx);//自爆詠唱開始 mobskill_use_id(md,&md->bl,skillidx);//自爆詠唱開始
@ -2374,13 +2374,13 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
// jAthena's exp formula // jAthena's exp formula
// per = ((double)md->dmglog[i].dmg)*(9.+(double)((count > 6)? 6:count))/10./((double)max_hp) * dmg_rate; // per = ((double)md->dmglog[i].dmg)*(9.+(double)((count > 6)? 6:count))/10./((double)max_hp) * dmg_rate;
per = ((double)md->dmglog[i].dmg)*(9.+(double)((count > 6)? 6:count))/10./tdmg; per = ((double)md->dmglog[i].dmg)*(9.+(double)((count > 6)? 6:count))/10./tdmg;
temp = (double)mob_db[md->class].base_exp * per; temp = (double)mob_db[md->class_].base_exp * per;
base_exp = (temp > 2147483647.)? 0x7fffffff:(int)temp; base_exp = (temp > 2147483647.)? 0x7fffffff:(int)temp;
if(mob_db[md->class].base_exp > 0 && base_exp < 1) base_exp = 1; if(mob_db[md->class_].base_exp > 0 && base_exp < 1) base_exp = 1;
if(base_exp < 0) base_exp = 0; if(base_exp < 0) base_exp = 0;
temp = (double)mob_db[md->class].job_exp * per; temp = (double)mob_db[md->class_].job_exp * per;
job_exp = (temp > 2147483647.)? 0x7fffffff:(int)temp; job_exp = (temp > 2147483647.)? 0x7fffffff:(int)temp;
if(mob_db[md->class].job_exp > 0 && job_exp < 1) job_exp = 1; if(mob_db[md->class_].job_exp > 0 && job_exp < 1) job_exp = 1;
if(job_exp < 0) job_exp = 0; if(job_exp < 0) job_exp = 0;
} }
else if (battle_config.exp_calc_type == 1) { else if (battle_config.exp_calc_type == 1) {
@ -2388,9 +2388,9 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
per=(double)md->dmglog[i].dmg*256*(9+(double)((count > 6)? 6:count))/10/(double)max_hp; per=(double)md->dmglog[i].dmg*256*(9+(double)((count > 6)? 6:count))/10/(double)max_hp;
if(per>512) per=512; if(per>512) per=512;
if(per<1) per=1; if(per<1) per=1;
base_exp=mob_db[md->class].base_exp*per/256; base_exp=mob_db[md->class_].base_exp*per/256;
if(base_exp < 1) base_exp = 1; if(base_exp < 1) base_exp = 1;
job_exp=mob_db[md->class].job_exp*per/256; job_exp=mob_db[md->class_].job_exp*per/256;
if(job_exp < 1) job_exp = 1; if(job_exp < 1) job_exp = 1;
} }
else { else {
@ -2398,16 +2398,16 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
per=(double)md->dmglog[i].dmg*256*(9+(double)((count > 6)? 6:count))/10/tdmg; per=(double)md->dmglog[i].dmg*256*(9+(double)((count > 6)? 6:count))/10/tdmg;
if(per>512) per=512; if(per>512) per=512;
if(per<1) per=1; if(per<1) per=1;
base_exp=mob_db[md->class].base_exp*per/256; base_exp=mob_db[md->class_].base_exp*per/256;
if(base_exp < 1) base_exp = 1; if(base_exp < 1) base_exp = 1;
job_exp=mob_db[md->class].job_exp*per/256; job_exp=mob_db[md->class_].job_exp*per/256;
if(job_exp < 1) job_exp = 1; if(job_exp < 1) job_exp = 1;
} }
if(sd && battle_config.pk_mode && (mob_db[md->class].lv - sd->status.base_level >= 20)) { if(sd && battle_config.pk_mode && (mob_db[md->class_].lv - sd->status.base_level >= 20)) {
base_exp*=1.15; // pk_mode additional exp if monster >20 levels [Valaris] base_exp*=1.15; // pk_mode additional exp if monster >20 levels [Valaris]
} }
if(sd && battle_config.pk_mode && (mob_db[md->class].lv - sd->status.base_level >= 20)) { if(sd && battle_config.pk_mode && (mob_db[md->class_].lv - sd->status.base_level >= 20)) {
job_exp*=1.15; // pk_mode additional exp if monster >20 levels [Valaris] job_exp*=1.15; // pk_mode additional exp if monster >20 levels [Valaris]
} }
if(md->master_id || (md->state.special_mob_ai >= 1 && battle_config.alchemist_summon_reward != 1)) { // for summoned creatures [Valaris] if(md->master_id || (md->state.special_mob_ai >= 1 && battle_config.alchemist_summon_reward != 1)) { // for summoned creatures [Valaris]
@ -2417,12 +2417,12 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
else { else {
if(battle_config.zeny_from_mobs) { if(battle_config.zeny_from_mobs) {
if(md->level > 0) zeny=(md->level+rand()%md->level)*per/256; // zeny calculation moblv + random moblv [Valaris] if(md->level > 0) zeny=(md->level+rand()%md->level)*per/256; // zeny calculation moblv + random moblv [Valaris]
if(mob_db[md->class].mexp > 0) if(mob_db[md->class_].mexp > 0)
zeny*=rand()%250; zeny*=rand()%250;
} }
if(battle_config.mobs_level_up && md->level > mob_db[md->class].lv) { // [Valaris] if(battle_config.mobs_level_up && md->level > mob_db[md->class_].lv) { // [Valaris]
job_exp+=((md->level-mob_db[md->class].lv)*mob_db[md->class].job_exp*.03)*per/256; job_exp+=((md->level-mob_db[md->class_].lv)*mob_db[md->class_].job_exp*.03)*per/256;
base_exp+=((md->level-mob_db[md->class].lv)*mob_db[md->class].base_exp*.03)*per/256; base_exp+=((md->level-mob_db[md->class_].lv)*mob_db[md->class_].base_exp*.03)*per/256;
} }
} }
@ -2473,18 +2473,18 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
if(md->master_id || (md->state.special_mob_ai >= 1 && battle_config.alchemist_summon_reward != 1)) // Added [Valaris] if(md->master_id || (md->state.special_mob_ai >= 1 && battle_config.alchemist_summon_reward != 1)) // Added [Valaris]
break; // End break; // End
if(mob_db[md->class].dropitem[i].nameid <= 0) if(mob_db[md->class_].dropitem[i].nameid <= 0)
continue; continue;
drop_rate = mob_db[md->class].dropitem[i].p; drop_rate = mob_db[md->class_].dropitem[i].p;
if(drop_rate <= 0 && battle_config.drop_rate0item) if(drop_rate <= 0 && battle_config.drop_rate0item)
drop_rate = 1; drop_rate = 1;
if(battle_config.drops_by_luk>0 && sd && md) drop_rate+=(sd->status.luk*battle_config.drops_by_luk)/100; // drops affected by luk [Valaris] if(battle_config.drops_by_luk>0 && sd && md) drop_rate+=(sd->status.luk*battle_config.drops_by_luk)/100; // drops affected by luk [Valaris]
if(sd && md && battle_config.pk_mode==1 && (mob_db[md->class].lv - sd->status.base_level >= 20)) drop_rate*=1.25; // pk_mode increase drops if 20 level difference [Valaris] if(sd && md && battle_config.pk_mode==1 && (mob_db[md->class_].lv - sd->status.base_level >= 20)) drop_rate*=1.25; // pk_mode increase drops if 20 level difference [Valaris]
if(drop_rate <= rand()%10000) if(drop_rate <= rand()%10000)
continue; continue;
ditem=(struct delay_item_drop *)aCalloc(1,sizeof(struct delay_item_drop)); ditem=(struct delay_item_drop *)aCalloc(1,sizeof(struct delay_item_drop));
ditem->nameid = mob_db[md->class].dropitem[i].nameid; ditem->nameid = mob_db[md->class_].dropitem[i].nameid;
log_item[i] = ditem->nameid; log_item[i] = ditem->nameid;
ditem->amount = 1; ditem->amount = 1;
ditem->m = md->bl.m; ditem->m = md->bl.m;
@ -2498,7 +2498,7 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
#ifndef TXT_ONLY #ifndef TXT_ONLY
if(log_config.drop > 0) if(log_config.drop > 0)
log_drop(mvp_sd, md->class, log_item); log_drop(mvp_sd, md->class_, log_item);
#endif #endif
// Ore Discovery [Celest] // Ore Discovery [Celest]
@ -2520,7 +2520,7 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
#ifndef TXT_ONLY #ifndef TXT_ONLY
if(log_config.drop > 0) if(log_config.drop > 0)
log_drop(mvp_sd, md->class, log_item); log_drop(mvp_sd, md->class_, log_item);
#endif #endif
if(sd && sd->state.attack_type == BF_WEAPON) { if(sd && sd->state.attack_type == BF_WEAPON) {
@ -2530,8 +2530,8 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
if(sd->monster_drop_itemid[i] <= 0) if(sd->monster_drop_itemid[i] <= 0)
continue; continue;
if(sd->monster_drop_race[i] & (1<<race) || if(sd->monster_drop_race[i] & (1<<race) ||
(mob_db[md->class].mode & 0x20 && sd->monster_drop_race[i] & 1<<10) || (mob_db[md->class_].mode & 0x20 && sd->monster_drop_race[i] & 1<<10) ||
(!(mob_db[md->class].mode & 0x20) && sd->monster_drop_race[i] & 1<<11) ) { (!(mob_db[md->class_].mode & 0x20) && sd->monster_drop_race[i] & 1<<11) ) {
if(sd->monster_drop_itemrate[i] <= rand()%10000) if(sd->monster_drop_itemrate[i] <= rand()%10000)
continue; continue;
@ -2548,7 +2548,7 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
} }
} }
if(sd->get_zeny_num > 0) if(sd->get_zeny_num > 0)
pc_getzeny(sd,mob_db[md->class].lv*10 + rand()%(sd->get_zeny_num+1)); pc_getzeny(sd,mob_db[md->class_].lv*10 + rand()%(sd->get_zeny_num+1));
} }
if(md->lootitem) { if(md->lootitem) {
for(i=0;i<md->lootitem_count;i++) { for(i=0;i<md->lootitem_count;i++) {
@ -2568,11 +2568,11 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
} }
// mvp処理 // mvp処理
if(mvp_sd && mob_db[md->class].mexp > 0 ){ if(mvp_sd && mob_db[md->class_].mexp > 0 ){
int log_mvp[2] = {0}; int log_mvp[2] = {0};
int j; int j;
int mexp; int mexp;
temp = ((double)mob_db[md->class].mexp * (9.+(double)count)/10.); //[Gengar] temp = ((double)mob_db[md->class_].mexp * (9.+(double)count)/10.); //[Gengar]
mexp = (temp > 2147483647.)? 0x7fffffff:(int)temp; mexp = (temp > 2147483647.)? 0x7fffffff:(int)temp;
if(mexp < 1) mexp = 1; if(mexp < 1) mexp = 1;
clif_mvp_effect(mvp_sd); // エフェクト clif_mvp_effect(mvp_sd); // エフェクト
@ -2581,9 +2581,9 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
log_mvp[1] = mexp; log_mvp[1] = mexp;
for(j=0;j<3;j++){ for(j=0;j<3;j++){
i = rand() % 3; i = rand() % 3;
if(mob_db[md->class].mvpitem[i].nameid <= 0) if(mob_db[md->class_].mvpitem[i].nameid <= 0)
continue; continue;
drop_rate = mob_db[md->class].mvpitem[i].p; drop_rate = mob_db[md->class_].mvpitem[i].p;
if(drop_rate <= 0 && battle_config.drop_rate0item) if(drop_rate <= 0 && battle_config.drop_rate0item)
drop_rate = 1; drop_rate = 1;
if(drop_rate < battle_config.item_drop_mvp_min) if(drop_rate < battle_config.item_drop_mvp_min)
@ -2593,7 +2593,7 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
if(drop_rate <= rand()%10000) if(drop_rate <= rand()%10000)
continue; continue;
memset(&item,0,sizeof(item)); memset(&item,0,sizeof(item));
item.nameid=mob_db[md->class].mvpitem[i].nameid; item.nameid=mob_db[md->class_].mvpitem[i].nameid;
item.identify=!itemdb_isequip3(item.nameid); item.identify=!itemdb_isequip3(item.nameid);
clif_mvp_item(mvp_sd,item.nameid); clif_mvp_item(mvp_sd,item.nameid);
log_mvp[0] = item.nameid; log_mvp[0] = item.nameid;
@ -2607,7 +2607,7 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
} }
#ifndef TXT_ONLY #ifndef TXT_ONLY
if(log_config.mvpdrop > 0) if(log_config.mvpdrop > 0)
log_mvpdrop(mvp_sd, md->class, log_mvp); log_mvpdrop(mvp_sd, md->class_, log_mvp);
#endif #endif
} }
@ -2649,7 +2649,7 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
clif_clearchar_area(&md->bl,1); clif_clearchar_area(&md->bl,1);
if(md->level) md->level=0; if(md->level) md->level=0;
map_delblock(&md->bl); map_delblock(&md->bl);
if(mob_get_viewclass(md->class) <= 1000) if(mob_get_viewclass(md->class_) <= 1000)
clif_clearchar_delay(tick+3000,&md->bl,0); clif_clearchar_delay(tick+3000,&md->bl,0);
mob_deleteslave(md); mob_deleteslave(md);
mob_setdelayspawn(md->bl.id); mob_setdelayspawn(md->bl.id);
@ -2683,7 +2683,7 @@ int mob_class_change(struct mob_data *md,int *value)
max_hp = battle_get_max_hp(&md->bl); max_hp = battle_get_max_hp(&md->bl);
hp_rate = md->hp*100/max_hp; hp_rate = md->hp*100/max_hp;
clif_mob_class_change(md,class); clif_mob_class_change(md,class);
md->class = class; md->class_ = class;
max_hp = battle_get_max_hp(&md->bl); max_hp = battle_get_max_hp(&md->bl);
if(battle_config.monster_class_change_full_recover==1) { if(battle_config.monster_class_change_full_recover==1) {
md->hp = max_hp; md->hp = max_hp;
@ -2700,8 +2700,8 @@ int mob_class_change(struct mob_data *md,int *value)
md->target_id = 0; md->target_id = 0;
md->move_fail_count = 0; md->move_fail_count = 0;
md->speed = mob_db[md->class].speed; md->speed = mob_db[md->class_].speed;
md->def_ele = mob_db[md->class].element; md->def_ele = mob_db[md->class_].element;
mob_changestate(md,MS_IDLE,0); mob_changestate(md,MS_IDLE,0);
skill_castcancel(&md->bl,0); skill_castcancel(&md->bl,0);
@ -2742,7 +2742,7 @@ int mob_heal(struct mob_data *md,int heal)
if( max_hp < md->hp ) if( max_hp < md->hp )
md->hp = max_hp; md->hp = max_hp;
if(md->class >= 1285 && md->class <=1287) { // guardian hp update [Valaris] if(md->class_ >= 1285 && md->class_ <=1287) { // guardian hp update [Valaris]
struct guild_castle *gc=guild_mapname2gc(map[md->bl.m].name); struct guild_castle *gc=guild_mapname2gc(map[md->bl.m].name);
if(gc) { if(gc) {
if(md->bl.id==gc->GID0) gc->Ghp0=md->hp; if(md->bl.id==gc->GID0) gc->Ghp0=md->hp;
@ -2835,7 +2835,7 @@ int mob_warp(struct mob_data *md,int m,int x,int y,int type)
}else { }else {
m=md->bl.m; m=md->bl.m;
if(battle_config.error_log==1) if(battle_config.error_log==1)
printf("MOB %d warp failed, class = %d\n",md->bl.id,md->class); printf("MOB %d warp failed, class = %d\n",md->bl.id,md->class_);
} }
md->target_id=0; // タゲを解除する md->target_id=0; // タゲを解除する
@ -2846,7 +2846,7 @@ int mob_warp(struct mob_data *md,int m,int x,int y,int type)
if(type>0 && i==1000) { if(type>0 && i==1000) {
if(battle_config.battle_log) if(battle_config.battle_log)
printf("MOB %d warp to (%d,%d), class = %d\n",md->bl.id,x,y,md->class); printf("MOB %d warp to (%d,%d), class = %d\n",md->bl.id,x,y,md->class_);
} }
map_addblock(&md->bl); map_addblock(&md->bl);
@ -3107,7 +3107,7 @@ int mobskill_castend_id( int tid, unsigned int tick, int id,int data )
md->skilldelay[md->skillidx]=tick; md->skilldelay[md->skillidx]=tick;
if(battle_config.mob_skill_log) if(battle_config.mob_skill_log)
printf("MOB skill castend skill=%d, class = %d\n",md->skillid,md->class); printf("MOB skill castend skill=%d, class = %d\n",md->skillid,md->class_);
// mob_stop_walking(md,0); // mob_stop_walking(md,0);
switch( skill_get_nk(md->skillid) ) switch( skill_get_nk(md->skillid) )
@ -3117,7 +3117,7 @@ int mobskill_castend_id( int tid, unsigned int tick, int id,int data )
skill_castend_damage_id(&md->bl,bl,md->skillid,md->skilllv,tick,0); skill_castend_damage_id(&md->bl,bl,md->skillid,md->skilllv,tick,0);
break; break;
case 1:// 支援系 case 1:// 支援系
if(!mob_db[md->class].skill[md->skillidx].val[0] && if(!mob_db[md->class_].skill[md->skillidx].val[0] &&
(md->skillid==AL_HEAL || (md->skillid==ALL_RESURRECTION && bl->type != BL_PC)) && battle_check_undead(battle_get_race(bl),battle_get_elem_type(bl)) ) (md->skillid==AL_HEAL || (md->skillid==ALL_RESURRECTION && bl->type != BL_PC)) && battle_check_undead(battle_get_race(bl),battle_get_elem_type(bl)) )
skill_castend_damage_id(&md->bl,bl,md->skillid,md->skilllv,tick,0); skill_castend_damage_id(&md->bl,bl,md->skillid,md->skilllv,tick,0);
else else
@ -3238,7 +3238,7 @@ int mobskill_castend_pos( int tid, unsigned int tick, int id,int data )
md->skilldelay[md->skillidx]=tick; md->skilldelay[md->skillidx]=tick;
if(battle_config.mob_skill_log) if(battle_config.mob_skill_log)
printf("MOB skill castend skill=%d, class = %d\n",md->skillid,md->class); printf("MOB skill castend skill=%d, class = %d\n",md->skillid,md->class_);
// mob_stop_walking(md,0); // mob_stop_walking(md,0);
skill_castend_pos2(&md->bl,md->skillx,md->skilly,md->skillid,md->skilllv,tick,0); skill_castend_pos2(&md->bl,md->skillx,md->skilly,md->skillid,md->skilllv,tick,0);
@ -3258,7 +3258,7 @@ int mobskill_use_id(struct mob_data *md,struct block_list *target,int skill_idx)
int skill_id, skill_lv, forcecast = 0; int skill_id, skill_lv, forcecast = 0;
nullpo_retr(0, md); nullpo_retr(0, md);
nullpo_retr(0, ms=&mob_db[md->class].skill[skill_idx]); nullpo_retr(0, ms=&mob_db[md->class_].skill[skill_idx]);
if( target==NULL && (target=map_id2bl(md->target_id))==NULL ) if( target==NULL && (target=map_id2bl(md->target_id))==NULL )
return 0; return 0;
@ -3326,7 +3326,7 @@ int mobskill_use_id(struct mob_data *md,struct block_list *target,int skill_idx)
} }
if(battle_config.mob_skill_log) if(battle_config.mob_skill_log)
printf("MOB skill use target_id=%d skill=%d lv=%d cast=%d, class = %d\n",target->id,skill_id,skill_lv,casttime,md->class); printf("MOB skill use target_id=%d skill=%d lv=%d cast=%d, class = %d\n",target->id,skill_id,skill_lv,casttime,md->class_);
if(casttime>0 || forcecast){ // 詠唱が必要 if(casttime>0 || forcecast){ // 詠唱が必要
// struct mob_data *md2; // struct mob_data *md2;
@ -3335,7 +3335,7 @@ int mobskill_use_id(struct mob_data *md,struct block_list *target,int skill_idx)
md->bl.id, target->id, 0,0, skill_id,casttime); md->bl.id, target->id, 0,0, skill_id,casttime);
// 詠唱反応モンスター // 詠唱反応モンスター
/* if( target->type==BL_MOB && mob_db[(md2=(struct mob_data *)target)->class].mode&0x10 && /* if( target->type==BL_MOB && mob_db[(md2=(struct mob_data *)target)->class_].mode&0x10 &&
md2->state.state!=MS_ATTACK){ md2->state.state!=MS_ATTACK){
md2->target_id=md->bl.id; md2->target_id=md->bl.id;
md->state.targettype = ATTACKABLE; md->state.targettype = ATTACKABLE;
@ -3379,7 +3379,7 @@ int mobskill_use_pos( struct mob_data *md,
int skill_id, skill_lv; int skill_id, skill_lv;
nullpo_retr(0, md); nullpo_retr(0, md);
nullpo_retr(0, ms=&mob_db[md->class].skill[skill_idx]); nullpo_retr(0, ms=&mob_db[md->class_].skill[skill_idx]);
if( md->bl.prev==NULL ) if( md->bl.prev==NULL )
return 0; return 0;
@ -3424,7 +3424,7 @@ int mobskill_use_pos( struct mob_data *md,
if(battle_config.mob_skill_log) if(battle_config.mob_skill_log)
printf("MOB skill use target_pos=(%d,%d) skill=%d lv=%d cast=%d, class = %d\n", printf("MOB skill use target_pos=(%d,%d) skill=%d lv=%d cast=%d, class = %d\n",
skill_x,skill_y,skill_id,skill_lv,casttime,md->class); skill_x,skill_y,skill_id,skill_lv,casttime,md->class_);
if( casttime>0 ) { // A cast time is required. if( casttime>0 ) { // A cast time is required.
mob_stop_walking(md,0); // 歩行停止 mob_stop_walking(md,0); // 歩行停止
@ -3475,7 +3475,7 @@ int mob_getfriendhpltmaxrate_sub(struct block_list *bl,va_list ap)
return 0; return 0;
rate=va_arg(ap,int); rate=va_arg(ap,int);
fr=va_arg(ap,struct mob_data **); fr=va_arg(ap,struct mob_data **);
if( md->hp < mob_db[md->class].max_hp*rate/100 ) if( md->hp < mob_db[md->class_].max_hp*rate/100 )
(*fr)=md; (*fr)=md;
return 0; return 0;
} }
@ -3547,7 +3547,7 @@ int mobskill_use(struct mob_data *md,unsigned int tick,int event)
int i,max_hp; int i,max_hp;
nullpo_retr(0, md); nullpo_retr(0, md);
nullpo_retr(0, ms = mob_db[md->class].skill); nullpo_retr(0, ms = mob_db[md->class_].skill);
max_hp = battle_get_max_hp(&md->bl); max_hp = battle_get_max_hp(&md->bl);
@ -3560,7 +3560,7 @@ int mobskill_use(struct mob_data *md,unsigned int tick,int event)
if(md->sc_data[SC_SELFDESTRUCTION].timer!=-1) //自爆中はスキルを使わない if(md->sc_data[SC_SELFDESTRUCTION].timer!=-1) //自爆中はスキルを使わない
return 0; return 0;
for(i=0;i<mob_db[md->class].maxskill;i++){ for(i=0;i<mob_db[md->class_].maxskill;i++){
int c2=ms[i].cond2,flag=0; int c2=ms[i].cond2,flag=0;
struct mob_data *fmd=NULL; struct mob_data *fmd=NULL;
@ -3697,18 +3697,18 @@ int mob_gvmobcheck(struct map_session_data *sd, struct block_list *bl)
nullpo_retr(0,bl); nullpo_retr(0,bl);
if(bl->type==BL_MOB && (md=(struct mob_data *)bl) && if(bl->type==BL_MOB && (md=(struct mob_data *)bl) &&
(md->class == 1288 || md->class == 1287 || md->class == 1286 || md->class == 1285)) (md->class_ == 1288 || md->class_ == 1287 || md->class_ == 1286 || md->class_ == 1285))
{ {
struct guild_castle *gc=guild_mapname2gc(map[sd->bl.m].name); struct guild_castle *gc=guild_mapname2gc(map[sd->bl.m].name);
struct guild *g=guild_search(sd->status.guild_id); struct guild *g=guild_search(sd->status.guild_id);
if(g == NULL && md->class == 1288) if(g == NULL && md->class_ == 1288)
return 0;//ギルド未加入ならダメージ無し return 0;//ギルド未加入ならダメージ無し
else if(gc != NULL && !map[sd->bl.m].flag.gvg) else if(gc != NULL && !map[sd->bl.m].flag.gvg)
return 0;//砦内でGvじゃないときはダメージなし return 0;//砦内でGvじゃないときはダメージなし
else if(g && gc != NULL && g->guild_id == gc->guild_id) else if(g && gc != NULL && g->guild_id == gc->guild_id)
return 0;//自占領ギルドのエンペならダメージ無し return 0;//自占領ギルドのエンペならダメージ無し
else if(g && guild_checkskill(g,GD_APPROVAL) <= 0 && md->class == 1288) else if(g && guild_checkskill(g,GD_APPROVAL) <= 0 && md->class_ == 1288)
return 0;//正規ギルド承認がないとダメージ無し return 0;//正規ギルド承認がないとダメージ無し
} }

View File

@ -853,7 +853,7 @@ int npc_checknear(struct map_session_data *sd,int id)
return 1; return 1;
} }
if (nd->class<0) // イベント系は常にOK if (nd->class_<0) // イベント系は常にOK
return 0; return 0;
// エリア判定 // エリア判定
@ -1022,7 +1022,7 @@ int npc_buylist(struct map_session_data *sd,int n,unsigned short *item_list)
} }
//商人経験値 //商人経験値
/* if ((sd->status.class == 5) || (sd->status.class == 10) || (sd->status.class == 18)) { /* if ((sd->status.class_ == 5) || (sd->status.class_ == 10) || (sd->status.class_ == 18)) {
z = z * pc_checkskill(sd,MC_DISCOUNT) / ((1 + 300 / itemamount) * 4000) * battle_config.shop_exp; z = z * pc_checkskill(sd,MC_DISCOUNT) / ((1 + 300 / itemamount) * 4000) * battle_config.shop_exp;
pc_gainexp(sd,0,z); pc_gainexp(sd,0,z);
}*/ }*/
@ -1082,7 +1082,7 @@ int npc_selllist(struct map_session_data *sd,int n,unsigned short *item_list)
} }
//商人経験値 //商人経験値
/* if ((sd->status.class == 5) || (sd->status.class == 10) || (sd->status.class == 18)) { /* if ((sd->status.class_ == 5) || (sd->status.class_ == 10) || (sd->status.class_ == 18)) {
z = z * pc_checkskill(sd,MC_OVERCHARGE) / ((1 + 500 / itemamount) * 4000) * battle_config.shop_exp ; z = z * pc_checkskill(sd,MC_OVERCHARGE) / ((1 + 500 / itemamount) * 4000) * battle_config.shop_exp ;
pc_gainexp(sd,0,z); pc_gainexp(sd,0,z);
}*/ }*/
@ -1449,9 +1449,9 @@ int npc_parse_warp(char *w1,char *w2,char *w3,char *w4)
nd->chat_id=0; nd->chat_id=0;
if (!battle_config.warp_point_debug) if (!battle_config.warp_point_debug)
nd->class=WARP_CLASS; nd->class_=WARP_CLASS;
else else
nd->class=WARP_DEBUG_CLASS; nd->class_=WARP_DEBUG_CLASS;
nd->speed=200; nd->speed=200;
nd->option = 0; nd->option = 0;
nd->opt1 = 0; nd->opt1 = 0;
@ -1535,7 +1535,7 @@ static int npc_parse_shop(char *w1,char *w2,char *w3,char *w4)
nd->dir = dir; nd->dir = dir;
nd->flag = 0; nd->flag = 0;
memcpy(nd->name, w3, 24); memcpy(nd->name, w3, 24);
nd->class = atoi(w4); nd->class_ = atoi(w4);
nd->speed = 200; nd->speed = 200;
nd->chat_id = 0; nd->chat_id = 0;
nd->option = 0; nd->option = 0;
@ -1732,7 +1732,7 @@ static int npc_parse_script(char *w1,char *w2,char *w3,char *w4,char *first_line
nd->bl.id=npc_get_new_npc_id(); nd->bl.id=npc_get_new_npc_id();
nd->dir = dir; nd->dir = dir;
nd->flag=0; nd->flag=0;
nd->class=class; nd->class_=class;
nd->speed=200; nd->speed=200;
nd->u.scr.script=script; nd->u.scr.script=script;
nd->u.scr.src_id=src_id; nd->u.scr.src_id=src_id;
@ -1743,7 +1743,7 @@ static int npc_parse_script(char *w1,char *w2,char *w3,char *w4,char *first_line
nd->opt3 = 0; nd->opt3 = 0;
nd->walktimer=-1; nd->walktimer=-1;
//printf("script npc %s %d %d read done\n",mapname,nd->bl.id,nd->class); //printf("script npc %s %d %d read done\n",mapname,nd->bl.id,nd->class_);
npc_script++; npc_script++;
nd->bl.type=BL_NPC; nd->bl.type=BL_NPC;
nd->bl.subtype=SCRIPT; nd->bl.subtype=SCRIPT;
@ -1965,7 +1965,7 @@ int npc_parse_mob(char *w1,char *w2,char *w3,char *w4)
memcpy(md->name,w3,24); memcpy(md->name,w3,24);
md->n = i; md->n = i;
md->base_class = md->class = class; md->base_class = md->class_ = class;
md->bl.id=npc_get_new_npc_id(); md->bl.id=npc_get_new_npc_id();
md->m =m; md->m =m;
md->x0=x; md->x0=x;

View File

@ -269,7 +269,7 @@ int pc_setrestartvalue(struct map_session_data *sd,int type) {
nullpo_retr(0, sd); nullpo_retr(0, sd);
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
//----------------------- //-----------------------
// 死亡した // 死亡した
@ -308,7 +308,7 @@ int pc_setrestartvalue(struct map_session_data *sd,int type) {
/* removed exp penalty on spawn [Valaris] */ /* removed exp penalty on spawn [Valaris] */
if(type&2 && sd->status.class != 0 && battle_config.zeny_penalty > 0 && !map[sd->bl.m].flag.nozenypenalty) { if(type&2 && sd->status.class_ != 0 && battle_config.zeny_penalty > 0 && !map[sd->bl.m].flag.nozenypenalty) {
int zeny = (int)((double)sd->status.zeny * (double)battle_config.zeny_penalty / 10000.); int zeny = (int)((double)sd->status.zeny * (double)battle_config.zeny_penalty / 10000.);
if(zeny < 1) zeny = 1; if(zeny < 1) zeny = 1;
sd->status.zeny -= zeny; sd->status.zeny -= zeny;
@ -447,7 +447,7 @@ int pc_equippoint(struct map_session_data *sd,int n)
nullpo_retr(0, sd); nullpo_retr(0, sd);
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
if(sd->inventory_data[n]) { if(sd->inventory_data[n]) {
ep = sd->inventory_data[n]->equip; ep = sd->inventory_data[n]->equip;
@ -569,14 +569,14 @@ int pc_isequip(struct map_session_data *sd,int n)
// as it allows all advanced classes to equip items their normal versions // as it allows all advanced classes to equip items their normal versions
// could equip) // could equip)
// //
if(((sd->status.class==13 || sd->status.class==4014) && ((1<<7)&item->class) == 0) || // have mounted classes use unmounted equipment [Valaris] if(((sd->status.class_==13 || sd->status.class_==4014) && ((1<<7)&item->class_) == 0) || // have mounted classes use unmounted equipment [Valaris]
((sd->status.class==21 || sd->status.class==4022) && ((1<<14)&item->class) == 0)) ((sd->status.class_==21 || sd->status.class_==4022) && ((1<<14)&item->class_) == 0))
return 0; return 0;
if(sd->status.class!=13 && sd->status.class!=4014 && sd->status.class!=21 && sd->status.class!=4022) if(sd->status.class_!=13 && sd->status.class_!=4014 && sd->status.class_!=21 && sd->status.class_!=4022)
if((sd->status.class<=4000 && ((1<<sd->status.class)&item->class) == 0) || (sd->status.class>4000 && sd->status.class<4023 && ((1<<(sd->status.class-4001))&item->class) == 0) || if((sd->status.class_<=4000 && ((1<<sd->status.class_)&item->class_) == 0) || (sd->status.class_>4000 && sd->status.class_<4023 && ((1<<(sd->status.class_-4001))&item->class_) == 0) ||
(sd->status.class>=4023 && ((1<<(sd->status.class-4023))&item->class) == 0)) (sd->status.class_>=4023 && ((1<<(sd->status.class_-4023))&item->class_) == 0))
return 0; return 0;
// if(((1<<sd->status.class)&item->class) == 0) // if(((1<<sd->status.class_)&item->class_) == 0)
// return 0; // return 0;
if(map[sd->bl.m].flag.pvp && (item->flag.no_equip==1 || item->flag.no_equip==3)) if(map[sd->bl.m].flag.pvp && (item->flag.no_equip==1 || item->flag.no_equip==3))
return 0; return 0;
@ -735,7 +735,7 @@ int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_chars
sd->bl.prev = sd->bl.next = NULL; sd->bl.prev = sd->bl.next = NULL;
sd->weapontype1 = sd->weapontype2 = 0; sd->weapontype1 = sd->weapontype2 = 0;
sd->view_class = sd->status.class; sd->view_class = sd->status.class_;
sd->speed = DEFAULT_WALK_SPEED; sd->speed = DEFAULT_WALK_SPEED;
sd->state.dead_sit = 0; sd->state.dead_sit = 0;
sd->dir = 0; sd->dir = 0;
@ -984,7 +984,7 @@ int pc_calc_skilltree(struct map_session_data *sd)
nullpo_retr(0, sd); nullpo_retr(0, sd);
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
c = s_class.job; c = s_class.job;
//s = (s_class.upper==1) ? 1 : 0 ; //?生以外は通常のスキル? //s = (s_class.upper==1) ? 1 : 0 ; //?生以外は通常のスキル?
s = s_class.upper; s = s_class.upper;
@ -1193,7 +1193,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
nullpo_retr(0, sd); nullpo_retr(0, sd);
//?生や養子の場合の元の職業を算出する //?生や養子の場合の元の職業を算出する
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
b_speed = sd->speed; b_speed = sd->speed;
b_max_hp = sd->status.max_hp; b_max_hp = sd->status.max_hp;
@ -1220,7 +1220,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
b_mdef = sd->mdef; b_mdef = sd->mdef;
b_mdef2 = sd->mdef2; b_mdef2 = sd->mdef2;
b_class = sd->view_class; b_class = sd->view_class;
sd->view_class = sd->status.class; sd->view_class = sd->status.class_;
b_base_atk = sd->base_atk; b_base_atk = sd->base_atk;
pc_calc_skilltree(sd); // スキルツリ?の計算 pc_calc_skilltree(sd); // スキルツリ?の計算
@ -1847,12 +1847,12 @@ int pc_calcstatus(struct map_session_data* sd,int first)
//Flee上昇 //Flee上昇
if( (skill=pc_checkskill(sd,TF_MISS))>0 ){ // 回避率?加 if( (skill=pc_checkskill(sd,TF_MISS))>0 ){ // 回避率?加
if(sd->status.class==6||sd->status.class==4007 || sd->status.class==23){ if(sd->status.class_==6||sd->status.class_==4007 || sd->status.class_==23){
sd->flee += skill*3; sd->flee += skill*3;
} }
if(sd->status.class==12||sd->status.class==17||sd->status.class==4013||sd->status.class==4018) if(sd->status.class_==12||sd->status.class_==17||sd->status.class_==4013||sd->status.class_==4018)
sd->flee += skill*4; sd->flee += skill*4;
if(sd->status.class==12||sd->status.class==4013) if(sd->status.class_==12||sd->status.class_==4013)
sd->speed -= sd->speed *(skill*1.5)/100; sd->speed -= sd->speed *(skill*1.5)/100;
} }
if( (skill=pc_checkskill(sd,MO_DODGE))>0 ) // 見切り if( (skill=pc_checkskill(sd,MO_DODGE))>0 ) // 見切り
@ -2211,7 +2211,7 @@ int pc_calcspeed (struct map_session_data *sd)
nullpo_retr(0, sd); nullpo_retr(0, sd);
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
b_speed = sd->speed; b_speed = sd->speed;
sd->speed = DEFAULT_WALK_SPEED ; sd->speed = DEFAULT_WALK_SPEED ;
@ -3371,12 +3371,12 @@ int pc_isUseitem(struct map_session_data *sd,int n)
return 0; return 0;
if(item->elv > 0 && sd->status.base_level < item->elv) if(item->elv > 0 && sd->status.base_level < item->elv)
return 0; return 0;
if(((sd->status.class==13 || sd->status.class==4014) && ((1<<7)&item->class) == 0) || // have mounted classes use unmounted items [Valaris] if(((sd->status.class_==13 || sd->status.class_==4014) && ((1<<7)&item->class_) == 0) || // have mounted classes use unmounted items [Valaris]
((sd->status.class==21 || sd->status.class==4022) && ((1<<14)&item->class) == 0)) ((sd->status.class_==21 || sd->status.class_==4022) && ((1<<14)&item->class_) == 0))
return 0; return 0;
if(sd->status.class!=13 && sd->status.class!=4014 && sd->status.class!=21 && sd->status.class!=4022) if(sd->status.class_!=13 && sd->status.class_!=4014 && sd->status.class_!=21 && sd->status.class_!=4022)
if((sd->status.class<=4000 && ((1<<sd->status.class)&item->class) == 0) || (sd->status.class>4000 && sd->status.class<4023 && ((1<<(sd->status.class-4001))&item->class) == 0) || if((sd->status.class_<=4000 && ((1<<sd->status.class_)&item->class_) == 0) || (sd->status.class_>4000 && sd->status.class_<4023 && ((1<<(sd->status.class_-4001))&item->class_) == 0) ||
(sd->status.class>=4023 && ((1<<(sd->status.class-4023))&item->class) == 0)) (sd->status.class_>=4023 && ((1<<(sd->status.class_-4023))&item->class_) == 0))
return 0; return 0;
#ifndef TXT_ONLY #ifndef TXT_ONLY
@ -3730,25 +3730,25 @@ int pc_steal_item(struct map_session_data *sd,struct block_list *bl)
int i,skill,rate,itemid,flag, count; int i,skill,rate,itemid,flag, count;
struct mob_data *md; struct mob_data *md;
md=(struct mob_data *)bl; md=(struct mob_data *)bl;
if(!md->state.steal_flag && mob_db[md->class].mexp <= 0 && !(mob_db[md->class].mode&0x20) && if(!md->state.steal_flag && mob_db[md->class_].mexp <= 0 && !(mob_db[md->class_].mode&0x20) &&
(!(md->class>1324 && md->class<1364))) // prevent stealing from treasure boxes [Valaris] (!(md->class_>1324 && md->class_<1364))) // prevent stealing from treasure boxes [Valaris]
{ {
if (md->sc_data && (md->sc_data[SC_STONE].timer != -1 || md->sc_data[SC_FREEZE].timer != -1)) if (md->sc_data && (md->sc_data[SC_STONE].timer != -1 || md->sc_data[SC_FREEZE].timer != -1))
return 0; return 0;
skill = battle_config.skill_steal_type == 1 skill = battle_config.skill_steal_type == 1
? (sd->paramc[4] - mob_db[md->class].dex)/2 + pc_checkskill(sd,TF_STEAL)*6 + 10 ? (sd->paramc[4] - mob_db[md->class_].dex)/2 + pc_checkskill(sd,TF_STEAL)*6 + 10
: sd->paramc[4] - mob_db[md->class].dex + pc_checkskill(sd,TF_STEAL)*3 + 10; : sd->paramc[4] - mob_db[md->class_].dex + pc_checkskill(sd,TF_STEAL)*3 + 10;
if(0 < skill) if(0 < skill)
{ {
for(count = 8; count <= 8 && count != 0; count--) for(count = 8; count <= 8 && count != 0; count--)
{ {
i = rand()%8; i = rand()%8;
itemid = mob_db[md->class].dropitem[i].nameid; itemid = mob_db[md->class_].dropitem[i].nameid;
if(itemid > 0 && itemdb_type(itemid) != 6) if(itemid > 0 && itemdb_type(itemid) != 6)
{ {
rate = (mob_db[md->class].dropitem[i].p / battle_config.item_rate_common * 100 * skill)/100; rate = (mob_db[md->class_].dropitem[i].p / battle_config.item_rate_common * 100 * skill)/100;
if(rand()%10000 < rate) if(rand()%10000 < rate)
{ {
@ -3796,9 +3796,9 @@ int pc_steal_coin(struct map_session_data *sd,struct block_list *bl)
if (md->sc_data && (md->sc_data[SC_STONE].timer != -1 || md->sc_data[SC_FREEZE].timer != -1)) if (md->sc_data && (md->sc_data[SC_STONE].timer != -1 || md->sc_data[SC_FREEZE].timer != -1))
return 0; return 0;
skill = pc_checkskill(sd,RG_STEALCOIN)*10; skill = pc_checkskill(sd,RG_STEALCOIN)*10;
rate = skill + (sd->status.base_level - mob_db[md->class].lv)*3 + sd->paramc[4]*2 + sd->paramc[5]*2; rate = skill + (sd->status.base_level - mob_db[md->class_].lv)*3 + sd->paramc[4]*2 + sd->paramc[5]*2;
if(rand()%1000 < rate) { if(rand()%1000 < rate) {
pc_getzeny(sd,mob_db[md->class].lv*10 + rand()%100); pc_getzeny(sd,mob_db[md->class_].lv*10 + rand()%100);
md->state.steal_coin_flag = 1; md->state.steal_coin_flag = 1;
return 1; return 1;
} }
@ -4859,7 +4859,7 @@ int pc_checkbaselevelup(struct map_session_data *sd)
nullpo_retr(0, sd); nullpo_retr(0, sd);
if(sd->status.base_exp >= next && next > 0){ if(sd->status.base_exp >= next && next > 0){
struct pc_base_job s_class = pc_calc_base_job(sd->status.class); struct pc_base_job s_class = pc_calc_base_job(sd->status.class_);
// base側レベルアップ?理 // base側レベルアップ?理
sd->status.base_exp -= next; sd->status.base_exp -= next;
@ -4989,12 +4989,12 @@ int pc_nextbaseexp(struct map_session_data *sd)
if(sd->status.base_level>=MAX_LEVEL || sd->status.base_level<=0) if(sd->status.base_level>=MAX_LEVEL || sd->status.base_level<=0)
return 0; return 0;
if(sd->status.class==0) i=0; if(sd->status.class_==0) i=0;
else if(sd->status.class<=6) i=1; else if(sd->status.class_<=6) i=1;
else if(sd->status.class<=22) i=2; else if(sd->status.class_<=22) i=2;
else if(sd->status.class==23) i=3; else if(sd->status.class_==23) i=3;
else if(sd->status.class==4001) i=4; else if(sd->status.class_==4001) i=4;
else if(sd->status.class<=4007) i=5; else if(sd->status.class_<=4007) i=5;
else i=6; else i=6;
return exp_table[i][sd->status.base_level-1]; return exp_table[i][sd->status.base_level-1];
@ -5013,12 +5013,12 @@ int pc_nextjobexp(struct map_session_data *sd)
if(sd->status.job_level>=MAX_LEVEL || sd->status.job_level<=0) if(sd->status.job_level>=MAX_LEVEL || sd->status.job_level<=0)
return 0; return 0;
if(sd->status.class==0) i=7; if(sd->status.class_==0) i=7;
else if(sd->status.class<=6) i=8; else if(sd->status.class_<=6) i=8;
else if(sd->status.class<=22) i=9; else if(sd->status.class_<=22) i=9;
else if(sd->status.class==23) i=10; else if(sd->status.class_==23) i=10;
else if(sd->status.class==4001) i=11; else if(sd->status.class_==4001) i=11;
else if(sd->status.class<=4007) i=12; else if(sd->status.class_<=4007) i=12;
else i=13; else i=13;
return exp_table[i][sd->status.job_level-1]; return exp_table[i][sd->status.job_level-1];
@ -5037,12 +5037,12 @@ int pc_nextbaseafter(struct map_session_data *sd)
if(sd->status.base_level>=MAX_LEVEL || sd->status.base_level<=0) if(sd->status.base_level>=MAX_LEVEL || sd->status.base_level<=0)
return 0; return 0;
if(sd->status.class==0) i=0; if(sd->status.class_==0) i=0;
else if(sd->status.class<=6) i=1; else if(sd->status.class_<=6) i=1;
else if(sd->status.class<=22) i=2; else if(sd->status.class_<=22) i=2;
else if(sd->status.class==23) i=3; else if(sd->status.class_==23) i=3;
else if(sd->status.class==4001) i=4; else if(sd->status.class_==4001) i=4;
else if(sd->status.class<=4007) i=5; else if(sd->status.class_<=4007) i=5;
else i=6; else i=6;
return exp_table[i][sd->status.base_level]; return exp_table[i][sd->status.base_level];
@ -5061,12 +5061,12 @@ int pc_nextjobafter(struct map_session_data *sd)
if(sd->status.job_level>=MAX_LEVEL || sd->status.job_level<=0) if(sd->status.job_level>=MAX_LEVEL || sd->status.job_level<=0)
return 0; return 0;
if(sd->status.class==0) i=7; if(sd->status.class_==0) i=7;
else if(sd->status.class<=6) i=8; else if(sd->status.class_<=6) i=8;
else if(sd->status.class<=22) i=9; else if(sd->status.class_<=22) i=9;
else if(sd->status.class==23) i=10; else if(sd->status.class_==23) i=10;
else if(sd->status.class==4001) i=11; else if(sd->status.class_==4001) i=11;
else if(sd->status.class<=4007) i=12; else if(sd->status.class_<=4007) i=12;
else i=13; else i=13;
return exp_table[i][sd->status.job_level]; return exp_table[i][sd->status.job_level];
@ -5104,7 +5104,7 @@ int pc_statusup(struct map_session_data *sd,int type)
nullpo_retr(0, sd); nullpo_retr(0, sd);
max = (pc_calc_upper(sd->status.class)==2) ? 80 : battle_config.max_parameter; max = (pc_calc_upper(sd->status.class_)==2) ? 80 : battle_config.max_parameter;
need=pc_need_status_point(sd,type); need=pc_need_status_point(sd,type);
if(type<SP_STR || type>SP_LUK || need<0 || need>sd->status.status_point){ if(type<SP_STR || type>SP_LUK || need<0 || need>sd->status.status_point){
@ -5259,7 +5259,7 @@ int pc_skillup(struct map_session_data *sd,int skill_num)
if( sd->status.skill_point>0 && if( sd->status.skill_point>0 &&
sd->status.skill[skill_num].id!=0 && sd->status.skill[skill_num].id!=0 &&
//sd->status.skill[skill_num].lv < skill_get_max(skill_num) ) - celest //sd->status.skill[skill_num].lv < skill_get_max(skill_num) ) - celest
sd->status.skill[skill_num].lv < skill_tree_get_max(skill_num, sd->status.class) ) sd->status.skill[skill_num].lv < skill_tree_get_max(skill_num, sd->status.class_) )
{ {
sd->status.skill[skill_num].lv++; sd->status.skill[skill_num].lv++;
sd->status.skill_point--; sd->status.skill_point--;
@ -5285,7 +5285,7 @@ int pc_allskillup(struct map_session_data *sd)
nullpo_retr(0, sd); nullpo_retr(0, sd);
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
c = s_class.job; c = s_class.job;
s = (s_class.upper==1) ? 1 : 0 ; //?生以外は通常のスキル? s = (s_class.upper==1) ? 1 : 0 ; //?生以外は通常のスキル?
@ -5313,7 +5313,7 @@ int pc_allskillup(struct map_session_data *sd)
if(sd->status.skill[id].id==0 && (!(skill_get_inf2(id)&0x01) || battle_config.quest_skill_learn) ) { if(sd->status.skill[id].id==0 && (!(skill_get_inf2(id)&0x01) || battle_config.quest_skill_learn) ) {
sd->status.skill[id].id = id; // celest sd->status.skill[id].id = id; // celest
// sd->status.skill[id].lv=skill_get_max(id); // sd->status.skill[id].lv=skill_get_max(id);
sd->status.skill[id].lv = skill_tree_get_max(id, sd->status.class); // celest sd->status.skill[id].lv = skill_tree_get_max(id, sd->status.class_); // celest
} }
} }
} }
@ -5351,7 +5351,7 @@ int pc_resetlvl(struct map_session_data* sd,int type)
sd->status.int_=1; sd->status.int_=1;
sd->status.dex=1; sd->status.dex=1;
sd->status.luk=1; sd->status.luk=1;
if(sd->status.class == 4001) if(sd->status.class_ == 4001)
sd->status.status_point=88; sd->status.status_point=88;
} }
@ -5416,7 +5416,7 @@ int pc_resetstate(struct map_session_data* sd)
// New statpoint table used here - Dexity // New statpoint table used here - Dexity
sd->status.status_point = atoi (statp[sd->status.base_level - 1]); sd->status.status_point = atoi (statp[sd->status.base_level - 1]);
if(sd->status.class >= 4001 && sd->status.class <= 4024) if(sd->status.class_ >= 4001 && sd->status.class_ <= 4024)
sd->status.status_point+=40; sd->status.status_point+=40;
// End addition // End addition
@ -5504,7 +5504,7 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
nullpo_retr(0, sd); nullpo_retr(0, sd);
//?生や養子の場合の元の職業を算出する //?生や養子の場合の元の職業を算出する
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
// ?に死んでいたら無? // ?に死んでいたら無?
if(pc_isdead(sd)) if(pc_isdead(sd))
return 0; return 0;
@ -5612,7 +5612,7 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
} }
if(battle_config.death_penalty_type>0) { // changed penalty options, added death by player if pk_mode [Valaris] if(battle_config.death_penalty_type>0) { // changed penalty options, added death by player if pk_mode [Valaris]
if(sd->status.class != 0 && !map[sd->bl.m].flag.nopenalty && !map[sd->bl.m].flag.gvg){ // only novices will recieve no penalty if(sd->status.class_ != 0 && !map[sd->bl.m].flag.nopenalty && !map[sd->bl.m].flag.gvg){ // only novices will recieve no penalty
if(battle_config.death_penalty_type==1 && battle_config.death_penalty_base > 0) if(battle_config.death_penalty_type==1 && battle_config.death_penalty_base > 0)
sd->status.base_exp -= (double)pc_nextbaseexp(sd) * (double)battle_config.death_penalty_base/10000; sd->status.base_exp -= (double)pc_nextbaseexp(sd) * (double)battle_config.death_penalty_base/10000;
if(battle_config.pk_mode && src && src->type==BL_PC) if(battle_config.pk_mode && src && src->type==BL_PC)
@ -5748,7 +5748,7 @@ int pc_readparam(struct map_session_data *sd,int type)
int val=0; int val=0;
struct pc_base_job s_class; struct pc_base_job s_class;
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
nullpo_retr(0, sd); nullpo_retr(0, sd);
@ -5772,7 +5772,7 @@ int pc_readparam(struct map_session_data *sd,int type)
if(val>=24 && val < 45) if(val>=24 && val < 45)
val+=3978; val+=3978;
else else
val= sd->status.class; val= sd->status.class_;
break; break;
case SP_BASEJOB: case SP_BASEJOB:
val= s_class.job; val= s_class.job;
@ -5850,7 +5850,7 @@ int pc_setparam(struct map_session_data *sd,int type,int val)
nullpo_retr(0, sd); nullpo_retr(0, sd);
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
switch(type){ switch(type){
case SP_BASELEVEL: case SP_BASELEVEL:
@ -5873,7 +5873,7 @@ int pc_setparam(struct map_session_data *sd,int type,int val)
// super novices can go up to 99 [celest] // super novices can go up to 99 [celest]
else if (s_class.job == 23) else if (s_class.job == 23)
up_level += 49; up_level += 49;
else if (sd->status.class >= 4008 && sd->status.class <= 4022) else if (sd->status.class_ >= 4008 && sd->status.class_ <= 4022)
up_level += 20; up_level += 20;
if (val >= sd->status.job_level) { if (val >= sd->status.job_level) {
if (val > up_level)val = up_level; if (val > up_level)val = up_level;
@ -6160,7 +6160,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
int i; int i;
int b_class = 0; int b_class = 0;
//?生や養子の場合の元の職業を算出する //?生や養子の場合の元の職業を算出する
struct pc_base_job s_class = pc_calc_base_job(sd->status.class); struct pc_base_job s_class = pc_calc_base_job(sd->status.class_);
nullpo_retr(0, sd); nullpo_retr(0, sd);
@ -6188,7 +6188,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
if((sd->status.sex == 0 && job == 19) || (sd->status.sex == 1 && job == 20) || if((sd->status.sex == 0 && job == 19) || (sd->status.sex == 1 && job == 20) ||
// not needed [celest] // not needed [celest]
//(sd->status.sex == 0 && job == 4020) || (sd->status.sex == 1 && job == 4021) || //(sd->status.sex == 0 && job == 4020) || (sd->status.sex == 1 && job == 4021) ||
job == 22 || sd->status.class == b_class) //♀はバ?ドになれない、♂はダンサ?になれない、結婚衣裳もお?り job == 22 || sd->status.class_ == b_class) //♀はバ?ドになれない、♂はダンサ?になれない、結婚衣裳もお?り
return 1; return 1;
// check if we are changing from 1st to 2nd job // check if we are changing from 1st to 2nd job
@ -6203,7 +6203,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
pc_setglobalreg (sd, "jobchange_level", sd->change_level); pc_setglobalreg (sd, "jobchange_level", sd->change_level);
sd->status.class = sd->view_class = b_class; sd->status.class_ = sd->view_class = b_class;
sd->status.job_level=1; sd->status.job_level=1;
sd->status.job_exp=0; sd->status.job_exp=0;
@ -6369,17 +6369,17 @@ int pc_setriding(struct map_session_data *sd)
if((pc_checkskill(sd,KN_RIDING)>0)){ // ライディングスキル所持 if((pc_checkskill(sd,KN_RIDING)>0)){ // ライディングスキル所持
pc_setoption(sd,sd->status.option|0x0020); pc_setoption(sd,sd->status.option|0x0020);
if(sd->status.class==7) if(sd->status.class_==7)
sd->status.class=sd->view_class=13; sd->status.class_=sd->view_class=13;
if(sd->status.class==14) if(sd->status.class_==14)
sd->status.class=sd->view_class=21; sd->status.class_=sd->view_class=21;
if(sd->status.class==4008) if(sd->status.class_==4008)
sd->status.class=sd->view_class=4014; sd->status.class_=sd->view_class=4014;
if(sd->status.class==4015) if(sd->status.class_==4015)
sd->status.class=sd->view_class=4022; sd->status.class_=sd->view_class=4022;
} }
return 0; return 0;
@ -6857,7 +6857,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int pos)
// 二刀流?理 // 二刀流?理
if ((pos==0x22) // 一?、?備要求箇所が二刀流武器かチェックする if ((pos==0x22) // 一?、?備要求箇所が二刀流武器かチェックする
&& (id->equip==2) // ? 手武器 && (id->equip==2) // ? 手武器
&& (pc_checkskill(sd, AS_LEFT) > 0 || pc_calc_base_job2(sd->status.class) == 12) ) // 左手修?有 && (pc_checkskill(sd, AS_LEFT) > 0 || pc_calc_base_job2(sd->status.class_) == 12) ) // 左手修?有
{ {
int tpos=0; int tpos=0;
if(sd->equip_index[8] >= 0) if(sd->equip_index[8] >= 0)
@ -7234,7 +7234,7 @@ int pc_ismarried(struct map_session_data *sd)
*/ */
int pc_marriage(struct map_session_data *sd,struct map_session_data *dstsd) int pc_marriage(struct map_session_data *sd,struct map_session_data *dstsd)
{ {
if(sd == NULL || dstsd == NULL || sd->status.partner_id > 0 || dstsd->status.partner_id > 0 || pc_calc_upper(sd->status.class)==2) if(sd == NULL || dstsd == NULL || sd->status.partner_id > 0 || dstsd->status.partner_id > 0 || pc_calc_upper(sd->status.class_)==2)
return -1; return -1;
sd->status.partner_id=dstsd->status.char_id; sd->status.partner_id=dstsd->status.char_id;
dstsd->status.partner_id=sd->status.char_id; dstsd->status.partner_id=sd->status.char_id;
@ -7503,7 +7503,7 @@ static int pc_natural_heal_sp(struct map_session_data *sd)
if(sd->nshealsp > 0) { if(sd->nshealsp > 0) {
if(sd->inchealsptick >= battle_config.natural_heal_skill_interval && sd->status.sp < sd->status.max_sp) { if(sd->inchealsptick >= battle_config.natural_heal_skill_interval && sd->status.sp < sd->status.max_sp) {
struct pc_base_job s_class = pc_calc_base_job(sd->status.class); struct pc_base_job s_class = pc_calc_base_job(sd->status.class_);
if(sd->doridori_counter && s_class.job == 23) if(sd->doridori_counter && s_class.job == 23)
bonus = sd->nshealsp*2; bonus = sd->nshealsp*2;
else else

View File

@ -183,14 +183,14 @@ static int pet_attack(struct pet_data *pd,unsigned int tick,int data)
return 0; return 0;
} }
mode=mob_db[pd->class].mode; mode=mob_db[pd->class_].mode;
race=mob_db[pd->class].race; race=mob_db[pd->class_].race;
if(mob_db[pd->class].mexp <= 0 && !(mode&0x20) && (md->option & 0x06 && race != 4 && race != 6) ) { if(mob_db[pd->class_].mexp <= 0 && !(mode&0x20) && (md->option & 0x06 && race != 4 && race != 6) ) {
pd->target_id=0; pd->target_id=0;
return 0; return 0;
} }
range = mob_db[pd->class].range + 1; range = mob_db[pd->class_].range + 1;
if(distance(pd->bl.x,pd->bl.y,md->bl.x,md->bl.y) > range) if(distance(pd->bl.x,pd->bl.y,md->bl.x,md->bl.y) > range)
return 0; return 0;
if(battle_config.monster_attack_direction_change) if(battle_config.monster_attack_direction_change)
@ -308,15 +308,15 @@ int pet_target_check(struct map_session_data *sd,struct block_list *bl,int type)
Assert((pd->msd == 0) || (pd->msd->pd == pd)); Assert((pd->msd == 0) || (pd->msd->pd == pd));
if(bl && pd && bl->type == BL_MOB && sd->pet.intimate > 900 && sd->pet.hungry > 0 && pd->class != battle_get_class(bl) if(bl && pd && bl->type == BL_MOB && sd->pet.intimate > 900 && sd->pet.hungry > 0 && pd->class_ != battle_get_class(bl)
&& pd->state.state != MS_DELAY) { && pd->state.state != MS_DELAY) {
mode=mob_db[pd->class].mode; mode=mob_db[pd->class_].mode;
race=mob_db[pd->class].race; race=mob_db[pd->class_].race;
md=(struct mob_data *)bl; md=(struct mob_data *)bl;
if(md->bl.type != BL_MOB || pd->bl.m != md->bl.m || md->bl.prev == NULL || if(md->bl.type != BL_MOB || pd->bl.m != md->bl.m || md->bl.prev == NULL ||
distance(pd->bl.x,pd->bl.y,md->bl.x,md->bl.y) > 13) distance(pd->bl.x,pd->bl.y,md->bl.x,md->bl.y) > 13)
return 0; return 0;
if(mob_db[pd->class].mexp <= 0 && !(mode&0x20) && (md->option & 0x06 && race!=4 && race!=6) ) if(mob_db[pd->class_].mexp <= 0 && !(mode&0x20) && (md->option & 0x06 && race!=4 && race!=6) )
return 0; return 0;
if(!type) { if(!type) {
rate = sd->petDB->attack_rate; rate = sd->petDB->attack_rate;
@ -541,11 +541,11 @@ int search_petDB_index(int key,int type)
int i; int i;
for(i=0;i<MAX_PET_DB;i++) { for(i=0;i<MAX_PET_DB;i++) {
if(pet_db[i].class <= 0) if(pet_db[i].class_ <= 0)
continue; continue;
switch(type) { switch(type) {
case PET_CLASS: case PET_CLASS:
if(pet_db[i].class == key) if(pet_db[i].class_ == key)
return i; return i;
break; break;
case PET_CATCH: case PET_CATCH:
@ -703,7 +703,7 @@ int pet_data_init(struct map_session_data *sd)
return 1; return 1;
} }
i = search_petDB_index(sd->pet.class,PET_CLASS); i = search_petDB_index(sd->pet.class_,PET_CLASS);
if(i < 0) { if(i < 0) {
sd->status.pet_id = 0; sd->status.pet_id = 0;
return 1; return 1;
@ -720,7 +720,7 @@ int pet_data_init(struct map_session_data *sd)
pd->bl.y = pd->to_y; pd->bl.y = pd->to_y;
pd->bl.id = npc_get_new_npc_id(); pd->bl.id = npc_get_new_npc_id();
memcpy(pd->name,sd->pet.name,24); memcpy(pd->name,sd->pet.name,24);
pd->class = sd->pet.class; pd->class_ = sd->pet.class_;
pd->equip = sd->pet.equip; pd->equip = sd->pet.equip;
pd->dir = sd->dir; pd->dir = sd->dir;
pd->speed = sd->petDB->speed; pd->speed = sd->petDB->speed;
@ -865,17 +865,17 @@ int pet_catch_process2(struct map_session_data *sd,int target_id)
return 1; return 1;
} }
i = search_petDB_index(md->class,PET_CLASS); i = search_petDB_index(md->class_,PET_CLASS);
if(md == NULL || md->bl.type != BL_MOB || md->bl.prev == NULL || i < 0 || sd->catch_target_class != md->class) { if(md == NULL || md->bl.type != BL_MOB || md->bl.prev == NULL || i < 0 || sd->catch_target_class != md->class_) {
clif_pet_rulet(sd,0); clif_pet_rulet(sd,0);
return 1; return 1;
} }
//target_idによる敵→卵判定 //target_idによる敵→卵判定
// if(battle_config.etc_log) // if(battle_config.etc_log)
// printf("mob_id = %d, mob_class = %d\n",md->bl.id,md->class); // printf("mob_id = %d, mob_class = %d\n",md->bl.id,md->class_);
//成功の場合 //成功の場合
pet_catch_rate = (pet_db[i].capture + (sd->status.base_level - mob_db[md->class].lv)*30 + sd->paramc[5]*20)*(200 - md->hp*100/mob_db[md->class].max_hp)/100; pet_catch_rate = (pet_db[i].capture + (sd->status.base_level - mob_db[md->class_].lv)*30 + sd->paramc[5]*20)*(200 - md->hp*100/mob_db[md->class_].max_hp)/100;
if(pet_catch_rate < 1) pet_catch_rate = 1; if(pet_catch_rate < 1) pet_catch_rate = 1;
if(battle_config.pet_catch_rate != 100) if(battle_config.pet_catch_rate != 100)
pet_catch_rate = (pet_catch_rate*battle_config.pet_catch_rate)/100; pet_catch_rate = (pet_catch_rate*battle_config.pet_catch_rate)/100;
@ -885,7 +885,7 @@ int pet_catch_process2(struct map_session_data *sd,int target_id)
clif_pet_rulet(sd,1); clif_pet_rulet(sd,1);
// if(battle_config.etc_log) // if(battle_config.etc_log)
// printf("rulet success %d\n",target_id); // printf("rulet success %d\n",target_id);
intif_create_pet(sd->status.account_id,sd->status.char_id,pet_db[i].class,mob_db[pet_db[i].class].lv, intif_create_pet(sd->status.account_id,sd->status.char_id,pet_db[i].class_,mob_db[pet_db[i].class_].lv,
pet_db[i].EggID,0,pet_db[i].intimate,100,0,1,pet_db[i].jname); pet_db[i].EggID,0,pet_db[i].intimate,100,0,1,pet_db[i].jname);
} }
else else
@ -1111,7 +1111,7 @@ static int pet_randomwalk(struct pet_data *pd,int tick)
pd->move_fail_count++; pd->move_fail_count++;
if(pd->move_fail_count>1000){ if(pd->move_fail_count>1000){
if(battle_config.error_log) if(battle_config.error_log)
printf("PET cant move. hold position %d, class = %d\n",pd->bl.id,pd->class); printf("PET cant move. hold position %d, class = %d\n",pd->bl.id,pd->class_);
pd->move_fail_count=0; pd->move_fail_count=0;
pet_changestate(pd,MS_DELAY,60000); pet_changestate(pd,MS_DELAY,60000);
return 0; return 0;
@ -1184,15 +1184,15 @@ static int pet_ai_sub_hard(struct pet_data *pd,unsigned int tick)
pet_randomwalk(pd,tick); pet_randomwalk(pd,tick);
} }
else if(pd->target_id - MAX_FLOORITEM > 0) { else if(pd->target_id - MAX_FLOORITEM > 0) {
mode=mob_db[pd->class].mode; mode=mob_db[pd->class_].mode;
race=mob_db[pd->class].race; race=mob_db[pd->class_].race;
md=(struct mob_data *)map_id2bl(pd->target_id); md=(struct mob_data *)map_id2bl(pd->target_id);
if(md == NULL || md->bl.type != BL_MOB || pd->bl.m != md->bl.m || md->bl.prev == NULL || if(md == NULL || md->bl.type != BL_MOB || pd->bl.m != md->bl.m || md->bl.prev == NULL ||
distance(pd->bl.x,pd->bl.y,md->bl.x,md->bl.y) > 13) distance(pd->bl.x,pd->bl.y,md->bl.x,md->bl.y) > 13)
pet_unlocktarget(pd); pet_unlocktarget(pd);
else if(mob_db[pd->class].mexp <= 0 && !(mode&0x20) && (md->option & 0x06 && race!=4 && race!=6) ) else if(mob_db[pd->class_].mexp <= 0 && !(mode&0x20) && (md->option & 0x06 && race!=4 && race!=6) )
pet_unlocktarget(pd); pet_unlocktarget(pd);
else if(!battle_check_range(&pd->bl,&md->bl,mob_db[pd->class].range)){ else if(!battle_check_range(&pd->bl,&md->bl,mob_db[pd->class_].range)){
if(pd->timer != -1 && pd->state.state == MS_WALK && distance(pd->to_x,pd->to_y,md->bl.x,md->bl.y) < 2) if(pd->timer != -1 && pd->state.state == MS_WALK && distance(pd->to_x,pd->to_y,md->bl.x,md->bl.y) < 2)
return 0; return 0;
if( !pet_can_reach(pd,md->bl.x,md->bl.y)) if( !pet_can_reach(pd,md->bl.x,md->bl.y))
@ -1641,7 +1641,7 @@ int read_petdb()
continue; continue;
//MobID,Name,JName,ItemID,EggID,AcceID,FoodID,"Fullness (1回の餌での満腹度増加率%)","HungryDeray (/min)","R_Hungry (空腹時餌やり親密度増加率%)","R_Full (とても満腹時餌やり親密度減少率%)","Intimate (捕獲時親密度%)","Die (死亡時親密度減少率%)","Capture (捕獲率%)",(Name) //MobID,Name,JName,ItemID,EggID,AcceID,FoodID,"Fullness (1回の餌での満腹度増加率%)","HungryDeray (/min)","R_Hungry (空腹時餌やり親密度増加率%)","R_Full (とても満腹時餌やり親密度減少率%)","Intimate (捕獲時親密度%)","Die (死亡時親密度減少率%)","Capture (捕獲率%)",(Name)
pet_db[j].class = nameid; pet_db[j].class_ = nameid;
memcpy(pet_db[j].name,str[1],24); memcpy(pet_db[j].name,str[1],24);
memcpy(pet_db[j].jname,str[2],24); memcpy(pet_db[j].jname,str[2],24);
pet_db[j].itemID=atoi(str[3]); pet_db[j].itemID=atoi(str[3]);

View File

@ -6,7 +6,7 @@
#define PETLOOT_SIZE 20 // [Valaris] #define PETLOOT_SIZE 20 // [Valaris]
struct pet_db { struct pet_db {
int class; int class_;
char name[24],jname[24]; char name[24],jname[24];
int itemID; int itemID;
int EggID; int EggID;

View File

@ -3666,10 +3666,10 @@ int buildin_makepet(struct script_state *st)
if (pet_id < 0) if (pet_id < 0)
pet_id = search_petDB_index(id, PET_EGG); pet_id = search_petDB_index(id, PET_EGG);
if (pet_id >= 0 && sd) { if (pet_id >= 0 && sd) {
sd->catch_target_class = pet_db[pet_id].class; sd->catch_target_class = pet_db[pet_id].class_;
intif_create_pet( intif_create_pet(
sd->status.account_id, sd->status.char_id, sd->status.account_id, sd->status.char_id,
pet_db[pet_id].class, mob_db[pet_db[pet_id].class].lv, pet_db[pet_id].class_, mob_db[pet_db[pet_id].class_].lv,
pet_db[pet_id].EggID, 0, pet_db[pet_id].intimate, pet_db[pet_id].EggID, 0, pet_db[pet_id].intimate,
100, 0, 1, pet_db[pet_id].jname); 100, 0, 1, pet_db[pet_id].jname);
} }
@ -4426,13 +4426,13 @@ int buildin_changesex(struct script_state *st) {
if (sd->status.sex == 0) { if (sd->status.sex == 0) {
sd->status.sex = 1; sd->status.sex = 1;
sd->sex = 1; sd->sex = 1;
if (sd->status.class == 20 || sd->status.class == 4021) if (sd->status.class_ == 20 || sd->status.class_ == 4021)
sd->status.class -= 1; sd->status.class_ -= 1;
} else if (sd->status.sex == 1) { } else if (sd->status.sex == 1) {
sd->status.sex = 0; sd->status.sex = 0;
sd->sex = 0; sd->sex = 0;
if(sd->status.class == 19 || sd->status.class == 4020) if(sd->status.class_ == 19 || sd->status.class_ == 4020)
sd->status.class += 1; sd->status.class_ += 1;
} }
chrif_char_ask_name(-1, sd->status.name, 5, 0, 0, 0, 0, 0, 0); // type: 5 - changesex chrif_char_ask_name(-1, sd->status.name, 5, 0, 0, 0, 0, 0, 0); // type: 5 - changesex
chrif_save(sd); chrif_save(sd);
@ -4978,7 +4978,7 @@ int buildin_maprespawnguildid_sub(struct block_list *bl,va_list ap)
pc_setpos(sd,sd->status.save_point.map,sd->status.save_point.x,sd->status.save_point.y,3); // end addition [Valaris] pc_setpos(sd,sd->status.save_point.map,sd->status.save_point.x,sd->status.save_point.y,3); // end addition [Valaris]
} }
if(md && flag&4){ if(md && flag&4){
if(md->class < 1285 || md->class > 1288) if(md->class_ < 1285 || md->class_ > 1288)
mob_delete(md); mob_delete(md);
} }
return 0; return 0;

View File

@ -2969,7 +2969,7 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
if( dstsd && dstsd->special_state.no_magic_damage ) if( dstsd && dstsd->special_state.no_magic_damage )
heal=0; /* ?金蟲カ?ド(ヒ?ル量0) */ heal=0; /* ?金蟲カ?ド(ヒ?ル量0) */
if (sd){ if (sd){
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
if((skill=pc_checkskill(sd,HP_MEDITATIO))>0) // メディテイティオ if((skill=pc_checkskill(sd,HP_MEDITATIO))>0) // メディテイティオ
heal += heal*skill*2/100; heal += heal*skill*2/100;
if(sd && dstsd && sd->status.partner_id == dstsd->status.char_id && s_class.job == 23 && sd->status.sex == 0) //自分も?象もPC、?象が自分のパ?トナ?、自分がスパノビ、自分が♀なら if(sd && dstsd && sd->status.partner_id == dstsd->status.char_id && s_class.job == 23 && sd->status.sex == 0) //自分も?象もPC、?象が自分のパ?トナ?、自分がスパノビ、自分が♀なら
@ -3157,8 +3157,8 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
clif_skill_nodamage(src,bl,skillid,skilllv,1); clif_skill_nodamage(src,bl,skillid,skilllv,1);
if (dstmd){ if (dstmd){
for(i=0;i<MAX_PET_DB;i++){ for(i=0;i<MAX_PET_DB;i++){
if(dstmd->class == pet_db[i].class){ if(dstmd->class_ == pet_db[i].class_){
pet_catch_process1(sd,dstmd->class); pet_catch_process1(sd,dstmd->class_);
break; break;
} }
} }
@ -3391,7 +3391,7 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
case CR_DEVOTION: /* ディボ?ション */ case CR_DEVOTION: /* ディボ?ション */
if(sd && dstsd){ if(sd && dstsd){
//?生や養子の場合の元の職業を算出する //?生や養子の場合の元の職業を算出する
struct pc_base_job dst_s_class = pc_calc_base_job(dstsd->status.class); struct pc_base_job dst_s_class = pc_calc_base_job(dstsd->status.class_);
int lv = sd->status.base_level-dstsd->status.base_level; int lv = sd->status.base_level-dstsd->status.base_level;
lv = (lv<0)?-lv:lv; lv = (lv<0)?-lv:lv;
@ -3457,7 +3457,7 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
}else if(sd && dstmd){ //?象がモンスタ?の場合 }else if(sd && dstmd){ //?象がモンスタ?の場合
//20%の確率で?象のLv*2のSPを回復する。成功したときはタ?ゲット(σ?Д?)σ????!! //20%の確率で?象のLv*2のSPを回復する。成功したときはタ?ゲット(σ?Д?)σ????!!
if(rand()%100<20){ if(rand()%100<20){
i=2*mob_db[dstmd->class].lv; i=2*mob_db[dstmd->class_].lv;
mob_target(dstmd,src,0); mob_target(dstmd,src,0);
} }
} }
@ -4303,7 +4303,7 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
case NPC_PROVOCATION: case NPC_PROVOCATION:
clif_skill_nodamage(src,bl,skillid,skilllv,1); clif_skill_nodamage(src,bl,skillid,skilllv,1);
if(md) if(md)
clif_pet_performance(src,mob_db[md->class].skill[md->skillidx].val[0]); clif_pet_performance(src,mob_db[md->class_].skill[md->skillidx].val[0]);
break; break;
case NPC_HALLUCINATION: case NPC_HALLUCINATION:
@ -4372,18 +4372,18 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
case NPC_SUMMONSLAVE: /* 手下召喚 */ case NPC_SUMMONSLAVE: /* 手下召喚 */
case NPC_SUMMONMONSTER: /* MOB召喚 */ case NPC_SUMMONMONSTER: /* MOB召喚 */
if(md) if(md)
mob_summonslave(md,mob_db[md->class].skill[md->skillidx].val,skilllv,(skillid==NPC_SUMMONSLAVE)?1:0); mob_summonslave(md,mob_db[md->class_].skill[md->skillidx].val,skilllv,(skillid==NPC_SUMMONSLAVE)?1:0);
break; break;
case NPC_TRANSFORMATION: case NPC_TRANSFORMATION:
case NPC_METAMORPHOSIS: case NPC_METAMORPHOSIS:
if(md) if(md)
mob_class_change(md,mob_db[md->class].skill[md->skillidx].val); mob_class_change(md,mob_db[md->class_].skill[md->skillidx].val);
break; break;
case NPC_EMOTION: /* エモ?ション */ case NPC_EMOTION: /* エモ?ション */
if(md) if(md)
clif_emotion(&md->bl,mob_db[md->class].skill[md->skillidx].val[0]); clif_emotion(&md->bl,mob_db[md->class_].skill[md->skillidx].val[0]);
break; break;
case NPC_DEFENDER: case NPC_DEFENDER:
@ -6837,14 +6837,14 @@ static int skill_check_condition_char_sub(struct block_list *bl,va_list ap)
nullpo_retr(0, c=va_arg(ap,int *)); nullpo_retr(0, c=va_arg(ap,int *));
nullpo_retr(0, ssd=(struct map_session_data*)src); nullpo_retr(0, ssd=(struct map_session_data*)src);
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
//チェックしない設定ならcにありえない大きな?字を返して終了 //チェックしない設定ならcにありえない大きな?字を返して終了
if(!battle_config.player_skill_partner_check){ //本?はforeachの前にやりたいけど設定適用箇所をまとめるためにここへ if(!battle_config.player_skill_partner_check){ //本?はforeachの前にやりたいけど設定適用箇所をまとめるためにここへ
(*c)=99; (*c)=99;
return 0; return 0;
} }
ss_class = pc_calc_base_job(ssd->status.class); ss_class = pc_calc_base_job(ssd->status.class_);
switch(ssd->skillid){ switch(ssd->skillid){
case PR_BENEDICTIO: /* 聖?降福 */ case PR_BENEDICTIO: /* 聖?降福 */
@ -6898,7 +6898,7 @@ static int skill_check_condition_use_sub(struct block_list *bl,va_list ap)
nullpo_retr(0, c=va_arg(ap,int *)); nullpo_retr(0, c=va_arg(ap,int *));
nullpo_retr(0, ssd=(struct map_session_data*)src); nullpo_retr(0, ssd=(struct map_session_data*)src);
s_class = pc_calc_base_job(sd->status.class); s_class = pc_calc_base_job(sd->status.class_);
//チェックしない設定ならcにありえない大きな?字を返して終了 //チェックしない設定ならcにありえない大きな?字を返して終了
if(!battle_config.player_skill_partner_check){ //本?はforeachの前にやりたいけど設定適用箇所をまとめるためにここへ if(!battle_config.player_skill_partner_check){ //本?はforeachの前にやりたいけど設定適用箇所をまとめるためにここへ
@ -6906,7 +6906,7 @@ static int skill_check_condition_use_sub(struct block_list *bl,va_list ap)
return 0; return 0;
} }
ss_class = pc_calc_base_job(ssd->status.class); ss_class = pc_calc_base_job(ssd->status.class_);
skillid=ssd->skillid; skillid=ssd->skillid;
skilllv=ssd->skilllv; skilllv=ssd->skilllv;
//if(skilllv <= 0) return 0; //if(skilllv <= 0) return 0;
@ -6967,7 +6967,7 @@ static int skill_check_condition_mob_master_sub(struct block_list *bl,va_list ap
nullpo_retr(0, mob_class=va_arg(ap,int)); nullpo_retr(0, mob_class=va_arg(ap,int));
nullpo_retr(0, c=va_arg(ap,int *)); nullpo_retr(0, c=va_arg(ap,int *));
if(md->class==mob_class && md->master_id==src_id) if(md->class_==mob_class && md->master_id==src_id)
(*c)++; (*c)++;
return 0; return 0;
} }
@ -7782,7 +7782,7 @@ int skill_use_id( struct map_session_data *sd, int target_id,
clif_skillcasting( &sd->bl, sd->bl.id, target_id, 0,0, skill_num,casttime); clif_skillcasting( &sd->bl, sd->bl.id, target_id, 0,0, skill_num,casttime);
/* 詠唱反?モンスタ? */ /* 詠唱反?モンスタ? */
if( bl->type==BL_MOB && (md=(struct mob_data *)bl) && mob_db[md->class].mode&0x10 && if( bl->type==BL_MOB && (md=(struct mob_data *)bl) && mob_db[md->class_].mode&0x10 &&
md->state.state!=MS_ATTACK && sd->invincible_timer == -1){ md->state.state!=MS_ATTACK && sd->invincible_timer == -1){
md->target_id=sd->bl.id; md->target_id=sd->bl.id;
md->state.targettype = ATTACKABLE; md->state.targettype = ATTACKABLE;