Jump to content
  • 0
mybitch

How to enable multiple hits for claymore trap?

Question

 

It shows the multiple hits of claymore trap. I've tried to edit the skill_db 

 

to

 

 

123,3,6,2,3,2,2,5,9,no,0,0x80,0,misc,0,	HT_CLAYMORETRAP,Claymore Trap

 

Where list_num is 9 to do 9 hits but the damage only increases. It doesn't show how many times it hits the monster..

Share this post


Link to post
Share on other sites

16 answers to this question

Recommended Posts

  • 0

for easy trick

 

map_foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);if (sg->unit_id != UNT_FIREPILLAR_ACTIVE)  clif->changetraplook(&src->bl, sg->unit_id==UNT_LANDMINE?UNT_FIREPILLAR_ACTIVE:UNT_USED_TRAPS);sg->limit=DIFF_TICK(tick,sg->tick)+1500 +  (sg->unit_id== UNT_CLUSTERBOMB || sg->unit_id== UNT_ICEBOUNDTRAP?1000:0);// Cluster Bomb/Icebound has 1s to disappear once activated.if( sg->unit_id != UNT_CLAYMORETRAP )	 sg->unit_id = UNT_USED_TRAPS; //Changed ID so it does not invoke a for each in area again.   break;

then change your skill_cast_db.txt


 

//-- HT_CLAYMORETRAP
123,0,0,0,20000:40000:60000:80000:100000,0,0,-1

 

so the total hit will be (duration1 left/1000)

 

:meow:

Share this post


Link to post
Share on other sites
  • 0

Additional Info.. 

 

Claymore Trap and Blast Mine do 1 Hit per mob that runs over it at the same time.  If 20 mobs run over it it does his base damage * 20 Hits.

Share this post


Link to post
Share on other sites
  • 0
// 09 Number of hits (when positive, damage is increased by hits, //    negative values just show number of hits without increasing total damage)
your damage increases because you're using a positive 9 not a negative 9.

Share this post


Link to post
Share on other sites
  • 0

 

// 09 Number of hits (when positive, damage is increased by hits, //    negative values just show number of hits without increasing total damage)
your damage increases because you're using a positive 9 not a negative 9.

 

Thanks about this but the video, the claymore trap works as.. if x mobs steps on the claymore trap.. the damage is  dependent on the x mobs who steps on it.. for example..

 

2 mobs steps on the claymore trap.. the damage will be twice the normal for all mobs.. as if.. if 1 mob steps on it.. isn't it splashes the damage? therefore the damage stacks on how many mobs steps on it..

 

Mmmm..

 

1 mob = 1 splash = damage all..

2 mob = 1 splash = damage all..

 

should be..

 

1 mob = 1 splash = damage all

2 mob = 2 splash = damage of 2 splash all

 

like this.. how to do it?

 

Also, after the mobs steps on the claymore there is that yellow count on the screen..

Edited by mybitch

Share this post


Link to post
Share on other sites
  • 0

aah uhm i feel sort of lazy todo that one xdd well to sum it up it'd take one to edit skill_castend_damage_id to set AC_SHOWER flag as SD_LEVEL (with it var skill_area_temp[0] will have the number of people that will be affected)...well i'll do it in a very ugly way because im lazy xdd..

find

				// recursive invocation of skill->castend_damage_id() with flag|1				map_foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), ( skill_id == WM_REVERBERATION_MELEE || skill_id == WM_REVERBERATION_MAGIC )?BL_CHAR:splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill->castend_damage_id);
change to
				if( skill_id == AC_SHOWER ) {					int spa = 0, spl = map_foreachinrange(skill->area_sub, bl, (skill_id == AS_SPLASHER)?1:skill->get_splash(skill_id, skill_lv), BL_CHAR, src, skill_id, skill_lv, tick, BCT_ENEMY, skill->area_sub_count);					if( spl <= 0 ) spl = 1;					for( spa = 0; spa < spl; spa++ )						map_foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), ( skill_id == WM_REVERBERATION_MELEE || skill_id == WM_REVERBERATION_MAGIC )?BL_CHAR:splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill->castend_damage_id);				} else // recursive invocation of skill->castend_damage_id() with flag|1					map_foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), ( skill_id == WM_REVERBERATION_MELEE || skill_id == WM_REVERBERATION_MAGIC )?BL_CHAR:splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill->castend_damage_id);

Share this post


Link to post
Share on other sites
  • 0

 

aah uhm i feel sort of lazy todo that one xdd well to sum it up it'd take one to edit skill_castend_damage_id to set AC_SHOWER flag as SD_LEVEL (with it var skill_area_temp[0] will have the number of people that will be affected)...well i'll do it in a very ugly way because im lazy xdd..

find

				// recursive invocation of skill->castend_damage_id() with flag|1				map_foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), ( skill_id == WM_REVERBERATION_MELEE || skill_id == WM_REVERBERATION_MAGIC )?BL_CHAR:splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill->castend_damage_id);
change to
				if( skill_id == AC_SHOWER ) {					int spa = 0, spl = map_foreachinrange(skill->area_sub, bl, (skill_id == AS_SPLASHER)?1:skill->get_splash(skill_id, skill_lv), BL_CHAR, src, skill_id, skill_lv, tick, BCT_ENEMY, skill->area_sub_count);					if( spl <= 0 ) spl = 1;					for( spa = 0; spa < spl; spa++ )						map_foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), ( skill_id == WM_REVERBERATION_MELEE || skill_id == WM_REVERBERATION_MAGIC )?BL_CHAR:splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill->castend_damage_id);				} else // recursive invocation of skill->castend_damage_id() with flag|1					map_foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), ( skill_id == WM_REVERBERATION_MELEE || skill_id == WM_REVERBERATION_MAGIC )?BL_CHAR:splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill->castend_damage_id);

 

not AC_SHOWER but HT_CLAYMORETRAP .. 

 

I'll just change AC_SHOWER to HT_CLAYMORE TRAP? Also where should I replace this? skill.c?

Edited by mybitch

Share this post


Link to post
Share on other sites
  • 0

aaah. i was thinking about your other request xdd that code wont work them ehm hmm

 

The other request was solved. The monster now is moving backwards instead of moving sidewards hehe! Isn't this code applicable to episode 8? hehe.

Share this post


Link to post
Share on other sites
  • 0

find

		case UNT_FIREPILLAR_ACTIVE:			map_foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);
change to
		case UNT_FIREPILLAR_ACTIVE:			if( sg->unit_id == UNT_CLAYMORETRAP ) {				int spa = 0, spl = map_foreachinrange(skill->area_sub, &src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), BL_CHAR, &src->bl, sg->skill_id, sg->skill_lv, tick, BCT_ENEMY, skill->area_sub_count);				if( spl <= 0 ) spl = 1;				for( spa = 0; spa < spl; spa++ )					map_foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);			} else				map_foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);
again untested, and poorly written because im lazy #__# XD

Share this post


Link to post
Share on other sites
  • 0

 

find

		case UNT_FIREPILLAR_ACTIVE:			map_foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);
change to
		case UNT_FIREPILLAR_ACTIVE:			if( sg->unit_id == UNT_CLAYMORETRAP ) {				int spa = 0, spl = map_foreachinrange(skill->area_sub, &src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), BL_CHAR, &src->bl, sg->skill_id, sg->skill_lv, tick, BCT_ENEMY, skill->area_sub_count);				if( spl <= 0 ) spl = 1;				for( spa = 0; spa < spl; spa++ )					map_foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);			} else				map_foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);
again untested, and poorly written because im lazy #__# XD

 

It works but the damage doesn't show. For example the maximum damage showing doesn't stack only shows 900 where 900 is the damage per mobs.. but the total damage dealt by the mob is more than it..

 

How to show stacked damage on the claymore trap?

 

IND, is it possible to reproduce the same damage shown in the video at 2:14 seconds onwards? 

Edited by mybitch

Share this post


Link to post
Share on other sites
  • 0

ah

change that code to the following

		case UNT_FIREPILLAR_ACTIVE:			if( sg->unit_id == UNT_CLAYMORETRAP ) {				int spa = 0, spl = map_foreachinrange(skill->area_sub, &src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), BL_CHAR, &src->bl, sg->skill_id, sg->skill_lv, tick, BCT_ENEMY, skill->area_sub_count);				if( spl <= 0 ) spl = 1;				for( spa = 0; spa < spl; spa++ )					map_foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick+(50*spa));			} else				map_foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);

Share this post


Link to post
Share on other sites
  • 0

for easy trick

 

 

map_foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);if (sg->unit_id != UNT_FIREPILLAR_ACTIVE)  clif->changetraplook(&src->bl, sg->unit_id==UNT_LANDMINE?UNT_FIREPILLAR_ACTIVE:UNT_USED_TRAPS);sg->limit=DIFF_TICK(tick,sg->tick)+1500 +  (sg->unit_id== UNT_CLUSTERBOMB || sg->unit_id== UNT_ICEBOUNDTRAP?1000:0);// Cluster Bomb/Icebound has 1s to disappear once activated.if( sg->unit_id != UNT_CLAYMORETRAP )	 sg->unit_id = UNT_USED_TRAPS; //Changed ID so it does not invoke a for each in area again.   break;
then change your skill_cast_db.txt

//-- HT_CLAYMORETRAP

123,0,0,0,20000:40000:60000:80000:100000,0,0,-1

 

so the total hit will be (duration1 left/1000)

 

:meow:

 

 

and thats why malufett is our skill mechanics genius <333

Share this post


Link to post
Share on other sites
  • 0

for easy trick

 

map_foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);if (sg->unit_id != UNT_FIREPILLAR_ACTIVE)  clif->changetraplook(&src->bl, sg->unit_id==UNT_LANDMINE?UNT_FIREPILLAR_ACTIVE:UNT_USED_TRAPS);sg->limit=DIFF_TICK(tick,sg->tick)+1500 +  (sg->unit_id== UNT_CLUSTERBOMB || sg->unit_id== UNT_ICEBOUNDTRAP?1000:0);// Cluster Bomb/Icebound has 1s to disappear once activated.if( sg->unit_id != UNT_CLAYMORETRAP )	 sg->unit_id = UNT_USED_TRAPS; //Changed ID so it does not invoke a for each in area again.   break;

then change your skill_cast_db.txt

 

//-- HT_CLAYMORETRAP

123,0,0,0,20000:40000:60000:80000:100000,0,0,-1

 

so the total hit will be (duration1 left/1000)

 

:meow:

 

Oh it worked. Just get rid of -1 after 2 zeroes on the skill_cast_db but the problem is the yellow damage doesn't shows up hehehe. Only the damage dealt per monster..

Edited by mybitch

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.