summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzephyrus <zephyrus@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-10-04 20:47:35 +0000
committerzephyrus <zephyrus@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-10-04 20:47:35 +0000
commit74382866b1dc40a990f6dcc164fac8eb4d3e5a46 (patch)
treeb34d333dcb98af911b0f53d75c7b6a1622ed94f4
parent72f668162425f86e6253d571708f9a54a776c923 (diff)
downloadhercules-74382866b1dc40a990f6dcc164fac8eb4d3e5a46.tar.gz
hercules-74382866b1dc40a990f6dcc164fac8eb4d3e5a46.tar.bz2
hercules-74382866b1dc40a990f6dcc164fac8eb4d3e5a46.tar.xz
hercules-74382866b1dc40a990f6dcc164fac8eb4d3e5a46.zip
* Added SC_EXPBOOST (Field Manual), SC_ITEMBOOST (Bubble Gum) to const.txt. Allready working.
- Added SC_LIFEINSURANCE and SC_BOSSMAPINFO to const.txt. (not implemented but i will work on it) - Updated Field Manual and Bubble Gum in the itemdb.txt file. - As L0ne Wolf reported to me and based on Doddler information, the Bubble Gum only do a second try of the item drop, and it don't increase the drop rates. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11356 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--Changelog-Trunk.txt6
-rw-r--r--db/Changelog.txt6
-rw-r--r--db/const.txt6
-rw-r--r--db/item_db.txt4
-rw-r--r--src/map/mob.c10
-rw-r--r--src/map/pc.c4
-rw-r--r--src/map/skill.c2
-rw-r--r--src/map/status.c22
-rw-r--r--src/map/status.h8
9 files changed, 36 insertions, 32 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 58ff37140..994c47217 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,12 @@ 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.
2007/10/04
+ * Added SC_EXPBOOST (Field Manual), SC_ITEMBOOST (Bubble Gum) to const.txt.
+ Allready working [Zephyrus]
+ - Added SC_LIFEINSURANCE and SC_BOSSMAPINFO (not implemented)
+ - Updated Field Manual and Bubble Gum in the itemdb.txt file.
+ - As L0ne Wolf reported to me and based on Doddler information, the Bubble Gum
+ only do a second try of the item drop, and it don't increase the drop rates.
* Added code that compacts the vending list after a purchase; fixes
the problem with empty positions appearing in the list (bugreport:168)
* Corrected Icewall skill to be closer to official behavior
diff --git a/db/Changelog.txt b/db/Changelog.txt
index ad2742f13..506629797 100644
--- a/db/Changelog.txt
+++ b/db/Changelog.txt
@@ -13,8 +13,6 @@
Missing Effects:
12209 Life_Insurrance: No EXP penalty on death (Recommend constant: SC_NoPenelty - Has status icon)
- 12208 Field_Manual: Increased EXP rate (Recommend constant: SC_IncreasedEXP - Has status icon)
- 12210 Bubble_Gum: Increased Drop rate (Recommend constant: SC_IncreasedDropRate - Has status icon)
12214 Convex_Mirror: Detect MVP spawn on minimap; doesn't work with special condition MVPs. (Recommend constant: SC_DetectMVPSpawn)
7621 Token_of_Ziegfried: Give player the option to revive after death, through the "Respawn/Exit" menu.
@@ -37,6 +35,10 @@
13034 Desert_Twilight Small chance to activate max Attack Speed for 7 seconds.
=======================
+10/04
+ * Added SC_EXPBOOST (Field Manual), SC_ITEMBOOST (Bubble Gum) to const.txt. Allready working [Zephyrus]
+ - Added SC_LIFEINSURANCE and SC_BOSSMAPINFO (not implemented)
+ - Updated Field Manual and Bubble Gum in the itemdb.txt file.
10/01
* Fixed Frigg combo not reducing def by refine rate [Playtester]
* Reverted the bug that was added in the last update [Playtester]
diff --git a/db/const.txt b/db/const.txt
index 03fc5668c..3ce37d9a9 100644
--- a/db/const.txt
+++ b/db/const.txt
@@ -754,8 +754,10 @@ SC_JAILED 249
SC_ENCHANTARMS 250
SC_MAGICALATTACK 251
SC_SUMMER 256
-SC_BONUSEXP 257
-SC_BONUSDROP 258
+SC_EXPBOOST 257
+SC_ITEMBOOST 258
+SC_BOSSMAPINFO 259
+SC_LIFEINSURANCE 260
e_gasp 0
e_what 1
diff --git a/db/item_db.txt b/db/item_db.txt
index ed88a4ed9..6bf117a42 100644
--- a/db/item_db.txt
+++ b/db/item_db.txt
@@ -3258,9 +3258,9 @@
12205,DEX_Dish,Hwergelmir's_Tonic,0,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_DEXFood,1800000, 10; percentheal 15,5; },{},{}
12206,LUK_Dish,Cooked_Nine_Tail,0,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_LUKFood,1800000, 10; percentheal 15,5; },{},{}
12207,VIT_Dish,Immortal_Stew,0,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_VITFood,1800000, 10; percentheal 15,5; },{},{}
-12208,Battle_Manual,Battle Manual,2,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_BONUSEXP,1800000,50;},{},{}
+12208,Battle_Manual,Battle Manual,2,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_EXPBOOST,1800000,50;},{},{}
12209,Insurance,Life Insurance,2,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_BABY,1800000,0; },{},{}
-12210,Bubble_Gum,Bubble Gum,2,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_BONUSDROP,1800000,100;},{},{}
+12210,Bubble_Gum,Bubble Gum,2,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_ITEMBOOST,1800000,0;},{},{}
12211,Kafra_Card,Kafra Card,2,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "F_CashStore"; },{},{}
12212,Giant_Fly_Wing,Giant Fly Wing,2,,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "F_CashPartyCall"; },{},{}
12213,Neuralizer,Neuralizer,2,,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "F_CashReset"; },{},{}
diff --git a/src/map/mob.c b/src/map/mob.c
index da151faed..77bd8e53d 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -2017,12 +2017,16 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
if (sd && battle_config.pk_mode &&
(int)(md->level - sd->status.base_level) >= 20)
drop_rate = (int)(drop_rate*1.25); // pk_mode increase drops if 20 level difference [Valaris]
- if (sd && sd->sc.data[SC_BONUSDROP].timer != -1)
- drop_rate += (int)(0.5+drop_rate*sd->sc.data[SC_BONUSDROP].val1/100.);
// attempt to drop the item
if (rand() % 10000 >= drop_rate)
- continue;
+ {
+ if (sd && sd->sc.data[SC_ITEMBOOST].timer != -1)
+ if (rand() % 10000 >= drop_rate)
+ continue; // Double try by Bubble Gum
+ else
+ continue;
+ }
ditem = mob_setdropitem(md->db->dropitem[i].nameid, 1);
diff --git a/src/map/pc.c b/src/map/pc.c
index 3e6c90792..bf999950e 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -4197,8 +4197,8 @@ static void pc_calcexp(struct map_session_data *sd, unsigned int *base_exp, unsi
(int)(status_get_lv(src) - sd->status.base_level) >= 20)
bonus += 15; // pk_mode additional exp if monster >20 levels [Valaris]
- if (sd->sc.data[SC_BONUSEXP].timer != -1)
- bonus += sd->sc.data[SC_BONUSEXP].val1;
+ if (sd->sc.data[SC_EXPBOOST].timer != -1)
+ bonus += sd->sc.data[SC_EXPBOOST].val1;
if (!bonus)
return;
diff --git a/src/map/skill.c b/src/map/skill.c
index 3e2821464..3784e04d1 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -4824,7 +4824,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
case SC_CARTBOOST: case SC_MELTDOWN: case SC_SAFETYWALL:
case SC_SMA: case SC_SPEEDUP0: case SC_NOCHAT:
case SC_ANKLE: case SC_SPIDERWEB: case SC_JAILED:
- case SC_BONUSDROP: case SC_BONUSEXP: // [ConvexMirror and FieldGuide]
+ case SC_ITEMBOOST: case SC_EXPBOOST: // [ConvexMirror and FieldGuide]
continue;
}
if(i==SC_BERSERK) tsc->data[i].val2=0; //Mark a dispelled berserk to avoid setting hp to 100 by setting hp penalty to 0.
diff --git a/src/map/status.c b/src/map/status.c
index 84ce9b581..0f44a5b7f 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -451,6 +451,10 @@ void initChangeTables(void)
StatusIconChangeTable[SC_LUKFOOD] = SI_FOODLUK;
StatusIconChangeTable[SC_FLEEFOOD]= SI_FOODFLEE;
StatusIconChangeTable[SC_HITFOOD] = SI_FOODHIT;
+ //Cash Items
+ StatusIconChangeTable[SC_EXPBOOST] = SI_EXPBOOST;
+ StatusIconChangeTable[SC_ITEMBOOST] = SI_ITEMBOOST;
+
//Other SC which are not necessarily associated to skills.
StatusChangeFlagTable[SC_ASPDPOTION0] = SCB_ASPD;
StatusChangeFlagTable[SC_ASPDPOTION1] = SCB_ASPD;
@@ -5804,15 +5808,7 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
//Place here SCs that have no SCB_* data, no skill associated, no ICON
//associated, and yet are not wrong/unknown. [Skotlex]
break;
- case SC_BONUSDROP:
- clif_specialeffect(&sd->bl, 348, AREA);
- clif_disp_onlyself(sd, "[Drop Rate Increased]", (int)strlen("[Drop Rate Increased]"));
- if (val1 < 0)
- val1 = 0;
- break;
- case SC_BONUSEXP:
- clif_specialeffect(&sd->bl, 348, AREA);
- clif_disp_onlyself(sd, "[Exp Rate Increased]", (int)strlen("[Exp Rate Increased]"));
+ case SC_EXPBOOST:
if (val1 < 0)
val1 = 0;
break;
@@ -6407,14 +6403,6 @@ int status_change_end( struct block_list* bl , int type,int tid )
case SC_JOINTBEAT:
sc->data[type].val2 = 0; // Clear stackable ailments
break;
- case SC_BONUSEXP:
- clif_disp_onlyself(sd, "[Exp Rate Back to Normal]", (int)strlen("[Exp Rate Back to Normal]"));
- clif_specialeffect(&sd->bl, 488, AREA);
- break;
- case SC_BONUSDROP:
- clif_disp_onlyself(sd, "[Drop Rate Back to Normal]", (int)strlen("[Drop Rate Back to Normal]"));
- clif_specialeffect(&sd->bl, 488, AREA);
- break;
}
opt_flag = 1;
diff --git a/src/map/status.h b/src/map/status.h
index 489a08c66..d98ba1b82 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -269,9 +269,11 @@ enum {
SC_CRITICALWOUND,
SC_MAGICMIRROR,
SC_SLOWCAST,
- SC_SUMMER, // [Zephyrus Summer]
- SC_BONUSEXP, // [Field Guide]
- SC_BONUSDROP, // [Bubble Gum]
+ SC_SUMMER,
+ SC_EXPBOOST, // Field Guide
+ SC_ITEMBOOST, // Bubble Gum
+ SC_BOSSMAPINFO, // Convex Mirror
+ SC_LIFEINSURANCE, // Life Insurance
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
};
int SkillStatusChangeTable(int skill);