How to enable multiple hits for claymore trap?

mybitch

New member
Messages
291
Points
0
Location
Prontera
To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.

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..

 
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.

 
Code:
// 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.
 
// 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..

 
Last edited by a moderator:
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

Code:
				// 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
Code:
				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);
 
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
Code:
				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?

 
Last edited by a moderator:
aaah. i was thinking about your other request xdd that code wont work them ehm hmm

 
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.

 
find

Code:
		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
Code:
		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
 
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
Code:
		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? 

 
Last edited by a moderator:
ah

change that code to the following

Code:
		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);
 
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)

default_ani_meow.gif


 
  • Upvote
Reactions: Ind
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)

default_ani_meow.gif
and thats why malufett is our skill mechanics genius <333
 
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_CLAYMORETRAP123,0,0,0,20000:40000:60000:80000:100000,0,0,-1
so the total hit will be (duration1 left/1000)

default_ani_meow.gif
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..

 
Last edited by a moderator:
Back
Top