diff options
-rw-r--r-- | Changelog-Trunk.txt | 3 | ||||
-rw-r--r-- | conf-tmpl/battle/party.conf | 3 | ||||
-rw-r--r-- | src/map/battle.c | 5 | ||||
-rw-r--r-- | src/map/battle.h | 1 | ||||
-rw-r--r-- | src/map/party.c | 4 | ||||
-rw-r--r-- | src/map/pc.c | 9 | ||||
-rw-r--r-- | src/map/skill.c | 175 |
7 files changed, 91 insertions, 109 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 85963221f..594ddffe5 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/07/27
+ * Added config setting party_update_interval so you can specify how often
+ the party-mate minidots should be updated (defaults to 1 sec). [Skotlex]
+ * Removed a bunch of broken comments in skill.c [Skotlex]
* Synced the script.c file with as much data as possible from jA's:
[Skotlex]
- A lot of functions were moved around, a bunch of indentation and
diff --git a/conf-tmpl/battle/party.conf b/conf-tmpl/battle/party.conf index f8152e1ce..658bd8297 100644 --- a/conf-tmpl/battle/party.conf +++ b/conf-tmpl/battle/party.conf @@ -30,6 +30,9 @@ // If someone loots, show name in party? (Note 1)
show_steal_in_same_party: no
+// Interval before updating the party-member map mini-dots (milliseconds)
+party_update_interval: 1000
+
// Method used to update party-mate hp-bars:
// 0: Aegis - bar is updated every time HP changes (bandwidth intensive)
// 1: eAthena - bar is updated with the party map dots (up to 1 second delay)
diff --git a/src/map/battle.c b/src/map/battle.c index f9a6a18c5..17779241f 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3518,6 +3518,7 @@ static const struct battle_data_short { { "show_steal_in_same_party", &battle_config.show_steal_in_same_party }, { "party_hp_mode", &battle_config.party_hp_mode }, { "show_party_share_picker", &battle_config.party_show_share_picker }, + { "party_update_interval", &battle_config.party_update_interval }, { "party_item_share_type", &battle_config.party_share_type }, { "mob_ghostring_fix", &battle_config.mob_ghostring_fix }, { "attack_attr_none", &battle_config.attack_attr_none }, @@ -3930,6 +3931,7 @@ void battle_set_defaults() { battle_config.dead_branch_active = 0; battle_config.vending_max_value = 10000000; battle_config.show_steal_in_same_party = 0; + battle_config.party_update_interval = 1000; battle_config.party_share_type = 0; battle_config.party_hp_mode = 0; battle_config.party_show_share_picker = 0; @@ -4171,6 +4173,9 @@ void battle_validate_conf() { if(battle_config.vit_penalty_count < 2) battle_config.vit_penalty_count = 2; + if(battle_config.party_update_interval < 100) + battle_config.party_update_interval = 100; + if(battle_config.guild_exp_limit > 99) battle_config.guild_exp_limit = 99; /* if(battle_config.guild_exp_limit < 0) diff --git a/src/map/battle.h b/src/map/battle.h index 259ae26e1..641bf9927 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -372,6 +372,7 @@ extern struct Battle_Config { unsigned short no_skill_delay;
unsigned short require_glory_guild;
unsigned short idle_no_share;
+ unsigned short party_update_interval;
unsigned short party_even_share_bonus;
unsigned short delay_battle_damage;
unsigned short hide_woe_damage;
diff --git a/src/map/party.c b/src/map/party.c index 309995d9d..dccc1bad7 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -22,8 +22,6 @@ #include "skill.h"
#include "status.h"
-#define PARTY_SEND_XY_INVERVAL 1000 // À•W‚â‚g‚o‘—M‚ÌŠÔŠu
-
static struct dbt* party_db;
static struct party_data* party_cache = NULL; //party in cache for skipping consecutive lookups. [Skotlex]
int party_share_level = 10;
@@ -58,7 +56,7 @@ void do_init_party(void) {
party_db=db_alloc(__FILE__,__LINE__,DB_INT,DB_OPT_RELEASE_DATA,sizeof(int));
add_timer_func_list(party_send_xy_timer,"party_send_xy_timer");
- add_timer_interval(gettick()+PARTY_SEND_XY_INVERVAL,party_send_xy_timer,0,0,PARTY_SEND_XY_INVERVAL);
+ add_timer_interval(gettick()+battle_config.party_update_interval,party_send_xy_timer,0,0,battle_config.party_update_interval);
}
// ŒŸõ
diff --git a/src/map/pc.c b/src/map/pc.c index 730c15d88..5e20aaa4a 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -295,8 +295,6 @@ int pc_setrestartvalue(struct map_session_data *sd,int type) { if ((unsigned int)sd->status.sp < b_status->sp) sd->status.sp = b_status->sp; } - /* removed exp penalty on spawn [Valaris] */ - return 0; } @@ -3178,6 +3176,7 @@ int pc_steal_item(struct map_session_data *sd,struct block_list *bl) } return 1; } + /*========================================== * *------------------------------------------ @@ -3896,7 +3895,7 @@ int pc_follow_timer(int tid,unsigned int tick,int id,int data) if ((tbl = map_id2bl(sd->followtarget)) == NULL) return 0; - if(tbl->type == BL_PC && pc_isdead((TBL_PC *)tbl)) + if(status_isdead(tbl)) return 0; // either player or target is currently detached from map blocks (could be teleporting), @@ -4132,7 +4131,7 @@ int pc_gainexp(struct map_session_data *sd, struct block_list *src, unsigned int else sd->status.base_exp += base_exp; - pc_checkbaselevelup(sd) ; + pc_checkbaselevelup(sd); clif_updatestatus(sd,SP_BASEEXP); @@ -4724,7 +4723,6 @@ void pc_damage(struct map_session_data *sd,struct block_list *src,unsigned int h return; } - int pc_dead(struct map_session_data *sd,struct block_list *src) { int i=0,j=0; @@ -5294,7 +5292,6 @@ int pc_setparam(struct map_session_data *sd,int type,int val) return 0; } - /*========================================== * HP/SP Healing. If flag is passed, the heal type is through clif_heal, otherwise update status. *------------------------------------------ diff --git a/src/map/skill.c b/src/map/skill.c index 266e1201c..9463e242d 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -633,16 +633,9 @@ static const int diry[8]={1,1,0,-1,-1,-1,0,1}; static struct eri *skill_unit_ers = NULL; //For handling skill_unit's [Skotlex] static struct eri *skill_timer_ers = NULL; //For handling skill_timerskills [Skotlex] -/* スã‚ルデータベース */ struct skill_db skill_db[MAX_SKILL_DB]; - -/* アイテム作æˆãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ */ struct skill_produce_db skill_produce_db[MAX_SKILL_PRODUCE_DB]; - -/* 矢作æˆã‚¹ã‚ルデータベース */ struct skill_arrow_db skill_arrow_db[MAX_SKILL_ARROW_DB]; - -/* アブラカダブラ発動スã‚ルデータベース */ struct skill_abra_db skill_abra_db[MAX_SKILL_ABRA_DB]; // macros to check for out of bounds errors [celest] @@ -721,7 +714,6 @@ int skill_tree_get_max(int id, int b_class){ return skill_get_max (id); } -/* プãƒãƒˆã‚¿ã‚¤ãƒ— */ int skill_castend_damage_id( struct block_list* src, struct block_list *bl,int skillid,int skilllv,unsigned int tick,int flag ); int skill_frostjoke_scream(struct block_list *bl,va_list ap); int status_change_timer_sub(struct block_list *bl, va_list ap); @@ -969,7 +961,6 @@ int skillnotok_hom (int skillid, struct homun_data *hd) return (map[hd->bl.m].flag.noskill); } -/* スã‚ルユニットã®é…ç½®æƒ…å ±ã‚’è¿”ã™ */ struct skill_unit_layout skill_unit_layout[MAX_SKILL_UNIT_LAYOUT]; int firewall_unit_pos; int icewall_unit_pos; @@ -997,7 +988,7 @@ struct skill_unit_layout *skill_get_unit_layout (int skillid, int skilllv, struc } /*========================================== - * スã‚ãƒ«è¿½åŠ åŠ¹æžœ + * *------------------------------------------ */ int skill_additional_effect (struct block_list* src, struct block_list *bl, int skillid, int skilllv, int attack_type, unsigned int tick) @@ -1111,7 +1102,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int } break; - case SM_BASH: /* ãƒãƒƒã‚·ãƒ¥ï¼ˆæ€¥æ‰€æ”»æ’ƒï¼‰ */ + case SM_BASH: if( sd && skilllv > 5 && pc_checkskill(sd,SM_FATALBLOW)>0 ){ //TODO: How much % per base level it actually is? sc_start(bl,SC_STUN,(5*(skilllv-5)+(int)sd->status.base_level/10), @@ -1122,15 +1113,15 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int case AS_VENOMKNIFE: if (sd) //Poison chance must be that of Envenom. [Skotlex] skilllv = pc_checkskill(sd, TF_POISON); - case TF_POISON: /* インベナム*/ - case AS_SPLASHER: /* ベナムスプラッシャー */ + case TF_POISON: + case AS_SPLASHER: if(!sc_start(bl,SC_POISON,(2*skilllv+10),skilllv,skill_get_time2(skillid,skilllv)) && sd && skillid==TF_POISON ) clif_skill_fail(sd,skillid,0,0); break; - case AS_SONICBLOW: /* ソニックブãƒãƒ¼ */ + case AS_SONICBLOW: sc_start(bl,SC_STUN,(2*skilllv+10),skilllv,skill_get_time2(skillid,skilllv)); break; @@ -1160,15 +1151,15 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int sc_start(bl,SC_BLIND,4*skilllv,skilllv,skill_get_time2(skillid,skilllv)); break; - case HT_FREEZINGTRAP: /* フリージングトラップ */ + case HT_FREEZINGTRAP: sc_start(bl,SC_FREEZE,(3*skilllv+35),skilllv,skill_get_time2(skillid,skilllv)); break; - case HT_FLASHER: /* フラッシャー */ + case HT_FLASHER: sc_start(bl,SC_BLIND,(10*skilllv+30),skilllv,skill_get_time2(skillid,skilllv)); break; - case HT_LANDMINE: /* ランドマイン */ + case HT_LANDMINE: sc_start(bl,SC_STUN,(5*skilllv+30),skilllv,skill_get_time2(skillid,skilllv)); break; @@ -1176,30 +1167,28 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int status_percent_damage(src, bl, 0, 15*skilllv+5); break; - case HT_SANDMAN: /* サンドマン */ + case HT_SANDMAN: sc_start(bl,SC_SLEEP,(10*skilllv+40),skilllv,skill_get_time2(skillid,skilllv)); break; - case TF_SPRINKLESAND: /* ç ‚ã¾ã */ + case TF_SPRINKLESAND: sc_start(bl,SC_BLIND,20,skilllv,skill_get_time2(skillid,skilllv)); break; - case TF_THROWSTONE: /* 石投㒠*/ + case TF_THROWSTONE: sc_start(bl,SC_STUN,3,skilllv,skill_get_time(skillid,skilllv)); sc_start(bl,SC_BLIND,3,skilllv,skill_get_time2(skillid,skilllv)); break; case NPC_DARKCROSS: - case CR_HOLYCROSS: /* ホーリークãƒã‚¹ */ + case CR_HOLYCROSS: sc_start(bl,SC_BLIND,3*skilllv,skilllv,skill_get_time2(skillid,skilllv)); break; - case CR_GRANDCROSS: /* グランドクãƒã‚¹ */ - case NPC_GRANDDARKNESS: /*闇グランドクãƒã‚¹*/ - { - if(battle_check_undead(tstatus->race,tstatus->def_ele) || tstatus->race == RC_DEMON) - sc_start(bl,SC_BLIND,100,skilllv,skill_get_time2(skillid,skilllv)); - } + case CR_GRANDCROSS: + case NPC_GRANDDARKNESS: + if(battle_check_undead(tstatus->race,tstatus->def_ele) || tstatus->race == RC_DEMON) + sc_start(bl,SC_BLIND,100,skilllv,skill_get_time2(skillid,skilllv)); break; case AM_ACIDTERROR: @@ -1212,7 +1201,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int skill_break_equip(bl, EQP_WEAPON, 100*skilllv, BCT_ENEMY); break; - case CR_SHIELDCHARGE: /* シールドãƒãƒ£ãƒ¼ã‚¸ */ + case CR_SHIELDCHARGE: sc_start(bl,SC_STUN,(15+skilllv*5),skilllv,skill_get_time2(skillid,skilllv)); break; @@ -1220,7 +1209,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int status_percent_damage(src, bl, 0, 15+5*skilllv); break; - case RG_RAID: /* サプライズアタック */ + case RG_RAID: sc_start(bl,SC_STUN,(10+3*skilllv),skilllv,skill_get_time(skillid,skilllv)); sc_start(bl,SC_BLIND,(10+3*skilllv),skilllv,skill_get_time2(skillid,skilllv)); break; @@ -1233,7 +1222,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int sc_start(bl,SC_STUN,(25+5*skilllv),skilllv,skill_get_time2(skillid,skilllv)); break; - case BD_LULLABY: /* å守唄 */ + case BD_LULLABY: sc_start(bl,SC_SLEEP,15,skilllv,skill_get_time2(skillid,skilllv)); break; @@ -1248,7 +1237,6 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int sc_start(bl,SC_STUN,(30+10*skilllv),skilllv,skill_get_time(skillid,skilllv)); break; - /* MOBã®è¿½åŠ 効果付ãスã‚ル */ case NPC_PETRIFYATTACK: case NPC_CURSEATTACK: case NPC_SLEEPATTACK: @@ -1284,11 +1272,11 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int sc_start(bl,SC_STOP,(15+skilllv*5),0,skill_get_time2(skillid,skilllv)); break; - case ST_REJECTSWORD: /* フリージングトラップ */ + case ST_REJECTSWORD: sc_start(bl,SC_AUTOCOUNTER,(skilllv*15),skilllv,skill_get_time2(skillid,skilllv)); break; - case PF_FOGWALL: /* ホーリークãƒã‚¹ */ + case PF_FOGWALL: if (src != bl && tsc->data[SC_DELUGE].timer == -1) status_change_start(bl,SC_BLIND,10000,skilllv,0,0,0,skill_get_time2(skillid,skilllv),8); break; @@ -1298,12 +1286,11 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int sc_start(bl, SC_BLEEDING,50, skilllv, skill_get_time2(skillid,skilllv)); break; - case LK_JOINTBEAT: /* ジョイントビート */ - //æ¡ä»¶ãŒè‰¯ã分ã‹ã‚‰ãªã„ã®ã§é©å½“ã« + case LK_JOINTBEAT: sc_start(bl,SkillStatusChangeTable(skillid),(5*skilllv+5),skilllv,skill_get_time2(skillid,skilllv)); break; - case ASC_METEORASSAULT: /* メテオアサルト */ + case ASC_METEORASSAULT: //Any enemies hit by this skill will receive Stun, Darkness, or external bleeding status ailment with a 5%+5*SkillLV% chance. switch(rand()%3) { case 0: @@ -1317,8 +1304,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int } break; - case HW_NAPALMVULCAN: /* ナパルムãƒãƒ«ã‚«ãƒ³ */ - // skilllv*5%ã®ç¢ºçŽ‡ã§å‘ªã„ + case HW_NAPALMVULCAN: sc_start(bl,SC_CURSE,5*skilllv,skilllv,skill_get_time2(skillid,skilllv)); break; @@ -1361,7 +1347,6 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int if(attack_type == BF_MISC) //70% base stun chance... sc_start(bl,SC_STUN,70,skilllv,skill_get_time2(skillid,skilllv)); break; - //Until they're at right position - gs_statuschange- [Vicious] case GS_BULLSEYE: //0.1% coma rate. status_change_start(bl,SC_COMA,10,skilllv,0,0,0,0,0); break; @@ -1510,8 +1495,7 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list * tick+skill_get_time2(SL_KAAHI,tsc->data[SC_KAAHI].val1), kaahi_heal_timer, bl->id, SC_KAAHI); //Activate heal. break; - case MO_EXTREMITYFIST: /* 阿修羅覇凰拳 */ - //阿修羅を使ã†ã¨5分間自然回復ã—ãªã„よã†ã«ãªã‚‹ + case MO_EXTREMITYFIST: sc_start(src,SkillStatusChangeTable(skillid),100,skilllv,skill_get_time2(skillid,skilllv)); break; } @@ -1769,13 +1753,13 @@ int skill_blown (struct block_list *src, struct block_list *target, int count) /* * ========================================================================= - * スã‚ル攻撃効果処ç†ã¾ã¨ã‚ - * flagã®èª¬æ˜Žã€‚16進図 + * ƒXƒLƒ‹?U??‰Ê?—?‚Ü‚Æ‚ß + * flag‚Ì?–¾?B16?i? * 00XRTTff - * ff = magicã§è¨ˆç®—ã«æ¸¡ã•ã‚Œã‚‹ï¼‰ - * TT = パケットã®type部分(0ã§ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆï¼‰ - * X = パケットã®ã‚¹ã‚ルLv - * R = 予約(skill_area_subã§ä½¿ç”¨ã™ã‚‹ï¼‰ + * 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 *------------------------------------------------------------------------- */ @@ -1811,7 +1795,7 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds sstatus = status_get_status_data(dsrc); tstatus = status_get_status_data(bl); // Is this check really needed? FrostNova won't hurt you if you step right where the caster is? - if(skillid == WZ_FROSTNOVA && dsrc->x == bl->x && dsrc->y == bl->y) //使用スã‚ルãŒãƒ•ãƒã‚¹ãƒˆãƒŽãƒ´ã‚¡ã§ã€dsrcã¨blãŒåŒã˜å ´æ‰€ãªã‚‰ä½•ã‚‚ã—ãªã„ + if(skillid == WZ_FROSTNOVA && dsrc->x == bl->x && dsrc->y == bl->y) return 0; type=-1; @@ -1886,9 +1870,9 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds && skillid != CH_PALMSTRIKE) //Palm Strike is the only skill that will knockback even if it misses. [Skotlex] dmg.blewcount = 0; - if(skillid == CR_GRANDCROSS||skillid == NPC_GRANDDARKNESS) {//グランドクãƒã‚¹ - if(battle_config.gx_disptype) dsrc = src; // 敵ダメージ白文å—表示 - if(src == bl) type = 4; // åå‹•ã¯ãƒ€ãƒ¡ãƒ¼ã‚¸ãƒ¢ãƒ¼ã‚·ãƒ§ãƒ³ãªã— + if(skillid == CR_GRANDCROSS||skillid == NPC_GRANDDARKNESS) { + if(battle_config.gx_disptype) dsrc = src; + if(src == bl) type = 4; } if(sd) { @@ -2055,7 +2039,6 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds if ((!tsd->status.skill[skillid].id || tsd->status.skill[skillid].flag >= 13) && can_copy(tsd,skillid)) // Split all the check into their own function [Aru] { - //æ—¢ã«ç›—ã‚“ã§ã„るスã‚ルãŒã‚ã‚Œã°è©²å½“スã‚ルを消㙠if (tsd->cloneskill_id && tsd->status.skill[tsd->cloneskill_id].flag == 13){ tsd->status.skill[tsd->cloneskill_id].id = 0; tsd->status.skill[tsd->cloneskill_id].lv = 0; @@ -2133,19 +2116,19 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds map_freeblock_unlock(); - return damage; /* 与ダメを返㙠*/ + return damage; } /*========================================== - * スã‚ル範囲攻撃用(map_foreachinareaã‹ã‚‰å‘¼ã°ã‚Œã‚‹) - * flagã«ã¤ã„ã¦ï¼š16é€²å›³ã‚’ç¢ºèª + * ƒXƒLƒ‹”Í??U?—p(map_foreachinarea‚©‚çŒÄ‚΂ê‚é) + * flag‚ɂ‚¢‚Ä?F16?i?‚ðŠm”F * MSB <- 00fTffff ->LSB - * T =ターゲットé¸æŠžç”¨(BCT_*) - * ffff=自由ã«ä½¿ç”¨å¯èƒ½ - * 0 =予約。0ã«å›ºå®š + * T =ƒ^?ƒQƒbƒg‘I?—p(BCT_*) + * ffff=Ž©—R‚ÉŽg—p‰Â”\ + * 0 =—\–ñ?B0‚ɌŒè *------------------------------------------ */ -static int skill_area_temp[8]; /* 一時変数。必è¦ãªã‚‰ä½¿ã†ã€‚ */ +static int skill_area_temp[8]; static int skill_unit_temp[8]; /* For storing skill_unit ids as players move in/out of them. [Skotlex] */ static int skill_unit_index=0; //Well, yeah... am too lazy to pass pointers around :X typedef int (*SkillFunc)(struct block_list *, struct block_list *, int, int, unsigned int, int); @@ -2159,7 +2142,7 @@ int skill_area_sub (struct block_list *bl, va_list ap) nullpo_retr(0, bl); nullpo_retr(0, ap); - src=va_arg(ap,struct block_list *); //ã“ã“ã§ã¯srcã®å€¤ã‚’å‚ç…§ã—ã¦ã„ãªã„ã®ã§NULLãƒã‚§ãƒƒã‚¯ã¯ã—ãªã„ + src=va_arg(ap,struct block_list *); skill_id=va_arg(ap,int); skill_lv=va_arg(ap,int); tick=va_arg(ap,unsigned int); @@ -2421,9 +2404,8 @@ static int skill_check_condition_hom (struct homun_data *hd, int skill, int lv, } /*========================================================================= - * 範囲スã‚ル使用処ç†å°åˆ†ã‘ã“ã“ã‹ã‚‰ + * */ -/* 対象ã®æ•°ã‚’カウントã™ã‚‹ã€‚(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) { if(skill_area_temp[0] < 0xffff) @@ -2498,8 +2480,8 @@ static int skill_timerskill (int tid, unsigned int tick, int id, int data) unit_warp(target, -1, x, y, 3); } break; - case BA_FROSTJOKE: /* 寒ã„ジョーク */ - case DC_SCREAM: /* スクリーム*/ + case BA_FROSTJOKE: + case DC_SCREAM: range= skill_get_splash(skl->skill_id, skl->skill_lv); map_foreachinarea(skill_frostjoke_scream,skl->map,skl->x-range,skl->y-range, skl->x+range,skl->y+range,BL_CHAR,src,skl->skill_id,skl->skill_lv,tick); @@ -2606,8 +2588,8 @@ static int skill_reveal_trap (struct block_list *bl, va_list ap) } /*========================================== - * スã‚ãƒ«ä½¿ç”¨ï¼ˆè© å”±å®Œäº†ã€ID指定攻撃系) - * (スパゲッティã«å‘ã‘ã¦ï¼‘æ©å‰é€²ï¼(ダメãƒ)) + * + * *------------------------------------------ */ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int skillid, int skilllv, unsigned int tick, int flag) @@ -2651,52 +2633,45 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int switch(skillid) { - /* æ¦å™¨æ”»æ’ƒç³»ã‚¹ã‚ル */ - case SM_BASH: /* ãƒãƒƒã‚·ãƒ¥ */ - case MC_MAMMONITE: /* メマーナイト */ + case SM_BASH: + case MC_MAMMONITE: case TF_DOUBLE: - case AC_DOUBLE: /* ダブルストレイフィング */ - case AS_SONICBLOW: /* ソニックブãƒãƒ¼ */ - case KN_PIERCE: /* ピアース */ - case KN_SPEARBOOMERANG: /* スピアブーメラン */ - case KN_BRANDISHSPEAR: /* ブランディッシュスピア */ - case TF_POISON: /* インベナム*/ - case TF_SPRINKLESAND: /* ç ‚ã¾ã */ - case AC_CHARGEARROW: /* ãƒãƒ£ãƒ¼ã‚¸ã‚¢ãƒãƒ¼ */ - case RG_RAID: /* サプライズアタック */ - case RG_INTIMIDATE: /* インティミデイト */ - case AM_ACIDTERROR: /* アシッドテラー */ - case BA_MUSICALSTRIKE: /* ミュージカルストライク */ - case DC_THROWARROW: /* 矢撃㡠*/ - case BA_DISSONANCE: /* ä¸å”和音 */ - case CR_HOLYCROSS: /* ホーリークãƒã‚¹ */ + case AC_DOUBLE: + case AS_SONICBLOW: + case KN_PIERCE: + case KN_SPEARBOOMERANG: + case KN_BRANDISHSPEAR: + case TF_POISON: + case TF_SPRINKLESAND: + case AC_CHARGEARROW: + case RG_RAID: + case RG_INTIMIDATE: + case AM_ACIDTERROR: + case BA_MUSICALSTRIKE: + case DC_THROWARROW: + case BA_DISSONANCE: + case CR_HOLYCROSS: case NPC_DARKCROSS: case CR_SHIELDCHARGE: case CR_SHIELDBOOMERANG: - /* 以下MOB専用 */ - /* å˜ä½“攻撃ã€SP減少攻撃ã€é è·é›¢æ”»æ’ƒã€é˜²å¾¡ç„¡è¦–攻撃ã€å¤šæ®µæ”»æ’ƒ */ case NPC_PIERCINGATT: case NPC_MENTALBREAKER: case NPC_RANGEATTACK: case NPC_CRITICALSLASH: case NPC_COMBOATTACK: - /* å¿…ä¸æ”»æ’ƒã€æ¯’攻撃ã€æš—黒攻撃ã€æ²ˆé»™æ”»æ’ƒã€ã‚¹ã‚¿ãƒ³æ”»æ’ƒ */ case NPC_GUIDEDATTACK: case NPC_POISON: case NPC_BLINDATTACK: case NPC_SILENCEATTACK: case NPC_STUNATTACK: - /* 石化攻撃ã€å‘ªã„攻撃ã€ç¡çœ 攻撃ã€ãƒ©ãƒ³ãƒ€ãƒ ATK攻撃 */ case NPC_PETRIFYATTACK: case NPC_CURSEATTACK: case NPC_SLEEPATTACK: case NPC_RANDOMATTACK: - /* 水属性攻撃ã€åœ°å±žæ€§æ”»æ’ƒã€ç«å±žæ€§æ”»æ’ƒã€é¢¨å±žæ€§æ”»æ’ƒ */ case NPC_WATERATTACK: case NPC_GROUNDATTACK: case NPC_FIREATTACK: case NPC_WINDATTACK: - /* 毒属性攻撃ã€è–属性攻撃ã€é—‡å±žæ€§æ”»æ’ƒã€å¿µå±žæ€§æ”»æ’ƒã€SP減少攻撃 */ case NPC_POISONATTACK: case NPC_HOLYATTACK: case NPC_DARKNESSATTACK: @@ -2706,19 +2681,19 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int case NPC_BREAKWEAPON: case NPC_BREAKHELM: case NPC_BREAKSHIELD: - case LK_AURABLADE: /* オーラブレード */ - case LK_SPIRALPIERCE: /* スパイラルピアース */ - case LK_HEADCRUSH: /* ヘッドクラッシュ */ - case LK_JOINTBEAT: /* ジョイントビート */ - case CG_ARROWVULCAN: /* ã‚¢ãƒãƒ¼ãƒãƒ«ã‚«ãƒ³ */ - case HW_MAGICCRASHER: /* マジッククラッシャー */ - case ASC_METEORASSAULT: /* メテオアサルト */ + case LK_AURABLADE: + case LK_SPIRALPIERCE: + case LK_HEADCRUSH: + case LK_JOINTBEAT: + case CG_ARROWVULCAN: + case HW_MAGICCRASHER: + case ASC_METEORASSAULT: case ITM_TOMAHAWK: case MO_TRIPLEATTACK: - case CH_CHAINCRUSH: /* 連柱崩撃 */ - case CH_TIGERFIST: /* ä¼è™Žæ‹³ */ + case CH_CHAINCRUSH: + case CH_TIGERFIST: case PA_SHIELDCHAIN: // Shield Chain - case PA_SACRIFICE: /* サクリファイス */ + case PA_SACRIFICE: case WS_CARTTERMINATION: // Cart Termination case AS_VENOMKNIFE: case HT_PHANTASMIC: |