Updated Quagmire, Enchant Deadly Poison, Fog Wall
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@416 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
ed92d58981
commit
7ff0e4c05c
@ -1,6 +1,7 @@
|
||||
Date Added
|
||||
11/29
|
||||
* Added more sc_data checks in skill.c and pc.c [celest]
|
||||
* Updated Quagmire, Enchant Deadly Poison, Fog Wall [celest]
|
||||
|
||||
11/28
|
||||
* Fixed a crash in login_sql/login.c [MouseJstr]
|
||||
|
@ -5,6 +5,8 @@
|
||||
Ayathoya items == Added but no effect ( all are "ect" itens)
|
||||
Skill databases == celest working on them i believe.
|
||||
|
||||
11/29 * Updated skill_db for Quagmire, Fog Wall [celest]
|
||||
|
||||
11/28 * Fixed Wedding rings placement 2->136 [Lupus]
|
||||
* Fixed mob Amon Ra stats/drops [shadow]
|
||||
|
||||
|
@ -91,7 +91,7 @@
|
||||
89,8,6,2,1,1,10,1,yes,0,0,0,magic,2 //WZ_STORMGUST#スト??ガスト#
|
||||
90,8,8,1,2,0,5,1:2:3:4:5,yes,0,0,0,magic,0 //WZ_EARTHSPIKE#ア?ススパイク#
|
||||
91,8,8,2,2,0,5,1:2:3:4:5,yes,0,0,0,magic,0 //WZ_HEAVENDRIVE#ヘヴンズドライブ#
|
||||
92,8,6,2,2,1,5,1,yes,0,0,3,magic,0 //WZ_QUAGMIRE#ク?グ?イア#
|
||||
92,8,6,2,2,1,5,1,yes,0,128,3,magic,0 //WZ_QUAGMIRE#ク?グ?イア#
|
||||
93,8,6,1,0,1,1,1,yes,0,0,0,magic,0 //WZ_ESTIMATION#モンス??情報#
|
||||
94,0,0,0,0,0,5,0,no,0,0,0,weapon,0 //BS_IRON#鉄製造#
|
||||
95,0,0,0,0,0,5,0,no,0,0,0,weapon,0 //BS_STEEL#?鉄製造#
|
||||
@ -438,7 +438,7 @@
|
||||
401,0,6,4,0,1,1,1,yes,0,0,0,weapon,0 //CH_SOULCOLLECT#狂気功#
|
||||
402,8,6,1,0,1,10,1,no,0,0,0,none,0 //PF_MINDBREAKER#?インドブレ?カ?#
|
||||
403,0,0,4,0,1,1,1,yes,0,0,0,magic,0 //PF_MEMORIZE#メモライズ#
|
||||
404,3,6,2,2,1,5,1,yes,0,128,1,magic,0 //PF_FOGWALL#フォグウォ?ル#
|
||||
404,3,6,2,2,1,5,1,yes,0,256,1,magic,0 //PF_FOGWALL#フォグウォ?ル#
|
||||
405,3,6,2,0,1,5,1,no,0,128,2,misc,0 //PF_SPIDERWEB#スパイ??ウェッブ#
|
||||
406,-1,6,1,0,2,10,1,no,33,0,0,weapon,0 //ASC_METEORASSAULT#メテオアサルト#
|
||||
407,0,6,4,0,1,10,0,no,0,0,0,none,0 //ASC_CDP#デッドリ??イズン製造#
|
||||
|
@ -257,8 +257,9 @@ int battle_get_agi(struct block_list *bl)
|
||||
|
||||
if(sc_data[SC_QUAGMIRE].timer!=-1 ) { // クァグマイア
|
||||
//agi >>= 1;
|
||||
int agib = agi*(sc_data[SC_QUAGMIRE].val1*10)/100;
|
||||
agi -= agib > 50 ? 50 : agib;
|
||||
//int agib = agi*(sc_data[SC_QUAGMIRE].val1*10)/100;
|
||||
//agi -= agib > 50 ? 50 : agib;
|
||||
agi -= (bl->type == BL_PC) ? sc_data[SC_QUAGMIRE].val1*5 : sc_data[SC_QUAGMIRE].val1*10;
|
||||
}
|
||||
if(sc_data[SC_TRUESIGHT].timer!=-1 && bl->type != BL_PC) // トゥルーサイト
|
||||
agi += 5;
|
||||
@ -367,8 +368,9 @@ int battle_get_dex(struct block_list *bl)
|
||||
|
||||
if(sc_data[SC_QUAGMIRE].timer!=-1 ) { // クァグマイア
|
||||
// dex >>= 1;
|
||||
int dexb = dex*(sc_data[SC_QUAGMIRE].val1*10)/100;
|
||||
dex -= dexb > 50 ? 50 : dexb;
|
||||
//int dexb = dex*(sc_data[SC_QUAGMIRE].val1*10)/100;
|
||||
//dex -= dexb > 50 ? 50 : dexb;
|
||||
dex -= (bl->type == BL_PC) ? sc_data[SC_QUAGMIRE].val1*5 : sc_data[SC_QUAGMIRE].val1*10;
|
||||
}
|
||||
if(sc_data[SC_TRUESIGHT].timer!=-1 && bl->type != BL_PC) // トゥルーサイト
|
||||
dex += 5;
|
||||
@ -556,9 +558,7 @@ int battle_get_baseatk(struct block_list *bl)
|
||||
if(sc_data[SC_CURSE].timer!=-1 ) //呪われていたら
|
||||
batk -= batk*25/100; //base_atkが25%減少
|
||||
if(sc_data[SC_CONCENTRATION].timer!=-1 && bl->type != BL_PC) //コンセントレーション
|
||||
batk += batk*(5*sc_data[SC_CONCENTRATION].val1)/100;
|
||||
if(sc_data[SC_EDP].timer != -1) // [Celest]
|
||||
batk += batk*(50+50*sc_data[SC_EDP].val1)/100;
|
||||
batk += batk*(5*sc_data[SC_CONCENTRATION].val1)/100;
|
||||
}
|
||||
if(batk < 1) batk = 1; //base_atkは最低でも1
|
||||
return batk;
|
||||
@ -3553,7 +3553,7 @@ static struct Damage battle_calc_pc_weapon_attack(
|
||||
// 状態異常中のダメージ追加でクリティカルにも有効なスキル
|
||||
if (sc_data) {
|
||||
// エンチャントデッドリーポイズン
|
||||
if(sc_data[SC_EDP].timer != -1) {
|
||||
if(sc_data[SC_EDP].timer != -1 && skill_num != ASC_BREAKER && skill_num != ASC_METEORASSAULT) {
|
||||
damage += damage * (150 + sc_data[SC_EDP].val1 * 50) / 100;
|
||||
damage2 += damage2 * (150 + sc_data[SC_EDP].val1 * 50) / 100;
|
||||
no_cardfix = 1;
|
||||
|
10
src/map/pc.c
10
src/map/pc.c
@ -1517,10 +1517,12 @@ int pc_calcstatus(struct map_session_data* sd,int first)
|
||||
if(sd->sc_data[SC_LOUD].timer!=-1 && sd->sc_data[SC_QUAGMIRE].timer == -1) // ラウドボイス
|
||||
sd->paramb[0]+= 4;
|
||||
if(sd->sc_data[SC_QUAGMIRE].timer!=-1){ // クァグマイア
|
||||
int agib = (sd->status.agi+sd->paramb[1]+sd->parame[1])*(sd->sc_data[SC_QUAGMIRE].val1*10)/100;
|
||||
int dexb = (sd->status.dex+sd->paramb[4]+sd->parame[4])*(sd->sc_data[SC_QUAGMIRE].val1*10)/100;
|
||||
sd->paramb[1]-= agib > 50 ? 50 : agib;
|
||||
sd->paramb[4]-= dexb > 50 ? 50 : dexb;
|
||||
//int agib = (sd->status.agi+sd->paramb[1]+sd->parame[1])*(sd->sc_data[SC_QUAGMIRE].val1*10)/100;
|
||||
//int dexb = (sd->status.dex+sd->paramb[4]+sd->parame[4])*(sd->sc_data[SC_QUAGMIRE].val1*10)/100;
|
||||
//sd->paramb[1]-= agib > 50 ? 50 : agib;
|
||||
//sd->paramb[4]-= dexb > 50 ? 50 : dexb;
|
||||
sd->paramb[1]-= sd->sc_data[SC_QUAGMIRE].val1*5;
|
||||
sd->paramb[4]-= sd->sc_data[SC_QUAGMIRE].val1*5;
|
||||
sd->speed = sd->speed*3/2;
|
||||
}
|
||||
if(sd->sc_data[SC_TRUESIGHT].timer!=-1){ // トゥル?サイト
|
||||
|
@ -1270,7 +1270,7 @@ int skill_additional_effect( struct block_list* src, struct block_list *bl,int s
|
||||
skill_status_change_start(bl,SC_AUTOCOUNTER,skilllv,0,0,0,skill_get_time2(skillid,skilllv),0);
|
||||
break;
|
||||
case PF_FOGWALL: /* ホ?リ?クロス */
|
||||
if( rand()%100 < 3*skilllv*sc_def_int/100 )
|
||||
if(src!=bl && rand()%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: /* ヘッドクラッシュ */
|
||||
@ -5965,7 +5965,7 @@ int skill_unit_onplace(struct skill_unit *src,struct block_list *bl,unsigned int
|
||||
case 0xae: /* 幸運のキス */
|
||||
case 0xaf: /* サ?ビスフォ?ユ? */
|
||||
case 0xb4:
|
||||
case 0xb6: /* フォグウォ?ル */
|
||||
// case 0xb6: /* フォグウォ?ル */
|
||||
{
|
||||
struct skill_unit *unit2;
|
||||
struct status_change *sc_data=battle_get_sc_data(bl);
|
||||
@ -6005,6 +6005,28 @@ int skill_unit_onplace(struct skill_unit *src,struct block_list *bl,unsigned int
|
||||
}
|
||||
} break;
|
||||
|
||||
case 0xb6: /* フォグウォ?ル */
|
||||
{
|
||||
struct skill_unit *unit2;
|
||||
struct status_change *sc_data=battle_get_sc_data(bl);
|
||||
int type=SkillStatusChangeTable[sg->skill_id];
|
||||
if(sc_data) {
|
||||
if (sc_data[type].timer==-1) {
|
||||
skill_status_change_start(bl,type,sg->skill_lv,sg->val1,sg->val2,
|
||||
(int)src,skill_get_time2(sg->skill_id,sg->skill_lv),0);
|
||||
skill_additional_effect(ss,bl,sg->skill_id,sg->skill_lv,BF_MISC,tick);
|
||||
}
|
||||
else if( (unit2=(struct skill_unit *)sc_data[type].val4) && unit2 != src ){
|
||||
if( unit2->group && DIFF_TICK(sg->tick,unit2->group->tick)>0 ) {
|
||||
skill_status_change_start(bl,type,sg->skill_lv,sg->val1,sg->val2,
|
||||
(int)src,skill_get_time2(sg->skill_id,sg->skill_lv),0);
|
||||
skill_additional_effect(ss,bl,sg->skill_id,sg->skill_lv,BF_MISC,tick);
|
||||
}
|
||||
// ts->tick-=sg->interval;
|
||||
}
|
||||
}
|
||||
} break;
|
||||
|
||||
case 0xb1: /* デモンストレ?ション */
|
||||
skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
|
||||
if(bl->type == BL_PC && rand()%100 < sg->skill_lv && battle_config.equipment_breaking)
|
||||
@ -6168,7 +6190,7 @@ int skill_unit_onout(struct skill_unit *src,struct block_list *bl,unsigned int t
|
||||
sc_data[SC_BLIND].timer = add_timer(
|
||||
gettick() + 30000, skill_status_change_timer, bl->id, 0);
|
||||
}
|
||||
sg->limit=DIFF_TICK(tick,sg->tick)+1000;
|
||||
//sg->limit=DIFF_TICK(tick,sg->tick)+1000;
|
||||
}
|
||||
break;
|
||||
case 0x9a: /* ボルケ?ノ */
|
||||
|
Loading…
x
Reference in New Issue
Block a user