ソースリスト
pc.c
static int pc_isequip(struct map_session_data *sd,int n)
900行目あたり
if(item->elv > 0 && sd->status.base_level < item->elv)
return 0;
+//------------------追加---------------------------
+ if(sd->s_class.job >= 32){
+ if(sd->s_class.job >= 38){
+ class = sd->s_class.job - 24;
+ } else {
+ class = sd->s_class.job - 25;
+ }
+ if(((1<<class)&item->class_3) == 0)
+ return 0;
+ } else {
+ if(((1<<sd->s_class.job)&item->class_) == 0)
+ return 0;
+
+ if(item->upper) {
+ if(((1<<sd->s_class.upper)&item->upper) == 0)
+ return 0;
+ }
+ }
+//---------------------ここまで--------------------
if(item->zone && pc_check_prohibition(sd,item->zone))
return 0;
itemdb.c
static int itemdb_read_itemdb(void)
340行目あたり
id->weight = atoi(str[6]);
id->atk = atoi(str[7]);
id->def = atoi(str[8]);
id->range = atoi(str[9]);
id->slot = atoi(str[10]);
id->class_ = (unsigned int)strtoul(str[11],NULL,0);
+//------------------追加--------------------------
+ id->class_3 = (unsigned int)strtoul(str[11],NULL,0);
+//---------------------ここまで--------------------
id->sex = atoi(str[12]);
500行目あたり
printf("read db/item_group_db.txt done\n");
+//------------------追加--------------------------
+ fp=fopen("db/item_class3_db.txt","r");
+ if(fp==NULL){
+ printf("can't read db/item_class3_db.txt\n");
+ return 0;
+ }
+ while(fgets(line,sizeof(line),fp)){
+ if(line[0] == '\0' || line[0] == '\r' || line[0] == '\n')
+ continue;
+ if(line[0]=='/' && line[1]=='/')
+ continue;
+ memset(str,0,sizeof(str));
+ for(j=0,np=p=line;j<2 && p;j++){
+ str[j]=p;
+ p=strchr(p,',');
+ if(p){ *p++=0; np=p; }
+ }
+ if(str[0] == NULL || str[1] == NULL)
+ continue;
+
+ nameid = atoi(str[0]);
+ if(nameid <= 0 || !(id = itemdb_exists(nameid)))
+ continue;
+ //ID,Name,Jname,Group
+ id->class_3 = (unsigned int)strtoul(str[1],NULL,0);
+ }
+ fclose(fp);
+ printf("read db/item_class3_db.txt done\n");
+//---------------------ここまで--------------------
return 0;
}
itemdb.h
struct item_data
40行目あたり
int value_buy;
int value_sell;
int type;
unsigned int class_;
+//------------------追加--------------------------
+ unsigned int class_3;
+//---------------------ここまで--------------------
int sex;
int equip;
int weight;
int atk;
dbフォルダにitem_class3_db.txtを作成
//アイテムID,使用可能職業
使用可能職業の数値は以下
ルーンナイト:128
アークビショップ:256
ウォーロック:512
メカニック:1024
レンジャー:2048
ギロチンクロス:4096
ロイヤルガード:16384
修羅:32768
ソーサラー:65536
シャドウチェイサー:131072
ジェネティック:262144
ミンストレル:524288
ワンダラー:1048576
全職業装備可能:195026943(1000333311)