Buat para master skript tolong
1. ubah skrip dibawah ini supaya bisa enchant temporal str,vit,dex,int,agi,luk boots (item ID 22006, 22007, 22008, 22009, 22010, 22011)
2. hilangkan "60% low, 30% mid, 10% high for 1st & 2nd enchant slot && 40% low, 30% mid, 20% high, 10% special for 3rd enchant slot" yang ada di skrip
-----
Regards,
//===== rAthena Script =======================================
//= Unofficial Fallen Angel Wing (FAW) Enchants
//===== By: ==================================================
//= Nerfwood
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena Project
//===== Description: =========================================
//= Enchants FAW as per iROWiki's information
//= Dialogue are unofficial
//===== Additional Comments: =================================
//= 1.0 First Version
//============================================================
//Decreasing Chance of Enchantment
//max bonus
//max stats
function script EnchantStat_1 {
.chance = rand(1,10);
if(@card2 && @card3) { //For 4th Slot aka 3rd Enchant Slot
if(.chance<5) .x=0;
else if(.chance<7) .x=1;
else if(.chance<9) .x=2;
else .x=3;
}
else { //For 2nd and 3rd card slot aka 1st and 2nd Enchant Slot
if(.chance<7) .x=0;
else if(.chance<10) .x=1;
else .x=2;
}
return getelementofarray(getvariableofnpc( getd(".enc" + getarg(0) ) , "Valkyrie#faw"), .x );
}
//Equal Chance of Enchanting
function script EnchantStat_0 {
if(@card2 && @card3)
return getelementofarray(getvariableofnpc( getd(".enc" + getarg(0) ) , "Valkyrie#faw"), rand(0,3) );
else
return getelementofarray(getvariableofnpc( getd(".enc" + getarg(0) ) , "Valkyrie#faw"), rand(0,2) );
}
//=======MAIN NPC
moc_para01,180,24,3 script Valkyrie#faw 403,{
mes .npc$;
mes "I am capable of blessing the",
"magnificent ^000099Fallen Angel Wing^000000",
"with maximal attributes.",
"Would you like to enchant yours?";
if(countitem(2589)) {
set .@menu$, "Enchant Fallen Angel Wing";
}
else .@menu$="";
next;
switch(select("Information:" + .@menu$ + ":Reset Enchantment"))
{
case 1: goto OnInformation;
case 2: goto OnEnchantNow;
case 3: goto OnResetEnchant;
default: close;
}
OnInformation:
mes .npc$,
"I can enchant your",
"^000099Fallen Angel Wing^000000 for",
(.cost?callfunc("F_InsertComma",.cost)+"z":"free")+" to give it various",
"attributes. In fact, I can do it",
"twice if its refinement level is",
"+7 ~ +8, and thrice if its",
"+9 and above.";
next;
mes .npc$,
"The 3rd enchantment has a",
"the same stats",
"with the first two.";
next;
mes .npc$,
"There is no chance to",
"fail, so enchant away",
"as much as you like.";
next;
mes .npc$,
"But if you're not happy",
"with the results, you can",
"reset the enchantments",
"for ^009900"+ callfunc("F_InsertComma",.cost2) + "z^000000.";
next;
mes .npc$,
"That's about everything.";
close;
OnEnchantNow:
mes .npc$;
if( (getequipid(EQI_GARMENT)!=2589) ) {
mes "Please equip your",
"^000099Fallen Angel Wing^000000 if",
"you want to have it enchanted.";
if(!.autoequip) close;
next;
if(select("Equip:Don't Equip")==2) close;
equip 2589;
mes .npc$;
}
.@refeq = getequiprefinerycnt(EQI_GARMENT);
if(.@refeq<7) .@refeq2 = 1;
else if(.@refeq>8) .@refeq2 = 3;
else .@refeq2 = 2;
mes "You have a ^000099+" +.@refeq + " Fallen Angel Wing^000000.",
"It can have a total of " + .@refeq2 + " enchantment" +( .@refeq2>1?"s.":".")+" Please";
mes "select your preferred","enchantment.";
next;
setd ".@enc$", select("Fighting Enchant:Magic Enchant:Archer Enchant:Critical/Fatal Enchant:Max HP Enchant:Max SP Enchant:ASPD Enchant:STR Enchant:AGI Enchant:DEX Enchant:VIT Enchant:INT Enchant:LUK Enchant:Atk 7%:Matk 7%");
if(.cost) callsub OnCostlyEnchant;
@card1 = getequipcardid(EQI_GARMENT,0);
@card2 = getequipcardid(EQI_GARMENT,1);
@card3 = getequipcardid(EQI_GARMENT,2);
@card4 = getequipcardid(EQI_GARMENT,3);
if( @card2 && @card3 && @card4) {
mes .npc$,
"Hmm.. it seems that all",
"slots have already been enchanted.";
close;
}
.@EnStat = callfunc( (.chancetype?"EnchantStat_1":"EnchantStat_0"), .@enc$) ;
if(!@card2) callsub OnFawEnchant , .@EnStat , @card3 , @card4 , .@refeq;
else if(!@card3 && .@refeq>6) callsub OnFawEnchant , @card2 , .@EnStat , @card4 , .@refeq;
else if(!@card4 && .@refeq>8) callsub OnFawEnchant , @card2 , @card3 , .@EnStat , .@refeq;
else {
mes .npc$,
"Sorry, but your",
"^000099Fallen Angel Wing^000000's",
"refinement level is too",
"low to continue";
close;
}
mes .npc$,
"Your ^000099Fallen Angel Wing^000000 has",
"been enchanted with ^000099"+getitemname(.@EnStat)+"^000000.";
close;
OnFawEnChant:
delitem2 2589, 1, 1, getarg(3), 0, @card1, @card2, @card3, @card4;
getitem2 2589, 1, 1, getarg(3), 0, @card1, getarg(0), getarg(1), getarg(2);
specialeffect2 1019;
specialeffect2 98;
return;
OnResetEnchant:
mes .npc$,
"This will cost " + callfunc("F_InsertComma",.cost2) + "z.",
"Are you sure?";
next;
if(select("Yes:No")==2) close;
mes .npc$;
if(Zeny<10000) {
mes "You don't have enough zeny.";
close;
}
Zeny -= 10000;
mes "Your ^000099Fallen Angel Wing^000000's",
"enchantments have been reset.";
.@refeq = getequiprefinerycnt(EQI_GARMENT);
@card1 = getequipcardid(EQI_GARMENT,0);
@card2 = getequipcardid(EQI_GARMENT,1);
@card3 = getequipcardid(EQI_GARMENT,2);
@card4 = getequipcardid(EQI_GARMENT,3);
delitem2 2589, 1, 1, .@refeq, 0, @card1, @card2, @card3, @card4;
getitem2 2589, 1, 1, .@refeq, 0, @card1, 0, 0, 0;
specialeffect2 261;
specialeffect2 119;
close;
//Only called when .cost is defined
OnCostlyEnchant:
if(Zeny<.cost) {
mes .npc$,
"You don't have enough zeny.";
close;
}
Zeny -= .cost;
return;
OnInit:
.npc$ = "[^AA0000Valkyrie^000000]";
setarray .enc1[0], 4825,4825,4825, 4825; //Fighting max. -->bonus bBaseAtk,50; bonus bHit,15;
setarray .enc2[0], 4831,4831,4831, 4831; //Magic max. -->bMatk,50; bonus bVariableCastrate,-20
setarray .enc3[0], 4841,4841,4841, 4841; //Expert Arc max. -->bLongAtkRate,20; bonus bAspd,1;
setarray .enc4[0], 4866,4866,4866, 4866; //Fatal max. -->bCritAtkRate,10; bonus bCritical,4;
setarray .enc5[0], 4900,4900,4900, 4900; //MHPP max. -->bMaxHPrate,5;
setarray .enc6[0], 4802,4802,4802, 4802; //MaxSP max. -->bonus bMaxSP,150;
setarray .enc7[0], 4881,4881,4881, 4881; //ASPD max. -->bAspdRate,10;
setarray .enc8[0], 4853,4853,4853, 4853; //STR Special Str
setarray .enc9[0], 4853,4854,4854, 4854; //AGI Special Agi
setarray .enc10[0], 4857,4857,4857, 4857; //DEX Special DEX
setarray .enc11[0], 4855,4855,4855, 4855; //VIT Special Vit
setarray .enc12[0], 4856,4856,4856, 4856; //INT Special Int
setarray .enc13[0], 4858,4858,4858, 4858; //LUK Special Luk
setarray .enc14[0], 4905,4905,4905, 4905; //ATK 7%
setarray .enc15[0], 4907,4907,4907, 4907; //MaTK 7%
// 1 = 60% low, 30% mid, 10% high for 1st & 2nd enchant slot && 40% low, 30% mid, 20% high, 10% special for 3rd enchant slot
// 0 = Equal Chance
.chancetype = 1;
//Turn on Equip Selection if garment is unequipped? 1 = Yes
.autoequip =0;
//Cost for Enchanting. It's free in iRO
//.cost=0;
//Cost to reset | Costs 1Mz in iRO
.cost2 = 10000;
}