summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-10-19 16:47:30 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-10-19 16:47:30 +0000
commit5e17d1a084598a12fd1872f8c8c9965ecaed6592 (patch)
treee77d97dfddd8688ebd1433f575e3257654c8eb8c
parent11e47ab6ff3d3ba751bf111d0c1948ac23dbb313 (diff)
downloadhercules-5e17d1a084598a12fd1872f8c8c9965ecaed6592.tar.gz
hercules-5e17d1a084598a12fd1872f8c8c9965ecaed6592.tar.bz2
hercules-5e17d1a084598a12fd1872f8c8c9965ecaed6592.tar.xz
hercules-5e17d1a084598a12fd1872f8c8c9965ecaed6592.zip
- 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
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--src/map/party.c21
-rw-r--r--src/map/pc.c2
-rw-r--r--src/map/skill.c4
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;i<MAX_PARTY;i++){
if ((p_sd = p->data[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: