Hi everyone . First of all i would like to say that this is my first post, so I don't know if this is the correct section(I think it COULD be).
So, my problem is that I made a script that after you finish a quest you get some 3rd job skills for Trans classes(my server is pre-re so no 3rd classes). The script is working as intended and all skills work but Rune Mastery is giving me a little trouble.
The thing is I can craft the Runes normally as a Lord Knight, but when I try to use them I can't, and as far as I know all my DB is rightly edited, so I think that a Source restriction may be blocking the skill that the rune uses for any Job that isn't a Rune Knight. I've checked my item_db, skill_db, skill_cast_db, skill_require_db and everything seems fine so i think that my problem is not there.
I also know that to use the Runes, a certain Level of Rune Mastery is Needed (I've checked in skill.c ),and maybe in that part of the code there is the restriction for Rune Knights that I couldn't find.
I'm going to post the part of the Item_db that I edited so that Lord Knights(In fact, any Job) could use them.( I'm posting it so that there is no doubt that everything is allright in my DB . )
//*==============================================================================*
//Rune Knight Runes for Lord Knight
//*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
//Created Runes
12725,Runstone_Nosiege,Nauthiz Rune,11,100,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "RK_REFRESH",1; },{},{}
12726,Runstone_Rhydo,Raido Rune,11,100,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "RK_CRUSHSTRIKE",1; },{},{}
12727,Runstone_Verkana,Berkana Rune,11,100,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "RK_MILLENNIUMSHIELD",1; },{},{}
12726,Runstone_Isia,Isa Rune,11,100,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "RK_VITALITYACTIVATION",1; },{},{}
12729,Runstone_Asir,Othila Rune,11,100,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "RK_FIGHTINGSPIRIT",1; },{},{}
12730,Runstone_Urj,Uruz Rune,11,100,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "RK_ABUNDANCE",1; },{},{}
12731,Runstone_Turisus,Thurisaz Rune,11,100,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "RK_GIANTGROWTH",1; },{},{}
12732,Runstone_Pertz,Wyrd Rune,11,100,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "RK_STORMBLAST",1; },{},{}
12733,Runstone_Hagalas,Hagalaz Rune,11,100,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "RK_STONEHARDSKIN",1; },{},{}
//Rough Runestones
12734,Runstone_Quality,Luxurious Rune,0,2,,100,,,,,0x00000080,63,2,,,,,,{ makerune 5; },{},{}
12735,Runstone_Ancient,Ancient Rune,0,2,,100,,,,,0x00000080,63,2,,,,,,{ makerune 11; },{},{}
12736,Runstone_Mystic,Mystic Rune,0,2,,100,,,,,0x00000080,63,2,,,,,,{ makerune 14; },{},{}
12737,Runstone_Ordinary,General Rune,0,2,,100,,,,,0x00000080,63,2,,,,,,{ makerune 2; },{},{}
12738,Runstone_Rare,Rare Rune,0,2,,100,,,,,0x00000080,63,2,,,,,,{ makerune 8; },{},{}
As you can see, Runes use the itemskill script command, that works just fine with any other skill I've tried on my server, thats why I think the problem lies within the "RK_*" Rune Skills( the source code for those skills).
EDIT: Here is the Code in Skill.c
case RK_STONEHARDSKIN:
if( sd && pc_checkskill(sd,RK_RUNEMASTERY) >= 4 )
{
int heal = sstatus->hp / 5; // 20% HP
if( status_charge(bl,heal,0) )
clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start2(src,bl,type,100,skill_lv,heal,skill_get_time(skill_id,skill_lv)));
else
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
}
break;
case RK_REFRESH:
if( sd && pc_checkskill(sd,RK_RUNEMASTERY) >= 8 )
{
int heal = status_get_max_hp(bl) * 25 / 100;
clif_skill_nodamage(src,bl,skill_id,skill_lv,
sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
status_heal(bl,heal,0,1);
status_change_clear_buffs(bl,4);
}
break;
case RK_MILLENNIUMSHIELD:
if( sd && pc_checkskill(sd,RK_RUNEMASTERY) >= 9 )
{
int8 rate = rnd()%100;
int16 shields = ((rate < 20) ? 4 : (rate < 50) ? 3 : 2);
sc_start4(src,bl,type,100,skill_lv,shields,1000,0,skill_get_time(skill_id,skill_lv));
clif_millenniumshield(sd,shields);
clif_skill_nodamage(src,bl,skill_id,1,1);
}
break;
case RK_GIANTGROWTH:
case RK_VITALITYACTIVATION:
case RK_ABUNDANCE:
case RK_CRUSHSTRIKE:
if( sd )
{
int lv = 1; // RK_GIANTGROWTH
if( skill_id == RK_VITALITYACTIVATION )
lv = 2;
else if( skill_id == RK_ABUNDANCE )
lv = 6;
else if( skill_id == RK_CRUSHSTRIKE )
lv = 7;
if( pc_checkskill(sd,RK_RUNEMASTERY) >= lv )
clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
}
break;
case RK_FIGHTINGSPIRIT: {
int atkbonus = 7 * party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,BCT_PARTY,skill_area_sub_count);
if( flag&1 ) {
if( src == bl )
sc_start2(src,bl,type,100,atkbonus,10*((sd) ? pc_checkskill(sd,RK_RUNEMASTERY) : skill_get_max(RK_RUNEMASTERY)),skill_get_time(skill_id,skill_lv));
else
sc_start(src,bl,type,100,atkbonus / 4,skill_get_time(skill_id,skill_lv));
} else if( sd && pc_checkskill(sd,RK_RUNEMASTERY) >= 5 ) {
if( sd->status.party_id )
party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,flag|BCT_PARTY|1,skill_castend_nodamage_id);
else
sc_start2(src,bl,type,100,7,10*((sd) ? pc_checkskill(sd,RK_RUNEMASTERY) : skill_get_max(RK_RUNEMASTERY)),skill_get_time(skill_id,skill_lv));
clif_skill_nodamage(src,bl,skill_id,1,1);
}
}
break;
Like I Said, as a Rune Knight I can Create and Use Runes but as a Lord Knight I can just create them. I hope I was clear.
PS: Sorry if this is the wrong Section. PS2: Sorry for my English.