From 5e17d1a084598a12fd1872f8c8c9965ecaed6592 Mon Sep 17 00:00:00 2001 From: skotlex Date: Thu, 19 Oct 2006 16:47:30 +0000 Subject: - Corrected a compilation error. - Fixed SG_FRIEND, it should be triggering when Monks do Combo Finish (not triple blows), and the trigger rate increase should be based on your known level of SG_FRIEND, NOT TK_COUNTER. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9013 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 3 +++ src/map/party.c | 21 ++++++++++++--------- src/map/pc.c | 2 +- src/map/skill.c | 4 ++-- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index c680f43d0..9fa9e3444 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/10/19 + * Fixed SG_FRIEND, it should be triggering when Monks do Combo Finish (not + triple blows), and the trigger rate increase should be based on your known + level of SG_FRIEND, not TK_COUNTER. [Skotlex] * Phantasmic arrow now knockbacks even if it misses. [Skotlex] * Adjusted the way Monk combo times work. The combo time is now always 300ms (adjusted by combo_delay_rate) which takes effect inmediately AFTER diff --git a/src/map/party.c b/src/map/party.c index bc4f036a8..13cafc922 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -615,7 +615,7 @@ int party_skill_check(struct map_session_data *sd, int party_id, int skillid, in case TK_COUNTER: //Increase Triple Attack rate of Monks. if (!p->state.monk) return 0; break; - case MO_TRIPLEATTACK: //Increase Counter rate of Star Gladiators + case MO_COMBOFINISH: //Increase Counter rate of Star Gladiators if (!p->state.sg) return 0; break; case AM_TWILIGHT2: //Twilight Pharmacy, requires Super Novice @@ -629,21 +629,24 @@ int party_skill_check(struct map_session_data *sd, int party_id, int skillid, in for(i=0;idata[i].sd) == NULL) continue; + if (sd->bl.m != p_sd->bl.m) + continue; switch(skillid) { case TK_COUNTER: //Increase Triple Attack rate of Monks. if((p_sd->class_&MAPID_UPPERMASK) == MAPID_MONK - && sd->bl.m == p_sd->bl.m && pc_checkskill(p_sd,MO_TRIPLEATTACK)) { - int rate = 50 +50*skilllv; //+100/150/200% success rate - sc_start4(&p_sd->bl,SC_SKILLRATE_UP,100,MO_TRIPLEATTACK,rate,0,0,skill_get_time(SG_FRIEND, 1)); + sc_start4(&p_sd->bl,SC_SKILLRATE_UP,100,MO_TRIPLEATTACK, + 50+50*skilllv, //+100/150/200% rate + 0,0,skill_get_time(SG_FRIEND, 1)); } break; - case MO_TRIPLEATTACK: //Increase Counter rate of Star Gladiators + case MO_COMBOFINISH: //Increase Counter rate of Star Gladiators if((p_sd->class_&MAPID_UPPERMASK) == MAPID_STAR_GLADIATOR - && sd->bl.m == p_sd->bl.m - && pc_checkskill(p_sd,TK_COUNTER)) { - int rate = 50 +50*pc_checkskill(p_sd,TK_COUNTER); //+100/150/200% success rate - sc_start4(&p_sd->bl,SC_SKILLRATE_UP,100,TK_COUNTER,rate,0,0,skill_get_time(SG_FRIEND, 1)); + && sd->sc.data[SC_READYCOUNTER].timer != -1 + && pc_checkskill(p_sd,SG_FRIEND)) { + sc_start4(&p_sd->bl,SC_SKILLRATE_UP,100,TK_COUNTER, + 50+50*pc_checkskill(p_sd,SG_FRIEND), //+100/150/200% rate + 0,0,skill_get_time(SG_FRIEND, 1)); } break; } diff --git a/src/map/pc.c b/src/map/pc.c index e615b1807..e7d47a2c6 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -3182,7 +3182,7 @@ int pc_show_steal(struct block_list *bl,va_list ap) int pc_steal_item(struct map_session_data *sd,struct block_list *bl, int lv) { static int i = 0; - int rate,itemid,flag; + int old_i,rate,itemid,flag; struct status_data *sd_status, *md_status; struct mob_data *md; struct item tmp_item; diff --git a/src/map/skill.c b/src/map/skill.c index d9af46f18..84c174788 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1934,8 +1934,6 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds switch(skillid) { case MO_TRIPLEATTACK: - if (sd->status.party_id>0) //bonus from SG_FRIEND [Komurka] - party_skill_check(sd, sd->status.party_id, MO_TRIPLEATTACK, skilllv); if (pc_checkskill(sd, MO_CHAINCOMBO) > 0) flag=1; break; @@ -1944,6 +1942,8 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds flag=1; break; case MO_COMBOFINISH: + if (sd->status.party_id>0) //bonus from SG_FRIEND [Komurka] + party_skill_check(sd, sd->status.party_id, MO_COMBOFINISH, skilllv); if (pc_checkskill(sd, CH_TIGERFIST) > 0 && sd->spiritball > 0) flag=1; case CH_TIGERFIST: -- cgit v1.2.3-70-g09d2