Jump to content
  • 0

instant cast for 2nd trans classes! URGENT


Question

17 answers to this question

Recommended Posts

Posted (edited)

in pre-re.. the cast rate dex scale for the jobs is 150, so i would say that 3rd jobs are not applicable in pre-re servers.

if you want pre-re emulator but has a seperate cast rate dex for trans jobs and 3rd jobs, i recommend you use 3CeAM.

Edited by Rage
Posted

Renewal has 2 cast times.

1 Fixed cast time and

1 Variable cast time

The fixed cast time can only be reduced by items that reduce fixed cast time, but cannot reduce it fully.

Variable cast time is the dex dependent cast time. You can reduce the var cast time fully by having dex for instant cast (170). You would still have the fixed cast time tho.

Meaning that you can´t have instant cast in renewal. Only Pre Re.

Short:

Fixed cast time -> Not reduced by dex and cannot reach 0

Var cast time -> reduced by dex can reach 0

total cast time = fixed + var cast

Lets say you have 170 dex.

You are casting Storm Gust lvl 10 (15 sec cast time)

15 sec are the total cast time

20% of the 15 sec are fixed cast time (3sec)

Leaving 12 sec as var cast time.

Since you have 170 dex / instant cast, you reduce the variable cast time fully to 0.

Total casttime = var cast (0) + fix (3) = 3sec

Posted

wah=.= don understand=_= so.. the conclusion is no way to make it 150 dex cast for trans classes of renewal svn?

Renewal has 2 cast times.

1 Fixed cast time and

1 Variable cast time

The fixed cast time can only be reduced by items that reduce fixed cast time, but cannot reduce it fully.

Variable cast time is the dex dependent cast time. You can reduce the var cast time fully by having dex for instant cast (170). You would still have the fixed cast time tho.

Meaning that you can´t have instant cast in renewal. Only Pre Re.

Short:

Fixed cast time -> Not reduced by dex and cannot reach 0

Var cast time -> reduced by dex can reach 0

total cast time = fixed + var cast

Lets say you have 170 dex.

You are casting Storm Gust lvl 10 (15 sec cast time)

15 sec are the total cast time

20% of the 15 sec are fixed cast time (3sec)

Leaving 12 sec as var cast time.

Since you have 170 dex / instant cast, you reduce the variable cast time fully to 0.

Total casttime = var cast (0) + fix (3) = 3sec

so.. the conclusion is no way to make it 150 dex cast for trans classes of renewal svn?

bump

Posted

try this out..

Index: skill.c
===================================================================
--- skill.c (revision 16356)
+++ skill.c (working copy)
@@ -13011,7 +13011,9 @@
 struct status_change *sc = status_get_sc(bl);
 struct map_session_data *sd = BL_CAST(BL_PC,bl);
#ifdef RENEWAL_CAST
- int fixed = skill_get_fixed_cast(skill_id, skill_lv);
+ int fixed = 0;
+ if(sd->class_&JOBL_THIRD)
+  fixed = skill_get_fixed_cast(skill_id, skill_lv);
 if( !fixed ) {
  fixed = skill_get_cast(skill_id, skill_lv);
  fixed = ( fixed > 1 ? ( fixed * 20 / 100 ) : 0 );

Posted

try this out..

Index: skill.c
===================================================================
--- skill.c (revision 16356)
+++ skill.c (working copy)
@@ -13011,7 +13011,9 @@
 struct status_change *sc = status_get_sc(bl);
 struct map_session_data *sd = BL_CAST(BL_PC,bl);
#ifdef RENEWAL_CAST
- int fixed = skill_get_fixed_cast(skill_id, skill_lv);
+ int fixed = 0;
+ if(sd->class_&JOBL_THIRD)
+  fixed = skill_get_fixed_cast(skill_id, skill_lv);
 if( !fixed ) {
  fixed = skill_get_cast(skill_id, skill_lv);
  fixed = ( fixed > 1 ? ( fixed * 20 / 100 ) : 0 );

sorry , i mean i cant even found these word in my skill.c ==

Posted

I don't know why you can find it. I can see it right here.

anyway if you manage to find it..

here's a new diff for that exact revision..

Index: skill.c
===================================================================
--- skill.c (revision 16328)
+++ skill.c (working copy)
@@ -13000,8 +13000,11 @@
 *------------------------------------------*/
int skill_castfix_sc (struct block_list *bl, int time, int skill_id, int skill_lv) {
 struct status_change *sc = status_get_sc(bl);
+ struct map_session_data *sd = BL_CAST(BL_PC,bl);
#ifdef RENEWAL_CAST
- int fixed = skill_get_fixed_cast(skill_id, skill_lv);
+ int fixed = 0;
+ if(sd && sd->class_&JOBL_THIRD)
+  fixed = skill_get_fixed_cast(skill_id, skill_lv);
 if( !fixed ) {
  fixed = skill_get_cast(skill_id, skill_lv);
  fixed = ( fixed > 1 ? ( fixed * 20 / 100 ) : 0 );

Posted

I don't know why you can find it. I can see it right here.

anyway if you manage to find it..

here's a new diff for that exact revision..

Index: skill.c
===================================================================
--- skill.c (revision 16328)
+++ skill.c (working copy)
@@ -13000,8 +13000,11 @@
 *------------------------------------------*/
int skill_castfix_sc (struct block_list *bl, int time, int skill_id, int skill_lv) {
 struct status_change *sc = status_get_sc(bl);
+ struct map_session_data *sd = BL_CAST(BL_PC,bl);
#ifdef RENEWAL_CAST
- int fixed = skill_get_fixed_cast(skill_id, skill_lv);
+ int fixed = 0;
+ if(sd && sd->class_&JOBL_THIRD)
+  fixed = skill_get_fixed_cast(skill_id, skill_lv);
 if( !fixed ) {
  fixed = skill_get_cast(skill_id, skill_lv);
  fixed = ( fixed > 1 ? ( fixed * 20 / 100 ) : 0 );

yes, got it.. compiled my server, but stil the same, 2nd classes stil need 170dex just uncast

Posted

I don't know why you can find it. I can see it right here.

anyway if you manage to find it..

here's a new diff for that exact revision..

 

Index: skill.c
===================================================================
--- skill.c (revision 16328)
+++ skill.c (working copy)
@@ -13000,8 +13000,11 @@
  *------------------------------------------*/
int skill_castfix_sc (struct block_list *bl, int time, int skill_id, int skill_lv) {
  struct status_change *sc = status_get_sc(bl);
+ struct map_session_data *sd = BL_CAST(BL_PC,bl);
#ifdef RENEWAL_CAST
- int fixed = skill_get_fixed_cast(skill_id, skill_lv);
+ int fixed = 0;
+ if(sd && sd->class_&JOBL_THIRD)
+  fixed = skill_get_fixed_cast(skill_id, skill_lv);
  if( !fixed ) {
   fixed = skill_get_cast(skill_id, skill_lv);
   fixed = ( fixed > 1 ? ( fixed * 20 / 100 ) : 0 );

may i have a diff for latest svn? im using rathena  rev 17339

Posted

I don't know why you can find it. I can see it right here.

anyway if you manage to find it..

here's a new diff for that exact revision..

 

Index: skill.c
===================================================================
--- skill.c (revision 16328)
+++ skill.c (working copy)
@@ -13000,8 +13000,11 @@
  *------------------------------------------*/
int skill_castfix_sc (struct block_list *bl, int time, int skill_id, int skill_lv) {
  struct status_change *sc = status_get_sc(bl);
+ struct map_session_data *sd = BL_CAST(BL_PC,bl);
#ifdef RENEWAL_CAST
- int fixed = skill_get_fixed_cast(skill_id, skill_lv);
+ int fixed = 0;
+ if(sd && sd->class_&JOBL_THIRD)
+  fixed = skill_get_fixed_cast(skill_id, skill_lv);
  if( !fixed ) {
   fixed = skill_get_cast(skill_id, skill_lv);
   fixed = ( fixed > 1 ? ( fixed * 20 / 100 ) : 0 );

how to use this on the latest revision ? the remove fix cast times for all non 3rd job skills?

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.   Paste as plain text instead

  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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...