summaryrefslogtreecommitdiff
path: root/npc/re/merchants/card_separation.txt
diff options
context:
space:
mode:
authorMichieru <michieru@0-mail.com>2013-10-24 12:10:43 +0200
committerMichieru <michieru@0-mail.com>2013-10-24 12:10:43 +0200
commite3afdc2af4c5e50c79237ee092e25f39b7428e47 (patch)
tree20cfd05dd6fc2e3e53173ef059f045cee1526d58 /npc/re/merchants/card_separation.txt
parent491892212d338903179909b89a5bfc2385e52261 (diff)
downloadhercules-e3afdc2af4c5e50c79237ee092e25f39b7428e47.tar.gz
hercules-e3afdc2af4c5e50c79237ee092e25f39b7428e47.tar.bz2
hercules-e3afdc2af4c5e50c79237ee092e25f39b7428e47.tar.xz
hercules-e3afdc2af4c5e50c79237ee092e25f39b7428e47.zip
Update to last rAthena npc.
Fix some typos change sc_bleeding to -> sc_blooding Updated RE EXP for quests_brasilis.txt
Diffstat (limited to 'npc/re/merchants/card_separation.txt')
-rw-r--r--npc/re/merchants/card_separation.txt231
1 files changed, 155 insertions, 76 deletions
diff --git a/npc/re/merchants/card_separation.txt b/npc/re/merchants/card_separation.txt
index 386474000..8187d4fe7 100644
--- a/npc/re/merchants/card_separation.txt
+++ b/npc/re/merchants/card_separation.txt
@@ -1,19 +1,18 @@
//===== Hercules Script ======================================
//= Card Separation System
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
//= [Official Conversion]
//= Separates cards from equipment.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Euphy]
-//============================================================
+//= 1.1 Added "Richard" NPC. [Euphy]
+//============================================================
-malangdo,215,166,4 script Jeremy#mal 553,{
+- script ::CardSeparation_mal -1,{
disable_items;
if (checkweight(1201,1) == 0) {
mes "You have too many kinds of objects. Let's try to continue after reducing those objects.";
@@ -23,19 +22,32 @@ malangdo,215,166,4 script Jeremy#mal 553,{
mes "Can't continue because you have too many heavy objects. Let's try to continue after reducing the weight.";
close;
}
- mes "[Jeremy]";
- mes "Long time no see~";
- mes "I have learned a new skill that separates cards from Armor, Shoes, Garment and Headgear. Do you want to try it?";
+ if (strnpcinfo(1) == "Jeremy") {
+ set .@Jeremy,1;
+ set .@n$, "[Jeremy]";
+ setarray .@equip_name$[0], "Armor", "Shoes", "Garment", "Upper Hat";
+ setarray .@equip_slot[0], EQI_ARMOR,EQI_SHOES,EQI_GARMENT,EQI_HEAD_TOP;
+
+ mes .@n$;
+ mes "Long time no see~";
+ mes "I have learned a new skill that separates cards from Armor, Shoes, Garment and Headgear. Do you want to try it?";
+ } else {
+ set .@Jeremy,0;
+ set .@n$, "[Richard]";
+ setarray .@equip_name$[0], "Left hand", "Right hand";
+ setarray .@equip_slot[0], EQI_HAND_L, EQI_HAND_R;
+
+ mes .@n$;
+ mes "Silly Jeremy does not want to touch weapons and shields because of picking several cards that might be damaged. That is why I prepared a card separaion skill for weapons and shields...";
+ }
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "Generally the fee is 1,000,000 Zeny. During the card separation, you can use ^990000special items that reduce the rate of destroying equipment or cards^000000. We don't charge additional zeny for this.";
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "There is a possibility of destroying them even using a special item. Also, ^ff0000the refine level might be lost^000000. Do you have any equipment to separate?";
next;
- setarray .@equip_name$[0], "Armor", "Shoes", "Garment", "Upper Hat";
- setarray .@equip_slot[0], EQI_ARMOR,EQI_SHOES,EQI_GARMENT,EQI_HEAD_TOP;
for(set .@i,0; .@i<getarraysize(.@equip_slot); set .@i,.@i+1) {
if (getequipisequiped(.@equip_slot[.@i]))
set .@menu$, .@menu$+getequipname(.@equip_slot[.@i])+":";
@@ -43,62 +55,55 @@ malangdo,215,166,4 script Jeremy#mal 553,{
set .@menu$, .@menu$+"^999999"+.@equip_name$[.@i]+" (empty)^000000:";
}
- set .@i, select("Stop the work:How is it possible?:"+.@menu$);
+ set .@i, select("Stop the work:"+((.@Jeremy)?"How is it possible?":"")+":"+.@menu$);
switch(.@i) {
case 1:
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
case 2:
- mes "[Jeremy]";
+ mes .@n$;
mes "You wonder what is so special. Well, I hate to give only a guide, so let me tell you the story...";
next;
mes "^000099Jeremy is stretching his shoulders and hands. He might be waiting for someone to talk with him.^000000";
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "Do you know that Malangdo's specialty is canned food?";
next;
select("I knew that well. Is it that limited?");
- mes "[Jeremy]";
+ mes .@n$;
mes "Hehe... Everyone loves it. But there were some problems before.";
next;
select("Problems? Is there any faulty fish?");
- mes "[Jeremy]";
+ mes .@n$;
mes "No, the fish does not have any problem. The problem is lots of fish oil produced after processing. That is such an industrial waste.";
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "However, after a revitalizing refining process, this fish oil became valuable to use for old equipment care and industrial lubricant.";
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "In addition, this oil is so useful to separate relics from equipped weapons that we can't buy Premium Lubricant and Ordinary Lubricant with Zeny.";
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "Well, don't worry about money. Surely the Premium Lubricant is expensive. If you pay some zeny, I can give you cheaper lubricant.";
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "I'm not sure about the quality of success. Anyway, this is so cheap, right?";
close;
default:
set .@equip_num, .@equip_slot[.@i-3];
if (!getequipisequiped(.@equip_num)) {
- mes "[Jeremy]";
- mes "In this part, there is nothing?";
+ mes .@n$;
+ if (.@Jeremy)
+ mes "In this part, there is nothing?";
+ else
+ mes "There is nothing on that part?";
close;
}
break;
}
- setarray .@equip_card[0], getequipcardid(.@equip_num,0),getequipcardid(.@equip_num,1),getequipcardid(.@equip_num,2),getequipcardid(.@equip_num,3);
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
- if (.@equip_card[.@i] >= 4700) // Armor Enchant System
- set .@equip_card[.@i],0;
- }
- if (!getarraysize(.@equip_card)) {
- mes "[Jeremy]";
- mes "The card is not equipped. Do you want to check again?";
- close;
- }
- // Detect MVP cards.
+ setarray .@equip_card[0], getequipcardid(.@equip_num,0),getequipcardid(.@equip_num,1),getequipcardid(.@equip_num,2),getequipcardid(.@equip_num,3);
set .@mvp_list$,
"|4408|4128|4456|4168|4142"+ //Gloom_Under_Night_Card, Golden_Bug_Card, Nidhogg_Shadow_Card, Dark_Lord_Card, Doppelganger_Card
"|4134|4137|4386|4407|4357"+ //Dracula_Card, Drake_Card, Detale_Card, Randgris_Card, B_Seyren_Card
@@ -109,15 +114,64 @@ malangdo,215,166,4 script Jeremy#mal 553,{
"|4403|4399|4376|4441|4302"+ //Kiel_Card, Thanatos_Card, Lady_Tanee_Card, Fallen_Bishop_Card, Tao_Gunka_Card
"|4305|4148|4318|4121|4365"+ //Turtle_General_Card, Pharaoh_Card, Knight_Windstorm_Card, Phreeoni_Card, B_Katrinn_Card
"|4363|4324|4361|4330|4342|"; //B_Magaleta_Card, Garm_Card, B_Harword_Card, Dark_Snake_Lord_Card, Rsx_0806_Card
- if ((.@equip_card[0] && compare(.@mvp_list$,"|"+.@equip_card[0]+"|")) ||
- (.@equip_card[1] && compare(.@mvp_list$,"|"+.@equip_card[1]+"|")) ||
- (.@equip_card[2] && compare(.@mvp_list$,"|"+.@equip_card[2]+"|")) ||
- (.@equip_card[3] && compare(.@mvp_list$,"|"+.@equip_card[3]+"|")))
- set .@boss_chk,1;
+ if (.@Jeremy) {
+ for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ if (.@equip_card[.@i] >= 4700) // Armor Enchant System
+ set .@equip_card[.@i],0;
+ }
+ if (!getarraysize(.@equip_card)) {
+ mes .@n$;
+ mes "The card is not equipped. Do you want to check again?";
+ close;
+ }
+ if ((.@equip_card[0] && compare(.@mvp_list$,"|"+.@equip_card[0]+"|")) ||
+ (.@equip_card[1] && compare(.@mvp_list$,"|"+.@equip_card[1]+"|")) ||
+ (.@equip_card[2] && compare(.@mvp_list$,"|"+.@equip_card[2]+"|")) ||
+ (.@equip_card[3] && compare(.@mvp_list$,"|"+.@equip_card[3]+"|")))
+ set .@boss_chk,1;
+ } else {
+ // Official "Richard" script uses a hardcoded list including every possible item.
+ //if (!getequipisequiped(.@equip_num)) {
+ // mes "[Richard]";
+ // mes "I'm sorry. We don't provide that equipmnet yet.";
+ // close;
+ //}
+
+ mes "[Richard]";
+ mes "Which number socket do you want to separate the card? From the left socket, they are sorted 1,2,3,4.";
+ next;
+ set .@menu$,"";
+ for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ if (.@equip_card[.@i] && .@equip_card[.@i] < 4700) // Armor Enchant System
+ set .@menu$, .@menu$+"Socket "+(.@i+1)+" - "+getitemname(.@equip_card[.@i])+":";
+ else
+ set .@menu$, .@menu$+"^777777Socket "+(.@i+1)+" - No card^000000:";
+ }
+ set .@i, select("Stop the work:"+.@menu$);
+ switch(.@i) {
+ case 1:
+ mes .@n$;
+ mes "Whenever you need to work, please come to me.";
+ close;
+ default:
+ set .@slot, .@i-2;
+ if (.@equip_card[.@slot] == 0 || .@equip_card[.@slot] >= 4700) {
+ mes .@n$;
+ mes "This socket is not equipped with any card. Why don't you check again?";
+ close;
+ }
+ break;
+ }
+ if (compare(.@mvp_list$,"|"+.@equip_card[.@slot]+"|"))
+ set .@boss_chk,1;
+ }
if (.@boss_chk == 0) {
- mes "[Jeremy]";
- mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:";
+ mes .@n$;
+ if (.@Jeremy)
+ mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:";
+ else
+ mes "Please choose the working fee.";
next;
set .@menu$,
"Next time...:"+
@@ -126,20 +180,20 @@ malangdo,215,166,4 script Jeremy#mal 553,{
((countitem(6440))?"Use Ordinary Lubricant":"^999999Ordinary Lubricant (Insufficient)^000000");
switch(select(.@menu$)) {
case 1:
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
case 2:
if (Zeny < 1000000) {
- mes "[Jeremy]";
+ mes .@n$;
mes "You don't have enough zeny. Please come back with enough fees.";
close;
}
- mes "[Jeremy]";
+ mes .@n$;
mes "This is pretty old equipment. There is a high rate of destroying the cards or equipment during the work. Are you sure you want to continue?";
next;
if(select("Next time...:Continue") == 1) {
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
}
@@ -150,15 +204,15 @@ malangdo,215,166,4 script Jeremy#mal 553,{
break;
case 3:
if (countitem(6441) == 0) {
- mes "[Jeremy]";
+ mes .@n$;
mes "You don't have Premium Lubricant.";
close;
}
- mes "[Jeremy]";
+ mes .@n$;
mes "If you use the Premium Lubricant, the rate of destruction will be decreased highly, but I can't give you a 100% guarantee. Are you sure you want to continue?";
next;
if(select("Next time...:Continue") == 1) {
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
}
@@ -169,15 +223,15 @@ malangdo,215,166,4 script Jeremy#mal 553,{
break;
case 4:
if (countitem(6440) == 0) {
- mes "[Jeremy]";
+ mes .@n$;
mes "You don't have Ordinary Lubricant.";
close;
}
- mes "[Jeremy]";
+ mes .@n$;
mes "If you use the Ordinary Lubricant, the rate of destruction will be decreased highly, but I can't give you a 100% guarantee. Are you sure you want to continue?";
next;
if(select("Next time...:Continue") == 1) {
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
}
@@ -188,28 +242,34 @@ malangdo,215,166,4 script Jeremy#mal 553,{
break;
}
} else if (.@boss_chk == 1) {
- mes "[Jeremy]";
+ mes .@n$;
mes "This equipment contains a precious MVP card. This card can't be separated with lubricant. If you bring the super surfactant ^0000ffSillit Pong^000000, I will be able to work.";
next;
switch(select("Next time...:I have a Sillit Pong.")) {
case 1:
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
case 2:
if (countitem(6443) == 0) {
- mes "[Jeremy]";
+ mes .@n$;
mes "You don't have Sillit Pong.";
close;
}
break;
}
- mes "[Jeremy]";
- mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:";
+ mes .@n$;
+ if (.@Jeremy) {
+ mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:";
+ set .@menu$,"Alright, let's do it!";
+ } else {
+ mes "May I continue?";
+ set .@menu$,"I got it. Just do it quickly!";
+ }
next;
- switch(select("Next time...:Alright, let's do it!")) {
+ switch(select("Next time...:"+.@menu$)) {
case 1:
- mes "[Jeremy]";
+ mes .@n$;
mes "Whenever you need the work, visit me here.";
close;
case 2:
@@ -229,20 +289,37 @@ malangdo,215,166,4 script Jeremy#mal 553,{
if (rand(1,.@sf_r_num) >= 61)
set .@equip_refine,0;
- // Chance of retaining equipment.
- if (rand(1,.@sf_w_num) < 61) {
- set .@equip_safe,1;
- getitem2 .@equip_id,1,1,.@equip_refine,0,0,0,0,0;
- }
+ if (.@Jeremy) {
+ // Chance of retaining equipment.
+ if (rand(1,.@sf_w_num) < 61) {
+ set .@equip_safe,1;
+ getitem2 .@equip_id,1,1,.@equip_refine,0,0,0,0,0;
+ }
- // Chance of retaining cards.
- for(set .@i,0; .@i<4; set .@i,.@i+1) {
- if (.@equip_card[.@i]) {
- if (rand(1,.@sf_c_num) < 61)
- getitem .@equip_card[.@i],1;
- else
- set .@card_break,1;
+ // Chance of retaining cards.
+ for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ if (.@equip_card[.@i]) {
+ if (rand(1,.@sf_c_num) < 61)
+ getitem .@equip_card[.@i],1;
+ else
+ set .@card_break,1;
+ }
}
+ } else {
+ set .@card, .@equip_card[.@slot];
+ set .@equip_card[.@slot],0;
+
+ // Chance of retaining equipment.
+ if (rand(1,.@sf_w_num) < 61) {
+ set .@equip_safe,1;
+ getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];
+ }
+
+ // Chance of retaining card.
+ if (rand(1,.@sf_c_num) < 61)
+ getitem .@card,1;
+ else
+ set .@card_break,1;
}
// Display corresponding effect.
@@ -273,7 +350,9 @@ malangdo,215,166,4 script Jeremy#mal 553,{
mes "Card has been damaged. ^ff0000Unrecoverable.^000000";
}
next;
- mes "[Jeremy]";
+ mes .@n$;
mes "That is all for the results of the card separation. Please come again.";
close;
}
+malangdo,215,166,4 duplicate(CardSeparation_mal) Jeremy#pa0829 553
+malangdo,208,166,6 duplicate(CardSeparation_mal) Richard#pa0829 559