diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/atcommand.c | 30 | ||||
-rw-r--r-- | src/map/skill.c | 2842 |
2 files changed, 1436 insertions, 1436 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 3c06a77..681cccf 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -212,7 +212,7 @@ ATCOMMAND_FUNC (wgm); ATCOMMAND_FUNC (ipcheck); /*========================================== - *AtCommandInfo atcommand_info[]�\���̂̒�` + *AtCommandInfo atcommand_info[]構造体の定義 *------------------------------------------ */ @@ -619,7 +619,7 @@ int e_mail_check (unsigned char *email) } /*========================================== - * get_atcommand_level @�R�}���h�̕K�v���x�����擾 + * get_atcommand_level @コマンドの必要レベルを取得 *------------------------------------------ */ int get_atcommand_level (const AtCommandType type) @@ -705,7 +705,7 @@ void gm_log (const char *fmt, ...) } /*========================================== - *is_atcommand @�R�}���h�ɑ��݂��邩�ǂ����m�F���� + *is_atcommand @コマンドに存在するかどうか確認する *------------------------------------------ */ AtCommandType @@ -1757,7 +1757,7 @@ int atcommand_speed (const int fd, struct map_session_data *sd, { sd->speed = speed; //sd->walktimer = x; - //���̕���lj� by �� + //この文を追加 by れ clif_updatestatus (sd, SP_SPEED); clif_displaymessage (fd, msg_table[8]); // Speed changed. } @@ -2400,7 +2400,7 @@ int atcommand_pvpoff (const int fd, struct map_session_data *sd, map[sd->bl.m].flag.pvp = 0; clif_send0199 (sd->bl.m, 0); for (i = 0; i < fd_max; i++) - { //�l�������[�v + { //人数分ループ if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth) { @@ -2546,11 +2546,11 @@ int atcommand_model (const int fd, struct map_session_data *sd, hair_color >= MIN_HAIR_COLOR && hair_color <= MAX_HAIR_COLOR && cloth_color >= MIN_CLOTH_COLOR && cloth_color <= MAX_CLOTH_COLOR) { - //���̐F�ύX + //服の色変更 if (cloth_color != 0 && sd->status.sex == 1 && (sd->status.class == 12 || sd->status.class == 17)) { - //���̐F�������E�̔��� + //服の色未実装職の判定 clif_displaymessage (fd, msg_table[35]); // You can't use this command with this class. return -1; } @@ -3208,8 +3208,8 @@ int atcommand_produce (const int fd, struct map_session_data *sd, tmp_item.card[0] = 0x00ff; tmp_item.card[1] = ((star * 5) << 8) + attribute; *((unsigned long *) (&tmp_item.card[2])) = sd->char_id; - clif_produceeffect (sd, 0, item_id); // �����G�t�F�N�g�p�P�b�g - clif_misceffect (&sd->bl, 3); // ���l�ɂ�������ʒm + clif_produceeffect (sd, 0, item_id); // 製造エフェクトパケット + clif_misceffect (&sd->bl, 3); // 他人にも成功を通知 if ((flag = pc_additem (sd, &tmp_item, 1))) clif_additem (sd, 0, 0, flag); } @@ -4483,7 +4483,7 @@ int atcommand_raisemap (const int fd, struct map_session_data *sd, } /*========================================== - * atcommand_character_baselevel @charbaselvl�őΏۃL�����̃��x�����グ�� + * atcommand_character_baselevel @charbaselvlで対象キャラのレベルを上げる *------------------------------------------ */ int atcommand_character_baselevel (const int fd, struct map_session_data *sd, @@ -4573,11 +4573,11 @@ int atcommand_character_baselevel (const int fd, struct map_session_data *sd, return -1; } - return 0; //����I�� + return 0; //正常終了 } /*========================================== - * atcommand_character_joblevel @charjoblvl�őΏۃL������Job���x�����グ�� + * atcommand_character_joblevel @charjoblvlで対象キャラのJobレベルを上げる *------------------------------------------ */ int atcommand_character_joblevel (const int fd, struct map_session_data *sd, @@ -4586,7 +4586,7 @@ int atcommand_character_joblevel (const int fd, struct map_session_data *sd, struct map_session_data *pl_sd; char character[100]; int max_level = 50, level = 0; - //�]����{�q�̏ꍇ�̌��̐E�Ƃ��Z�o���� + //転生や養子の場合の元の職業を算出する struct pc_base_job pl_s_class; memset (character, '\0', sizeof (character)); @@ -4607,7 +4607,7 @@ int atcommand_character_joblevel (const int fd, struct map_session_data *sd, { // you can change job level only lower or same gm level if (pl_s_class.job == 0) max_level -= 40; - if ((pl_s_class.job == 23) || (pl_s_class.upper == 1 && pl_s_class.type == 2)) //�X�p�m�r�Ɠ]���E��Job���x���̍ō���70 + if ((pl_s_class.job == 23) || (pl_s_class.upper == 1 && pl_s_class.type == 2)) //スパノビと転生職はJobレベルの最高が70 max_level += 20; if (level > 0) @@ -5051,7 +5051,7 @@ int atcommand_agitend (const int fd, struct map_session_data *sd, } /*========================================== - * @mapexit�Ń}�b�v�T�[�o�[���I�������� + * @mapexitでマップサーバーを終了させる *------------------------------------------ */ int atcommand_mapexit (const int fd, struct map_session_data *sd, diff --git a/src/map/skill.c b/src/map/skill.c index 5745374..8a2b6b5 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1,5 +1,5 @@ // $Id: skill.c,v 1.8 2004/09/25 05:32:19 MouseJstr Exp $ -/* �X�L���W */ +/* スキル関係 */ #include <stdio.h> #include <stdlib.h> @@ -31,92 +31,92 @@ #define STATE_BLIND 0x10 -/* �X�L���ԍ������X�e�[�^�X�ُ�ԍ��ϊ��e�[�u�� */ -int SkillStatusChangeTable[] = { /* skill.h��enum��SC_***�Ƃ��킹�邱�� */ +/* スキル番号=>ステータス異常番号変換テーブル */ +int SkillStatusChangeTable[] = { /* skill.hのenumのSC_***とあわせること */ /* 0- */ -1, -1, -1, -1, -1, -1, - SC_PROVOKE, /* �v���{�b�N */ + SC_PROVOKE, /* プロボック */ -1, 1, -1, /* 10- */ - SC_SIGHT, /* �T�C�g */ + SC_SIGHT, /* サイト */ -1, -1, -1, -1, - SC_FREEZE, /* �t���X�g�_�C�o�[ */ - SC_STONE, /* �X�g�[���J�[�X */ + SC_FREEZE, /* フロストダイバー */ + SC_STONE, /* ストーンカース */ -1, -1, -1, /* 20- */ -1, -1, -1, -1, - SC_RUWACH, /* ���A�t */ + SC_RUWACH, /* ルアフ */ -1, -1, -1, -1, - SC_INCREASEAGI, /* ���x���� */ + SC_INCREASEAGI, /* 速度増加 */ /* 30- */ - SC_DECREASEAGI, /* ���x���� */ + SC_DECREASEAGI, /* 速度減少 */ -1, - SC_SIGNUMCRUCIS, /* �V�O�i���N���V�X */ - SC_ANGELUS, /* �G���W�F���X */ - SC_BLESSING, /* �u���b�V���O */ + SC_SIGNUMCRUCIS, /* シグナムクルシス */ + SC_ANGELUS, /* エンジェラス */ + SC_BLESSING, /* ブレッシング */ -1, -1, -1, -1, -1, /* 40- */ -1, -1, -1, -1, -1, - SC_CONCENTRATE, /* �W���͌��� */ + SC_CONCENTRATE, /* 集中力向上 */ -1, -1, -1, -1, /* 50- */ -1, - SC_HIDING, /* �n�C�f�B���O */ + SC_HIDING, /* ハイディング */ -1, -1, -1, -1, -1, -1, -1, -1, /* 60- */ SC_TWOHANDQUICKEN, /* 2HQ */ SC_AUTOCOUNTER, -1, -1, -1, -1, - SC_IMPOSITIO, /* �C���|�V�e�B�I�}�k�X */ - SC_SUFFRAGIUM, /* �T�t���M�E�� */ - SC_ASPERSIO, /* �A�X�y���V�I */ - SC_BENEDICTIO, /* ���̍~�� */ + SC_IMPOSITIO, /* インポシティオマヌス */ + SC_SUFFRAGIUM, /* サフラギウム */ + SC_ASPERSIO, /* アスペルシオ */ + SC_BENEDICTIO, /* 聖体降福 */ /* 70- */ -1, SC_SLOWPOISON, -1, - SC_KYRIE, /* �L���G�G���C�\�� */ - SC_MAGNIFICAT, /* �}�O�j�t�B�J�[�g */ - SC_GLORIA, /* �O�����A */ - SC_DIVINA, /* ���b�N�X�f�B�r�[�i */ + SC_KYRIE, /* キリエエレイソン */ + SC_MAGNIFICAT, /* マグニフィカート */ + SC_GLORIA, /* グロリア */ + SC_DIVINA, /* レックスディビーナ */ -1, - SC_AETERNA, /* ���b�N�X�G�[�e���i */ + SC_AETERNA, /* レックスエーテルナ */ -1, /* 80- */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 90- */ -1, -1, - SC_QUAGMIRE, /* �N�@�O�}�C�A */ + SC_QUAGMIRE, /* クァグマイア */ -1, -1, -1, -1, -1, -1, -1, /* 100- */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 110- */ -1, - SC_ADRENALINE, /* �A�h���i�������b�V�� */ - SC_WEAPONPERFECTION, /* �E�F�|���p�[�t�F�N�V���� */ - SC_OVERTHRUST, /* �I�[�o�[�g���X�g */ - SC_MAXIMIZEPOWER, /* �}�L�V�}�C�Y�p���[ */ + SC_ADRENALINE, /* アドレナリンラッシュ */ + SC_WEAPONPERFECTION, /* ウェポンパーフェクション */ + SC_OVERTHRUST, /* オーバートラスト */ + SC_MAXIMIZEPOWER, /* マキシマイズパワー */ -1, -1, -1, -1, -1, /* 120- */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 130- */ -1, -1, -1, -1, -1, - SC_CLOAKING, /* �N���[�L���O */ - SC_STAN, /* �\�j�b�N�u���[ */ + SC_CLOAKING, /* クローキング */ + SC_STAN, /* ソニックブロー */ -1, - SC_ENCPOISON, /* �G���`�����g�|�C�Y�� */ - SC_POISONREACT, /* �|�C�Y�����A�N�g */ + SC_ENCPOISON, /* エンチャントポイズン */ + SC_POISONREACT, /* ポイズンリアクト */ /* 140- */ - SC_POISON, /* �x�m���_�X�g */ - SC_SPLASHER, /* �x�i���X�v���b�V���[ */ + SC_POISON, /* ベノムダスト */ + SC_SPLASHER, /* ベナムスプラッシャー */ -1, - SC_TRICKDEAD, /* ���ӂ� */ + SC_TRICKDEAD, /* 死んだふり */ -1, -1, -1, -1, -1, -1, /* 150- */ -1, -1, -1, -1, -1, - SC_LOUD, /* ���E�h�{�C�X */ + SC_LOUD, /* ラウドボイス */ -1, - SC_ENERGYCOAT, /* �G�i�W�[�R�[�g */ + SC_ENERGYCOAT, /* エナジーコート */ -1, -1, /* 160- */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -719,7 +719,7 @@ static const int diry[8] = { 1, 1, 0, -1, -1, -1, 0, 1 }; static int rdamage; -/* �X�L���f�[�^�x�[�X */ +/* スキルデータベース */ struct skill_db skill_db[MAX_SKILL_DB]; #define UNARMED_PLAYER_DAMAGE_MIN(bl) (skill_power_bl((bl), TMW_BRAWLING) >> 4) // +50 for 200 @@ -835,7 +835,7 @@ int skill_get_castnodex (int id, int lv) return (lv <= 0) ? 0 : skill_db[id].castnodex[lv - 1]; } -/* �v���g�^�C�v */ +/* プロトタイプ */ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid, int skilllv, int x, int y, int flag); @@ -878,136 +878,136 @@ static int distance (int x0, int y0, int x1, int y1) return dx > dy ? dx : dy; } -/* �X�L�����j�b�gID��Ԃ��i������f�[�^�x�[�X�ɓ��ꂽ���ȁj */ +/* スキルユニットIDを返す(これもデータベースに入れたいな) */ int skill_get_unit_id (int id, int flag) { switch (id) { case MG_SAFETYWALL: - return 0x7e; /* �Z�C�t�e�B�E�H�[�� */ + return 0x7e; /* セイフティウォール */ case MG_FIREWALL: - return 0x7f; /* �t�@�C�A�[�E�H�[�� */ + return 0x7f; /* ファイアーウォール */ case AL_WARP: - return (flag == 0) ? 0x81 : 0x80; /* ���[�v�|�[�^�� */ + return (flag == 0) ? 0x81 : 0x80; /* ワープポータル */ case PR_BENEDICTIO: - return 0x82; /* ���̍~�� */ + return 0x82; /* 聖体降福 */ case PR_SANCTUARY: - return 0x83; /* �T���N�`���A�� */ + return 0x83; /* サンクチュアリ */ case PR_MAGNUS: - return 0x84; /* �}�O�k�X�G�N�\�V�Y�� */ + return 0x84; /* マグヌスエクソシズム */ case AL_PNEUMA: - return 0x85; /* �j���[�} */ + return 0x85; /* ニューマ */ case MG_THUNDERSTORM: - return 0x86; /* �T���_�[�X�g�[�� */ + return 0x86; /* サンダーストーム */ case WZ_HEAVENDRIVE: - return 0x86; /* �w�����Y�h���C�u */ + return 0x86; /* ヘヴンズドライブ */ case WZ_SIGHTRASHER: - return 0x86; /* �T�C�g���b�V���[ */ + return 0x86; /* サイトラッシャー */ case WZ_METEOR: - return 0x86; /* ���e�I�X�g�[�� */ + return 0x86; /* メテオストーム */ case WZ_VERMILION: - return 0x86; /* ���[�h�I�u���@�[�~���I�� */ + return 0x86; /* ロードオブヴァーミリオン */ case WZ_FROSTNOVA: - return 0x86; /* �t���X�g�m���@ */ + return 0x86; /* フロストノヴァ */ case WZ_STORMGUST: - return 0x86; /* �X�g�[���K�X�g(�Ƃ肠����LoV�Ɠ����ŏ���) */ + return 0x86; /* ストームガスト(とりあえずLoVと同じで処理) */ case CR_GRANDCROSS: - return 0x86; /* �O�����h�N���X */ + return 0x86; /* グランドクロス */ case WZ_FIREPILLAR: - return (flag == 0) ? 0x87 : 0x88; /* �t�@�C�A�[�s���[ */ + return (flag == 0) ? 0x87 : 0x88; /* ファイアーピラー */ case HT_TALKIEBOX: - return 0x99; /* �g�[�L�[�{�b�N�X */ + return 0x99; /* トーキーボックス */ case WZ_ICEWALL: - return 0x8d; /* �A�C�X�E�H�[�� */ + return 0x8d; /* アイスウォール */ case WZ_QUAGMIRE: - return 0x8e; /* �N�@�O�}�C�A */ + return 0x8e; /* クァグマイア */ case HT_BLASTMINE: - return 0x8f; /* �u���X�g�}�C�� */ + return 0x8f; /* ブラストマイン */ case HT_SKIDTRAP: - return 0x90; /* �X�L�b�h�g���b�v */ + return 0x90; /* スキッドトラップ */ case HT_ANKLESNARE: - return 0x91; /* �A���N���X�l�A */ + return 0x91; /* アンクルスネア */ case AS_VENOMDUST: - return 0x92; /* �x�m���_�X�g */ + return 0x92; /* ベノムダスト */ case HT_LANDMINE: - return 0x93; /* �����h�}�C�� */ + return 0x93; /* ランドマイン */ case HT_SHOCKWAVE: - return 0x94; /* �V���b�N�E�F�[�u�g���b�v */ + return 0x94; /* ショックウェーブトラップ */ case HT_SANDMAN: - return 0x95; /* �T���h�}�� */ + return 0x95; /* サンドマン */ case HT_FLASHER: - return 0x96; /* �t���b�V���[ */ + return 0x96; /* フラッシャー */ case HT_FREEZINGTRAP: - return 0x97; /* �t���[�W���O�g���b�v */ + return 0x97; /* フリージングトラップ */ case HT_CLAYMORETRAP: - return 0x98; /* �N���C���A�[�g���b�v */ + return 0x98; /* クレイモアートラップ */ case SA_VOLCANO: - return 0x9a; /* �{���P�[�m */ + return 0x9a; /* ボルケーノ */ case SA_DELUGE: - return 0x9b; /* �f�����[�W */ + return 0x9b; /* デリュージ */ case SA_VIOLENTGALE: - return 0x9c; /* �o�C�I�����g�Q�C�� */ + return 0x9c; /* バイオレントゲイル */ case SA_LANDPROTECTOR: - return 0x9d; /* �����h�v���e�N�^�[ */ + return 0x9d; /* ランドプロテクター */ case BD_LULLABY: - return 0x9e; /* �q��� */ + return 0x9e; /* 子守歌 */ case BD_RICHMANKIM: - return 0x9f; /* �j�����h�̉� */ + return 0x9f; /* ニヨルドの宴 */ case BD_ETERNALCHAOS: - return 0xa0; /* �i���̍��� */ + return 0xa0; /* 永遠の混沌 */ case BD_DRUMBATTLEFIELD: - return 0xa1; /* �푾�ۂ̋��� */ + return 0xa1; /* 戦太鼓の響き */ case BD_RINGNIBELUNGEN: - return 0xa2; /* �j�[�x�����O�̎w�� */ + return 0xa2; /* ニーベルングの指輪 */ case BD_ROKISWEIL: - return 0xa3; /* ���L�̋��� */ + return 0xa3; /* ロキの叫び */ case BD_INTOABYSS: - return 0xa4; /* �[���̒��� */ + return 0xa4; /* 深淵の中に */ case BD_SIEGFRIED: - return 0xa5; /* �s���g�̃W�[�N�t���[�h */ + return 0xa5; /* 不死身のジークフリード */ case BA_DISSONANCE: - return 0xa6; /* �s���a�� */ + return 0xa6; /* 不協和音 */ case BA_WHISTLE: - return 0xa7; /* ���J */ + return 0xa7; /* 口笛 */ case BA_ASSASSINCROSS: - return 0xa8; /* �[�z�̃A�T�V���N���X */ + return 0xa8; /* 夕陽のアサシンクロス */ case BA_POEMBRAGI: - return 0xa9; /* �u���M�̎� */ + return 0xa9; /* ブラギの詩 */ case BA_APPLEIDUN: - return 0xaa; /* �C�h�D���̗ь� */ + return 0xaa; /* イドゥンの林檎 */ case DC_UGLYDANCE: - return 0xab; /* ��������ȃ_���X */ + return 0xab; /* 自分勝手なダンス */ case DC_HUMMING: - return 0xac; /* �n�~���O */ + return 0xac; /* ハミング */ case DC_DONTFORGETME: - return 0xad; /* ����Y��Ȃ��Łc */ + return 0xad; /* 私を忘れないで… */ case DC_FORTUNEKISS: - return 0xae; /* �K�^�̃L�X */ + return 0xae; /* 幸運のキス */ case DC_SERVICEFORYOU: - return 0xaf; /* �T�[�r�X�t�H�[���[ */ + return 0xaf; /* サービスフォーユー */ case RG_GRAFFITI: - return 0xb0; /* �O���t�B�e�B */ + return 0xb0; /* グラフィティ */ case AM_DEMONSTRATION: - return 0xb1; /* �f�����X�g���[�V���� */ + return 0xb1; /* デモンストレーション */ case WE_CALLPARTNER: - return 0xb2; /* ���Ȃ��Ɉ������� */ + return 0xb2; /* あなたに逢いたい */ case PA_GOSPEL: - return 0xb3; /* �S�X�y�� */ + return 0xb3; /* ゴスペル */ case HP_BASILICA: - return 0xb4; /* �o�W���J */ + return 0xb4; /* バジリカ */ case PF_FOGWALL: - return 0xb6; /* �t�H�O�E�H�[�� */ + return 0xb6; /* フォグウォール */ case PF_SPIDERWEB: - return 0xb7; /* �X�p�C�_�[�E�F�b�u */ + return 0xb7; /* スパイダーウェッブ */ } return 0; /* - * 0x89,0x8a,0x8b �\������ - * 0x9a �������̉r���݂����ȃG�t�F�N�g - * 0x9b �������̉r���݂����ȃG�t�F�N�g - * 0x9c �������̉r���݂����ȃG�t�F�N�g - * 0x9d ���������ȃG�t�F�N�g + * 0x89,0x8a,0x8b 表示無し + * 0x9a 炎属性の詠唱みたいなエフェクト + * 0x9b 水属性の詠唱みたいなエフェクト + * 0x9c 風属性の詠唱みたいなエフェクト + * 0x9d 白い小さなエフェクト * 0xb1 Alchemist Demonstration * 0xb2 = Pink Warp Portal * 0xb3 = Gospel For Paladin @@ -1021,14 +1021,14 @@ int skill_get_unit_id (int id, int flag) } /*========================================== - * �X�L���lj����� + * スキル追加効果 *------------------------------------------ */ int skill_additional_effect (struct block_list *src, struct block_list *bl, int skillid, int skilllv, int attack_type, unsigned int tick) { - /* MOB�lj����ʃX�L���p */ + /* MOB追加効果スキル用 */ const int sc[] = { SC_POISON, SC_BLIND, SC_SILENCE, SC_STAN, SC_STONE, SC_CURSE, SC_SLEEP @@ -1063,7 +1063,7 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, } else if (src->type == BL_MOB) { - nullpo_retr (0, md = (struct mob_data *) src); //���g�p�H + nullpo_retr (0, md = (struct mob_data *) src); //未使用? } sc_def_phys_shield_spell = 0; @@ -1071,13 +1071,13 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, sc_def_phys_shield_spell = battle_get_sc_data (bl)[SC_PHYS_SHIELD].val1; - //�Ώۂ̑ϐ� + //対象の耐性 luk = battle_get_luk (bl); sc_def_mdef = 100 - (3 + battle_get_mdef (bl) + luk / 3); sc_def_vit = 100 - (3 + battle_get_vit (bl) + luk / 3); sc_def_int = 100 - (3 + battle_get_int (bl) + luk / 3); sc_def_luk = 100 - (3 + luk); - //�����̑ϐ� + //自分の耐性 luk = battle_get_luk (src); sc_def_mdef2 = 100 - (3 + battle_get_mdef (src) + luk / 3); sc_def_vit2 = 100 - (3 + battle_get_vit (src) + luk / 3); @@ -1087,7 +1087,7 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, dstsd = (struct map_session_data *) bl; else if (bl->type == BL_MOB) { - dstmd = (struct mob_data *) bl; //���g�p�H + dstmd = (struct mob_data *) bl; //未使用? if (sc_def_mdef > 50) sc_def_mdef = 50; if (sc_def_vit > 50) @@ -1106,8 +1106,8 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, switch (skillid) { - case 0: /* �ʏ�U�� */ - /* ������ */ + case 0: /* 通常攻撃 */ + /* 自動鷹 */ if (sd && pc_isfalcon (sd) && sd->status.weapon == 11 && (skill = pc_checkskill (sd, HT_BLITZBEAT)) > 0 && MRAND (1000) <= sd->paramc[5] * 10 / 3 + 1) @@ -1117,7 +1117,7 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, (skill < lv) ? skill : lv, tick, 0xf00000); } - // �X�i�b�`���[ + // スナッチャー if (sd && sd->status.weapon != 11 && (skill = pc_checkskill (sd, RG_SNATCHER)) > 0) if ((skill * 15 + 55) + @@ -1131,7 +1131,7 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, } break; - case SM_BASH: /* �o�b�V���i�}���U���j */ + case SM_BASH: /* バッシュ(急所攻撃) */ if (sd && (skill = pc_checkskill (sd, SM_FATALBLOW)) > 0) { if (MRAND (100) < 6 * (skilllv - 5) * sc_def_vit / 100) @@ -1141,8 +1141,8 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, } break; - case TF_POISON: /* �C���x�i�� */ - case AS_SPLASHER: /* �x�i���X�v���b�V���[ */ + case TF_POISON: /* インベナム */ + case AS_SPLASHER: /* ベナムスプラッシャー */ if (MRAND (100) < (2 * skilllv + 10) * sc_def_vit / 100) skill_status_change_start (bl, SC_POISON, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), @@ -1154,14 +1154,14 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, } break; - case AS_SONICBLOW: /* �\�j�b�N�u���[ */ + case AS_SONICBLOW: /* ソニックブロー */ if (MRAND (100) < (2 * skilllv + 10) * sc_def_vit / 100) skill_status_change_start (bl, SC_STAN, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); break; - case HT_FREEZINGTRAP: /* �t���[�W���O�g���b�v */ + case HT_FREEZINGTRAP: /* フリージングトラップ */ rate = skilllv * 3 + 35; if (MRAND (100) < rate * sc_def_mdef / 100) skill_status_change_start (bl, SC_FREEZE, skilllv, 0, 0, 0, @@ -1169,8 +1169,8 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, 0); break; - case MG_FROSTDIVER: /* �t���X�g�_�C�o�[ */ - case WZ_FROSTNOVA: /* �t���X�g�m���@ */ + case MG_FROSTDIVER: /* フロストダイバー */ + case WZ_FROSTNOVA: /* フロストノヴァ */ rate = (skilllv * 3 + 35) * sc_def_mdef / 100 - (battle_get_int (bl) + battle_get_luk (bl)) / 15; @@ -1183,7 +1183,7 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, clif_skill_fail (sd, skillid, 0, 0); break; - case WZ_STORMGUST: /* �X�g�[���K�X�g */ + case WZ_STORMGUST: /* ストームガスト */ { struct status_change *sc_data = battle_get_sc_data (bl); if (sc_data) @@ -1198,14 +1198,14 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, } break; - case HT_LANDMINE: /* �����h�}�C�� */ + case HT_LANDMINE: /* ランドマイン */ if (MRAND (100) < (5 * skilllv + 30) * sc_def_vit / 100) skill_status_change_start (bl, SC_STAN, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); break; - case HT_SHOCKWAVE: /* �V���b�N�E�F�[�u�g���b�v */ + case HT_SHOCKWAVE: /* ショックウェーブトラップ */ if (map[bl->m].flag.pvp && dstsd) { dstsd->status.sp -= @@ -1213,51 +1213,51 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, pc_calcstatus (dstsd, 0); } break; - case HT_SANDMAN: /* �T���h�}�� */ + case HT_SANDMAN: /* サンドマン */ if (MRAND (100) < (5 * skilllv + 30) * sc_def_int / 100) skill_status_change_start (bl, SC_SLEEP, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); break; - case TF_SPRINKLESAND: /* ���܂� */ + case TF_SPRINKLESAND: /* 砂まき */ if (MRAND (100) < 15 * sc_def_int / 100) skill_status_change_start (bl, SC_BLIND, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); break; - case TF_THROWSTONE: /* �Γ��� */ + case TF_THROWSTONE: /* 石投げ */ if (MRAND (100) < 5 * sc_def_vit / 100) skill_status_change_start (bl, SC_STAN, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); break; - case CR_HOLYCROSS: /* �z�[���[�N���X */ + case CR_HOLYCROSS: /* ホーリークロス */ if (MRAND (100) < 3 * skilllv * sc_def_int / 100) skill_status_change_start (bl, SC_BLIND, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); break; - case CR_GRANDCROSS: /* �O�����h�N���X */ + case CR_GRANDCROSS: /* グランドクロス */ { int race = battle_get_race (bl); - if ((battle_check_undead (race, battle_get_elem_type (bl)) || race == 6) && MRAND (100) < 100000 * sc_def_int / 100) //�����t�^�������S�ϐ��ɂ͖��� + if ((battle_check_undead (race, battle_get_elem_type (bl)) || race == 6) && MRAND (100) < 100000 * sc_def_int / 100) //強制付与だが完全耐性には無効 skill_status_change_start (bl, SC_BLIND, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); } break; - case CR_SHIELDCHARGE: /* �V�[���h�`���[�W */ + case CR_SHIELDCHARGE: /* シールドチャージ */ if (MRAND (100) < (15 + skilllv * 5) * sc_def_vit / 100) skill_status_change_start (bl, SC_STAN, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); break; - case RG_RAID: /* �T�v���C�Y�A�^�b�N */ + case RG_RAID: /* サプライズアタック */ if (MRAND (100) < (10 + 3 * skilllv) * sc_def_vit / 100) skill_status_change_start (bl, SC_STAN, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), @@ -1281,14 +1281,14 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, 0); break; - case BD_LULLABY: /* �q��S */ + case BD_LULLABY: /* 子守唄 */ if (MRAND (100) < 15 * sc_def_int / 100) skill_status_change_start (bl, SC_SLEEP, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); break; - /* MOB�̒lj����ʕt���X�L�� */ + /* MOBの追加効果付きスキル */ case NPC_PETRIFYATTACK: if (MRAND (100) < sc_def_mdef) @@ -1361,20 +1361,20 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, skill_get_time2 (skillid, skilllv), 0); break; - case ST_REJECTSWORD: /* �t���[�W���O�g���b�v */ + case ST_REJECTSWORD: /* フリージングトラップ */ if (MRAND (100) < (10 + skilllv * 5)) skill_status_change_start (bl, SC_AUTOCOUNTER, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); break; - case PF_FOGWALL: /* �z�[���[�N���X */ + case PF_FOGWALL: /* ホーリークロス */ if (MRAND (100) < 3 * skilllv * sc_def_int / 100) skill_status_change_start (bl, SC_BLIND, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); break; - case LK_HEADCRUSH: /* �w�b�h�N���b�V�� */ - { //�������ǂ�������Ȃ��̂œK���� + case LK_HEADCRUSH: /* ヘッドクラッシュ */ + { //条件が良く分からないので適当に int race = battle_get_race (bl); if (! (battle_check_undead (race, battle_get_elem_type (bl)) @@ -1385,25 +1385,25 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, 0); } break; - case LK_JOINTBEAT: /* �W���C���g�r�[�g */ - //�������ǂ�������Ȃ��̂œK���� + case LK_JOINTBEAT: /* ジョイントビート */ + //条件が良く分からないので適当に if (MRAND (100) < (2 * skilllv + 10) * sc_def_vit / 100) skill_status_change_start (bl, SC_JOINTBEAT, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); break; - case PF_SPIDERWEB: /* �X�p�C�_�[�E�F�b�u */ + case PF_SPIDERWEB: /* スパイダーウェッブ */ { int sec = skill_get_time2 (skillid, skilllv); - if (map[src->m].flag.pvp) //PvP�ł͍S�����Ԕ����H + if (map[src->m].flag.pvp) //PvPでは拘束時間半減? sec = sec / 2; battle_stopwalking (bl, 1); skill_status_change_start (bl, SC_SPIDERWEB, skilllv, 0, 0, 0, sec, 0); } break; - case ASC_METEORASSAULT: /* ���e�I�A�T���g */ - if (MRAND (100) < (15 + skilllv * 5) * sc_def_vit / 100) //��Ԉُ�͏ڍׂ�������Ȃ��̂œK���� + case ASC_METEORASSAULT: /* メテオアサルト */ + if (MRAND (100) < (15 + skilllv * 5) * sc_def_vit / 100) //状態異常は詳細が分からないので適当に skill_status_change_start (bl, SC_STAN, skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); @@ -1412,8 +1412,8 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, skill_get_time2 (skillid, skilllv), 0); break; - case MO_EXTREMITYFIST: /* ���C���e���� */ - //���C�����g����5���Ԏ��R���Ȃ��悤�ɂȂ� + case MO_EXTREMITYFIST: /* 阿修羅覇凰拳 */ + //阿修羅を使うと5分間自然回復しないようになる skill_status_change_start (src, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, skill_get_time2 (skillid, skilllv), 0); @@ -1421,13 +1421,13 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, } if (sd && skillid != MC_CARTREVOLUTION && attack_type & BF_WEAPON) - { /* �J�[�h�ɂ��lj����� */ + { /* カードによる追加効果 */ int i; int sc_def_card = 100; for (i = SC_STONE; i <= SC_BLIND; i++) { - //�Ώۂɏ�Ԉُ� + //対象に状態異常 if (i == SC_STONE || i == SC_FREEZE) sc_def_card = sc_def_mdef; else if (i == SC_STAN || i == SC_POISON || i == SC_SILENCE) @@ -1444,7 +1444,7 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, { if (battle_config.battle_log) printf - ("PC %d skill_addeff: card�ɂ��ُ픭�� %d %d\n", + ("PC %d skill_addeff: cardによる異常発動 %d %d\n", sd->bl.id, i, sd->addeff[i - SC_STONE]); skill_status_change_start (bl, i, 7, 0, 0, 0, (i == @@ -1464,7 +1464,7 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, { if (battle_config.battle_log) printf - ("PC %d skill_addeff: card�ɂ��ُ픭�� %d %d\n", + ("PC %d skill_addeff: cardによる異常発動 %d %d\n", sd->bl.id, i, sd->addeff[i - SC_STONE]); skill_status_change_start (bl, i, 7, 0, 0, 0, (i == @@ -1476,7 +1476,7 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, 7), 0); } } - //�����ɏ�Ԉُ� + //自分に状態異常 if (i == SC_STONE || i == SC_FREEZE) sc_def_card = sc_def_mdef2; else if (i == SC_STAN || i == SC_POISON || i == SC_SILENCE) @@ -1493,7 +1493,7 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, { if (battle_config.battle_log) printf - ("PC %d skill_addeff: card�ɂ��ُ픭�� %d %d\n", + ("PC %d skill_addeff: cardによる異常発動 %d %d\n", src->id, i, sd->addeff2[i - SC_STONE]); skill_status_change_start (src, i, 7, 0, 0, 0, (i == @@ -1513,7 +1513,7 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, { if (battle_config.battle_log) printf - ("PC %d skill_addeff: card�ɂ��ُ픭�� %d %d\n", + ("PC %d skill_addeff: cardによる異常発動 %d %d\n", src->id, i, sd->addeff2[i - SC_STONE]); skill_status_change_start (src, i, 7, 0, 0, 0, (i == @@ -1531,7 +1531,7 @@ int skill_additional_effect (struct block_list *src, struct block_list *bl, } /*========================================================================= - �X�L���U������������� + スキル攻撃吹き飛ばし処理 -------------------------------------------------------------------------*/ int skill_blown (struct block_list *src, struct block_list *target, int count) { @@ -1562,7 +1562,7 @@ int skill_blown (struct block_list *src, struct block_list *target, int count) return 0; if (!(count & 0x10000 && (sd || md || su))) - { /* �w��Ȃ��Ȃ�ʒu�W������������߂� */ + { /* 指定なしなら位置関係から方向を求める */ dx = target->x - src->x; dx = (dx > 0) ? 1 : ((dx < 0) ? -1 : 0); dy = target->y - src->y; @@ -1610,7 +1610,7 @@ int skill_blown (struct block_list *src, struct block_list *target, int count) dx = nx - x; dy = ny - y; - if (sd) /* ��ʊO�ɏo���̂ŏ��� */ + if (sd) /* 画面外に出たので消去 */ map_foreachinmovearea (clif_pcoutsight, target->m, x - AREA_SIZE, y - AREA_SIZE, x + AREA_SIZE, y + AREA_SIZE, dx, dy, 0, sd); @@ -1632,8 +1632,8 @@ int skill_blown (struct block_list *src, struct block_list *target, int count) target->y = ny; if (moveblock) map_addblock (target); -/*�_���X���ɃG�t�F�N�g�͈ړ����Ȃ��炵�� - if(sc_data && sc_data[SC_DANCING].timer!=-1){ //�Ώۂ��_���X���Ȃ̂ŃG�t�F�N�g���ړ� +/*ダンス中にエフェクトは移動しないらしい + if(sc_data && sc_data[SC_DANCING].timer!=-1){ //対象がダンス中なのでエフェクトも移動 struct skill_unit_group *sg=(struct skill_unit_group *)sc_data[SC_DANCING].val2; if(sg) skill_unit_move_unit_group(sg,target->m,dx,dy); @@ -1642,7 +1642,7 @@ int skill_blown (struct block_list *src, struct block_list *target, int count) } if (sd) - { /* ��ʓ��ɓ����Ă����̂ŕ\�� */ + { /* 画面内に入ってきたので表示 */ map_foreachinmovearea (clif_pcinsight, target->m, nx - AREA_SIZE, ny - AREA_SIZE, nx + AREA_SIZE, ny + AREA_SIZE, -dx, -dy, 0, sd); @@ -1658,20 +1658,20 @@ int skill_blown (struct block_list *src, struct block_list *target, int count) md->state.state = prev_state; } - skill_unit_move (target, gettick (), (count & 0xffff) + 7); /* �X�L�����j�b�g�̔��� */ + skill_unit_move (target, gettick (), (count & 0xffff) + 7); /* スキルユニットの判定 */ return 0; } /* * ========================================================================= - * �X�L���U�����ʏ����܂Ƃ� - * flag�̐����B16�i�} + * スキル攻撃効果処理まとめ + * flagの説明。16進図 * 00XRTTff - * ff = magic�Ōv�Z�ɓn�����j - * TT = �p�P�b�g��type����(0�Ńf�t�H���g�j - * X = �p�P�b�g�̃X�L��Lv - * R = �\��iskill_area_sub�Ŏg�p����j + * ff = magicで計算に渡される) + * TT = パケットのtype部分(0でデフォルト) + * X = パケットのスキルLv + * R = 予約(skill_area_subで使用する) *------------------------------------------------------------------------- */ @@ -1690,76 +1690,76 @@ int skill_attack (int attack_type, struct block_list *src, sc_data = battle_get_sc_data (bl); -//�������Ȃ����肱������ - if (dsrc->m != bl->m) //�Ώۂ������}�b�v�ɂ��Ȃ���Ή������Ȃ� +//何もしない判定ここから + if (dsrc->m != bl->m) //対象が同じマップにいなければ何もしない return 0; - if (src->prev == NULL || dsrc->prev == NULL || bl->prev == NULL) //prev�悭�킩��Ȃ��� + if (src->prev == NULL || dsrc->prev == NULL || bl->prev == NULL) //prevよくわからない※ return 0; - if (src->type == BL_PC && pc_isdead ((struct map_session_data *) src)) //�p�ҁH��PC�ł��łɎ���ł����牽�����Ȃ� + if (src->type == BL_PC && pc_isdead ((struct map_session_data *) src)) //術者?がPCですでに死んでいたら何もしない return 0; - if (dsrc->type == BL_PC && pc_isdead ((struct map_session_data *) dsrc)) //�p�ҁH��PC�ł��łɎ���ł����牽�����Ȃ� + if (dsrc->type == BL_PC && pc_isdead ((struct map_session_data *) dsrc)) //術者?がPCですでに死んでいたら何もしない return 0; - if (bl->type == BL_PC && pc_isdead ((struct map_session_data *) bl)) //�Ώۂ�PC�ł��łɎ���ł����牽�����Ȃ� + if (bl->type == BL_PC && pc_isdead ((struct map_session_data *) bl)) //対象がPCですでに死んでいたら何もしない return 0; if (skillnotok (skillid, (struct map_session_data *) bl)) return 0; // [MouseJstr] if (sc_data && sc_data[SC_HIDING].timer != -1) - { //�n�C�f�B���O��Ԃ� - if (skill_get_pl (skillid) != 2) //�X�L���̑������n�����łȂ���Ή������Ȃ� + { //ハイディング状態で + if (skill_get_pl (skillid) != 2) //スキルの属性が地属性でなければ何もしない return 0; } - if (sc_data && sc_data[SC_TRICKDEAD].timer != -1) //���ӂ蒆�͉������Ȃ� + if (sc_data && sc_data[SC_TRICKDEAD].timer != -1) //死んだふり中は何もしない return 0; if (skillid == WZ_STORMGUST) - { //�g�p�X�L�����X�g�[���K�X�g�� - if (sc_data && sc_data[SC_FREEZE].timer != -1) //������ԂȂ牽�����Ȃ� + { //使用スキルがストームガストで + if (sc_data && sc_data[SC_FREEZE].timer != -1) //凍結状態なら何もしない return 0; } - if (skillid == WZ_FROSTNOVA && dsrc->x == bl->x && dsrc->y == bl->y) //�g�p�X�L�����t���X�g�m���@�ŁAdsrc��bl�������ꏊ�Ȃ牽�����Ȃ� + if (skillid == WZ_FROSTNOVA && dsrc->x == bl->x && dsrc->y == bl->y) //使用スキルがフロストノヴァで、dsrcとblが同じ場所なら何もしない return 0; - if (src->type == BL_PC && ((struct map_session_data *) src)->chatID) //�p�҂�PC�Ń`���b�g���Ȃ牽�����Ȃ� + if (src->type == BL_PC && ((struct map_session_data *) src)->chatID) //術者がPCでチャット中なら何もしない return 0; - if (dsrc->type == BL_PC && ((struct map_session_data *) dsrc)->chatID) //�p�҂�PC�Ń`���b�g���Ȃ牽�����Ȃ� + if (dsrc->type == BL_PC && ((struct map_session_data *) dsrc)->chatID) //術者がPCでチャット中なら何もしない return 0; if (src->type == BL_PC && bl && mob_gvmobcheck (((struct map_session_data *) src), bl) == 0) return 0; -//�������Ȃ����肱���܂� +//何もしない判定ここまで type = -1; lv = (flag >> 20) & 0xf; - dmg = battle_calc_attack (attack_type, src, bl, skillid, skilllv, flag & 0xff); //�_���[�W�v�Z + dmg = battle_calc_attack (attack_type, src, bl, skillid, skilllv, flag & 0xff); //ダメージ計算 -//�}�W�b�N���b�h������������ +//マジックロッド処理ここから if (attack_type & BF_MAGIC && sc_data && sc_data[SC_MAGICROD].timer != -1 && src == dsrc) - { //���@�U���Ń}�W�b�N���b�h��Ԃ�src=dsrc�Ȃ� - dmg.damage = dmg.damage2 = 0; //�_���[�W0 + { //魔法攻撃でマジックロッド状態でsrc=dsrcなら + dmg.damage = dmg.damage2 = 0; //ダメージ0 if (bl->type == BL_PC) - { //�Ώۂ�PC�̏ꍇ - int sp = skill_get_sp (skillid, skilllv); //�g�p���ꂽ�X�L����SP���z�� - sp = sp * sc_data[SC_MAGICROD].val2 / 100; //�z�����v�Z - if (skillid == WZ_WATERBALL && skilllv > 1) //�E�H�[�^�[�{�[��Lv1�ȏ� - sp = sp / ((skilllv | 1) * (skilllv | 1)); //����Ɍv�Z�H + { //対象がPCの場合 + int sp = skill_get_sp (skillid, skilllv); //使用されたスキルのSPを吸収 + sp = sp * sc_data[SC_MAGICROD].val2 / 100; //吸収率計算 + if (skillid == WZ_WATERBALL && skilllv > 1) //ウォーターボールLv1以上 + sp = sp / ((skilllv | 1) * (skilllv | 1)); //さらに計算? if (sp > 0x7fff) - sp = 0x7fff; //SP�������̏ꍇ�͗��_�ő�l + sp = 0x7fff; //SP多すぎの場合は理論最大値 else if (sp < 1) - sp = 1; //1�ȉ��̏ꍇ��1 + sp = 1; //1以下の場合は1 if (((struct map_session_data *) bl)->status.sp + sp > ((struct map_session_data *) bl)->status.max_sp) - { //��SP+���݂�SP��MSP���傫���ꍇ - sp = ((struct map_session_data *) bl)->status.max_sp - ((struct map_session_data *) bl)->status.sp; //SP��MSP-����SP�ɂ��� - ((struct map_session_data *) bl)->status.sp = ((struct map_session_data *) bl)->status.max_sp; //���݂�SP��MSP���� + { //回復SP+現在のSPがMSPより大きい場合 + sp = ((struct map_session_data *) bl)->status.max_sp - ((struct map_session_data *) bl)->status.sp; //SPをMSP-現在SPにする + ((struct map_session_data *) bl)->status.sp = ((struct map_session_data *) bl)->status.max_sp; //現在のSPにMSPを代入 } - else //��SP+���݂�SP��MSP��菬�����ꍇ�͉�SP�����Z + else //回復SP+現在のSPがMSPより小さい場合は回復SPを加算 ((struct map_session_data *) bl)->status.sp += sp; - clif_heal (((struct map_session_data *) bl)->fd, SP_SP, sp); //SP�G�t�F�N�g�̕\�� + clif_heal (((struct map_session_data *) bl)->fd, SP_SP, sp); //SP回復エフェクトの表示 ((struct map_session_data *) bl)->canact_tick = tick + skill_delayfix (bl, skill_get_delay (SA_MAGICROD, sc_data[SC_MAGICROD].val1)); // } - clif_skill_nodamage (bl, bl, SA_MAGICROD, sc_data[SC_MAGICROD].val1, 1); //�}�W�b�N���b�h�G�t�F�N�g��\�� + clif_skill_nodamage (bl, bl, SA_MAGICROD, sc_data[SC_MAGICROD].val1, 1); //マジックロッドエフェクトを表示 } -//�}�W�b�N���b�h���������܂� +//マジックロッド処理ここまで damage = dmg.damage + dmg.damage2; @@ -1769,46 +1769,46 @@ int skill_attack (int attack_type, struct block_list *src, if (flag & 0xff00) type = (flag & 0xff00) >> 8; - if (damage <= 0 || damage < dmg.div_) //�����������H�� + if (damage <= 0 || damage < dmg.div_) //吹き飛ばし判定?※ dmg.blewcount = 0; if (skillid == CR_GRANDCROSS) - { //�O�����h�N���X + { //グランドクロス if (battle_config.gx_disptype) - dsrc = src; // �G�_���[�W�������\�� + dsrc = src; // 敵ダメージ白文字表示 if (src == bl) - type = 4; // �����̓_���[�W���[�V�����Ȃ� + type = 4; // 反動はダメージモーションなし } -//�g�p�҂�PC�̏ꍇ�̏����������� +//使用者がPCの場合の処理ここから if (src->type == BL_PC) { struct map_session_data *sd = (struct map_session_data *) src; nullpo_retr (0, sd); -//�A�ŏ�(MO_CHAINCOMBO)�������� +//連打掌(MO_CHAINCOMBO)ここから if (skillid == MO_CHAINCOMBO) { - int delay = 1000 - 4 * battle_get_agi (src) - 2 * battle_get_dex (src); //��{�f�B���C�̌v�Z + int delay = 1000 - 4 * battle_get_agi (src) - 2 * battle_get_dex (src); //基本ディレイの計算 if (damage < battle_get_hp (bl)) - { //�_���[�W���Ώۂ�HP��菬�����ꍇ - if (pc_checkskill (sd, MO_COMBOFINISH) > 0 && sd->spiritball > 0) //�җ���(MO_COMBOFINISH)�擾���C���ێ�����+300ms - delay += 300 * battle_config.combo_delay_rate / 100; //�lj��f�B���C��conf�ɂ�蒲�� + { //ダメージが対象のHPより小さい場合 + if (pc_checkskill (sd, MO_COMBOFINISH) > 0 && sd->spiritball > 0) //猛龍拳(MO_COMBOFINISH)取得&気球保持時は+300ms + delay += 300 * battle_config.combo_delay_rate / 100; //追加ディレイをconfにより調整 - skill_status_change_start (src, SC_COMBO, MO_CHAINCOMBO, skilllv, 0, 0, delay, 0); //�R���{��Ԃ� + skill_status_change_start (src, SC_COMBO, MO_CHAINCOMBO, skilllv, 0, 0, delay, 0); //コンボ状態に } sd->attackabletime = sd->canmove_tick = tick + delay; - clif_combo_delay (src, delay); //�R���{�f�B���C�p�P�b�g�̑��M + clif_combo_delay (src, delay); //コンボディレイパケットの送信 } -//�A�ŏ�(MO_CHAINCOMBO)�����܂� -//�җ���(MO_COMBOFINISH)�������� +//連打掌(MO_CHAINCOMBO)ここまで +//猛龍拳(MO_COMBOFINISH)ここから else if (skillid == MO_COMBOFINISH) { int delay = 700 - 4 * battle_get_agi (src) - 2 * battle_get_dex (src); if (damage < battle_get_hp (bl)) { - //���C���e����(MO_EXTREMITYFIST)�擾���C��4�ێ��������g��(MO_EXPLOSIONSPIRITS)��Ԏ���+300ms - //���Ռ�(CH_TIGERFIST)�擾����+300ms + //阿修羅覇凰拳(MO_EXTREMITYFIST)取得&気球4個保持&爆裂波動(MO_EXPLOSIONSPIRITS)状態時は+300ms + //伏虎拳(CH_TIGERFIST)取得時も+300ms if ((pc_checkskill (sd, MO_EXTREMITYFIST) > 0 && sd->spiritball >= 4 && sd->sc_data[SC_EXPLOSIONSPIRITS].timer != -1) @@ -1816,52 +1816,52 @@ int skill_attack (int attack_type, struct block_list *src, && sd->spiritball > 0) || (pc_checkskill (sd, CH_CHAINCRUSH) > 0 && sd->spiritball > 1)) - delay += 300 * battle_config.combo_delay_rate / 100; //�lj��f�B���C��conf�ɂ�蒲�� + delay += 300 * battle_config.combo_delay_rate / 100; //追加ディレイをconfにより調整 - skill_status_change_start (src, SC_COMBO, MO_COMBOFINISH, skilllv, 0, 0, delay, 0); //�R���{��Ԃ� + skill_status_change_start (src, SC_COMBO, MO_COMBOFINISH, skilllv, 0, 0, delay, 0); //コンボ状態に } sd->attackabletime = sd->canmove_tick = tick + delay; - clif_combo_delay (src, delay); //�R���{�f�B���C�p�P�b�g�̑��M + clif_combo_delay (src, delay); //コンボディレイパケットの送信 } -//�җ���(MO_COMBOFINISH)�����܂� -//���Ռ�(CH_TIGERFIST)�������� +//猛龍拳(MO_COMBOFINISH)ここまで +//伏虎拳(CH_TIGERFIST)ここから else if (skillid == CH_TIGERFIST) { int delay = 1000 - 4 * battle_get_agi (src) - 2 * battle_get_dex (src); if (damage < battle_get_hp (bl)) { - if (pc_checkskill (sd, CH_CHAINCRUSH) > 0) //�A������(CH_CHAINCRUSH)�擾����+300ms - delay += 300 * battle_config.combo_delay_rate / 100; //�lj��f�B���C��conf�ɂ�蒲�� + if (pc_checkskill (sd, CH_CHAINCRUSH) > 0) //連柱崩撃(CH_CHAINCRUSH)取得時は+300ms + delay += 300 * battle_config.combo_delay_rate / 100; //追加ディレイをconfにより調整 - skill_status_change_start (src, SC_COMBO, CH_TIGERFIST, skilllv, 0, 0, delay, 0); //�R���{��Ԃ� + skill_status_change_start (src, SC_COMBO, CH_TIGERFIST, skilllv, 0, 0, delay, 0); //コンボ状態に } sd->attackabletime = sd->canmove_tick = tick + delay; - clif_combo_delay (src, delay); //�R���{�f�B���C�p�P�b�g�̑��M + clif_combo_delay (src, delay); //コンボディレイパケットの送信 } -//���Ռ�(CH_TIGERFIST)�����܂� -//�A������(CH_CHAINCRUSH)�������� +//伏虎拳(CH_TIGERFIST)ここまで +//連柱崩撃(CH_CHAINCRUSH)ここから else if (skillid == CH_CHAINCRUSH) { int delay = 1000 - 4 * battle_get_agi (src) - 2 * battle_get_dex (src); if (damage < battle_get_hp (bl)) { - //���C���e����(MO_EXTREMITYFIST)�擾���C��4�ێ��������g��(MO_EXPLOSIONSPIRITS)��Ԏ���+300ms + //阿修羅覇凰拳(MO_EXTREMITYFIST)取得&気球4個保持&爆裂波動(MO_EXPLOSIONSPIRITS)状態時は+300ms if (pc_checkskill (sd, MO_EXTREMITYFIST) > 0 && sd->spiritball >= 4 && sd->sc_data[SC_EXPLOSIONSPIRITS].timer != -1) - delay += 300 * battle_config.combo_delay_rate / 100; //�lj��f�B���C��conf�ɂ�蒲�� + delay += 300 * battle_config.combo_delay_rate / 100; //追加ディレイをconfにより調整 - skill_status_change_start (src, SC_COMBO, CH_CHAINCRUSH, skilllv, 0, 0, delay, 0); //�R���{��Ԃ� + skill_status_change_start (src, SC_COMBO, CH_CHAINCRUSH, skilllv, 0, 0, delay, 0); //コンボ状態に } sd->attackabletime = sd->canmove_tick = tick + delay; - clif_combo_delay (src, delay); //�R���{�f�B���C�p�P�b�g�̑��M + clif_combo_delay (src, delay); //コンボディレイパケットの送信 } -//�A������(CH_CHAINCRUSH)�����܂� +//連柱崩撃(CH_CHAINCRUSH)ここまで } -//�g�p�҂�PC�̏ꍇ�̏��������܂� -//����X�L���H�������� +//使用者がPCの場合の処理ここまで +//武器スキル?ここから //AppleGirl Was Here if (attack_type & BF_MAGIC && damage > 0 && src != bl && src == dsrc) { //Blah Blah @@ -1878,35 +1878,35 @@ int skill_attack (int attack_type, struct block_list *src, } //Stop Here if (attack_type & BF_WEAPON && damage > 0 && src != bl && src == dsrc) - { //����X�L�����_���[�W���聕�g�p�҂ƑΏێ҂��Ⴄ��src=dsrc + { //武器スキル&ダメージあり&使用者と対象者が違う&src=dsrc if (dmg.flag & BF_SHORT) - { //�ߋ����U�����H�� + { //近距離攻撃時?※ if (bl->type == BL_PC) - { //�Ώۂ�PC�̎� + { //対象がPCの時 struct map_session_data *tsd = (struct map_session_data *) bl; nullpo_retr (0, tsd); if (tsd->short_weapon_damage_return > 0) - { //�ߋ����U�����˕Ԃ��H�� + { //近距離攻撃跳ね返し?※ rdamage += damage * tsd->short_weapon_damage_return / 100; if (rdamage < 1) rdamage = 1; } } if (sc_data && sc_data[SC_REFLECTSHIELD].timer != -1) - { //���t���N�g�V�[���h�� - rdamage += damage * sc_data[SC_REFLECTSHIELD].val2 / 100; //���˕Ԃ��v�Z + { //リフレクトシールド時 + rdamage += damage * sc_data[SC_REFLECTSHIELD].val2 / 100; //跳ね返し計算 if (rdamage < 1) rdamage = 1; } } else if (dmg.flag & BF_LONG) - { //�������U�����H�� + { //遠距離攻撃時?※ if (bl->type == BL_PC) - { //�Ώۂ�PC�̎� + { //対象がPCの時 struct map_session_data *tsd = (struct map_session_data *) bl; nullpo_retr (0, tsd); if (tsd->long_weapon_damage_return > 0) - { //�������U�����˕Ԃ��H�� + { //遠距離攻撃跳ね返し?※ rdamage += damage * tsd->long_weapon_damage_return / 100; if (rdamage < 1) rdamage = 1; @@ -1916,7 +1916,7 @@ int skill_attack (int attack_type, struct block_list *src, if (rdamage > 0) clif_damage (src, src, tick, dmg.amotion, 0, rdamage, 1, 4, 0); } -//����X�L���H�����܂� +//武器スキル?ここまで switch (skillid) { @@ -1939,7 +1939,7 @@ int skill_attack (int attack_type, struct block_list *src, (skillid == 0) ? 5 : type); } if (dmg.blewcount > 0 && !map[src->m].flag.gvg) - { /* ������������Ƃ��̃p�P�b�g */ + { /* 吹き飛ばし処理とそのパケット */ if (skillid == WZ_SIGHTRASHER) skill_blown (src, bl, dmg.blewcount); else @@ -1951,7 +1951,7 @@ int skill_attack (int attack_type, struct block_list *src, } map_freeblock_lock (); - /* ���ۂɃ_���[�W�������s�� */ + /* 実際にダメージ処理を行う */ if (skillid != KN_BOWLINGBASH || flag) battle_damage (src, bl, damage, 0); if (skillid == RG_INTIMIDATE && damage > 0 @@ -1970,7 +1970,7 @@ int skill_attack (int attack_type, struct block_list *src, nullpo_retr(0, tsd); if(!tsd->status.skill[skillid].id && !tsd->status.skill[skillid].id && !(skillid > NPC_PIERCINGATT && skillid < NPC_SUMMONMONSTER) ){ - //���ɓ���ł���X�L��������ΊY���X�L�������� + //既に盗んでいるスキルがあれば該当スキルを消す if (tsd->cloneskill_id && tsd->cloneskill_lv && tsd->status.skill[tsd->cloneskill_id].flag==13){ tsd->status.skill[tsd->cloneskill_id].id=0; tsd->status.skill[tsd->cloneskill_id].lv=0; @@ -1986,7 +1986,7 @@ int skill_attack (int attack_type, struct block_list *src, } } */ - /* �_���[�W������Ȃ�lj����ʔ��� */ + /* ダメージがあるなら追加効果判定 */ if (bl->prev != NULL) { struct map_session_data *sd = (struct map_session_data *) bl; @@ -1996,7 +1996,7 @@ int skill_attack (int attack_type, struct block_list *src, if (damage > 0) skill_additional_effect (src, bl, skillid, skilllv, attack_type, tick); - if (bl->type == BL_MOB && src != bl) /* �X�L���g�p������MOB�X�L�� */ + if (bl->type == BL_MOB && src != bl) /* スキル使用条件のMOBスキル */ { struct mob_data *md = (struct mob_data *) bl; nullpo_retr (0, md); @@ -2076,19 +2076,19 @@ int skill_attack (int attack_type, struct block_list *src, map_freeblock_unlock (); - return (dmg.damage + dmg.damage2); /* �^�_����Ԃ� */ + return (dmg.damage + dmg.damage2); /* 与ダメを返す */ } /*========================================== - * �X�L���͈͍U���p(map_foreachinarea����Ă��) - * flag�ɂ��āF16�i�}���m�F + * スキル範囲攻撃用(map_foreachinareaから呼ばれる) + * flagについて:16進図を確認 * MSB <- 00fTffff ->LSB - * T =�^�[�Q�b�g�I��p(BCT_*) - * ffff=���R�Ɏg�p�\ - * 0 =�\��B0�ɌŒ� + * T =ターゲット選択用(BCT_*) + * ffff=自由に使用可能 + * 0 =予約。0に固定 *------------------------------------------ */ -static int skill_area_temp[8]; /* �ꎞ�ϐ��B�K�v�Ȃ�g���B */ +static int skill_area_temp[8]; /* 一時変数。必要なら使う。 */ typedef int (*SkillFunc) (struct block_list *, struct block_list *, int, int, unsigned int, int); int skill_area_sub (struct block_list *bl, va_list ap) @@ -2104,7 +2104,7 @@ int skill_area_sub (struct block_list *bl, va_list ap) if (bl->type != BL_PC && bl->type != BL_MOB && bl->type != BL_SKILL) return 0; - src = va_arg (ap, struct block_list *); //�����ł�src�̒l���Q�Ƃ��Ă��Ȃ��̂�NULL�`�F�b�N�͂��Ȃ� + src = va_arg (ap, struct block_list *); //ここではsrcの値を参照していないのでNULLチェックはしない skill_id = va_arg (ap, int); skill_lv = va_arg (ap, int); tick = va_arg (ap, unsigned int); @@ -2234,9 +2234,9 @@ int skill_check_unit_range2 (int m, int x, int y, int range) } /*========================================================================= - * �͈̓X�L���g�p������������������ + * 範囲スキル使用処理小分けここから */ -/* �Ώۂ̐����J�E���g����B�iskill_area_temp[0]�����������Ă������Ɓj */ +/* 対象の数をカウントする。(skill_area_temp[0]を初期化しておくこと) */ int skill_area_sub_count (struct block_list *src, struct block_list *target, int skillid, int skilllv, unsigned int tick, int flag) @@ -2288,7 +2288,7 @@ static int skill_timerskill (int tid, unsigned int tick, int id, int data) { if (target == NULL) { - target = &tbl; //���������ĂȂ��̂ɃA�h���X�˂�����ł����̂��ȁH + target = &tbl; //初期化してないのにアドレス突っ込んでいいのかな? target->type = BL_NUL; target->m = src->m; target->prev = target->next = NULL; @@ -2374,9 +2374,9 @@ static int skill_timerskill (int tid, unsigned int tick, int id, int data) } break; - case BA_FROSTJOKE: /* �����W���[�N */ - case DC_SCREAM: /* �X�N���[�� */ - range = 15; //���E�S�� + case BA_FROSTJOKE: /* 寒いジョーク */ + case DC_SCREAM: /* スクリーム */ + range = 15; //視界全体 map_foreachinarea (skill_frostjoke_scream, src->m, src->x - range, src->y - range, src->x + range, src->y + range, 0, src, @@ -2520,13 +2520,13 @@ int skill_cleartimerskill (struct block_list *src) return 0; } -/* �͈̓X�L���g�p���������������܂� +/* 範囲スキル使用処理小分けここまで * ------------------------------------------------------------------------- */ /*========================================== - * �X�L���g�p�i�r�������AID�w��U���n�j - * �i�X�p�Q�b�e�B�Ɍ����ĂP���O�i�I(�_���|)�j + * スキル使用(詠唱完了、ID指定攻撃系) + * (スパゲッティに向けて1歩前進!(ダメポ)) *------------------------------------------ */ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, @@ -2553,64 +2553,64 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, map_freeblock_lock (); switch (skillid) { - /* ����U���n�X�L�� */ - case SM_BASH: /* �o�b�V�� */ - case MC_MAMMONITE: /* ���}�[�i�C�g */ - case AC_DOUBLE: /* �_�u���X�g���C�t�B���O */ - case AS_SONICBLOW: /* �\�j�b�N�u���[ */ - case KN_PIERCE: /* �s�A�[�X */ - case KN_SPEARBOOMERANG: /* �X�s�A�u�[������ */ - case TF_POISON: /* �C���x�i�� */ - case TF_SPRINKLESAND: /* ���܂� */ - case AC_CHARGEARROW: /* �`���[�W�A���[ */ - case KN_SPEARSTAB: /* �X�s�A�X�^�u */ - case RG_RAID: /* �T�v���C�Y�A�^�b�N */ - case RG_INTIMIDATE: /* �C���e�B�~�f�C�g */ - case BA_MUSICALSTRIKE: /* �~���[�W�J���X�g���C�N */ - case DC_THROWARROW: /* ��� */ - case BA_DISSONANCE: /* �s���a�� */ - case CR_HOLYCROSS: /* �z�[���[�N���X */ + /* 武器攻撃系スキル */ + case SM_BASH: /* バッシュ */ + case MC_MAMMONITE: /* メマーナイト */ + case AC_DOUBLE: /* ダブルストレイフィング */ + case AS_SONICBLOW: /* ソニックブロー */ + case KN_PIERCE: /* ピアース */ + case KN_SPEARBOOMERANG: /* スピアブーメラン */ + case TF_POISON: /* インベナム */ + case TF_SPRINKLESAND: /* 砂まき */ + case AC_CHARGEARROW: /* チャージアロー */ + case KN_SPEARSTAB: /* スピアスタブ */ + case RG_RAID: /* サプライズアタック */ + case RG_INTIMIDATE: /* インティミデイト */ + case BA_MUSICALSTRIKE: /* ミュージカルストライク */ + case DC_THROWARROW: /* 矢撃ち */ + case BA_DISSONANCE: /* 不協和音 */ + case CR_HOLYCROSS: /* ホーリークロス */ case CR_SHIELDCHARGE: case CR_SHIELDBOOMERANG: - /* �ȉ�MOB��p */ - /* �P�̍U���ASP�����U���A�������U���A�h�䖳���U���A���i�U�� */ + /* 以下MOB専用 */ + /* 単体攻撃、SP減少攻撃、遠距離攻撃、防御無視攻撃、多段攻撃 */ case NPC_PIERCINGATT: case NPC_MENTALBREAKER: case NPC_RANGEATTACK: case NPC_CRITICALSLASH: case NPC_COMBOATTACK: - /* �K���U���A�ōU���A�Í��U���A���ٍU���A�X�^���U�� */ + /* 必中攻撃、毒攻撃、暗黒攻撃、沈黙攻撃、スタン攻撃 */ case NPC_GUIDEDATTACK: case NPC_POISON: case NPC_BLINDATTACK: case NPC_SILENCEATTACK: case NPC_STUNATTACK: - /* �Ή��U���A�U���A�����U���A�����_��ATK�U�� */ + /* 石化攻撃、呪い攻撃、睡眠攻撃、ランダムATK攻撃 */ case NPC_PETRIFYATTACK: case NPC_CURSEATTACK: case NPC_SLEEPATTACK: case NPC_RANDOMATTACK: - /* �������U���A�n�����U���A�Α����U���A�������U�� */ + /* 水属性攻撃、地属性攻撃、火属性攻撃、風属性攻撃 */ case NPC_WATERATTACK: case NPC_GROUNDATTACK: case NPC_FIREATTACK: case NPC_WINDATTACK: - /* �ő����U���A�������U���A�ő����U���A�O�����U���ASP�����U�� */ + /* 毒属性攻撃、聖属性攻撃、闇属性攻撃、念属性攻撃、SP減少攻撃 */ case NPC_POISONATTACK: case NPC_HOLYATTACK: case NPC_DARKNESSATTACK: case NPC_TELEKINESISATTACK: - case LK_AURABLADE: /* �I�[���u���[�h */ - case LK_SPIRALPIERCE: /* �X�p�C�����s�A�[�X */ - case LK_HEADCRUSH: /* �w�b�h�N���b�V�� */ - case LK_JOINTBEAT: /* �W���C���g�r�[�g */ - case PA_PRESSURE: /* �v���b�V���[ */ - case PA_SACRIFICE: /* �T�N���t�@�C�X */ - case SN_SHARPSHOOTING: /* �V���[�v�V���[�e�B���O */ - case CG_ARROWVULCAN: /* �A���[�o���J�� */ - case ASC_BREAKER: /* �\�E���u���[�J�[ */ - case HW_MAGICCRASHER: /* �}�W�b�N�N���b�V���[ */ + case LK_AURABLADE: /* オーラブレード */ + case LK_SPIRALPIERCE: /* スパイラルピアース */ + case LK_HEADCRUSH: /* ヘッドクラッシュ */ + case LK_JOINTBEAT: /* ジョイントビート */ + case PA_PRESSURE: /* プレッシャー */ + case PA_SACRIFICE: /* サクリファイス */ + case SN_SHARPSHOOTING: /* シャープシューティング */ + case CG_ARROWVULCAN: /* アローバルカン */ + case ASC_BREAKER: /* ソウルブレーカー */ + case HW_MAGICCRASHER: /* マジッククラッシャー */ skill_attack (BF_WEAPON, src, src, bl, skillid, skilllv, tick, flag); break; @@ -2619,7 +2619,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, skill_attack (BF_MISC, src, src, bl, skillid, skilllv, tick, flag); break; - case MO_INVESTIGATE: /* ���� */ + case MO_INVESTIGATE: /* 発勁 */ { struct status_change *sc_data = battle_get_sc_data (src); skill_attack (BF_WEAPON, src, src, bl, skillid, skilllv, tick, @@ -2628,11 +2628,11 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, skill_status_change_end (src, SC_BLADESTOP, -1); } break; - case SN_FALCONASSAULT: /* �t�@���R���A�T���g */ + case SN_FALCONASSAULT: /* ファルコンアサルト */ skill_attack (BF_MISC, src, src, bl, skillid, skilllv, tick, flag); break; - case KN_BRANDISHSPEAR: /* �u�����f�B�b�V���X�s�A */ + case KN_BRANDISHSPEAR: /* ブランディッシュスピア */ { struct mob_data *md = (struct mob_data *) bl; nullpo_retr (1, md); @@ -2648,7 +2648,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, } } break; - case RG_BACKSTAP: /* �o�b�N�X�^�u */ + case RG_BACKSTAP: /* バックスタブ */ { int dir = map_calc_dir (src, bl->x, bl->y), t_dir = battle_get_dir (bl); @@ -2658,7 +2658,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, { struct status_change *sc_data = battle_get_sc_data (src); if (sc_data && sc_data[SC_HIDING].timer != -1) - skill_status_change_end (src, SC_HIDING, -1); // �n�C�f�B���O���� + skill_status_change_end (src, SC_HIDING, -1); // ハイディング解除 skill_attack (BF_WEAPON, src, src, bl, skillid, skilllv, tick, flag); skill_blown (src, bl, skill_get_blewcount (skillid, skilllv)); @@ -2668,7 +2668,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, } break; - case AM_ACIDTERROR: /* �A�V�b�h�e���[ */ + case AM_ACIDTERROR: /* アシッドテラー */ skill_attack (BF_WEAPON, src, src, bl, skillid, skilllv, tick, flag); if (bl->type == BL_PC @@ -2676,7 +2676,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, && battle_config.equipment_breaking) pc_breakarmor ((struct map_session_data *) bl); break; - case MO_FINGEROFFENSIVE: /* �w�e */ + case MO_FINGEROFFENSIVE: /* 指弾 */ { struct status_change *sc_data = battle_get_sc_data (src); @@ -2700,7 +2700,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, skill_status_change_end (src, SC_BLADESTOP, -1); } break; - case MO_CHAINCOMBO: /* �A�ŏ� */ + case MO_CHAINCOMBO: /* 連打掌 */ { struct status_change *sc_data = battle_get_sc_data (src); skill_attack (BF_WEAPON, src, src, bl, skillid, skilllv, tick, @@ -2709,14 +2709,14 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, skill_status_change_end (src, SC_BLADESTOP, -1); } break; - case MO_COMBOFINISH: /* �җ��� */ - case CH_TIGERFIST: /* ���Ռ� */ - case CH_CHAINCRUSH: /* �A������ */ - case CH_PALMSTRIKE: /* �ҌՍd�h�R */ + case MO_COMBOFINISH: /* 猛龍拳 */ + case CH_TIGERFIST: /* 伏虎拳 */ + case CH_CHAINCRUSH: /* 連柱崩撃 */ + case CH_PALMSTRIKE: /* 猛虎硬派山 */ skill_attack (BF_WEAPON, src, src, bl, skillid, skilllv, tick, flag); break; - case MO_EXTREMITYFIST: /* ���C���e�P�� */ + case MO_EXTREMITYFIST: /* 阿修羅覇鳳拳 */ { struct status_change *sc_data = battle_get_sc_data (src); @@ -2776,22 +2776,22 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, skill_status_change_end (src, SC_BLADESTOP, -1); } break; - /* ����n�͈͍U���X�L�� */ - case AC_SHOWER: /* �A���[�V�����[ */ - case SM_MAGNUM: /* �}�O�i���u���C�N */ - case AS_GRIMTOOTH: /* �O�����g�D�[�X */ - case MC_CARTREVOLUTION: /* �J�[�g�����H�����[�V���� */ - case NPC_SPLASHATTACK: /* �X�v���b�V���A�^�b�N */ - case ASC_METEORASSAULT: /* ���e�I�A�T���g */ + /* 武器系範囲攻撃スキル */ + case AC_SHOWER: /* アローシャワー */ + case SM_MAGNUM: /* マグナムブレイク */ + case AS_GRIMTOOTH: /* グリムトゥース */ + case MC_CARTREVOLUTION: /* カートレヴォリューション */ + case NPC_SPLASHATTACK: /* スプラッシュアタック */ + case ASC_METEORASSAULT: /* メテオアサルト */ case AS_SPLASHER: /* [Valaris] */ if (flag & 1) { - /* �ʂɃ_���[�W��^���� */ + /* 個別にダメージを与える */ if (bl->id != skill_area_temp[1]) { int dist = 0; if (skillid == SM_MAGNUM) - { /* �}�O�i���u���C�N�Ȃ璆�S����̋������v�Z */ + { /* マグナムブレイクなら中心からの距離を計算 */ int dx = abs (bl->x - skill_area_temp[2]); int dy = abs (bl->y - skill_area_temp[3]); dist = ((dx > dy) ? dx : dy); @@ -2809,19 +2809,19 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, x = src->x; y = src->y; } - else if (skillid == AC_SHOWER || skillid == ASC_METEORASSAULT) /* �A���[�V�����[�A���e�I�A�T���g�͈�5*5 */ + else if (skillid == AC_SHOWER || skillid == ASC_METEORASSAULT) /* アローシャワー、メテオアサルト範囲5*5 */ ar = 2; - else if (skillid == AS_SPLASHER) /* �x�i���X�v���b�V���[�͈�3*3 */ + else if (skillid == AS_SPLASHER) /* ベナムスプラッシャー範囲3*3 */ ar = 1; - else if (skillid == NPC_SPLASHATTACK) /* �X�v���b�V���A�^�b�N�͔͈�7*7 */ + else if (skillid == NPC_SPLASHATTACK) /* スプラッシュアタックは範囲7*7 */ ar = 3; skill_area_temp[1] = bl->id; skill_area_temp[2] = x; skill_area_temp[3] = y; - /* �܂��^�[�Q�b�g�ɍU���������� */ + /* まずターゲットに攻撃を加える */ skill_attack (BF_WEAPON, src, src, bl, skillid, skilllv, tick, 0); - /* ���̌�^�[�Q�b�g�ȊO�͈͓̔��̓G�S�̂ɏ������s�� */ + /* その後ターゲット以外の範囲内の敵全体に処理を行う */ map_foreachinarea (skill_area_sub, bl->m, x - ar, y - ar, x + ar, y + ar, 0, src, skillid, skilllv, tick, @@ -2830,10 +2830,10 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, } break; - case KN_BOWLINGBASH: /* �{�E�����O�o�b�V�� */ + case KN_BOWLINGBASH: /* ボウリングバッシュ */ if (flag & 1) { - /* �ʂɃ_���[�W��^���� */ + /* 個別にダメージを与える */ if (bl->id != skill_area_temp[1]) skill_attack (BF_WEAPON, src, src, bl, skillid, skilllv, tick, 0x0500); @@ -2847,7 +2847,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, tick, 0); if (damage > 0) { - int i, c; /* ���l���畷���������Ȃ̂ŊԈ���Ă�\���偕������������������ */ + int i, c; /* 他人から聞いた動きなので間違ってる可能性大&効率が悪いっす>< */ c = skill_get_blewcount (skillid, skilllv); if (map[bl->m].flag.gvg) c = 0; @@ -2871,7 +2871,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, skill_area_temp[1] = bl->id; skill_area_temp[2] = bl->x; skill_area_temp[3] = bl->y; - /* ���̌�^�[�Q�b�g�ȊO�͈͓̔��̓G�S�̂ɏ������s�� */ + /* その後ターゲット以外の範囲内の敵全体に処理を行う */ map_foreachinarea (skill_area_sub, bl->m, bl->x - 1, bl->y - 1, bl->x + 1, bl->y + 1, 0, src, skillid, skilllv, @@ -2885,8 +2885,8 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, } break; - case ALL_RESURRECTION: /* ���U���N�V���� */ - case PR_TURNUNDEAD: /* �^�[���A���f�b�h */ + case ALL_RESURRECTION: /* リザレクション */ + case PR_TURNUNDEAD: /* ターンアンデッド */ if (bl->type != BL_PC && battle_check_undead (battle_get_race (bl), battle_get_elem_type (bl))) @@ -2899,23 +2899,23 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, } break; - /* ���@�n�X�L�� */ - case MG_SOULSTRIKE: /* �\�E���X�g���C�N */ - case MG_COLDBOLT: /* �R�[���h�{���g */ - case MG_FIREBOLT: /* �t�@�C�A�[�{���g */ - case MG_LIGHTNINGBOLT: /* ���C�g�j���O�{���g */ - case WZ_EARTHSPIKE: /* �A�[�X�X�p�C�N */ - case AL_HEAL: /* �q�[�� */ - case AL_HOLYLIGHT: /* �z�[���[���C�g */ - case MG_FROSTDIVER: /* �t���X�g�_�C�o�[ */ - case WZ_JUPITEL: /* ���s�e���T���_�[ */ - case NPC_MAGICALATTACK: /* MOB:���@�Ō��U�� */ - case PR_ASPERSIO: /* �A�X�y���V�I */ + /* 魔法系スキル */ + case MG_SOULSTRIKE: /* ソウルストライク */ + case MG_COLDBOLT: /* コールドボルト */ + case MG_FIREBOLT: /* ファイアーボルト */ + case MG_LIGHTNINGBOLT: /* ライトニングボルト */ + case WZ_EARTHSPIKE: /* アーススパイク */ + case AL_HEAL: /* ヒール */ + case AL_HOLYLIGHT: /* ホーリーライト */ + case MG_FROSTDIVER: /* フロストダイバー */ + case WZ_JUPITEL: /* ユピテルサンダー */ + case NPC_MAGICALATTACK: /* MOB:魔法打撃攻撃 */ + case PR_ASPERSIO: /* アスペルシオ */ skill_attack (BF_MAGIC, src, src, bl, skillid, skilllv, tick, flag); break; - case WZ_WATERBALL: /* �E�H�[�^�[�{�[�� */ + case WZ_WATERBALL: /* ウォーターボール */ skill_attack (BF_MAGIC, src, src, bl, skillid, skilllv, tick, flag); if (skilllv > 1) @@ -2923,22 +2923,22 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, 0, 0, 0, 0); break; - case PR_BENEDICTIO: /* ���̍~�� */ + case PR_BENEDICTIO: /* 聖体降福 */ if (battle_get_race (bl) == 1 || battle_get_race (bl) == 6) skill_attack (BF_MAGIC, src, src, bl, skillid, skilllv, tick, flag); break; - /* ���@�n�͈͍U���X�L�� */ - case MG_NAPALMBEAT: /* �i�p�[���r�[�g */ - case MG_FIREBALL: /* �t�@�C���[�{�[�� */ + /* 魔法系範囲攻撃スキル */ + case MG_NAPALMBEAT: /* ナパームビート */ + case MG_FIREBALL: /* ファイヤーボール */ if (flag & 1) { - /* �ʂɃ_���[�W��^���� */ + /* 個別にダメージを与える */ if (bl->id != skill_area_temp[1]) { if (skillid == MG_FIREBALL) - { /* �t�@�C���[�{�[���Ȃ璆�S����̋������v�Z */ + { /* ファイヤーボールなら中心からの距離を計算 */ int dx = abs (bl->x - skill_area_temp[2]); int dy = abs (bl->y - skill_area_temp[3]); skill_area_temp[0] = ((dx > dy) ? dx : dy); @@ -2952,7 +2952,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, int ar = (skillid == MG_NAPALMBEAT) ? 1 : 2; skill_area_temp[1] = bl->id; if (skillid == MG_NAPALMBEAT) - { /* �i�p�[���ł͐�ɐ����� */ + { /* ナパームでは先に数える */ skill_area_temp[0] = 0; map_foreachinarea (skill_area_sub, bl->m, bl->x - 1, bl->y - 1, bl->x + 1, @@ -2966,10 +2966,10 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, skill_area_temp[2] = bl->x; skill_area_temp[3] = bl->y; } - /* �܂��^�[�Q�b�g�ɍU���������� */ + /* まずターゲットに攻撃を加える */ skill_attack (BF_MAGIC, src, src, bl, skillid, skilllv, tick, skill_area_temp[0]); - /* ���̌�^�[�Q�b�g�ȊO�͈͓̔��̓G�S�̂ɏ������s�� */ + /* その後ターゲット以外の範囲内の敵全体に処理を行う */ map_foreachinarea (skill_area_sub, bl->m, bl->x - ar, bl->y - ar, bl->x + ar, bl->y + ar, 0, src, skillid, skilllv, tick, @@ -3016,7 +3016,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, } break; - case WZ_FROSTNOVA: /* �t���X�g�m���@ */ + case WZ_FROSTNOVA: /* フロストノヴァ */ skill_castend_pos2 (src, bl->x, bl->y, skillid, skilllv, tick, 0); skill_attack (BF_MAGIC, src, src, bl, skillid, skilllv, tick, flag); @@ -3028,11 +3028,11 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, skill_status_change_end (src, SC_SIGHT, -1); break; - /* ���̑� */ - case HT_BLITZBEAT: /* �u���b�c�r�[�g */ + /* その他 */ + case HT_BLITZBEAT: /* ブリッツビート */ if (flag & 1) { - /* �ʂɃ_���[�W��^���� */ + /* 個別にダメージを与える */ if (bl->id != skill_area_temp[1]) skill_attack (BF_MISC, src, src, bl, skillid, skilllv, tick, @@ -3048,10 +3048,10 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, src, skillid, skilllv, tick, flag | BCT_ENEMY, skill_area_sub_count); - /* �܂��^�[�Q�b�g�ɍU���������� */ + /* まずターゲットに攻撃を加える */ skill_attack (BF_MISC, src, src, bl, skillid, skilllv, tick, skill_area_temp[0] | (flag & 0xf00000)); - /* ���̌�^�[�Q�b�g�ȊO�͈͓̔��̓G�S�̂ɏ������s�� */ + /* その後ターゲット以外の範囲内の敵全体に処理を行う */ map_foreachinarea (skill_area_sub, bl->m, bl->x - 1, bl->y - 1, bl->x + 1, bl->y + 1, 0, src, skillid, skilllv, tick, @@ -3060,8 +3060,8 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, } break; - case CR_GRANDCROSS: /* �O�����h�N���X */ - /* �X�L�����j�b�g�z�u */ + case CR_GRANDCROSS: /* グランドクロス */ + /* スキルユニット配置 */ skill_castend_pos2 (src, bl->x, bl->y, skillid, skilllv, tick, 0); if (sd) sd->canmove_tick = tick + 1000; @@ -3069,16 +3069,16 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, mob_changestate ((struct mob_data *) src, MS_DELAY, 1000); break; - case TF_THROWSTONE: /* �Γ��� */ - case NPC_SMOKING: /* �X���[�L���O */ + case TF_THROWSTONE: /* 石投げ */ + case NPC_SMOKING: /* スモーキング */ skill_attack (BF_MISC, src, src, bl, skillid, skilllv, tick, 0); break; - case NPC_SELFDESTRUCTION: /* ���� */ - case NPC_SELFDESTRUCTION2: /* ����2 */ + case NPC_SELFDESTRUCTION: /* 自爆 */ + case NPC_SELFDESTRUCTION2: /* 自爆2 */ if (flag & 1) { - /* �ʂɃ_���[�W��^���� */ + /* 個別にダメージを与える */ if (src->type == BL_MOB) { struct mob_data *mb = (struct mob_data *) src; @@ -3110,7 +3110,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, } break; - /* HP�z��/HP�z�����@ */ + /* HP吸収/HP吸収魔法 */ case NPC_BLOODDRAIN: case NPC_ENERGYDRAIN: { @@ -3164,7 +3164,7 @@ int skill_castend_damage_id (struct block_list *src, struct block_list *bl, } /*========================================== - * �X�L���g�p�i�r�������AID�w��x���n�j + * スキル使用(詠唱完了、ID指定支援系) *------------------------------------------ */ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, @@ -3178,7 +3178,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, int i; int sc_def_vit, sc_def_mdef, strip_fix, strip_time, strip_per; int sc_dex, sc_luk; - //�N���X�`�F���W�p�{�X�����X�^�[ID + //クラスチェンジ用ボスモンスターID int changeclass[] = { 1038, 1039, 1046, 1059, 1086, 1087, 1112, 1115, 1157, 1159, 1190, 1272, 1312, 1373, 1492 @@ -3233,7 +3233,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, map_freeblock_lock (); switch (skillid) { - case AL_HEAL: /* �q�[�� */ + case AL_HEAL: /* ヒール */ { int heal = skill_calc_heal (src, skilllv); int heal_get_jobexp; @@ -3241,20 +3241,20 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, struct pc_base_job s_class; if (dstsd && dstsd->special_state.no_magic_damage) - heal = 0; /* ����峃J�[�h�i�q�[���ʂO�j */ + heal = 0; /* 黄金蟲カード(ヒール量0) */ if (sd) { s_class = pc_calc_base_job (sd->status.class); - if ((skill = pc_checkskill (sd, HP_MEDITATIO)) > 0) // ���f�B�e�C�e�B�I + if ((skill = pc_checkskill (sd, HP_MEDITATIO)) > 0) // メディテイティオ 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�A�Ώۂ������̃p�[�g�i�[�A�������X�p�m�r�A���������Ȃ� - heal = heal * 2; //�X�p�m�r�̉ł��U�߂Ƀq�[�������2�{�ɂȂ� + if (sd && dstsd && sd->status.partner_id == dstsd->status.char_id && s_class.job == 23 && sd->status.sex == 0) //自分も対象もPC、対象が自分のパートナー、自分がスパノビ、自分が♀なら + heal = heal * 2; //スパノビの嫁が旦那にヒールすると2倍になる } clif_skill_nodamage (src, bl, skillid, heal, 1); heal_get_jobexp = battle_heal (NULL, bl, heal, 0, 0); - // JOB�o���l�l�� + // JOB経験値獲得 if (src->type == BL_PC && bl->type == BL_PC && heal > 0 && src != bl && battle_config.heal_exp > 0) { @@ -3268,17 +3268,17 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case ALL_RESURRECTION: /* ���U���N�V���� */ + case ALL_RESURRECTION: /* リザレクション */ if (bl->type == BL_PC) { int per = 0; struct map_session_data *tsd = (struct map_session_data *) bl; nullpo_retr (1, tsd); if ((map[bl->m].flag.pvp) && tsd->pvp_point < 0) - break; /* PVP�ŕ����s�\��� */ + break; /* PVPで復活不可能状態 */ if (pc_isdead (tsd)) - { /* ���S���� */ + { /* 死亡判定 */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); switch (skilllv) { @@ -3299,7 +3299,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, if (tsd->status.hp <= 0) tsd->status.hp = 1; if (tsd->special_state.restart_full_recover) - { /* �I�V���X�J�[�h */ + { /* オシリスカード */ tsd->status.hp = tsd->status.max_hp; tsd->status.sp = tsd->status.max_sp; } @@ -3343,7 +3343,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case AL_DECAGI: /* ���x���� */ + case AL_DECAGI: /* 速度減少 */ if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -3393,7 +3393,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case PR_LEXDIVINA: /* ���b�N�X�f�B�r�[�i */ + case PR_LEXDIVINA: /* レックスディビーナ */ { struct status_change *sc_data = battle_get_sc_data (bl); clif_skill_nodamage (src, bl, skillid, skilllv, 1); @@ -3491,15 +3491,15 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, if (sd) pc_getzeny (sd, battle_get_lv (bl) * 100); break; - case AL_INCAGI: /* ���x���� */ - case AL_BLESSING: /* �u���b�V���O */ + case AL_INCAGI: /* 速度増加 */ + case AL_BLESSING: /* ブレッシング */ case PR_SLOWPOISON: - case PR_IMPOSITIO: /* �C���|�V�e�B�I�}�k�X */ - case PR_LEXAETERNA: /* ���b�N�X�G�[�e���i */ - case PR_SUFFRAGIUM: /* �T�t���M�E�� */ - case PR_BENEDICTIO: /* ���̍~�� */ - case CR_PROVIDENCE: /* �v�����B�f���X */ - case CG_MARIONETTE: /* �}���I�l�b�g�R���g���[�� */ + case PR_IMPOSITIO: /* イムポシティオマヌス */ + case PR_LEXAETERNA: /* レックスエーテルナ */ + case PR_SUFFRAGIUM: /* サフラギウム */ + case PR_BENEDICTIO: /* 聖体降福 */ + case CR_PROVIDENCE: /* プロヴィデンス */ + case CG_MARIONETTE: /* マリオネットコントロール */ if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -3569,7 +3569,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case PR_ASPERSIO: /* �A�X�y���V�I */ + case PR_ASPERSIO: /* アスペルシオ */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> @@ -3581,7 +3581,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, skilllv, 0, 0, 0, skill_get_time (skillid, skilllv), 0); break; - case PR_KYRIE: /* �L���G�G���C�\�� */ + case PR_KYRIE: /* キリエエレイソン */ clif_skill_nodamage (bl, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> @@ -3591,29 +3591,29 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, skilllv, 0, 0, 0, skill_get_time (skillid, skilllv), 0); break; - case KN_AUTOCOUNTER: /* �I�[�g�J�E���^�[ */ - case KN_TWOHANDQUICKEN: /* �c�[�n���h�N�C�b�P�� */ - case CR_SPEARQUICKEN: /* �X�s�A�N�C�b�P�� */ + case KN_AUTOCOUNTER: /* オートカウンター */ + case KN_TWOHANDQUICKEN: /* ツーハンドクイッケン */ + case CR_SPEARQUICKEN: /* スピアクイッケン */ case CR_REFLECTSHIELD: - case AS_POISONREACT: /* �|�C�Y�����A�N�g */ - case MC_LOUD: /* ���E�h�{�C�X */ - case MG_ENERGYCOAT: /* �G�i�W�[�R�[�g */ - case SM_ENDURE: /* �C���f���A */ - case MG_SIGHT: /* �T�C�g */ - case AL_RUWACH: /* ���A�t */ - case MO_EXPLOSIONSPIRITS: // �����g�� - case MO_STEELBODY: // ���� - case LK_AURABLADE: /* �I�[���u���[�h */ - case LK_PARRYING: /* �p���C���O */ - case LK_CONCENTRATION: /* �R���Z���g���[�V���� */ - case LK_BERSERK: /* �o�[�T�[�N */ + case AS_POISONREACT: /* ポイズンリアクト */ + case MC_LOUD: /* ラウドボイス */ + case MG_ENERGYCOAT: /* エナジーコート */ + case SM_ENDURE: /* インデュア */ + case MG_SIGHT: /* サイト */ + case AL_RUWACH: /* ルアフ */ + case MO_EXPLOSIONSPIRITS: // 爆裂波動 + case MO_STEELBODY: // 金剛 + case LK_AURABLADE: /* オーラブレード */ + case LK_PARRYING: /* パリイング */ + case LK_CONCENTRATION: /* コンセントレーション */ + case LK_BERSERK: /* バーサーク */ case HP_ASSUMPTIO: /* */ - case WS_CARTBOOST: /* �J�[�g�u�[�X�g */ - case SN_SIGHT: /* �g�D���[�T�C�g */ - case WS_MELTDOWN: /* �����g�_�E�� */ - case ST_REJECTSWORD: /* ���W�F�N�g�\�[�h */ - case HW_MAGICPOWER: /* ���@�͑��� */ - case PF_MEMORIZE: /* �������C�Y */ + case WS_CARTBOOST: /* カートブースト */ + case SN_SIGHT: /* トゥルーサイト */ + case WS_MELTDOWN: /* メルトダウン */ + case ST_REJECTSWORD: /* リジェクトソード */ + case HW_MAGICPOWER: /* 魔法力増幅 */ + case PF_MEMORIZE: /* メモライズ */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); skill_status_change_start (bl, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, @@ -3639,7 +3639,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, skilllv, 0, 0, 0, skill_get_time (skillid, skilllv), 0); break; - case LK_TENSIONRELAX: /* �e���V���������b�N�X */ + case LK_TENSIONRELAX: /* テンションリラックス */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); pc_setsit (sd); clif_sitting (sd->fd, sd); @@ -3650,7 +3650,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, case MC_CHANGECART: clif_skill_nodamage (src, bl, skillid, skilllv, 1); break; - case AC_CONCENTRATION: /* �W���͌��� */ + case AC_CONCENTRATION: /* 集中力向上 */ { int range = 1; clif_skill_nodamage (src, bl, skillid, skilllv, 1); @@ -3663,12 +3663,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, SkillStatusChangeTable[skillid], tick); } break; - case SM_PROVOKE: /* �v���{�b�N */ + case SM_PROVOKE: /* プロボック */ { struct status_change *sc_data = battle_get_sc_data (bl); - /* MVPmob�ƕs���ɂ͌����Ȃ� */ - if ((bl->type == BL_MOB && battle_get_mode (bl) & 0x20) || battle_check_undead (battle_get_race (bl), battle_get_elem_type (bl))) //�s���ɂ͌����Ȃ� + /* MVPmobと不死には効かない */ + if ((bl->type == BL_MOB && battle_get_mode (bl) & 0x20) || battle_check_undead (battle_get_race (bl), battle_get_elem_type (bl))) //不死には効かない { map_freeblock_unlock (); return 1; @@ -3679,7 +3679,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, skilllv, 0, 0, 0, skill_get_time (skillid, skilllv), 0); - if (dstmd && dstmd->skilltimer != -1 && dstmd->state.skillcastcancel) // �r���W�Q + if (dstmd && dstmd->skilltimer != -1 && dstmd->state.skillcastcancel) // 詠唱妨害 skill_castcancel (bl, 0); if (dstsd && dstsd->skilltimer != -1 && (!dstsd->special_state.no_castcancel @@ -3708,23 +3708,23 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case CR_DEVOTION: /* �f�B�{�[�V���� */ + case CR_DEVOTION: /* ディボーション */ if (sd && dstsd) { - //�]����{�q�̏ꍇ�̌��̐E�Ƃ��Z�o���� + //転生や養子の場合の元の職業を算出する int lv = sd->status.base_level - dstsd->status.base_level; lv = (lv < 0) ? -lv : lv; - if ((dstsd->bl.type != BL_PC) // �����PC����Ȃ��Ƃ��� - || (sd->bl.id == dstsd->bl.id) // ���肪�����͂��� - || (lv > 10) // ���x�����}10�܂� - || (!sd->status.party_id && !sd->status.guild_id) // PT�ɂ��M���h�ɂ����������͂��� - || ((sd->status.party_id != dstsd->status.party_id) // �����p�[�e�B�[���A - || (sd->status.guild_id != dstsd->status.guild_id)) // �����M���h����Ȃ��Ƃ��� + if ((dstsd->bl.type != BL_PC) // 相手はPCじゃないとだめ + || (sd->bl.id == dstsd->bl.id) // 相手が自分はだめ + || (lv > 10) // レベル差±10まで + || (!sd->status.party_id && !sd->status.guild_id) // PTにもギルドにも所属無しはだめ + || ((sd->status.party_id != dstsd->status.party_id) // 同じパーティーか、 + || (sd->status.guild_id != dstsd->status.guild_id)) // 同じギルドじゃないとだめ || (dstsd->status.class == 14 || dstsd->status.class == 21 || dstsd->status.class == 4015 || dstsd->status.class == 4022)) - { // �N���Z���� + { // クルセだめ clif_skill_fail (sd, skillid, 0, 0); map_freeblock_unlock (); return 1; @@ -3732,13 +3732,13 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, for (i = 0; i < skilllv; i++) { if (!sd->dev.val1[i]) - { // �������������� + { // 空きがあったら入れる sd->dev.val1[i] = bl->id; sd->dev.val2[i] = bl->id; break; } else if (i == skilllv - 1) - { // ���Ȃ����� + { // 空きがなかった clif_skill_fail (sd, skillid, 0, 0); map_freeblock_unlock (); return 1; @@ -3754,7 +3754,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, else clif_skill_fail (sd, skillid, 0, 0); break; - case MO_CALLSPIRITS: // �C�� + case MO_CALLSPIRITS: // 気功 if (sd) { clif_skill_nodamage (src, bl, skillid, skilllv, 1); @@ -3762,7 +3762,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, skilllv); } break; - case CH_SOULCOLLECT: // ���C�� + case CH_SOULCOLLECT: // 狂気功 if (sd) { clif_skill_nodamage (src, bl, skillid, skilllv, 1); @@ -3771,13 +3771,13 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, 5); } break; - case MO_BLADESTOP: // ���n��� + case MO_BLADESTOP: // 白刃取り clif_skill_nodamage (src, bl, skillid, skilllv, 1); skill_status_change_start (src, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, skill_get_time (skillid, skilllv), 0); break; - case MO_ABSORBSPIRITS: // �C�D + case MO_ABSORBSPIRITS: // 気奪 i = 0; if (sd && dstsd) { @@ -3797,8 +3797,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } } else if (sd && dstmd) - { //�Ώۂ������X�^�[�̏ꍇ - //20%�̊m���őΏۂ�Lv*2��SP������B���������Ƃ��̓^�[�Q�b�g(��߄D�)�йޯ�!! + { //対象がモンスターの場合 + //20%の確率で対象のLv*2のSPを回復する。成功したときはターゲット(σ゚Д゚)σゲッツ!! if (MRAND (100) < 20) { i = 2 * mob_db[dstmd->class].lv; @@ -3814,32 +3814,32 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, clif_skill_nodamage (src, bl, skillid, skilllv, 0); break; - case AC_MAKINGARROW: /* ��쐬 */ + case AC_MAKINGARROW: /* 矢作成 */ /* if(sd) { clif_arrow_create_list(sd); clif_skill_nodamage(src,bl,skillid,skilllv,1); }*/ break; - case AM_PHARMACY: /* �|�[�V�����쐬 */ + case AM_PHARMACY: /* ポーション作成 */ /* if(sd) { clif_skill_produce_mix_list(sd,32); clif_skill_nodamage(src,bl,skillid,skilllv,1); }*/ break; - case WS_CREATECOIN: /* �N���G�C�g�R�C�� */ + case WS_CREATECOIN: /* クリエイトコイン */ /* if(sd) { clif_skill_produce_mix_list(sd,64); clif_skill_nodamage(src,bl,skillid,skilllv,1); }*/ break; - case WS_CREATENUGGET: /* �� */ + case WS_CREATENUGGET: /* 塊製造 */ /* if(sd) { clif_skill_produce_mix_list(sd,128); clif_skill_nodamage(src,bl,skillid,skilllv,1); }*/ break; - case BS_HAMMERFALL: /* �n���}�[�t�H�[�� */ + case BS_HAMMERFALL: /* ハンマーフォール */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> @@ -3853,7 +3853,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case RG_RAID: /* �T�v���C�Y�A�^�b�N */ + case RG_RAID: /* サプライズアタック */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); { int x = bl->x, y = bl->y; @@ -3866,10 +3866,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, flag | BCT_ENEMY | 1, skill_castend_damage_id); } - skill_status_change_end (src, SC_HIDING, -1); // �n�C�f�B���O���� + skill_status_change_end (src, SC_HIDING, -1); // ハイディング解除 break; - case KN_BRANDISHSPEAR: /*�u�����f�B�b�V���X�s�A */ + case KN_BRANDISHSPEAR: /*ブランディッシュスピア */ { int c, n = 4, ar; int dir = map_calc_dir (src, bl->x, bl->y); @@ -3878,7 +3878,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ar = skilllv / 3; skill_brandishspear_first (&tc, dir, x, y); skill_brandishspear_dir (&tc, dir, 4); - /* �͈͇C */ + /* 範囲C */ if (skilllv == 10) { for (c = 1; c < 4; c++) @@ -3891,7 +3891,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, skill_castend_damage_id); } } - /* �͈͇B�A */ + /* 範囲BA */ if (skilllv > 6) { skill_brandishspear_dir (&tc, dir, -1); @@ -3921,7 +3921,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } } } - /* �͈͇@ */ + /* 範囲@ */ for (c = 0; c < 10; c++) { if (c == 0 || c == 5) @@ -3936,14 +3936,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - /* �p�[�e�B�X�L�� */ - case AL_ANGELUS: /* �G���W�F���X */ - case PR_MAGNIFICAT: /* �}�O�j�t�B�J�[�g */ - case PR_GLORIA: /* �O�����A */ - case SN_WINDWALK: /* �E�C���h�E�H�[�N */ + /* パーティスキル */ + case AL_ANGELUS: /* エンジェラス */ + case PR_MAGNIFICAT: /* マグニフィカート */ + case PR_GLORIA: /* グロリア */ + case SN_WINDWALK: /* ウインドウォーク */ if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) { - /* �ʂ̏��� */ + /* 個別の処理 */ clif_skill_nodamage (bl, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> @@ -3957,7 +3957,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } else { - /* �p�[�e�B�S�̂ւ̏��� */ + /* パーティ全体への処理 */ party_foreachsamemap (skill_area_sub, sd, 1, src, skillid, skilllv, tick, @@ -3965,12 +3965,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, skill_castend_nodamage_id); } break; - case BS_ADRENALINE: /* �A�h���i�������b�V�� */ - case BS_WEAPONPERFECT: /* �E�F�|���p�[�t�F�N�V���� */ - case BS_OVERTHRUST: /* �I�[�o�[�g���X�g */ + case BS_ADRENALINE: /* アドレナリンラッシュ */ + case BS_WEAPONPERFECT: /* ウェポンパーフェクション */ + case BS_OVERTHRUST: /* オーバートラスト */ if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) { - /* �ʂ̏��� */ + /* 個別の処理 */ clif_skill_nodamage (bl, bl, skillid, skilllv, 1); skill_status_change_start (bl, SkillStatusChangeTable[skillid], @@ -3980,7 +3980,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } else { - /* �p�[�e�B�S�̂ւ̏��� */ + /* パーティ全体への処理 */ party_foreachsamemap (skill_area_sub, sd, 1, src, skillid, skilllv, tick, @@ -3989,11 +3989,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - /*�i�t���Ɖ������K�v�j */ - case BS_MAXIMIZE: /* �}�L�V�}�C�Y�p���[ */ - case NV_TRICKDEAD: /* ���ӂ� */ - case CR_DEFENDER: /* �f�B�t�F���_�[ */ - case CR_AUTOGUARD: /* �I�[�g�K�[�h */ + /*(付加と解除が必要) */ + case BS_MAXIMIZE: /* マキシマイズパワー */ + case NV_TRICKDEAD: /* 死んだふり */ + case CR_DEFENDER: /* ディフェンダー */ + case CR_AUTOGUARD: /* オートガード */ { struct status_change *tsc_data = battle_get_sc_data (bl); int sc = SkillStatusChangeTable[skillid]; @@ -4001,18 +4001,18 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, if (tsc_data) { if (tsc_data[sc].timer == -1) - /* �t������ */ + /* 付加する */ skill_status_change_start (bl, sc, skilllv, 0, 0, 0, skill_get_time (skillid, skilllv), 0); else - /* �������� */ + /* 解除する */ skill_status_change_end (bl, sc, -1); } } break; - case TF_HIDING: /* �n�C�f�B���O */ + case TF_HIDING: /* ハイディング */ { struct status_change *tsc_data = battle_get_sc_data (bl); int sc = SkillStatusChangeTable[skillid]; @@ -4020,18 +4020,18 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, if (tsc_data) { if (tsc_data[sc].timer == -1) - /* �t������ */ + /* 付加する */ skill_status_change_start (bl, sc, skilllv, 0, 0, 0, skill_get_time (skillid, skilllv), 0); else - /* �������� */ + /* 解除する */ skill_status_change_end (bl, sc, -1); } } break; - case AS_CLOAKING: /* �N���[�L���O */ + case AS_CLOAKING: /* クローキング */ { struct status_change *tsc_data = battle_get_sc_data (bl); int sc = SkillStatusChangeTable[skillid]; @@ -4039,12 +4039,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, if (tsc_data) { if (tsc_data[sc].timer == -1) - /* �t������ */ + /* 付加する */ skill_status_change_start (bl, sc, skilllv, 0, 0, 0, skill_get_time (skillid, skilllv), 0); else - /* �������� */ + /* 解除する */ skill_status_change_end (bl, sc, -1); } @@ -4052,7 +4052,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case ST_CHASEWALK: /* �n�C�f�B���O */ + case ST_CHASEWALK: /* ハイディング */ { struct status_change *tsc_data = battle_get_sc_data (bl); int sc = SkillStatusChangeTable[skillid]; @@ -4060,49 +4060,49 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, if (tsc_data) { if (tsc_data[sc].timer == -1) - /* �t������ */ + /* 付加する */ skill_status_change_start (bl, sc, skilllv, 0, 0, 0, skill_get_time (skillid, skilllv), 0); else - /* �������� */ + /* 解除する */ skill_status_change_end (bl, sc, -1); } } break; - /* �Βn�X�L�� */ - case BD_LULLABY: /* �q��S */ - case BD_RICHMANKIM: /* �j�����h�̉� */ - case BD_ETERNALCHAOS: /* �i���̍��� */ - case BD_DRUMBATTLEFIELD: /* �푾�ۂ̋��� */ - case BD_RINGNIBELUNGEN: /* �j�[�x�����O�̎w�� */ - case BD_ROKISWEIL: /* ���L�̋��� */ - case BD_INTOABYSS: /* �[���̒��� */ - case BD_SIEGFRIED: /* �s���g�̃W�[�N�t���[�h */ - case BA_DISSONANCE: /* �s���a�� */ - case BA_POEMBRAGI: /* �u���M�̎� */ - case BA_WHISTLE: /* ���J */ - case BA_ASSASSINCROSS: /* �[�z�̃A�T�V���N���X */ - case BA_APPLEIDUN: /* �C�h�D���̗ь� */ - case DC_UGLYDANCE: /* ��������ȃ_���X */ - case DC_HUMMING: /* �n�~���O */ - case DC_DONTFORGETME: /* ����Y��Ȃ��Łc */ - case DC_FORTUNEKISS: /* �K�^�̃L�X */ - case DC_SERVICEFORYOU: /* �T�[�r�X�t�H�[���[ */ - case CG_MOONLIT: /* ������̐�ɗ�����Ԃт� */ + /* 対地スキル */ + case BD_LULLABY: /* 子守唄 */ + case BD_RICHMANKIM: /* ニヨルドの宴 */ + case BD_ETERNALCHAOS: /* 永遠の混沌 */ + case BD_DRUMBATTLEFIELD: /* 戦太鼓の響き */ + case BD_RINGNIBELUNGEN: /* ニーベルングの指輪 */ + case BD_ROKISWEIL: /* ロキの叫び */ + case BD_INTOABYSS: /* 深淵の中に */ + case BD_SIEGFRIED: /* 不死身のジークフリード */ + case BA_DISSONANCE: /* 不協和音 */ + case BA_POEMBRAGI: /* ブラギの詩 */ + case BA_WHISTLE: /* 口笛 */ + case BA_ASSASSINCROSS: /* 夕陽のアサシンクロス */ + case BA_APPLEIDUN: /* イドゥンの林檎 */ + case DC_UGLYDANCE: /* 自分勝手なダンス */ + case DC_HUMMING: /* ハミング */ + case DC_DONTFORGETME: /* 私を忘れないで… */ + case DC_FORTUNEKISS: /* 幸運のキス */ + case DC_SERVICEFORYOU: /* サービスフォーユー */ + case CG_MOONLIT: /* 月明りの泉に落ちる花びら */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); skill_unitsetting (src, skillid, skilllv, src->x, src->y, 0); break; - case HP_BASILICA: /* �o�W���J */ - case PA_GOSPEL: /* �S�X�y�� */ + case HP_BASILICA: /* バジリカ */ + case PA_GOSPEL: /* ゴスペル */ skill_clear_unitgroup (src); clif_skill_nodamage (src, bl, skillid, skilllv, 1); skill_unitsetting (src, skillid, skilllv, src->x, src->y, 0); break; - case BD_ADAPTATION: /* �A�h���u */ + case BD_ADAPTATION: /* アドリブ */ { struct status_change *sc_data = battle_get_sc_data (src); if (sc_data && sc_data[SC_DANCING].timer != -1) @@ -4113,14 +4113,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case BA_FROSTJOKE: /* �����W���[�N */ - case DC_SCREAM: /* �X�N���[�� */ + case BA_FROSTJOKE: /* 寒いジョーク */ + case DC_SCREAM: /* スクリーム */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); skill_addtimerskill (src, tick + 3000, bl->id, 0, 0, skillid, skilllv, 0, flag); break; - case TF_STEAL: // �X�e�B�[�� + case TF_STEAL: // スティール if (sd) { if (pc_steal_item (sd, bl)) @@ -4130,7 +4130,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case RG_STEALCOIN: // �X�e�B�[���R�C�� + case RG_STEALCOIN: // スティールコイン if (sd) { if (pc_steal_coin (sd, bl)) @@ -4146,7 +4146,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case MG_STONECURSE: /* �X�g�[���J�[�X */ + case MG_STONECURSE: /* ストーンカース */ if (bl->type == BL_MOB && battle_get_mode (bl) & 0x20) { clif_skill_fail (sd, sd->skillid, 0, 0); @@ -4167,12 +4167,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, clif_skill_fail (sd, skillid, 0, 0); break; - case NV_FIRSTAID: /* ���}�蓖 */ + case NV_FIRSTAID: /* 応急手当 */ clif_skill_nodamage (src, bl, skillid, 5, 1); battle_heal (NULL, bl, 5, 0, 0); break; - case AL_CURE: /* �L���A�[ */ + case AL_CURE: /* キュアー */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> @@ -4183,18 +4183,18 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, skill_status_change_end (bl, SC_CONFUSION, -1); if (battle_check_undead (battle_get_race (bl), battle_get_elem_type (bl))) - { //�A���f�b�h�Ȃ�ÈŌ��� + { //アンデッドなら暗闇効果 skill_status_change_start (bl, SC_CONFUSION, 1, 0, 0, 0, 6000, 0); } break; - case TF_DETOXIFY: /* ��� */ + case TF_DETOXIFY: /* 解毒 */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); skill_status_change_end (bl, SC_POISON, -1); break; - case PR_STRECOVERY: /* ���J�o���[ */ + case PR_STRECOVERY: /* リカバリー */ { clif_skill_nodamage (src, bl, skillid, skilllv, 1); if (bl->type == BL_PC @@ -4207,7 +4207,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, skill_status_change_end (bl, SC_STAN, -1); if (battle_check_undead (battle_get_race (bl), battle_get_elem_type (bl))) - { //�A���f�b�h�Ȃ�ÈŌ��� + { //アンデッドなら暗闇効果 int blind_time; //blind_time=30-battle_get_vit(bl)/10-battle_get_int/15; blind_time = @@ -4232,7 +4232,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case WZ_ESTIMATION: /* �����X�^�[��� */ + case WZ_ESTIMATION: /* モンスター情報 */ if (src->type == BL_PC) { clif_skill_nodamage (src, bl, skillid, skilllv, 1); @@ -4240,22 +4240,22 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case MC_IDENTIFY: /* �A�C�e���Ӓ� */ + case MC_IDENTIFY: /* アイテム鑑定 */ if (sd) clif_item_identify_list (sd); break; - case BS_REPAIRWEAPON: /* ����C�� */ + case BS_REPAIRWEAPON: /* 武器修理 */ if (sd) -//���삵�Ȃ��̂łƂ肠�����R�����g�A�E�g +//動作しないのでとりあえずコメントアウト // clif_item_repair_list(sd); break; - case AL_TELEPORT: /* �e���|�[�g */ + case AL_TELEPORT: /* テレポート */ if (sd) { if (map[sd->bl.m].flag.noteleport) - { /* �e���|�֎~ */ + { /* テレポ禁止 */ clif_skill_teleportmessage (sd, 0); break; } @@ -4273,7 +4273,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, mob_warp ((struct mob_data *) bl, -1, -1, -1, 3); break; - case AL_HOLYWATER: /* �A�N�A�x�l�f�B�N�^ */ + case AL_HOLYWATER: /* アクアベネディクタ */ if (sd) { int eflag; @@ -4286,7 +4286,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, { item_tmp.card[0] = 0xfe; item_tmp.card[1] = 0; - *((unsigned long *) (&item_tmp.card[2])) = sd->char_id; /* �L����ID */ + *((unsigned long *) (&item_tmp.card[2])) = sd->char_id; /* キャラID */ } eflag = pc_additem (sd, &item_tmp, 1); if (eflag) @@ -4320,7 +4320,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case RG_STRIPWEAPON: /* �X�g���b�v�E�F�|�� */ + case RG_STRIPWEAPON: /* ストリップウェポン */ { struct status_change *tsc_data = battle_get_sc_data (bl); @@ -4350,7 +4350,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case RG_STRIPSHIELD: /* �X�g���b�v�V�[���h */ + case RG_STRIPSHIELD: /* ストリップシールド */ { struct status_change *tsc_data = battle_get_sc_data (bl); @@ -4380,7 +4380,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case RG_STRIPARMOR: /* �X�g���b�v�A�[�}�[ */ + case RG_STRIPARMOR: /* ストリップアーマー */ { struct status_change *tsc_data = battle_get_sc_data (bl); @@ -4409,7 +4409,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } } break; - case RG_STRIPHELM: /* �X�g���b�v�w���� */ + case RG_STRIPHELM: /* ストリップヘルム */ { struct status_change *tsc_data = battle_get_sc_data (bl); @@ -4439,7 +4439,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; /* PotionPitcher */ - case AM_POTIONPITCHER: /* �|�[�V�����s�b�`���[ */ + case AM_POTIONPITCHER: /* ポーションピッチャー */ { struct block_list tbl; int i, x, hp = 0, sp = 0; @@ -4591,7 +4591,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, skill_get_time (skillid, skilllv), 0); } break; - case SA_DISPELL: /* �f�B�X�y�� */ + case SA_DISPELL: /* ディスペル */ { int i; clif_skill_nodamage (src, bl, skillid, skilllv, 1); @@ -4613,7 +4613,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case TF_BACKSLIDING: /* �o�b�N�X�e�b�v */ + case TF_BACKSLIDING: /* バックステップ */ battle_stopwalking (src, 1); skill_blown (src, bl, skill_get_blewcount (skillid, skilllv) | 0x10000); @@ -4637,7 +4637,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, pc_heal (sd, 0, -sp); } break; - case SA_SPELLBREAKER: // �X�y���u���C�J�[ + case SA_SPELLBREAKER: // スペルブレイカー { struct status_change *sc_data = battle_get_sc_data (bl); int sp; @@ -4730,7 +4730,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, skilllv, 0, 0, 0, skill_get_time (skillid, skilllv), 0); break; - case SA_AUTOSPELL: /* �I�[�g�X�y�� */ + case SA_AUTOSPELL: /* オートスペル */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); if (sd) clif_autospell (sd, skilllv); @@ -4773,13 +4773,13 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - /* �����_�������ω��A�������ω��A�n�A�A�� */ + /* ランダム属性変化、水属性変化、地、火、風 */ case NPC_ATTRICHANGE: case NPC_CHANGEWATER: case NPC_CHANGEGROUND: case NPC_CHANGEFIRE: case NPC_CHANGEWIND: - /* �ŁA���A�O�A�� */ + /* 毒、聖、念、闇 */ case NPC_CHANGEPOISON: case NPC_CHANGEHOLY: case NPC_CHANGEDARKNESS: @@ -4788,9 +4788,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, { clif_skill_nodamage (src, bl, skillid, skilllv, 1); md->def_ele = skill_get_pl (skillid); - if (md->def_ele == 0) /* �����_���ω��A�������A */ - md->def_ele = MRAND (10); /* �s�������͏��� */ - md->def_ele += (1 + MRAND (4)) * 20; /* �������x���̓����_�� */ + if (md->def_ele == 0) /* ランダム変化、ただし、 */ + md->def_ele = MRAND (10); /* 不死属性は除く */ + md->def_ele += (1 + MRAND (4)) * 20; /* 属性レベルはランダム */ } break; @@ -4839,8 +4839,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case NPC_SELFDESTRUCTION: /* ���� */ - case NPC_SELFDESTRUCTION2: /* ����2 */ + case NPC_SELFDESTRUCTION: /* 自爆 */ + case NPC_SELFDESTRUCTION2: /* 自爆2 */ skill_status_change_start (bl, SkillStatusChangeTable[skillid], skilllv, skillid, 0, 0, skill_get_time (skillid, skilllv), 0); @@ -4859,7 +4859,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, 0); break; - case NPC_SUICIDE: /* ���� */ + case NPC_SUICIDE: /* 自決 */ if (src && bl && md) { clif_skill_nodamage (src, bl, skillid, skilllv, 1); @@ -4867,8 +4867,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case NPC_SUMMONSLAVE: /* �艺���� */ - case NPC_SUMMONMONSTER: /* MOB���� */ + case NPC_SUMMONSLAVE: /* 手下召喚 */ + case NPC_SUMMONMONSTER: /* MOB召喚 */ if (md && !md->master_id) { mob_summonslave (md, @@ -4885,7 +4885,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, mob_db[md->class].skill[md->skillidx].val); break; - case NPC_EMOTION: /* �G���[�V���� */ + case NPC_EMOTION: /* エモーション */ if (md) clif_emotion (&md->bl, mob_db[md->class].skill[md->skillidx].val[0]); @@ -4895,7 +4895,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, clif_skill_nodamage (src, bl, skillid, skilllv, 1); break; - case WE_MALE: /* �N�����͌��� */ + case WE_MALE: /* 君だけは護るよ */ if (sd && dstsd) { int hp_rate = @@ -4906,7 +4906,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, battle_heal (NULL, bl, gain_hp, 0, 0); } break; - case WE_FEMALE: /* ���Ȃ��ׂ̈ɋ]���ɂȂ�܂� */ + case WE_FEMALE: /* あなたの為に犠牲になります */ if (sd && dstsd) { int sp_rate = @@ -4918,7 +4918,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case WE_CALLPARTNER: /* ���Ȃ��ɉ���� */ + case WE_CALLPARTNER: /* あなたに会いたい */ if (sd && dstsd) { if (map[sd->bl.m].flag.nomemo) @@ -4936,24 +4936,24 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } break; - case PF_HPCONVERSION: /* ���C�t�u������ */ + case PF_HPCONVERSION: /* ライフ置き換え */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); if (sd) { int conv_hp = 0, conv_sp = 0; - conv_hp = sd->status.hp / 10; //��{��HP��10% - sd->status.hp -= conv_hp; //HP�����炷 + conv_hp = sd->status.hp / 10; //基本はHPの10% + sd->status.hp -= conv_hp; //HPを減らす conv_sp = conv_hp * 20 * skilllv / 100; conv_sp = (sd->status.sp + conv_sp > sd->status.max_sp) ? sd->status.max_sp - sd->status.sp : conv_sp; - sd->status.sp += conv_sp; //SP�𑝂₷ + sd->status.sp += conv_sp; //SPを増やす pc_heal (sd, -conv_hp, conv_sp); clif_heal (sd->fd, SP_SP, conv_sp); } break; - case HT_REMOVETRAP: /* �����[�u�g���b�v */ + case HT_REMOVETRAP: /* リムーブトラップ */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); { struct skill_unit *su = NULL; @@ -4966,7 +4966,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, && su->group->unit_id <= 0x99) && (su->group->unit_id != 0x92)) - { //㩂����Ԃ� + { //罠を取り返す if (sd) { if (battle_config.skill_removetrap_type == 1) @@ -5029,7 +5029,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } } break; - case HT_SPRINGTRAP: /* �X�v�����O�g���b�v */ + case HT_SPRINGTRAP: /* スプリングトラップ */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); { struct skill_unit *su = NULL; @@ -5038,15 +5038,15 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, { switch (su->group->unit_id) { - case 0x8f: /* �u���X�g�}�C�� */ - case 0x90: /* �X�L�b�h�g���b�v */ - case 0x93: /* �����h�}�C�� */ - case 0x94: /* �V���b�N�E�F�[�u�g���b�v */ - case 0x95: /* �T���h�}�� */ - case 0x96: /* �t���b�V���[ */ - case 0x97: /* �t���[�W���O�g���b�v */ - case 0x98: /* �N���C���A�[�g���b�v */ - case 0x99: /* �g�[�L�[�{�b�N�X */ + case 0x8f: /* ブラストマイン */ + case 0x90: /* スキッドトラップ */ + case 0x93: /* ランドマイン */ + case 0x94: /* ショックウェーブトラップ */ + case 0x95: /* サンドマン */ + case 0x96: /* フラッシャー */ + case 0x97: /* フリージングトラップ */ + case 0x98: /* クレイモアートラップ */ + case 0x99: /* トーキーボックス */ su->group->unit_id = 0x8c; clif_changelook (bl, LOOK_BASE, su->group->unit_id); @@ -5058,26 +5058,26 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } } break; - case BD_ENCORE: /* �A���R�[�� */ + case BD_ENCORE: /* アンコール */ clif_skill_nodamage (src, bl, skillid, skilllv, 1); if (sd) skill_use_id (sd, src->id, sd->skillid_dance, sd->skilllv_dance); break; - case AS_SPLASHER: /* �x�i���X�v���b�V���[ */ - if ((double) battle_get_max_hp (bl) * 2 / 3 < battle_get_hp (bl)) //HP��2/3�ȏ�c���Ă����玸�s + case AS_SPLASHER: /* ベナムスプラッシャー */ + if ((double) battle_get_max_hp (bl) * 2 / 3 < battle_get_hp (bl)) //HPが2/3以上残っていたら失敗 return 1; clif_skill_nodamage (src, bl, skillid, skilllv, 1); skill_status_change_start (bl, SkillStatusChangeTable[skillid], skilllv, skillid, src->id, 0, skill_get_time (skillid, skilllv), 0); break; - case PF_MINDBREAKER: /* �v���{�b�N */ + case PF_MINDBREAKER: /* プロボック */ { struct status_change *sc_data = battle_get_sc_data (bl); - /* MVPmob�ƕs���ɂ͌����Ȃ� */ - if ((bl->type == BL_MOB && battle_get_mode (bl) & 0x20) || battle_check_undead (battle_get_race (bl), battle_get_elem_type (bl))) //�s���ɂ͌����Ȃ� + /* MVPmobと不死には効かない */ + if ((bl->type == BL_MOB && battle_get_mode (bl) & 0x20) || battle_check_undead (battle_get_race (bl), battle_get_elem_type (bl))) //不死には効かない { map_freeblock_unlock (); return 1; @@ -5088,7 +5088,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, skilllv, 0, 0, 0, skill_get_time (skillid, skilllv), 0); - if (dstmd && dstmd->skilltimer != -1 && dstmd->state.skillcastcancel) // �r���W�Q + if (dstmd && dstmd->skilltimer != -1 && dstmd->state.skillcastcancel) // 詠唱妨害 skill_castcancel (bl, 0); if (dstsd && dstsd->skilltimer != -1 && (!dstsd->special_state.no_castcancel @@ -5125,7 +5125,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, (su = (struct skill_unit *) bl) && (su->group->src_id == src->id || map[bl->m].flag.pvp || map[bl->m].flag.gvg) && (su->group->unit_id == 0xb0)) - { //㩂����Ԃ� + { //罠を取り返す if (sd) skill_delunit (su); } @@ -5142,7 +5142,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, } /*========================================== - * �X�L���g�p�i�r�������AID�w��j + * スキル使用(詠唱完了、ID指定) *------------------------------------------ */ int skill_castend_id (int tid, unsigned int tick, int id, int data) @@ -5153,10 +5153,10 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data) nullpo_retr (0, sd); - if (sd->bl.prev == NULL) //prev�������̂͂���Ȃ́H + if (sd->bl.prev == NULL) //prevが無いのはありなの? return 0; - if (sd->skillid != SA_CASTCANCEL && sd->skilltimer != tid) /* �^�C�}ID�̊m�F */ + if (sd->skillid != SA_CASTCANCEL && sd->skilltimer != tid) /* タイマIDの確認 */ return 0; if (sd->skillid != SA_CASTCANCEL && sd->skilltimer != -1 && pc_checkskill (sd, SA_FREECAST) > 0) @@ -5175,7 +5175,7 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data) return 0; } if (sd->bl.m != bl->m || pc_isdead (sd)) - { //�}�b�v���Ⴄ������������ł��� + { //マップが違うか自分が死んでいる sd->canact_tick = tick; sd->canmove_tick = tick; sd->skillitem = sd->skillitemlv = -1; @@ -5213,7 +5213,7 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data) } inf2 = skill_get_inf2 (sd->skillid); - if (((skill_get_inf (sd->skillid) & 1) || inf2 & 4) && // �މ�G�ΊW�`�F�b�N + if (((skill_get_inf (sd->skillid) & 1) || inf2 & 4) && // 彼我敵対関係チェック battle_check_target (&sd->bl, bl, BCT_ENEMY) <= 0) { sd->canact_tick = tick; @@ -5265,7 +5265,7 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data) } } if (!skill_check_condition (sd, 1)) - { /* �g�p�����`�F�b�N */ + { /* 使用条件チェック */ sd->canact_tick = tick; sd->canmove_tick = tick; sd->skillitem = sd->skillitemlv = -1; @@ -5289,13 +5289,13 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data) switch (skill_get_nk (sd->skillid)) { - /* �U���n/��������n */ + /* 攻撃系/吹き飛ばし系 */ case 0: case 2: skill_castend_damage_id (&sd->bl, bl, sd->skillid, sd->skilllv, tick, 0); break; - case 1: /* �x���n */ + case 1: /* 支援系 */ if ((sd->skillid == AL_HEAL || (sd->skillid == ALL_RESURRECTION && bl->type != BL_PC) || sd->skillid == PR_ASPERSIO) @@ -5313,7 +5313,7 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data) } /*========================================== - * �X�L���g�p�i�r�������A�ꏊ�w��̎��ۂ̏����j + * スキル使用(詠唱完了、場所指定の実際の処理) *------------------------------------------ */ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, @@ -5338,7 +5338,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, switch (skillid) { - case PR_BENEDICTIO: /* ���̍~�� */ + case PR_BENEDICTIO: /* 聖体降福 */ skill_area_temp[1] = src->id; map_foreachinarea (skill_area_sub, src->m, x - 1, y - 1, x + 1, y + 1, 0, @@ -5350,7 +5350,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, flag | BCT_ENEMY | 1, skill_castend_damage_id); break; - case BS_HAMMERFALL: /* �n���}�[�t�H�[�� */ + case BS_HAMMERFALL: /* ハンマーフォール */ skill_area_temp[1] = src->id; skill_area_temp[2] = x; skill_area_temp[3] = y; @@ -5361,7 +5361,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, skill_castend_nodamage_id); break; - case HT_DETECTING: /* �f�B�e�N�e�B���O */ + case HT_DETECTING: /* ディテクティング */ { const int range = 7; map_foreachinarea (skill_status_change_timer_sub, @@ -5371,35 +5371,35 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, } break; - case MG_SAFETYWALL: /* �Z�C�t�e�B�E�H�[�� */ - case MG_FIREWALL: /* �t�@�C���[�E�H�[�� */ - case MG_THUNDERSTORM: /* �T���_�[�X�g�[�� */ - case AL_PNEUMA: /* �j���[�} */ - case WZ_ICEWALL: /* �A�C�X�E�H�[�� */ - case WZ_FIREPILLAR: /* �t�@�C�A�s���[ */ + case MG_SAFETYWALL: /* セイフティウォール */ + case MG_FIREWALL: /* ファイヤーウォール */ + case MG_THUNDERSTORM: /* サンダーストーム */ + case AL_PNEUMA: /* ニューマ */ + case WZ_ICEWALL: /* アイスウォール */ + case WZ_FIREPILLAR: /* ファイアピラー */ case WZ_SIGHTRASHER: - case WZ_QUAGMIRE: /* �N�@�O�}�C�A */ - case WZ_VERMILION: /* ���[�h�I�u���@�[�~���I�� */ - case WZ_FROSTNOVA: /* �t���X�g�m���@ */ - case WZ_STORMGUST: /* �X�g�[���K�X�g */ - case WZ_HEAVENDRIVE: /* �w�����Y�h���C�u */ - case PR_SANCTUARY: /* �T���N�`���A�� */ - case PR_MAGNUS: /* �}�O�k�X�G�N�\�V�Y�� */ - case CR_GRANDCROSS: /* �O�����h�N���X */ - case HT_SKIDTRAP: /* �X�L�b�h�g���b�v */ - case HT_LANDMINE: /* �����h�}�C�� */ - case HT_ANKLESNARE: /* �A���N���X�l�A */ - case HT_SHOCKWAVE: /* �V���b�N�E�F�[�u�g���b�v */ - case HT_SANDMAN: /* �T���h�}�� */ - case HT_FLASHER: /* �t���b�V���[ */ - case HT_FREEZINGTRAP: /* �t���[�W���O�g���b�v */ - case HT_BLASTMINE: /* �u���X�g�}�C�� */ - case HT_CLAYMORETRAP: /* �N���C���A�[�g���b�v */ - case AS_VENOMDUST: /* �x�m���_�X�g */ - case AM_DEMONSTRATION: /* �f�����X�g���[�V���� */ - case PF_SPIDERWEB: /* �X�p�C�_�[�E�F�b�u */ - case PF_FOGWALL: /* �t�H�O�E�H�[�� */ - case HT_TALKIEBOX: /* �g�[�L�[�{�b�N�X */ + case WZ_QUAGMIRE: /* クァグマイア */ + case WZ_VERMILION: /* ロードオブヴァーミリオン */ + case WZ_FROSTNOVA: /* フロストノヴァ */ + case WZ_STORMGUST: /* ストームガスト */ + case WZ_HEAVENDRIVE: /* ヘヴンズドライブ */ + case PR_SANCTUARY: /* サンクチュアリ */ + case PR_MAGNUS: /* マグヌスエクソシズム */ + case CR_GRANDCROSS: /* グランドクロス */ + case HT_SKIDTRAP: /* スキッドトラップ */ + case HT_LANDMINE: /* ランドマイン */ + case HT_ANKLESNARE: /* アンクルスネア */ + case HT_SHOCKWAVE: /* ショックウェーブトラップ */ + case HT_SANDMAN: /* サンドマン */ + case HT_FLASHER: /* フラッシャー */ + case HT_FREEZINGTRAP: /* フリージングトラップ */ + case HT_BLASTMINE: /* ブラストマイン */ + case HT_CLAYMORETRAP: /* クレイモアートラップ */ + case AS_VENOMDUST: /* ベノムダスト */ + case AM_DEMONSTRATION: /* デモンストレーション */ + case PF_SPIDERWEB: /* スパイダーウェッブ */ + case PF_FOGWALL: /* フォグウォール */ + case HT_TALKIEBOX: /* トーキーボックス */ skill_unitsetting (src, skillid, skilllv, x, y, 0); break; @@ -5408,15 +5408,15 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, skill_unitsetting (src, skillid, skilllv, x, y, 0); break; - case SA_VOLCANO: /* �{���P�[�m */ - case SA_DELUGE: /* �f�����[�W */ - case SA_VIOLENTGALE: /* �o�C�I�����g�Q�C�� */ - case SA_LANDPROTECTOR: /* �����h�v���e�N�^�[ */ - skill_clear_element_field (src); //���Ɏ������������Ă��鑮������N���A + case SA_VOLCANO: /* ボルケーノ */ + case SA_DELUGE: /* デリュージ */ + case SA_VIOLENTGALE: /* バイオレントゲイル */ + case SA_LANDPROTECTOR: /* ランドプロテクター */ + skill_clear_element_field (src); //既に自分が発動している属性場をクリア skill_unitsetting (src, skillid, skilllv, x, y, 0); break; - case WZ_METEOR: //���e�I�X�g�[�� + case WZ_METEOR: //メテオストーム { int flag = 0; for (i = 0; i < 2 + (skilllv >> 1); i++) @@ -5458,10 +5458,10 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, } break; - case AL_WARP: /* ���[�v�|�[�^�� */ + case AL_WARP: /* ワープポータル */ if (sd) { - if (map[sd->bl.m].flag.noteleport) /* �e���|�֎~ */ + if (map[sd->bl.m].flag.noteleport) /* テレポ禁止 */ break; clif_skill_warppoint (sd, sd->skillid, sd->status.save_point.map, @@ -5482,7 +5482,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, else if (src->type == BL_MOB) mob_warp ((struct mob_data *) src, -1, x, y, 0); break; - case AM_CANNIBALIZE: // �o�C�I�v�����g + case AM_CANNIBALIZE: // バイオプラント if (sd) { int mx, my, id = 0; @@ -5505,7 +5505,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, clif_skill_poseffect (src, skillid, skilllv, x, y, tick); } break; - case AM_SPHEREMINE: // �X�t�B�A�[�}�C�� + case AM_SPHEREMINE: // スフィアーマイン if (sd) { int mx, my, id = 0; @@ -5534,7 +5534,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, } /*========================================== - * �X�L���g�p�i�r�������Amap�w��j + * スキル使用(詠唱完了、map指定) *------------------------------------------ */ int skill_castend_map (struct map_session_data *sd, int skill_num, @@ -5548,7 +5548,7 @@ int skill_castend_map (struct map_session_data *sd, int skill_num, if (sd->opt1 > 0 || sd->status.option & 2) return 0; - //�X�L�����g���Ȃ���Ԉُ풆 + //スキルが使えない状態異常中 if (sd->sc_data) { if (sd->sc_data[SC_DIVINA].timer != -1 || @@ -5560,7 +5560,7 @@ int skill_castend_map (struct map_session_data *sd, int skill_num, return 0; } - if (skill_num != sd->skillid) /* �s���p�P�b�g�炵�� */ + if (skill_num != sd->skillid) /* 不正パケットらしい */ return 0; pc_stopattack (sd); @@ -5575,7 +5575,7 @@ int skill_castend_map (struct map_session_data *sd, int skill_num, switch (skill_num) { - case AL_TELEPORT: /* �e���|�[�g */ + case AL_TELEPORT: /* テレポート */ if (strcmp (map, "Random") == 0) pc_randomwarp (sd, 3); else @@ -5584,7 +5584,7 @@ int skill_castend_map (struct map_session_data *sd, int skill_num, 3); break; - case AL_WARP: /* ���[�v�|�[�^�� */ + case AL_WARP: /* ワープポータル */ { const struct point *p[] = { &sd->status.save_point, &sd->status.memo_point[0], @@ -5622,7 +5622,7 @@ int skill_castend_map (struct map_session_data *sd, int skill_num, break; } } - if (x == 0 || y == 0) /* �s���p�P�b�g�H */ + if (x == 0 || y == 0) /* 不正パケット? */ return 0; if (!skill_check_condition (sd, 3)) @@ -5642,7 +5642,7 @@ int skill_castend_map (struct map_session_data *sd, int skill_num, } /*========================================== - * �X�L�����j�b�g�ݒ菈�� + * スキルユニット設定処理 *------------------------------------------ */ struct skill_unit_group *skill_unitsetting (struct block_list *src, @@ -5657,16 +5657,16 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, nullpo_retr (0, src); switch (skillid) - { /* �ݒ� */ + { /* 設定 */ - case MG_SAFETYWALL: /* �Z�C�t�e�B�E�H�[�� */ + case MG_SAFETYWALL: /* セイフティウォール */ limit = skill_get_time (skillid, skilllv); val2 = skilllv + 1; interval = -1; target = (battle_config.defnotenemy) ? BCT_NOENEMY : BCT_ALL; break; - case MG_FIREWALL: /* �t�@�C���[�E�H�[�� */ + case MG_FIREWALL: /* ファイヤーウォール */ if (src->x == x && src->y == y) dir = 2; else @@ -5680,14 +5680,14 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, interval = 1; break; - case AL_PNEUMA: /* �j���[�} */ + case AL_PNEUMA: /* ニューマ */ limit = skill_get_time (skillid, skilllv); interval = -1; target = (battle_config.defnotenemy) ? BCT_NOENEMY : BCT_ALL; count = 9; break; - case AL_WARP: /* ���[�v�|�[�^�� */ + case AL_WARP: /* ワープポータル */ target = BCT_ALL; val1 = skilllv + 6; if (flag == 0) @@ -5696,7 +5696,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, limit = skill_get_time (skillid, skilllv); break; - case PR_SANCTUARY: /* �T���N�`���A�� */ + case PR_SANCTUARY: /* サンクチュアリ */ count = 21; limit = skill_get_time (skillid, skilllv); val1 = skilllv + 3; @@ -5705,13 +5705,13 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, range = 1; break; - case PR_MAGNUS: /* �}�O�k�X�G�N�\�V�Y�� */ + case PR_MAGNUS: /* マグヌスエクソシズム */ count = 33; limit = skill_get_time (skillid, skilllv); interval = 3000; break; - case WZ_FIREPILLAR: /* �t�@�C�A�[�s���[ */ + case WZ_FIREPILLAR: /* ファイアーピラー */ if (flag == 0) limit = skill_get_time (skillid, skilllv); else @@ -5721,21 +5721,21 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, range = 1; break; - case MG_THUNDERSTORM: /* �T���_�[�X�g�[�� */ + case MG_THUNDERSTORM: /* サンダーストーム */ limit = 500; range = 1; break; - case WZ_FROSTNOVA: /* �t���X�g�m���@ */ + case WZ_FROSTNOVA: /* フロストノヴァ */ limit = 500; range = 5; break; - case WZ_HEAVENDRIVE: /* �w�����Y�h���C�u */ + case WZ_HEAVENDRIVE: /* ヘヴンズドライブ */ limit = 500; range = 2; break; - case WZ_METEOR: /* ���e�I�X�g�[�� */ + case WZ_METEOR: /* メテオストーム */ limit = 500; range = 3; break; @@ -5745,75 +5745,75 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, count = 41; break; - case WZ_VERMILION: /* ���[�h�I�u���@�[�~���I�� */ + case WZ_VERMILION: /* ロードオブヴァーミリオン */ limit = 4100; interval = 1000; range = 6; break; - case WZ_ICEWALL: /* �A�C�X�E�H�[�� */ + case WZ_ICEWALL: /* アイスウォール */ limit = skill_get_time (skillid, skilllv); count = 5; break; - case WZ_STORMGUST: /* �X�g�[���K�X�g */ + case WZ_STORMGUST: /* ストームガスト */ limit = 4600; interval = 450; range = 5; break; - case WZ_QUAGMIRE: /* �N�@�O�}�C�A */ + case WZ_QUAGMIRE: /* クァグマイア */ limit = skill_get_time (skillid, skilllv); interval = 200; count = 25; break; - case HT_SKIDTRAP: /* �X�L�b�h�g���b�v */ - case HT_LANDMINE: /* �����h�}�C�� */ - case HT_ANKLESNARE: /* �A���N���X�l�A */ - case HT_SANDMAN: /* �T���h�}�� */ - case PF_SPIDERWEB: /* �X�p�C�_�[�E�F�b�u */ - case HT_FLASHER: /* �t���b�V���[ */ - case HT_FREEZINGTRAP: /* �t���[�W���O�g���b�v */ - case HT_BLASTMINE: /* �u���X�g�}�C�� */ - case HT_CLAYMORETRAP: /* �N���C���A�[�g���b�v */ + case HT_SKIDTRAP: /* スキッドトラップ */ + case HT_LANDMINE: /* ランドマイン */ + case HT_ANKLESNARE: /* アンクルスネア */ + case HT_SANDMAN: /* サンドマン */ + case PF_SPIDERWEB: /* スパイダーウェッブ */ + case HT_FLASHER: /* フラッシャー */ + case HT_FREEZINGTRAP: /* フリージングトラップ */ + case HT_BLASTMINE: /* ブラストマイン */ + case HT_CLAYMORETRAP: /* クレイモアートラップ */ limit = skill_get_time (skillid, skilllv); range = 1; break; - case HT_TALKIEBOX: /* �g�[�L�[�{�b�N�X */ + case HT_TALKIEBOX: /* トーキーボックス */ limit = skill_get_time (skillid, skilllv); range = 1; target = BCT_ALL; break; - case HT_SHOCKWAVE: /* �V���b�N�E�F�[�u�g���b�v */ + case HT_SHOCKWAVE: /* ショックウェーブトラップ */ limit = skill_get_time (skillid, skilllv); range = 1; val1 = skilllv * 15 + 10; break; - case AS_VENOMDUST: /* �x�m���_�X�g */ + case AS_VENOMDUST: /* ベノムダスト */ limit = skill_get_time (skillid, skilllv); interval = 1000; count = 5; break; - case CR_GRANDCROSS: /* �O�����h�N���X */ + case CR_GRANDCROSS: /* グランドクロス */ count = 29; limit = 1000; interval = 300; break; - case SA_VOLCANO: /* �{���P�[�m */ - case SA_DELUGE: /* �f�����[�W */ - case SA_VIOLENTGALE: /* �o�C�I�����g�Q�C�� */ + case SA_VOLCANO: /* ボルケーノ */ + case SA_DELUGE: /* デリュージ */ + case SA_VIOLENTGALE: /* バイオレントゲイル */ limit = skill_get_time (skillid, skilllv); count = skilllv <= 2 ? 25 : (skilllv <= 4 ? 49 : 81); target = BCT_ALL; break; - case SA_LANDPROTECTOR: /* �O�����h�N���X */ + case SA_LANDPROTECTOR: /* グランドクロス */ limit = skill_get_time (skillid, skilllv); // changed to get duration from cast_db (moonsoul) val1 = skilllv * 15 + 10; aoe_diameter = skilllv + skilllv % 2 + 5; @@ -5821,26 +5821,26 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, count = aoe_diameter * aoe_diameter; // -- this will not function if changed to ^2 (moonsoul) break; - case BD_LULLABY: /* �q��S */ - case BD_ETERNALCHAOS: /* �G�^�[�i���J�I�X */ - case BD_ROKISWEIL: /* ���L�̋��� */ + case BD_LULLABY: /* 子守唄 */ + case BD_ETERNALCHAOS: /* エターナルカオス */ + case BD_ROKISWEIL: /* ロキの叫び */ count = 81; limit = skill_get_time (skillid, skilllv); range = 5; target = BCT_ALL; break; case BD_RICHMANKIM: - case BD_DRUMBATTLEFIELD: /* �푾�ۂ̋��� */ - case BD_RINGNIBELUNGEN: /* �j�[�x�����O�̎w�� */ - case BD_INTOABYSS: /* �[���̒��� */ - case BD_SIEGFRIED: /* �s���g�̃W�[�N�t���[�h */ + case BD_DRUMBATTLEFIELD: /* 戦太鼓の響き */ + case BD_RINGNIBELUNGEN: /* ニーベルングの指輪 */ + case BD_INTOABYSS: /* 深淵の中に */ + case BD_SIEGFRIED: /* 不死身のジークフリード */ count = 81; limit = skill_get_time (skillid, skilllv); range = 5; target = BCT_PARTY; break; - case BA_WHISTLE: /* ���J */ + case BA_WHISTLE: /* 口笛 */ count = 49; limit = skill_get_time (skillid, skilllv); range = 5; @@ -5853,7 +5853,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, val2 = ((battle_get_agi (src) / 10) & 0xffff) << 16; val2 |= (battle_get_luk (src) / 10) & 0xffff; break; - case DC_HUMMING: /* �n�~���O */ + case DC_HUMMING: /* ハミング */ count = 49; limit = skill_get_time (skillid, skilllv); range = 5; @@ -5866,15 +5866,15 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, val2 = battle_get_dex (src) / 10; break; - case BA_DISSONANCE: /* �s���a�� */ - case DC_UGLYDANCE: /* ��������ȃ_���X */ + case BA_DISSONANCE: /* 不協和音 */ + case DC_UGLYDANCE: /* 自分勝手なダンス */ count = 49; limit = skill_get_time (skillid, skilllv); range = 5; target = BCT_ENEMY; break; - case DC_DONTFORGETME: /* ����Y��Ȃ��Łc */ + case DC_DONTFORGETME: /* 私を忘れないで… */ count = 49; limit = skill_get_time (skillid, skilllv); range = 5; @@ -5887,7 +5887,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, val2 = ((battle_get_str (src) / 20) & 0xffff) << 16; val2 |= (battle_get_agi (src) / 10) & 0xffff; break; - case BA_POEMBRAGI: /* �u���M�̎� */ + case BA_POEMBRAGI: /* ブラギの詩 */ count = 49; limit = skill_get_time (skillid, skilllv); range = 5; @@ -5899,7 +5899,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, val2 = ((battle_get_dex (src) / 10) & 0xffff) << 16; val2 |= (battle_get_int (src) / 5) & 0xffff; break; - case BA_APPLEIDUN: /* �C�h�D���̗ь� */ + case BA_APPLEIDUN: /* イドゥンの林檎 */ count = 49; limit = skill_get_time (skillid, skilllv); range = 5; @@ -5912,9 +5912,9 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, else val1 = 0; val1 |= (battle_get_vit (src)) & 0xffff; - val2 = 0; //�p�^�C���J�E���^(6�b����1����) + val2 = 0; //回復用タイムカウンタ(6秒毎に1増加) break; - case DC_SERVICEFORYOU: /* �T�[�r�X�t�H�[���[ */ + case DC_SERVICEFORYOU: /* サービスフォーユー */ count = 49; limit = skill_get_time (skillid, skilllv); range = 5; @@ -5926,7 +5926,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, DC_DANCINGLESSON) + 1) >> 1; val2 = battle_get_int (src) / 10; break; - case BA_ASSASSINCROSS: /* �[�z�̃A�T�V���N���X */ + case BA_ASSASSINCROSS: /* 夕陽のアサシンクロス */ count = 49; limit = skill_get_time (skillid, skilllv); range = 5; @@ -5938,7 +5938,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, BA_MUSICALLESSON) + 1) >> 1; val2 = battle_get_agi (src) / 20; break; - case DC_FORTUNEKISS: /* �K�^�̃L�X */ + case DC_FORTUNEKISS: /* 幸運のキス */ count = 49; limit = skill_get_time (skillid, skilllv); range = 5; @@ -5950,18 +5950,18 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, DC_DANCINGLESSON) + 1) >> 1; val2 = battle_get_luk (src) / 10; break; - case AM_DEMONSTRATION: /* �f�����X�g���[�V���� */ + case AM_DEMONSTRATION: /* デモンストレーション */ limit = skill_get_time (skillid, skilllv); interval = 1000; range = 1; target = BCT_ENEMY; break; - case WE_CALLPARTNER: /* ���Ȃ��Ɉ������� */ + case WE_CALLPARTNER: /* あなたに逢いたい */ limit = skill_get_time (skillid, skilllv); range = -1; break; - case HP_BASILICA: /* �o�W���J */ + case HP_BASILICA: /* バジリカ */ limit = skill_get_time (skillid, skilllv); target = BCT_ALL; range = 3; @@ -5970,12 +5970,12 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, skill_status_change_start (src, SC_ANKLE, skilllv, 0, 0, 0, limit, 0); break; - case PA_GOSPEL: /* �S�X�y�� */ + case PA_GOSPEL: /* ゴスペル */ count = 49; target = BCT_PARTY; limit = skill_get_time (skillid, skilllv); break; - case PF_FOGWALL: /* �t�H�O�E�H�[�� */ + case PF_FOGWALL: /* フォグウォール */ count = 15; limit = skill_get_time (skillid, skilllv); break; @@ -6011,8 +6011,8 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, group->limit, alive = 1; int range = group->range; switch (skillid) - { /* �ݒ� */ - case AL_PNEUMA: /* �j���[�} */ + { /* 設定 */ + case AL_PNEUMA: /* ニューマ */ { static const int dx[9] = { -1, 0, 1, -1, 0, 1, -1, 0, 1 }; static const int dy[9] = { -1, -1, -1, 0, 0, 0, 1, 1, 1 }; @@ -6020,10 +6020,10 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, uy += dy[i]; } break; - case MG_FIREWALL: /* �t�@�C���[�E�H�[�� */ + case MG_FIREWALL: /* ファイヤーウォール */ { if (dir & 1) - { /* �ߔz�u */ + { /* 斜め配置 */ static const int dx[][5] = { {1, 1, 0, 0, -1}, {-1, -1, 0, 0, 1}, }, dy[][5] = @@ -6036,17 +6036,17 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, uy += dy[(dir >> 1) & 1][i]; } else - { /* �㉺�z�u */ - if (dir % 4 == 0) /* �㉺ */ + { /* 上下配置 */ + if (dir % 4 == 0) /* 上下 */ ux += i - 1; - else /* ���E */ + else /* 左右 */ uy += i - 1; } val2 = group->val2; } break; - case PR_SANCTUARY: /* �T���N�`���A�� */ + case PR_SANCTUARY: /* サンクチュアリ */ { static const int dx[] = { -1, 0, 1, -2, -1, 0, 1, 2, -2, -1, 0, 1, 2, -2, -1, 0, 1, @@ -6061,7 +6061,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, } break; - case PR_MAGNUS: /* �}�O�k�X�G�N�\�V�Y�� */ + case PR_MAGNUS: /* マグヌスエクソシズム */ { static const int dx[] = { -1, 0, 1, -1, 0, 1, -3, -2, -1, 0, 1, 2, 3, @@ -6094,7 +6094,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, } break; - case WZ_ICEWALL: /* �A�C�X�E�H�[�� */ + case WZ_ICEWALL: /* アイスウォール */ { static const int dirx[8] = { 0, -1, -1, -1, 0, 1, 1, 1 }; static const int diry[8] = { 1, 1, 0, -1, -1, -1, 0, 1 }; @@ -6111,7 +6111,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, } break; - case WZ_QUAGMIRE: /* �N�@�O�}�C�A */ + case WZ_QUAGMIRE: /* クァグマイア */ ux += (i % 5 - 2); uy += (i / 5 - 2); if (i == 12) @@ -6121,7 +6121,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, break; - case AS_VENOMDUST: /* �x�m���_�X�g */ + case AS_VENOMDUST: /* ベノムダスト */ { static const int dx[] = { -1, 0, 0, 0, 1 }; static const int dy[] = { 0, -1, 0, 1, 0 }; @@ -6130,7 +6130,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, } break; - case CR_GRANDCROSS: /* �O�����h�N���X */ + case CR_GRANDCROSS: /* グランドクロス */ { static const int dx[] = { 0, 0, -1, 0, 1, -2, -1, 0, 1, 2, -4, -3, -2, -1, 0, 1, 2, @@ -6144,9 +6144,9 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, uy += dy[i]; } break; - case SA_VOLCANO: /* �{���P�[�m */ - case SA_DELUGE: /* �f�����[�W */ - case SA_VIOLENTGALE: /* �o�C�I�����g�Q�C�� */ + case SA_VOLCANO: /* ボルケーノ */ + case SA_DELUGE: /* デリュージ */ + case SA_VIOLENTGALE: /* バイオレントゲイル */ { int u_range = 0, central = 0; if (skilllv <= 2) @@ -6168,12 +6168,12 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, uy += (i / (u_range * 2 + 1) - u_range); if (i == central) - range = u_range; //�����̃��j�b�g�̌��ʔ͈͂͑S�͈� + range = u_range; //中央のユニットの効果範囲は全範囲 else - range = -1; //�����ȊO�̃��j�b�g�͏��� + range = -1; //中央以外のユニットは飾り } break; - case SA_LANDPROTECTOR: /* �����h�v���e�N�^�[ */ + case SA_LANDPROTECTOR: /* ランドプロテクター */ { int u_range = 0; @@ -6191,44 +6191,44 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, } break; - /* �_���X�Ȃ� */ - case BD_LULLABY: /* �q��� */ - case BD_RICHMANKIM: /* �j�����h�̉� */ - case BD_ETERNALCHAOS: /* �i���̍��� */ - case BD_DRUMBATTLEFIELD: /* �푾�ۂ̋��� */ - case BD_RINGNIBELUNGEN: /* �j�[�x�����O�̎w�� */ - case BD_ROKISWEIL: /* ���L�̋��� */ - case BD_INTOABYSS: /* �[���̒��� */ - case BD_SIEGFRIED: /* �s���g�̃W�[�N�t���[�h */ + /* ダンスなど */ + case BD_LULLABY: /* 子守歌 */ + case BD_RICHMANKIM: /* ニヨルドの宴 */ + case BD_ETERNALCHAOS: /* 永遠の混沌 */ + case BD_DRUMBATTLEFIELD: /* 戦太鼓の響き */ + case BD_RINGNIBELUNGEN: /* ニーベルングの指輪 */ + case BD_ROKISWEIL: /* ロキの叫び */ + case BD_INTOABYSS: /* 深淵の中に */ + case BD_SIEGFRIED: /* 不死身のジークフリード */ ux += (i % 9 - 4); uy += (i / 9 - 4); if (i == 40) - range = 4; /* ���S�̏ꍇ�͔͈͂�4�ɃI�[�o�[���C�h */ + range = 4; /* 中心の場合は範囲を4にオーバーライド */ else - range = -1; /* ���S����Ȃ��ꍇ�͔͈͂�-1�ɃI�[�o�[���C�h */ + range = -1; /* 中心じゃない場合は範囲を-1にオーバーライド */ break; - case BA_DISSONANCE: /* �s���a�� */ - case BA_WHISTLE: /* ���J */ - case BA_ASSASSINCROSS: /* �[�z�̃A�T�V���N���X */ - case BA_POEMBRAGI: /* �u���M�̎� */ - case BA_APPLEIDUN: /* �C�h�D���̗ь� */ - case DC_UGLYDANCE: /* ��������ȃ_���X */ - case DC_HUMMING: /* �n�~���O */ - case DC_DONTFORGETME: /* ����Y��Ȃ��Łc */ - case DC_FORTUNEKISS: /* �K�^�̃L�X */ - case DC_SERVICEFORYOU: /* �T�[�r�X�t�H�[���[ */ + case BA_DISSONANCE: /* 不協和音 */ + case BA_WHISTLE: /* 口笛 */ + case BA_ASSASSINCROSS: /* 夕陽のアサシンクロス */ + case BA_POEMBRAGI: /* ブラギの詩 */ + case BA_APPLEIDUN: /* イドゥンの林檎 */ + case DC_UGLYDANCE: /* 自分勝手なダンス */ + case DC_HUMMING: /* ハミング */ + case DC_DONTFORGETME: /* 私を忘れないで… */ + case DC_FORTUNEKISS: /* 幸運のキス */ + case DC_SERVICEFORYOU: /* サービスフォーユー */ ux += (i % 7 - 3); uy += (i / 7 - 3); if (i == 40) - range = 4; /* ���S�̏ꍇ�͔͈͂�4�ɃI�[�o�[���C�h */ + range = 4; /* 中心の場合は範囲を4にオーバーライド */ else - range = -1; /* ���S����Ȃ��ꍇ�͔͈͂�-1�ɃI�[�o�[���C�h */ + range = -1; /* 中心じゃない場合は範囲を-1にオーバーライド */ break; - case PA_GOSPEL: /* �S�X�y�� */ + case PA_GOSPEL: /* ゴスペル */ ux += (i % 7 - 3); uy += (i / 7 - 3); break; - case PF_FOGWALL: /* �t�H�O�E�H�[�� */ + case PF_FOGWALL: /* フォグウォール */ ux += (i % 5 - 2); uy += (i / 5 - 1); break; @@ -6237,7 +6237,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, uy += (i / 5 - 2); break; } - //����X�L���̏ꍇ�ݒu���W��Ƀ����h�v���e�N�^�[���Ȃ����`�F�b�N + //直上スキルの場合設置座標上にランドプロテクターがないかチェック if (range <= 0) map_foreachinarea (skill_landprotector, src->m, ux, uy, ux, uy, BL_SKILL, skillid, &alive); @@ -6267,7 +6267,7 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, } /*========================================== - * �X�L�����j�b�g�̔����C�x���g + * スキルユニットの発動イベント *------------------------------------------ */ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, @@ -6299,11 +6299,11 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, nullpo_retr (0, ts = skill_unitgrouptickset_search (bl, sg->group_id)); diff = DIFF_TICK (tick, ts->tick); goflag = (diff > sg->interval || diff < 0); - if (sg->skill_id == CR_GRANDCROSS && !battle_config.gx_allhit) // �d�Ȃ��Ă�����3HIT���Ȃ� + if (sg->skill_id == CR_GRANDCROSS && !battle_config.gx_allhit) // 重なっていたら3HITしない goflag = (diff > sg->interval * map_count_oncell (bl->m, bl->x, bl->y) || diff < 0); - //�Ώۂ�LP��ɋ���ꍇ�͖��� + //対象がLP上に居る場合は無効 map_foreachinarea (skill_landprotector, bl->m, bl->x, bl->y, bl->x, bl->y, BL_SKILL, 0, &goflag); @@ -6314,7 +6314,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, switch (sg->unit_id) { - case 0x83: /* �T���N�`���A�� */ + case 0x83: /* サンクチュアリ */ { int race = battle_get_race (bl); int damage_flag = @@ -6335,7 +6335,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) - heal = 0; /* ����峃J�[�h�i�q�[���ʂO�j */ + heal = 0; /* 黄金蟲カード(ヒール量0) */ clif_skill_nodamage (&src->bl, bl, AL_HEAL, heal, 1); battle_heal (NULL, bl, heal, 0, 0); } @@ -6345,7 +6345,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, } break; - case 0x84: /* �}�O�k�X�G�N�\�V�Y�� */ + case 0x84: /* マグヌスエクソシズム */ { int race = battle_get_race (bl); int damage_flag = @@ -6359,7 +6359,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, } break; - case 0x85: /* �j���[�} */ + case 0x85: /* ニューマ */ { struct skill_unit *unit2; struct status_change *sc_data = battle_get_sc_data (bl); @@ -6377,7 +6377,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, } } break; - case 0x7e: /* �Z�C�t�e�B�E�H�[�� */ + case 0x7e: /* セイフティウォール */ { struct skill_unit *unit2; struct status_change *sc_data = battle_get_sc_data (bl); @@ -6396,12 +6396,12 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, } break; - case 0x86: /* ���[�h�I�u���@�[�~���I��(���X�g�[���K�X�g ���O�����h�N���X) */ + case 0x86: /* ロードオブヴァーミリオン(&ストームガスト &グランドクロス) */ skill_attack (BF_MAGIC, ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0); break; - case 0x7f: /* �t�@�C���[�E�H�[�� */ + case 0x7f: /* ファイヤーウォール */ if ((src->val2--) > 0) skill_attack (BF_MAGIC, ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0); @@ -6409,19 +6409,19 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, skill_delunit (src); break; - case 0x87: /* �t�@�C�A�[�s���[(�����O) */ + case 0x87: /* ファイアーピラー(発動前) */ skill_delunit (src); skill_unitsetting (ss, sg->skill_id, sg->skill_lv, src->bl.x, src->bl.y, 1); break; - case 0x88: /* �t�@�C�A�[�s���[(������) */ + case 0x88: /* ファイアーピラー(発動後) */ if (DIFF_TICK (tick, sg->tick) < 150) skill_attack (BF_MAGIC, ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0); break; - case 0x90: /* �X�L�b�h�g���b�v */ + case 0x90: /* スキッドトラップ */ { int i, c = skill_get_blewcount (sg->skill_id, sg->skill_lv); if (map[bl->m].flag.gvg) @@ -6434,7 +6434,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, } break; - case 0x93: /* �����h�}�C�� */ + case 0x93: /* ランドマイン */ skill_attack (BF_MISC, ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0); sg->unit_id = 0x8c; @@ -6442,12 +6442,12 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, sg->limit = DIFF_TICK (tick, sg->tick) + 1500; break; - case 0x8f: /* �u���X�g�}�C�� */ - case 0x94: /* �V���b�N�E�F�[�u�g���b�v */ - case 0x95: /* �T���h�}�� */ - case 0x96: /* �t���b�V���[ */ - case 0x97: /* �t���[�W���O�g���b�v */ - case 0x98: /* �N���C���A�[�g���b�v */ + case 0x8f: /* ブラストマイン */ + case 0x94: /* ショックウェーブトラップ */ + case 0x95: /* サンドマン */ + case 0x96: /* フラッシャー */ + case 0x97: /* フリージングトラップ */ + case 0x98: /* クレイモアートラップ */ map_foreachinarea (skill_count_target, src->bl.m, src->bl.x - src->range, src->bl.y - src->range, src->bl.x + src->range, src->bl.y + src->range, @@ -6461,7 +6461,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, sg->limit = DIFF_TICK (tick, sg->tick) + 1500; break; - case 0x91: /* �A���N���X�l�A */ + case 0x91: /* アンクルスネア */ { struct status_change *sc_data = battle_get_sc_data (bl); if (sg->val2 == 0 && sc_data && sc_data[SC_ANKLE].timer == -1) @@ -6495,7 +6495,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, } break; - case 0x80: /* ���[�v�|�[�^��(������) */ + case 0x80: /* ワープポータル(発動後) */ if (bl->type == BL_PC) { struct map_session_data *sd = (struct map_session_data *) bl; @@ -6530,7 +6530,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, } break; - case 0x8e: /* �N�@�O�}�C�A */ + case 0x8e: /* クァグマイア */ { int type = SkillStatusChangeTable[sg->skill_id]; if (bl->type == BL_PC @@ -6544,7 +6544,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, sg->skill_lv), 0); } break; - case 0x92: /* �x�m���_�X�g */ + case 0x92: /* ベノムダスト */ { struct status_change *sc_data = battle_get_sc_data (bl); int type = SkillStatusChangeTable[sg->skill_id]; @@ -6555,9 +6555,9 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, sg->skill_lv), 0); } break; - case 0x9a: /* �{���P�[�m */ - case 0x9b: /* �f�����[�W */ - case 0x9c: /* �o�C�I�����g�Q�C�� */ + case 0x9a: /* ボルケーノ */ + case 0x9b: /* デリュージ */ + case 0x9c: /* バイオレントゲイル */ { struct skill_unit *unit2; struct status_change *sc_data = battle_get_sc_data (bl); @@ -6580,23 +6580,23 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, } } break; - case 0x9e: /* �q��S */ - case 0x9f: /* �j�����h�̉� */ - case 0xa0: /* �i���̍��� */ - case 0xa1: /* �푾�ۂ̋��� */ - case 0xa2: /* �j�[�x�����O�̎w�� */ - case 0xa3: /* ���L�̋��� */ - case 0xa4: /* �[���̒��� */ - case 0xa5: /* �s���g�̃W�[�N�t���[�h */ - case 0xa6: /* �s���a�� */ - case 0xa7: /* ���J */ - case 0xa8: /* �[�z�̃A�T�V���N���X */ - case 0xa9: /* �u���M�̎� */ - case 0xab: /* ��������ȃ_���X */ - case 0xac: /* �n�~���O */ - case 0xad: /* ����Y��Ȃ��Łc */ - case 0xae: /* �K�^�̃L�X */ - case 0xaf: /* �T�[�r�X�t�H�[���[ */ + case 0x9e: /* 子守唄 */ + case 0x9f: /* ニヨルドの宴 */ + case 0xa0: /* 永遠の混沌 */ + case 0xa1: /* 戦太鼓の響き */ + case 0xa2: /* ニーベルングの指輪 */ + case 0xa3: /* ロキの叫び */ + case 0xa4: /* 深淵の中に */ + case 0xa5: /* 不死身のジークフリード */ + case 0xa6: /* 不協和音 */ + case 0xa7: /* 口笛 */ + case 0xa8: /* 夕陽のアサシンクロス */ + case 0xa9: /* ブラギの詩 */ + case 0xab: /* 自分勝手なダンス */ + case 0xac: /* ハミング */ + case 0xad: /* 私を忘れないで… */ + case 0xae: /* 幸運のキス */ + case 0xaf: /* サービスフォーユー */ case 0xb4: { struct skill_unit *unit2; @@ -6623,7 +6623,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, } } break; - case 0xaa: /* �C�h�D���̗ь� */ + case 0xaa: /* イドゥンの林檎 */ { struct skill_unit *unit2; struct status_change *sc_data = battle_get_sc_data (bl); @@ -6650,15 +6650,15 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, } } break; - case 0xb1: /* �f�����X�g���[�V���� */ + case 0xb1: /* デモンストレーション */ skill_attack (BF_WEAPON, ss, &src->bl, bl, sg->skill_id, sg->skill_lv, tick, 0); if (bl->type == BL_PC && MRAND (100) < sg->skill_lv && battle_config.equipment_breaking) pc_breakweapon ((struct map_session_data *) bl); break; - case 0x99: /* �g�[�L�[�{�b�N�X */ - if (sg->src_id == bl->id) //����������ł��������Ȃ� + case 0x99: /* トーキーボックス */ + if (sg->src_id == bl->id) //自分が踏んでも発動しない break; if (sg->val2 == 0) { @@ -6666,16 +6666,16 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, sg->unit_id = 0x8c; clif_changelook (&src->bl, LOOK_BASE, sg->unit_id); sg->limit = DIFF_TICK (tick, sg->tick) + 5000; - sg->val2 = -1; //���� + sg->val2 = -1; //踏んだ } break; - case 0xb2: /* ���Ȃ���_������ł� */ - case 0xb3: /* �S�X�y�� */ - case 0xb6: /* �t�H�O�E�H�[�� */ - //�Ƃ肠�����������Ȃ� + case 0xb2: /* あなたを_会いたいです */ + case 0xb3: /* ゴスペル */ + case 0xb6: /* フォグウォール */ + //とりあえず何もしない break; - case 0xb7: /* �X�p�C�_�[�E�F�b�u */ + case 0xb7: /* スパイダーウェッブ */ if (sg->val2 == 0) { int moveblock = (bl->x / BLOCK_SIZE != src->bl.x / BLOCK_SIZE @@ -6707,7 +6707,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, printf("skill_unit_onplace: Unknown skill unit id=%d block=%d\n",sg->unit_id,bl->id); break;*/ } - if (bl->type == BL_MOB && ss != bl) /* �X�L���g�p������MOB�X�L�� */ + if (bl->type == BL_MOB && ss != bl) /* スキル使用条件のMOBスキル */ { if (battle_config.mob_changetarget_byskill == 1) { @@ -6727,7 +6727,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, } /*========================================== - * �X�L�����j�b�g���痣�E����(�������͂��Ă���)�ꍇ + * スキルユニットから離脱する(もしくはしている)場合 *------------------------------------------ */ int skill_unit_onout (struct skill_unit *src, struct block_list *bl, @@ -6747,9 +6747,9 @@ int skill_unit_onout (struct skill_unit *src, struct block_list *bl, switch (sg->unit_id) { - case 0x7e: /* �Z�C�t�e�B�E�H�[�� */ - case 0x85: /* �j���[�} */ - case 0x8e: /* �N�@�O�}�C�A */ + case 0x7e: /* セイフティウォール */ + case 0x85: /* ニューマ */ + case 0x8e: /* クァグマイア */ { struct status_change *sc_data = battle_get_sc_data (bl); int type = @@ -6763,7 +6763,7 @@ int skill_unit_onout (struct skill_unit *src, struct block_list *bl, } } break; - case 0x91: /* �A���N���X�l�A */ + case 0x91: /* アンクルスネア */ { struct block_list *target = map_id2bl (sg->val2); if (target && target == bl) @@ -6790,9 +6790,9 @@ int skill_unit_onout (struct skill_unit *src, struct block_list *bl, sg->limit = DIFF_TICK (tick, sg->tick) + 1000; } break; - case 0x9a: /* �{���P�[�m */ - case 0x9b: /* �f�����[�W */ - case 0x9c: /* �o�C�I�����g�Q�C�� */ + case 0x9a: /* ボルケーノ */ + case 0x9b: /* デリュージ */ + case 0x9c: /* バイオレントゲイル */ { struct status_change *sc_data = battle_get_sc_data (bl); struct skill_unit *su; @@ -6806,24 +6806,24 @@ int skill_unit_onout (struct skill_unit *src, struct block_list *bl, } break; - case 0x9e: /* �q��S */ - case 0x9f: /* �j�����h�̉� */ - case 0xa0: /* �i���̍��� */ - case 0xa1: /* �푾�ۂ̋��� */ - case 0xa2: /* �j�[�x�����O�̎w�� */ - case 0xa3: /* ���L�̋��� */ - case 0xa4: /* �[���̒��� */ - case 0xa5: /* �s���g�̃W�[�N�t���[�h */ - case 0xa6: /* �s���a�� */ - case 0xa7: /* ���J */ - case 0xa8: /* �[�z�̃A�T�V���N���X */ - case 0xa9: /* �u���M�̎� */ - case 0xaa: /* �C�h�D���̗ь� */ - case 0xab: /* ��������ȃ_���X */ - case 0xac: /* �n�~���O */ - case 0xad: /* ����Y��Ȃ��Łc */ - case 0xae: /* �K�^�̃L�X */ - case 0xaf: /* �T�[�r�X�t�H�[���[ */ + case 0x9e: /* 子守唄 */ + case 0x9f: /* ニヨルドの宴 */ + case 0xa0: /* 永遠の混沌 */ + case 0xa1: /* 戦太鼓の響き */ + case 0xa2: /* ニーベルングの指輪 */ + case 0xa3: /* ロキの叫び */ + case 0xa4: /* 深淵の中に */ + case 0xa5: /* 不死身のジークフリード */ + case 0xa6: /* 不協和音 */ + case 0xa7: /* 口笛 */ + case 0xa8: /* 夕陽のアサシンクロス */ + case 0xa9: /* ブラギの詩 */ + case 0xaa: /* イドゥンの林檎 */ + case 0xab: /* 自分勝手なダンス */ + case 0xac: /* ハミング */ + case 0xad: /* 私を忘れないで… */ + case 0xae: /* 幸運のキス */ + case 0xaf: /* サービスフォーユー */ case 0xb4: { struct status_change *sc_data = battle_get_sc_data (bl); @@ -6837,7 +6837,7 @@ int skill_unit_onout (struct skill_unit *src, struct block_list *bl, } } break; - case 0xb7: /* �X�p�C�_�[�E�F�b�u */ + case 0xb7: /* スパイダーウェッブ */ { struct block_list *target = map_id2bl (sg->val2); if (target && target == bl) @@ -6856,7 +6856,7 @@ int skill_unit_onout (struct skill_unit *src, struct block_list *bl, } /*========================================== - * �X�L�����j�b�g�̍폜�C�x���g + * スキルユニットの削除イベント *------------------------------------------ */ int skill_unit_ondelete (struct skill_unit *src, struct block_list *bl, @@ -6876,30 +6876,30 @@ int skill_unit_ondelete (struct skill_unit *src, struct block_list *bl, switch (sg->unit_id) { - case 0x85: /* �j���[�} */ - case 0x7e: /* �Z�C�t�e�B�E�H�[�� */ - case 0x8e: /* �N�@�O�}�C�� */ - case 0x9a: /* �{���P�[�m */ - case 0x9b: /* �f�����[�W */ - case 0x9c: /* �o�C�I�����g�Q�C�� */ - case 0x9e: /* �q��S */ - case 0x9f: /* �j�����h�̉� */ - case 0xa0: /* �i���̍��� */ - case 0xa1: /* �푾�ۂ̋��� */ - case 0xa2: /* �j�[�x�����O�̎w�� */ - case 0xa3: /* ���L�̋��� */ - case 0xa4: /* �[���̒��� */ - case 0xa5: /* �s���g�̃W�[�N�t���[�h */ - case 0xa6: /* �s���a�� */ - case 0xa7: /* ���J */ - case 0xa8: /* �[�z�̃A�T�V���N���X */ - case 0xa9: /* �u���M�̎� */ - case 0xaa: /* �C�h�D���̗ь� */ - case 0xab: /* ��������ȃ_���X */ - case 0xac: /* �n�~���O */ - case 0xad: /* ����Y��Ȃ��Łc */ - case 0xae: /* �K�^�̃L�X */ - case 0xaf: /* �T�[�r�X�t�H�[���[ */ + case 0x85: /* ニューマ */ + case 0x7e: /* セイフティウォール */ + case 0x8e: /* クァグマイヤ */ + case 0x9a: /* ボルケーノ */ + case 0x9b: /* デリュージ */ + case 0x9c: /* バイオレントゲイル */ + case 0x9e: /* 子守唄 */ + case 0x9f: /* ニヨルドの宴 */ + case 0xa0: /* 永遠の混沌 */ + case 0xa1: /* 戦太鼓の響き */ + case 0xa2: /* ニーベルングの指輪 */ + case 0xa3: /* ロキの叫び */ + case 0xa4: /* 深淵の中に */ + case 0xa5: /* 不死身のジークフリード */ + case 0xa6: /* 不協和音 */ + case 0xa7: /* 口笛 */ + case 0xa8: /* 夕陽のアサシンクロス */ + case 0xa9: /* ブラギの詩 */ + case 0xaa: /* イドゥンの林檎 */ + case 0xab: /* 自分勝手なダンス */ + case 0xac: /* ハミング */ + case 0xad: /* 私を忘れないで… */ + case 0xae: /* 幸運のキス */ + case 0xaf: /* サービスフォーユー */ case 0xb4: return skill_unit_onout (src, bl, tick); @@ -6913,7 +6913,7 @@ int skill_unit_ondelete (struct skill_unit *src, struct block_list *bl, } /*========================================== - * �X�L�����j�b�g�̌��E�C�x���g + * スキルユニットの限界イベント *------------------------------------------ */ int skill_unit_onlimit (struct skill_unit *src, unsigned int tick) @@ -6925,7 +6925,7 @@ int skill_unit_onlimit (struct skill_unit *src, unsigned int tick) switch (sg->unit_id) { - case 0x81: /* ���[�v�|�[�^��(�����O) */ + case 0x81: /* ワープポータル(発動前) */ { struct skill_unit_group *group = skill_unitsetting (map_id2bl (sg->src_id), sg->skill_id, @@ -6944,12 +6944,12 @@ int skill_unit_onlimit (struct skill_unit *src, unsigned int tick) } break; - case 0x8d: /* �A�C�X�E�H�[�� */ + case 0x8d: /* アイスウォール */ map_setcell (src->bl.m, src->bl.x, src->bl.y, src->val2); clif_changemapcell (src->bl.m, src->bl.x, src->bl.y, src->val2, 1); break; - case 0xb2: /* ���Ȃ��ɉ���� */ + case 0xb2: /* あなたに会いたい */ { struct map_session_data *sd = NULL; struct map_session_data *p_sd = NULL; @@ -6968,7 +6968,7 @@ int skill_unit_onlimit (struct skill_unit *src, unsigned int tick) } /*========================================== - * �X�L�����j�b�g�̃_���[�W�C�x���g + * スキルユニットのダメージイベント *------------------------------------------ */ int skill_unit_ondamaged (struct skill_unit *src, struct block_list *bl, @@ -6981,12 +6981,12 @@ int skill_unit_ondamaged (struct skill_unit *src, struct block_list *bl, switch (sg->unit_id) { - case 0x8d: /* �A�C�X�E�H�[�� */ + case 0x8d: /* アイスウォール */ src->val1 -= damage; break; - case 0x8f: /* �u���X�g�}�C�� */ - case 0x98: /* �N���C���A�[�g���b�v */ - skill_blown (bl, &src->bl, 2); //��������Ă݂� + case 0x8f: /* ブラストマイン */ + case 0x98: /* クレイモアートラップ */ + skill_blown (bl, &src->bl, 2); //吹き飛ばしてみる break; default: damage = 0; @@ -6998,7 +6998,7 @@ int skill_unit_ondamaged (struct skill_unit *src, struct block_list *bl, /*---------------------------------------------------------------------------- */ /*========================================== - * �X�L���g�p�i�r�������A�ꏊ�w��j + * スキル使用(詠唱完了、場所指定) *------------------------------------------ */ int skill_castend_pos (int tid, unsigned int tick, int id, int data) @@ -7010,7 +7010,7 @@ int skill_castend_pos (int tid, unsigned int tick, int id, int data) if (sd->bl.prev == NULL) return 0; - if (sd->skilltimer != tid) /* �^�C�}ID�̊m�F */ + if (sd->skilltimer != tid) /* タイマIDの確認 */ return 0; if (sd->skilltimer != -1 && pc_checkskill (sd, SA_FREECAST) > 0) { @@ -7044,8 +7044,8 @@ int skill_castend_pos (int tid, unsigned int tick, int id, int data) case HT_CLAYMORETRAP: case HT_TALKIEBOX: case AL_WARP: - case PF_SPIDERWEB: /* �X�p�C�_�[�E�F�b�u */ - case RG_GRAFFITI: /* �O���t�B�e�B */ + case PF_SPIDERWEB: /* スパイダーウェッブ */ + case RG_GRAFFITI: /* グラフィティ */ range = 0; break; case AL_PNEUMA: @@ -7081,7 +7081,7 @@ int skill_castend_pos (int tid, unsigned int tick, int id, int data) case HT_BLASTMINE: case HT_CLAYMORETRAP: case HT_TALKIEBOX: - case PF_SPIDERWEB: /* �X�p�C�_�[�E�F�b�u */ + case PF_SPIDERWEB: /* スパイダーウェッブ */ case WZ_ICEWALL: range = 1; break; @@ -7142,7 +7142,7 @@ int skill_castend_pos (int tid, unsigned int tick, int id, int data) } } if (!skill_check_condition (sd, 1)) - { /* �g�p�����`�F�b�N */ + { /* 使用条件チェック */ sd->canact_tick = tick; sd->canmove_tick = tick; sd->skillitem = sd->skillitemlv = -1; @@ -7171,7 +7171,7 @@ int skill_castend_pos (int tid, unsigned int tick, int id, int data) } /*========================================== - * �͈͓��L�������݊m�F���菈��(foreachinarea) + * 範囲内キャラ存在確認判定処理(foreachinarea) *------------------------------------------ */ @@ -7192,9 +7192,9 @@ static int skill_check_condition_char_sub (struct block_list *bl, va_list ap) nullpo_retr (0, ssd = (struct map_session_data *) src); s_class = pc_calc_base_job (sd->status.class); - //�`�F�b�N���Ȃ��ݒ�Ȃ�c�ɂ��肦�Ȃ��傫�Ȑ�����Ԃ��ďI�� + //チェックしない設定ならcにありえない大きな数字を返して終了 if (!battle_config.player_skill_partner_check) - { //�{����foreach�̑O�ɂ�肽�����ǐݒ�K�p�ӏ����܂Ƃ߂邽�߂ɂ����� + { //本当はforeachの前にやりたいけど設定適用箇所をまとめるためにここへ (*c) = 99; return 0; } @@ -7204,7 +7204,7 @@ static int skill_check_condition_char_sub (struct block_list *bl, va_list ap) switch (ssd->skillid) { - case PR_BENEDICTIO: /* ���̍~�� */ + case PR_BENEDICTIO: /* 聖体降福 */ if (sd != ssd && (sd->status.class == 4 || sd->status.class == 8 || sd->status.class == 15 || sd->status.class == 4005 @@ -7213,16 +7213,16 @@ static int skill_check_condition_char_sub (struct block_list *bl, va_list ap) && sd->status.sp >= 10) (*c)++; break; - case BD_LULLABY: /* �q��� */ - case BD_RICHMANKIM: /* �j�����h�̉� */ - case BD_ETERNALCHAOS: /* �i���̍��� */ - case BD_DRUMBATTLEFIELD: /* �푾�ۂ̋��� */ - case BD_RINGNIBELUNGEN: /* �j�[�x�����O�̎w�� */ - case BD_ROKISWEIL: /* ���L�̋��� */ - case BD_INTOABYSS: /* �[���̒��� */ - case BD_SIEGFRIED: /* �s���g�̃W�[�N�t���[�h */ - case BD_RAGNAROK: /* �_�X�̉��� */ - case CG_MOONLIT: /* ������̐�ɗ�����Ԃт� */ + case BD_LULLABY: /* 子守歌 */ + case BD_RICHMANKIM: /* ニヨルドの宴 */ + case BD_ETERNALCHAOS: /* 永遠の混沌 */ + case BD_DRUMBATTLEFIELD: /* 戦太鼓の響き */ + case BD_RINGNIBELUNGEN: /* ニーベルングの指輪 */ + case BD_ROKISWEIL: /* ロキの叫び */ + case BD_INTOABYSS: /* 深淵の中に */ + case BD_SIEGFRIED: /* 不死身のジークフリード */ + case BD_RAGNAROK: /* 神々の黄昏 */ + case CG_MOONLIT: /* 月明りの泉に落ちる花びら */ if (sd != ssd && ((ssd->status.class == 19 && sd->status.class == 20) || (ssd->status.class == 20 && sd->status.class == 19) || @@ -7241,7 +7241,7 @@ static int skill_check_condition_char_sub (struct block_list *bl, va_list ap) } /*========================================== - * �͈͓��L�������݊m�F�����X�L���g�p����(foreachinarea) + * 範囲内キャラ存在確認判定後スキル使用処理(foreachinarea) *------------------------------------------ */ @@ -7264,9 +7264,9 @@ static int skill_check_condition_use_sub (struct block_list *bl, va_list ap) s_class = pc_calc_base_job (sd->status.class); - //�`�F�b�N���Ȃ��ݒ�Ȃ�c�ɂ��肦�Ȃ��傫�Ȑ�����Ԃ��ďI�� + //チェックしない設定ならcにありえない大きな数字を返して終了 if (!battle_config.player_skill_partner_check) - { //�{����foreach�̑O�ɂ�肽�����ǐݒ�K�p�ӏ����܂Ƃ߂邽�߂ɂ����� + { //本当はforeachの前にやりたいけど設定適用箇所をまとめるためにここへ (*c) = 99; return 0; } @@ -7276,7 +7276,7 @@ static int skill_check_condition_use_sub (struct block_list *bl, va_list ap) skilllv = ssd->skilllv; switch (skillid) { - case PR_BENEDICTIO: /* ���̍~�� */ + case PR_BENEDICTIO: /* 聖体降福 */ if (sd != ssd && (sd->status.class == 4 || sd->status.class == 8 || sd->status.class == 15 || sd->status.class == 4005 @@ -7289,23 +7289,23 @@ static int skill_check_condition_use_sub (struct block_list *bl, va_list ap) (*c)++; } break; - case BD_LULLABY: /* �q��� */ - case BD_RICHMANKIM: /* �j�����h�̉� */ - case BD_ETERNALCHAOS: /* �i���̍��� */ - case BD_DRUMBATTLEFIELD: /* �푾�ۂ̋��� */ - case BD_RINGNIBELUNGEN: /* �j�[�x�����O�̎w�� */ - case BD_ROKISWEIL: /* ���L�̋��� */ - case BD_INTOABYSS: /* �[���̒��� */ - case BD_SIEGFRIED: /* �s���g�̃W�[�N�t���[�h */ - case BD_RAGNAROK: /* �_�X�̉��� */ - case CG_MOONLIT: /* ������̐�ɗ�����Ԃт� */ - if (sd != ssd && //�{�l�ȊO�� - ((ssd->status.class == 19 && sd->status.class == 20) || (ssd->status.class == 20 && sd->status.class == 19) || (ssd->status.class == 4020 && sd->status.class == 4021) || (ssd->status.class == 4021 && sd->status.class == 4020) || (ssd->status.class == 20 && sd->status.class == 4020) || (ssd->status.class == 19 && sd->status.class == 4021)) && //�������_���T�[�Ȃ�o�[�h�� - pc_checkskill (sd, skillid) > 0 && //�X�L���������Ă��� - (*c) == 0 && //�ŏ��̈�l�� - sd->status.party_id == ssd->status.party_id && //�p�[�e�B�[�������� - !pc_issit (sd) && //�����ĂȂ� - sd->sc_data[SC_DANCING].timer == -1 //�_���X������Ȃ� + case BD_LULLABY: /* 子守歌 */ + case BD_RICHMANKIM: /* ニヨルドの宴 */ + case BD_ETERNALCHAOS: /* 永遠の混沌 */ + case BD_DRUMBATTLEFIELD: /* 戦太鼓の響き */ + case BD_RINGNIBELUNGEN: /* ニーベルングの指輪 */ + case BD_ROKISWEIL: /* ロキの叫び */ + case BD_INTOABYSS: /* 深淵の中に */ + case BD_SIEGFRIED: /* 不死身のジークフリード */ + case BD_RAGNAROK: /* 神々の黄昏 */ + case CG_MOONLIT: /* 月明りの泉に落ちる花びら */ + if (sd != ssd && //本人以外で + ((ssd->status.class == 19 && sd->status.class == 20) || (ssd->status.class == 20 && sd->status.class == 19) || (ssd->status.class == 4020 && sd->status.class == 4021) || (ssd->status.class == 4021 && sd->status.class == 4020) || (ssd->status.class == 20 && sd->status.class == 4020) || (ssd->status.class == 19 && sd->status.class == 4021)) && //自分がダンサーならバードで + pc_checkskill (sd, skillid) > 0 && //スキルを持っていて + (*c) == 0 && //最初の一人で + sd->status.party_id == ssd->status.party_id && //パーティーが同じで + !pc_issit (sd) && //座ってない + sd->sc_data[SC_DANCING].timer == -1 //ダンス中じゃない ) { ssd->sc_data[SC_DANCING].val4 = bl->id; @@ -7325,7 +7325,7 @@ static int skill_check_condition_use_sub (struct block_list *bl, va_list ap) } /*========================================== - * �͈͓��o�C�I�v�����g�A�X�t�B�A�}�C���pMob���݊m�F���菈��(foreachinarea) + * 範囲内バイオプラント、スフィアマイン用Mob存在確認判定処理(foreachinarea) *------------------------------------------ */ @@ -7348,7 +7348,7 @@ static int skill_check_condition_mob_master_sub (struct block_list *bl, } /*========================================== - * �X�L���g�p�����i�U�Ŏg�p���s�j + * スキル使用条件(偽で使用失敗) *------------------------------------------ */ int skill_check_condition (struct map_session_data *sd, int type) @@ -7390,7 +7390,7 @@ int skill_check_condition (struct map_session_data *sd, int type) * } */ if (sd->skillitem == sd->skillid) - { /* �A�C�e���̏ꍇ���������� */ + { /* アイテムの場合無条件成功 */ if (type & 1) sd->skillitem = sd->skillitemlv = -1; return 1; @@ -7410,22 +7410,22 @@ int skill_check_condition (struct map_session_data *sd, int type) || sd->sc_data[SC_BERSERK].timer != -1) { clif_skill_fail (sd, sd->skillid, 0, 0); - return 0; /* ��Ԉُ�Ⓘ�قȂ� */ + return 0; /* 状態異常や沈黙など */ } } skill = sd->skillid; lv = sd->skilllv; - hp = skill_get_hp (skill, lv); /* ����HP */ - sp = skill_get_sp (skill, lv); /* ����SP */ + hp = skill_get_hp (skill, lv); /* 消費HP */ + sp = skill_get_sp (skill, lv); /* 消費SP */ if ((sd->skillid_old == BD_ENCORE) && skill == sd->skillid_dance) - sp = sp / 2; //�A���R�[������SP������� + sp = sp / 2; //アンコール時はSP消費が半分 hp_rate = (lv <= 0) ? 0 : skill_db[skill].hp_rate[lv - 1]; sp_rate = (lv <= 0) ? 0 : skill_db[skill].sp_rate[lv - 1]; zeny = skill_get_zeny (skill, lv); weapon = skill_db[skill].weapon; state = skill_db[skill].state; spiritball = (lv <= 0) ? 0 : skill_db[skill].spiritball[lv - 1]; - mhp = skill_get_mhp (skill, lv); /* ����HP */ + mhp = skill_get_mhp (skill, lv); /* 消費HP */ for (i = 0; i < 10; i++) { itemid[i] = skill_db[skill].itemid[i]; @@ -7442,7 +7442,7 @@ int skill_check_condition (struct map_session_data *sd, int type) else sp += (sd->status.max_sp * abs (sp_rate)) / 100; if (sd->dsprate != 100) - sp = sp * sd->dsprate / 100; /* ����SP�C�� */ + sp = sp * sd->dsprate / 100; /* 消費SP修正 */ switch (skill) { @@ -7453,15 +7453,15 @@ int skill_check_condition (struct map_session_data *sd, int type) return 0; } break; - case BS_MAXIMIZE: /* �}�L�V�}�C�Y�p���[ */ - case NV_TRICKDEAD: /* ���ӂ� */ - case TF_HIDING: /* �n�C�f�B���O */ - case AS_CLOAKING: /* �N���[�L���O */ - case CR_AUTOGUARD: /* �I�[�g�K�[�h */ - case CR_DEFENDER: /* �f�B�t�F���_�[ */ + case BS_MAXIMIZE: /* マキシマイズパワー */ + case NV_TRICKDEAD: /* 死んだふり */ + case TF_HIDING: /* ハイディング */ + case AS_CLOAKING: /* クローキング */ + case CR_AUTOGUARD: /* オートガード */ + case CR_DEFENDER: /* ディフェンダー */ case ST_CHASEWALK: if (sd->sc_data[SkillStatusChangeTable[skill]].timer != -1) - return 1; /* ��������ꍇ��SP����Ȃ� */ + return 1; /* 解除する場合はSP消費しない */ break; case AL_TELEPORT: case AL_WARP: @@ -7471,21 +7471,21 @@ int skill_check_condition (struct map_session_data *sd, int type) return 0; } break; - case MO_CALLSPIRITS: /* �C�� */ + case MO_CALLSPIRITS: /* 気功 */ if (sd->spiritball >= lv) { clif_skill_fail (sd, skill, 0, 0); return 0; } break; - case CH_SOULCOLLECT: /* ���C�� */ + case CH_SOULCOLLECT: /* 狂気功 */ if (sd->spiritball >= 5) { clif_skill_fail (sd, skill, 0, 0); return 0; } break; - case MO_FINGEROFFENSIVE: //�w�e + case MO_FINGEROFFENSIVE: //指弾 if (sd->spiritball > 0 && sd->spiritball < spiritball) { spiritball = sd->spiritball; @@ -7494,7 +7494,7 @@ int skill_check_condition (struct map_session_data *sd, int type) else sd->spiritball_old = lv; break; - case MO_CHAINCOMBO: //�A�ŏ� + case MO_CHAINCOMBO: //連打掌 if (sd->sc_data[SC_BLADESTOP].timer == -1) { if (sd->sc_data[SC_COMBO].timer == -1 @@ -7502,31 +7502,31 @@ int skill_check_condition (struct map_session_data *sd, int type) return 0; } break; - case MO_COMBOFINISH: //�җ��� + case MO_COMBOFINISH: //猛龍拳 if (sd->sc_data[SC_COMBO].timer == -1 || sd->sc_data[SC_COMBO].val1 != MO_CHAINCOMBO) return 0; break; - case CH_TIGERFIST: //���Ռ� + case CH_TIGERFIST: //伏虎拳 if (sd->sc_data[SC_COMBO].timer == -1 || sd->sc_data[SC_COMBO].val1 != MO_COMBOFINISH) return 0; break; - case CH_CHAINCRUSH: //�A������ + case CH_CHAINCRUSH: //連柱崩撃 if (sd->sc_data[SC_COMBO].timer == -1) return 0; if (sd->sc_data[SC_COMBO].val1 != MO_COMBOFINISH && sd->sc_data[SC_COMBO].val1 != CH_TIGERFIST) return 0; break; - case MO_EXTREMITYFIST: // ���C���e�P�� + case MO_EXTREMITYFIST: // 阿修羅覇鳳拳 if ((sd->sc_data[SC_COMBO].timer != -1 && (sd->sc_data[SC_COMBO].val1 == MO_COMBOFINISH || sd->sc_data[SC_COMBO].val1 == CH_CHAINCRUSH)) || sd->sc_data[SC_BLADESTOP].timer != -1) spiritball--; break; - case BD_ADAPTATION: /* �A�h���u */ + case BD_ADAPTATION: /* アドリブ */ { struct skill_unit_group *group = NULL; if (sd->sc_data[SC_DANCING].timer == -1 @@ -7538,13 +7538,13 @@ int skill_check_condition (struct map_session_data *sd, int type) (sd->sc_data[SC_DANCING].val1, group->skill_lv) - sd->sc_data[SC_DANCING].val3 * 1000) <= skill_get_time2 (skill, lv))) - { //�_���X���Ŏg�p��5�b�ȏ�̂݁H + { //ダンス中で使用後5秒以上のみ? clif_skill_fail (sd, skill, 0, 0); return 0; } } break; - case PR_BENEDICTIO: /* ���̍~�� */ + case PR_BENEDICTIO: /* 聖体降福 */ { int range = 1; int c = 0; @@ -7569,15 +7569,15 @@ int skill_check_condition (struct map_session_data *sd, int type) } } break; - case WE_CALLPARTNER: /* ���Ȃ��Ɉ������� */ + case WE_CALLPARTNER: /* あなたに逢いたい */ if (!sd->status.partner_id) { clif_skill_fail (sd, skill, 0, 0); return 0; } break; - case AM_CANNIBALIZE: /* �o�C�I�v�����g */ - case AM_SPHEREMINE: /* �X�t�B�A�[�}�C�� */ + case AM_CANNIBALIZE: /* バイオプラント */ + case AM_SPHEREMINE: /* スフィアーマイン */ if (type & 1) { int c = 0; @@ -7597,8 +7597,8 @@ int skill_check_condition (struct map_session_data *sd, int type) } } break; - case MG_FIREWALL: /* �t�@�C�A�[�E�H�[�� */ - /* ������ */ + case MG_FIREWALL: /* ファイアーウォール */ + /* 数制限 */ if (battle_config.pc_land_skill_limit) { int maxcount = skill_get_maxcount (skill); @@ -7624,13 +7624,13 @@ int skill_check_condition (struct map_session_data *sd, int type) if (!(type & 2)) { if (hp > 0 && sd->status.hp < hp) - { /* HP�`�F�b�N */ - clif_skill_fail (sd, skill, 2, 0); /* HP�s���F���s�ʒm */ + { /* HPチェック */ + clif_skill_fail (sd, skill, 2, 0); /* HP不足:失敗通知 */ return 0; } if (sp > 0 && sd->status.sp < sp) - { /* SP�`�F�b�N */ - clif_skill_fail (sd, skill, 1, 0); /* SP�s���F���s�ʒm */ + { /* SPチェック */ + clif_skill_fail (sd, skill, 1, 0); /* SP不足:失敗通知 */ return 0; } if (zeny > 0 && sd->status.zeny < zeny) @@ -7645,7 +7645,7 @@ int skill_check_condition (struct map_session_data *sd, int type) } if (spiritball > 0 && sd->spiritball < spiritball) { - clif_skill_fail (sd, skill, 0, 0); // �����s�� + clif_skill_fail (sd, skill, 0, 0); // 氣球不足 return 0; } } @@ -7739,7 +7739,7 @@ int skill_check_condition (struct map_session_data *sd, int type) case ST_WATER: if (map_getcell (sd->bl.m, sd->bl.x, sd->bl.y) != 3 && (sd->sc_data[SC_DELUGE].timer == -1)) - { //���ꔻ�� + { //水場判定 clif_skill_fail (sd, skill, 0, 0); return 0; } @@ -7782,7 +7782,7 @@ int skill_check_condition (struct map_session_data *sd, int type) for (i = 0; i < 10; i++) { if (index[i] >= 0) - pc_delitem (sd, index[i], amount[i], 0); // �A�C�e������ + pc_delitem (sd, index[i], amount[i], 0); // アイテム消費 } } @@ -7791,24 +7791,24 @@ int skill_check_condition (struct map_session_data *sd, int type) pc_heal (sd, -sp, -hp); // [Fate] This might suppress some dupe messages -/* if(sp > 0) { // SP���� */ +/* if(sp > 0) { // SP消費 */ /* sd->status.sp-=sp; */ /* clif_updatestatus(sd,SP_SP); */ /* } */ -/* if(hp > 0) { // HP���� */ +/* if(hp > 0) { // HP消費 */ /* sd->status.hp-=hp; */ /* clif_updatestatus(sd,SP_HP); */ /* } */ - if (zeny > 0) // Zeny���� + if (zeny > 0) // Zeny消費 pc_payzeny (sd, zeny); - if (spiritball > 0) // �������� + if (spiritball > 0) // 氣球消費 pc_delspiritball (sd, spiritball, 0); return 1; } /*========================================== - * �r�����Ԍv�Z + * 詠唱時間計算 *------------------------------------------ */ int skill_castfix (struct block_list *bl, int time) @@ -7858,13 +7858,13 @@ int skill_castfix (struct block_list *bl, int time) time = time * battle_config.cast_rate / 100; } - /* �T�t���M�E�� */ + /* サフラギウム */ if (sc_data && sc_data[SC_SUFFRAGIUM].timer != -1) { time = time * (100 - sc_data[SC_SUFFRAGIUM].val1 * 15) / 100; skill_status_change_end (bl, SC_SUFFRAGIUM, -1); } - /* �u���M�̎� */ + /* ブラギの詩 */ if (sc_data && sc_data[SC_POEMBRAGI].timer != -1) time = time * (100 - @@ -7876,7 +7876,7 @@ int skill_castfix (struct block_list *bl, int time) } /*========================================== - * �f�B���C�v�Z + * ディレイ計算 *------------------------------------------ */ int skill_delayfix (struct block_list *bl, int time) @@ -7891,7 +7891,7 @@ int skill_delayfix (struct block_list *bl, int time) if (bl->type == BL_PC) { - if (battle_config.delay_dependon_dex) /* dex�̉e�����v�Z���� */ + if (battle_config.delay_dependon_dex) /* dexの影響を計算する */ time = time * (battle_config.castrate_dex_scale - battle_get_dex (bl)) / @@ -7899,7 +7899,7 @@ int skill_delayfix (struct block_list *bl, int time) time = time * battle_config.delay_rate / 100; } - /* �u���M�̎� */ + /* ブラギの詩 */ if (sc_data && sc_data[SC_POEMBRAGI].timer != -1) time = time * (100 - @@ -7911,7 +7911,7 @@ int skill_delayfix (struct block_list *bl, int time) } /*========================================== - * �X�L���g�p�iID�w��j + * スキル使用(ID指定) *------------------------------------------ */ int skill_use_id (struct map_session_data *sd, int target_id, @@ -7947,7 +7947,7 @@ int skill_use_id (struct map_session_data *sd, int target_id, } sc_data = sd->sc_data; - /* ���ق�ُ�i�������A�O�����Ȃǂ̔��������j */ + /* 沈黙や異常(ただし、グリムなどの判定をする) */ if (sd->opt1 > 0) return 0; if (sd->sc_data) @@ -7971,14 +7971,14 @@ int skill_use_id (struct map_session_data *sd, int target_id, || sd->sc_data[SC_STEELBODY].timer != -1 || sd->sc_data[SC_BERSERK].timer != -1) { - return 0; /* ��Ԉُ�Ⓘ�قȂ� */ + return 0; /* 状態異常や沈黙など */ } if (sc_data[SC_BLADESTOP].timer != -1) { int lv = sc_data[SC_BLADESTOP].val1; if (sc_data[SC_BLADESTOP].val2 == 1) - return 0; //���H���ꂽ���Ȃ̂Ń_�� + return 0; //白羽された側なのでダメ if (lv == 1) return 0; if (lv == 2 && skill_num != MO_FINGEROFFENSIVE) @@ -8004,7 +8004,7 @@ int skill_use_id (struct map_session_data *sd, int target_id, return 0; if (map[sd->bl.m].flag.gvg) - { //GvG�Ŏg�p�ł��Ȃ��X�L�� + { //GvGで使用できないスキル switch (skill_num) { case SM_ENDURE: @@ -8019,12 +8019,12 @@ int skill_use_id (struct map_session_data *sd, int target_id, } } - /* ���t/�_���X�� */ + /* 演奏/ダンス中 */ if (sc_data && sc_data[SC_DANCING].timer != -1) { // if(battle_config.pc_skill_log) // printf("dancing! %d\n",skill_num); - if (sc_data[SC_DANCING].val4 && skill_num != BD_ADAPTATION) //���t���̓A�h���u�ȊO�s�� + if (sc_data[SC_DANCING].val4 && skill_num != BD_ADAPTATION) //合奏中はアドリブ以外不可 return 0; if (skill_num != BD_ADAPTATION && skill_num != BA_MUSICALSTRIKE && skill_num != DC_THROWARROW) @@ -8035,19 +8035,19 @@ int skill_use_id (struct map_session_data *sd, int target_id, if (skill_get_inf2 (skill_num) & 0x200 && sd->bl.id == target_id) return 0; - //���O�̃X�L���������o����K�v�̂���X�L�� + //直前のスキルが何か覚える必要のあるスキル switch (skill_num) { case SA_CASTCANCEL: if (sd->skillid != skill_num) - { //�L���X�g�L�����Z�����̂͊o���Ȃ� + { //キャストキャンセル自体は覚えない sd->skillid_old = sd->skillid; sd->skilllv_old = sd->skilllv; break; } - case BD_ENCORE: /* �A���R�[�� */ + case BD_ENCORE: /* アンコール */ if (!sd->skillid_dance) - { //�O��g�p�����x�肪�Ȃ��Ƃ��� + { //前回使用した踊りがないとだめ clif_skill_fail (sd, skill_num, 0, 0); return 0; } @@ -8062,17 +8062,17 @@ int skill_use_id (struct map_session_data *sd, int target_id, sd->skilllv = skill_lv; switch (skill_num) - { //���O�Ƀ��x�����ς�����肷��X�L�� - case BD_LULLABY: /* �q��� */ - case BD_RICHMANKIM: /* �j�����h�̉� */ - case BD_ETERNALCHAOS: /* �i���̍��� */ - case BD_DRUMBATTLEFIELD: /* �푾�ۂ̋��� */ - case BD_RINGNIBELUNGEN: /* �j�[�x�����O�̎w�� */ - case BD_ROKISWEIL: /* ���L�̋��� */ - case BD_INTOABYSS: /* �[���̒��� */ - case BD_SIEGFRIED: /* �s���g�̃W�[�N�t���[�h */ - case BD_RAGNAROK: /* �_�X�̉��� */ - case CG_MOONLIT: /* ������̐�ɗ�����Ԃт� */ + { //事前にレベルが変わったりするスキル + case BD_LULLABY: /* 子守歌 */ + case BD_RICHMANKIM: /* ニヨルドの宴 */ + case BD_ETERNALCHAOS: /* 永遠の混沌 */ + case BD_DRUMBATTLEFIELD: /* 戦太鼓の響き */ + case BD_RINGNIBELUNGEN: /* ニーベルングの指輪 */ + case BD_ROKISWEIL: /* ロキの叫び */ + case BD_INTOABYSS: /* 深淵の中に */ + case BD_SIEGFRIED: /* 不死身のジークフリード */ + case BD_RAGNAROK: /* 神々の黄昏 */ + case CG_MOONLIT: /* 月明りの泉に落ちる花びら */ { int range = 1; int c = 0; @@ -8086,7 +8086,7 @@ int skill_use_id (struct map_session_data *sd, int target_id, return 0; } else if (c == 99) - { //�����s�v�ݒ肾���� + { //相方不要設定だった ; } else @@ -8100,7 +8100,7 @@ int skill_use_id (struct map_session_data *sd, int target_id, if (!skill_check_condition (sd, 0)) return 0; - /* �˒��Ə�Q���`�F�b�N */ + /* 射程と障害物チェック */ range = skill_get_range (skill_num, skill_lv); if (range < 0) range = battle_get_range (&sd->bl) - (range + 1); @@ -8129,46 +8129,46 @@ int skill_use_id (struct map_session_data *sd, int target_id, sd->state.skillcastcancel = skill_db[skill_num].castcancel; switch (skill_num) - { /* ��������ȏ������K�v */ -// case AL_HEAL: /* �q�[�� */ + { /* 何か特殊な処理が必要 */ +// case AL_HEAL: /* ヒール */ // if(battle_check_undead(battle_get_race(bl),battle_get_elem_type(bl))) -// forcecast=1; /* �q�[���A�^�b�N�Ȃ�r���G�t�F�N�g�L�� */ +// forcecast=1; /* ヒールアタックなら詠唱エフェクト有り */ // break; - case ALL_RESURRECTION: /* ���U���N�V���� */ + case ALL_RESURRECTION: /* リザレクション */ if (bl->type != BL_PC && battle_check_undead (battle_get_race (bl), battle_get_elem_type (bl))) - { /* �G���A���f�b�h�Ȃ� */ - forcecast = 1; /* �^�[���A���f�b�g�Ɠ����r������ */ + { /* 敵がアンデッドなら */ + forcecast = 1; /* ターンアンデットと同じ詠唱時間 */ casttime = skill_castfix (&sd->bl, skill_get_cast (PR_TURNUNDEAD, skill_lv)); } break; - case MO_FINGEROFFENSIVE: /* �w�e */ + case MO_FINGEROFFENSIVE: /* 指弾 */ casttime += casttime * ((skill_lv > sd->spiritball) ? sd->spiritball : skill_lv); break; - case MO_CHAINCOMBO: /*�A�ŏ� */ + case MO_CHAINCOMBO: /*連打掌 */ target_id = sd->attacktarget; if (sc_data && sc_data[SC_BLADESTOP].timer != -1) { struct block_list *tbl; - if ((tbl = (struct block_list *) sc_data[SC_BLADESTOP].val4) == NULL) //�^�[�Q�b�g�����Ȃ��H + if ((tbl = (struct block_list *) sc_data[SC_BLADESTOP].val4) == NULL) //ターゲットがいない? return 0; target_id = tbl->id; } break; - case MO_COMBOFINISH: /*�җ��� */ - case CH_TIGERFIST: /* ���Ռ� */ - case CH_CHAINCRUSH: /* �A������ */ + case MO_COMBOFINISH: /*猛龍拳 */ + case CH_TIGERFIST: /* 伏虎拳 */ + case CH_CHAINCRUSH: /* 連柱崩撃 */ target_id = sd->attacktarget; break; // -- moonsoul (altered to allow proper usage of extremity from new champion combos) // - case MO_EXTREMITYFIST: /*���C���e�P�� */ + case MO_EXTREMITYFIST: /*阿修羅覇鳳拳 */ if (sc_data && sc_data[SC_COMBO].timer != -1 && (sc_data[SC_COMBO].val1 == MO_COMBOFINISH || sc_data[SC_COMBO].val1 == CH_CHAINCRUSH)) @@ -8189,7 +8189,7 @@ int skill_use_id (struct map_session_data *sd, int target_id, if ((p_sd = pc_get_partner (sd)) == NULL) return 0; target_id = p_sd->bl.id; - //range������1�� + //rangeをもう1回検査 range = skill_get_range (skill_num, skill_lv); if (range < 0) range = battle_get_range (&sd->bl) - (range + 1); @@ -8199,7 +8199,7 @@ int skill_use_id (struct map_session_data *sd, int target_id, } } break; - case AS_SPLASHER: /* �x�i���X�v���b�V���[ */ + case AS_SPLASHER: /* ベナムスプラッシャー */ { struct status_change *t_sc_data = battle_get_sc_data (bl); if (t_sc_data && t_sc_data[SC_POISON].timer == -1) @@ -8209,13 +8209,13 @@ int skill_use_id (struct map_session_data *sd, int target_id, } } break; - case PF_MEMORIZE: /* �������C�Y */ + case PF_MEMORIZE: /* メモライズ */ casttime = 12000; break; } - //�������C�Y��ԂȂ�L���X�g�^�C����1/3 + //メモライズ状態ならキャストタイムが1/3 if (sc_data && sc_data[SC_MEMORIZE].timer != -1 && casttime > 0) { casttime = casttime / 3; @@ -8231,12 +8231,12 @@ int skill_use_id (struct map_session_data *sd, int target_id, // casttime = delay = 0; if (casttime > 0 || forcecast) - { /* �r�����K�v */ + { /* 詠唱が必要 */ struct mob_data *md; clif_skillcasting (&sd->bl, sd->bl.id, target_id, 0, 0, skill_num, casttime); - /* �r�����������X�^�[ */ + /* 詠唱反応モンスター */ 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) @@ -8247,7 +8247,7 @@ int skill_use_id (struct map_session_data *sd, int target_id, } } - if (casttime <= 0) /* �r���̖������̂̓L�����Z������Ȃ� */ + if (casttime <= 0) /* 詠唱の無いものはキャンセルされない */ sd->state.skillcastcancel = 0; sd->skilltarget = target_id; @@ -8279,7 +8279,7 @@ int skill_use_id (struct map_session_data *sd, int target_id, skill_castend_id (sd->skilltimer, tick, sd->bl.id, 0); } - //�}�W�b�N�p���[�̌��ʏI�� + //マジックパワーの効果終了 if (sc_data && sc_data[SC_MAGICPOWER].timer != -1 && skill_num != HW_MAGICPOWER) skill_status_change_end (&sd->bl, SC_MAGICPOWER, -1); @@ -8288,7 +8288,7 @@ int skill_use_id (struct map_session_data *sd, int target_id, } /*========================================== - * �X�L���g�p�i�ꏊ�w��j + * スキル使用(場所指定) *------------------------------------------ */ int skill_use_pos (struct map_session_data *sd, @@ -8319,7 +8319,7 @@ int skill_use_pos (struct map_session_data *sd, sc_data[SC_STEELBODY].timer != -1 || sc_data[SC_DANCING].timer != -1 || sc_data[SC_BERSERK].timer != -1) - return 0; /* ��Ԉُ�Ⓘ�قȂ� */ + return 0; /* 状態異常や沈黙など */ } if (sd->status.option & 2) @@ -8338,7 +8338,7 @@ int skill_use_pos (struct map_session_data *sd, if (!skill_check_condition (sd, 0)) return 0; - /* �˒��Ə�Q���`�F�b�N */ + /* 射程と障害物チェック */ bl.type = BL_NUL; bl.m = sd->bl.m; bl.x = skill_x; @@ -8361,7 +8361,7 @@ int skill_use_pos (struct map_session_data *sd, // if(sd->skillitem == skill_num) // casttime = delay = 0; - //�������C�Y��ԂȂ�L���X�g�^�C����1/3 + //メモライズ状態ならキャストタイムが1/3 if (sc_data && sc_data[SC_MEMORIZE].timer != -1 && casttime > 0) { casttime = casttime / 3; @@ -8369,12 +8369,12 @@ int skill_use_pos (struct map_session_data *sd, skill_status_change_end (&sd->bl, SC_MEMORIZE, -1); } - if (casttime > 0) /* �r�����K�v */ + if (casttime > 0) /* 詠唱が必要 */ clif_skillcasting (&sd->bl, sd->bl.id, 0, skill_x, skill_y, skill_num, casttime); - if (casttime <= 0) /* �r���̖������̂̓L�����Z������Ȃ� */ + if (casttime <= 0) /* 詠唱の無いものはキャンセルされない */ sd->state.skillcastcancel = 0; sd->skilltarget = 0; @@ -8403,7 +8403,7 @@ int skill_use_pos (struct map_session_data *sd, sd->skilltimer = -1; skill_castend_pos (sd->skilltimer, tick, sd->bl.id, 0); } - //�}�W�b�N�p���[�̌��ʏI�� + //マジックパワーの効果終了 if (sc_data && sc_data[SC_MAGICPOWER].timer != -1 && skill_num != HW_MAGICPOWER) skill_status_change_end (&sd->bl, SC_MAGICPOWER, -1); @@ -8412,7 +8412,7 @@ int skill_use_pos (struct map_session_data *sd, } /*========================================== - * �X�L���r���L�����Z�� + * スキル詠唱キャンセル *------------------------------------------ */ int skill_castcancel (struct block_list *bl, int type) @@ -8483,7 +8483,7 @@ int skill_castcancel (struct block_list *bl, int type) } /*========================================= - * �u�����f�B�b�V���X�s�A �����͈͌��� + * ブランディッシュスピア 初期範囲決定 *---------------------------------------- */ void skill_brandishspear_first (struct square *tc, int dir, int x, int y) @@ -8587,7 +8587,7 @@ void skill_brandishspear_first (struct square *tc, int dir, int x, int y) } /*========================================= - * �u�����f�B�b�V���X�s�A �������� �͈͊g�� + * ブランディッシュスピア 方向判定 範囲拡張 *----------------------------------------- */ void skill_brandishspear_dir (struct square *tc, int dir, int are) @@ -8639,12 +8639,12 @@ void skill_brandishspear_dir (struct square *tc, int dir, int are) } /*========================================== - * �f�B�{�[�V���� �L���m�F + * ディボーション 有効確認 *------------------------------------------ */ void skill_devotion (struct map_session_data *md, int target) { - // ���m�F + // 総確認 int n; nullpo_retv (md); @@ -8654,7 +8654,7 @@ void skill_devotion (struct map_session_data *md, int target) if (md->dev.val1[n]) { struct map_session_data *sd = map_id2sd (md->dev.val1[n]); - // ���肪������Ȃ� // ������f�B�{���Ă�̂���������Ȃ� // ����������Ă� + // 相手が見つからない // 相手をディボしてるのが自分じゃない // 距離が離れてる if (sd == NULL || (sd->sc_data && (md->bl.id != sd->sc_data[SC_DEVOTION].val1)) @@ -8668,7 +8668,7 @@ void skill_devotion (struct map_session_data *md, int target) void skill_devotion2 (struct block_list *bl, int crusader) { - // ��f�B�{�[�V���������������̋����`�F�b�N + // 被ディボーションが歩いた時の距離チェック struct map_session_data *sd = map_id2sd (crusader); nullpo_retv (bl); @@ -8679,7 +8679,7 @@ void skill_devotion2 (struct block_list *bl, int crusader) int skill_devotion3 (struct block_list *bl, int target) { - // �N���Z�����������̋����`�F�b�N + // クルセが歩いた時の距離チェック struct map_session_data *md; struct map_session_data *sd; int n, r = 0; @@ -8693,10 +8693,10 @@ int skill_devotion3 (struct block_list *bl, int target) r = distance (bl->x, bl->y, sd->bl.x, sd->bl.y); if (pc_checkskill (sd, CR_DEVOTION) + 6 < r) - { // ���e�͈͂��Ă� + { // 許容範囲を超えてた for (n = 0; n < 5; n++) if (md->dev.val1[n] == target) - md->dev.val2[n] = 0; // ���ꂽ���́A����邾�� + md->dev.val2[n] = 0; // 離れた時は、糸を切るだけ clif_devotion (md, sd->bl.id); return 1; } @@ -8706,7 +8706,7 @@ int skill_devotion3 (struct block_list *bl, int target) void skill_devotion_end (struct map_session_data *md, struct map_session_data *sd, int target) { - // �N���Z�Ɣ�f�B�{�L�����̃��Z�b�g + // クルセと被ディボキャラのリセット nullpo_retv (md); nullpo_retv (sd); @@ -8722,7 +8722,7 @@ void skill_devotion_end (struct map_session_data *md, } /*========================================== - * �I�[�g�X�y�� + * オートスペル *------------------------------------------ */ int skill_autospell (struct map_session_data *sd, int skillid) @@ -8770,13 +8770,13 @@ int skill_autospell (struct map_session_data *sd, int skillid) if (maxlv > (lv = pc_checkskill (sd, skillid))) maxlv = lv; - skill_status_change_start (&sd->bl, SC_AUTOSPELL, skilllv, skillid, maxlv, 0, // val1:�X�L��ID val2:�g�p�ő�Lv - skill_get_time (SA_AUTOSPELL, skilllv), 0); // �ɂ��Ă݂�����bscript�������Ղ��E�E�E�H + skill_status_change_start (&sd->bl, SC_AUTOSPELL, skilllv, skillid, maxlv, 0, // val1:スキルID val2:使用最大Lv + skill_get_time (SA_AUTOSPELL, skilllv), 0); // にしてみたけどbscriptが書き易い・・・? return 0; } /*========================================== - * �M�����O�X�^�[�p���_�C�X���菈��(foreachinarea) + * ギャングスターパラダイス判定処理(foreachinarea) *------------------------------------------ */ @@ -8833,12 +8833,12 @@ int skill_gangsterparadise (struct map_session_data *sd, int type) return 0; if (type == 1) - { /* ���������̏��� */ + { /* 座った時の処理 */ map_foreachinarea (skill_gangster_count, sd->bl.m, sd->bl.x - range, sd->bl.y - range, sd->bl.x + range, sd->bl.y + range, BL_PC, &c); if (c > 0) - { /*�M�����O�X�^�[���������玩���ɂ��M�����O�X�^�[�����t�^ */ + { /*ギャングスター成功したら自分にもギャングスター属性付与 */ map_foreachinarea (skill_gangster_in, sd->bl.m, sd->bl.x - range, sd->bl.y - range, sd->bl.x + range, sd->bl.y + range, BL_PC); @@ -8847,7 +8847,7 @@ int skill_gangsterparadise (struct map_session_data *sd, int type) return 0; } else if (type == 0) - { /* �����オ�����Ƃ��̏��� */ + { /* 立ち上がったときの処理 */ map_foreachinarea (skill_gangster_count, sd->bl.m, sd->bl.x - range, sd->bl.y - range, sd->bl.x + range, sd->bl.y + range, BL_PC, &c); @@ -8862,7 +8862,7 @@ int skill_gangsterparadise (struct map_session_data *sd, int type) } /*========================================== - * �����W���[�N�E�X�N���[�����菈��(foreachinarea) + * 寒いジョーク・スクリーム判定処理(foreachinarea) *------------------------------------------ */ int skill_frostjoke_scream (struct block_list *bl, va_list ap) @@ -8879,14 +8879,14 @@ int skill_frostjoke_scream (struct block_list *bl, va_list ap) skilllv = va_arg (ap, int); tick = va_arg (ap, unsigned int); - if (src == bl) //�����ɂ͌����Ȃ� + if (src == bl) //自分には効かない return 0; if (battle_check_target (src, bl, BCT_ENEMY) > 0) skill_additional_effect (src, bl, skillnum, skilllv, BF_MISC, tick); else if (battle_check_target (src, bl, BCT_PARTY) > 0) { - if (MRAND (100) < 10) //PT�����o�ɂ���m���ł�����(�Ƃ肠����10%) + if (MRAND (100) < 10) //PTメンバにも低確率でかかる(とりあえず10%) skill_additional_effect (src, bl, skillnum, skilllv, BF_MISC, tick); } @@ -8962,7 +8962,7 @@ int skill_clear_element_field (struct block_list *bl) } /*========================================== - * �����h�v���e�N�^�[�`�F�b�N(foreachinarea) + * ランドプロテクターチェック(foreachinarea) *------------------------------------------ */ int skill_landprotector (struct block_list *bl, va_list ap) @@ -8992,7 +8992,7 @@ int skill_landprotector (struct block_list *bl, va_list ap) } /*========================================== - * �C�h�D���̗ь�̉���(foreachinarea) + * イドゥンの林檎の回復処理(foreachinarea) *------------------------------------------ */ int skill_idun_heal (struct block_list *bl, va_list ap) @@ -9022,7 +9022,7 @@ int skill_idun_heal (struct block_list *bl, va_list ap) } /*========================================== - * �w��͈͓���src�ɑ��ėL���ȃ^�[�Q�b�g��bl�̐��𐔂���(foreachinarea) + * 指定範囲内でsrcに対して有効なターゲットのblの数を数える(foreachinarea) *------------------------------------------ */ int skill_count_target (struct block_list *bl, va_list ap) @@ -9043,7 +9043,7 @@ int skill_count_target (struct block_list *bl, va_list ap) } /*========================================== - * �g���b�v�͈͏���(foreachinarea) + * トラップ範囲処理(foreachinarea) *------------------------------------------ */ int skill_trap_splash (struct block_list *bl, va_list ap) @@ -9070,21 +9070,21 @@ int skill_trap_splash (struct block_list *bl, va_list ap) { switch (sg->unit_id) { - case 0x95: /* �T���h�}�� */ - case 0x96: /* �t���b�V���[ */ - case 0x94: /* �V���b�N�E�F�[�u�g���b�v */ + case 0x95: /* サンドマン */ + case 0x96: /* フラッシャー */ + case 0x94: /* ショックウェーブトラップ */ skill_additional_effect (ss, bl, sg->skill_id, sg->skill_lv, BF_MISC, tick); break; - case 0x8f: /* �u���X�g�}�C�� */ - case 0x98: /* �N���C���A�[�g���b�v */ + case 0x8f: /* ブラストマイン */ + case 0x98: /* クレイモアートラップ */ for (i = 0; i < splash_count; i++) { skill_attack (BF_MISC, ss, src, bl, sg->skill_id, sg->skill_lv, tick, (sg->val2) ? 0x0500 : 0); } - case 0x97: /* �t���[�W���O�g���b�v */ + case 0x97: /* フリージングトラップ */ skill_attack (BF_WEAPON, ss, src, bl, sg->skill_id, sg->skill_lv, tick, (sg->val2) ? 0x0500 : 0); break; @@ -9097,12 +9097,12 @@ int skill_trap_splash (struct block_list *bl, va_list ap) } /*---------------------------------------------------------------------------- - * �X�e�[�^�X�ُ� + * ステータス異常 *---------------------------------------------------------------------------- */ /*========================================== - * �X�e�[�^�X�ُ�^�C�}�[�͈͏��� + * ステータス異常タイマー範囲処理 *------------------------------------------ */ int skill_status_change_timer_sub (struct block_list *bl, va_list ap) @@ -9122,7 +9122,7 @@ int skill_status_change_timer_sub (struct block_list *bl, va_list ap) switch (type) { - case SC_SIGHT: /* �T�C�g */ + case SC_SIGHT: /* サイト */ case SC_CONCENTRATE: if ((*battle_get_option (bl)) & 6) { @@ -9130,7 +9130,7 @@ int skill_status_change_timer_sub (struct block_list *bl, va_list ap) skill_status_change_end (bl, SC_CLOAKING, -1); } break; - case SC_RUWACH: /* ���A�t */ + case SC_RUWACH: /* ルアフ */ if ((*battle_get_option (bl)) & 6) { skill_status_change_end (bl, SC_HIDING, -1); @@ -9148,7 +9148,7 @@ int skill_status_change_timer_sub (struct block_list *bl, va_list ap) } /*========================================== - * �X�e�[�^�X�ُ�I�� + * ステータス異常終了 *------------------------------------------ */ int skill_status_change_active (struct block_list *bl, int type) @@ -9192,77 +9192,77 @@ int skill_status_change_end (struct block_list *bl, int type, int tid) && (sc_data[type].timer == tid || tid == -1)) { - if (tid == -1) // �^�C�}����Ă�Ă��Ȃ��Ȃ�^�C�}�폜������ + if (tid == -1) // タイマから呼ばれていないならタイマ削除をする delete_timer (sc_data[type].timer, skill_status_change_timer); - /* �Y���ُ̈�𐳏�ɖ߂� */ + /* 該当の異常を正常に戻す */ sc_data[type].timer = -1; (*sc_count)--; switch (type) - { /* �ُ�̎�ނ��Ƃ̏��� */ - case SC_PROVOKE: /* �v���{�b�N */ - case SC_CONCENTRATE: /* �W���͌��� */ - case SC_BLESSING: /* �u���b�V���O */ - case SC_ANGELUS: /* �A���[���X */ - case SC_INCREASEAGI: /* ���x�㏸ */ - case SC_DECREASEAGI: /* ���x���� */ - case SC_SIGNUMCRUCIS: /* �V�O�i���N���V�X */ + { /* 異常の種類ごとの処理 */ + case SC_PROVOKE: /* プロボック */ + case SC_CONCENTRATE: /* 集中力向上 */ + case SC_BLESSING: /* ブレッシング */ + case SC_ANGELUS: /* アンゼルス */ + case SC_INCREASEAGI: /* 速度上昇 */ + case SC_DECREASEAGI: /* 速度減少 */ + case SC_SIGNUMCRUCIS: /* シグナムクルシス */ case SC_HIDING: case SC_TWOHANDQUICKEN: /* 2HQ */ - case SC_ADRENALINE: /* �A�h���i�������b�V�� */ - case SC_ENCPOISON: /* �G���`�����g�|�C�Y�� */ - case SC_IMPOSITIO: /* �C���|�V�e�B�I�}�k�X */ - case SC_GLORIA: /* �O�����A */ - case SC_LOUD: /* ���E�h�{�C�X */ - case SC_QUAGMIRE: /* �N�@�O�}�C�A */ - case SC_PROVIDENCE: /* �v�����B�f���X */ - case SC_SPEARSQUICKEN: /* �X�s�A�N�C�b�P�� */ + case SC_ADRENALINE: /* アドレナリンラッシュ */ + case SC_ENCPOISON: /* エンチャントポイズン */ + case SC_IMPOSITIO: /* インポシティオマヌス */ + case SC_GLORIA: /* グロリア */ + case SC_LOUD: /* ラウドボイス */ + case SC_QUAGMIRE: /* クァグマイア */ + case SC_PROVIDENCE: /* プロヴィデンス */ + case SC_SPEARSQUICKEN: /* スピアクイッケン */ case SC_VOLCANO: case SC_DELUGE: case SC_VIOLENTGALE: - case SC_ETERNALCHAOS: /* �G�^�[�i���J�I�X */ - case SC_DRUMBATTLE: /* �푾�ۂ̋��� */ - case SC_NIBELUNGEN: /* �j�[�x�����O�̎w�� */ - case SC_SIEGFRIED: /* �s���g�̃W�[�N�t���[�h */ - case SC_WHISTLE: /* ���J */ - case SC_ASSNCROS: /* �[�z�̃A�T�V���N���X */ - case SC_HUMMING: /* �n�~���O */ - case SC_DONTFORGETME: /* ����Y��Ȃ��� */ - case SC_FORTUNE: /* �K�^�̃L�X */ - case SC_SERVICE4U: /* �T�[�r�X�t�H�[���[ */ - case SC_EXPLOSIONSPIRITS: // �����g�� - case SC_STEELBODY: // ���� + case SC_ETERNALCHAOS: /* エターナルカオス */ + case SC_DRUMBATTLE: /* 戦太鼓の響き */ + case SC_NIBELUNGEN: /* ニーベルングの指輪 */ + case SC_SIEGFRIED: /* 不死身のジークフリード */ + case SC_WHISTLE: /* 口笛 */ + case SC_ASSNCROS: /* 夕陽のアサシンクロス */ + case SC_HUMMING: /* ハミング */ + case SC_DONTFORGETME: /* 私を忘れないで */ + case SC_FORTUNE: /* 幸運のキス */ + case SC_SERVICE4U: /* サービスフォーユー */ + case SC_EXPLOSIONSPIRITS: // 爆裂波動 + case SC_STEELBODY: // 金剛 case SC_DEFENDER: - case SC_SPEEDPOTION0: /* �����|�[�V���� */ + case SC_SPEEDPOTION0: /* 増速ポーション */ case SC_SPEEDPOTION1: case SC_SPEEDPOTION2: - case SC_APPLEIDUN: /* �C�h�D���̗ь� */ + case SC_APPLEIDUN: /* イドゥンの林檎 */ case SC_RIDING: case SC_BLADESTOP_WAIT: - case SC_AURABLADE: /* �I�[���u���[�h */ - case SC_PARRYING: /* �p���C���O */ - case SC_CONCENTRATION: /* �R���Z���g���[�V���� */ - case SC_TENSIONRELAX: /* �e���V���������b�N�X */ - case SC_ASSUMPTIO: /* �A�V�����v�e�B�I */ - case SC_WINDWALK: /* �E�C���h�E�H�[�N */ - case SC_TRUESIGHT: /* �g�D���[�T�C�g */ - case SC_SPIDERWEB: /* �X�p�C�_�[�E�F�b�u */ - case SC_MAGICPOWER: /* ���@�͑��� */ + case SC_AURABLADE: /* オーラブレード */ + case SC_PARRYING: /* パリイング */ + case SC_CONCENTRATION: /* コンセントレーション */ + case SC_TENSIONRELAX: /* テンションリラックス */ + case SC_ASSUMPTIO: /* アシャンプティオ */ + case SC_WINDWALK: /* ウインドウォーク */ + case SC_TRUESIGHT: /* トゥルーサイト */ + case SC_SPIDERWEB: /* スパイダーウェッブ */ + case SC_MAGICPOWER: /* 魔法力増幅 */ case SC_CHASEWALK: case SC_ATKPOT: /* attack potion [Valaris] */ case SC_MATKPOT: /* magic attack potion [Valaris] */ - case SC_WEDDING: //�����p(�����ߏւɂȂ��ĕ����̂��x���Ƃ�) - case SC_MELTDOWN: /* �����g�_�E�� */ + case SC_WEDDING: //結婚用(結婚衣裳になって歩くのが遅いとか) + case SC_MELTDOWN: /* メルトダウン */ case SC_PHYS_SHIELD: case SC_HASTE: calc_flag = 1; break; - case SC_BERSERK: /* �o�[�T�[�N */ + case SC_BERSERK: /* バーサーク */ calc_flag = 1; - clif_status_change (bl, SC_INCREASEAGI, 0); /* �A�C�R������ */ + clif_status_change (bl, SC_INCREASEAGI, 0); /* アイコン消去 */ break; - case SC_DEVOTION: /* �f�B�{�[�V���� */ + case SC_DEVOTION: /* ディボーション */ { struct map_session_data *md = map_id2sd (sc_data[type].val1); sc_data[type].val1 = sc_data[type].val2 = 0; @@ -9275,7 +9275,7 @@ int skill_status_change_end (struct block_list *bl, int type, int tid) struct status_change *t_sc_data = battle_get_sc_data ((struct block_list *) sc_data[type].val4); - //�Е����ꂽ�̂ő���̔��n��Ԃ���ĂȂ��̂Ȃ���� + //片方が切れたので相手の白刃状態が切れてないのなら解除 if (t_sc_data && t_sc_data[SC_BLADESTOP].timer != -1) skill_status_change_end ((struct block_list *) sc_data[type].val4, SC_BLADESTOP, @@ -9295,7 +9295,7 @@ int skill_status_change_end (struct block_list *bl, int type, int tid) && (dsd = map_id2sd (sc_data[type].val4))) { d_sc_data = dsd->sc_data; - //���t�ő��肪����ꍇ�����val4��0�ɂ��� + //合奏で相手がいる場合相手のval4を0にする if (d_sc_data && d_sc_data[type].timer != -1) d_sc_data[type].val4 = 0; } @@ -9304,12 +9304,12 @@ int skill_status_change_end (struct block_list *bl, int type, int tid) break; case SC_GRAFFITI: { - struct skill_unit_group *sg = (struct skill_unit_group *) sc_data[type].val4; //val4���O���t�B�e�B��group_id + struct skill_unit_group *sg = (struct skill_unit_group *) sc_data[type].val4; //val4がグラフィティのgroup_id if (sg) skill_delunitgroup (sg); } break; - case SC_NOCHAT: //�`���b�g�֎~��� + case SC_NOCHAT: //チャット禁止状態 { struct map_session_data *sd = NULL; if (bl->type == BL_PC @@ -9320,21 +9320,21 @@ int skill_status_change_end (struct block_list *bl, int type, int tid) } } break; - case SC_SPLASHER: /* �x�i���X�v���b�V���[ */ + case SC_SPLASHER: /* ベナムスプラッシャー */ { struct block_list *src = map_id2bl (sc_data[type].val3); if (src && tid != -1) { - //�����Ƀ_���[�W������3*3�Ƀ_���[�W + //自分にダメージ&周囲3*3にダメージ skill_castend_damage_id (src, bl, sc_data[type].val2, sc_data[type].val1, gettick (), 0); } } break; - case SC_SELFDESTRUCTION: /* ���� */ + case SC_SELFDESTRUCTION: /* 自爆 */ { - //�����̃_���[�W��0�ɂ��� + //自分のダメージは0にして struct mob_data *md = NULL; if (bl->type == BL_MOB && (md = (struct mob_data *) bl)) skill_castend_damage_id (bl, bl, sc_data[type].val2, @@ -9348,18 +9348,18 @@ int skill_status_change_end (struct block_list *bl, int type, int tid) break; /* option2 */ - case SC_POISON: /* �� */ - case SC_BLIND: /* �Í� */ + case SC_POISON: /* 毒 */ + case SC_BLIND: /* 暗黒 */ case SC_CURSE: calc_flag = 1; break; } if (bl->type == BL_PC && type < SC_SENDMAX) - clif_status_change (bl, type, 0); /* �A�C�R������ */ + clif_status_change (bl, type, 0); /* アイコン消去 */ switch (type) - { /* ����ɖ߂�Ƃ��Ȃɂ��������K�v */ + { /* 正常に戻るときなにか処理が必要 */ case SC_STONE: case SC_FREEZE: case SC_STAN: @@ -9413,7 +9413,7 @@ int skill_status_change_end (struct block_list *bl, int type, int tid) *option &= ~1; opt_flag = 1; break; - case SC_WEDDING: //�����p(�����ߏւɂȂ��ĕ����̂��x���Ƃ�) + case SC_WEDDING: //結婚用(結婚衣裳になって歩くのが遅いとか) *option &= ~4096; opt_flag = 1; break; @@ -9424,32 +9424,32 @@ int skill_status_change_end (struct block_list *bl, int type, int tid) //opt3 case SC_TWOHANDQUICKEN: /* 2HQ */ - case SC_SPEARSQUICKEN: /* �X�s�A�N�C�b�P�� */ - case SC_CONCENTRATION: /* �R���Z���g���[�V���� */ + case SC_SPEARSQUICKEN: /* スピアクイッケン */ + case SC_CONCENTRATION: /* コンセントレーション */ *opt3 &= ~1; break; - case SC_OVERTHRUST: /* �I�[�o�[�X���X�g */ + case SC_OVERTHRUST: /* オーバースラスト */ *opt3 &= ~2; break; - case SC_ENERGYCOAT: /* �G�i�W�[�R�[�g */ + case SC_ENERGYCOAT: /* エナジーコート */ *opt3 &= ~4; break; - case SC_EXPLOSIONSPIRITS: // �����g�� + case SC_EXPLOSIONSPIRITS: // 爆裂波動 *opt3 &= ~8; break; - case SC_STEELBODY: // ���� + case SC_STEELBODY: // 金剛 *opt3 &= ~16; break; - case SC_BLADESTOP: /* ���n��� */ + case SC_BLADESTOP: /* 白刃取り */ *opt3 &= ~32; break; - case SC_BERSERK: /* �o�[�T�[�N */ + case SC_BERSERK: /* バーサーク */ *opt3 &= ~128; break; - case SC_MARIONETTE: /* �}���I�l�b�g�R���g���[�� */ + case SC_MARIONETTE: /* マリオネットコントロール */ *opt3 &= ~1024; break; - case SC_ASSUMPTIO: /* �A�X���v�e�B�I */ + case SC_ASSUMPTIO: /* アスムプティオ */ *opt3 &= ~2048; break; } @@ -9461,11 +9461,11 @@ int skill_status_change_end (struct block_list *bl, int type, int tid) opt_flag = 1; } - if (opt_flag) /* option�̕ύX��`���� */ + if (opt_flag) /* optionの変更を伝える */ clif_changeoption (bl); if (bl->type == BL_PC && calc_flag) - pc_calcstatus ((struct map_session_data *) bl, 0); /* �X�e�[�^�X�Čv�Z */ + pc_calcstatus ((struct map_session_data *) bl, 0); /* ステータス再計算 */ } return 0; @@ -9493,7 +9493,7 @@ int skill_update_heal_animation (struct map_session_data *sd) } /*========================================== - * �X�e�[�^�X�ُ�I���^�C�}�[ + * ステータス異常終了タイマー *------------------------------------------ */ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) @@ -9502,16 +9502,16 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) struct block_list *bl; struct map_session_data *sd = NULL; struct status_change *sc_data; - //short *sc_count; //�g���ĂȂ��H + //short *sc_count; //使ってない? if ((bl = map_id2bl (id)) == NULL) - return 0; //�Y��ID�����łɏ��ł��Ă���Ƃ����̂͂����ɂ����肻���Ȃ̂ŃX���[���Ă݂� + return 0; //該当IDがすでに消滅しているというのはいかにもありそうなのでスルーしてみる nullpo_retr (0, sc_data = battle_get_sc_data (bl)); if (bl->type == BL_PC) sd = (struct map_session_data *) bl; - //sc_count=battle_get_sc_count(bl); //�g���ĂȂ��H + //sc_count=battle_get_sc_count(bl); //使ってない? if (sc_data[type].timer != tid) { @@ -9528,17 +9528,17 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } switch (type) - { /* ����ȏ����ɂȂ�ꍇ */ - case SC_MAXIMIZEPOWER: /* �}�L�V�}�C�Y�p���[ */ - case SC_CLOAKING: /* �N���[�L���O */ + { /* 特殊な処理になる場合 */ + case SC_MAXIMIZEPOWER: /* マキシマイズパワー */ + case SC_CLOAKING: /* クローキング */ case SC_CHASEWALK: if (sd) { if (sd->status.sp > 0) - { /* SP���܂Ŏ��� */ + { /* SP切れるまで持続 */ sd->status.sp--; clif_updatestatus (sd, SP_SP); - sc_data[type].timer = add_timer ( /* �^�C�}�[�Đݒ� */ + sc_data[type].timer = add_timer ( /* タイマー再設定 */ sc_data[type].val2 + tick, skill_status_change_timer, @@ -9548,9 +9548,9 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } break; - case SC_HIDING: /* �n�C�f�B���O */ + case SC_HIDING: /* ハイディング */ if (sd) - { /* SP�������āA���Ԑ����̊Ԃ͎��� */ + { /* SPがあって、時間制限の間は持続 */ if (sd->status.sp > 0 && (--sc_data[type].val2) > 0) { if (sc_data[type].val2 % (sc_data[type].val1 + 3) == 0) @@ -9558,7 +9558,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) sd->status.sp--; clif_updatestatus (sd, SP_SP); } - sc_data[type].timer = add_timer ( /* �^�C�}�[�Đݒ� */ + sc_data[type].timer = add_timer ( /* タイマー再設定 */ 1000 + tick, skill_status_change_timer, bl->id, data); @@ -9567,7 +9567,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } break; - case SC_SIGHT: /* �T�C�g */ + case SC_SIGHT: /* サイト */ { const int range = 7; map_foreachinarea (skill_status_change_timer_sub, @@ -9577,7 +9577,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) if ((--sc_data[type].val2) > 0) { - sc_data[type].timer = add_timer ( /* �^�C�}�[�Đݒ� */ + sc_data[type].timer = add_timer ( /* タイマー再設定 */ 250 + tick, skill_status_change_timer, bl->id, data); @@ -9585,7 +9585,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } } break; - case SC_RUWACH: /* ���A�t */ + case SC_RUWACH: /* ルアフ */ { const int range = 5; map_foreachinarea (skill_status_change_timer_sub, @@ -9595,7 +9595,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) if ((--sc_data[type].val2) > 0) { - sc_data[type].timer = add_timer ( /* �^�C�}�[�Đݒ� */ + sc_data[type].timer = add_timer ( /* タイマー再設定 */ 250 + tick, skill_status_change_timer, bl->id, data); @@ -9604,7 +9604,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } break; - case SC_SIGNUMCRUCIS: /* �V�O�i���N���V�X */ + case SC_SIGNUMCRUCIS: /* シグナムクルシス */ { int race = battle_get_race (bl); if (race == 6 @@ -9618,10 +9618,10 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } break; - case SC_PROVOKE: /* �v���{�b�N/�I�[�g�o�[�T�[�N */ + case SC_PROVOKE: /* プロボック/オートバーサーク */ if (sc_data[type].val2 != 0) - { /* �I�[�g�o�[�T�[�N�i�P�b���Ƃ�HP�`�F�b�N�j */ - if (sd && sd->status.hp > sd->status.max_hp >> 2) /* ��~ */ + { /* オートバーサーク(1秒ごとにHPチェック) */ + if (sd && sd->status.hp > sd->status.max_hp >> 2) /* 停止 */ break; sc_data[type].timer = add_timer (1000 + tick, skill_status_change_timer, bl->id, @@ -9630,7 +9630,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } break; - case SC_WATERBALL: /* �E�H�[�^�[�{�[�� */ + case SC_WATERBALL: /* ウォーターボール */ { struct block_list *target = map_id2bl (sc_data[type].val2); if (target == NULL || target->prev == NULL) @@ -9647,7 +9647,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } break; - case SC_ENDURE: /* �C���f���A */ + case SC_ENDURE: /* インデュア */ if (sd && sd->special_state.infinite_endure) { sc_data[type].timer = @@ -9658,7 +9658,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } break; - case SC_DISSONANCE: /* �s���a�� */ + case SC_DISSONANCE: /* 不協和音 */ if ((--sc_data[type].val2) > 0) { struct skill_unit *unit = @@ -9682,7 +9682,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } break; - case SC_LULLABY: /* �q��S */ + case SC_LULLABY: /* 子守唄 */ if ((--sc_data[type].val2) > 0) { struct skill_unit *unit = @@ -9782,9 +9782,9 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) data); break; - case SC_TENSIONRELAX: /* �e���V���������b�N�X */ + case SC_TENSIONRELAX: /* テンションリラックス */ if (sd) - { /* SP�������āAHP�����^���łȂ���Όp�� */ + { /* SPがあって、HPが満タンでなければ継続 */ if (sd->status.sp > 12 && sd->status.max_hp > sd->status.hp) { if (sc_data[type].val2 % (sc_data[type].val1 + 3) == 0) @@ -9792,7 +9792,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) sd->status.sp -= 12; clif_updatestatus (sd, SP_SP); } - sc_data[type].timer = add_timer ( /* �^�C�}�[�Đݒ� */ + sc_data[type].timer = add_timer ( /* タイマー再設定 */ 10000 + tick, skill_status_change_timer, bl->id, data); @@ -9803,16 +9803,16 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } break; - /* ���Ԑꖳ���H�H */ + /* 時間切れ無し?? */ case SC_AETERNA: case SC_TRICKDEAD: case SC_RIDING: case SC_FALCON: case SC_WEIGHT50: case SC_WEIGHT90: - case SC_MAGICPOWER: /* ���@�͑��� */ - case SC_REJECTSWORD: /* ���W�F�N�g�\�[�h */ - case SC_MEMORIZE: /* �������C�Y */ + case SC_MAGICPOWER: /* 魔法力増幅 */ + case SC_REJECTSWORD: /* リジェクトソード */ + case SC_MEMORIZE: /* メモライズ */ case SC_BROKNWEAPON: case SC_BROKNARMOR: if (sc_data[type].timer == tid) @@ -9821,7 +9821,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) bl->id, data); return 0; - case SC_DANCING: //�_���X�X�L���̎���SP���� + case SC_DANCING: //ダンススキルの時間SP消費 { int s = 0; if (sd) @@ -9830,33 +9830,33 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) { switch (sc_data[type].val1) { - case BD_RICHMANKIM: /* �j�����h�̉� 3�b��SP1 */ - case BD_DRUMBATTLEFIELD: /* �푾�ۂ̋��� 3�b��SP1 */ - case BD_RINGNIBELUNGEN: /* �j�[�x�����O�̎w�� 3�b��SP1 */ - case BD_SIEGFRIED: /* �s���g�̃W�[�N�t���[�h 3�b��SP1 */ - case BA_DISSONANCE: /* �s���a�� 3�b��SP1 */ - case BA_ASSASSINCROSS: /* �[�z�̃A�T�V���N���X 3�b��SP1 */ - case DC_UGLYDANCE: /* ��������ȃ_���X 3�b��SP1 */ + case BD_RICHMANKIM: /* ニヨルドの宴 3秒にSP1 */ + case BD_DRUMBATTLEFIELD: /* 戦太鼓の響き 3秒にSP1 */ + case BD_RINGNIBELUNGEN: /* ニーベルングの指輪 3秒にSP1 */ + case BD_SIEGFRIED: /* 不死身のジークフリード 3秒にSP1 */ + case BA_DISSONANCE: /* 不協和音 3秒でSP1 */ + case BA_ASSASSINCROSS: /* 夕陽のアサシンクロス 3秒でSP1 */ + case DC_UGLYDANCE: /* 自分勝手なダンス 3秒でSP1 */ s = 3; break; - case BD_LULLABY: /* �q��� 4�b��SP1 */ - case BD_ETERNALCHAOS: /* �i���̍��� 4�b��SP1 */ - case BD_ROKISWEIL: /* ���L�̋��� 4�b��SP1 */ - case DC_FORTUNEKISS: /* �K�^�̃L�X 4�b��SP1 */ + case BD_LULLABY: /* 子守歌 4秒にSP1 */ + case BD_ETERNALCHAOS: /* 永遠の混沌 4秒にSP1 */ + case BD_ROKISWEIL: /* ロキの叫び 4秒にSP1 */ + case DC_FORTUNEKISS: /* 幸運のキス 4秒でSP1 */ s = 4; break; - case BD_INTOABYSS: /* �[���̒��� 5�b��SP1 */ - case BA_WHISTLE: /* ���J 5�b��SP1 */ - case DC_HUMMING: /* �n�~���O 5�b��SP1 */ - case BA_POEMBRAGI: /* �u���M�̎� 5�b��SP1 */ - case DC_SERVICEFORYOU: /* �T�[�r�X�t�H�[���[ 5�b��SP1 */ + case BD_INTOABYSS: /* 深淵の中に 5秒にSP1 */ + case BA_WHISTLE: /* 口笛 5秒でSP1 */ + case DC_HUMMING: /* ハミング 5秒でSP1 */ + case BA_POEMBRAGI: /* ブラギの詩 5秒でSP1 */ + case DC_SERVICEFORYOU: /* サービスフォーユー 5秒でSP1 */ s = 5; break; - case BA_APPLEIDUN: /* �C�h�D���̗ь� 6�b��SP1 */ + case BA_APPLEIDUN: /* イドゥンの林檎 6秒でSP1 */ s = 6; break; - case DC_DONTFORGETME: /* ����Y��Ȃ��Łc 10�b��SP1 */ - case CG_MOONLIT: /* ������̐�ɗ�����Ԃт� 10�b��SP1�H */ + case DC_DONTFORGETME: /* 私を忘れないで… 10秒でSP1 */ + case CG_MOONLIT: /* 月明りの泉に落ちる花びら 10秒でSP1? */ s = 10; break; } @@ -9865,7 +9865,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) sd->status.sp--; clif_updatestatus (sd, SP_SP); } - sc_data[type].timer = add_timer ( /* �^�C�}�[�Đݒ� */ + sc_data[type].timer = add_timer ( /* タイマー再設定 */ 1000 + tick, skill_status_change_timer, bl->id, data); @@ -9874,14 +9874,14 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } } break; - case SC_BERSERK: /* �o�[�T�[�N */ + case SC_BERSERK: /* バーサーク */ if (sd) - { /* HP��100�ȏ�Ȃ�p�� */ + { /* HPが100以上なら継続 */ if ((sd->status.hp - sd->status.hp / 100) > 100) { sd->status.hp -= sd->status.hp / 100; clif_updatestatus (sd, SP_HP); - sc_data[type].timer = add_timer ( /* �^�C�}�[�Đݒ� */ + sc_data[type].timer = add_timer ( /* タイマー再設定 */ 15000 + tick, skill_status_change_timer, bl->id, data); @@ -9889,13 +9889,13 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } } break; - case SC_WEDDING: //�����p(�����ߏւɂȂ��ĕ����̂��x���Ƃ�) + case SC_WEDDING: //結婚用(結婚衣裳になって歩くのが遅いとか) if (sd) { time_t timer; if (time (&timer) < ((sc_data[type].val2) + 3600)) - { //1���Ԃ����Ă��Ȃ��̂Ōp�� - sc_data[type].timer = add_timer ( /* �^�C�}�[�Đݒ� */ + { //1時間たっていないので継続 + sc_data[type].timer = add_timer ( /* タイマー再設定 */ 10000 + tick, skill_status_change_timer, bl->id, data); @@ -9903,16 +9903,16 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } } break; - case SC_NOCHAT: //�`���b�g�֎~��� + case SC_NOCHAT: //チャット禁止状態 if (sd && battle_config.muting_players) { time_t timer; if ((++sd->status.manner) && time (&timer) < ((sc_data[type].val2) + 60 * (0 - sd->status.manner))) - { //�J�n����status.manner���o���ĂȂ��̂Ōp�� + { //開始からstatus.manner分経ってないので継続 clif_updatestatus (sd, SP_MANNER); - sc_data[type].timer = add_timer ( /* �^�C�}�[�Đݒ�(60�b) */ + sc_data[type].timer = add_timer ( /* タイマー再設定(60秒) */ 60000 + tick, skill_status_change_timer, bl->id, data); @@ -9920,7 +9920,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } } break; - case SC_SELFDESTRUCTION: /* ���� */ + case SC_SELFDESTRUCTION: /* 自爆 */ if (--sc_data[type].val3 > 0) { struct mob_data *md; @@ -9930,7 +9930,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) md->stats[MOB_SPEED] -= 250; md->next_walktime = tick; } - sc_data[type].timer = add_timer ( /* �^�C�}�[�Đݒ� */ + sc_data[type].timer = add_timer ( /* タイマー再設定 */ 1000 + tick, skill_status_change_timer, bl->id, data); @@ -9948,7 +9948,7 @@ int skill_status_change_timer (int tid, unsigned int tick, int id, int data) } /*========================================== - * �X�e�[�^�X�ُ�I�� + * ステータス異常終了 *------------------------------------------ */ int skill_encchant_eremental_end (struct block_list *bl, int type) @@ -9958,24 +9958,24 @@ int skill_encchant_eremental_end (struct block_list *bl, int type) nullpo_retr (0, bl); nullpo_retr (0, sc_data = battle_get_sc_data (bl)); - if (type != SC_ENCPOISON && sc_data[SC_ENCPOISON].timer != -1) /* �G���`�����g�|�C�Y������ */ + if (type != SC_ENCPOISON && sc_data[SC_ENCPOISON].timer != -1) /* エンチャントポイズン解除 */ skill_status_change_end (bl, SC_ENCPOISON, -1); - if (type != SC_ASPERSIO && sc_data[SC_ASPERSIO].timer != -1) /* �A�X�y���V�I���� */ + if (type != SC_ASPERSIO && sc_data[SC_ASPERSIO].timer != -1) /* アスペルシオ解除 */ skill_status_change_end (bl, SC_ASPERSIO, -1); - if (type != SC_FLAMELAUNCHER && sc_data[SC_FLAMELAUNCHER].timer != -1) /* �t���C�������`������ */ + if (type != SC_FLAMELAUNCHER && sc_data[SC_FLAMELAUNCHER].timer != -1) /* フレイムランチャ解除 */ skill_status_change_end (bl, SC_FLAMELAUNCHER, -1); - if (type != SC_FROSTWEAPON && sc_data[SC_FROSTWEAPON].timer != -1) /* �t���X�g�E�F�|������ */ + if (type != SC_FROSTWEAPON && sc_data[SC_FROSTWEAPON].timer != -1) /* フロストウェポン解除 */ skill_status_change_end (bl, SC_FROSTWEAPON, -1); - if (type != SC_LIGHTNINGLOADER && sc_data[SC_LIGHTNINGLOADER].timer != -1) /* ���C�g�j���O���[�_�[���� */ + if (type != SC_LIGHTNINGLOADER && sc_data[SC_LIGHTNINGLOADER].timer != -1) /* ライトニングローダー解除 */ skill_status_change_end (bl, SC_LIGHTNINGLOADER, -1); - if (type != SC_SEISMICWEAPON && sc_data[SC_SEISMICWEAPON].timer != -1) /* �T�C�X�~�b�N�E�F�|������ */ + if (type != SC_SEISMICWEAPON && sc_data[SC_SEISMICWEAPON].timer != -1) /* サイスミックウェポン解除 */ skill_status_change_end (bl, SC_SEISMICWEAPON, -1); return 0; } /*========================================== - * �X�e�[�^�X�ُ�J�n + * ステータス異常開始 *------------------------------------------ */ int skill_status_change_start (struct block_list *bl, int type, int val1, @@ -10050,12 +10050,12 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, return 0; if (SC_STONE <= type && type <= SC_BLIND) - { /* �J�[�h�ɂ��ϐ� */ + { /* カードによる耐性 */ if (sd && sd->reseff[type - SC_STONE] > 0 && MRAND (10000) < sd->reseff[type - SC_STONE]) { if (battle_config.battle_log) - printf ("PC %d skill_sc_start: card�ɂ��ُ�ϐ�����\n", + printf ("PC %d skill_sc_start: cardによる異常耐性発動\n", sd->bl.id); return 0; } @@ -10088,20 +10088,20 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, || race == 6))) && !(flag & 1)) { - /* �{�X�ɂ͌����Ȃ�(�������J�[�h�ɂ����ʂ͓K�p�����) */ + /* ボスには効かない(ただしカードによる効果は適用される) */ return 0; } if (type == SC_FREEZE || type == SC_STAN || type == SC_SLEEP) battle_stopwalking (bl, 1); if (sc_data[type].timer != -1) - { /* ���łɓ����ُ�ɂȂ��Ă���ꍇ�^�C�}���� */ + { /* すでに同じ異常になっている場合タイマ解除 */ if (sc_data[type].val1 > val1 && type != SC_COMBO && type != SC_DANCING && type != SC_DEVOTION && type != SC_SPEEDPOTION0 && type != SC_SPEEDPOTION1 && type != SC_SPEEDPOTION2 && type != SC_ATKPOT && type != SC_MATKPOT) // added atk and matk potions [Valaris] return 0; if (type >= SC_STAN && type <= SC_BLIND) - return 0; /* �p���������ł��Ȃ���Ԉُ�ł��鎞�͏�Ԉُ���s��Ȃ� */ + return 0; /* 継ぎ足しができない状態異常である時は状態異常を行わない */ if (type == SC_GRAFFITI) - { //�ُ풆�ɂ�����x��Ԉُ�ɂȂ������ɉ������Ă���ēx������ + { //異常中にもう一度状態異常になった時に解除してから再度かかる skill_status_change_end (bl, type, -1); } else @@ -10113,20 +10113,20 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, } switch (type) - { /* �ُ�̎�ނ��Ƃ̏��� */ - case SC_PROVOKE: /* �v���{�b�N */ + { /* 異常の種類ごとの処理 */ + case SC_PROVOKE: /* プロボック */ calc_flag = 1; if (tick <= 0) - tick = 1000; /* (�I�[�g�o�[�T�[�N) */ + tick = 1000; /* (オートバーサーク) */ break; - case SC_ENDURE: /* �C���f���A */ + case SC_ENDURE: /* インデュア */ if (tick <= 0) tick = 1000 * 60; break; - case SC_CONCENTRATE: /* �W���͌��� */ + case SC_CONCENTRATE: /* 集中力向上 */ calc_flag = 1; break; - case SC_BLESSING: /* �u���b�V���O */ + case SC_BLESSING: /* ブレッシング */ { if (bl->type == BL_PC || (!undead_flag && race != 6)) { @@ -10139,22 +10139,22 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, calc_flag = 1; } break; - case SC_ANGELUS: /* �A���[���X */ + case SC_ANGELUS: /* アンゼルス */ calc_flag = 1; break; - case SC_INCREASEAGI: /* ���x�㏸ */ + case SC_INCREASEAGI: /* 速度上昇 */ calc_flag = 1; if (sc_data[SC_DECREASEAGI].timer != -1) skill_status_change_end (bl, SC_DECREASEAGI, -1); - if (sc_data[SC_WINDWALK].timer != -1) /* �E�C���h�E�H�[�N */ + if (sc_data[SC_WINDWALK].timer != -1) /* ウインドウォーク */ skill_status_change_end (bl, SC_WINDWALK, -1); break; - case SC_DECREASEAGI: /* ���x���� */ + case SC_DECREASEAGI: /* 速度減少 */ calc_flag = 1; if (sc_data[SC_INCREASEAGI].timer != -1) skill_status_change_end (bl, SC_INCREASEAGI, -1); break; - case SC_SIGNUMCRUCIS: /* �V�O�i���N���V�X */ + case SC_SIGNUMCRUCIS: /* シグナムクルシス */ calc_flag = 1; // val2 = 14 + val1; val2 = 10 + val1 * 2; @@ -10169,51 +10169,51 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, *opt3 |= 1; calc_flag = 1; break; - case SC_ADRENALINE: /* �A�h���i�������b�V�� */ + case SC_ADRENALINE: /* アドレナリンラッシュ */ calc_flag = 1; break; - case SC_WEAPONPERFECTION: /* �E�F�|���p�[�t�F�N�V���� */ + case SC_WEAPONPERFECTION: /* ウェポンパーフェクション */ if (battle_config.party_skill_penaly && !val2) tick /= 5; break; - case SC_OVERTHRUST: /* �I�[�o�[�X���X�g */ + case SC_OVERTHRUST: /* オーバースラスト */ *opt3 |= 2; if (battle_config.party_skill_penaly && !val2) tick /= 10; break; - case SC_MAXIMIZEPOWER: /* �}�L�V�}�C�Y�p���[(SP��1���鎞��,val2�ɂ�) */ + case SC_MAXIMIZEPOWER: /* マキシマイズパワー(SPが1減る時間,val2にも) */ if (bl->type == BL_PC) val2 = tick; else tick = 5000 * val1; break; - case SC_ENCPOISON: /* �G���`�����g�|�C�Y�� */ + case SC_ENCPOISON: /* エンチャントポイズン */ calc_flag = 1; - val2 = (((val1 - 1) / 2) + 3) * 100; /* �ŕt�^�m�� */ + val2 = (((val1 - 1) / 2) + 3) * 100; /* 毒付与確率 */ skill_encchant_eremental_end (bl, SC_ENCPOISON); break; - case SC_POISONREACT: /* �|�C�Y�����A�N�g */ + case SC_POISONREACT: /* ポイズンリアクト */ break; - case SC_IMPOSITIO: /* �C���|�V�e�B�I�}�k�X */ + case SC_IMPOSITIO: /* インポシティオマヌス */ calc_flag = 1; break; - case SC_ASPERSIO: /* �A�X�y���V�I */ + case SC_ASPERSIO: /* アスペルシオ */ skill_encchant_eremental_end (bl, SC_ASPERSIO); break; - case SC_SUFFRAGIUM: /* �T�t���M�� */ - case SC_BENEDICTIO: /* ���� */ - case SC_MAGNIFICAT: /* �}�O�j�t�B�J�[�g */ - case SC_AETERNA: /* �G�[�e���i */ + case SC_SUFFRAGIUM: /* サフラギム */ + case SC_BENEDICTIO: /* 聖体 */ + case SC_MAGNIFICAT: /* マグニフィカート */ + case SC_AETERNA: /* エーテルナ */ break; - case SC_ENERGYCOAT: /* �G�i�W�[�R�[�g */ + case SC_ENERGYCOAT: /* エナジーコート */ *opt3 |= 4; break; case SC_MAGICROD: val2 = val1 * 20; break; - case SC_KYRIE: /* �L���G�G���C�\�� */ - val2 = battle_get_max_hp (bl) * (val1 * 2 + 10) / 100; /* �ϋv�x */ - val3 = (val1 / 2 + 5); /* �� */ + case SC_KYRIE: /* キリエエレイソン */ + val2 = battle_get_max_hp (bl) * (val1 * 2 + 10) / 100; /* 耐久度 */ + val3 = (val1 / 2 + 5); /* 回数 */ // -- moonsoul (added to undo assumptio status if target has it) if (sc_data[SC_ASSUMPTIO].timer != -1) skill_status_change_end (bl, SC_ASSUMPTIO, -1); @@ -10221,20 +10221,20 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, case SC_MINDBREAKER: calc_flag = 1; if (tick <= 0) - tick = 1000; /* (�I�[�g�o�[�T�[�N) */ - case SC_GLORIA: /* �O�����A */ + tick = 1000; /* (オートバーサーク) */ + case SC_GLORIA: /* グロリア */ calc_flag = 1; break; - case SC_LOUD: /* ���E�h�{�C�X */ + case SC_LOUD: /* ラウドボイス */ calc_flag = 1; break; - case SC_TRICKDEAD: /* ���ӂ� */ + case SC_TRICKDEAD: /* 死んだふり */ break; - case SC_QUAGMIRE: /* �N�@�O�}�C�A */ + case SC_QUAGMIRE: /* クァグマイア */ calc_flag = 1; - if (sc_data[SC_CONCENTRATE].timer != -1) /* �W���͌������ */ + if (sc_data[SC_CONCENTRATE].timer != -1) /* 集中力向上解除 */ skill_status_change_end (bl, SC_CONCENTRATE, -1); - if (sc_data[SC_INCREASEAGI].timer != -1) /* ���x�㏸���� */ + if (sc_data[SC_INCREASEAGI].timer != -1) /* 速度上昇解除 */ skill_status_change_end (bl, SC_INCREASEAGI, -1); if (sc_data[SC_TWOHANDQUICKEN].timer != -1) skill_status_change_end (bl, SC_TWOHANDQUICKEN, -1); @@ -10244,29 +10244,29 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, skill_status_change_end (bl, SC_ADRENALINE, -1); if (sc_data[SC_LOUD].timer != -1) skill_status_change_end (bl, SC_LOUD, -1); - if (sc_data[SC_TRUESIGHT].timer != -1) /* �g�D���[�T�C�g */ + if (sc_data[SC_TRUESIGHT].timer != -1) /* トゥルーサイト */ skill_status_change_end (bl, SC_TRUESIGHT, -1); - if (sc_data[SC_WINDWALK].timer != -1) /* �E�C���h�E�H�[�N */ + if (sc_data[SC_WINDWALK].timer != -1) /* ウインドウォーク */ skill_status_change_end (bl, SC_WINDWALK, -1); - if (sc_data[SC_CARTBOOST].timer != -1) /* �J�[�g�u�[�X�g */ + if (sc_data[SC_CARTBOOST].timer != -1) /* カートブースト */ skill_status_change_end (bl, SC_CARTBOOST, -1); break; - case SC_FLAMELAUNCHER: /* �t���[�������`���[ */ + case SC_FLAMELAUNCHER: /* フレームランチャー */ skill_encchant_eremental_end (bl, SC_FLAMELAUNCHER); break; - case SC_FROSTWEAPON: /* �t���X�g�E�F�|�� */ + case SC_FROSTWEAPON: /* フロストウェポン */ skill_encchant_eremental_end (bl, SC_FROSTWEAPON); break; - case SC_LIGHTNINGLOADER: /* ���C�g�j���O���[�_�[ */ + case SC_LIGHTNINGLOADER: /* ライトニングローダー */ skill_encchant_eremental_end (bl, SC_LIGHTNINGLOADER); break; - case SC_SEISMICWEAPON: /* �T�C�Y�~�b�N�E�F�|�� */ + case SC_SEISMICWEAPON: /* サイズミックウェポン */ skill_encchant_eremental_end (bl, SC_SEISMICWEAPON); break; - case SC_DEVOTION: /* �f�B�{�[�V���� */ + case SC_DEVOTION: /* ディボーション */ calc_flag = 1; break; - case SC_PROVIDENCE: /* �v�����B�f���X */ + case SC_PROVIDENCE: /* プロヴィデンス */ calc_flag = 1; val2 = val1 * 5; break; @@ -10283,7 +10283,7 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, case SC_CP_HELM: break; - case SC_AUTOSPELL: /* �I�[�g�X�y�� */ + case SC_AUTOSPELL: /* オートスペル */ val4 = 5 + val1 * 2; break; @@ -10315,72 +10315,72 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, 3 ? 17 : (val1 == 2 ? 14 : 10))); break; - case SC_SPEARSQUICKEN: /* �X�s�A�N�C�b�P�� */ + case SC_SPEARSQUICKEN: /* スピアクイッケン */ calc_flag = 1; val2 = 20 + val1; *opt3 |= 1; break; case SC_COMBO: break; - case SC_BLADESTOP_WAIT: /* ���n���(�҂�) */ + case SC_BLADESTOP_WAIT: /* 白刃取り(待ち) */ break; - case SC_BLADESTOP: /* ���n��� */ + case SC_BLADESTOP: /* 白刃取り */ if (val2 == 2) clif_bladestop ((struct block_list *) val3, (struct block_list *) val4, 1); *opt3 |= 32; break; - case SC_LULLABY: /* �q��S */ + case SC_LULLABY: /* 子守唄 */ val2 = 11; break; case SC_RICHMANKIM: break; - case SC_ETERNALCHAOS: /* �G�^�[�i���J�I�X */ + case SC_ETERNALCHAOS: /* エターナルカオス */ calc_flag = 1; break; - case SC_DRUMBATTLE: /* �푾�ۂ̋��� */ + case SC_DRUMBATTLE: /* 戦太鼓の響き */ calc_flag = 1; val2 = (val1 + 1) * 25; val3 = (val1 + 1) * 2; break; - case SC_NIBELUNGEN: /* �j�[�x�����O�̎w�� */ + case SC_NIBELUNGEN: /* ニーベルングの指輪 */ calc_flag = 1; val2 = (val1 + 2) * 50; val3 = (val1 + 2) * 25; break; - case SC_ROKISWEIL: /* ���L�̋��� */ + case SC_ROKISWEIL: /* ロキの叫び */ break; - case SC_INTOABYSS: /* �[���̒��� */ + case SC_INTOABYSS: /* 深淵の中に */ break; - case SC_SIEGFRIED: /* �s���g�̃W�[�N�t���[�h */ + case SC_SIEGFRIED: /* 不死身のジークフリード */ calc_flag = 1; val2 = 40 + val1 * 5; val3 = val1 * 10; break; - case SC_DISSONANCE: /* �s���a�� */ + case SC_DISSONANCE: /* 不協和音 */ val2 = 10; break; - case SC_WHISTLE: /* ���J */ + case SC_WHISTLE: /* 口笛 */ calc_flag = 1; break; - case SC_ASSNCROS: /* �[�z�̃A�T�V���N���X */ + case SC_ASSNCROS: /* 夕陽のアサシンクロス */ calc_flag = 1; break; - case SC_POEMBRAGI: /* �u���M�̎� */ + case SC_POEMBRAGI: /* ブラギの詩 */ break; - case SC_APPLEIDUN: /* �C�h�D���̗ь� */ + case SC_APPLEIDUN: /* イドゥンの林檎 */ calc_flag = 1; break; - case SC_UGLYDANCE: /* ��������ȃ_���X */ + case SC_UGLYDANCE: /* 自分勝手なダンス */ val2 = 10; break; - case SC_HUMMING: /* �n�~���O */ + case SC_HUMMING: /* ハミング */ calc_flag = 1; break; - case SC_DONTFORGETME: /* ����Y��Ȃ��� */ + case SC_DONTFORGETME: /* 私を忘れないで */ calc_flag = 1; - if (sc_data[SC_INCREASEAGI].timer != -1) /* ���x�㏸���� */ + if (sc_data[SC_INCREASEAGI].timer != -1) /* 速度上昇解除 */ skill_status_change_end (bl, SC_INCREASEAGI, -1); if (sc_data[SC_TWOHANDQUICKEN].timer != -1) skill_status_change_end (bl, SC_TWOHANDQUICKEN, -1); @@ -10390,41 +10390,41 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, skill_status_change_end (bl, SC_ADRENALINE, -1); if (sc_data[SC_ASSNCROS].timer != -1) skill_status_change_end (bl, SC_ASSNCROS, -1); - if (sc_data[SC_TRUESIGHT].timer != -1) /* �g�D���[�T�C�g */ + if (sc_data[SC_TRUESIGHT].timer != -1) /* トゥルーサイト */ skill_status_change_end (bl, SC_TRUESIGHT, -1); - if (sc_data[SC_WINDWALK].timer != -1) /* �E�C���h�E�H�[�N */ + if (sc_data[SC_WINDWALK].timer != -1) /* ウインドウォーク */ skill_status_change_end (bl, SC_WINDWALK, -1); - if (sc_data[SC_CARTBOOST].timer != -1) /* �J�[�g�u�[�X�g */ + if (sc_data[SC_CARTBOOST].timer != -1) /* カートブースト */ skill_status_change_end (bl, SC_CARTBOOST, -1); break; - case SC_FORTUNE: /* �K�^�̃L�X */ + case SC_FORTUNE: /* 幸運のキス */ calc_flag = 1; break; - case SC_SERVICE4U: /* �T�[�r�X�t�H�[���[ */ + case SC_SERVICE4U: /* サービスフォーユー */ calc_flag = 1; break; - case SC_DANCING: /* �_���X/���t�� */ + case SC_DANCING: /* ダンス/演奏中 */ calc_flag = 1; val3 = tick / 1000; tick = 1000; break; - case SC_EXPLOSIONSPIRITS: // �����g�� + case SC_EXPLOSIONSPIRITS: // 爆裂波動 calc_flag = 1; val2 = 75 + 25 * val1; *opt3 |= 8; break; - case SC_STEELBODY: // ���� + case SC_STEELBODY: // 金剛 calc_flag = 1; *opt3 |= 16; break; - case SC_EXTREMITYFIST: /* ���C���e���� */ + case SC_EXTREMITYFIST: /* 阿修羅覇凰拳 */ break; case SC_AUTOCOUNTER: val3 = val4 = 0; break; - case SC_SPEEDPOTION0: /* �����|�[�V���� */ + case SC_SPEEDPOTION0: /* 増速ポーション */ *opt2 |= 0x20; case SC_SPEEDPOTION1: case SC_SPEEDPOTION2: @@ -10440,7 +10440,7 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, calc_flag = 1; tick = 1000 * tick; break; - case SC_WEDDING: //�����p(�����ߏւɂȂ��ĕ����̂��x���Ƃ�) + case SC_WEDDING: //結婚用(結婚衣裳になって歩くのが遅いとか) { time_t timer; @@ -10450,7 +10450,7 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, val2 = time (&timer); } break; - case SC_NOCHAT: //�`���b�g�֎~��� + case SC_NOCHAT: //チャット禁止状態 { time_t timer; @@ -10463,7 +10463,7 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, updateflag = SP_MANNER; } break; - case SC_SELFDESTRUCTION: //���� + case SC_SELFDESTRUCTION: //自爆 clif_skillcasting (bl, bl->id, bl->id, 0, 0, 331, skill_get_time (val2, val1)); val3 = tick / 1000; @@ -10471,7 +10471,7 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, break; /* option1 */ - case SC_STONE: /* �Ή� */ + case SC_STONE: /* 石化 */ if (!(flag & 2)) { int sc_def = battle_get_mdef (bl) * 200; @@ -10483,23 +10483,23 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, tick = 5000; val2 = 1; break; - case SC_SLEEP: /* ���� */ + case SC_SLEEP: /* 睡眠 */ if (!(flag & 2)) { // int sc_def = 100 - (battle_get_int(bl) + battle_get_luk(bl)/3); // tick = tick * sc_def / 100; // if(tick < 1000) tick = 1000; - tick = 30000; //�����̓X�e�[�^�X�ϐ��Ɋւ�炸30�b + tick = 30000; //睡眠はステータス耐性に関わらず30秒 } break; - case SC_FREEZE: /* ���� */ + case SC_FREEZE: /* 凍結 */ if (!(flag & 2)) { int sc_def = 100 - battle_get_mdef (bl); tick = tick * sc_def / 100; } break; - case SC_STAN: /* �X�^���ival2�Ƀ~���b�Z�b�g�j */ + case SC_STAN: /* スタン(val2にミリ秒セット) */ if (!(flag & 2)) { int sc_def = @@ -10509,7 +10509,7 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, break; /* option2 */ - case SC_POISON: /* �� */ + case SC_POISON: /* 毒 */ calc_flag = 1; if (!(flag & 2)) { @@ -10522,14 +10522,14 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, val3 = 1; tick = 1000; break; - case SC_SILENCE: /* ���فi���b�N�X�f�r�[�i�j */ + case SC_SILENCE: /* 沈黙(レックスデビーナ) */ if (!(flag & 2)) { int sc_def = 100 - battle_get_vit (bl); tick = tick * sc_def / 100; } break; - case SC_BLIND: /* �Í� */ + case SC_BLIND: /* 暗黒 */ calc_flag = 1; if (!(flag & 2)) { @@ -10548,47 +10548,47 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, break; /* option */ - case SC_HIDING: /* �n�C�f�B���O */ + case SC_HIDING: /* ハイディング */ calc_flag = 1; if (bl->type == BL_PC) { - val2 = tick / 1000; /* �������� */ + val2 = tick / 1000; /* 持続時間 */ tick = 1000; } break; case SC_CHASEWALK: - case SC_CLOAKING: /* �N���[�L���O */ + case SC_CLOAKING: /* クローキング */ if (bl->type == BL_PC) val2 = tick; else tick = 5000 * val1; break; - case SC_SIGHT: /* �T�C�g/���A�t */ + case SC_SIGHT: /* サイト/ルアフ */ case SC_RUWACH: val2 = tick / 250; tick = 10; break; - /* �Z�[�t�e�B�E�H�[���A�j���[�} */ + /* セーフティウォール、ニューマ */ case SC_SAFETYWALL: case SC_PNEUMA: tick = ((struct skill_unit *) val2)->group->limit; break; - /* �A���N�� */ + /* アンクル */ case SC_ANKLE: break; - /* �E�H�[�^�[�{�[�� */ + /* ウォーターボール */ case SC_WATERBALL: tick = 150; - if (val1 > 5) //���x����5�ȏ�̏ꍇ��25���ɐ���(1���ڂ͂��łɑł��Ă�̂�-1) + if (val1 > 5) //レベルが5以上の場合は25発に制限(1発目はすでに打ってるので-1) val3 = 5 * 5 - 1; else val3 = (val1 | 1) * (val1 | 1) - 1; break; - /* �X�L������Ȃ�/���ԂɊW���Ȃ� */ + /* スキルじゃない/時間に関係しない */ case SC_RIDING: calc_flag = 1; tick = 600 * 1000; @@ -10621,25 +10621,25 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, case SC_BARRIER: case SC_HALLUCINATION: break; - case SC_CONCENTRATION: /* �R���Z���g���[�V���� */ + case SC_CONCENTRATION: /* コンセントレーション */ *opt3 |= 1; calc_flag = 1; break; - case SC_TENSIONRELAX: /* �e���V���������b�N�X */ + case SC_TENSIONRELAX: /* テンションリラックス */ calc_flag = 1; if (bl->type == BL_PC) { tick = 10000; } break; - case SC_AURABLADE: /* �I�[���u���[�h */ - case SC_PARRYING: /* �p���C���O */ + case SC_AURABLADE: /* オーラブレード */ + case SC_PARRYING: /* パリイング */ // case SC_ASSUMPTIO: /* */ - case SC_HEADCRUSH: /* �w�b�h�N���b�V�� */ - case SC_JOINTBEAT: /* �W���C���g�r�[�g */ -// case SC_MARIONETTE: /* �}���I�l�b�g�R���g���[�� */ + case SC_HEADCRUSH: /* ヘッドクラッシュ */ + case SC_JOINTBEAT: /* ジョイントビート */ +// case SC_MARIONETTE: /* マリオネットコントロール */ - //�Ƃ肠�����蔲�� + //とりあえず手抜き break; // -- moonsoul (for new upper class related skill status effects) @@ -10667,41 +10667,41 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, skill_status_change_end(bl,SC_KYRIE,-1); break; */ - case SC_WINDWALK: /* �E�C���h�E�H�[�N */ + case SC_WINDWALK: /* ウインドウォーク */ calc_flag = 1; - val2 = (val1 / 2); //Flee�㏸�� + val2 = (val1 / 2); //Flee上昇率 break; - case SC_BERSERK: /* �o�[�T�[�N */ + case SC_BERSERK: /* バーサーク */ if (sd) { sd->status.sp = 0; clif_updatestatus (sd, SP_SP); - clif_status_change (bl, SC_INCREASEAGI, 1); /* �A�C�R���\�� */ + clif_status_change (bl, SC_INCREASEAGI, 1); /* アイコン表示 */ } *opt3 |= 128; tick = 1000; calc_flag = 1; break; - case SC_ASSUMPTIO: /* �A�X���v�e�B�I */ + case SC_ASSUMPTIO: /* アスムプティオ */ *opt3 |= 2048; break; - case SC_MARIONETTE: /* �}���I�l�b�g�R���g���[�� */ + case SC_MARIONETTE: /* マリオネットコントロール */ *opt3 |= 1024; break; - case SC_MELTDOWN: /* �����g�_�E�� */ - case SC_CARTBOOST: /* �J�[�g�u�[�X�g */ - case SC_TRUESIGHT: /* �g�D���[�T�C�g */ - case SC_SPIDERWEB: /* �X�p�C�_�[�E�F�b�u */ - case SC_MAGICPOWER: /* ���@�͑��� */ + case SC_MELTDOWN: /* メルトダウン */ + case SC_CARTBOOST: /* カートブースト */ + case SC_TRUESIGHT: /* トゥルーサイト */ + case SC_SPIDERWEB: /* スパイダーウェッブ */ + case SC_MAGICPOWER: /* 魔法力増幅 */ calc_flag = 1; break; - case SC_REJECTSWORD: /* ���W�F�N�g�\�[�h */ - val2 = 3; //3��U���˕Ԃ� + case SC_REJECTSWORD: /* リジェクトソード */ + val2 = 3; //3回攻撃を跳ね返す break; - case SC_MEMORIZE: /* �������C�Y */ - val2 = 3; //3��r����1/3�ɂ��� + case SC_MEMORIZE: /* メモライズ */ + val2 = 3; //3回詠唱を1/3にする break; - case SC_GRAFFITI: /* �O���t�B�e�B */ + case SC_GRAFFITI: /* グラフィティ */ { struct skill_unit_group *sg = skill_unitsetting (bl, RG_GRAFFITI, val1, val2, val3, 0); @@ -10711,7 +10711,7 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, break; case SC_HASTE: calc_flag = 1; - case SC_SPLASHER: /* �x�i���X�v���b�V���[ */ + case SC_SPLASHER: /* ベナムスプラッシャー */ case SC_PHYS_SHIELD: case SC_MBARRIER: case SC_HALT_REGENERATE: @@ -10727,18 +10727,18 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, } if (bl->type == BL_PC && type < SC_SENDMAX) - clif_status_change (bl, type, 1); /* �A�C�R���\�� */ + clif_status_change (bl, type, 1); /* アイコン表示 */ - /* option�̕ύX */ + /* optionの変更 */ switch (type) { case SC_STONE: case SC_FREEZE: case SC_STAN: case SC_SLEEP: - battle_stopattack (bl); /* �U����~ */ - skill_stop_dancing (bl, 0); /* ���t/�_���X�̒��f */ - { /* �����Ɋ|����Ȃ��X�e�[�^�X�ُ������ */ + battle_stopattack (bl); /* 攻撃停止 */ + skill_stop_dancing (bl, 0); /* 演奏/ダンスの中断 */ + { /* 同時に掛からないステータス異常を解除 */ int i; for (i = SC_STONE; i <= SC_SLEEP; i++) { @@ -10782,12 +10782,12 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, break; case SC_HIDING: case SC_CLOAKING: - battle_stopattack (bl); /* �U����~ */ + battle_stopattack (bl); /* 攻撃停止 */ *option |= ((type == SC_HIDING) ? 2 : 4); opt_flag = 1; break; case SC_CHASEWALK: - battle_stopattack (bl); /* �U����~ */ + battle_stopattack (bl); /* 攻撃停止 */ *option |= 16388; opt_flag = 1; break; @@ -10804,10 +10804,10 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, opt_flag = 1; } - if (opt_flag) /* option�̕ύX */ + if (opt_flag) /* optionの変更 */ clif_changeoption (bl); - (*sc_count)++; /* �X�e�[�^�X�ُ�̐� */ + (*sc_count)++; /* ステータス異常の数 */ sc_data[type].val1 = val1; sc_data[type].val2 = val2; @@ -10819,22 +10819,22 @@ int skill_status_effect (struct block_list *bl, int type, int val1, int val2, sc_data[type].spell_invocation = spell_invocation; - /* �^�C�}�[�ݒ� */ + /* タイマー設定 */ sc_data[type].timer = add_timer (gettick () + tick, skill_status_change_timer, bl->id, type); if (bl->type == BL_PC && calc_flag) - pc_calcstatus (sd, 0); /* �X�e�[�^�X�Čv�Z */ + pc_calcstatus (sd, 0); /* ステータス再計算 */ if (bl->type == BL_PC && updateflag) - clif_updatestatus (sd, updateflag); /* �X�e�[�^�X���N���C�A���g�ɑ��� */ + clif_updatestatus (sd, updateflag); /* ステータスをクライアントに送る */ return 0; } /*========================================== - * �X�e�[�^�X�ُ�S���� + * ステータス異常全解除 *------------------------------------------ */ int skill_status_change_clear (struct block_list *bl, int type) @@ -10856,7 +10856,7 @@ int skill_status_change_clear (struct block_list *bl, int type) for (i = 0; i < MAX_STATUSCHANGE; i++) { if (sc_data[i].timer != -1) - { /* �ُ킪����Ȃ�^�C�}�[���폜���� */ + { /* 異常があるならタイマーを削除する */ /* delete_timer(sc_data[i].timer, skill_status_change_timer); sc_data[i].timer = -1; @@ -10883,7 +10883,7 @@ int skill_status_change_clear (struct block_list *bl, int type) return 0; } -/* �N���[�L���O�����i����Ɉړ��s�\�n�т����邩�j */ +/* クローキング検査(周りに移動不可能地帯があるか) */ int skill_check_cloaking (struct block_list *bl) { struct map_session_data *sd = NULL; @@ -10908,21 +10908,21 @@ int skill_check_cloaking (struct block_list *bl) if (end) { skill_status_change_end (bl, SC_CLOAKING, -1); - *battle_get_option (bl) &= ~4; /* �O�̂��߂̏��� */ + *battle_get_option (bl) &= ~4; /* 念のための処理 */ } return end; } /* *---------------------------------------------------------------------------- - * �X�L�����j�b�g + * スキルユニット *---------------------------------------------------------------------------- */ /*========================================== - * ���t/�_���X�X�L�����ǂ������� - * ���� �X�L��ID - * �߂� �_���X����Ȃ�=0 ���t=2 ����ȊO�̃_���X=1 + * 演奏/ダンススキルかどうか判定 + * 引数 スキルID + * 戻り ダンスじゃない=0 合奏=2 それ以外のダンス=1 *------------------------------------------ */ int skill_is_danceskill (int id) @@ -10930,30 +10930,30 @@ int skill_is_danceskill (int id) int i; switch (id) { - case BD_LULLABY: /* �q��� */ - case BD_RICHMANKIM: /* �j�����h�̉� */ - case BD_ETERNALCHAOS: /* �i���̍��� */ - case BD_DRUMBATTLEFIELD: /* �푾�ۂ̋��� */ - case BD_RINGNIBELUNGEN: /* �j�[�x�����O�̎w�� */ - case BD_ROKISWEIL: /* ���L�̋��� */ - case BD_INTOABYSS: /* �[���̒��� */ - case BD_SIEGFRIED: /* �s���g�̃W�[�N�t���[�h */ - case BD_RAGNAROK: /* �_�X�̉��� */ - case CG_MOONLIT: /* ������̐�ɗ�����Ԃт� */ + case BD_LULLABY: /* 子守歌 */ + case BD_RICHMANKIM: /* ニヨルドの宴 */ + case BD_ETERNALCHAOS: /* 永遠の混沌 */ + case BD_DRUMBATTLEFIELD: /* 戦太鼓の響き */ + case BD_RINGNIBELUNGEN: /* ニーベルングの指輪 */ + case BD_ROKISWEIL: /* ロキの叫び */ + case BD_INTOABYSS: /* 深淵の中に */ + case BD_SIEGFRIED: /* 不死身のジークフリード */ + case BD_RAGNAROK: /* 神々の黄昏 */ + case CG_MOONLIT: /* 月明りの泉に落ちる花びら */ i = 2; break; - case BA_DISSONANCE: /* �s���a�� */ - case BA_FROSTJOKE: /* �����W���[�N */ - case BA_WHISTLE: /* ���J */ - case BA_ASSASSINCROSS: /* �[�z�̃A�T�V���N���X */ - case BA_POEMBRAGI: /* �u���M�̎� */ - case BA_APPLEIDUN: /* �C�h�D���̗ь� */ - case DC_UGLYDANCE: /* ��������ȃ_���X */ - case DC_SCREAM: /* �X�N���[�� */ - case DC_HUMMING: /* �n�~���O */ - case DC_DONTFORGETME: /* ����Y��Ȃ��Łc */ - case DC_FORTUNEKISS: /* �K�^�̃L�X */ - case DC_SERVICEFORYOU: /* �T�[�r�X�t�H�[���[ */ + case BA_DISSONANCE: /* 不協和音 */ + case BA_FROSTJOKE: /* 寒いジョーク */ + case BA_WHISTLE: /* 口笛 */ + case BA_ASSASSINCROSS: /* 夕陽のアサシンクロス */ + case BA_POEMBRAGI: /* ブラギの詩 */ + case BA_APPLEIDUN: /* イドゥンの林檎 */ + case DC_UGLYDANCE: /* 自分勝手なダンス */ + case DC_SCREAM: /* スクリーム */ + case DC_HUMMING: /* ハミング */ + case DC_DONTFORGETME: /* 私を忘れないで… */ + case DC_FORTUNEKISS: /* 幸運のキス */ + case DC_SERVICEFORYOU: /* サービスフォーユー */ i = 1; break; default: @@ -10963,8 +10963,8 @@ int skill_is_danceskill (int id) } /*========================================== - * ���t/�_���X����߂� - * flag 1�ō��t���Ȃ瑊���Ƀ��j�b�g��C���� + * 演奏/ダンスをやめる + * flag 1で合奏中なら相方にユニットを任せる * *------------------------------------------ */ @@ -10978,45 +10978,45 @@ void skill_stop_dancing (struct block_list *src, int flag) sc_data = battle_get_sc_data (src); if (sc_data && sc_data[SC_DANCING].timer == -1) return; - group = (struct skill_unit_group *) sc_data[SC_DANCING].val2; //�_���X�̃X�L�����j�b�gID��val2�ɓ����Ă� + group = (struct skill_unit_group *) sc_data[SC_DANCING].val2; //ダンスのスキルユニットIDはval2に入ってる if (group && src->type == BL_PC && sc_data && sc_data[SC_DANCING].val4) - { //���t���f - struct map_session_data *dsd = map_id2sd (sc_data[SC_DANCING].val4); //������sd�擾 + { //合奏中断 + struct map_session_data *dsd = map_id2sd (sc_data[SC_DANCING].val4); //相方のsd取得 if (flag) - { //���O�A�E�g�ȂǕЕ��������Ă����t���p������� + { //ログアウトなど片方が落ちても演奏が継続される if (dsd && src->id == group->src_id) - { //�O���[�v�������Ă�PC�������� - group->src_id = sc_data[SC_DANCING].val4; //�����ɃO���[�v��C���� - if (flag & 1) //���O�A�E�g - dsd->sc_data[SC_DANCING].val4 = 0; //�����̑�����0�ɂ��č��t�I�����ʏ�̃_���X��� - if (flag & 2) //�n�G��тȂ� - return; //���t���_���X��Ԃ��I�������Ȃ����X�L�����j�b�g�͒u���Ă��ڂ� + { //グループを持ってるPCが落ちる + group->src_id = sc_data[SC_DANCING].val4; //相方にグループを任せる + if (flag & 1) //ログアウト + dsd->sc_data[SC_DANCING].val4 = 0; //相方の相方を0にして合奏終了→通常のダンス状態 + if (flag & 2) //ハエ飛びなど + return; //合奏もダンス状態も終了させない&スキルユニットは置いてけぼり } else if (dsd && dsd->bl.id == group->src_id) - { //�������O���[�v�������Ă���PC��������(�����̓O���[�v�������Ă��Ȃ�) - if (flag & 1) //���O�A�E�g - dsd->sc_data[SC_DANCING].val4 = 0; //�����̑�����0�ɂ��č��t�I�����ʏ�̃_���X��� - if (flag & 2) //�n�G��тȂ� - return; //���t���_���X��Ԃ��I�������Ȃ����X�L�����j�b�g�͒u���Ă��ڂ� - } - skill_status_change_end (src, SC_DANCING, -1); //�����̃X�e�[�^�X���I�������� - //�����ăO���[�v�͏����Ȃ��������Ȃ��̂ŃX�e�[�^�X�v�Z������Ȃ��H + { //相方がグループを持っているPCが落ちる(自分はグループを持っていない) + if (flag & 1) //ログアウト + dsd->sc_data[SC_DANCING].val4 = 0; //相方の相方を0にして合奏終了→通常のダンス状態 + if (flag & 2) //ハエ飛びなど + return; //合奏もダンス状態も終了させない&スキルユニットは置いてけぼり + } + skill_status_change_end (src, SC_DANCING, -1); //自分のステータスを終了させる + //そしてグループは消さない&消さないのでステータス計算もいらない? return; } else { if (dsd && src->id == group->src_id) - { //�O���[�v�������Ă�PC���~�߂� - skill_status_change_end ((struct block_list *) dsd, SC_DANCING, -1); //����̃X�e�[�^�X���I�������� + { //グループを持ってるPCが止める + skill_status_change_end ((struct block_list *) dsd, SC_DANCING, -1); //相手のステータスを終了させる } if (dsd && dsd->bl.id == group->src_id) - { //�������O���[�v�������Ă���PC���~�߂�(�����̓O���[�v�������Ă��Ȃ�) - skill_status_change_end (src, SC_DANCING, -1); //�����̃X�e�[�^�X���I�������� + { //相方がグループを持っているPCが止める(自分はグループを持っていない) + skill_status_change_end (src, SC_DANCING, -1); //自分のステータスを終了させる } } } if (flag & 2 && group && src->type == BL_PC) - { //�n�G�Ŕ�Ƃ��Ƃ��̓��j�b�g����� + { //ハエで飛んだときとかはユニットも飛ぶ struct map_session_data *sd = (struct map_session_data *) src; skill_unit_move_unit_group (group, sd->bl.m, (sd->to_x - sd->bl.x), (sd->to_y - sd->bl.y)); @@ -11028,7 +11028,7 @@ void skill_stop_dancing (struct block_list *src, int flag) } /*========================================== - * �X�L�����j�b�g������ + * スキルユニット初期化 *------------------------------------------ */ struct skill_unit *skill_initunit (struct skill_unit_group *group, int idx, @@ -11058,7 +11058,7 @@ struct skill_unit *skill_initunit (struct skill_unit_group *group, int idx, int skill_unit_timer_sub_ondelete (struct block_list *bl, va_list ap); /*========================================== - * �X�L�����j�b�g�폜 + * スキルユニット削除 *------------------------------------------ */ int skill_delunit (struct skill_unit *unit) @@ -11071,10 +11071,10 @@ int skill_delunit (struct skill_unit *unit) return 0; nullpo_retr (0, group = unit->group); - /* onlimit�C�x���g�Ăяo�� */ + /* onlimitイベント呼び出し */ skill_unit_onlimit (unit, gettick ()); - /* ondelete�C�x���g�Ăяo�� */ + /* ondeleteイベント呼び出し */ range = group->range; map_foreachinarea (skill_unit_timer_sub_ondelete, unit->bl.m, unit->bl.x - range, unit->bl.y - range, @@ -11093,7 +11093,7 @@ int skill_delunit (struct skill_unit *unit) } /*========================================== - * �X�L�����j�b�g�O���[�v������ + * スキルユニットグループ初期化 *------------------------------------------ */ static int skill_unit_group_newid = 10; @@ -11119,7 +11119,7 @@ struct skill_unit_group *skill_initunitgroup (struct block_list *src, } if (list) { - for (i = 0; i < maxsug; i++) /* �Ă�����̌��� */ + for (i = 0; i < maxsug; i++) /* 空いているもの検索 */ if (list[i].group_id == 0) { group = &list[i]; @@ -11127,7 +11127,7 @@ struct skill_unit_group *skill_initunitgroup (struct block_list *src, } if (group == NULL) - { /* �ĂȂ��̂ŌÂ����̌��� */ + { /* 空いてないので古いもの検索 */ int j = 0; unsigned maxdiff = 0, x, tick = gettick (); for (i = 0; i < maxsug; i++) @@ -11179,17 +11179,17 @@ struct skill_unit_group *skill_initunitgroup (struct block_list *src, 0, skill_get_time (skillid, skilllv) + 1000, 0); switch (skillid) - { //���t�X�L���͑������_���X��Ԃɂ��� - case BD_LULLABY: /* �q��� */ - case BD_RICHMANKIM: /* �j�����h�̉� */ - case BD_ETERNALCHAOS: /* �i���̍��� */ - case BD_DRUMBATTLEFIELD: /* �푾�ۂ̋��� */ - case BD_RINGNIBELUNGEN: /* �j�[�x�����O�̎w�� */ - case BD_ROKISWEIL: /* ���L�̋��� */ - case BD_INTOABYSS: /* �[���̒��� */ - case BD_SIEGFRIED: /* �s���g�̃W�[�N�t���[�h */ - case BD_RAGNAROK: /* �_�X�̉��� */ - case CG_MOONLIT: /* ������̐�ɗ�����Ԃт� */ + { //合奏スキルは相方をダンス状態にする + case BD_LULLABY: /* 子守歌 */ + case BD_RICHMANKIM: /* ニヨルドの宴 */ + case BD_ETERNALCHAOS: /* 永遠の混沌 */ + case BD_DRUMBATTLEFIELD: /* 戦太鼓の響き */ + case BD_RINGNIBELUNGEN: /* ニーベルングの指輪 */ + case BD_ROKISWEIL: /* ロキの叫び */ + case BD_INTOABYSS: /* 深淵の中に */ + case BD_SIEGFRIED: /* 不死身のジークフリード */ + case BD_RAGNAROK: /* 神々の黄昏 */ + case CG_MOONLIT: /* 月明りの泉に落ちる花びら */ { int range = 1; int c = 0; @@ -11207,7 +11207,7 @@ struct skill_unit_group *skill_initunitgroup (struct block_list *src, } /*========================================== - * �X�L�����j�b�g�O���[�v�폜 + * スキルユニットグループ削除 *------------------------------------------ */ int skill_delunitgroup (struct skill_unit_group *group) @@ -11221,7 +11221,7 @@ int skill_delunitgroup (struct skill_unit_group *group) src = map_id2bl (group->src_id); if (skill_is_danceskill (group->skill_id)) - { //�_���X�X�L���̓_���X��Ԃ��������� + { //ダンススキルはダンス状態を解除する if (src) skill_status_change_end (src, SC_DANCING, -1); } @@ -11239,7 +11239,7 @@ int skill_delunitgroup (struct skill_unit_group *group) group->valstr = NULL; } - map_freeblock (group->unit); /* free()�̑ւ�� */ + map_freeblock (group->unit); /* free()の替わり */ group->unit = NULL; group->src_id = 0; group->group_id = 0; @@ -11248,7 +11248,7 @@ int skill_delunitgroup (struct skill_unit_group *group) } /*========================================== - * �X�L�����j�b�g�O���[�v�S�폜 + * スキルユニットグループ全削除 *------------------------------------------ */ int skill_clear_unitgroup (struct block_list *src) @@ -11279,7 +11279,7 @@ int skill_clear_unitgroup (struct block_list *src) } /*========================================== - * �X�L�����j�b�g�O���[�v�̔�e��tick���� + * スキルユニットグループの被影響tick検索 *------------------------------------------ */ struct skill_unit_group_tickset *skill_unitgrouptickset_search (struct @@ -11313,7 +11313,7 @@ struct skill_unit_group_tickset *skill_unitgrouptickset_search (struct } /*========================================== - * �X�L�����j�b�g�O���[�v�̔�e��tick�폜 + * スキルユニットグループの被影響tick削除 *------------------------------------------ */ int skill_unitgrouptickset_delete (struct block_list *bl, int group_id) @@ -11346,7 +11346,7 @@ int skill_unitgrouptickset_delete (struct block_list *bl, int group_id) } /*========================================== - * �X�L�����j�b�g�^�C�}�[���������p(foreachinarea) + * スキルユニットタイマー発動処理用(foreachinarea) *------------------------------------------ */ int skill_unit_timer_sub_onplace (struct block_list *bl, va_list ap) @@ -11373,7 +11373,7 @@ int skill_unit_timer_sub_onplace (struct block_list *bl, va_list ap) } /*========================================== - * �X�L�����j�b�g�^�C�}�[�폜�����p(foreachinarea) + * スキルユニットタイマー削除処理用(foreachinarea) *------------------------------------------ */ int skill_unit_timer_sub_ondelete (struct block_list *bl, va_list ap) @@ -11400,7 +11400,7 @@ int skill_unit_timer_sub_ondelete (struct block_list *bl, va_list ap) } /*========================================== - * �X�L�����j�b�g�^�C�}�[�����p(foreachobject) + * スキルユニットタイマー処理用(foreachobject) *------------------------------------------ */ int skill_unit_timer_sub (struct block_list *bl, va_list ap) @@ -11421,7 +11421,7 @@ int skill_unit_timer_sub (struct block_list *bl, va_list ap) range = (unit->range != 0) ? unit->range : group->range; - /* onplace�C�x���g�Ăяo�� */ + /* onplaceイベント呼び出し */ if (unit->alive && unit->range >= 0) { map_foreachinarea (skill_unit_timer_sub_onplace, bl->m, @@ -11436,7 +11436,7 @@ int skill_unit_timer_sub (struct block_list *bl, va_list ap) group->val2++; } } - /* ���Ԑ�폜 */ + /* 時間切れ削除 */ if (unit->alive && (DIFF_TICK (tick, group->tick) >= group->limit || DIFF_TICK (tick, group->tick) >= unit->limit)) @@ -11444,21 +11444,21 @@ int skill_unit_timer_sub (struct block_list *bl, va_list ap) switch (group->unit_id) { - case 0x8f: /* �u���X�g�}�C�� */ + case 0x8f: /* ブラストマイン */ group->unit_id = 0x8c; clif_changelook (bl, LOOK_BASE, group->unit_id); group->limit = DIFF_TICK (tick + 1500, group->tick); unit->limit = DIFF_TICK (tick + 1500, group->tick); break; - case 0x90: /* �X�L�b�h�g���b�v */ - case 0x91: /* �A���N���X�l�A */ - case 0x93: /* �����h�}�C�� */ - case 0x94: /* �V���b�N�E�F�[�u�g���b�v */ - case 0x95: /* �T���h�}�� */ - case 0x96: /* �t���b�V���[ */ - case 0x97: /* �t���[�W���O�g���b�v */ - case 0x98: /* �N���C���A�[�g���b�v */ - case 0x99: /* �g�[�L�[�{�b�N�X */ + case 0x90: /* スキッドトラップ */ + case 0x91: /* アンクルスネア */ + case 0x93: /* ランドマイン */ + case 0x94: /* ショックウェーブトラップ */ + case 0x95: /* サンドマン */ + case 0x96: /* フラッシャー */ + case 0x97: /* フリージングトラップ */ + case 0x98: /* クレイモアートラップ */ + case 0x99: /* トーキーボックス */ { struct block_list *src = map_id2bl (group->src_id); if (group->unit_id == 0x91 && group->val2); @@ -11470,7 +11470,7 @@ int skill_unit_timer_sub (struct block_list *bl, va_list ap) memset (&item_tmp, 0, sizeof (item_tmp)); item_tmp.nameid = 1065; item_tmp.identify = 1; - map_addflooritem (&item_tmp, 1, bl->m, bl->x, bl->y, NULL, NULL, NULL, 0); // 㩕Ԋ� + map_addflooritem (&item_tmp, 1, bl->m, bl->x, bl->y, NULL, NULL, NULL, 0); // 罠返還 } } } @@ -11490,7 +11490,7 @@ int skill_unit_timer_sub (struct block_list *bl, va_list ap) } /*========================================== - * �X�L�����j�b�g�^�C�}�[���� + * スキルユニットタイマー処理 *------------------------------------------ */ int skill_unit_timer (int tid, unsigned int tick, int id, int data) @@ -11505,7 +11505,7 @@ int skill_unit_timer (int tid, unsigned int tick, int id, int data) } /*========================================== - * �X�L�����j�b�g�ړ��������p(foreachinarea) + * スキルユニット移動時処理用(foreachinarea) *------------------------------------------ */ int skill_unit_out_all_sub (struct block_list *bl, va_list ap) @@ -11540,7 +11540,7 @@ int skill_unit_out_all_sub (struct block_list *bl, va_list ap) } /*========================================== - * �X�L�����j�b�g�ړ������� + * スキルユニット移動時処理 *------------------------------------------ */ int skill_unit_out_all (struct block_list *bl, unsigned int tick, int range) @@ -11560,7 +11560,7 @@ int skill_unit_out_all (struct block_list *bl, unsigned int tick, int range) } /*========================================== - * �X�L�����j�b�g�ړ��������p(foreachinarea) + * スキルユニット移動時処理用(foreachinarea) *------------------------------------------ */ int skill_unit_move_sub (struct block_list *bl, va_list ap) @@ -11598,7 +11598,7 @@ int skill_unit_move_sub (struct block_list *bl, va_list ap) } /*========================================== - * �X�L�����j�b�g�ړ������� + * スキルユニット移動時処理 *------------------------------------------ */ int skill_unit_move (struct block_list *bl, unsigned int tick, int range) @@ -11618,7 +11618,7 @@ int skill_unit_move (struct block_list *bl, unsigned int tick, int range) } /*========================================== - * �X�L�����j�b�g���̂̈ړ�������(foreachinarea) + * スキルユニット自体の移動時処理(foreachinarea) *------------------------------------------ */ int skill_unit_move_unit_group_sub (struct block_list *bl, va_list ap) @@ -11653,8 +11653,8 @@ int skill_unit_move_unit_group_sub (struct block_list *bl, va_list ap) } /*========================================== - * �X�L�����j�b�g���̂̈ړ������� - * �����̓O���[�v�ƈړ��� + * スキルユニット自体の移動時処理 + * 引数はグループと移動量 *------------------------------------------ */ int skill_unit_move_unit_group (struct skill_unit_group *group, int m, int dx, @@ -11704,14 +11704,14 @@ int skill_unit_move_unit_group (struct skill_unit_group *group, int m, int dx, r_flag = (int *) malloc (sizeof (int) * group->unit_count); s_flag = (int *) malloc (sizeof (int) * group->unit_count); m_flag = (int *) malloc (sizeof (int) * group->unit_count); - memset (r_flag, 0, sizeof (int) * group->unit_count); // �p���t���O - memset (s_flag, 0, sizeof (int) * group->unit_count); // �p���t���O - memset (m_flag, 0, sizeof (int) * group->unit_count); // �p���t���O + memset (r_flag, 0, sizeof (int) * group->unit_count); // 継承フラグ + memset (s_flag, 0, sizeof (int) * group->unit_count); // 継承フラグ + memset (m_flag, 0, sizeof (int) * group->unit_count); // 継承フラグ - //��Ƀt���O��S�����߂� + //先にフラグを全部決める for (i = 0; i < group->unit_count; i++) { - int move_check = 0; // ���Ԃ�t���O + int move_check = 0; // かぶりフラグ unit1 = &group->unit[i]; for (j = 0; j < group->unit_count; j++) { @@ -11719,26 +11719,26 @@ int skill_unit_move_unit_group (struct skill_unit_group *group, int m, int dx, if (unit1->bl.m == m && unit1->bl.x + dx == unit2->bl.x && unit1->bl.y + dy == unit2->bl.y) { - //�ړ���Ƀ��j�b�g�����Ԃ��Ă��� - s_flag[i] = 1; // �ړ��O�̃��j�b�g�i���o�[�̌p���t���Oon - r_flag[j] = 1; // ���Ԃ郆�j�b�g�i���o�[�̎c���t���Oon - move_check = 1; //���j�b�g�����Ԃ����B + //移動先にユニットがかぶってたら + s_flag[i] = 1; // 移動前のユニットナンバーの継承フラグon + r_flag[j] = 1; // かぶるユニットナンバーの残留フラグon + move_check = 1; //ユニットがかぶった。 break; } } - if (!move_check) // ���j�b�g�����Ԃ��ĂȂ������� - m_flag[i] = 1; // �ړ��O���j�b�g�i���o�[�̈ړ��t���Oon + if (!move_check) // ユニットがかぶってなかったら + m_flag[i] = 1; // 移動前ユニットナンバーの移動フラグon } - //�t���O�Ɋ�Â��ă��j�b�g�ړ� + //フラグに基づいてユニット移動 for (i = 0; i < group->unit_count; i++) { unit1 = &group->unit[i]; if (m_flag[i]) - { // �ړ��t���O��on�� + { // 移動フラグがonで if (!r_flag[i]) - { // �c���t���O��off�Ȃ� - //�P���ړ�(range���p���̕K�v����) + { // 残留フラグがoffなら + //単純移動(rangeも継承の必要無し) int range = unit1->range; map_delblock (&unit1->bl); unit1->bl.m = m; @@ -11760,14 +11760,14 @@ int skill_unit_move_unit_group (struct skill_unit_group *group, int m, int dx, } } else - { // �c���t���O��on�Ȃ� - //�j�b�g�ɂȂ�̂ŁA�p���\�ȃ��j�b�g��T�� + { // 残留フラグがonなら + //空ユニットになるので、継承可能なユニットを探す for (j = 0; j < group->unit_count; j++) { unit2 = &group->unit[j]; if (s_flag[j] && !r_flag[j]) { - // �p���ړ�(range�p���t��) + // 継承移動(range継承付き) int range = unit1->range; map_delblock (&unit2->bl); unit2->bl.m = m; @@ -11788,7 +11788,7 @@ int skill_unit_move_unit_group (struct skill_unit_group *group, int m, int dx, unit2->bl.y + range, 0, &unit2->bl, gettick ()); } - s_flag[j] = 0; // �p�����������̂�off + s_flag[j] = 0; // 継承完了したのでoff break; } } @@ -11804,12 +11804,12 @@ int skill_unit_move_unit_group (struct skill_unit_group *group, int m, int dx, } /*---------------------------------------------------------------------------- - * �A�C�e������ + * アイテム合成 *---------------------------------------------------------------------------- */ /*---------------------------------------------------------------------------- - * �������n + * 初期化系 */ static int scan_stat (char *statname) @@ -11837,9 +11837,9 @@ static int scan_stat (char *statname) extern void skill_pool_register (int id); // [Fate] Remember that a certain skill ID belongs to a pool skill /*========================================== - * �X�L���W�t�@�C���ǂݍ��� - * skill_db.txt �X�L���f�[�^ - * skill_cast_db.txt �X�L���̉r�����Ԃƃf�B���C�f�[�^ + * スキル関係ファイル読み込み + * skill_db.txt スキルデータ + * skill_cast_db.txt スキルの詠唱時間とディレイデータ *------------------------------------------ */ int skill_readdb (void) @@ -12285,7 +12285,7 @@ void skill_reload (void) } /*========================================== - * �X�L���W���������� + * スキル関係初期化処理 *------------------------------------------ */ int do_init_skill (void) |