瀏覽代碼

Fixed a few properties of NPC_CHANGEUNDEAD bugreport:79

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12763 54d463be-8e91-2dee-dedb-b68131a5f0ec
shadow 17 年之前
父節點
當前提交
69089d210e
共有 5 個文件被更改,包括 28 次插入0 次删除
  1. 3 0
      Changelog-Trunk.txt
  2. 5 0
      db/item_db2.txt
  3. 3 0
      src/map/map.c
  4. 7 0
      src/map/skill.c
  5. 10 0
      src/map/status.c

+ 3 - 0
Changelog-Trunk.txt

@@ -3,6 +3,9 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
+2008/06/07
+	* Fixed a few properties of NPC_CHANGEUNDEAD bugreport:79 [Brainstorm]
+
 2008/06/01
 	* Added Ai4rei's "gm can view all players' equips" feature [ultramage]
 2008/05/31

+ 5 - 0
db/item_db2.txt

@@ -9,3 +9,8 @@
 //7951,Token_Bag,Token Bag,3,,10,10,,,,,,,,,,,,,{},{},{}
 //1998,Jeramiah's_Jur,Jeramiah's Jur,3,,10,10,,,,,,,,,,,,,{},{},{}
 //1999,Zed's_Staff,Zed's Staff,3,,10,10,,,,,,,,,,,,,{},{},{}
+
+
+// Old Tuxedo and Wedding Dress, will display the outfit when worn, un-comment to enable it
+//2338,Wedding_Dress,Wedding Dress,5,43000,,500,,0,,0,0xFFFFFFFE,7,0,16,,0,1,0,{},{ setoption Option_Wedding,1; },{ setoption Option_Wedding,0; }
+//7170,Tuxedo,Tuxedo,5,43000,,10,,0,,0,0xFFFFFFFE,7,1,16,,0,1,0,{},{ setoption Option_Wedding,1; },{ setoption Option_Wedding,0; }

+ 3 - 0
src/map/map.c

@@ -1607,6 +1607,9 @@ int map_quit(struct map_session_data *sd)
 				status_change_end(&sd->bl,SC_EXPLOSIONSPIRITS,-1);
 			if(sd->sc.data[SC_REGENERATION] && sd->sc.data[SC_REGENERATION]->val4)
 				status_change_end(&sd->bl,SC_REGENERATION,-1);
+			//TO-DO Probably there are way more NPC_type negative status that are removed
+			if(sd->sc.data[SC_CHANGEUNDEAD])
+				status_change_end(&sd->bl,SC_CHANGEUNDEAD,-1);
 		}
 		if (battle_config.debuff_on_logout&2)
 		{

+ 7 - 0
src/map/skill.c

@@ -4397,7 +4397,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 	case NPC_CHANGEHOLY:
 	case NPC_CHANGEDARKNESS:
 	case NPC_CHANGETELEKINESIS:
+		clif_skill_nodamage(src,bl,skillid,skilllv,
+			sc_start2(bl, type, 100, skilllv, skill_get_ele(skillid,skilllv), 
+				skill_get_time(skillid, skilllv)));
+		break;
 	case NPC_CHANGEUNDEAD:
+		//This skill should fail if target is wearing bathory/evil druid card [Brainstorm]
+		//TO-DO This is ugly, fix it
+		if(tstatus->def_ele==ELE_UNDEAD || tstatus->def_ele==ELE_DARK) break;
 		clif_skill_nodamage(src,bl,skillid,skilllv,
 			sc_start2(bl, type, 100, skilllv, skill_get_ele(skillid,skilllv), 
 				skill_get_time(skillid, skilllv)));

+ 10 - 0
src/map/status.c

@@ -4840,6 +4840,8 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
 	switch (type)
 	{
 	case SC_BLESSING:
+		//TO-DO Blessing and Agi up should do 1 damage against players on Undead Status, even on PvM
+		//but cannot be plagiarized (this requires aegis investigation on packets and official behavior) [Brainstorm]
 		if ((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC) {
 			if (sc->data[SC_CURSE])
 				status_change_end(bl,SC_CURSE,-1);
@@ -4956,6 +4958,14 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
 		if(sc->data[SC_ADJUSTMENT])
 			status_change_end(bl,SC_ADJUSTMENT,-1);
 		break;
+	//NPC_CHANGEUNDEAD will debuff Blessing and Agi Up
+	case SC_CHANGEUNDEAD:
+		if(sc->data[SC_BLESSING])
+			status_change_end(bl,SC_BLESSING,-1);
+		if(sc->data[SC_INCREASEAGI])
+			status_change_end(bl,SC_INCREASEAGI,-1);
+		break;
+		
 	}
 
 	//Check for overlapping fails