Просмотр исходного кода

* Some more updates to the skill unit code
- renamed SKILLUNITTIMER_INVERVAL to SKILLUNITTIMER_INTERVAL
- Heat now depends on the interval settings rather than firewall_hits_on_undead
- if you want Heat to do more or less hits you can now change the interval value in the skill_unit_db.txt (official+default: 20ms)
- Icewall doesn't break anymore when the SKILLUNITTIMER_INTERVAL gets changed

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

Playtester 17 лет назад
Родитель
Сommit
63b525649c
4 измененных файлов с 17 добавлено и 9 удалено
  1. 5 0
      Changelog-Trunk.txt
  2. 3 0
      db/Changelog.txt
  3. 3 3
      db/skill_unit_db.txt
  4. 6 6
      src/map/skill.c

+ 5 - 0
Changelog-Trunk.txt

@@ -3,6 +3,11 @@ 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.
 
+2007/10/20
+	* Some more updates to the skill unit code [Playtester]
+	- renamed SKILLUNITTIMER_INVERVAL to SKILLUNITTIMER_INTERVAL
+	- Heat now depends on the interval settings rather than firewall_hits_on_undead
+	- Icewall doesn't break anymore when the SKILLUNITTIMER_INTERVAL gets changed
 2007/10/19
 	* Added bonusautoscript and bonusautoscript2. These are used to attach a
 	  script to a player which gets executed on attack (or when attacked). This

+ 3 - 0
db/Changelog.txt

@@ -32,6 +32,9 @@
 	13034 Desert_Twilight		Small chance to activate max Attack Speed for 7 seconds.
 
 =======================
+10/20
+	* Changed interval of Heat to 20ms [Playtester]
+	- you can change this now if you want Heat to do more or less hits
 10/19
 	* Updated some new cards for testing purposes [Playtester]
 	* Fixed some typos and updated Atroce Card [Playtester]

+ 3 - 3
db/skill_unit_db.txt

@@ -83,9 +83,9 @@
 405,0xb7,    ,  0, 1,1000,enemy, 0x000	//PF_SPIDERWEB
 409,0xb2,    ,  0,-1,  -1,noone, 0x000	//WE_CALLBABY
 410,0xb2,    ,  0,-1,  -1,noone, 0x000	//WE_CALLPARENT
-428,0x86,    ,  0, 1,   1,enemy, 0x000	//SG_SUN_WARM
-429,0x86,    ,  0, 1,   1,enemy, 0x000	//SG_MOON_WARM
-430,0x86,    ,  0, 1,   1,enemy, 0x000	//SG_STAR_WARM
+428,0x86,    ,  0, 1,  20,enemy, 0x000	//SG_SUN_WARM
+429,0x86,    ,  0, 1,  20,enemy, 0x000	//SG_MOON_WARM
+430,0x86,    ,  0, 1,  20,enemy, 0x000	//SG_STAR_WARM
 484,0xb8,    ,  2, 0,1000,enemy, 0x808	//HW_GRAVITATION
 488,0xb9,    ,  3, 0,  -1,all,   0x200	//CG_HERMODE
 516,0xba,    ,  3, 0, 100,enemy, 0x000	//GS_DESPERADO

+ 6 - 6
src/map/skill.c

@@ -36,7 +36,7 @@
 #include <time.h>
 
 
-#define SKILLUNITTIMER_INVERVAL	100
+#define SKILLUNITTIMER_INTERVAL	100
 //Guild Skills are shifted to these to make them stick into the skill array.
 #define GD_SKILLRANGEMIN 900
 #define GD_SKILLRANGEMAX GD_SKILLRANGEMIN+MAX_GUILDSKILL
@@ -7399,7 +7399,7 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
 						int count=0;
 						int x = bl->x, y = bl->y;
 						//If target isn't knocked back it should hit every 20ms [Playtester]
-						while (count++ < battle_config.firewall_hits_on_undead && x == bl->x && y == bl->y && !status_isdead(bl)){
+						while (count++ < SKILLUNITTIMER_INTERVAL/sg->interval && x == bl->x && y == bl->y && !status_isdead(bl)){
 							if (!status_charge(ss, 0, 2)){  //should end when out of sp.
 								sg->limit=DIFF_TICK(tick,sg->tick);
 								break;
@@ -10332,8 +10332,8 @@ int skill_unit_timer_sub (struct block_list* bl, va_list ap)
 		switch( group->unit_id )
 		{
 			case UNT_ICEWALL:
-				// icewall loses 50 hp every second (and this executes every 100ms, so...)
-				unit->val1 -= 5; // trap's hp
+				// icewall loses 50 hp every second
+				unit->val1 -= SKILLUNITTIMER_INTERVAL/20; // trap's hp
 				if( unit->val1 <= 0 && unit->limit + group->tick > tick + 700 )
 					unit->limit = DIFF_TICK(tick+700,group->tick);
 			break;
@@ -10354,7 +10354,7 @@ int skill_unit_timer_sub (struct block_list* bl, va_list ap)
 	return 0;
 }
 /*==========================================
- * Executes on all skill units every SKILLUNITTIMER_INVERVAL miliseconds.
+ * Executes on all skill units every SKILLUNITTIMER_INTERVAL miliseconds.
  *------------------------------------------*/
 int skill_unit_timer (int tid, unsigned int tick, int id, int data)
 {
@@ -11856,7 +11856,7 @@ int do_init_skill (void)
 	add_timer_func_list(skill_timerskill,"skill_timerskill");
 	add_timer_func_list(skill_blockpc_end, "skill_blockpc_end");
 	
-	add_timer_interval(gettick()+SKILLUNITTIMER_INVERVAL,skill_unit_timer,0,0,SKILLUNITTIMER_INVERVAL);
+	add_timer_interval(gettick()+SKILLUNITTIMER_INTERVAL,skill_unit_timer,0,0,SKILLUNITTIMER_INTERVAL);
 
 	return 0;
 }