Hello rathena, i need somehelp with this script
iam using unofficial faw enchantment for base script
i tried to change it, but i still don't understand about this script
//===== 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
//============================================================
prontera,156,166,3 script Valkyrie#gmg 403,{
disable_items;
mes .@npc_name$ = "[^AA0000Valkyrie^000000]";
mes "I am here to enchant the",
"magnificent ^000099Gigantic Majestic Goat^000000.",
"Would you like to enchant yours?";
next;
.@menu$ = select("Information:Enchant Gigantic Majestic Goat:Reset Enchantment");
switch(.@menu$) {
default:
case 1:
break;
case 2:
callsub S_Check;
.@ref = getequiprefinerycnt(EQI_HEAD_TOP);
.@card[0] = getequipcardid(EQI_HEAD_TOP,0);
.@card[1] = getequipcardid(EQI_HEAD_TOP,1);
.@card[2] = getequipcardid(EQI_HEAD_TOP,2);
.@card[3] = getequipcardid(EQI_HEAD_TOP,3);
// Check if enchantment slot is full here, do no need to continue if full.
if(.@card[1] && .@card[2] && .@card[3]) {
mes .@npc_name$,
"Hmm.. it seems that all",
"slots have already been enchanted.";
close;
}
if (.@ref >= 7) .@enc_count = 2;
else if (.@ref > 8) .@enc_count = 3;
else
.@enc_count = 1;
mes .@npc_name$;
mes "You have a ^000099+"+.@ref+" Gigantic Majestic Goat^000000.",
"It can have a total of "+.@enc_count+" enchantment"+(.@enc_count > 1? "s.":".")+" Please";
mes "select your preferred","enchantment.";
next;
.@menu$ = "";
for (.@i = 0; .@i < getarraysize(.enchant_type$); .@i++)
.@menu$ = .@menu$ + .enchant_type$[.@i]+":";
.@type = select(.@menu$);
.@enc_stat = getd(".enc"+.@type+"["+callsub(S_ChanceType, .chance_type, .@card[1], .@card[2], .@card[3])+"]");
if(.enchant_cost) {
if(Zeny < .enchant_cost) {
mes .@npc_name$,
"You don't have enough zeny.";
close;
}
Zeny -= .enchant_cost;
}
if ((.@card[1] && !.@card[2] && (.@ref < 7)) || (.@card[1] && .@card[2] && !.@card[3] && (.@ref < 9))) {
mes .@npc_name$,
"Sorry, but your",
"^000099Gigantic Majestic Goat^000000's",
"refinement level is too",
"low to continue";
close;
}
delitem2 5518, 1, 1, .@ref, 0, .@card[0], .@card[1], .@card[2], .@card[3];
if(!.@card[1]) .@card[1] = .@enc_stat;
else if(!.@card[2] && .@ref > 6) .@card[2] = .@enc_stat;
else if(!.@card[3] && .@ref > 8) .@card[3] = .@enc_stat;
getitem2 5518, 1, 1, .@ref, 0, .@card[0], .@card[1], .@card[2], .@card[3];
mes .@npc_name$,
"Your ^000099Gigantic Majestic Goat^000000 has",
"been enchanted with ^000099"+getitemname(.@enc_stat)+"^000000.";
close;
case 3:
callsub S_Check;
mes .@npc_name$,
"This will cost 1x Gold.",
"Are you sure?";
next;
select("Yes");
mes .@npc_name$;
if(countitem(969) < 1) {
mes "You don't bring enough Gold.";
close;
}
delitem 969,1;
.@ref = getequiprefinerycnt(EQI_HEAD_TOP);
.@card[0] = getequipcardid(EQI_HEAD_TOP,0);
.@card[1] = getequipcardid(EQI_HEAD_TOP,1);
.@card[2] = getequipcardid(EQI_HEAD_TOP,2);
.@card[3] = getequipcardid(EQI_HEAD_TOP,3);
delitem2 5518, 1, 1, .@ref, 0, .@card[0], .@card[1], .@card[2], .@card[3];
getitem2 5518, 1, 1, .@ref, 0, .@card[0], 0, 0, 0;
mes "Your ^000099Gigantic Majestic Goat^000000's",
"enchantments have been reset.";
equip 5518; // didn't know it will work while npc set disable_items
specialeffect2 261;
specialeffect2 119;
close;
}
mes .@npc_name$,
"I can enchant your",
"^000099Gigantic Majestic Goat^000000 for",
(.enchant_cost ? callfunc("F_InsertComma",.enchant_cost)+"z":"free")+" to give it various.",
"effects. In fact, I can do it",
"twice if its refinement level is",
"+7 ~ +8, and thrice if its",
"+9 and above.";
next;
mes .@npc_name$,
"The 3rd enchantment has a",
"chance to be more powerful",
"than the first two.";
next;
mes .@npc_name$,
"There is no chance to",
"fail, so enchant away",
"as much as you like.";
next;
mes .@npc_name$,
"But if you're not happy",
"with the results, you can",
"reset the enchantments",
"for ^009900"+callfunc("F_InsertComma",.reset_cost)+"z^000000.";
next;
mes .@npc_name$,
"That's about everything.";
close;
S_Check:
if (getequipid(EQI_HEAD_TOP) != 5518) {
mes .@npc_name$;
mes "Please equip your",
"^000099Gigantic Majestic Goat^000000 if",
"you want to have it enchanted.";
close;
}
return;
S_ChanceType:
switch(getarg(0)) {
case 1:
//Decreasing Chance of Enchantment
//60% low, 30% mid, 10% high for 1st & 2nd enchant slot
//40% low, 30% mid, 20% high, 10% special for 3rd enchant slot
.@rand = rand(1,10);
if(getarg(2) && getarg(3)) { //For 3rd & 4th Card Slot aka 2nd & 3rd Enchant Slot
if (.@rand < 5 ) .@x = 0;
else if (.@rand < 7) .@x = 1;
else if (.@rand < 9) .@x = 2;
else .@x = 3;
} else { //For 2nd Card slot aka 1st Enchant Slot
if (.@rand < 7) .@x=0;
else if (.@rand < 10) .@x = 1;
else .@x = 2;
}
return .@x;
case 0:
if(getarg(2) && getarg(3))
return rand(0,3);
else
return rand(0,2);
}
OnInit:
setarray .enchant_type$, "Fighting Enchant";
setarray .enc1[0], 4809,4808,4820, 4821; //Fighting 3~5
// 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
.chance_type = 1;
//Cost for Enchanting. It's free in iRO
.enchant_cost = 6000000;
//Cost to reset | Costs 1Mz in iRO
.reset_cost = 6000000;
}
how to make the enchantment give 3 stones of enchant(str,agi,dex stone) in 1 process(click)
thank you in advance