Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- veil,154,171,3 script Cat Friend 112,{
- function Add;
- mes .@npc_name$ = "[Cat Friend]";
- mes "Select an enchant type from menu below";
- .@menu = select("Basic Enchantment:Intermediate Enchantment:Advanced Enchantment");
- clear;
- setarray .@indices[1], EQI_ARMOR, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R;
- for (.@i = 1; .@i <= 10; .@i+=1) {
- // Shield can't be enchanted.
- if (getequipisequiped(.@indices[.@i])) {
- .@avail = 1;
- .@menu$ += getequipname(.@indices[.@i]);
- }
- .@menu$ += ":";
- }
- mes .@npc_name$;
- if (.@avail == 0) {
- mes "Please equip an equipment to enchant.";
- close;
- }
- setarray .@type$, "^777777Basic", "^5FCCCCIntermediate", "^FF77FFAdvanced";
- mes "Enchantment Type : "+.@type$[.@menu-1]+"^000000";
- mes "Select an equip to enchant";
- .@part = .@indices[select(.@menu$)];
- .@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
- if (.@refinery >=6)
- .@ComboBonusIsActivated = 1;
- freeloop(1);
- // .@a$ = variable for enchant name (string).
- // .@b = min value for enchant.
- // .@c = max value for enchant.
- switch(.@menu) {
- case 1: // Basic Enchantment.
- Add(.@opt, RDMOPT_VAR_STRAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "STR", 1, 4);
- Add(.@opt, RDMOPT_VAR_AGIAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "AGI", 1, 4);
- Add(.@opt, RDMOPT_VAR_VITAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "VIT", 1, 4);
- Add(.@opt, RDMOPT_VAR_INTAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "INT", 1, 4);
- Add(.@opt, RDMOPT_VAR_DEXAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "DEX", 1, 4);
- Add(.@opt, RDMOPT_VAR_LUKAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "LUK", 1, 4);
- // Garment, Shoes & Accessory didn't have Stats except Luk.
- // Different max value for LUK.
- Add(.@opt, RDMOPT_VAR_LUKAMOUNT, .@part, EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "LUK", 1, 2);
- Add(.@opt, RDMOPT_VAR_MAXHPAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Max HP", 1, 160);
- Add(.@opt, RDMOPT_VAR_MAXSPAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Max SP", 1, 16);
- Add(.@opt, RDMOPT_VAR_ATTPOWER, .@part, EQI_ARMOR|EQI_HAND_R|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Atk", 1, 8);
- Add(.@opt, RDMOPT_VAR_ATTMPOWER, .@part, EQI_ARMOR|EQI_HAND_R|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "M.Atk", 1, 8);
- Add(.@opt, RDMOPT_VAR_ITEMDEFPOWER, .@part, EQI_ARMOR|EQI_HAND_R|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Def", 1, 4);
- Add(.@opt, RDMOPT_VAR_MDEFPOWER, .@part, EQI_ARMOR|EQI_HAND_R|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "M.Def", 1, 8);
- break;
- case 2: // Intermediate Enchantment.
- Add(.@opt, RDMOPT_VAR_STRAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "STR", 2, 8);
- Add(.@opt, RDMOPT_VAR_AGIAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "AGI", 2, 8);
- Add(.@opt, RDMOPT_VAR_VITAMOUNT, .@part, EQI_GARMENT, .@a$, .@b, .@c, "VIT", 2, 8);
- Add(.@opt, RDMOPT_VAR_INTAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "INT", 2, 8);
- Add(.@opt, RDMOPT_VAR_DEXAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "DEX", 2, 8);
- Add(.@opt, RDMOPT_VAR_LUKAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "LUK", 2, 8);
- Add(.@opt, RDMOPT_VAR_LUKAMOUNT, .@part, EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "LUK", 2, 6);
- Add(.@opt, RDMOPT_VAR_MAXHPAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Max HP", 20, 240);
- Add(.@opt, RDMOPT_VAR_MAXHPAMOUNT, .@part, EQI_GARMENT, .@a$, .@b, .@c, "Max HP", 20, 250);
- // Max SP have different value for min max
- Add(.@opt, RDMOPT_VAR_MAXSPAMOUNT, .@part, EQI_ARMOR, .@a$, .@b, .@c, "Max SP", 20, 240);
- Add(.@opt, RDMOPT_VAR_MAXSPAMOUNT, .@part, EQI_HAND_R|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Max SP", 8, 24);
- Add(.@opt, RDMOPT_VAR_MAXSPAMOUNT, .@part, EQI_GARMENT, .@a$, .@b, .@c, "Max SP", 8, 25);
- Add(.@opt, RDMOPT_VAR_ATTPOWER, .@part, EQI_GARMENT, .@a$, .@b, .@c, "Atk", 5, 12);
- Add(.@opt, RDMOPT_VAR_ATTMPOWER, .@part, EQI_GARMENT, .@a$, .@b, .@c, "M.Atk", 5, 12);
- Add(.@opt, RDMOPT_VAR_MDEFPOWER, .@part, EQI_GARMENT, .@a$, .@b, .@c, "M.Def", 5, 12);
- Add(.@opt, RDMOPT_VAR_ATTPOWER, .@part, EQI_ARMOR|EQI_HAND_R|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Atk", 4, 12);
- Add(.@opt, RDMOPT_VAR_ATTMPOWER, .@part, EQI_ARMOR|EQI_HAND_R|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "M.Atk", 4, 12);
- Add(.@opt, RDMOPT_VAR_ITEMDEFPOWER, .@part, EQI_ARMOR|EQI_HAND_R|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Def", 2, 6);
- Add(.@opt, RDMOPT_VAR_MDEFPOWER, .@part, EQI_ARMOR|EQI_HAND_R|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "M.Def", 4, 12);
- Add(.@opt, RDMOPT_VAR_HITSUCCESSVALUE, .@part, EQI_ARMOR|EQI_HAND_R|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Hit", 1, 5);
- Add(.@opt, RDMOPT_VAR_CRITICALSUCCESSVALUE, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "Critical", 1, 5);
- Add(.@opt, RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE, .@part, EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Flee", 1, 5);
- Add(.@opt, RDMOPT_VAR_MAXHPPERCENT, .@part, EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Max HP%%", 1, 5);
- Add(.@opt, RDMOPT_VAR_MAXSPPERCENT, .@part, EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Max SP%%", 1, 5);
- break;
- case 3: // Advanced Enchantment.
- Add(.@opt, RDMOPT_VAR_STRAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "STR", 4, 10);
- Add(.@opt, RDMOPT_VAR_AGIAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "AGI", 4, 10);
- Add(.@opt, RDMOPT_VAR_VITAMOUNT, .@part, EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "VIT", 4, 10);
- Add(.@opt, RDMOPT_VAR_INTAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "INT", 4, 10);
- Add(.@opt, RDMOPT_VAR_DEXAMOUNT, .@part, EQI_ARMOR|EQI_HAND_R, .@a$, .@b, .@c, "DEX", 4, 10);
- Add(.@opt, RDMOPT_VAR_LUKAMOUNT, .@part, EQI_HAND_R, .@a$, .@b, .@c, "LUK", 4, 10);
- Add(.@opt, RDMOPT_VAR_LUKAMOUNT, .@part, EQI_ARMOR|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "LUK", 4, 8);
- Add(.@opt, RDMOPT_VAR_MAXHPAMOUNT, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Max HP", 40, 400);
- Add(.@opt, RDMOPT_VAR_MAXHPPERCENT, .@part, EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Max HP%%", 2, 10);
- Add(.@opt, RDMOPT_VAR_MAXSPAMOUNT, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Max SP", 10, 80);
- Add(.@opt, RDMOPT_VAR_MAXSPPERCENT, .@part, EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Max SP%%", 1, 5);
- Add(.@opt, RDMOPT_VAR_ATTPOWER, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Atk", 8, 40);
- Add(.@opt, RDMOPT_VAR_ATTMPOWER, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "M.Atk", 8, 40);
- Add(.@opt, RDMOPT_VAR_ITEMDEFPOWER, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Def", 4, 20);
- Add(.@opt, RDMOPT_VAR_MDEFPOWER, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "M.Def", 6, 20);
- Add(.@opt, RDMOPT_VAR_HITSUCCESSVALUE, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Hit", 3, 20);
- Add(.@opt, RDMOPT_VAR_CRITICALSUCCESSVALUE, .@part, EQI_HAND_R, .@a$, .@b, .@c, "Critical", 1, 10);
- Add(.@opt, RDMOPT_VAR_CRITICALSUCCESSVALUE, .@part, EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Critical", 5, 10);
- Add(.@opt, RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Flee", 3, 20);
- Add(.@opt, RDMOPT_DAMAGE_CRI_USER, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Crit. Res.", 1, 10);
- Add(.@opt, RDMOPT_DAMAGE_CRI_TARGET, .@part, EQI_HAND_R|EQI_ARMOR|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Crit. Dmg%%", 1, 10);
- Add(.@opt, RDMOPT_DAMAGE_CRI_TARGET, .@part, EQI_GARMENT, .@a$, .@b, .@c, "Crit. Dmg%%", 1, 5);
- // Add(.@opt, RDMOPT_VAR_STRAMOUNT, .@part, EQI_HAND_R|EQI_ARMOR|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Crit. Def.%%", 1, 10);
- // Add(.@opt, RDMOPT_VAR_STRAMOUNT, .@part, EQI_GARMENT, .@a$, .@b, .@c, "Crit. Def.%%", 1, 5);
- Add(.@opt, RDMOPT_HEAL_VALUE, .@part, EQI_HAND_R|EQI_SHOES, .@a$, .@b, .@c, "Healing Increase%%", 1, 5);
- Add(.@opt, RDMOPT_HEAL_VALUE, .@part, EQI_GARMENT, .@a$, .@b, .@c, "Healing Increase%%", 1, 4);
- Add(.@opt, RDMOPT_HEAL_MODIFY_PERCENT, .@part, EQI_ARMOR|EQI_SHOES, .@a$, .@b, .@c, "Healing Received%%", 1, 5);
- Add(.@opt, RDMOPT_HEAL_MODIFY_PERCENT, .@part, EQI_GARMENT, .@a$, .@b, .@c, "Healing Received%%", 1, 4);
- Add(.@opt, RDMOPT_CLASS_DAMAGE_NORMAL_TARGET, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Dmg Inc%%.", 1, 4);
- Add(.@opt, RDMOPT_CLASS_DAMAGE_NORMAL_USER, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "Dmg Reduc%%.", 1, 4);
- Add(.@opt, RDMOPT_VAR_PLUSASPDPERCENT, .@part, EQI_HAND_R|EQI_ARMOR|EQI_SHOES|EQI_ACC_L|EQI_ACC_R, .@a$, .@b, .@c, "ASPD%%", 1, 4);
- Add(.@opt, RDMOPT_VAR_PLUSASPDPERCENT, .@part, EQI_GARMENT, .@a$, .@b, .@c, "ASPD%%", 1, 25);
- // Add(.@opt, RDMOPT_RES_SILENCE, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Silence Resistance%%", 1, 25);
- // Add(.@opt, RDMOPT_RES_FREEZE, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Freeze Resistance%%", 1, 25);
- // Add(.@opt, RDMOPT_RES_STONE, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Stone Resistance%%", 1, 25);
- // Add(.@opt, RDMOPT_RES_STUN, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Stun Resistance%%", 1, 25);
- // Add(.@opt, RDMOPT_RES_BLIND, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Blind Resistance%%", 1, 25);
- // Add(.@opt, RDMOPT_RES_POISON, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Poison Resistance%%", 1, 25);
- // Add(.@opt, RDMOPT_RES_SNARE, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Snare Resistance%%", 1, 25);
- // Add(.@opt, RDMOPT_RES_FEAR, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Fear Resistance%%", 1, 25);
- // Add(.@opt, RDMOPT_RES_CURSE, .@part, EQI_HAND_R|EQI_ARMOR|EQI_GARMENT|EQI_SHOES, .@a$, .@b, .@c, "Curse Resistance%%", 1, 25);
- break;
- }
- freeloop(0);
- clear;
- mes .@npc_name$;
- mes "Please chose an action from menu bellow";
- .@action = select("See Possible Enchantment List:Enchant ^0000FF"+getequipname(.@part));
- clear;
- mes .@npc_name$;
- if (.@action == 1) { // See Possible Enchantment List
- // mes "Currently not available.";
- mes "Enchantment Type : "+.@type$[.@menu-1]+"^000000";
- for (.@i = 0; .@i < getarraysize(.@a$); .@i++) {
- mes "- "+sprintf(.@a$[.@i]+" +%d~%d", .@b[.@i], .@c[.@i]);
- }
- close;
- }
- // Enchant Equip
- mes "Wait a momment, Please don't move.";
- progressbar "0xFFFFFF",1;
- specialeffect2 154;
- clear;
- mes .@npc_name$;
- mes "Result :";
- //for (.@i = 0; .@i < 3; .@i++) {
- // .@rand = rand(getarraysize(.@a$));
- // .@val = rand(.@b[.@rand], .@c[.@rand]);
- // .@rnd_opt[.@i] = .@opt[.@rand];
- // mes "- Slot "+(.@i+1)+". "+sprintf(.@a$[.@rand]+" +%d", .@val);
- // setrandomoption(.@part, .@i, .@opt[.@rand], .@val, 0);
- //}
- freeloop(1);
- .@i = 0;
- while(1) {
- deletearray .@optlist, getarraysize(.@optlist);
- .@rarity = rand(100);
- switch(.@menu) {
- case 1: // Basic Enchantment
- if (.@rarity < 15) {
- setarray .@optlist, RDMOPT_VAR_STRAMOUNT, RDMOPT_VAR_AGIAMOUNT, RDMOPT_VAR_VITAMOUNT,
- RDMOPT_VAR_INTAMOUNT, RDMOPT_VAR_DEXAMOUNT, RDMOPT_VAR_LUKAMOUNT;
- }
- else {
- setarray .@optlist, RDMOPT_VAR_MAXHPAMOUNT, RDMOPT_VAR_MAXSPAMOUNT, RDMOPT_VAR_ATTPOWER,
- RDMOPT_VAR_ATTMPOWER, RDMOPT_VAR_ITEMDEFPOWER, RDMOPT_VAR_MDEFPOWER;
- }
- break;
- case 2: // Intermediate Enchantment
- if (.@rarity < 10) {
- setarray .@optlist, RDMOPT_VAR_STRAMOUNT, RDMOPT_VAR_AGIAMOUNT, RDMOPT_VAR_VITAMOUNT,
- RDMOPT_VAR_INTAMOUNT, RDMOPT_VAR_DEXAMOUNT, RDMOPT_VAR_LUKAMOUNT;
- }
- else {
- setarray .@optlist, RDMOPT_VAR_MAXHPAMOUNT, RDMOPT_VAR_MAXSPAMOUNT, RDMOPT_VAR_ATTPOWER,
- RDMOPT_VAR_ATTMPOWER, RDMOPT_VAR_ITEMDEFPOWER, RDMOPT_VAR_MDEFPOWER,
- RDMOPT_VAR_HITSUCCESSVALUE, RDMOPT_VAR_CRITICALSUCCESSVALUE,
- RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE, RDMOPT_VAR_MAXHPPERCENT, RDMOPT_VAR_MAXSPPERCENT;
- }
- break;
- case 3: // Advanced Enchantment
- if (.@rarity < 5) {
- setarray .@optlist, RDMOPT_VAR_STRAMOUNT, RDMOPT_VAR_AGIAMOUNT, RDMOPT_VAR_VITAMOUNT,
- RDMOPT_VAR_INTAMOUNT, RDMOPT_VAR_DEXAMOUNT, RDMOPT_VAR_LUKAMOUNT;
- }
- else if (.@rarity > 4 && .@rarity < 75) {
- setarray .@optlist, RDMOPT_VAR_MAXHPAMOUNT, RDMOPT_VAR_MAXSPAMOUNT, RDMOPT_VAR_ATTPOWER,
- RDMOPT_VAR_ATTMPOWER, RDMOPT_VAR_ITEMDEFPOWER, RDMOPT_VAR_MDEFPOWER,
- RDMOPT_VAR_HITSUCCESSVALUE, RDMOPT_VAR_CRITICALSUCCESSVALUE,
- RDMOPT_VAR_PLUSAVOIDSUCCESSVALUE, RDMOPT_VAR_MAXHPPERCENT, RDMOPT_VAR_MAXSPPERCENT,
- RDMOPT_DAMAGE_CRI_USER, RDMOPT_DAMAGE_CRI_TARGET, RDMOPT_HEAL_VALUE,
- RDMOPT_HEAL_MODIFY_PERCENT, RDMOPT_CLASS_DAMAGE_NORMAL_TARGET,
- RDMOPT_CLASS_DAMAGE_NORMAL_USER, RDMOPT_VAR_PLUSASPDPERCENT;
- }
- else {
- setarray .@optlist, RDMOPT_RES_SILENCE, RDMOPT_RES_FREEZE, RDMOPT_RES_STONE,
- RDMOPT_RES_STUN, RDMOPT_RES_BLIND, RDMOPT_RES_POISON,
- RDMOPT_RES_SNARE, RDMOPT_RES_FEAR, RDMOPT_RES_CURSE;
- }
- break;
- }
- .@rand = rand(getarraysize(.@a$));
- // Rarity check.
- if (inarray(.@optlist, .@opt[.@rand]) == -1) continue;
- .@val = rand(.@b[.@rand], .@c[.@rand]);
- // check if this option has been there before?
- // if yes continue!
- if (inarray(.@rnd_opt, .@opt[.@rand]) > -1)
- continue;
- .@rnd_opt[.@i] = .@opt[.@rand];
- mes "- Slot "+(.@i+1)+". "+sprintf(.@a$[.@rand]+" +%d", .@val);
- setrandomoption(.@part, .@i, .@opt[.@rand], .@val, 0);
- .@i++;
- if (.@i > 2) break;
- }
- freeloop(0);
- // Option Combo Bonus!
- if (.@ComboBonusIsActivated) {
- switch(.@menu) {
- case 2: // Intermediate.
- if (.@part == EQI_ARMOR || .@part == EQI_HAND_R) {
- if (inarray(.@rnd_opt, RDMOPT_VAR_STRAMOUNT) > -1 && inarray(.@rnd_opt, RDMOPT_VAR_ATTPOWER) > -1)
- setarray .@ext_opt, RDMOPT_CLASS_IGNORE_DEF_PERCENT_NORMAL, 5, 10, 15, 20;
- else if (inarray(.@rnd_opt, RDMOPT_VAR_INTAMOUNT) > -1 && inarray(.@rnd_opt, RDMOPT_VAR_ATTMPOWER) > -1)
- setarray .@ext_opt, RDMOPT_CLASS_IGNORE_DEF_PERCENT_NORMAL, 2, 5, 7, 10;
- else if (inarray(.@rnd_opt, RDMOPT_VAR_DEXAMOUNT) > -1 && inarray(.@rnd_opt, RDMOPT_VAR_HITSUCCESSVALUE) > -1)
- setarray .@ext_opt, RDMOPT_RANGE_ATTACK_DAMAGE_TARGET, 2, 5, 7, 10;
- else if (inarray(.@rnd_opt, RDMOPT_VAR_AGIAMOUNT) > -1 && inarray(.@rnd_opt, RDMOPT_VAR_LUKAMOUNT) > -1)
- setarray .@ext_opt, RDMOPT_DAMAGE_CRI_TARGET, 5, 10, 15, 20;
- }
- else if (.@part == EQI_GARMENT || .@part == EQI_SHOES) {
- if (inarray(.@rnd_opt, RDMOPT_VAR_MAXSPPERCENT) > -1 && inarray(.@rnd_opt, RDMOPT_VAR_ATTMPOWER) > -1)
- setarray .@ext_opt, RDMOPT_CLASS_MDAMAGE_NORMAL, 2, 4, 6, 8;
- }
- break;
- case 3: // Advanced.
- if (.@part == EQI_ARMOR || .@part == EQI_HAND_R) {
- if (inarray(.@rnd_opt, RDMOPT_VAR_STRAMOUNT) > -1 && inarray(.@rnd_opt, RDMOPT_VAR_ATTPOWER) > -1)
- setarray .@ext_opt, RDMOPT_CLASS_IGNORE_DEF_PERCENT_NORMAL, 5, 10, 15, 20;
- else if (inarray(.@rnd_opt, RDMOPT_VAR_INTAMOUNT) > -1 && inarray(.@rnd_opt, RDMOPT_VAR_ATTMPOWER) > -1)
- setarray .@ext_opt, RDMOPT_CLASS_IGNORE_DEF_PERCENT_NORMAL, 2, 5, 7, 10;
- else if (inarray(.@rnd_opt, RDMOPT_VAR_DEXAMOUNT) > -1 && inarray(.@rnd_opt, RDMOPT_VAR_HITSUCCESSVALUE) > -1)
- setarray .@ext_opt, RDMOPT_RANGE_ATTACK_DAMAGE_TARGET, 2, 5, 7, 10;
- else if (inarray(.@rnd_opt, RDMOPT_VAR_AGIAMOUNT) > -1 && inarray(.@rnd_opt, RDMOPT_VAR_LUKAMOUNT) > -1)
- setarray .@ext_opt, RDMOPT_DAMAGE_CRI_TARGET, 5, 10, 15, 20;
- else if (inarray(.@rnd_opt, RDMOPT_VAR_PLUSASPDPERCENT) > -1 && inarray(.@rnd_opt, RDMOPT_CLASS_DAMAGE_NORMAL_TARGET) > -1)
- setarray .@ext_opt, RDMOPT_CLASS_DAMAGE_NORMAL_TARGET, 2, 5, 7, 10;
- }
- else if (.@part == EQI_ACC_L || .@part == EQI_ACC_R) {
- if (inarray(.@rnd_opt, RDMOPT_VAR_PLUSASPDPERCENT) > -1 && inarray(.@rnd_opt, RDMOPT_CLASS_DAMAGE_NORMAL_TARGET) > -1)
- setarray .@ext_opt, RDMOPT_CLASS_DAMAGE_NORMAL_TARGET, 2, 5, 7, 10;
- else if (inarray(.@rnd_opt, RDMOPT_VAR_CRITICALSUCCESSVALUE) > -1 && inarray(.@rnd_opt, RDMOPT_VAR_ITEMDEFPOWER) > -1)
- setarray .@ext_opt, RDMOPT_CLASS_DAMAGE_NORMAL_USER, 2, 5, 7, 10;
- }
- break;
- default:
- break;
- }
- .@ext_size = getarraysize(.@ext_opt);
- if (.@ext_size) {
- copyarray .@ext_val, .@ext_opt[1], .@ext_size-1;
- .@rand_val = rand(getarraysize(.@ext_val));
- mes "- Get extra Advanced Option.";
- setrandomoption(.@part, 3, .@ext_opt[0], .@ext_val[.@rand_val], 0);
- }
- }
- next;
- mes .@npc_name$;
- mes "Done! please come again if you feel the enchantment isn't good enough for you.";
- close;
- function Add {
- if (getarg(3)&getarg(2)) {
- set getelementofarray(getarg(0), getarraysize(getarg(0))), getarg(1);
- set getelementofarray(getarg(4), getarraysize(getarg(4))), getarg(7);
- set getelementofarray(getarg(5), getarraysize(getarg(5))), getarg(8);
- set getelementofarray(getarg(6), getarraysize(getarg(6))), getarg(9);
- }
- return;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement