You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
687 lines
27 KiB
Plaintext
687 lines
27 KiB
Plaintext
//===== rAthena Script =======================================
|
|
//= Malangdo Enchants
|
|
//===== By: ==================================================
|
|
//= Muad_Dib
|
|
//===== Current Version: =====================================
|
|
//= 1.0.3
|
|
//===== Compatible With: =====================================
|
|
//= rAthena Project
|
|
//===== Description: =========================================
|
|
//= [Official Conversion]
|
|
//= Adds enchantments to many high level weapons in exchange
|
|
//= for Malangdo coins.
|
|
//===== Additional Comments: =================================
|
|
//= 1.0 First Version. [Euphy]
|
|
//= 1.0.1 Added 'delequip' command. [Euphy]
|
|
//= 1.0.2 Remove redundant usage of 'getarg' [Cydh]
|
|
//= 1.0.3 Fixed typo in 1.0.2 [Dastgir]
|
|
//============================================================
|
|
|
|
// Enchanter NPC :: mal_yong
|
|
//============================================================
|
|
malangdo,213,167,4 script Mayomayo#mal 555,{
|
|
disable_items;
|
|
if (checkweight(1201,1) == 0) {
|
|
mes "You have too many kinds of objects. Let's try to continue after reducing those objects.";
|
|
close;
|
|
}
|
|
if (MaxWeight - Weight < 10000) {
|
|
mes "Can't continue because you have too many heavy objects. Let's try to continue after reducing the weight.";
|
|
close;
|
|
}
|
|
mes "[Mayomayo]";
|
|
mes "Wow welcome. It is new Mayomayo refinement store~ I enchant some luxury weapons including level 4 weapons.";
|
|
next;
|
|
switch( select( "Any store policy changes?", "Enchant High Ranked Weapon", "Initialize Enchant (Need Silvervine Fruit)" ) ) {
|
|
case 1:
|
|
mes "[Mayomayo]";
|
|
mes "When I enchant weapons, the slotted cards or refined level are dissipated sometimes. I hated it. However, one day I found how to do it without any extinction.";
|
|
next;
|
|
mes "[Mayomayo]";
|
|
mes "Have you ever seen a building of person of reinforcement capacity association?";
|
|
next;
|
|
if (select( "I've seen it before.", "I haven't seen it before." ) == 2) {
|
|
mes "[Mayomayo]";
|
|
mes "That builiding is located to the southeast of where I am. Why don't you go on a field trip there?";
|
|
close;
|
|
}
|
|
mes "[Mayomayo]";
|
|
mes "If you go to the place, there is someone who enchants the Archangel Wing. At that time that was amazing, because that was impossible ability by my own skill.";
|
|
next;
|
|
mes "[Mayomayo]";
|
|
mes "Every night I became his butler and did odd jobs. That is how I learned to enchant.";
|
|
next;
|
|
mes "[Mayomayo]";
|
|
mes "Several rules are changed. Well, you better have experience.";
|
|
close;
|
|
case 2:
|
|
@mal_enchant_select = 1;
|
|
break;
|
|
case 3:
|
|
@mal_enchant_select = 2;
|
|
break;
|
|
}
|
|
|
|
if (!getequipisequiped(EQI_HAND_R)) {
|
|
mes "[Mayomayo]";
|
|
mes "Did you take off your equipment?";
|
|
@mal_enchant_select = 0;
|
|
close;
|
|
}
|
|
@mal_equip_id = getequipid(EQI_HAND_R);
|
|
.@equip_type = getiteminfo(@mal_equip_id, ITEMINFO_VIEW);
|
|
|
|
// callsub L_Socket,<cost multiplier>,<4-x enchants possible>;
|
|
switch(.@equip_type) { // Check weapon type first to speed up the checks.
|
|
case 1: // Daggers
|
|
switch(@mal_equip_id) {
|
|
case 1224: callsub L_Socket,1,2; // Sword_Breaker
|
|
case 1225: callsub L_Socket,1,2; // Mail_Breaker
|
|
case 1227: callsub L_Socket,1,2; // Weeder_Knife
|
|
case 1229: callsub L_Socket,1,2; // Mama's_Knife
|
|
case 1232: callsub L_Socket,1,2; // Assasin_Dagger
|
|
case 1233: callsub L_Socket,1,2; // Exercise
|
|
case 1235: callsub L_Socket,1,2; // Azoth
|
|
case 1236: callsub L_Socket,1,2; // Sucsamad
|
|
case 1237: callsub L_Socket,1,2; // Grimtooth_
|
|
case 1240: callsub L_Socket,1,2; // Princess_Knife
|
|
case 1241: callsub L_Socket,1,2; // Cursed_Dagger
|
|
case 1242: callsub L_Socket,1,2; // Counter_Dagger
|
|
case 1244: callsub L_Socket,1,2; // Holy_Dagger
|
|
case 13046: callsub L_Socket,1,3; // Krieg
|
|
case 13047: callsub L_Socket,1,2; // Weihna
|
|
case 13061: callsub L_Socket,1,2; // Black_Wing
|
|
case 1223: callsub L_Socket,2,2; // Forturn_Sword
|
|
case 1228: callsub L_Socket,2,2; // Combat_Knife
|
|
case 1234: callsub L_Socket,2,2; // Moonlight_Sword
|
|
case 1230: callsub L_Socket,4,2; // House_Auger
|
|
case 1231: callsub L_Socket,4,2; // Bazerald
|
|
case 13062: callsub L_Socket,4,2; // Ancient_Dagger
|
|
}
|
|
break;
|
|
case 16: // Katars
|
|
switch(@mal_equip_id) {
|
|
case 1271: callsub L_Socket,1,2; // Blood_Tears
|
|
case 1263: callsub L_Socket,1,2; // Unholy_Touch
|
|
case 1270: callsub L_Socket,1,2; // Drill_Katar
|
|
case 1284: callsub L_Socket,1,2; // Krishna
|
|
case 1285: callsub L_Socket,1,2; // Cakram
|
|
case 1268: callsub L_Socket,2,2; // Wild_Beast_Claw
|
|
case 1269: callsub L_Socket,2,2; // Inverse_Scale
|
|
case 1265: callsub L_Socket,2,2; // Bloody_Roar
|
|
case 1261: callsub L_Socket,4,2; // Infiltrator
|
|
case 1266: callsub L_Socket,4,2; // Infiltrator_
|
|
case 28010: callsub L_Socket,4,2; // Juliette_D._Rachel
|
|
}
|
|
break;
|
|
case 6: // 1-H Axes
|
|
switch(@mal_equip_id) {
|
|
case 1305: callsub L_Socket,1,2; // Cleaver
|
|
case 1311: callsub L_Socket,1,2; // Vecer_Axe
|
|
}
|
|
break;
|
|
case 7: // 2-H Axes
|
|
switch(@mal_equip_id) {
|
|
case 1364: callsub L_Socket,1,2; // Great_Axe
|
|
case 1365: callsub L_Socket,1,2; // Sabbath
|
|
case 1385: callsub L_Socket,1,2; // Bradium_Stonehammer
|
|
case 1367: callsub L_Socket,1,2; // Slaughter
|
|
case 1368: callsub L_Socket,1,2; // Tomahawk
|
|
case 1387: callsub L_Socket,2,2; // Giant_Axe
|
|
case 1369: callsub L_Socket,2,2; // Guillotine
|
|
case 1363: callsub L_Socket,2,2; // Brood_Axe
|
|
case 1376: callsub L_Socket,4,2; // Heart_Breaker
|
|
case 1377: callsub L_Socket,4,2; // Hurricane_Fury
|
|
case 1366: callsub L_Socket,4,2; // Right_Epsilon
|
|
case 1370: callsub L_Socket,4,2; // Doom_Slayer
|
|
case 1371: callsub L_Socket,4,2; // Doom_Slayer_
|
|
}
|
|
break;
|
|
case 2: // 1-H Swords
|
|
switch(@mal_equip_id) {
|
|
case 1131: callsub L_Socket,1,2; // Ice_Falchon
|
|
case 1133: callsub L_Socket,1,2; // Fire_Brand
|
|
case 1134: callsub L_Socket,1,2; // Scissores_Sword
|
|
case 1135: callsub L_Socket,1,2; // Cutlas
|
|
case 13400: callsub L_Socket,1,2; // Cutlas_
|
|
case 1136: callsub L_Socket,1,2; // Solar_Sword
|
|
case 1138: callsub L_Socket,1,2; // Mysteltainn_
|
|
case 1139: callsub L_Socket,1,2; // Tale_Fing_
|
|
case 1140: callsub L_Socket,1,2; // Byeorrun_Gum
|
|
case 1141: callsub L_Socket,1,2; // Immaterial_Sword
|
|
case 1148: callsub L_Socket,1,2; // Star_Dust_Blade
|
|
case 13421: callsub L_Socket,1,2; // Ruber
|
|
case 13431: callsub L_Socket,2,2; // Chrome_Sword
|
|
case 1137: callsub L_Socket,2,2; // Excalibur
|
|
case 1130: callsub L_Socket,2,2; // Nagan
|
|
case 1132: callsub L_Socket,4,2; // Edge
|
|
// case 13460: callsub L_Socket,?,2; // Sealed_Magic_Sword
|
|
// case 13461: callsub L_Socket,?,2; // Sealed_Evil_Sword
|
|
// case 13462: callsub L_Socket,?,2; // Sealed_Maximum_Sword
|
|
case 13412: callsub L_Socket,1,3; // Twin_Edge_B
|
|
case 13413: callsub L_Socket,1,3; // Twin_Edge_R
|
|
}
|
|
break;
|
|
case 3: // 2-H Swords
|
|
switch(@mal_equip_id) {
|
|
case 1164: callsub L_Socket,1,2; // Muramasa
|
|
case 1166: callsub L_Socket,1,2; // Dragon_Slayer
|
|
case 1167: callsub L_Socket,1,2; // Schweizersabel
|
|
case 1168: callsub L_Socket,1,2; // Zweihander
|
|
case 1170: callsub L_Socket,1,2; // Katzbalger
|
|
case 1171: callsub L_Socket,1,2; // Zweihander_
|
|
case 1176: callsub L_Socket,1,2; // Muscle_Cutter
|
|
case 1178: callsub L_Socket,1,2; // Schweizersabel_
|
|
case 1180: callsub L_Socket,1,2; // Dragon_Slayer_
|
|
case 1181: callsub L_Socket,1,2; // Tae_Goo_Lyeon
|
|
case 1182: callsub L_Socket,1,2; // Bloody_Eater
|
|
case 1188: callsub L_Socket,1,2; // Veteran_Sword
|
|
case 1189: callsub L_Socket,1,3; // Krasnaya
|
|
case 1196: callsub L_Socket,2,2; // Chrome_Twohand_Sword
|
|
case 1165: callsub L_Socket,2,2; // Masamune
|
|
case 1169: callsub L_Socket,2,2; // Executioner_
|
|
case 1179: callsub L_Socket,2,2; // Executioner__
|
|
case 1175: callsub L_Socket,2,2; // Altas_Weapon
|
|
case 1185: callsub L_Socket,4,2; // Violet_Fear
|
|
case 1186: callsub L_Socket,4,2; // Death_Guidance
|
|
case 21018: callsub L_Socket,4,2; // Lindy_Hop
|
|
}
|
|
break;
|
|
case 4: // 1-H Spears
|
|
switch(@mal_equip_id) {
|
|
case 1420: callsub L_Socket,1,2; // Long_Horn
|
|
case 1413: callsub L_Socket,1,2; // Gungnir
|
|
case 1414: callsub L_Socket,1,2; // Gelerdria
|
|
case 1416: callsub L_Socket,1,2; // Tjungkuletti
|
|
case 1418: callsub L_Socket,1,2; // Gungnir_
|
|
case 1433: callsub L_Socket,2,2; // Imperial_Spear
|
|
case 1415: callsub L_Socket,2,2; // Skewer
|
|
case 1421: callsub L_Socket,2,2; // Battle_Hook
|
|
case 1422: callsub L_Socket,4,2; // Hunting_Spear
|
|
// case 1447: callsub L_Socket,?,3; // Poison_Forged_Spear
|
|
}
|
|
break;
|
|
case 5: // 2-H Spears
|
|
switch(@mal_equip_id) {
|
|
case 1466: callsub L_Socket,1,2; // Crescent_Scythe
|
|
case 1467: callsub L_Socket,1,2; // Bill_Guisarme
|
|
case 1468: callsub L_Socket,1,2; // Zephyrus
|
|
case 1469: callsub L_Socket,1,2; // Longinus's_Spear
|
|
case 1470: callsub L_Socket,1,2; // Brionac
|
|
case 1471: callsub L_Socket,1,2; // Hell_Fire
|
|
case 1474: callsub L_Socket,1,2; // Gae_Bolg
|
|
case 1476: callsub L_Socket,1,2; // Crescent_Scythe_
|
|
case 1477: callsub L_Socket,1,2; // Spectral_Spear
|
|
case 1478: callsub L_Socket,1,2; // Ahlspiess
|
|
case 1479: callsub L_Socket,1,2; // Spectral_Spear_
|
|
case 1480: callsub L_Socket,1,2; // Gae_Bolg_
|
|
case 1481: callsub L_Socket,1,3; // Zephyrus_
|
|
case 1484: callsub L_Socket,2,2; // Cardo
|
|
}
|
|
break;
|
|
case 10: // Staves
|
|
switch(@mal_equip_id) {
|
|
case 1616: callsub L_Socket,1,2; // Staff_Of_Wing
|
|
case 1629: callsub L_Socket,1,2; // Walking_Stick
|
|
case 1631: callsub L_Socket,1,2; // Holy_Stick
|
|
case 1643: callsub L_Socket,1,2; // Dead_Tree_Cane
|
|
case 1654: callsub L_Socket,1,2; // Mental_Stick
|
|
case 1636: callsub L_Socket,2,2; // Thorn_Staff
|
|
case 1637: callsub L_Socket,2,2; // Eraser
|
|
// case 1697: callsub L_Socket,?,2; // Exquisite_Yellow_Foxtail_Model
|
|
// case 1693: callsub L_Socket,?,2; // Magical_Yellow_Foxtail_Staff
|
|
}
|
|
break;
|
|
case 23: // New 2-H Staves
|
|
switch(@mal_equip_id) {
|
|
case 1473: callsub L_Socket,1,2; // Wizardy_Staff
|
|
case 2004: callsub L_Socket,1,2; // Kronos
|
|
case 2005: callsub L_Socket,1,2; // Dea_Staff
|
|
case 2001: callsub L_Socket,2,2; // Divine_Cross
|
|
case 2000: callsub L_Socket,4,2; // Destruction_Rod
|
|
// case 2027: callsub L_Socket,4,?; // Sunflower_Kid
|
|
}
|
|
break;
|
|
case 8: // Maces
|
|
switch(@mal_equip_id) {
|
|
case 1524: callsub L_Socket,1,2; // Golden_Mace
|
|
case 1525: callsub L_Socket,1,2; // Long_Mace
|
|
case 1527: callsub L_Socket,1,2; // Quadrille
|
|
case 1539: callsub L_Socket,1,2; // Golden_Mace_
|
|
case 1541: callsub L_Socket,1,2; // Nemesis
|
|
case 16000: callsub L_Socket,1,2; // Erde
|
|
case 16001: callsub L_Socket,1,2; // Red_Square_Bag
|
|
case 16010: callsub L_Socket,1,2; // Red_Ether_Bag
|
|
case 1523: callsub L_Socket,2,2; // Spike
|
|
case 1538: callsub L_Socket,2,2; // Spike_
|
|
case 1526: callsub L_Socket,2,2; // Slash
|
|
case 1528: callsub L_Socket,4,2; // Grand_Cross
|
|
case 1540: callsub L_Socket,4,2; // Grand_Cross_
|
|
}
|
|
break;
|
|
case 15: // Books
|
|
switch(@mal_equip_id) {
|
|
case 1557: callsub L_Socket,1,2; // Book_Of_The_Apocalypse
|
|
case 1558: callsub L_Socket,1,2; // Girl's_Diary
|
|
case 1559: callsub L_Socket,1,2; // Legacy_Of_Dragon
|
|
case 1561: callsub L_Socket,1,2; // Hardback
|
|
case 1562: callsub L_Socket,1,2; // Bible_Of_Battlefield
|
|
case 1565: callsub L_Socket,4,2; // Death_Note
|
|
}
|
|
break;
|
|
case 12: // Knuckles
|
|
switch(@mal_equip_id) {
|
|
case 1813: callsub L_Socket,1,2; // Kaiser_Knuckle
|
|
case 1814: callsub L_Socket,1,2; // Berserk
|
|
case 1815: callsub L_Socket,1,2; // Claw_Of_Garm
|
|
case 1816: callsub L_Socket,1,2; // Berserk_
|
|
case 1830: callsub L_Socket,2,2; // Sura_Rampage
|
|
}
|
|
break;
|
|
case 11: // Bows
|
|
switch(@mal_equip_id) {
|
|
case 1719: callsub L_Socket,1,2; // Bow_Of_Roguemaster
|
|
case 1722: callsub L_Socket,1,2; // Balistar
|
|
case 1724: callsub L_Socket,1,2; // Dragon_Wing
|
|
case 1725: callsub L_Socket,1,2; // Bow_Of_Minstrel
|
|
case 1727: callsub L_Socket,1,2; // Balistar_
|
|
case 1737: callsub L_Socket,1,2; // Ixion_Wing
|
|
case 1740: callsub L_Socket,1,2; // Nepenthes_Bow
|
|
case 1741: callsub L_Socket,1,2; // Cursed_Lyre
|
|
case 1745: callsub L_Socket,1,2; // Falken_Blitz
|
|
case 18103: callsub L_Socket,1,2; // Mystic_Bow
|
|
case 1720: callsub L_Socket,2,2; // Bow_Of_Rudra
|
|
}
|
|
break;
|
|
case 13: // Musical Instruments
|
|
switch(@mal_equip_id) {
|
|
case 1913: callsub L_Socket,1,2; // Electronic_Guitar
|
|
case 1918: callsub L_Socket,1,2; // Oriental_Lute
|
|
case 1920: callsub L_Socket,1,2; // Berserk_Guitar
|
|
case 1922: callsub L_Socket,1,2; // Oriental_Lute_
|
|
case 1926: callsub L_Socket,1,2; // Harp_Of_Nepenthes
|
|
case 1930: callsub L_Socket,2,2; // Green_Whistle
|
|
}
|
|
break;
|
|
case 14: // Whips
|
|
switch(@mal_equip_id) {
|
|
case 1962: callsub L_Socket,1,2; // Lariat
|
|
case 1963: callsub L_Socket,1,2; // Rapture_Rose
|
|
case 1964: callsub L_Socket,1,2; // Chemeti
|
|
case 1969: callsub L_Socket,1,2; // Bladed_Whip
|
|
case 1970: callsub L_Socket,1,2; // Queen's_Whip
|
|
case 1972: callsub L_Socket,1,2; // Electric_Eel
|
|
case 1973: callsub L_Socket,1,2; // Sea_Witch_Foot
|
|
case 1974: callsub L_Socket,1,2; // Carrot_Whip
|
|
case 1976: callsub L_Socket,1,2; // Queen's_Whip_
|
|
case 1979: callsub L_Socket,1,2; // Stem_Of_Nepenthes
|
|
case 1984: callsub L_Socket,2,2; // Stem_Whip
|
|
case 1985: callsub L_Socket,4,2; // Rosebine
|
|
}
|
|
break;
|
|
case 17: // Revolvers
|
|
case 18: // Rifles
|
|
case 19: // Gatling guns
|
|
case 20: // Shotguns
|
|
case 21: // Grenade launchers
|
|
// switch(@mal_equip_id) {
|
|
// case 13138: callsub L_Socket,4,2; // Dark_Rose
|
|
// case 28223: callsub L_Socket,4,2; // Finisher
|
|
// case 28224: callsub L_Socket,4,2; // Dustfire
|
|
// case 28225: callsub L_Socket,4,2; // Burning_Rose
|
|
// case 28226: callsub L_Socket,4,2; // Avenger
|
|
// }
|
|
break;
|
|
}
|
|
mes "[Mayomayo]";
|
|
if (@mal_enchant_select == 1)
|
|
mes "This is not a suitable equipment for the enchant. Don't forget we only take care of high class weapons, including level 4 weapons~";
|
|
else
|
|
mes "This equipment can not be initialized. Don't forget we only handle some luxury weapons, including level 4 weapons~";
|
|
@mal_equip_id = 0;
|
|
@mal_enchant_select = 0;
|
|
close;
|
|
|
|
L_Socket:
|
|
.@select = @mal_enchant_select;
|
|
.@equip_id = @mal_equip_id;
|
|
.@equip_refine = getequiprefinerycnt(EQI_HAND_R);
|
|
.@equip_name$ = getitemname(.@equip_id) + ( getitemslots(.@equip_id) ? "[" + getitemslots(.@equip_id) + "]" : "" );
|
|
setarray .@equip_card[0], getequipcardid(EQI_HAND_R,0), getequipcardid(EQI_HAND_R,1), getequipcardid(EQI_HAND_R,2), getequipcardid(EQI_HAND_R,3);
|
|
@mal_equip_id = 0;
|
|
@mal_enchant_select = 0;
|
|
|
|
if (.@select == 1) {
|
|
mes "[Mayomayo]";
|
|
mes "^0000ff" + .@equip_name$ + "^000000! Do you want to enchant this equipment? How will you pay for this?";
|
|
next;
|
|
|
|
.@enccost = getarg(0);
|
|
.@enclimit = getarg(1);
|
|
setarray .@coin[0],6422,6421,6420,6419,6418,6423; // Payment ID
|
|
setarray .@cost[0], 15, 10, 6, 3, 2, 1; // Payment multiplier
|
|
|
|
.@menu$ = "Stop:";
|
|
.@size_coin = getarraysize(.@coin);
|
|
for ( .@i = 0; .@i < .@size_coin; ++.@i) {
|
|
.@count[.@i] = countitem(.@coin[.@i]);
|
|
.@total[.@i] = .@enccost * .@cost[.@i];
|
|
if (.@count[.@i] < .@total[.@i])
|
|
.@menu$ += "^999999" + getitemname(.@coin[.@i]) + " (missing " + (.@total[.@i]-.@count[.@i]) + ")^000000:";
|
|
else
|
|
.@menu$ += getitemname(.@coin[.@i]) + " (have " + .@count[.@i] + ", need " + .@total[.@i] + "):";
|
|
}
|
|
.@coin_select = select(.@menu$) - 2;
|
|
if (.@coin_select == -1) {
|
|
mes "[Mayomayo]";
|
|
mes "Come back again if you change your mind.";
|
|
close;
|
|
} else if (.@count[.@coin_select] < .@total[.@coin_select]) {
|
|
mes "[Mayomayo]";
|
|
mes "You don't have enough coins. Do you want to check again?";
|
|
close;
|
|
}
|
|
switch(.@coin_select) {
|
|
case 0: // Egrade_Coin
|
|
.@enchant_type = 10;
|
|
break;
|
|
case 1: // Dgrade_Coin
|
|
.@enchant_type = 9;
|
|
break;
|
|
case 2: // Cgrade_Coin
|
|
.@enchant_type = 8;
|
|
break;
|
|
case 3: // Bgrade_Coin
|
|
.@enchant_type = 7;
|
|
break;
|
|
case 4: // Agrade_Coin
|
|
case 5: // Anger_Seagod
|
|
mes "[Mayomayo]";
|
|
mes "When you use the " + getitemname(.@coin[.@coin_select]) + ", you can choose the enchant type.";
|
|
next;
|
|
switch( select( "Stop", "Short Range Type", "Long Range Type", "Caster Type") ) {
|
|
case 1:
|
|
mes "[Mayomayo]";
|
|
mes "Ok. If you change your mind, let me know.";
|
|
close;
|
|
case 2:
|
|
.@enchant_type = ((.@coin_select == 4) ? 4 : 1);
|
|
break;
|
|
case 3:
|
|
.@enchant_type = ((.@coin_select == 4) ? 5 : 2);
|
|
break;
|
|
case 4:
|
|
.@enchant_type = ((.@coin_select == 4) ? 6 : 3);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
if (.@equip_card[3] == 0 && .@enclimit < 4) {
|
|
.@socket = 4;
|
|
.@str$ = "1st";
|
|
} else if (.@equip_card[2] == 0 && .@enclimit < 3) {
|
|
.@socket = 3;
|
|
.@str$ = "2nd";
|
|
} else {
|
|
mes "[Mayomayo]";
|
|
mes "This equipment is at the end of enchant. Please initialize the enchant and you will be able to enchant it again, or bring another weapon.";
|
|
close;
|
|
}
|
|
mes "[Mayomayo]";
|
|
mes "I'm trying for the " + .@str$ + " enchant. ^ff0000It will not touch previous refinement and cards. Also, the equipment will not be destroyed.^000000 Can I continue?";
|
|
next;
|
|
if (select( "I'll come back later.", "Please, continue." ) == 1) {
|
|
mes "[Mayomayo]";
|
|
mes "Ok. If you change your mind, come back again.";
|
|
close;
|
|
}
|
|
switch(.@enchant_type) {
|
|
case 10: // Egrade_Coin
|
|
.@i = rand(1,531);
|
|
if (.@i < 101) .@enchant = 4787; // Mdef4
|
|
else if (.@i < 201) .@enchant = 4792; // Def6
|
|
else if (.@i < 301) .@enchant = 4801; // SP100
|
|
else if (.@i < 351) .@enchant = 4795; // HP100
|
|
else if (.@i < 401) .@enchant = 4796; // HP200
|
|
else if (.@i < 451) .@enchant = 4819; // Atk1
|
|
else if (.@i < 476) .@enchant = 4720; // Dexterity1
|
|
else if (.@i < 501) .@enchant = 4740; // Vitality1
|
|
else if (.@i < 526) .@enchant = 4750; // Luck1
|
|
else if (.@i < 528) .@enchant = 4700; // Strength1
|
|
else if (.@i < 530) .@enchant = 4730; // Agility1
|
|
else if (.@i < 532) .@enchant = 4710; // Inteligence1
|
|
else .@enchant = 9;
|
|
break;
|
|
case 9: // Dgrade_Coin
|
|
.@i = rand(1,531);
|
|
if (.@i < 101) .@enchant = 4795; // HP100
|
|
else if (.@i < 201) .@enchant = 4796; // HP200
|
|
else if (.@i < 301) .@enchant = 4819; // Atk1
|
|
else if (.@i < 351) .@enchant = 4720; // Dexterity1
|
|
else if (.@i < 401) .@enchant = 4740; // Vitality1
|
|
else if (.@i < 451) .@enchant = 4750; // Luck1
|
|
else if (.@i < 476) .@enchant = 4700; // Strength1
|
|
else if (.@i < 501) .@enchant = 4730; // Agility1
|
|
else if (.@i < 526) .@enchant = 4710; // Inteligence1
|
|
else if (.@i < 528) .@enchant = 4701; // Strength2
|
|
else if (.@i < 530) .@enchant = 4731; // Agility2
|
|
else if (.@i < 532) .@enchant = 4711; // Inteligence2
|
|
else .@enchant = 9;
|
|
break;
|
|
case 8: // Cgrade_Coin
|
|
.@i = rand(1,531);
|
|
if (.@i < 101) .@enchant = 4720; // Dexterity1
|
|
else if (.@i < 201) .@enchant = 4740; // Vitality1
|
|
else if (.@i < 301) .@enchant = 4750; // Luck1
|
|
else if (.@i < 351) .@enchant = 4700; // Strength1
|
|
else if (.@i < 401) .@enchant = 4730; // Agility1
|
|
else if (.@i < 451) .@enchant = 4710; // Inteligence1
|
|
else if (.@i < 476) .@enchant = 4701; // Strength2
|
|
else if (.@i < 501) .@enchant = 4731; // Agility2
|
|
else if (.@i < 526) .@enchant = 4711; // Inteligence2
|
|
else if (.@i < 528) .@enchant = 4702; // Strength3
|
|
else if (.@i < 530) .@enchant = 4732; // Agility3
|
|
else if (.@i < 532) .@enchant = 4712; // Inteligence3
|
|
else .@enchant = 9;
|
|
break;
|
|
case 7: // Bgrade_Coin
|
|
.@i = rand(1,531);
|
|
if (.@i < 101) .@enchant = 4700; // Strength1
|
|
else if (.@i < 201) .@enchant = 4730; // Agility1
|
|
else if (.@i < 301) .@enchant = 4710; // Inteligence1
|
|
else if (.@i < 351) .@enchant = 4701; // Strength2
|
|
else if (.@i < 401) .@enchant = 4731; // Agility2
|
|
else if (.@i < 451) .@enchant = 4711; // Inteligence2
|
|
else if (.@i < 476) .@enchant = 4702; // Strength3
|
|
else if (.@i < 501) .@enchant = 4732; // Agility3
|
|
else if (.@i < 526) .@enchant = 4712; // Inteligence3
|
|
else if (.@i < 528) .@enchant = 4703; // Strength4
|
|
else if (.@i < 530) .@enchant = 4733; // Agility4
|
|
else if (.@i < 532) .@enchant = 4713; // Inteligence4
|
|
else .@enchant = 9;
|
|
break;
|
|
case 6: // Agrade_Coin - Caster
|
|
.@i = rand(1,555);
|
|
if (.@i < 81) .@enchant = 4711; // Inteligence2
|
|
else if (.@i < 161) .@enchant = 4721; // Dexterity2
|
|
else if (.@i < 241) .@enchant = 4814; // Spell2
|
|
else if (.@i < 311) .@enchant = 4712; // Inteligence3
|
|
else if (.@i < 371) .@enchant = 4722; // Dexterity3
|
|
else if (.@i < 431) .@enchant = 4813; // Spell3
|
|
else if (.@i < 476) .@enchant = 4713; // Inteligence4
|
|
else if (.@i < 516) .@enchant = 4812; // Spell4
|
|
else if (.@i < 526) .@enchant = 4760; // Matk1
|
|
else if (.@i < 546) .@enchant = 4714; // Inteligence5
|
|
else if (.@i < 551) .@enchant = 4826; // Spell5
|
|
else if (.@i < 556) .@enchant = 4761; // Matk2
|
|
else .@enchant = 9;
|
|
break;
|
|
case 5: // Agrade_Coin - Long Range
|
|
.@i = rand(1,555);
|
|
if (.@i < 81) .@enchant = 4731; // Agility2
|
|
else if (.@i < 161) .@enchant = 4833; // Expert_Archer2
|
|
else if (.@i < 241) .@enchant = 4817; // Sharp2
|
|
else if (.@i < 311) .@enchant = 4732; // Agility3
|
|
else if (.@i < 371) .@enchant = 4834; // Expert_Archer3
|
|
else if (.@i < 431) .@enchant = 4816; // Sharp3
|
|
else if (.@i < 476) .@enchant = 4733; // Agility4
|
|
else if (.@i < 516) .@enchant = 4835; // Expert_Archer4
|
|
else if (.@i < 526) .@enchant = 4807; // Atk_Speed1
|
|
else if (.@i < 546) .@enchant = 4734; // Agility5
|
|
else if (.@i < 551) .@enchant = 4836; // Expert_Archer5
|
|
else if (.@i < 556) .@enchant = 4807; // Atk_Speed1
|
|
else .@enchant = 9;
|
|
break;
|
|
case 4: // Agrade_Coin - Short Range
|
|
.@i = rand(1,555);
|
|
if (.@i < 81) .@enchant = 4731; // Agility2
|
|
else if (.@i < 161) .@enchant = 4808; // Fighting_Spirit4
|
|
else if (.@i < 241) .@enchant = 4817; // Sharp2
|
|
else if (.@i < 311) .@enchant = 4732; // Agility3
|
|
else if (.@i < 371) .@enchant = 4820; // Fighting_Spirit5
|
|
else if (.@i < 431) .@enchant = 4816; // Sharp3
|
|
else if (.@i < 476) .@enchant = 4733; // Agility4
|
|
else if (.@i < 516) .@enchant = 4821; // Fighting_Spirit6
|
|
else if (.@i < 526) .@enchant = 4807; // Atk_Speed1
|
|
else if (.@i < 546) .@enchant = 4734; // Agility5
|
|
else if (.@i < 551) .@enchant = 4822; // Fighting_Spirit7
|
|
else if (.@i < 556) .@enchant = 4807; // Atk_Speed1
|
|
else .@enchant = 9;
|
|
break;
|
|
case 3: // Anger_Seagod - Caster
|
|
.@i = rand(1,555);
|
|
if (.@i < 81) .@enchant = 4712; // Inteligence3
|
|
else if (.@i < 161) .@enchant = 4722; // Dexterity3
|
|
else if (.@i < 241) .@enchant = 4813; // Spell3
|
|
else if (.@i < 311) .@enchant = 4713; // Inteligence4
|
|
else if (.@i < 371) .@enchant = 4812; // Spell4
|
|
else if (.@i < 431) .@enchant = 4760; // Matk1
|
|
else if (.@i < 476) .@enchant = 4714; // Inteligence5
|
|
else if (.@i < 516) .@enchant = 4826; // Spell5
|
|
else if (.@i < 526) .@enchant = 4761; // Matk2
|
|
else if (.@i < 546) .@enchant = 4715; // Inteligence6
|
|
else if (.@i < 551) .@enchant = 4827; // Spell6
|
|
else if (.@i < 556) .@enchant = 4761; // Matk2
|
|
else .@enchant = 9;
|
|
break;
|
|
case 2: // Anger_Seagod - Long Range
|
|
.@i = rand(1,555);
|
|
if (.@i < 81) .@enchant = 4732; // Agility3
|
|
else if (.@i < 161) .@enchant = 4834; // Expert_Archer3
|
|
else if (.@i < 241) .@enchant = 4843; // Sharp4
|
|
else if (.@i < 311) .@enchant = 4733; // Agility4
|
|
else if (.@i < 371) .@enchant = 4835; // Expert_Archer4
|
|
else if (.@i < 431) .@enchant = 4844; // Sharp5
|
|
else if (.@i < 476) .@enchant = 4734; // Agility5
|
|
else if (.@i < 516) .@enchant = 4836; // Expert_Archer5
|
|
else if (.@i < 526) .@enchant = 4807; // Atk_Speed1
|
|
else if (.@i < 546) .@enchant = 4735; // Agility6
|
|
else if (.@i < 551) .@enchant = 4837; // Expert_Archer6
|
|
else if (.@i < 556) .@enchant = 4807; // Atk_Speed1
|
|
else .@enchant = 9;
|
|
break;
|
|
case 1: // Anger_Seagod - Short Range
|
|
.@i = rand(1,555);
|
|
if (.@i < 81) .@enchant = 4732; // Agility3
|
|
else if (.@i < 161) .@enchant = 4820; // Fighting_Spirit5
|
|
else if (.@i < 241) .@enchant = 4843; // Sharp4
|
|
else if (.@i < 311) .@enchant = 4733; // Agility4
|
|
else if (.@i < 371) .@enchant = 4821; // Fighting_Spirit6
|
|
else if (.@i < 431) .@enchant = 4844; // Sharp5
|
|
else if (.@i < 476) .@enchant = 4734; // Agility5
|
|
else if (.@i < 516) .@enchant = 4822; // Fighting_Spirit7
|
|
else if (.@i < 526) .@enchant = 4807; // Atk_Speed1
|
|
else if (.@i < 546) .@enchant = 4735; // Agility6
|
|
else if (.@i < 551) .@enchant = 4823; // Fighting_Spirit8
|
|
else if (.@i < 556) .@enchant = 4807; // Atk_Speed1
|
|
else .@enchant = 9;
|
|
break;
|
|
default:
|
|
mes "[Mayomayo]";
|
|
mes "There is something wrong. Please try again.";
|
|
close;
|
|
}
|
|
|
|
// anti-hack
|
|
if (callfunc("F_IsEquipIDHack", EQI_HAND_R, .@equip_id) || callfunc("F_IsEquipRefineHack", EQI_HAND_R, .@equip_refine) ||
|
|
callfunc("F_IsEquipCardHack", EQI_HAND_R, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3]))
|
|
close;
|
|
|
|
if (.@equip_card[3] == 0 && .@enclimit < 4) .@equip_card[3] = .@enchant;
|
|
else if (.@equip_card[2] == 0 && .@enclimit < 3) .@equip_card[2] = .@enchant;
|
|
else if (.@equip_card[1] == 0 && .@enclimit < 2) .@equip_card[1] = .@enchant;
|
|
else if (.@equip_card[0] == 0 && .@enclimit < 1) .@equip_card[0] = .@enchant;
|
|
else {
|
|
mes "[Mayomayo]";
|
|
mes "This equipment is at the end of enchant. I provide enchant for two times maximum.";
|
|
next;
|
|
mes "[Mayomayo]";
|
|
mes "Surely I don't enchant at card socket, therefore weapons that have 3 slots can be enchanted only 1 time. Don't forget this~";
|
|
close;
|
|
}
|
|
if (.@enchant == 9) { // Should never happen.
|
|
specialeffect2 EF_SUI_EXPLOSION;
|
|
mes "[Mayomayo]";
|
|
mes "Oh my god!";
|
|
mes "This equipment is destroyed because it could not endure powerful ability. I'm so sorry.";
|
|
delitem .@coin[.@coin_select],.@total[.@coin_select];
|
|
delequip EQI_HAND_R;
|
|
close;
|
|
}
|
|
specialeffect2 EF_REPAIRWEAPON;
|
|
mes "[Mayomayo]";
|
|
mes "I have enchanted ^990000slot " + .@socket + "^000000 of this equipment.";
|
|
delitem .@coin[.@coin_select], .@total[.@coin_select];
|
|
delequip EQI_HAND_R;
|
|
|
|
// GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
|
|
getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
|
|
|
|
close;
|
|
} else if (.@select == 2) {
|
|
mes "[Mayomayo]";
|
|
mes "I will only initialize the enchant effect without touching previous refined level and cards.";
|
|
next;
|
|
if (select( "Stop", "Continue" ) == 1) {
|
|
mes "[Mayomayo]";
|
|
mes "If you change your mind, come back anytime.";
|
|
close;
|
|
}
|
|
if (countitem(6417) == 0) {
|
|
mes "[Mayomayo]";
|
|
mes "I'm sorry. You don't have Silvervine Fruit. Please check your inventory again?";
|
|
close;
|
|
}
|
|
if (!getequipisequiped(EQI_HAND_R)) {
|
|
mes "[Mayomayo]";
|
|
mes "Did you take off the equipment?";
|
|
close;
|
|
}
|
|
if (.@equip_card[3] == 0) {
|
|
mes "[Mayomayo]";
|
|
mes "This equipment has nothing to initialize. Please check again.";
|
|
close;
|
|
}
|
|
specialeffect2 EF_REPAIRWEAPON;
|
|
mes "[Mayomayo]";
|
|
mes "Initialize the enchant effect from the equipment.";
|
|
delitem 6417,1; // Silvervine
|
|
|
|
// anti-hack
|
|
if (callfunc("F_IsEquipIDHack", EQI_HAND_R, .@equip_id) || callfunc("F_IsEquipRefineHack", EQI_HAND_R, .@equip_refine) ||
|
|
callfunc("F_IsEquipCardHack", EQI_HAND_R, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3]))
|
|
close;
|
|
|
|
delequip EQI_HAND_R;
|
|
|
|
// GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
|
|
for ( .@i = getiteminfo(.@equip_id, ITEMINFO_SLOT); .@i < MAX_SLOTS; .@i++ ) {
|
|
if (getiteminfo(.@equip_card[.@i], ITEMINFO_SUBTYPE) == CARD_ENCHANT)
|
|
.@equip_card[.@i] = 0;// Armor Enchant System
|
|
}
|
|
getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
|
|
|
|
close;
|
|
}
|
|
}
|