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

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...
Sign in to follow this  

×
×
  • Create New...

Important Information

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