diff options
author | celest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-11-29 17:39:44 +0000 |
---|---|---|
committer | celest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-11-29 17:39:44 +0000 |
commit | 241ebe1c9cac17f0b583b10d7227f7d3c87638bd (patch) | |
tree | 2defe5e18cf670d0f96875d4e7f6d3efc8d5bfee | |
parent | 29cea2719c282d8e748f2c1ed1553131f6ad980d (diff) | |
download | hercules-241ebe1c9cac17f0b583b10d7227f7d3c87638bd.tar.gz hercules-241ebe1c9cac17f0b583b10d7227f7d3c87638bd.tar.bz2 hercules-241ebe1c9cac17f0b583b10d7227f7d3c87638bd.tar.xz hercules-241ebe1c9cac17f0b583b10d7227f7d3c87638bd.zip |
Updated Quagmire, Enchant Deadly Poison, Fog Wall
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@416 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | Changelog.txt | 1 | ||||
-rw-r--r-- | db/Changelog.txt | 2 | ||||
-rw-r--r-- | db/skill_db.txt | 4 | ||||
-rw-r--r-- | src/map/battle.c | 16 | ||||
-rw-r--r-- | src/map/pc.c | 10 | ||||
-rw-r--r-- | src/map/skill.c | 28 |
6 files changed, 44 insertions, 17 deletions
diff --git a/Changelog.txt b/Changelog.txt index 22d450b73..3c7d28b8d 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -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] diff --git a/db/Changelog.txt b/db/Changelog.txt index 796e15e29..2c7525006 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -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] diff --git a/db/skill_db.txt b/db/skill_db.txt index 7d6745196..5e24078a6 100644 --- a/db/skill_db.txt +++ b/db/skill_db.txt @@ -91,7 +91,7 @@ 89,8,6,2,1,1,10,1,yes,0,0,0,magic,2 //WZ_STORMGUST#�X�g??�K�X�g# 90,8,8,1,2,0,5,1:2:3:4:5,yes,0,0,0,magic,0 //WZ_EARTHSPIKE#�A?�X�X�p�C�N# 91,8,8,2,2,0,5,1:2:3:4:5,yes,0,0,0,magic,0 //WZ_HEAVENDRIVE#�w�����Y�h���C�u# -92,8,6,2,2,1,5,1,yes,0,0,3,magic,0 //WZ_QUAGMIRE#�N?�O?�C�A# +92,8,6,2,2,1,5,1,yes,0,128,3,magic,0 //WZ_QUAGMIRE#�N?�O?�C�A# 93,8,6,1,0,1,1,1,yes,0,0,0,magic,0 //WZ_ESTIMATION#�����X??���# 94,0,0,0,0,0,5,0,no,0,0,0,weapon,0 //BS_IRON#�S����# 95,0,0,0,0,0,5,0,no,0,0,0,weapon,0 //BS_STEEL#?�S����# @@ -438,7 +438,7 @@ 401,0,6,4,0,1,1,1,yes,0,0,0,weapon,0 //CH_SOULCOLLECT#���C��# 402,8,6,1,0,1,10,1,no,0,0,0,none,0 //PF_MINDBREAKER#?�C���h�u��?�J?# 403,0,0,4,0,1,1,1,yes,0,0,0,magic,0 //PF_MEMORIZE#�������C�Y# -404,3,6,2,2,1,5,1,yes,0,128,1,magic,0 //PF_FOGWALL#�t�H�O�E�H?��# +404,3,6,2,2,1,5,1,yes,0,256,1,magic,0 //PF_FOGWALL#�t�H�O�E�H?��# 405,3,6,2,0,1,5,1,no,0,128,2,misc,0 //PF_SPIDERWEB#�X�p�C??�E�F�b�u# 406,-1,6,1,0,2,10,1,no,33,0,0,weapon,0 //ASC_METEORASSAULT#���e�I�A�T���g# 407,0,6,4,0,1,10,0,no,0,0,0,none,0 //ASC_CDP#�f�b�h��??�C�Y������# diff --git a/src/map/battle.c b/src/map/battle.c index 7aabcc39a..0c1fe65d2 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -257,8 +257,9 @@ int battle_get_agi(struct block_list *bl) if(sc_data[SC_QUAGMIRE].timer!=-1 ) { // �N�@�O�}�C�A //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) // �g�D���[�T�C�g agi += 5; @@ -367,8 +368,9 @@ int battle_get_dex(struct block_list *bl) if(sc_data[SC_QUAGMIRE].timer!=-1 ) { // �N�@�O�}�C�A // 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) // �g�D���[�T�C�g 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) //�R���Z���g���[�V���� - 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( // ��Ԉُ풆�̃_���[�W�lj��ŃN���e�B�J���ɂ��L���ȃX�L�� if (sc_data) { // �G���`�����g�f�b�h���[�|�C�Y�� - 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; diff --git a/src/map/pc.c b/src/map/pc.c index 72fa48646..c9083ce03 100644 --- a/src/map/pc.c +++ b/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) // ���E�h�{�C�X sd->paramb[0]+= 4; if(sd->sc_data[SC_QUAGMIRE].timer!=-1){ // �N�@�O�}�C�A - 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){ // �g�D��?�T�C�g diff --git a/src/map/skill.c b/src/map/skill.c index 30b17f3e3..6cc9e7a8a 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -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: /* �z?��?�N���X */ - 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: /* �w�b�h�N���b�V�� */ @@ -5965,7 +5965,7 @@ int skill_unit_onplace(struct skill_unit *src,struct block_list *bl,unsigned int case 0xae: /* �K�^�̃L�X */ case 0xaf: /* �T?�r�X�t�H?��? */ case 0xb4: - case 0xb6: /* �t�H�O�E�H?�� */ +// case 0xb6: /* �t�H�O�E�H?�� */ { 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: /* �t�H�O�E�H?�� */ + { + 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: /* �f�����X�g��?�V���� */ 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: /* �{���P?�m */ |