summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/re/cities/malangdo.txt11
-rw-r--r--npc/re/jobs/3-1/guillotine_cross.txt154
-rw-r--r--npc/re/merchants/enchan_mal.txt648
-rw-r--r--npc/re/scripts_athena.conf1
-rw-r--r--sql-files/item_db_re.sql1
5 files changed, 735 insertions, 80 deletions
diff --git a/npc/re/cities/malangdo.txt b/npc/re/cities/malangdo.txt
index 58e6be2f3..50e6bc832 100644
--- a/npc/re/cities/malangdo.txt
+++ b/npc/re/cities/malangdo.txt
@@ -278,10 +278,10 @@ malangdo,219,86,4 script Kong#malang 545,{
// Town NPCs :: malang_tre
//============================================================
malangdo,147,117,3 script Innkeeper#malang 554,{
- mes "Can see a lazy cat standing on a chair.";
- mes "Thought it is an Innkeeper, but do not looks like that having a business.";
+ mes "You see a lazy cat standing on a chair.";
+ mes "You guess that this is the Innkeeper.";
next;
- switch(select("Can I rest in hammock?:Want to store in inn.:Looks free at the moment.")) {
+ switch(select("Umm... can I rest here?:Psst... can I save here?:Leave.")) {
case 1:
mes "[Innkeeper]";
mes "You can use hammock as you want but give me ^FF00005 pieces of Malang Sp Can^000000, then will make you stress out.";
@@ -324,7 +324,10 @@ malangdo,147,117,3 script Innkeeper#malang 554,{
malangdo,151,120,3 script Wandering Minstrel#mal 479,{
mes "[Wandering Minstrel]";
- mes "I have a sleepy momnet whenever seeing that innkeeper. So comfortable...";
+ mes "Boy, that lazy cat makes me want to just nap all day long.";
+ next;
+ mes "[Wandering Minstrel]";
+ mes "He makes life look so simple";
close;
}
diff --git a/npc/re/jobs/3-1/guillotine_cross.txt b/npc/re/jobs/3-1/guillotine_cross.txt
index 7fa6177a3..f8ba5b50e 100644
--- a/npc/re/jobs/3-1/guillotine_cross.txt
+++ b/npc/re/jobs/3-1/guillotine_cross.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= Muad_Dib
//===== Current Version: =====================================
-//= 1.2
+//= 1.3
//===== Compatible With: =====================================
//= rAthena SVN r16945+
//===== Description: =========================================
@@ -15,6 +15,7 @@
//= 1.0b Moved warps to separate file. [Euphy]
//= 1.1 Fixed some minor bugs. [Euphy]
//= 1.2 Moved "Girl" NPC off ve_fild05. [Euphy]
+//= 1.3 Added missing OnMyMobDead labels. [Euphy]
//============================================================
que_job01,75,96,3 script Guild Member#3rdgc01 997,{
@@ -2647,6 +2648,7 @@ ra_in01,175,196,3 script Oresa Rava#3rdgc13 866,{
}
}
+//Pre-RE: ve_fild05 (327,308)
ve_fild02,330,384,3 script Girl#3rdgc14 466,{
if (job_3rd_gc > 14 && job_3rd_gc < 18) {
mes "[Renzak]";
@@ -2745,7 +2747,7 @@ OnTouch:
} else {
mes "You don't have to come here.";
close2;
- warp "ve_fild02",330,379;
+ warp "ve_fild02",330,379; //Pre-RE: ve_fild05 (341,303)
set $@3rdgc_room02, 0;
}
end;
@@ -2753,7 +2755,7 @@ OnTimer900000:
mapannounce "job3_guil03","Renzak : Withdraw!",bc_map,"0xA8A8A8"; //FW_NORMAL 12 0 0
end;
OnTimer901000:
- mapwarp "job3_guil03","ve_fild02",330,379;
+ mapwarp "job3_guil03","ve_fild02",330,379; //Pre-RE: ve_fild05 (341,303)
end;
OnTimer902000:
donpcevent "#3rdgc_event_master::OnReset";
@@ -3048,12 +3050,12 @@ OnTouch:
disablenpc "Front Gate Guard#g03";
disablenpc "Front Gate Guard#g04";
disablenpc "Front Gate Guard#g05";
- monster "job3_guil03",93,37,"Guard Dog",1866,1;
- monster "job3_guil03",93,36,"Front Gate Guard",1985,1;
- monster "job3_guil03",93,35,"Front Gate Guard",1985,1;
- monster "job3_guil03",93,34,"Front Gate Guard",1985,1;
- monster "job3_guil03",93,33,"Front Gate Guard",1985,1;
- monster "job3_guil03",93,32,"Guard Dog",1866,1;
+ monster "job3_guil03",93,37,"Guard Dog",1866,1,"Front Gate Guard#g01::OnMyMobDead";
+ monster "job3_guil03",93,36,"Front Gate Guard",1985,1,"Front Gate Guard#g01::OnMyMobDead";
+ monster "job3_guil03",93,35,"Front Gate Guard",1985,1,"Front Gate Guard#g01::OnMyMobDead";
+ monster "job3_guil03",93,34,"Front Gate Guard",1985,1,"Front Gate Guard#g01::OnMyMobDead";
+ monster "job3_guil03",93,33,"Front Gate Guard",1985,1,"Front Gate Guard#g01::OnMyMobDead";
+ monster "job3_guil03",93,32,"Guard Dog",1866,1,"Front Gate Guard#g01::OnMyMobDead";
end;
}
job3_guil03,93,36,3 duplicate(#3rdgc_guard00) Front Gate Guard#g03 456
@@ -3077,12 +3079,12 @@ OnTouch:
disablenpc "Back Gate Guard#g03";
disablenpc "Back Gate Guard#g04";
disablenpc "Back Gate Guard#g05";
- monster "job3_guil03",133,54,"Guard Dog",1866,1;
- monster "job3_guil03",133,53,"Back Gate Guard",1985,1;
- monster "job3_guil03",133,52,"Back Gate Guard",1985,1;
- monster "job3_guil03",133,51,"Back Gate Guard",1985,1;
- monster "job3_guil03",133,50,"Back Gate Guard",1985,1;
- monster "job3_guil03",133,49,"Guard Dog",1866,1;
+ monster "job3_guil03",133,54,"Guard Dog",1866,1,"Back Gate Guard#g01::OnMyMobDead";
+ monster "job3_guil03",133,53,"Back Gate Guard",1985,1,"Back Gate Guard#g01::OnMyMobDead";
+ monster "job3_guil03",133,52,"Back Gate Guard",1985,1,"Back Gate Guard#g01::OnMyMobDead";
+ monster "job3_guil03",133,51,"Back Gate Guard",1985,1,"Back Gate Guard#g01::OnMyMobDead";
+ monster "job3_guil03",133,50,"Back Gate Guard",1985,1,"Back Gate Guard#g01::OnMyMobDead";
+ monster "job3_guil03",133,49,"Guard Dog",1866,1,"Back Gate Guard#g01::OnMyMobDead";
end;
}
job3_guil03,133,53,5 duplicate(#3rdgc_guard00) Back Gate Guard#g03 456
@@ -3106,12 +3108,12 @@ OnTouch:
disablenpc "Interior Guard#g03";
disablenpc "Interior Guard#g04";
disablenpc "Interior Guard#g05";
- monster "job3_guil03",117,53,"Guard Dog",1866,1;
- monster "job3_guil03",117,52,"Interior Guard",1985,1;
- monster "job3_guil03",117,51,"Interior Guard",1985,1;
- monster "job3_guil03",117,50,"Interior Guard",1985,1;
- monster "job3_guil03",117,49,"Interior Guard",1985,1;
- monster "job3_guil03",117,48,"Guard Dog",1866,1;
+ monster "job3_guil03",117,53,"Guard Dog",1866,1,"Interior Guard#g01::OnMyMobDead";
+ monster "job3_guil03",117,52,"Interior Guard",1985,1,"Interior Guard#g01::OnMyMobDead";
+ monster "job3_guil03",117,51,"Interior Guard",1985,1,"Interior Guard#g01::OnMyMobDead";
+ monster "job3_guil03",117,50,"Interior Guard",1985,1,"Interior Guard#g01::OnMyMobDead";
+ monster "job3_guil03",117,49,"Interior Guard",1985,1,"Interior Guard#g01::OnMyMobDead";
+ monster "job3_guil03",117,48,"Guard Dog",1866,1,"Interior Guard#g01::OnMyMobDead";
end;
}
job3_guil03,117,52,4 duplicate(#3rdgc_guard00) Interior Guard#g03 456
@@ -3133,9 +3135,9 @@ OnReset:
OnTouch:
mapannounce "job3_guil03","Guards : Who are you?!",bc_map,"0xA8A8A8"; //FW_NORMAL 12 0 0
disablenpc "Exterior Guard#g01";
- monster "job3_guil03",88,44,"Exterior Guard",1985,1;
- monster "job3_guil03",88,43,"Exterior Guard",1985,1;
- monster "job3_guil03",88,45,"Guard Dog",1866,1;
+ monster "job3_guil03",88,44,"Exterior Guard",1985,1,"Exterior Guard#g01::OnMyMobDead";
+ monster "job3_guil03",88,43,"Exterior Guard",1985,1,"Exterior Guard#g01::OnMyMobDead";
+ monster "job3_guil03",88,45,"Guard Dog",1866,1,"Exterior Guard#g01::OnMyMobDead";
end;
}
@@ -3154,9 +3156,9 @@ OnReset:
OnTouch:
mapannounce "job3_guil03","Guards : Enemy?!",bc_map,"0xA8A8A8"; //FW_NORMAL 12 0 0
disablenpc "Exterior Guard#g02";
- monster "job3_guil03",88,55,"Exterior Guard",1985,1;
- monster "job3_guil03",88,54,"Exterior Guard",1985,1;
- monster "job3_guil03",88,56,"Guard Dog",1866,1;
+ monster "job3_guil03",88,55,"Exterior Guard",1985,1,"Exterior Guard#g02::OnMyMobDead";
+ monster "job3_guil03",88,54,"Exterior Guard",1985,1,"Exterior Guard#g02::OnMyMobDead";
+ monster "job3_guil03",88,56,"Guard Dog",1866,1,"Exterior Guard#g02::OnMyMobDead";
end;
}
@@ -3175,9 +3177,9 @@ OnReset:
OnTouch:
mapannounce "job3_guil03","Guards : An invader, remove!",bc_map,"0xA8A8A8"; //FW_NORMAL 12 0 0
disablenpc "Exterior Guard#g03";
- monster "job3_guil03",88,64,"Exterior Guard",1985,1;
- monster "job3_guil03",88,63,"Exterior Guard",1985,1;
- monster "job3_guil03",88,65,"Guard Dog",1866,1;
+ monster "job3_guil03",88,64,"Exterior Guard",1985,1,"Exterior Guard#g03::OnMyMobDead";
+ monster "job3_guil03",88,63,"Exterior Guard",1985,1,"Exterior Guard#g03::OnMyMobDead";
+ monster "job3_guil03",88,65,"Guard Dog",1866,1,"Exterior Guard#g03::OnMyMobDead";
end;
}
@@ -3196,9 +3198,9 @@ OnReset:
OnTouch:
mapannounce "job3_guil03","Guards : Who are you?!",bc_map,"0xA8A8A8"; //FW_NORMAL 12 0 0
disablenpc "Exterior Guard#g04";
- monster "job3_guil03",73,62,"Exterior Guard",1985,1;
- monster "job3_guil03",73,61,"Exterior Guard",1985,1;
- monster "job3_guil03",73,63,"Guard Dog",1866,1;
+ monster "job3_guil03",73,62,"Exterior Guard",1985,1,"Exterior Guard#g04::OnMyMobDead";
+ monster "job3_guil03",73,61,"Exterior Guard",1985,1,"Exterior Guard#g04::OnMyMobDead";
+ monster "job3_guil03",73,63,"Guard Dog",1866,1,"Exterior Guard#g04::OnMyMobDead";
end;
}
@@ -3217,9 +3219,9 @@ OnReset:
OnTouch:
mapannounce "job3_guil03","Guards : Who are you?!",bc_map,"0xA8A8A8"; //FW_NORMAL 12 0 0
disablenpc "Exterior Guard#g05";
- monster "job3_guil03",77,51,"Exterior Guards",1985,1;
- monster "job3_guil03",77,50,"Exterior Guards",1985,1;
- monster "job3_guil03",77,49,"Guard Dog",1866,1;
+ monster "job3_guil03",77,51,"Exterior Guards",1985,1,"Exterior Guard#g05::OnMyMobDead";
+ monster "job3_guil03",77,50,"Exterior Guards",1985,1,"Exterior Guard#g05::OnMyMobDead";
+ monster "job3_guil03",77,49,"Guard Dog",1866,1,"Exterior Guard#g05::OnMyMobDead";
end;
}
@@ -3238,9 +3240,9 @@ OnReset:
OnTouch:
mapannounce "job3_guil03","Guard : Who are you?!",bc_map,"0xA8A8A8"; //FW_NORMAL 12 0 0
disablenpc "Exterior Guard#g06";
- monster "job3_guil03",73,34,"Exterior Guards",1985,1;
- monster "job3_guil03",73,33,"Exterior guards",1985,1;
- monster "job3_guil03",73,32,"Guard Dog",1866,1;
+ monster "job3_guil03",73,34,"Exterior Guards",1985,1,"Exterior Guard#g06::OnMyMobDead";
+ monster "job3_guil03",73,33,"Exterior guards",1985,1,"Exterior Guard#g06::OnMyMobDead";
+ monster "job3_guil03",73,32,"Guard Dog",1866,1,"Exterior Guard#g06::OnMyMobDead";
end;
}
@@ -3258,10 +3260,10 @@ OnReset:
OnTouch:
mapannounce "job3_guil03","You have been detected by the guard dog.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0
disablenpc "Guard Dog#dog01";
- monster "job3_guil03",110,27,"Guard Dog",1866,1;
- monster "job3_guil03",103,27,"Dog Trainer",1985,1;
- monster "job3_guil03",104,27,"Dog Trainer's Assistant",1985,1;
- monster "job3_guil03",98,27,"Guard",1985,1;
+ monster "job3_guil03",110,27,"Guard Dog",1866,1,"Guard Dog#dog01::OnMyMobDead";
+ monster "job3_guil03",103,27,"Dog Trainer",1985,1,"Guard Dog#dog01::OnMyMobDead";
+ monster "job3_guil03",104,27,"Dog Trainer's Assistant",1985,1,"Guard Dog#dog01::OnMyMobDead";
+ monster "job3_guil03",98,27,"Guard",1985,1,"Guard Dog#dog01::OnMyMobDead";
end;
}
@@ -3279,42 +3281,42 @@ OnReset:
OnTouch:
mapannounce "job3_guil03","You have been detected by the guard dog.",bc_map,"0x00ff00"; //FW_NORMAL 12 0 0
disablenpc "Guard Dog#dog02";
- monster "job3_guil03",124,27,"Guard Dog",1866,1;
- monster "job3_guil03",126,27,"Dog Trainer",1985,1;
- monster "job3_guil03",104,27,"Trainer's Assistant",1985,1;
- monster "job3_guil03",131,27,"Guard",1985,1;
+ monster "job3_guil03",124,27,"Guard Dog",1866,1,"Guard Dog#dog02::OnMyMobDead";
+ monster "job3_guil03",126,27,"Dog Trainer",1985,1,"Guard Dog#dog02::OnMyMobDead";
+ monster "job3_guil03",104,27,"Trainer's Assistant",1985,1,"Guard Dog#dog02::OnMyMobDead";
+ monster "job3_guil03",131,27,"Guard",1985,1,"Guard Dog#dog02::OnMyMobDead";
end;
}
job3_guil03,2,1,0 script #3rdgc_sunchal_nomal 844,{
end;
OnEnable:
- monster "job3_guil03",62,35,"Guard",1985,1;
- monster "job3_guil03",108,78,"Guard",1985,1;
- monster "job3_guil03",133,77,"Guard",1985,1;
- monster "job3_guil03",79,69,"Guard",1985,1;
- monster "job3_guil03",117,27,"Guard",1985,1;
- monster "job3_guil03",62,48,"Guard",1985,1;
- monster "job3_guil03",116,24,"Guard Dog",1866,1;
- monster "job3_guil03",137,24,"Guard Dog",1866,1;
- monster "job3_guil03",49,74,"Guard Dog",1866,1;
- monster "job3_guil03",48,50,"Guard Dog",1866,1;
- monster "job3_guil03",62,48,"Guard Dog",1866,1;
- monster "job3_guil03",61,38,"Guard Dog",1866,1;
- monster "job3_guil03",74,47,"Guard Dog",1866,1;
- monster "job3_guil03",90,34,"Guard Dog",1866,1;
- monster "job3_guil03",91,51,"Guard Dog",1866,1;
- monster "job3_guil03",155,77,"Guard Dog",1866,1;
- monster "job3_guil03",127,67,"Guard Dog",1866,1;
- monster "job3_guil03",131,43,"Guard Dog",1866,1;
- monster "job3_guil03",103,27,"Guard Dog",1866,1;
- monster "job3_guil03",63,74,"Guard Dog",1866,1;
- monster "job3_guil03",79,69,"Guard Dog",1866,1;
- monster "job3_guil03",0,0,"Watch Light",1129,1;
- monster "job3_guil03",0,0,"Watch Light",1129,1;
- monster "job3_guil03",0,0,"Watch Light",1129,1;
- monster "job3_guil03",0,0,"Watch Light",1129,1;
- monster "job3_guil03",0,0,"Watch Light",1129,1;
+ monster "job3_guil03",62,35,"Guard",1985,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",108,78,"Guard",1985,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",133,77,"Guard",1985,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",79,69,"Guard",1985,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",117,27,"Guard",1985,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",62,48,"Guard",1985,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",116,24,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",137,24,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",49,74,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",48,50,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",62,48,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",61,38,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",74,47,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",90,34,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",91,51,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",155,77,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",127,67,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",131,43,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",103,27,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",63,74,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",79,69,"Guard Dog",1866,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",0,0,"Watch Light",1129,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",0,0,"Watch Light",1129,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",0,0,"Watch Light",1129,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",0,0,"Watch Light",1129,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
+ monster "job3_guil03",0,0,"Watch Light",1129,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
end;
OnReset:
killmonster "job3_guil03","#3rdgc_sunchal_nomal::OnMyMobDead";
@@ -3445,7 +3447,7 @@ job3_guil03,111,51,7 script Priest from Rachel 928,{
mes "Who are you?";
mes "Get out of here.";
close2;
- warp "ve_fild02",330,379;
+ warp "ve_fild02",330,379; //Pre-RE: ve_fild05 (341,303)
end;
OnInit:
OnDisable:
@@ -3472,7 +3474,7 @@ OnTimer40000:
mapannounce "job3_guil03","Renzak : Don't lag!",bc_map,"0x4d4dff"; //FW_NORMAL 12 0 0
end;
OnTimer60000:
- mapwarp "job3_guil03","ve_fild02",330,379;
+ mapwarp "job3_guil03","ve_fild02",330,379; //Pre-RE: ve_fild05 (341,303)
end;
OnTimer61000:
donpcevent "#3rdgc_guard::OnStop";
@@ -3903,7 +3905,7 @@ job3_guil03,1,8,0 script #GMhelper02_gc 844,{
donpcevent "#3rdgc_event01::OnEnable";
set $@3rdgc_room02, 0;
close2;
- mapwarp "job3_guil03","ve_fild02",330,379;
+ mapwarp "job3_guil03","ve_fild02",330,379; //Pre-RE: ve_fild05 (341,303)
end;
}
case 2:
diff --git a/npc/re/merchants/enchan_mal.txt b/npc/re/merchants/enchan_mal.txt
new file mode 100644
index 000000000..36e8487b5
--- /dev/null
+++ b/npc/re/merchants/enchan_mal.txt
@@ -0,0 +1,648 @@
+//===== rAthena Script =======================================
+//= Malangdo Enchants
+//===== By: ==================================================
+//= Muad_Dib
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= [Official Conversion]
+//= Adds enchantments to many high level weapons in exchange
+//= for Malangdo coins.
+//===== Additional Comments: =================================
+//= 1.0 First Version. [Euphy]
+//============================================================
+
+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 is changes?:Enhance high ranked weapons:Reset reinforcement capability")) {
+ case 1:
+ mes "[Mayomayo]";
+ mes "When I enchanted weapons, the slotted cards or refined level sometimes dissipated. 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 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:
+ set @mal_enchant_select,1;
+ break;
+ case 3:
+ set @mal_enchant_select,2;
+ break;
+ }
+
+ if (!getequipisequiped(EQI_HAND_R)) {
+ mes "[Mayomayo]";
+ mes "Did you take off your equipment?";
+ set @mal_enchant_select,0;
+ close;
+ }
+ set @mal_equip_id, getequipid(EQI_HAND_R);
+ set .@equip_type, getiteminfo(@mal_equip_id,11);
+
+ //callsub L_Socket,<cost multiplier>,<type>;
+ 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_
+ }
+ 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 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
+ }
+ 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
+ }
+ 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
+ }
+ 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 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 1473: callsub L_Socket,1,2; //Wizardy_Staff
+ }
+ break;
+ case 23: // New 2-H Staves
+ switch(@mal_equip_id) {
+ 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
+ }
+ 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;
+ }
+ mes "[Mayomayo]";
+ if (@mal_enchant_select == 1)
+ mes "This is not 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~";
+ set @mal_equip_id,0;
+ set @mal_enchant_select,0;
+ close;
+
+L_Socket:
+ set .@select, @mal_enchant_select;
+ set .@equip_id, @mal_equip_id;
+ set .@equip_name$, getitemname(.@equip_id)+((getitemslots(.@equip_id))?"["+getitemslots(.@equip_id)+"]":"");
+ set .@equip_refine, getequiprefinerycnt(EQI_HAND_R);
+ setarray .@equip_card[0], getequipcardid(EQI_HAND_R,0),getequipcardid(EQI_HAND_R,1),getequipcardid(EQI_HAND_R,2),getequipcardid(EQI_HAND_R,3);
+ set @mal_equip_id,0;
+ set @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;
+
+ setarray .@coin[0],6422,6421,6420,6419,6418,6423; // Payment ID
+ setarray .@cost[0], 15, 10, 6, 3, 2, 1; // Payment multiplier
+
+ set .@menu$, "Stop:";
+ for(set .@i,0; .@i<getarraysize(.@coin); set .@i,.@i+1) {
+ set .@count[.@i], countitem(.@coin[.@i]);
+ set .@total[.@i], getarg(0)*.@cost[.@i];
+ if (.@count[.@i] < .@total[.@i])
+ set .@menu$, .@menu$+"^999999"+getitemname(.@coin[.@i])+" (missing "+(.@total[.@i]-.@count[.@i])+")^000000:";
+ else
+ set .@menu$, .@menu$+getitemname(.@coin[.@i])+" (have "+.@count[.@i]+", need "+.@total[.@i]+"):";
+ }
+ set .@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
+ set .@enchant_type,10;
+ break;
+ case 1: //Dgrade_Coin
+ set .@enchant_type,9;
+ break;
+ case 2: //Cgrade_Coin
+ set .@enchant_type,8;
+ break;
+ case 3: //Bgrade_Coin
+ set .@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:
+ set .@enchant_type,((.@coin_select == 4)?4:1);
+ break;
+ case 3:
+ set .@enchant_type,((.@coin_select == 4)?5:2);
+ break;
+ case 4:
+ set .@enchant_type,((.@coin_select == 4)?6:3);
+ break;
+ }
+ break;
+ }
+ if (.@equip_card[3] == 0 && getarg(1) < 4) {
+ set .@socket,4;
+ set .@str$,"1st";
+ } else if (.@equip_card[2] == 0 && getarg(1) < 3) {
+ set .@socket,3;
+ set .@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
+ set .@i, rand(1,531);
+ if (.@i < 101) set .@enchant,4787; //Mdef4
+ else if (.@i < 201) set .@enchant,4792; //Def6
+ else if (.@i < 301) set .@enchant,4801; //SP100
+ else if (.@i < 351) set .@enchant,4795; //HP100
+ else if (.@i < 401) set .@enchant,4796; //HP200
+ else if (.@i < 451) set .@enchant,4819; //Atk1
+ else if (.@i < 476) set .@enchant,4720; //Dexterity1
+ else if (.@i < 501) set .@enchant,4740; //Vitality1
+ else if (.@i < 526) set .@enchant,4750; //Luck1
+ else if (.@i < 528) set .@enchant,4700; //Strength1
+ else if (.@i < 530) set .@enchant,4730; //Agility1
+ else if (.@i < 532) set .@enchant,4710; //Inteligence1
+ else set .@enchant,9;
+ break;
+ case 9: //Dgrade_Coin
+ set .@i, rand(1,531);
+ if (.@i < 101) set .@enchant,4795; //HP100
+ else if (.@i < 201) set .@enchant,4796; //HP200
+ else if (.@i < 301) set .@enchant,4819; //Atk1
+ else if (.@i < 351) set .@enchant,4720; //Dexterity1
+ else if (.@i < 401) set .@enchant,4740; //Vitality1
+ else if (.@i < 451) set .@enchant,4750; //Luck1
+ else if (.@i < 476) set .@enchant,4700; //Strength1
+ else if (.@i < 501) set .@enchant,4730; //Agility1
+ else if (.@i < 526) set .@enchant,4710; //Inteligence1
+ else if (.@i < 528) set .@enchant,4701; //Strength2
+ else if (.@i < 530) set .@enchant,4731; //Agility2
+ else if (.@i < 532) set .@enchant,4711; //Inteligence2
+ else set .@enchant,9;
+ break;
+ case 8: //Cgrade_Coin
+ set .@i, rand(1,531);
+ if (.@i < 101) set .@enchant,4720; //Dexterity1
+ else if (.@i < 201) set .@enchant,4740; //Vitality1
+ else if (.@i < 301) set .@enchant,4750; //Luck1
+ else if (.@i < 351) set .@enchant,4700; //Strength1
+ else if (.@i < 401) set .@enchant,4730; //Agility1
+ else if (.@i < 451) set .@enchant,4710; //Inteligence1
+ else if (.@i < 476) set .@enchant,4701; //Strength2
+ else if (.@i < 501) set .@enchant,4731; //Agility2
+ else if (.@i < 526) set .@enchant,4711; //Inteligence2
+ else if (.@i < 528) set .@enchant,4702; //Strength3
+ else if (.@i < 530) set .@enchant,4732; //Agility3
+ else if (.@i < 532) set .@enchant,4712; //Inteligence3
+ else set .@enchant,9;
+ break;
+ case 7: //Bgrade_Coin
+ set .@i, rand(1,531);
+ if (.@i < 101) set .@enchant,4700; //Strength1
+ else if (.@i < 201) set .@enchant,4730; //Agility1
+ else if (.@i < 301) set .@enchant,4710; //Inteligence1
+ else if (.@i < 351) set .@enchant,4701; //Strength2
+ else if (.@i < 401) set .@enchant,4731; //Agility2
+ else if (.@i < 451) set .@enchant,4711; //Inteligence2
+ else if (.@i < 476) set .@enchant,4702; //Strength3
+ else if (.@i < 501) set .@enchant,4732; //Agility3
+ else if (.@i < 526) set .@enchant,4712; //Inteligence3
+ else if (.@i < 528) set .@enchant,4703; //Strength4
+ else if (.@i < 530) set .@enchant,4733; //Agility4
+ else if (.@i < 532) set .@enchant,4713; //Inteligence4
+ else set .@enchant,9;
+ break;
+ case 6: //Agrade_Coin - Caster
+ set .@i, rand(1,555);
+ if (.@i < 81) set .@enchant,4711; //Inteligence2
+ else if (.@i < 161) set .@enchant,4721; //Dexterity2
+ else if (.@i < 241) set .@enchant,4814; //Spell2
+ else if (.@i < 311) set .@enchant,4712; //Inteligence3
+ else if (.@i < 371) set .@enchant,4722; //Dexterity3
+ else if (.@i < 431) set .@enchant,4813; //Spell3
+ else if (.@i < 476) set .@enchant,4713; //Inteligence4
+ else if (.@i < 516) set .@enchant,4812; //Spell4
+ else if (.@i < 526) set .@enchant,4760; //Matk1
+ else if (.@i < 546) set .@enchant,4714; //Inteligence5
+ else if (.@i < 551) set .@enchant,4826; //Spell5
+ else if (.@i < 556) set .@enchant,4761; //Matk2
+ else set .@enchant,9;
+ break;
+ case 5: //Agrade_Coin - Long Range
+ set .@i, rand(1,555);
+ if (.@i < 81) set .@enchant,4731; //Agility2
+ else if (.@i < 161) set .@enchant,4833; //Expert_Archer2
+ else if (.@i < 241) set .@enchant,4817; //Sharp2
+ else if (.@i < 311) set .@enchant,4732; //Agility3
+ else if (.@i < 371) set .@enchant,4834; //Expert_Archer3
+ else if (.@i < 431) set .@enchant,4816; //Sharp3
+ else if (.@i < 476) set .@enchant,4733; //Agility4
+ else if (.@i < 516) set .@enchant,4835; //Expert_Archer4
+ else if (.@i < 526) set .@enchant,4807; //Atk_Speed1
+ else if (.@i < 546) set .@enchant,4734; //Agility5
+ else if (.@i < 551) set .@enchant,4836; //Expert_Archer5
+ else if (.@i < 556) set .@enchant,4807; //Atk_Speed1
+ else set .@enchant,9;
+ break;
+ case 4: //Agrade_Coin - Short Range
+ set .@i, rand(1,555);
+ if (.@i < 81) set .@enchant,4731; //Agility2
+ else if (.@i < 161) set .@enchant,4808; //Fighting_Spirit4
+ else if (.@i < 241) set .@enchant,4817; //Sharp2
+ else if (.@i < 311) set .@enchant,4732; //Agility3
+ else if (.@i < 371) set .@enchant,4820; //Fighting_Spirit5
+ else if (.@i < 431) set .@enchant,4816; //Sharp3
+ else if (.@i < 476) set .@enchant,4733; //Agility4
+ else if (.@i < 516) set .@enchant,4821; //Fighting_Spirit6
+ else if (.@i < 526) set .@enchant,4807; //Atk_Speed1
+ else if (.@i < 546) set .@enchant,4734; //Agility5
+ else if (.@i < 551) set .@enchant,4822; //Fighting_Spirit7
+ else if (.@i < 556) set .@enchant,4807; //Atk_Speed1
+ else set .@enchant,9;
+ break;
+ case 3: //Anger_Seagod - Caster
+ set .@i, rand(1,555);
+ if (.@i < 81) set .@enchant,4712; //Inteligence3
+ else if (.@i < 161) set .@enchant,4722; //Dexterity3
+ else if (.@i < 241) set .@enchant,4813; //Spell3
+ else if (.@i < 311) set .@enchant,4713; //Inteligence4
+ else if (.@i < 371) set .@enchant,4812; //Spell4
+ else if (.@i < 431) set .@enchant,4760; //Matk1
+ else if (.@i < 476) set .@enchant,4714; //Inteligence5
+ else if (.@i < 516) set .@enchant,4826; //Spell5
+ else if (.@i < 526) set .@enchant,4761; //Matk2
+ else if (.@i < 546) set .@enchant,4715; //Inteligence6
+ else if (.@i < 551) set .@enchant,4827; //Spell6
+ else if (.@i < 556) set .@enchant,4761; //Matk2
+ else set .@enchant,9;
+ break;
+ case 2: //Anger_Seagod - Long Range
+ set .@i, rand(1,555);
+ if (.@i < 81) set .@enchant,4732; //Agility3
+ else if (.@i < 161) set .@enchant,4834; //Expert_Archer3
+ else if (.@i < 241) set .@enchant,4843; //Sharp4
+ else if (.@i < 311) set .@enchant,4733; //Agility4
+ else if (.@i < 371) set .@enchant,4835; //Expert_Archer4
+ else if (.@i < 431) set .@enchant,4844; //Sharp5
+ else if (.@i < 476) set .@enchant,4734; //Agility5
+ else if (.@i < 516) set .@enchant,4836; //Expert_Archer5
+ else if (.@i < 526) set .@enchant,4807; //Atk_Speed1
+ else if (.@i < 546) set .@enchant,4735; //Agility6
+ else if (.@i < 551) set .@enchant,4837; //Expert_Archer6
+ else if (.@i < 556) set .@enchant,4807; //Atk_Speed1
+ else set .@enchant,9;
+ break;
+ case 1: //Anger_Seagod - Short Range
+ set .@i, rand(1,555);
+ if (.@i < 81) set .@enchant,4732; //Agility3
+ else if (.@i < 161) set .@enchant,4820; //Fighting_Spirit5
+ else if (.@i < 241) set .@enchant,4843; //Sharp4
+ else if (.@i < 311) set .@enchant,4733; //Agility4
+ else if (.@i < 371) set .@enchant,4821; //Fighting_Spirit6
+ else if (.@i < 431) set .@enchant,4844; //Sharp5
+ else if (.@i < 476) set .@enchant,4734; //Agility5
+ else if (.@i < 516) set .@enchant,4822; //Fighting_Spirit7
+ else if (.@i < 526) set .@enchant,4807; //Atk_Speed1
+ else if (.@i < 546) set .@enchant,4735; //Agility6
+ else if (.@i < 551) set .@enchant,4823; //Fighting_Spirit8
+ else if (.@i < 556) set .@enchant,4807; //Atk_Speed1
+ else set .@enchant,9;
+ break;
+ default:
+ mes "[Mayomayo]";
+ mes "There is something wrong. Please try again.";
+ close;
+ }
+ if (.@equip_card[3] == 0 && getarg(1) < 4) set .@target,3;
+ else if (.@equip_card[2] == 0 && getarg(1) < 3) set .@target,2;
+ else if (.@equip_card[1] == 0 && getarg(1) < 2) set .@target,1;
+ else if (.@equip_card[0] == 0 && getarg(1) < 1) set .@target,0;
+ 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];
+
+// dropequipitem EQI_HAND_R
+ unequip EQI_HAND_R;
+ delitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
+ close;
+ }
+ specialeffect2 EF_REPAIRWEAPON;
+ mes "[Mayomayo]";
+ mes "I have enchanted ^990000slot "+.@socket+"^000000 of this equipment.";
+ delitem .@coin[.@coin_select],.@total[.@coin_select];
+
+// dropequipitem EQI_HAND_R
+ unequip EQI_HAND_R;
+ delitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
+
+// GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
+ set .@equip_card[.@target],.@enchant;
+ 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
+
+// dropequipitem EQI_HAND_R
+ unequip EQI_HAND_R;
+ delitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
+
+// GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
+ for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ if (.@equip_card[.@i] >= 4700) // Armor Enchant System
+ set .@equip_card[.@i],0;
+ }
+ getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
+ close;
+ }
+}
diff --git a/npc/re/scripts_athena.conf b/npc/re/scripts_athena.conf
index 30bf67476..04330ac3b 100644
--- a/npc/re/scripts_athena.conf
+++ b/npc/re/scripts_athena.conf
@@ -52,6 +52,7 @@ npc: npc/re/merchants/inn.txt
npc: npc/re/merchants/refine.txt
npc: npc/re/merchants/renters.txt
npc: npc/re/merchants/shops.txt
+npc: npc/re/merchants/enchan_mal.txt
// --------------------------- Others ---------------------------
npc: npc/re/other/mercenary_rent.txt
diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql
index 8711f4a48..8ab2d0882 100644
--- a/sql-files/item_db_re.sql
+++ b/sql-files/item_db_re.sql
@@ -3929,6 +3929,7 @@ REPLACE INTO `item_db_re` VALUES (6437,'Scaraba_Perfume','Scaraba Perfume',3,NUL
REPLACE INTO `item_db_re` VALUES (6440,'General_Lubrication','General Lubrication',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `item_db_re` VALUES (6441,'Advanced_Lubrication','Advanced Lubrication',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `item_db_re` VALUES (6442,'Octopus_Hunting_Skewer','Octopus Hunting Skewer',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (6443,'Sillit_Pong_Bottle','Sillit Pong Bottle',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
#
REPLACE INTO `item_db_re` VALUES (6451,'Unknown_Fish','Unknown Fish',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
#