Pārlūkot izejas kodu

- MG_STONECURSE and NPC_PETRIFYATTACK now use time1 to specify the "petrifying time". This value has been set to 5 seconds.
- Now when SC_STONE is triggered from status-change cards, it's petrifying duration will be passed as 0, causing the minimum (1 sec) to be used.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9066 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 18 gadi atpakaļ
vecāks
revīzija
274bcb4fa0
6 mainītis faili ar 20 papildinājumiem un 6 dzēšanām
  1. 5 0
      Changelog-Trunk.txt
  2. 2 0
      db/Changelog.txt
  3. 2 2
      db/skill_cast_db.txt
  4. 0 1
      src/map/pc.c
  5. 8 2
      src/map/skill.c
  6. 3 1
      src/map/status.c

+ 5 - 0
Changelog-Trunk.txt

@@ -4,6 +4,11 @@ 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/25
+	* MG_STONECURSE and NPC_PETRIFYATTACK now use time1 to specify the
+	  "petrifying time". This value has been set to 5 seconds. [Skotlex]
+	* Now when SC_STONE is triggered from status-change cards, it's petrifying
+	  duration will be passed as 0, causing the minimum (1 sec) to be used.
+	  [Skotlex]
 	* Got rid of clones in src: old Novice Grounds map -> new_zone0? [Lupus]
 2006/10/24
 	* Removed again your mdef reducing "petrifying" time as apparently it can't

+ 2 - 0
db/Changelog.txt

@@ -20,6 +20,8 @@
 
 ========================
 10/25
+	* MG_STONECURSE and NPC_PETRIFYATTACK now use time1 to specify the
+	  "petrifying time". This value has been set to 5 seconds. [Skotlex]
 	* Fixed view ids of some headgears [Playtester]
 10/24
 	* Kiel Mob updates [Playtester]

+ 2 - 2
db/skill_cast_db.txt

@@ -54,7 +54,7 @@
 //-- MG_FROSTDRIVER
 15,800,1500,0,0,3000:6000:9000:12000:15000:18000:21000:24000:27000:30000
 //-- MG_STONECURSE
-16,1000,0,0,0,11000:12000:13000:14000:15000:16000:17000:18000:19000:20000
+16,1000,0,0,5000,11000:12000:13000:14000:15000:16000:17000:18000:19000:20000
 //-- MG_FIREBALL
 17,1500:1500:1500:1500:1500:1000:1000:1000:1000:1000,1500:1500:1500:1500:1500:1000:1000:1000:1000:1000,0,0,0
 //-- MG_FIREWALL
@@ -317,7 +317,7 @@
 //-- NPC_STUNATTACK
 179,0,0,0,0,3000
 //-- NPC_PETRIFYATTACK
-180,0,0,0,0,10000:11000:12000:13000:14000:15000:16000:17000:18000:19000
+180,0,0,0,5000,10000:11000:12000:13000:14000:15000:16000:17000:18000:19000
 //-- NPC_CURSEATTACK
 181,0,0,0,0,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000
 //-- NPC_SLEEPATTACK

+ 0 - 1
src/map/pc.c

@@ -3149,7 +3149,6 @@ int pc_show_steal(struct block_list *bl,va_list ap)
 {
 	struct map_session_data *sd;
 	int itemid;
-	int type;
 
 	struct item_data *item=NULL;
 	char output[100];

+ 8 - 2
src/map/skill.c

@@ -1214,13 +1214,17 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
 		break;
 			
 	case NPC_PETRIFYATTACK:
+		sc_start4(bl,SkillStatusChangeTable(skillid),50+10*skilllv,
+			skilllv,0,0,skill_get_time(skillid,skilllv), 
+			skill_get_time2(skillid,skilllv));
+		break;
 	case NPC_CURSEATTACK:
 	case NPC_SLEEPATTACK:
 	case NPC_BLINDATTACK:
 	case NPC_POISON:
 	case NPC_SILENCEATTACK:
 	case NPC_STUNATTACK:
-		sc_start(bl,SkillStatusChangeTable(skillid),50+10*skilllv,skilllv,src->type==BL_PET?skilllv*1000:skill_get_time2(skillid,skilllv));
+		sc_start(bl,SkillStatusChangeTable(skillid),50+10*skilllv,skilllv,skill_get_time2(skillid,skilllv));
 		break;
 
 	case NPC_MENTALBREAKER: 
@@ -4227,7 +4231,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 				if (sd) clif_skill_fail(sd,skillid,0,0);
 				break;
 			}
-			if (sc_start(bl,SC_STONE,(skilllv*4+20),skilllv,skill_get_time2(skillid,skilllv)))
+			if (sc_start4(bl,SC_STONE,(skilllv*4+20),
+				skilllv, 0, 0, skill_get_time(skillid, skilllv),
+				skill_get_time2(skillid,skilllv)))
 					clif_skill_nodamage(src,bl,skillid,skilllv,1);
 			else if(sd) {
 				clif_skill_fail(sd,skillid,0,0);

+ 3 - 1
src/map/status.c

@@ -4993,7 +4993,9 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
 			if (!val2) val2 = 1;
 			val3 = tick/1000; //Petrified HP-damage iterations.
 			if(val3 < 1) val3 = 1; 
-			tick = 5000; //Petrifying time.
+			tick = val4; //Petrifying time.
+			if (tick < 1000)
+				tick = 1000; //Min time
 			calc_flag = 0; //Actual status changes take effect on petrified state.
 			break;