Jump to content
  • 0
Sign in to follow this  
skempertush

Trans and 3rds Cast Time Separation

Question

int fixed = 0, fixcast_r = 0, varcast_r = 0, i = 0;//down a bitif(sd->class_&JOBL_THIRD) {    fixed = skill->get_fixed_cast(skill_id, skill_lv);}if( fixed == 0 ){    if(sd->class_&JOBL_THIRD) {        fixed = (int)time * 20 / 100; // fixed time        time = time * 80 / 100; // variable time    } else {        time = time * 100 / 100; // variable time    }}else if( fixed < 0 ) // no fixed cast time    fixed = 0;//Further downif(sd->class_&JOBL_THIRD) { //HARRIS    if( !(skill->get_castnodex(skill_id, skill_lv)&1) )// reduction from status point        time = (1 - sqrt( ((float)(status_get_dex(bl)*2 + status_get_int(bl)) / battle_config.vcast_stat_scale) )) * time;} else {    if( !(skill->get_castnodex(skill_id, skill_lv)&1) )// reduction from status point        time = (1 - sqrt( ((float)(status_get_dex(bl)*3.535) / battle_config.vcast_stat_scale) )) * time;}

Basically, what I want is 150dex for Trans making them Instacast and 3rds still have fixed cast.

Transcendent- It works on some skills like StormGust, but for Dangerous Soul Collect is no cast.

3rd jobs- Working normal(Haven't test all skills)

 

Problem is

ReduceDex [ 80%(VCast) ] + 20%(FCast)    <<<<NormalReduceDex [ 100%(VCast) + 0%(FCast) ]    <<<<My ChangesReduceDex [ 80%(VCast) + 20%(FCast) ]    <<<<I Need

Needing assistance....

Edited by skempertush

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

I managed to solve my own problem. I revert back my changes then did this.

src/map/skill.c

if( varcast_r < 0 ) // now compute overall factors    time = time * (1 - (float)varcast_r / 100);if(sd->class_&JOBL_THIRD) {    if( !(skill->get_castnodex(skill_id, skill_lv)&1) )// reduction from status point        time = (1 - sqrt( ((float)(status_get_dex(bl)*2 + status_get_int(bl)) / battle_config.vcast_stat_scale) )) * time;} else {    time = time + (1 - (float)min(fixcast_r, 100) / 100) * max(fixed,0);    if( !(skill->get_castnodex(skill_id, skill_lv)&1) )// reduction from status point        time = (1 - sqrt( ((float)(status_get_dex(bl)*3.535) / battle_config.vcast_stat_scale) )) * time;}	// underflow checking/cappingif(!(sd->class_&JOBL_THIRD)) time = max(time, 0);else time = max(time, 0) + (1 - (float)min(fixcast_r, 100) / 100) * max(fixed,0);

I'm not sure IF its totally solved. Though I did get good result.

Share this post


Link to post
Share on other sites
  • 0

wow if this work flawless this i something i had to go search for but seems i got this :D

thnx ahead

Edited by Zezicla

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

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