summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog.txt3
-rw-r--r--src/map/pc.c595
-rw-r--r--src/map/skill.c46
3 files changed, 342 insertions, 302 deletions
diff --git a/Changelog.txt b/Changelog.txt
index fea5dc985..e403298cb 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -12,7 +12,8 @@ Date Added
* Skill updates [celest]
- Updated Cloaking (thanks to orn), Endure
- Pneuma (thanks to DracoRPG)
- - Changed sc_ id for Basilica (80%)
+ - Changed sc_ id for Basilica
+ - Cancel Basilica (100%) when caster moves or uses another skill
* Modified pc_attack to fix monster npc's not working in certain exes, thanks
to leinsirk10 [celest]
* Moved mapflags organized by type to main mapflag folder and removed "type" folder.
diff --git a/src/map/pc.c b/src/map/pc.c
index b38d283b7..ca506ad1c 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -63,8 +63,8 @@ static char statp[255][7];
} skill_tree[3][MAX_PC_CLASS][100];*/ // moved to pc.h - celest
static int atkmods[3][20]; // 武器ATKサイズ修正(size_fix.txt)
-static int refinebonus[5][3]; // 精錬ボーナステーブル(refine_db.txt)
-static int percentrefinery[5][10]; // 精錬成功率(refine_db.txt)
+static int refinebonus[5][3]; // 精?ボ?ナステ?ブル(refine_db.txt)
+static int percentrefinery[5][10]; // 精?成功率(refine_db.txt)
static int dirx[8]={0,-1,-1,-1,0,1,1,1};
static int diry[8]={1,1,0,-1,-1,-1,0,1};
@@ -270,7 +270,7 @@ int pc_delspiritball(struct map_session_data *sd,int count,int type) {
}
int pc_setrestartvalue(struct map_session_data *sd,int type) {
- //転生や養子の場合の元の職業を算出する
+ //?生や養子の場合の元の職業を算出する
struct pc_base_job s_class;
nullpo_retr(0, sd);
@@ -279,7 +279,7 @@ int pc_setrestartvalue(struct map_session_data *sd,int type) {
//-----------------------
// 死亡した
- if(sd->special_state.restart_full_recover) { // オシリスカード
+ if(sd->special_state.restart_full_recover) { // オシリスカ?ド
sd->status.hp=sd->status.max_hp;
sd->status.sp=sd->status.max_sp;
}
@@ -321,7 +321,7 @@ int pc_setrestartvalue(struct map_session_data *sd,int type) {
}
/*==========================================
- * 自分をロックしているMOBの数を数える(foreachclient)
+ * 自分をロックしているMOBの?を?える(foreachclient)
*------------------------------------------
*/
static int pc_counttargeted_sub(struct block_list *bl,va_list ap)
@@ -364,24 +364,24 @@ int pc_counttargeted(struct map_session_data *sd,struct block_list *src,int targ
}
/*==========================================
- * ローカルプロトタイプ宣言 (必要な物のみ)
+ * ロ?カルプロトタイプ宣言 (必要な物のみ)
*------------------------------------------
*/
static int pc_walktoxy_sub(struct map_session_data *);
/*==========================================
- * saveに必要なステータス修正を行なう
+ * saveに必要なステ?タス修正を行なう
*------------------------------------------
*/
int pc_makesavestatus(struct map_session_data *sd)
{
nullpo_retr(0, sd);
- // 服の色は色々弊害が多いので保存対象にはしない
+ // 服の色は色?弊害が多いので保存?象にはしない
if(!battle_config.save_clothcolor)
sd->status.clothes_color=0;
- // 死亡状態だったのでhpを1、位置をセーブ場所に変更
+ // 死亡?態だったのでhpを1、位置をセ?ブ場所に?更
if(pc_isdead(sd)){
pc_setrestartvalue(sd,0);
memcpy(&sd->status.last_point,&sd->status.save_point,sizeof(sd->status.last_point));
@@ -391,7 +391,7 @@ int pc_makesavestatus(struct map_session_data *sd)
sd->status.last_point.y = sd->bl.y;
}
- // セーブ禁止マップだったので指定位置に移動
+ // セ?ブ禁止マップだったので指定位置に移動
if(map[sd->bl.m].flag.nosave){
struct map_data *m=&map[sd->bl.m];
if(strcmp(m->save.map,"SavePoint")==0)
@@ -400,14 +400,14 @@ int pc_makesavestatus(struct map_session_data *sd)
memcpy(&sd->status.last_point,&m->save,sizeof(sd->status.last_point));
}
- //マナーポイントがプラスだった場合0に
+ //マナ?ポイントがプラスだった場合0に
if(battle_config.muting_players && sd->status.manner > 0)
sd->status.manner = 0;
return 0;
}
/*==========================================
- * 接続時の初期化
+ * 接?時の初期化
*------------------------------------------
*/
int pc_setnewpc(struct map_session_data *sd, int account_id, int char_id, int login_id1, int client_tick, int sex, int fd) {
@@ -431,7 +431,7 @@ int pc_setnewpc(struct map_session_data *sd, int account_id, int char_id, int lo
int pc_equippoint(struct map_session_data *sd,int n)
{
int ep = 0;
- //転生や養子の場合の元の職業を算出する
+ //?生や養子の場合の元の職業を算出する
struct pc_base_job s_class;
nullpo_retr(0, sd);
@@ -469,20 +469,20 @@ int pc_calcweapontype(struct map_session_data *sd)
sd->status.weapon = sd->weapontype1;
if(sd->weapontype1 == 0 && sd->weapontype2 != 0)// 左手武器 Only
sd->status.weapon = sd->weapontype2;
- else if(sd->weapontype1 == 1 && sd->weapontype2 == 1)// 双短剣
+ else if(sd->weapontype1 == 1 && sd->weapontype2 == 1)// ?短?
sd->status.weapon = 0x11;
- else if(sd->weapontype1 == 2 && sd->weapontype2 == 2)// 双単手剣
+ else if(sd->weapontype1 == 2 && sd->weapontype2 == 2)// ??手?
sd->status.weapon = 0x12;
- else if(sd->weapontype1 == 6 && sd->weapontype2 == 6)// 双単手斧
+ else if(sd->weapontype1 == 6 && sd->weapontype2 == 6)// ??手斧
sd->status.weapon = 0x13;
else if( (sd->weapontype1 == 1 && sd->weapontype2 == 2) ||
- (sd->weapontype1 == 2 && sd->weapontype2 == 1) ) // 短剣 - 単手剣
+ (sd->weapontype1 == 2 && sd->weapontype2 == 1) ) // 短? - ?手?
sd->status.weapon = 0x14;
else if( (sd->weapontype1 == 1 && sd->weapontype2 == 6) ||
- (sd->weapontype1 == 6 && sd->weapontype2 == 1) ) // 短剣 - 斧
+ (sd->weapontype1 == 6 && sd->weapontype2 == 1) ) // 短? - 斧
sd->status.weapon = 0x15;
else if( (sd->weapontype1 == 2 && sd->weapontype2 == 6) ||
- (sd->weapontype1 == 6 && sd->weapontype2 == 2) ) // 単手剣 - 斧
+ (sd->weapontype1 == 6 && sd->weapontype2 == 2) ) // ?手? - 斧
sd->status.weapon = 0x16;
else
sd->status.weapon = sd->weapontype1;
@@ -537,7 +537,7 @@ int pc_isequip(struct map_session_data *sd,int n)
{
struct item_data *item;
struct status_change *sc_data;
- //転生や養子の場合の元の職業を算出する
+ //?生や養子の場合の元の職業を算出する
nullpo_retr(0, sd);
@@ -647,7 +647,7 @@ int pc_breakarmor(struct map_session_data *sd)
}
/*==========================================
* session idに問題無し
- * char鯖から送られてきたステータスを設定
+ * char鯖から送られてきたステ?タスを設定
*------------------------------------------
*/
int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_charstatus *st)
@@ -725,7 +725,7 @@ int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_chars
sd->dev.val2[i] = 0;
}
- // アカウント変数の送信要求
+ // アカウント??の送信要求
intif_request_accountreg(sd);
// アイテムチェック
@@ -738,7 +738,7 @@ int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_chars
sd->pet_hungry_timer = -1;
memset(&sd->pet, 0, sizeof(struct s_pet));
- // ステータス異常の初期化
+ // ステ?タス異常の初期化
for(i = 0; i < MAX_STATUSCHANGE; i++) {
sd->sc_data[i].timer=-1;
sd->sc_data[i].val1 = sd->sc_data[i].val2 = sd->sc_data[i].val3 = sd->sc_data[i].val4 = 0;
@@ -750,23 +750,23 @@ int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_chars
else
sd->status.option &= OPTION_MASK;
- // スキルユニット関係の初期化
+ // スキルユニット?係の初期化
memset(sd->skillunit, 0, sizeof(sd->skillunit));
memset(sd->skillunittick, 0, sizeof(sd->skillunittick));
- // パーティー関係の初期化
+ // パ?ティ??係の初期化
sd->party_sended = 0;
sd->party_invite = 0;
sd->party_x = -1;
sd->party_y = -1;
sd->party_hp = -1;
- // ギルド関係の初期化
+ // ギルド?係の初期化
sd->guild_sended = 0;
sd->guild_invite = 0;
sd->guild_alliance = 0;
- // イベント関係の初期化
+ // イベント?係の初期化
memset(sd->eventqueue, 0, sizeof(sd->eventqueue));
for(i = 0; i < MAX_EVENTTIMER; i++)
sd->eventtimer[i] = -1;
@@ -778,7 +778,7 @@ int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_chars
if (sd->status.pet_id > 0)
intif_request_petdata(sd->status.account_id, sd->status.char_id, sd->status.pet_id);
- // パーティ、ギルドデータの要求
+ // パ?ティ、ギルドデ?タの要求
if (sd->status.party_id > 0 && (p = party_search(sd->status.party_id)) == NULL)
party_request_info(sd->status.party_id);
if (sd->status.guild_id > 0 && (g = guild_search(sd->status.guild_id)) == NULL)
@@ -796,7 +796,7 @@ int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_chars
if (map_charid2nick(sd->status.char_id) == NULL)
map_addchariddb(sd->status.char_id, sd->status.name);
- //スパノビ用死にカウンターのスクリプト変数からの読み出しとsdへのセット
+ //スパノビ用死にカウンタ?のスクリプト??からの?み出しとsdへのセット
sd->die_counter = pc_readglobalreg(sd,"PC_DIE_COUNTER");
if (night_flag == 1 && !map[sd->bl.m].flag.indoors) {
@@ -806,7 +806,7 @@ int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_chars
sd->opt2 |= STATE_BLIND;
}
- // ステータス初期計算など
+ // ステ?タス初期計算など
pc_calcstatus(sd,1);
if (pc_isGM(sd))
@@ -892,21 +892,21 @@ static int pc_calc_skillpoint(struct map_session_data* sd)
}
/*==========================================
- * 覚えられるスキルの計算
+ * ?えられるスキルの計算
*------------------------------------------
*/
int pc_calc_skilltree(struct map_session_data *sd)
{
int i,id=0,flag;
int c=0, s=0;
- //転生や養子の場合の元の職業を算出する
+ //?生や養子の場合の元の職業を算出する
struct pc_base_job s_class;
nullpo_retr(0, sd);
s_class = pc_calc_base_job(sd->status.class);
c = s_class.job;
- //s = (s_class.upper==1) ? 1 : 0 ; //転生以外は通常のスキル?
+ //s = (s_class.upper==1) ? 1 : 0 ; //?生以外は通常のスキル?
s = s_class.upper;
//if((battle_config.skillup_limit) && ((c >= 0 && c < 23) || (c >= 4001 && c < 4023) || (c >= 4023 && c < 4045))) {
@@ -1000,7 +1000,7 @@ int pc_calc_skilltree(struct map_session_data *sd)
for(i=0;i<MAX_SKILL;i++){
if (sd->status.skill[i].flag != 13) sd->status.skill[i].id=0;
if (sd->status.skill[i].flag && sd->status.skill[i].flag != 13){ // cardスキルなら、
- sd->status.skill[i].lv=(sd->status.skill[i].flag==1)?0:sd->status.skill[i].flag-2; // 本当のlvに
+ sd->status.skill[i].lv=(sd->status.skill[i].flag==1)?0:sd->status.skill[i].flag-2; // 本?のlvに
sd->status.skill[i].flag=0; // flagは0にしておく
}
}
@@ -1015,7 +1015,7 @@ int pc_calc_skilltree(struct map_session_data *sd)
if(i==331) continue;
sd->status.skill[i].id=i;
}
- if(battle_config.enable_upper_class){ //confで無効でなければ読み込む
+ if(battle_config.enable_upper_class){ //confで無?でなければ?み?む
for(i=355;i<MAX_SKILL;i++)
sd->status.skill[i].id=i;
}
@@ -1075,10 +1075,10 @@ int pc_checkweighticon(struct map_session_data *sd)
}
/*==========================================
- * パラメータ計算
- * first==0の時、計算対象のパラメータが呼び出し前から
- * 変 化した場合自動でsendするが、
- * 能動的に変化させたパラメータは自前でsendするように
+ * パラメ?タ計算
+ * first==0の時、計算?象のパラメ?タが呼び出し前から
+ * ? 化した場合自動でsendするが、
+ * 能動的に?化させたパラメ?タは自前でsendするように
*------------------------------------------
*/
int pc_calcstatus(struct map_session_data* sd,int first)
@@ -1095,7 +1095,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
nullpo_retr(0, sd);
- //転生や養子の場合の元の職業を算出する
+ //?生や養子の場合の元の職業を算出する
s_class = pc_calc_base_job(sd->status.class);
b_speed = sd->speed;
@@ -1126,7 +1126,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
sd->view_class = sd->status.class;
b_base_atk = sd->base_atk;
- pc_calc_skilltree(sd); // スキルツリーの計算
+ pc_calc_skilltree(sd); // スキルツリ?の計算
sd->max_weight = max_weight_base[s_class.job]+sd->status.str*300;
@@ -1198,7 +1198,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
memset(sd->weapon_coma_ele,0,sizeof(sd->weapon_coma_ele));
memset(sd->weapon_coma_race,0,sizeof(sd->weapon_coma_race));
- sd->watk_ = 0; //二刀流用(仮)
+ sd->watk_ = 0; //二刀流用(?)
sd->watk_2 = 0;
sd->atk_ele_ = 0;
sd->star_ = 0;
@@ -1277,7 +1277,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
if(sd->inventory_data[index]->type == 4) {
if(sd->status.inventory[index].card[0]!=0x00ff && sd->status.inventory[index].card[0]!=0x00fe && sd->status.inventory[index].card[0]!=(short)0xff00) {
int j;
- for(j=0;j<sd->inventory_data[index]->slot;j++){ // カード
+ for(j=0;j<sd->inventory_data[index]->slot;j++){ // カ?ド
int c=sd->status.inventory[index].card[j];
if(c>0){
if(i == 8 && sd->status.inventory[index].equip == 0x20)
@@ -1291,7 +1291,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
else if(sd->inventory_data[index]->type==5){ // 防具
if(sd->status.inventory[index].card[0]!=0x00ff && sd->status.inventory[index].card[0]!=0x00fe && sd->status.inventory[index].card[0]!=(short)0xff00) {
int j;
- for(j=0;j<sd->inventory_data[index]->slot;j++){ // カード
+ for(j=0;j<sd->inventory_data[index]->slot;j++){ // カ?ド
int c=sd->status.inventory[index].card[j];
if(c>0)
run_script(itemdb_equipscript(c),0,sd->bl.id,0);
@@ -1315,7 +1315,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
}
memcpy(sd->paramcard,sd->parame,sizeof(sd->paramcard));
- // 装備品によるステータス変化はここで実行
+ // ?備品によるステ?タス?化はここで?行
for(i=0;i<10;i++) {
index = sd->equip_index[i];
if(index < 0)
@@ -1331,16 +1331,16 @@ int pc_calcstatus(struct map_session_data* sd,int first)
if(sd->inventory_data[index]->type == 4) {
int r,wlv = sd->inventory_data[index]->wlv;
if(i == 8 && sd->status.inventory[index].equip == 0x20) {
- //二刀流用データ入力
+ //二刀流用デ?タ入力
sd->watk_ += sd->inventory_data[index]->atk;
- sd->watk_2 = (r=sd->status.inventory[index].refine)* // 精錬攻撃力
+ sd->watk_2 = (r=sd->status.inventory[index].refine)* // 精?攻?力
refinebonus[wlv][0];
- if( (r-=refinebonus[wlv][2])>0 ) // 過剰精錬ボーナス
+ if( (r-=refinebonus[wlv][2])>0 ) // 過?精?ボ?ナス
sd->overrefine_ = r*refinebonus[wlv][1];
if(sd->status.inventory[index].card[0]==0x00ff){ // 製造武器
sd->star_ = (sd->status.inventory[index].card[1]>>8); // 星のかけら
- wele_= (sd->status.inventory[index].card[1]&0x0f); // 属 性
+ wele_= (sd->status.inventory[index].card[1]&0x0f); // ? 性
}
sd->attackrange_ += sd->inventory_data[index]->range;
sd->state.lr_flag = 1;
@@ -1349,14 +1349,14 @@ int pc_calcstatus(struct map_session_data* sd,int first)
}
else { //二刀流武器以外
sd->watk += sd->inventory_data[index]->atk;
- sd->watk2 += (r=sd->status.inventory[index].refine)* // 精錬攻撃力
+ sd->watk2 += (r=sd->status.inventory[index].refine)* // 精?攻?力
refinebonus[wlv][0];
- if( (r-=refinebonus[wlv][2])>0 ) // 過剰精錬ボーナス
+ if( (r-=refinebonus[wlv][2])>0 ) // 過?精?ボ?ナス
sd->overrefine += r*refinebonus[wlv][1];
if(sd->status.inventory[index].card[0]==0x00ff){ // 製造武器
sd->star += (sd->status.inventory[index].card[1]>>8); // 星のかけら
- wele = (sd->status.inventory[index].card[1]&0x0f); // 属 性
+ wele = (sd->status.inventory[index].card[1]&0x0f); // ? 性
}
sd->attackrange += sd->inventory_data[index]->range;
run_script(sd->inventory_data[index]->equip_script,0,sd->bl.id,0);
@@ -1372,7 +1372,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
if(sd->equip_index[10] >= 0){ // 矢
index = sd->equip_index[10];
- if(sd->inventory_data[index]){ //まだ属性が入っていない
+ if(sd->inventory_data[index]){ //まだ?性が入っていない
sd->state.lr_flag = 2;
run_script(sd->inventory_data[index]->equip_script,0,sd->bl.id,0);
sd->state.lr_flag = 0;
@@ -1417,7 +1417,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
sd->atkmods_[1] = atkmods[1][sd->weapontype2];
sd->atkmods_[2] = atkmods[2][sd->weapontype2];
- // jobボーナス分
+ // jobボ?ナス分
for(i=0;i<sd->status.job_level && i<MAX_LEVEL;i++){
if(job_bonus[s_class.upper][s_class.job][i])
sd->paramb[job_bonus[s_class.upper][s_class.job][i]-1]++;
@@ -1434,13 +1434,13 @@ int pc_calcstatus(struct map_session_data* sd,int first)
sd->base_atk += 4;
}
- // ステータス変化による基本パラメータ補正
+ // ステ?タス?化による基本パラメ?タ補正
if(sd->sc_count){
if(sd->sc_data[SC_CONCENTRATE].timer!=-1 && sd->sc_data[SC_QUAGMIRE].timer == -1){ // 集中力向上
sd->paramb[1]+= (sd->status.agi+sd->paramb[1]+sd->parame[1]-sd->paramcard[1])*(2+sd->sc_data[SC_CONCENTRATE].val1)/100;
sd->paramb[4]+= (sd->status.dex+sd->paramb[4]+sd->parame[4]-sd->paramcard[4])*(2+sd->sc_data[SC_CONCENTRATE].val1)/100;
}
- if(sd->sc_data[SC_INCREASEAGI].timer!=-1 && sd->sc_data[SC_QUAGMIRE].timer == -1 && sd->sc_data[SC_DONTFORGETME].timer == -1){ // 速度増加
+ if(sd->sc_data[SC_INCREASEAGI].timer!=-1 && sd->sc_data[SC_QUAGMIRE].timer == -1 && sd->sc_data[SC_DONTFORGETME].timer == -1){ // 速度?加
sd->paramb[1]+= 2+sd->sc_data[SC_INCREASEAGI].val1;
sd->speed -= sd->speed *25/100;
}
@@ -1469,7 +1469,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
sd->paramb[1]-= agib > 50 ? 50 : agib;
sd->paramb[4]-= dexb > 50 ? 50 : dexb;
}
- if(sd->sc_data[SC_TRUESIGHT].timer!=-1){ // トゥルーサイト
+ if(sd->sc_data[SC_TRUESIGHT].timer!=-1){ // トゥル?サイト
sd->paramb[0]+= 5;
sd->paramb[1]+= 5;
sd->paramb[2]+= 5;
@@ -1578,7 +1578,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
aspd_rate = sd->aspd_rate;
- //攻撃速度増加
+ //攻?速度?加
if( (skill=pc_checkskill(sd,AC_VULTURE))>0){ // ワシの目
sd->hit += skill;
@@ -1586,24 +1586,24 @@ int pc_calcstatus(struct map_session_data* sd,int first)
sd->attackrange += skill;
}
- if( (skill=pc_checkskill(sd,BS_WEAPONRESEARCH))>0) // 武器研究の命中率増加
+ if( (skill=pc_checkskill(sd,BS_WEAPONRESEARCH))>0) // 武器?究の命中率?加
sd->hit += skill*2;
if(sd->status.option&2 && (skill = pc_checkskill(sd,RG_TUNNELDRIVE))>0 ) // トンネルドライブ // トンネルドライブ
sd->speed += (1.2*DEFAULT_WALK_SPEED - skill*9);
- if (pc_iscarton(sd) && (skill=pc_checkskill(sd,MC_PUSHCART))>0) // カートによる速度低下
+ if (pc_iscarton(sd) && (skill=pc_checkskill(sd,MC_PUSHCART))>0) // カ?トによる速度低下
sd->speed += (10-skill) * (DEFAULT_WALK_SPEED * 0.1);
- else if (pc_isriding(sd)) { // ペコペコ乗りによる速度増加
+ else if (pc_isriding(sd)) { // ペコペコ?りによる速度?加
sd->speed -= (0.25 * DEFAULT_WALK_SPEED);
sd->max_weight += 10000;
}
if(sd->sc_count){
- if(sd->sc_data[SC_WINDWALK].timer!=-1) //ウィンドウォーク時はLv*2%減算
+ if(sd->sc_data[SC_WINDWALK].timer!=-1) //ウィンドウォ?ク時はLv*2%減算
sd->speed -= sd->speed *(sd->sc_data[SC_WINDWALK].val1*2)/100;
- if(sd->sc_data[SC_CARTBOOST].timer!=-1) // カートブースト
+ if(sd->sc_data[SC_CARTBOOST].timer!=-1) // カ?トブ?スト
sd->speed -= (DEFAULT_WALK_SPEED * 20)/100;
- if(sd->sc_data[SC_BERSERK].timer!=-1) //バーサーク中はIAと同じぐらい速い?
+ if(sd->sc_data[SC_BERSERK].timer!=-1) //バ?サ?ク中はIAと同じぐらい速い?
sd->speed -= sd->speed *25/100;
- if(sd->sc_data[SC_WEDDING].timer!=-1) //結婚中は歩くのが遅い
+ if(sd->sc_data[SC_WEDDING].timer!=-1) //結婚中は?くのが?い
sd->speed = 2*DEFAULT_WALK_SPEED;
}
@@ -1628,7 +1628,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
if(sd->hprate!=100)
sd->status.max_hp = sd->status.max_hp*sd->hprate/100;
- if(sd->sc_data && sd->sc_data[SC_BERSERK].timer!=-1){ // バーサーク
+ if(sd->sc_data && sd->sc_data[SC_BERSERK].timer!=-1){ // バ?サ?ク
sd->status.max_hp = sd->status.max_hp * 3;
// sd->status.hp = sd->status.hp * 3;
if(sd->status.max_hp > battle_config.max_hp) // removed negative max hp bug by Valaris
@@ -1695,8 +1695,8 @@ int pc_calcstatus(struct map_session_data* sd,int first)
if(sd->nhealsp > 0x7fff) sd->nhealsp = 0x7fff;
}
- // 種族耐性(これでいいの? ディバインプロテクションと同じ処理がいるかも)
- if( (skill=pc_checkskill(sd,SA_DRAGONOLOGY))>0 ){ // ドラゴノロジー
+ // 種族耐性(これでいいの? ディバインプロテクションと同じ?理がいるかも)
+ if( (skill=pc_checkskill(sd,SA_DRAGONOLOGY))>0 ){ // ドラゴノロジ?
skill = skill*4;
sd->addrace[9]+=skill;
sd->addrace_[9]+=skill;
@@ -1706,7 +1706,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
}
//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){
sd->flee += skill*3;
}
@@ -1718,9 +1718,9 @@ int pc_calcstatus(struct map_session_data* sd,int first)
if( (skill=pc_checkskill(sd,MO_DODGE))>0 ) // 見切り
sd->flee += (skill*3)>>1;
- // スキルやステータス異常による残りのパラメータ補正
+ // スキルやステ?タス異常による?りのパラメ?タ補正
if(sd->sc_count){
- // ATK/DEF変化形
+ // ATK/DEF?化形
if(sd->sc_data[SC_ANGELUS].timer!=-1) // エンジェラス
sd->def2 = sd->def2*(110+5*sd->sc_data[SC_ANGELUS].val1)/100;
if(sd->sc_data[SC_IMPOSITIO].timer!=-1) {// インポシティオマヌス
@@ -1744,16 +1744,16 @@ int pc_calcstatus(struct map_session_data* sd,int first)
sd->matk1 = sd->matk1*(100+2*sd->sc_data[SC_MINDBREAKER].val1)/100;
sd->matk2 = sd->matk2*(100+2*sd->sc_data[SC_MINDBREAKER].val1)/100;
}
- if(sd->sc_data[SC_POISON].timer!=-1) // 毒状態
+ if(sd->sc_data[SC_POISON].timer!=-1) // 毒?態
sd->def2 = sd->def2*75/100;
- if(sd->sc_data[SC_DRUMBATTLE].timer!=-1){ // 戦太鼓の響き
+ if(sd->sc_data[SC_DRUMBATTLE].timer!=-1){ // ?太鼓の響き
sd->watk += sd->sc_data[SC_DRUMBATTLE].val2;
sd->def += sd->sc_data[SC_DRUMBATTLE].val3;
index = sd->equip_index[8];
if(index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == 4)
sd->watk_ += sd->sc_data[SC_DRUMBATTLE].val2;
}
- if(sd->sc_data[SC_NIBELUNGEN].timer!=-1) { // ニーベルングの指輪
+ if(sd->sc_data[SC_NIBELUNGEN].timer!=-1) { // ニ?ベルングの指輪
index = sd->equip_index[9];
if(index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->wlv == 3)
sd->watk += sd->sc_data[SC_NIBELUNGEN].val3;
@@ -1767,16 +1767,16 @@ int pc_calcstatus(struct map_session_data* sd,int first)
sd->watk_ += sd->sc_data[SC_NIBELUNGEN].val2;
}
- if(sd->sc_data[SC_VOLCANO].timer!=-1 && sd->def_ele==3){ // ボルケーノ
+ if(sd->sc_data[SC_VOLCANO].timer!=-1 && sd->def_ele==3){ // ボルケ?ノ
sd->watk += sd->sc_data[SC_VIOLENTGALE].val3;
}
if(sd->sc_data[SC_SIGNUMCRUCIS].timer!=-1)
sd->def = sd->def * (100 - sd->sc_data[SC_SIGNUMCRUCIS].val2)/100;
- if(sd->sc_data[SC_ETERNALCHAOS].timer!=-1) // エターナルカオス
+ if(sd->sc_data[SC_ETERNALCHAOS].timer!=-1) // エタ?ナルカオス
sd->def=0;
- if(sd->sc_data[SC_CONCENTRATION].timer!=-1){ //コンセントレーション
+ if(sd->sc_data[SC_CONCENTRATION].timer!=-1){ //コンセントレ?ション
sd->watk = sd->watk * (100 + 5*sd->sc_data[SC_CONCENTRATION].val1)/100;
index = sd->equip_index[8];
if(index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == 4)
@@ -1784,7 +1784,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
sd->def = sd->def * (100 - 5*sd->sc_data[SC_CONCENTRATION].val1)/100;
}
- if(sd->sc_data[SC_MAGICPOWER].timer!=-1){ //魔法力増幅
+ if(sd->sc_data[SC_MAGICPOWER].timer!=-1){ //魔法力?幅
sd->matk1 = sd->matk1*(100+5*sd->sc_data[SC_MAGICPOWER].val1)/100;
sd->matk2 = sd->matk2*(100+5*sd->sc_data[SC_MAGICPOWER].val1)/100;
}
@@ -1795,7 +1795,7 @@ int pc_calcstatus(struct map_session_data* sd,int first)
sd->matk2 += sd->sc_data[SC_MATKPOT].val1;
}
- // ASPD/移動速度変化系
+ // ASPD/移動速度?化系
if(sd->sc_data[SC_TWOHANDQUICKEN].timer != -1 && sd->sc_data[SC_QUAGMIRE].timer == -1 && sd->sc_data[SC_DONTFORGETME].timer == -1) // 2HQ
aspd_rate -= 30;
if(sd->sc_data[SC_ADRENALINE].timer != -1 && sd->sc_data[SC_TWOHANDQUICKEN].timer == -1 &&
@@ -1818,10 +1818,10 @@ int pc_calcstatus(struct map_session_data* sd,int first)
}
if( sd->sc_data[i=SC_SPEEDPOTION2].timer!=-1 ||
sd->sc_data[i=SC_SPEEDPOTION1].timer!=-1 ||
- sd->sc_data[i=SC_SPEEDPOTION0].timer!=-1) // 増 速ポーション
+ sd->sc_data[i=SC_SPEEDPOTION0].timer!=-1) // ? 速ポ?ション
aspd_rate -= sd->sc_data[i].val2;
- // HIT/FLEE変化系
+ // HIT/FLEE?化系
if(sd->sc_data[SC_WHISTLE].timer!=-1){ // 口笛
sd->flee += sd->flee * (sd->sc_data[SC_WHISTLE].val1
+sd->sc_data[SC_WHISTLE].val2+(sd->sc_data[SC_WHISTLE].val3>>16))/100;
@@ -1833,21 +1833,21 @@ int pc_calcstatus(struct map_session_data* sd,int first)
if(sd->sc_data[SC_VIOLENTGALE].timer!=-1 && sd->def_ele==4){ // バイオレントゲイル
sd->flee += sd->flee*sd->sc_data[SC_VIOLENTGALE].val3/100;
}
- if(sd->sc_data[SC_BLIND].timer!=-1){ // 暗黒
+ if(sd->sc_data[SC_BLIND].timer!=-1){ // 暗?
sd->hit -= sd->hit*25/100;
sd->flee -= sd->flee*25/100;
}
- if(sd->sc_data[SC_WINDWALK].timer!=-1) // ウィンドウォーク
+ if(sd->sc_data[SC_WINDWALK].timer!=-1) // ウィンドウォ?ク
sd->flee += sd->flee*(sd->sc_data[SC_WINDWALK].val2)/100;
- if(sd->sc_data[SC_SPIDERWEB].timer!=-1) //スパイダーウェブ
+ if(sd->sc_data[SC_SPIDERWEB].timer!=-1) //スパイダ?ウェブ
sd->flee -= sd->flee*50/100;
- if(sd->sc_data[SC_TRUESIGHT].timer!=-1) //トゥルーサイト
+ if(sd->sc_data[SC_TRUESIGHT].timer!=-1) //トゥル?サイト
sd->hit += 3*(sd->sc_data[SC_TRUESIGHT].val1);
- if(sd->sc_data[SC_CONCENTRATION].timer!=-1) //コンセントレーション
+ if(sd->sc_data[SC_CONCENTRATION].timer!=-1) //コンセントレ?ション
sd->hit += (10*(sd->sc_data[SC_CONCENTRATION].val1));
// 耐性
- if(sd->sc_data[SC_SIEGFRIED].timer!=-1){ // 不死身のジークフリード
+ if(sd->sc_data[SC_SIEGFRIED].timer!=-1){ // 不死身のジ?クフリ?ド
sd->subele[1] += sd->sc_data[SC_SIEGFRIED].val2; // 水
sd->subele[2] += sd->sc_data[SC_SIEGFRIED].val2; // 水
sd->subele[3] += sd->sc_data[SC_SIEGFRIED].val2; // 火
@@ -1859,8 +1859,8 @@ int pc_calcstatus(struct map_session_data* sd,int first)
sd->subele[9] += sd->sc_data[SC_SIEGFRIED].val2; // 水
}
if(sd->sc_data[SC_PROVIDENCE].timer!=-1){ // プロヴィデンス
- sd->subele[6] += sd->sc_data[SC_PROVIDENCE].val2; // 対 聖属性
- sd->subrace[6] += sd->sc_data[SC_PROVIDENCE].val2; // 対 悪魔
+ sd->subele[6] += sd->sc_data[SC_PROVIDENCE].val2; // ? 聖?性
+ sd->subrace[6] += sd->sc_data[SC_PROVIDENCE].val2; // ? ?魔
}
// その他
@@ -1870,12 +1870,12 @@ int pc_calcstatus(struct map_session_data* sd,int first)
if(sd->status.max_hp < 0 || sd->status.max_hp > battle_config.max_hp)
sd->status.max_hp = battle_config.max_hp;
}
- if(sd->sc_data[SC_DELUGE].timer!=-1 && sd->def_ele==1){ // デリュージ
+ if(sd->sc_data[SC_DELUGE].timer!=-1 && sd->def_ele==1){ // デリュ?ジ
sd->status.max_hp += sd->status.max_hp*sd->sc_data[SC_DELUGE].val3/100;
if(sd->status.max_hp < 0 || sd->status.max_hp > battle_config.max_hp)
sd->status.max_hp = battle_config.max_hp;
}
- if(sd->sc_data[SC_SERVICE4U].timer!=-1) { // サービスフォーユー
+ if(sd->sc_data[SC_SERVICE4U].timer!=-1) { // サ?ビスフォ?ユ?
sd->status.max_sp += sd->status.max_sp*(10+sd->sc_data[SC_SERVICE4U].val1+sd->sc_data[SC_SERVICE4U].val2
+sd->sc_data[SC_SERVICE4U].val3)/100;
if(sd->status.max_sp < 0 || sd->status.max_sp > battle_config.max_sp)
@@ -1918,12 +1918,12 @@ int pc_calcstatus(struct map_session_data* sd,int first)
if(sd->sc_data[SC_CURSE].timer!=-1)
sd->speed += 450;
- if(sd->sc_data[SC_TRUESIGHT].timer!=-1) //トゥルーサイト
+ if(sd->sc_data[SC_TRUESIGHT].timer!=-1) //トゥル?サイト
sd->critical += sd->critical*(sd->sc_data[SC_TRUESIGHT].val1)/100;
-/* if(sd->sc_data[SC_VOLCANO].timer!=-1) // エンチャントポイズン(属性はbattle.cで)
+/* if(sd->sc_data[SC_VOLCANO].timer!=-1) // エンチャントポイズン(?性はbattle.cで)
sd->addeff[2]+=sd->sc_data[SC_VOLCANO].val2;//% of granting
- if(sd->sc_data[SC_DELUGE].timer!=-1) // エンチャントポイズン(属性はbattle.cで)
+ if(sd->sc_data[SC_DELUGE].timer!=-1) // エンチャントポイズン(?性はbattle.cで)
sd->addeff[0]+=sd->sc_data[SC_DELUGE].val2;//% of granting
*/
if(sd->sc_data[SC_BERSERK].timer!=-1) { //All Def/MDef reduced to 0 while in Berserk [DracoRPG]
@@ -2041,14 +2041,14 @@ int pc_calcstatus(struct map_session_data* sd,int first)
if(sd->status.hp<sd->status.max_hp>>2 && pc_checkskill(sd,SM_AUTOBERSERK)>0 &&
(sd->sc_data[SC_PROVOKE].timer==-1 || sd->sc_data[SC_PROVOKE].val2==0 ) && !pc_isdead(sd))
- // オートバーサーク発動
+ // オ?トバ?サ?ク?動
skill_status_change_start(&sd->bl,SC_PROVOKE,10,1,0,0,0,0);
return 0;
}
/*==========================================
- * 装 備品による能力等のボーナス設定
+ * ? 備品による能力等のボ?ナス設定
*------------------------------------------
*/
int pc_bonus(struct map_session_data *sd,int type,int val)
@@ -2439,7 +2439,7 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
}
/*==========================================
- * 装 備品による能力等のボーナス設定
+ * ? 備品による能力等のボ?ナス設定
*------------------------------------------
*/
int pc_bonus2(struct map_session_data *sd,int type,int type2,int val)
@@ -2675,17 +2675,17 @@ int pc_skill(struct map_session_data *sd,int id,int level,int flag)
printf("support card skill only!\n");
return 0;
}
- if(!flag && (sd->status.skill[id].id == id || level == 0)){ // クエスト所得ならここで条件を確認して送信する
+ if(!flag && (sd->status.skill[id].id == id || level == 0)){ // クエスト所得ならここで?件を確認して送信する
sd->status.skill[id].lv=level;
pc_calcstatus(sd,0);
clif_skillinfoblock(sd);
}
- else if(flag==2 && (sd->status.skill[id].id == id || level == 0)){ // クエスト所得ならここで条件を確認して送信する
+ else if(flag==2 && (sd->status.skill[id].id == id || level == 0)){ // クエスト所得ならここで?件を確認して送信する
sd->status.skill[id].lv+=level;
pc_calcstatus(sd,0);
clif_skillinfoblock(sd);
}
- else if(sd->status.skill[id].lv < level){ // 覚えられるがlvが小さいなら
+ else if(sd->status.skill[id].lv < level){ // ?えられるがlvが小さいなら
if(sd->status.skill[id].id==id)
sd->status.skill[id].flag=sd->status.skill[id].lv+2; // lvを記憶
else {
@@ -2699,7 +2699,7 @@ int pc_skill(struct map_session_data *sd,int id,int level,int flag)
}
/*==========================================
- * カード挿入
+ * カ?ド?入
*------------------------------------------
*/
int pc_insert_card(struct map_session_data *sd,int idx_card,int idx_equip)
@@ -2713,12 +2713,12 @@ int pc_insert_card(struct map_session_data *sd,int idx_card,int idx_equip)
int ep=sd->inventory_data[idx_card]->equip;
if( nameid <= 0 || sd->inventory_data[idx_equip] == NULL ||
- (sd->inventory_data[idx_equip]->type!=4 && sd->inventory_data[idx_equip]->type!=5)|| // 装 備じゃない
+ (sd->inventory_data[idx_equip]->type!=4 && sd->inventory_data[idx_equip]->type!=5)|| // ? 備じゃない
( sd->status.inventory[idx_equip].identify==0 ) || // 未鑑定
( sd->status.inventory[idx_equip].card[0]==0x00ff) || // 製造武器
( sd->status.inventory[idx_equip].card[0]==0x00fe) ||
- ( (sd->inventory_data[idx_equip]->equip&ep)==0 ) || // 装 備個所違い
- ( sd->inventory_data[idx_equip]->type==4 && ep==32) || // 両 手武器と盾カード
+ ( (sd->inventory_data[idx_equip]->equip&ep)==0 ) || // ? 備個所違い
+ ( sd->inventory_data[idx_equip]->type==4 && ep==32) || // ? 手武器と盾カ?ド
( sd->status.inventory[idx_equip].card[0]==(short)0xff00) || sd->status.inventory[idx_equip].equip){
clif_insert_card(sd,idx_equip,idx_card,1);
@@ -2726,10 +2726,10 @@ int pc_insert_card(struct map_session_data *sd,int idx_card,int idx_equip)
}
for(i=0;i<sd->inventory_data[idx_equip]->slot;i++){
if( sd->status.inventory[idx_equip].card[i] == 0){
- // 空きスロットがあったので差し込む
+ // 空きスロットがあったので差し?む
sd->status.inventory[idx_equip].card[i]=cardid;
- // カードは減らす
+ // カ?ドは減らす
clif_insert_card(sd,idx_equip,idx_card,0);
pc_delitem(sd,idx_card,1,1);
return 0;
@@ -2767,13 +2767,13 @@ int pc_modifybuyvalue(struct map_session_data *sd,int orig_value)
}
/*==========================================
- * スキルによる売り値修正
+ * スキルによる?り値修正
*------------------------------------------
*/
int pc_modifysellvalue(struct map_session_data *sd,int orig_value)
{
int skill,val = orig_value,rate = 0;
- if((skill=pc_checkskill(sd,MC_OVERCHARGE))>0) // オーバーチャージ
+ if((skill=pc_checkskill(sd,MC_OVERCHARGE))>0) // オ?バ?チャ?ジ
rate = 5+skill*2-((skill==10)? 1:0);
if(rate)
val = (int)((double)orig_value*(double)(100+rate)/100.);
@@ -2811,7 +2811,7 @@ int pc_checkadditem(struct map_session_data *sd,int nameid,int amount)
}
/*==========================================
- * 空きアイテム欄の個数
+ * 空きアイテム欄の個?
*------------------------------------------
*/
int pc_inventoryblank(struct map_session_data *sd)
@@ -2829,7 +2829,7 @@ int pc_inventoryblank(struct map_session_data *sd)
}
/*==========================================
- * お金を払う
+ * お金を?う
*------------------------------------------
*/
int pc_payzeny(struct map_session_data *sd,int zeny)
@@ -2888,7 +2888,7 @@ int pc_search_inventory(struct map_session_data *sd,int item_id)
}
/*==========================================
- * アイテム追加。個数のみitem構造体の数字を無視
+ * アイテム追加。個?のみitem構造?の?字を無視
*------------------------------------------
*/
int pc_additem(struct map_session_data *sd,struct item *item_data,int amount)
@@ -2908,7 +2908,7 @@ int pc_additem(struct map_session_data *sd,struct item *item_data,int amount)
i = MAX_INVENTORY;
if(!itemdb_isequip2(data)){
- // 装 備品ではないので、既所有品なら個数のみ変化させる
+ // ? 備品ではないので、?所有品なら個?のみ?化させる
for(i=0;i<MAX_INVENTORY;i++)
if(sd->status.inventory[i].nameid == item_data->nameid &&
sd->status.inventory[i].card[0] == item_data->card[0] && sd->status.inventory[i].card[1] == item_data->card[1] &&
@@ -2921,7 +2921,7 @@ int pc_additem(struct map_session_data *sd,struct item *item_data,int amount)
}
}
if(i >= MAX_INVENTORY){
- // 装 備品か未所有品だったので空き欄へ追加
+ // ? 備品か未所有品だったので空き欄へ追加
i = pc_search_inventory(sd,0);
if(i >= 0) {
memcpy(&sd->status.inventory[i],item_data,sizeof(sd->status.inventory[0]));
@@ -3113,7 +3113,7 @@ int pc_useitem(struct map_session_data *sd,int n)
}
/*==========================================
- * カートアイテム追加。個数のみitem構造体の数字を無視
+ * カ?トアイテム追加。個?のみitem構造?の?字を無視
*------------------------------------------
*/
int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amount)
@@ -3133,7 +3133,7 @@ int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amoun
i=MAX_CART;
if(!itemdb_isequip2(data)){
- // 装 備品ではないので、既所有品なら個数のみ変化させる
+ // ? 備品ではないので、?所有品なら個?のみ?化させる
for(i=0;i<MAX_CART;i++){
if(sd->status.cart[i].nameid==item_data->nameid &&
sd->status.cart[i].card[0] == item_data->card[0] && sd->status.cart[i].card[1] == item_data->card[1] &&
@@ -3147,7 +3147,7 @@ int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amoun
}
}
if(i >= MAX_CART){
- // 装 備品か未所有品だったので空き欄へ追加
+ // ? 備品か未所有品だったので空き欄へ追加
for(i=0;i<MAX_CART;i++){
if(sd->status.cart[i].nameid==0){
memcpy(&sd->status.cart[i],item_data,sizeof(sd->status.cart[0]));
@@ -3167,7 +3167,7 @@ int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amoun
}
/*==========================================
- * カートアイテムを減らす
+ * カ?トアイテムを減らす
*------------------------------------------
*/
int pc_cart_delitem(struct map_session_data *sd,int n,int amount,int type)
@@ -3193,7 +3193,7 @@ int pc_cart_delitem(struct map_session_data *sd,int n,int amount,int type)
}
/*==========================================
- * カートへアイテム移動
+ * カ?トへアイテム移動
*------------------------------------------
*/
int pc_putitemtocart(struct map_session_data *sd,int idx,int amount) {
@@ -3211,7 +3211,7 @@ int pc_putitemtocart(struct map_session_data *sd,int idx,int amount) {
}
/*==========================================
- * カート内のアイテム数確認(個数の差分を返す)
+ * カ?ト?のアイテム?確認(個?の差分を返す)
*------------------------------------------
*/
int pc_cartitem_amount(struct map_session_data *sd,int idx,int amount)
@@ -3226,7 +3226,7 @@ int pc_cartitem_amount(struct map_session_data *sd,int idx,int amount)
return item_data->amount-amount;
}
/*==========================================
- * カートからアイテム移動
+ * カ?トからアイテム移動
*------------------------------------------
*/
@@ -3403,23 +3403,23 @@ int pc_setpos(struct map_session_data *sd,char *mapname_org,int x,int y,int clrt
if(sd->chatID) // チャットから出る
chat_leavechat(sd);
- if(sd->trade_partner) // 取引を中断する
+ if(sd->trade_partner) // 取引を中?する
trade_tradecancel(sd);
if(sd->state.storage_flag)
storage_guild_storage_quit(sd,0);
else
storage_storage_quit(sd); // 倉庫を開いてるなら保存する
- if(sd->party_invite>0) // パーティ勧誘を拒否する
+ if(sd->party_invite>0) // パ?ティ?誘を拒否する
party_reply_invite(sd,sd->party_invite_account,0);
- if(sd->guild_invite>0) // ギルド勧誘を拒否する
+ if(sd->guild_invite>0) // ギルド?誘を拒否する
guild_reply_invite(sd,sd->guild_invite,0);
- if(sd->guild_alliance>0) // ギルド同盟勧誘を拒否する
+ if(sd->guild_alliance>0) // ギルド同盟?誘を拒否する
guild_reply_reqalliance(sd,sd->guild_alliance_account,0);
- skill_castcancel(&sd->bl,0); // 詠唱中断
- pc_stop_walking(sd,0); // 歩行中断
- pc_stopattack(sd); // 攻撃中断
+ skill_castcancel(&sd->bl,0); // 詠唱中?
+ pc_stop_walking(sd,0); // ?行中?
+ pc_stopattack(sd); // 攻?中?
if(pc_issit(sd)) {
pc_setstand(sd);
@@ -3565,14 +3565,14 @@ int pc_setpos(struct map_session_data *sd,char *mapname_org,int x,int y,int clrt
sd->pd->dir = sd->dir;
}
-// map_addblock(&sd->bl); /// ブロック登録とspawnは
+// map_addblock(&sd->bl); /// ブロック登?とspawnは
// clif_spawnpc(sd);
return 0;
}
/*==========================================
- * PCのランダムワープ
+ * PCのランダムワ?プ
*------------------------------------------
*/
int pc_randomwarp(struct map_session_data *sd, int type) {
@@ -3583,7 +3583,7 @@ int pc_randomwarp(struct map_session_data *sd, int type) {
m=sd->bl.m;
- if (map[sd->bl.m].flag.noteleport) // テレポート禁止
+ if (map[sd->bl.m].flag.noteleport) // テレポ?ト禁止
return 0;
do{
@@ -3669,10 +3669,10 @@ int pc_can_reach(struct map_session_data *sd,int x,int y)
}
//
-// 歩 行物
+// ? 行物
//
/*==========================================
- * 次の1歩にかかる時間を計算
+ * 次の1?にかかる時間を計算
*------------------------------------------
*/
static int calc_next_walk_step(struct map_session_data *sd)
@@ -3688,7 +3688,7 @@ static int calc_next_walk_step(struct map_session_data *sd)
}
/*==========================================
- * 半歩進む(timer関数)
+ * 半?進む(timer??)
*------------------------------------------
*/
static int pc_walk(int tid,unsigned int tick,int id,int data)
@@ -3711,7 +3711,7 @@ static int pc_walk(int tid,unsigned int tick,int id,int data)
if(sd->walkpath.path_pos>=sd->walkpath.path_len || sd->walkpath.path_pos!=data)
return 0;
- //歩いたので息吹のタイマーを初期化
+ //?いたので息吹のタイマ?を初期化
sd->inchealspirithptick = 0;
sd->inchealspiritsptick = 0;
@@ -3761,7 +3761,7 @@ static int pc_walk(int tid,unsigned int tick,int id,int data)
map_foreachinmovearea(clif_pcinsight,sd->bl.m,x-AREA_SIZE,y-AREA_SIZE,x+AREA_SIZE,y+AREA_SIZE,-dx,-dy,0,sd);
sd->walktimer = -1;
- if(sd->status.party_id>0){ // パーティのHP情報通知検査
+ if(sd->status.party_id>0){ // パ?ティのHP情報通知?査
struct party *p=party_search(sd->status.party_id);
if(p!=NULL){
int p_flag=0;
@@ -3770,20 +3770,31 @@ static int pc_walk(int tid,unsigned int tick,int id,int data)
sd->party_hp=-1;
}
}
- if(sd->status.option&4) // クローキングの消滅検査
+ if(sd->status.option&4) // クロ?キングの消滅?査
skill_check_cloaking(&sd->bl);
- /* ディボーション検査 */
+ /* ディボ?ション?査 */
for(i=0;i<5;i++)
if(sd->dev.val1[i]){
skill_devotion3(&sd->bl,sd->dev.val1[i]);
break;
}
- /* 被ディボーション検査 */
- if( sd->sc_data && sd->sc_data[SC_DEVOTION].val1){
+ /* 被ディボ?ション?査 */
+ if(sd->sc_data) {
+ if (sd->sc_data[SC_DEVOTION].val1)
skill_devotion2(&sd->bl,sd->sc_data[SC_DEVOTION].val1);
+ if (sd->sc_data[SC_BASILICA].timer != -1) { // Basilica cancels if caster moves [celest]
+ struct skill_unit *su;
+ if ((su = (struct skill_unit *)sd->sc_data[SC_BASILICA].val4)) {
+ struct skill_unit_group *sg;
+ if ((sg = su->group) && sg->src_id == sd->bl.id) {
+ skill_status_change_end(&sd->bl,SC_BASILICA,-1);
+ skill_delunitgroup (sg);
+ }
+ }
+ }
}
- skill_unit_move(&sd->bl,tick,1); // スキルユニットの検査
+ skill_unit_move(&sd->bl,tick,1); // スキルユニットの?査
if(map_getcell(sd->bl.m,x,y)&0x80)
npc_touch_areanpc(sd,sd->bl.m,x,y);
@@ -3801,7 +3812,7 @@ static int pc_walk(int tid,unsigned int tick,int id,int data)
}
/*==========================================
- * 移動可能か確認して、可能なら歩行開始
+ * 移動可能か確認して、可能なら?行開始
*------------------------------------------
*/
static int pc_walktoxy_sub(struct map_session_data *sd)
@@ -3828,7 +3839,7 @@ static int pc_walktoxy_sub(struct map_session_data *sd)
}
/*==========================================
- * pc歩 行要求
+ * pc? 行要求
*------------------------------------------
*/
int pc_walktoxy(struct map_session_data *sd,int x,int y)
@@ -3840,8 +3851,8 @@ int pc_walktoxy(struct map_session_data *sd,int x,int y)
sd->to_y=y;
if(sd->walktimer != -1 && sd->state.change_walk_target==0){
- // 現在歩いている最中の目的地変更なのでマス目の中心に来た時に
- // timer関数からpc_walktoxy_subを呼ぶようにする
+ // 現在?いている最中の目的地?更なのでマス目の中心に?た時に
+ // timer??からpc_walktoxy_subを呼ぶようにする
sd->state.change_walk_target=1;
} else {
pc_walktoxy_sub(sd);
@@ -3851,7 +3862,7 @@ int pc_walktoxy(struct map_session_data *sd,int x,int y)
}
/*==========================================
- * 歩 行停止
+ * ? 行停止
*------------------------------------------
*/
int pc_stop_walking(struct map_session_data *sd,int type)
@@ -3910,7 +3921,7 @@ int pc_movepos(struct map_session_data *sd,int dst_x,int dst_y)
map_foreachinmovearea(clif_pcinsight,sd->bl.m,sd->bl.x-AREA_SIZE,sd->bl.y-AREA_SIZE,sd->bl.x+AREA_SIZE,sd->bl.y+AREA_SIZE,-dx,-dy,0,sd);
- if(sd->status.party_id>0){ // パーティのHP情報通知検査
+ if(sd->status.party_id>0){ // パ?ティのHP情報通知?査
struct party *p=party_search(sd->status.party_id);
if(p!=NULL){
int flag=0;
@@ -3920,10 +3931,10 @@ int pc_movepos(struct map_session_data *sd,int dst_x,int dst_y)
}
}
- if(sd->status.option&4) // クローキングの消滅検査
+ if(sd->status.option&4) // クロ?キングの消滅?査
skill_check_cloaking(&sd->bl);
- skill_unit_move(&sd->bl,gettick(),dist+7); // スキルユニットの検査
+ skill_unit_move(&sd->bl,gettick(),dist+7); // スキルユニットの?査
if(map_getcell(sd->bl.m,sd->bl.x,sd->bl.y)&0x80)
npc_touch_areanpc(sd,sd->bl.m,sd->bl.x,sd->bl.y);
@@ -3933,10 +3944,10 @@ int pc_movepos(struct map_session_data *sd,int dst_x,int dst_y)
}
//
-// 武器戦闘
+// 武器??
//
/*==========================================
- * スキルの検索 所有していた場合Lvが返る
+ * スキルの?索 所有していた場合Lvが返る
*------------------------------------------
*/
int pc_checkskill(struct map_session_data *sd,int skill_id)
@@ -3956,12 +3967,12 @@ int pc_checkskill(struct map_session_data *sd,int skill_id)
}
/*==========================================
- * 武器変更によるスキルの継続チェック
- * 引数:
- * struct map_session_data *sd セッションデータ
- * int nameid 装備品ID
+ * 武器?更によるスキルの??チェック
+ * 引?:
+ * struct map_session_data *sd セッションデ?タ
+ * int nameid ?備品ID
* 返り値:
- * 0 変更なし
+ * 0 ?更なし
* -1 スキルを解除
*------------------------------------------
*/
@@ -3976,16 +3987,16 @@ int pc_checkallowskill(struct map_session_data *sd)
skill_status_change_end(&sd->bl,SC_TWOHANDQUICKEN,-1); // 2HQを解除
return -1;
}
- if(!(skill_get_weapontype(LK_AURABLADE)&(1<<sd->status.weapon)) && sd->sc_data[SC_AURABLADE].timer!=-1) { /* オーラブレード */
- skill_status_change_end(&sd->bl,SC_AURABLADE,-1); /* オーラブレードを解除 */
+ if(!(skill_get_weapontype(LK_AURABLADE)&(1<<sd->status.weapon)) && sd->sc_data[SC_AURABLADE].timer!=-1) { /* オ?ラブレ?ド */
+ skill_status_change_end(&sd->bl,SC_AURABLADE,-1); /* オ?ラブレ?ドを解除 */
return -1;
}
if(!(skill_get_weapontype(LK_PARRYING)&(1<<sd->status.weapon)) && sd->sc_data[SC_PARRYING].timer!=-1) { /* パリイング */
skill_status_change_end(&sd->bl,SC_PARRYING,-1); /* パリイングを解除 */
return -1;
}
- if(!(skill_get_weapontype(LK_CONCENTRATION)&(1<<sd->status.weapon)) && sd->sc_data[SC_CONCENTRATION].timer!=-1) { /* コンセントレーション */
- skill_status_change_end(&sd->bl,SC_CONCENTRATION,-1); /* コンセントレーションを解除 */
+ if(!(skill_get_weapontype(LK_CONCENTRATION)&(1<<sd->status.weapon)) && sd->sc_data[SC_CONCENTRATION].timer!=-1) { /* コンセントレ?ション */
+ skill_status_change_end(&sd->bl,SC_CONCENTRATION,-1); /* コンセントレ?ションを解除 */
return -1;
}
if(!(skill_get_weapontype(CR_SPEARQUICKEN)&(1<<sd->status.weapon)) && sd->sc_data[SC_SPEARSQUICKEN].timer!=-1){ // スピアクィッケン
@@ -3998,15 +4009,15 @@ int pc_checkallowskill(struct map_session_data *sd)
}
if(sd->status.shield <= 0) {
- if(sd->sc_data[SC_AUTOGUARD].timer!=-1){ // オートガード
+ if(sd->sc_data[SC_AUTOGUARD].timer!=-1){ // オ?トガ?ド
skill_status_change_end(&sd->bl,SC_AUTOGUARD,-1);
return -1;
}
- if(sd->sc_data[SC_DEFENDER].timer!=-1){ // ディフェンダー
+ if(sd->sc_data[SC_DEFENDER].timer!=-1){ // ディフェンダ?
skill_status_change_end(&sd->bl,SC_DEFENDER,-1);
return -1;
}
- if(sd->sc_data[SC_REFLECTSHIELD].timer!=-1){ //リフレクトシールド
+ if(sd->sc_data[SC_REFLECTSHIELD].timer!=-1){ //リフレクトシ?ルド
skill_status_change_end(&sd->bl,SC_REFLECTSHIELD,-1);
return -1;
}
@@ -4016,7 +4027,7 @@ int pc_checkallowskill(struct map_session_data *sd)
}
/*==========================================
- * 装 備品のチェック
+ * ? 備品のチェック
*------------------------------------------
*/
int pc_checkequip(struct map_session_data *sd,int pos)
@@ -4034,18 +4045,18 @@ int pc_checkequip(struct map_session_data *sd,int pos)
}
/*==========================================
- * 転生職や養子職の元の職業を返す
+ * ?生職や養子職の元の職業を返す
*------------------------------------------
*/
struct pc_base_job pc_calc_base_job(int b_class)
{
struct pc_base_job bj;
- //転生や養子の場合の元の職業を算出する
+ //?生や養子の場合の元の職業を算出する
//if(b_class < MAX_PC_CLASS){ //通常
if(b_class < 4001){
bj.job = b_class;
bj.upper = 0;
- }else if(b_class >= 4001 && b_class < 4023){ //転生職
+ }else if(b_class >= 4001 && b_class < 4023){ //?生職
// Athena almost never uses this... well, used this. :3
bj.job = b_class - 4001;
bj.upper = 1;
@@ -4059,7 +4070,7 @@ struct pc_base_job pc_calc_base_job(int b_class)
bj.upper = 2;
}
- if(battle_config.enable_upper_class==0){ //confで無効になっていたらupper=0
+ if(battle_config.enable_upper_class==0){ //confで無?になっていたらupper=0
bj.upper = 0;
}
@@ -4099,7 +4110,7 @@ int pc_calc_upper(int b_class)
}
/*==========================================
- * PCの攻撃 (timer関数)
+ * PCの攻? (timer??)
*------------------------------------------
*/
int pc_attack_timer(int tid,unsigned int tick,int id,int data)
@@ -4130,13 +4141,13 @@ int pc_attack_timer(int tid,unsigned int tick,int id,int data)
if(bl->type == BL_PC && pc_isdead((struct map_session_data *)bl))
return 0;
- // 同じmapでないなら攻撃しない
- // PCが死んでても攻撃しない
+ // 同じmapでないなら攻?しない
+ // PCが死んでても攻?しない
if(sd->bl.m != bl->m || pc_isdead(sd))
return 0;
- //if( sd->opt1>0 || sd->status.option&2 || sd->status.option&16388) // 異常などで攻撃できない
- if( sd->opt1>0 || sd->status.option&2 || sd->status.option&16384) // 異常などで攻撃できない
+ //if( sd->opt1>0 || sd->status.option&2 || sd->status.option&16388) // 異常などで攻?できない
+ if( sd->opt1>0 || sd->status.option&2 || sd->status.option&16384) // 異常などで攻?できない
return 0;
if(sd->sc_data[SC_AUTOCOUNTER].timer != -1)
@@ -4164,7 +4175,7 @@ int pc_attack_timer(int tid,unsigned int tick,int id,int data)
dist = distance(sd->bl.x,sd->bl.y,bl->x,bl->y);
range = sd->attackrange;
if(sd->status.weapon != 11) range++;
- if( dist > range ){ // 届 かないので移動
+ if( dist > range ){ // ? かないので移動
if(pc_can_reach(sd,bl->x,bl->y))
clif_movetoattack(sd,bl);
return 0;
@@ -4192,13 +4203,13 @@ int pc_attack_timer(int tid,unsigned int tick,int id,int data)
if(sd->status.pet_id > 0 && sd->pd && sd->petDB && battle_config.pet_attack_support)
pet_target_check(sd,bl,0);
map_freeblock_unlock();
- if(sd->skilltimer != -1 && (skill = pc_checkskill(sd,SA_FREECAST)) > 0 ) // フリーキャスト
+ if(sd->skilltimer != -1 && (skill = pc_checkskill(sd,SA_FREECAST)) > 0 ) // フリ?キャスト
sd->attackabletime = tick + ((sd->aspd<<1)*(150 - skill*5)/100);
else
sd->attackabletime = tick + (sd->aspd<<1);
}
else if(sd->attackabletime <= tick) {
- if(sd->skilltimer != -1 && (skill = pc_checkskill(sd,SA_FREECAST)) > 0 ) // フリーキャスト
+ if(sd->skilltimer != -1 && (skill = pc_checkskill(sd,SA_FREECAST)) > 0 ) // フリ?キャスト
sd->attackabletime = tick + ((sd->aspd<<1)*(150 - skill*5)/100);
else
sd->attackabletime = tick + (sd->aspd<<1);
@@ -4214,8 +4225,8 @@ int pc_attack_timer(int tid,unsigned int tick,int id,int data)
}
/*==========================================
- * 攻撃要求
- * typeが1なら継続攻撃
+ * 攻?要求
+ * typeが1なら??攻?
*------------------------------------------
*/
int pc_attack(struct map_session_data *sd,int target_id,int type)
@@ -4243,10 +4254,10 @@ int pc_attack(struct map_session_data *sd,int target_id,int type)
sd->state.attack_continue=type;
d=DIFF_TICK(sd->attackabletime,gettick());
- if(d>0 && d<2000){ // 攻撃delay中
+ if(d>0 && d<2000){ // 攻?delay中
sd->attacktimer=add_timer(sd->attackabletime,pc_attack_timer,sd->bl.id,0);
} else {
- // 本来timer関数なので引数を合わせる
+ // 本?timer??なので引?を合わせる
pc_attack_timer(-1,gettick(),sd->bl.id,0);
}
@@ -4254,7 +4265,7 @@ int pc_attack(struct map_session_data *sd,int target_id,int type)
}
/*==========================================
- * 継続攻撃停止
+ * ??攻?停止
*------------------------------------------
*/
int pc_stopattack(struct map_session_data *sd)
@@ -4337,7 +4348,7 @@ int pc_checkbaselevelup(struct map_session_data *sd)
if(sd->status.base_exp >= next && next > 0){
struct pc_base_job s_class = pc_calc_base_job(sd->status.class);
- // base側レベルアップ処理
+ // base側レベルアップ?理
sd->status.base_exp -= next;
sd->status.base_level ++;
@@ -4358,8 +4369,8 @@ int pc_checkbaselevelup(struct map_session_data *sd)
}
clif_misceffect(&sd->bl,0);
- //レベルアップしたのでパーティー情報を更新する
- //(公平範囲チェック)
+ //レベルアップしたのでパ?ティ?情報を更新する
+ //(公平範?チェック)
party_send_movemap(sd);
return 1;
}
@@ -4374,7 +4385,7 @@ int pc_checkjoblevelup(struct map_session_data *sd)
nullpo_retr(0, sd);
if(sd->status.job_exp >= next && next > 0){
- // job側レベルアップ処理
+ // job側レベルアップ?理
sd->status.job_exp -= next;
sd->status.job_level ++;
clif_updatestatus(sd,SP_JOBLEVEL);
@@ -4391,7 +4402,7 @@ int pc_checkjoblevelup(struct map_session_data *sd)
}
/*==========================================
- * 経験値取得
+ * ??値取得
*------------------------------------------
*/
int pc_gainexp(struct map_session_data *sd,int base_exp,int job_exp)
@@ -4453,7 +4464,7 @@ int pc_gainexp(struct map_session_data *sd,int base_exp,int job_exp)
}
/*==========================================
- * base level側必要経験値計算
+ * base level側必要??値計算
*------------------------------------------
*/
int pc_nextbaseexp(struct map_session_data *sd)
@@ -4477,7 +4488,7 @@ int pc_nextbaseexp(struct map_session_data *sd)
}
/*==========================================
- * job level側必要経験値計算
+ * job level側必要??値計算
*------------------------------------------
*/
int pc_nextjobexp(struct map_session_data *sd)
@@ -4549,7 +4560,7 @@ int pc_nextjobafter(struct map_session_data *sd)
}
/*==========================================
- * 必要ステータスポイント計算
+ * 必要ステ?タスポイント計算
*------------------------------------------
*/
int pc_need_status_point(struct map_session_data *sd,int type)
@@ -4756,19 +4767,19 @@ int pc_allskillup(struct map_session_data *sd)
{
int i,id;
int c=0, s=0;
- //転生や養子の場合の元の職業を算出する
+ //?生や養子の場合の元の職業を算出する
struct pc_base_job s_class;
nullpo_retr(0, sd);
s_class = pc_calc_base_job(sd->status.class);
c = s_class.job;
- s = (s_class.upper==1) ? 1 : 0 ; //転生以外は通常のスキル?
+ s = (s_class.upper==1) ? 1 : 0 ; //?生以外は通常のスキル?
for(i=0;i<MAX_SKILL;i++){
sd->status.skill[i].id=0;
if (sd->status.skill[i].flag && sd->status.skill[i].flag != 13){ // cardスキルなら、
- sd->status.skill[i].lv=(sd->status.skill[i].flag==1)?0:sd->status.skill[i].flag-2; // 本当のlvに
+ sd->status.skill[i].lv=(sd->status.skill[i].flag==1)?0:sd->status.skill[i].flag-2; // 本?のlvに
sd->status.skill[i].flag=0; // flagは0にしておく
}
}
@@ -4966,7 +4977,7 @@ int pc_resetskill(struct map_session_data* sd)
}
/*==========================================
- * pcにダメージを与える
+ * pcにダメ?ジを?える
*------------------------------------------
*/
int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
@@ -4976,9 +4987,9 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
nullpo_retr(0, sd);
- //転生や養子の場合の元の職業を算出する
+ //?生や養子の場合の元の職業を算出する
s_class = pc_calc_base_job(sd->status.class);
- // 既に死んでいたら無効
+ // ?に死んでいたら無?
if(pc_isdead(sd))
return 0;
// 座ってたら立ち上がる
@@ -4987,13 +4998,13 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
skill_gangsterparadise(sd,0);
}
- // 歩 いていたら足を止める
+ // ? いていたら足を止める
if(sd->sc_data[SC_ENDURE].timer == -1 && sd->sc_data[SC_BERSERK].timer && !sd->special_state.infinite_endure)
pc_stop_walking(sd,3);
else if(sd->sc_data[SC_ENDURE].timer != -1 && src->type==BL_MOB) // [Celest]
if((--sd->sc_data[SC_ENDURE].val2) <= 0)
skill_status_change_end(&sd->bl, SC_ENDURE, -1);
- // 演奏/ダンスの中断
+ // 演奏/ダンスの中?
if(damage > sd->status.max_hp>>2)
skill_stop_dancing(&sd->bl,0);
@@ -5016,7 +5027,7 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
if(sd->status.hp<sd->status.max_hp>>2 && pc_checkskill(sd,SM_AUTOBERSERK)>0 &&
(sd->sc_data[SC_PROVOKE].timer==-1 || sd->sc_data[SC_PROVOKE].val2==0 ))
- // オートバーサーク発動
+ // オ?トバ?サ?ク?動
skill_status_change_start(&sd->bl,SC_PROVOKE,10,1,0,0,0,0);
sd->canlog_tick = gettick();
@@ -5048,8 +5059,8 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
skill_unit_out_all(&sd->bl,gettick(),1);
if(sd->sc_data[SC_BLADESTOP].timer!=-1)//白刃は事前に解除
skill_status_change_end(&sd->bl,SC_BLADESTOP,-1);
- pc_setglobalreg(sd,"PC_DIE_COUNTER",++sd->die_counter); //死にカウンター書き込み
- skill_status_change_clear(&sd->bl,0); // ステータス異常を解除する
+ pc_setglobalreg(sd,"PC_DIE_COUNTER",++sd->die_counter); //死にカウンタ?書き?み
+ skill_status_change_clear(&sd->bl,0); // ステ?タス異常を解除する
clif_updatestatus(sd,SP_HP);
pc_calcstatus(sd,0);
@@ -5104,7 +5115,7 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
}
}
- //ナイトメアモードアイテムドロップ
+ //ナイトメアモ?ドアイテムドロップ
if(map[sd->bl.m].flag.pvp_nightmaredrop){ // Moved this outside so it works when PVP isnt enabled and during pk mode [Ancyker]
for(j=0;j<MAX_DROP_PER_MAP;j++){
int id = map[sd->bl.m].drop_list[j].drop_id;
@@ -5115,7 +5126,7 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
if(id == -1){//ランダムドロップ
int eq_num=0,eq_n[MAX_INVENTORY];
memset(eq_n,0,sizeof(eq_n));
- //先ず装備しているアイテム数をカウント
+ //先ず?備しているアイテム?をカウント
for(i=0;i<MAX_INVENTORY;i++){
int k;
if( (type == 1 && !sd->status.inventory[i].equip)
@@ -5132,7 +5143,7 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
}
}
if(eq_num > 0){
- int n = eq_n[rand()%eq_num];//該当アイテムの中からランダム
+ int n = eq_n[rand()%eq_num];//該?アイテムの中からランダム
if(rand()%10000 < per){
if(sd->status.inventory[n].equip)
pc_unequipitem(sd,n,0,BF_NORMAL);
@@ -5166,7 +5177,7 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
//} //fixed wrong '{' placement by Lupus
pc_setdead(sd);
}
- // 強制送還
+ // ?制送還
if( sd->pvp_point < 0 ){
sd->pvp_point=0;
pc_setstand(sd);
@@ -5185,10 +5196,10 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
}
//
-// script関 連
+// script? 連
//
/*==========================================
- * script用PCステータス読み出し
+ * script用PCステ?タス?み出し
*------------------------------------------
*/
int pc_readparam(struct map_session_data *sd,int type)
@@ -5288,7 +5299,7 @@ int pc_readparam(struct map_session_data *sd,int type)
}
/*==========================================
- * script用PCステータス設定
+ * script用PCステ?タス設定
*------------------------------------------
*/
int pc_setparam(struct map_session_data *sd,int type,int val)
@@ -5434,7 +5445,7 @@ int pc_heal(struct map_session_data *sd,int hp,int sp)
sp = 0;
}
- if(sd->sc_data && sd->sc_data[SC_BERSERK].timer!=-1) //バーサーク中は回復させないらしい
+ if(sd->sc_data && sd->sc_data[SC_BERSERK].timer!=-1) //バ?サ?ク中は回復させないらしい
return 0;
if(hp+sd->status.hp>sd->status.max_hp)
@@ -5475,7 +5486,7 @@ int pc_itemheal(struct map_session_data *sd,int hp,int sp)
nullpo_retr(0, sd);
- if(sd->sc_data && sd->sc_data[SC_GOSPEL].timer!=-1) //バーサーク中は回復させないらしい
+ if(sd->sc_data && sd->sc_data[SC_GOSPEL].timer!=-1) //バ?サ?ク中は回復させないらしい
return 0;
if(sd->state.potionpitcher_flag) {
@@ -5594,9 +5605,9 @@ int pc_percentheal(struct map_session_data *sd,int hp,int sp)
}
/*==========================================
- * 職変更
- * 引数 job 職業 0〜23
- * upper 通常 0, 転生 1, 養子 2, そのまま -1
+ * 職?更
+ * 引? job 職業 0〜23
+ * upper 通常 0, ?生 1, 養子 2, そのまま -1
* Rewrote to make it tidider [Celest]
*------------------------------------------
*/
@@ -5604,12 +5615,12 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
{
int i;
int b_class = 0;
- //転生や養子の場合の元の職業を算出する
+ //?生や養子の場合の元の職業を算出する
struct pc_base_job s_class = pc_calc_base_job(sd->status.class);
nullpo_retr(0, sd);
- if (upper < 0 || upper > 2) //現在転生かどうかを判断する
+ if (upper < 0 || upper > 2) //現在?生かどうかを判?する
upper = s_class.upper;
b_class = job; //通常職ならjobそのまんま
@@ -5619,7 +5630,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
else if (upper == 2) //養子に結婚はないけどどうせ次で蹴られるからいいや
b_class += 4023;
} else if (job == 23) {
- if (upper == 1) //転生にスパノビは存在しないのでお断り
+ if (upper == 1) //?生にスパノビは存在しないのでお?り
return 1;
else if (upper == 2)
b_class += 4022;
@@ -5633,7 +5644,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) ||
// not needed [celest]
//(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;
// check if we are changing from 1st to 2nd job
@@ -5654,7 +5665,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
for(i=0;i<11;i++) {
if(sd->equip_index[i] >= 0)
if(!pc_isequip(sd,sd->equip_index[i]))
- pc_unequipitem(sd,sd->equip_index[i],1,BF_NORMAL); // 装備外し
+ pc_unequipitem(sd,sd->equip_index[i],1,BF_NORMAL); // ?備外し
}
clif_changelook(&sd->bl,LOOK_BASE,sd->view_class); // move sprite update to prevent client crashes with incompatible equipment [Valaris]
@@ -5679,7 +5690,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
}
/*==========================================
- * 見た目変更
+ * 見た目?更
*------------------------------------------
*/
int pc_equiplookall(struct map_session_data *sd)
@@ -5701,7 +5712,7 @@ int pc_equiplookall(struct map_session_data *sd)
}
/*==========================================
- * 見た目変更
+ * 見た目?更
*------------------------------------------
*/
int pc_changelook(struct map_session_data *sd,int type,int val)
@@ -5742,7 +5753,7 @@ int pc_changelook(struct map_session_data *sd,int type,int val)
}
/*==========================================
- * 付属品(鷹,ペコ,カート)設定
+ * 付?品(鷹,ペコ,カ?ト)設定
*------------------------------------------
*/
int pc_setoption(struct map_session_data *sd,int type)
@@ -5757,7 +5768,7 @@ int pc_setoption(struct map_session_data *sd,int type)
}
/*==========================================
- * カート設定
+ * カ?ト設定
*------------------------------------------
*/
int pc_setcart(struct map_session_data *sd,int type)
@@ -5766,8 +5777,8 @@ int pc_setcart(struct map_session_data *sd,int type)
nullpo_retr(0, sd);
- if(pc_checkskill(sd,MC_PUSHCART)>0){ // プッシュカートスキル所持
- if(!pc_iscarton(sd)){ // カートを付けていない
+ if(pc_checkskill(sd,MC_PUSHCART)>0){ // プッシュカ?トスキル所持
+ if(!pc_iscarton(sd)){ // カ?トを付けていない
pc_setoption(sd,cart[type]);
clif_cart_itemlist(sd);
clif_cart_equiplist(sd);
@@ -5788,7 +5799,7 @@ int pc_setcart(struct map_session_data *sd,int type)
*/
int pc_setfalcon(struct map_session_data *sd)
{
- if(pc_checkskill(sd,HT_FALCON)>0){ // ファルコンマスタリースキル所持
+ if(pc_checkskill(sd,HT_FALCON)>0){ // ファルコンマスタリ?スキル所持
pc_setoption(sd,sd->status.option|0x0010);
}
@@ -5826,7 +5837,7 @@ int pc_setriding(struct map_session_data *sd)
}
/*==========================================
- * script用変数の値を読む
+ * script用??の値を?む
*------------------------------------------
*/
int pc_readreg(struct map_session_data *sd,int reg)
@@ -5842,7 +5853,7 @@ int pc_readreg(struct map_session_data *sd,int reg)
return 0;
}
/*==========================================
- * script用変数の値を設定
+ * script用??の値を設定
*------------------------------------------
*/
int pc_setreg(struct map_session_data *sd,int reg,int val)
@@ -5873,7 +5884,7 @@ int pc_setreg(struct map_session_data *sd,int reg,int val)
}
/*==========================================
- * script用文字列変数の値を読む
+ * script用文字列??の値を?む
*------------------------------------------
*/
char *pc_readregstr(struct map_session_data *sd,int reg)
@@ -5889,7 +5900,7 @@ char *pc_readregstr(struct map_session_data *sd,int reg)
return NULL;
}
/*==========================================
- * script用文字列変数の値を設定
+ * script用文字列??の値を設定
*------------------------------------------
*/
int pc_setregstr(struct map_session_data *sd,int reg,char *str)
@@ -5924,7 +5935,7 @@ int pc_setregstr(struct map_session_data *sd,int reg,char *str)
}
/*==========================================
- * script用グローバル変数の値を読む
+ * script用グロ?バル??の値を?む
*------------------------------------------
*/
int pc_readglobalreg(struct map_session_data *sd,char *reg)
@@ -5942,7 +5953,7 @@ int pc_readglobalreg(struct map_session_data *sd,char *reg)
}
/*==========================================
- * script用グローバル変数の値を設定
+ * script用グロ?バル??の値を設定
*------------------------------------------
*/
int pc_setglobalreg(struct map_session_data *sd,char *reg,int val)
@@ -5951,7 +5962,7 @@ int pc_setglobalreg(struct map_session_data *sd,char *reg,int val)
nullpo_retr(0, sd);
- //PC_DIE_COUNTERがスクリプトなどで変更された時の処理
+ //PC_DIE_COUNTERがスクリプトなどで?更された時の?理
if(strcmp(reg,"PC_DIE_COUNTER") == 0 && sd->die_counter != val){
sd->die_counter = val;
pc_calcstatus(sd,0);
@@ -5985,7 +5996,7 @@ int pc_setglobalreg(struct map_session_data *sd,char *reg,int val)
}
/*==========================================
- * script用アカウント変数の値を読む
+ * script用アカウント??の値を?む
*------------------------------------------
*/
int pc_readaccountreg(struct map_session_data *sd,char *reg)
@@ -6002,7 +6013,7 @@ int pc_readaccountreg(struct map_session_data *sd,char *reg)
return 0;
}
/*==========================================
- * script用アカウント変数の値を設定
+ * script用アカウント??の値を設定
*------------------------------------------
*/
int pc_setaccountreg(struct map_session_data *sd,char *reg,int val)
@@ -6042,7 +6053,7 @@ int pc_setaccountreg(struct map_session_data *sd,char *reg,int val)
return 1;
}
/*==========================================
- * script用アカウント変数2の値を読む
+ * script用アカウント??2の値を?む
*------------------------------------------
*/
int pc_readaccountreg2(struct map_session_data *sd,char *reg)
@@ -6059,7 +6070,7 @@ int pc_readaccountreg2(struct map_session_data *sd,char *reg)
return 0;
}
/*==========================================
- * script用アカウント変数2の値を設定
+ * script用アカウント??2の値を設定
*------------------------------------------
*/
int pc_setaccountreg2(struct map_session_data *sd,char *reg,int val)
@@ -6099,7 +6110,7 @@ int pc_setaccountreg2(struct map_session_data *sd,char *reg,int val)
return 1;
}
/*==========================================
- * 精錬成功率
+ * 精?成功率
*------------------------------------------
*/
int pc_percentrefinery(struct map_session_data *sd,struct item *item)
@@ -6109,9 +6120,9 @@ int pc_percentrefinery(struct map_session_data *sd,struct item *item)
nullpo_retr(0, item);
percent=percentrefinery[itemdb_wlv(item->nameid)][(int)item->refine];
- percent += pc_checkskill(sd,BS_WEAPONRESEARCH); // 武器研究スキル所持
+ percent += pc_checkskill(sd,BS_WEAPONRESEARCH); // 武器?究スキル所持
- // 確率の有効範囲チェック
+ // 確率の有?範?チェック
if( percent > 100 ){
percent = 100;
}
@@ -6123,7 +6134,7 @@ int pc_percentrefinery(struct map_session_data *sd,struct item *item)
}
/*==========================================
- * イベントタイマー処理
+ * イベントタイマ??理
*------------------------------------------
*/
int pc_eventtimer(int tid,unsigned int tick,int id,int data)
@@ -6150,7 +6161,7 @@ int pc_eventtimer(int tid,unsigned int tick,int id,int data)
}
/*==========================================
- * イベントタイマー追加
+ * イベントタイマ?追加
*------------------------------------------
*/
int pc_addeventtimer(struct map_session_data *sd,int tick,const char *name)
@@ -6173,7 +6184,7 @@ int pc_addeventtimer(struct map_session_data *sd,int tick,const char *name)
}
/*==========================================
- * イベントタイマー削除
+ * イベントタイマ?削除
*------------------------------------------
*/
int pc_deleventtimer(struct map_session_data *sd,const char *name)
@@ -6194,7 +6205,7 @@ int pc_deleventtimer(struct map_session_data *sd,const char *name)
}
/*==========================================
- * イベントタイマーカウント値追加
+ * イベントタイマ?カウント値追加
*------------------------------------------
*/
int pc_addeventtimercount(struct map_session_data *sd,const char *name,int tick)
@@ -6214,7 +6225,7 @@ int pc_addeventtimercount(struct map_session_data *sd,const char *name,int tick)
}
/*==========================================
- * イベントタイマー全削除
+ * イベントタイマ?全削除
*------------------------------------------
*/
int pc_cleareventtimer(struct map_session_data *sd)
@@ -6233,17 +6244,17 @@ int pc_cleareventtimer(struct map_session_data *sd)
}
//
-// 装 備物
+// ? 備物
//
/*==========================================
- * アイテムを装備する
+ * アイテムを?備する
*------------------------------------------
*/
int pc_equipitem(struct map_session_data *sd,int n,int pos)
{
int i,nameid, arrow;
struct item_data *id;
- //転生や養子の場合の元の職業を算出する
+ //?生や養子の場合の元の職業を算出する
nullpo_retr(0, sd);
@@ -6264,7 +6275,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int pos)
return 0;
}
- if(pos==0x88){ // アクセサリ用例外処理
+ if(pos==0x88){ // アクセサリ用例外?理
int epor=0;
if(sd->equip_index[0] >= 0)
epor |= sd->status.inventory[sd->equip_index[0]].equip;
@@ -6274,10 +6285,10 @@ int pc_equipitem(struct map_session_data *sd,int n,int pos)
pos = epor == 0x08 ? 0x80 : 0x08;
}
- // 二刀流処理
- if ((pos==0x22) // 一応、装備要求箇所が二刀流武器かチェックする
- && (id->equip==2) // 単 手武器
- && (pc_checkskill(sd, AS_LEFT) > 0 || sd->status.class == 12) ) // 左手修錬有
+ // 二刀流?理
+ if ((pos==0x22) // 一?、?備要求箇所が二刀流武器かチェックする
+ && (id->equip==2) // ? 手武器
+ && (pc_checkskill(sd, AS_LEFT) > 0 || sd->status.class == 12) ) // 左手修?有
{
int tpos=0;
if(sd->equip_index[8] >= 0)
@@ -6294,10 +6305,10 @@ int pc_equipitem(struct map_session_data *sd,int n,int pos)
pc_unequipitem(sd,sd->equip_index[i],1,BF_NORMAL);
}
}
- // 弓矢装備
+ // 弓矢?備
if(pos==0x8000){
clif_arrowequip(sd,n);
- clif_arrow_fail(sd,3); // 3=矢が装備できました
+ clif_arrow_fail(sd,3); // 3=矢が?備できました
}
else
clif_equipitemack(sd,n,pos,1);
@@ -6359,7 +6370,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int pos)
if(sd->status.inventory[n].equip & 0x0040)
clif_changelook(&sd->bl,LOOK_SHOES,0);
- pc_checkallowskill(sd); // 装備品でスキルか解除されるかチェック
+ pc_checkallowskill(sd); // ?備品でスキルか解除されるかチェック
if (itemdb_look(sd->status.inventory[n].nameid) == 11 && arrow){ // Added by RoVeRT
clif_arrowequip(sd,arrow);
sd->status.inventory[arrow].equip=32768;
@@ -6384,7 +6395,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int pos)
}
/*==========================================
- * 装 備した物を外す
+ * ? 備した物を外す
*------------------------------------------
*/
int pc_unequipitem(struct map_session_data *sd,int n,int type, int flag)
@@ -6441,7 +6452,7 @@ int pc_unequipitem(struct map_session_data *sd,int n,int type, int flag)
if(!type)
pc_checkallowskill(sd);
if(sd->weapontype1 == 0 && sd->weapontype2 == 0)
- skill_encchant_eremental_end(&sd->bl,-1); //武器持ち誓えは無条件で属性付与解除
+ skill_encchant_eremental_end(&sd->bl,-1); //武器持ち誓えは無?件で?性付?解除
} else {
clif_unequipitemack(sd,n,0,0);
}
@@ -6455,8 +6466,8 @@ int pc_unequipitem(struct map_session_data *sd,int n,int type, int flag)
}
/*==========================================
- * アイテムのindex番号を詰めたり
- * 装 備品の装備可能チェックを行なう
+ * アイテムのindex番?を詰めたり
+ * ? 備品の?備可能チェックを行なう
*------------------------------------------
*/
int pc_checkitem(struct map_session_data *sd)
@@ -6487,7 +6498,7 @@ int pc_checkitem(struct map_session_data *sd)
for(k=j;k<MAX_INVENTORY;k++)
sd->inventory_data[k] = NULL;
- // カート内空き詰め
+ // カ?ト?空き詰め
for(i=j=0;i<MAX_CART;i++){
if( (id=sd->status.cart[i].nameid)==0 )
continue;
@@ -6505,7 +6516,7 @@ int pc_checkitem(struct map_session_data *sd)
if(j < MAX_CART)
memset(&sd->status.cart[j],0,sizeof(struct item)*(MAX_CART-j));
- // 装 備位置チェック
+ // ? 備位置チェック
for(i=0;i<MAX_INVENTORY;i++){
@@ -6517,7 +6528,7 @@ int pc_checkitem(struct map_session_data *sd)
sd->status.inventory[i].equip=0;
calc_flag = 1;
}
- //装備制限チェック
+ //?備制限チェック
if(sd->status.inventory[i].equip && map[sd->bl.m].flag.pvp && (it->flag.no_equip==1 || it->flag.no_equip==3)){//PvP制限
sd->status.inventory[i].equip=0;
calc_flag = 1;
@@ -6625,7 +6636,7 @@ int pc_calc_pvprank_timer(int tid,unsigned int tick,int id,int data)
}
/*==========================================
- * sdは結婚しているか(既婚の場合は相方のchar_idを返す)
+ * sdは結婚しているか(?婚の場合は相方のchar_idを返す)
*------------------------------------------
*/
int pc_ismarried(struct map_session_data *sd)
@@ -6638,7 +6649,7 @@ int pc_ismarried(struct map_session_data *sd)
return 0;
}
/*==========================================
- * sdがdstsdと結婚(dstsd→sdの結婚処理も同時に行う)
+ * sdがdstsdと結婚(dstsd→sdの結婚?理も同時に行う)
*------------------------------------------
*/
int pc_marriage(struct map_session_data *sd,struct map_session_data *dstsd)
@@ -6651,7 +6662,7 @@ int pc_marriage(struct map_session_data *sd,struct map_session_data *dstsd)
}
/*==========================================
- * sdが離婚(相手はsd->status.partner_idに依る)(相手も同時に離婚・結婚指輪自動剥奪)
+ * sdが離婚(相手はsd->status.partner_idに依る)(相手も同時に離婚?結婚指輪自動?奪)
*------------------------------------------
*/
int pc_divorce(struct map_session_data *sd)
@@ -6721,7 +6732,7 @@ static int pc_spheal(struct map_session_data *sd)
a = natural_heal_diff_tick;
if(pc_issit(sd)) a += a;
- if( sd->sc_data[SC_MAGNIFICAT].timer!=-1 ) // マグニフィカート
+ if( sd->sc_data[SC_MAGNIFICAT].timer!=-1 ) // マグニフィカ?ト
a += a;
gc=guild_mapname2gc(sd->mapname); // Increased guild castle regen [Valaris]
@@ -7025,9 +7036,9 @@ static int pc_natural_heal_sub(struct map_session_data *sd,va_list ap) {
sd->sc_data[SC_POISON].timer == -1 &&
sd->sc_data[SC_BERSERK].timer == -1 ) {
pc_natural_heal_hp(sd);
- if( sd->sc_data && sd->sc_data[SC_EXTREMITYFIST].timer == -1 && //阿修羅状態ではSPが回復しない
- sd->sc_data[SC_DANCING].timer == -1 && //ダンス状態ではSPが回復しない
- sd->sc_data[SC_BERSERK].timer == -1 ) //バーサーク状態ではSPが回復しない
+ if( sd->sc_data && sd->sc_data[SC_EXTREMITYFIST].timer == -1 && //阿修羅?態ではSPが回復しない
+ sd->sc_data[SC_DANCING].timer == -1 && //ダンス?態ではSPが回復しない
+ sd->sc_data[SC_BERSERK].timer == -1 ) //バ?サ?ク?態ではSPが回復しない
pc_natural_heal_sp(sd);
} else {
sd->hp_sub = sd->inchealhptick = 0;
@@ -7046,7 +7057,7 @@ static int pc_natural_heal_sub(struct map_session_data *sd,va_list ap) {
}
/*==========================================
- * HP/SP自然回復 (interval timer関数)
+ * HP/SP自然回復 (interval timer??)
*------------------------------------------
*/
int pc_natural_heal(int tid,unsigned int tick,int id,int data)
@@ -7060,7 +7071,7 @@ int pc_natural_heal(int tid,unsigned int tick,int id,int data)
}
/*==========================================
- * セーブポイントの保存
+ * セ?ブポイントの保存
*------------------------------------------
*/
int pc_setsavepoint(struct map_session_data *sd,char *mapname,int x,int y)
@@ -7075,7 +7086,7 @@ int pc_setsavepoint(struct map_session_data *sd,char *mapname,int x,int y)
}
/*==========================================
- * 自動セーブ 各クライアント
+ * 自動セ?ブ 各クライアント
*------------------------------------------
*/
static int last_save_fd,save_flag;
@@ -7116,7 +7127,7 @@ static int pc_autosave_sub(struct map_session_data *sd,va_list ap)
}
/*==========================================
- * 自動セーブ (timer関数)
+ * 自動セ?ブ (timer??)
*------------------------------------------
*/
int pc_autosave(int tid,unsigned int tick,int id,int data)
@@ -7238,14 +7249,14 @@ void pc_setstand(struct map_session_data *sd){
// 初期化物
//
/*==========================================
- * 設定ファイル読み込む
- * exp.txt 必要経験値
- * job_db1.txt 重量,hp,sp,攻撃速度
- * job_db2.txt job能力値ボーナス
- * skill_tree.txt 各職毎のスキルツリー
- * attr_fix.txt 属性修正テーブル
- * size_fix.txt サイズ補正テーブル
- * refine_db.txt 精錬データテーブル
+ * 設定ファイル?み?む
+ * exp.txt 必要??値
+ * job_db1.txt 重量,hp,sp,攻?速度
+ * job_db2.txt job能力値ボ?ナス
+ * skill_tree.txt 各職?のスキルツリ?
+ * attr_fix.txt ?性修正テ?ブル
+ * size_fix.txt サイズ補正テ?ブル
+ * refine_db.txt 精?デ?タテ?ブル
*------------------------------------------
*/
int pc_readdb(void)
@@ -7255,7 +7266,7 @@ int pc_readdb(void)
FILE *fp;
char line[1024],*p;
- // 必要経験値読み込み
+ // 必要??値?み?み
fp=fopen("db/exp.txt","r");
if(fp==NULL){
@@ -7290,7 +7301,7 @@ int pc_readdb(void)
fclose(fp);
printf("read db/exp.txt done\n");
- // JOB補正数値1
+ // JOB補正?値1
fp=fopen("db/job_db1.txt","r");
if(fp==NULL){
printf("can't read db/job_db1.txt\n");
@@ -7324,7 +7335,7 @@ int pc_readdb(void)
fclose(fp);
printf("read db/job_db1.txt done\n");
- // JOBボーナス
+ // JOBボ?ナス
fp=fopen("db/job_db2.txt","r");
if(fp==NULL){
printf("can't read db/job_db2.txt\n");
@@ -7338,7 +7349,7 @@ int pc_readdb(void)
if(sscanf(p,"%d",&k)==0)
break;
job_bonus[0][i][j]=k;
- job_bonus[2][i][j]=k; //養子職のボーナスは分からないので仮
+ job_bonus[2][i][j]=k; //養子職のボ?ナスは分からないので?
p=strchr(p,',');
if(p) p++;
}
@@ -7352,7 +7363,7 @@ int pc_readdb(void)
fclose(fp);
printf("read db/job_db2.txt done\n");
- // JOBボーナス2 転生職用
+ // JOBボ?ナス2 ?生職用
fp=fopen("db/job_db2-2.txt","r");
if(fp==NULL){
printf("can't read db/job_db2-2.txt\n");
@@ -7376,7 +7387,7 @@ int pc_readdb(void)
fclose(fp);
printf("read db/job_db2-2.txt done\n");
- // スキルツリー
+ // スキルツリ?
memset(skill_tree,0,sizeof(skill_tree));
fp=fopen("db/skill_tree.txt","r");
if(fp==NULL){
@@ -7417,7 +7428,7 @@ int pc_readdb(void)
fclose(fp);
printf("read db/skill_tree.txt done\n");
- // 属性修正テーブル
+ // ?性修正テ?ブル
for(i=0;i<4;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
@@ -7463,7 +7474,7 @@ int pc_readdb(void)
fclose(fp);
printf("read db/attr_fix.txt done\n");
- // サイズ補正テーブル
+ // サイズ補正テ?ブル
for(i=0;i<3;i++)
for(j=0;j<20;j++)
atkmods[i][j]=100;
@@ -7492,7 +7503,7 @@ int pc_readdb(void)
fclose(fp);
printf("read db/size_fix.txt done\n");
- // 精錬データテーブル
+ // 精?デ?タテ?ブル
for(i=0;i<5;i++){
for(j=0;j<10;j++)
percentrefinery[i][j]=100;
@@ -7518,9 +7529,9 @@ int pc_readdb(void)
p=strchr(p,',');
if(p) *p++=0;
}
- refinebonus[i][0]=atoi(split[0]); // 精錬ボーナス
- refinebonus[i][1]=atoi(split[1]); // 過剰精錬ボーナス
- refinebonus[i][2]=atoi(split[2]); // 安全精錬限界
+ refinebonus[i][0]=atoi(split[0]); // 精?ボ?ナス
+ refinebonus[i][1]=atoi(split[1]); // 過?精?ボ?ナス
+ refinebonus[i][2]=atoi(split[2]); // 安全精?限界
for(j=0;j<10 && split[j];j++)
percentrefinery[i][j]=atoi(split[j+3]);
i++;
@@ -7583,7 +7594,7 @@ static void pc_statpointdb(void)
}
/*==========================================
- * pc関 係初期化
+ * pc? 係初期化
*------------------------------------------
*/
int do_init_pc(void) {
diff --git a/src/map/skill.c b/src/map/skill.c
index 619a21890..e99c1d93a 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -5003,7 +5003,7 @@ struct skill_unit_group *skill_unitsetting( struct block_list *src, int skillid,
range=3;
//Fix to prevent the priest from walking while Basilica is up.
battle_stopwalking(src,1);
- skill_status_change_start(src,SC_ANKLE,skilllv,0,0,0,limit,0);
+ //skill_status_change_start(src,SC_ANKLE,skilllv,0,0,0,limit,0);
//sd->canmove_tick = gettick() + limit; // added later [celest]
break;
case PA_GOSPEL: /* ゴスペル */
@@ -5258,6 +5258,12 @@ struct skill_unit_group *skill_unitsetting( struct block_list *src, int skillid,
unit->val2=val2;
unit->limit=limit;
unit->range=range;
+
+ // [celest]
+ if (sc_data) {
+ if (sc_data[SC_BASILICA].timer!=-1) // attach Basilica's id to the caster
+ sc_data[SC_BASILICA].val4 = (int)unit;
+ }
}
}
return group;
@@ -6722,14 +6728,25 @@ int skill_use_id( struct map_session_data *sd, int target_id,
}
if(sc_data[SC_BLADESTOP].timer != -1){
- int lv = sc_data[SC_BLADESTOP].val1;
- if(sc_data[SC_BLADESTOP].val2==1) return 0;//白羽された側なのでダメ
- if(lv==1) return 0;
- if(lv==2 && skill_num!=MO_FINGEROFFENSIVE) return 0;
- if(lv==3 && skill_num!=MO_FINGEROFFENSIVE && skill_num!=MO_INVESTIGATE) return 0;
- if(lv==4 && skill_num!=MO_FINGEROFFENSIVE && skill_num!=MO_INVESTIGATE && skill_num!=MO_CHAINCOMBO) return 0;
- if(lv==5 && skill_num!=MO_FINGEROFFENSIVE && skill_num!=MO_INVESTIGATE && skill_num!=MO_CHAINCOMBO && skill_num!=MO_EXTREMITYFIST) return 0;
- }
+ int lv = sc_data[SC_BLADESTOP].val1;
+ if(sc_data[SC_BLADESTOP].val2==1) return 0;//白羽された側なのでダメ
+ if(lv==1) return 0;
+ if(lv==2 && skill_num!=MO_FINGEROFFENSIVE) return 0;
+ if(lv==3 && skill_num!=MO_FINGEROFFENSIVE && skill_num!=MO_INVESTIGATE) return 0;
+ if(lv==4 && skill_num!=MO_FINGEROFFENSIVE && skill_num!=MO_INVESTIGATE && skill_num!=MO_CHAINCOMBO) return 0;
+ if(lv==5 && skill_num!=MO_FINGEROFFENSIVE && skill_num!=MO_INVESTIGATE && skill_num!=MO_CHAINCOMBO && skill_num!=MO_EXTREMITYFIST) return 0;
+ }
+
+ if (sc_data[SC_BASILICA].timer != -1) { // Basilica cancels if caster moves [celest]
+ struct skill_unit *su;
+ if ((su = (struct skill_unit *)sc_data[SC_BASILICA].val4)) {
+ struct skill_unit_group *sg;
+ if ((sg = su->group) && sg->src_id == sd->bl.id) {
+ skill_status_change_end(&sd->bl,SC_BASILICA,-1);
+ skill_delunitgroup (sg);
+ }
+ }
+ }
}
if(sd->status.option&4 && skill_num==TF_HIDING)
@@ -7014,6 +7031,17 @@ int skill_use_pos( struct map_session_data *sd,
sc_data[SC_BERSERK].timer != -1 ||
sd->sc_data[SC_MARIONETTE].timer != -1)
return 0; /* ?態異常や沈?など */
+
+ if (sc_data[SC_BASILICA].timer != -1) { // Basilica cancels if caster moves [celest]
+ struct skill_unit *su;
+ if ((su = (struct skill_unit *)sc_data[SC_BASILICA].val4)) {
+ struct skill_unit_group *sg;
+ if ((sg = su->group) && sg->src_id == sd->bl.id) {
+ skill_status_change_end(&sd->bl,SC_BASILICA,-1);
+ skill_delunitgroup (sg);
+ }
+ }
+ }
}
if(sd->status.option&2)