If u want 3rd Class skill that only has fixed cast time, the gives all fixed cast time value for non-3rd skill to -1 on db/re/skill_cast_db.txt.
If u want every 3rd Class casts any skill, it has fixed cast time, example Creator casts AM_POTIONPITCHER (db value: 0), it doesn't get Fixed Cast time. But when Genetic casts the same skill with same db value, it has 20% fixed cast time. maybe...
diff --git a/src/map/skill.c b/src/map/skill.c
index f9b6297..4069135 100755
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -15474,10 +15474,14 @@ int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16
if( bl->type == BL_MOB )
return (int)time;
- if( fixed == 0 ){
- fixed = (int)time * 20 / 100; // fixed time
- time = time * 80 / 100; // variable time
- }else if( fixed < 0 ) // no fixed cast time
+ if (!sd || (sd && sd->class_&JOBL_THIRD)) {
+ if( fixed == 0 ){
+ fixed = (int)time * 20 / 100; // fixed time
+ time = time * 80 / 100; // variable time
+ }else if( fixed < 0 ) // no fixed cast time
+ fixed = 0;
+ }
+ else
fixed = 0;
if(sd && !(skill_get_castnodex(skill_id, skill_lv)&4) ){ // Increases/Decreases fixed/variable cast time of a skill by item/card bonuses.
if u want change the 20% to 10%, just change
diff --git a/src/map/skill.c b/src/map/skill.c
index f9b6297..efdb192 100755
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -15475,8 +15475,8 @@ int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16
return (int)time;
if( fixed == 0 ){
- fixed = (int)time * 20 / 100; // fixed time
- time = time * 80 / 100; // variable time
+ fixed = (int)time * 10 / 100; // fixed time
+ time = time * 90 / 100; // variable time
}else if( fixed < 0 ) // no fixed cast time
fixed = 0;