* Platinum Skills NPC now works for all Upper types (bugreport:5903) (custom\platinum_skills.txt)

* Revamped the official clothes dyer (merchants\clothes_dyer.txt)
* Optimized custom Berzebub Card quest (custom\quests\berzebub.txt)
* Warper bug on ma_fild02 fixed (bugreport:5908) (custom\warper.txt)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16216 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
euphyy 2012-06-03 03:36:02 +00:00
parent f223818f59
commit df30c977cd
4 changed files with 185 additions and 469 deletions

View File

@ -3,7 +3,7 @@
//===== By: ================================================== //===== By: ==================================================
//= Keichii, DarkChild //= Keichii, DarkChild
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 2.7 //= 2.8
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena SVN //= rAthena SVN
//===== Description: ========================================= //===== Description: =========================================
@ -17,6 +17,7 @@
//= 2.5 Added dialog for if the user is none of the listed jobs. [Kisuka] //= 2.5 Added dialog for if the user is none of the listed jobs. [Kisuka]
//= 2.6 Fixed 2nd advanced classes not being able to get their advanced skills. [Ancyker] //= 2.6 Fixed 2nd advanced classes not being able to get their advanced skills. [Ancyker]
//= 2.7 Rewrote to give all correct skills to all proper classes. [Paradox924X] //= 2.7 Rewrote to give all correct skills to all proper classes. [Paradox924X]
//= 2.8 Clustered conditionals replaced with switch to include all Upper types. [Euphy]
//============================================================ //============================================================
prontera,128,200,6 script Platinum Skill NPC 94,{ prontera,128,200,6 script Platinum Skill NPC 94,{
@ -27,66 +28,34 @@ prontera,128,200,6 script Platinum Skill NPC 94,{
if (select("Yes Please:No") == 2) { if (select("Yes Please:No") == 2) {
mes "[Platinum Skill NPC]"; mes "[Platinum Skill NPC]";
mes "Have a nice day... >.>"; mes "Have a nice day... >.>";
close; close; }
}
skill 142,1,0; // First Aid skill 142,1,0;
if (BaseClass == Job_Novice) { switch(BaseClass) {
skill 143,1,0; // Play Dead case 0: if (Class !=23) skill 143,1,0; break;
} else if (BaseClass == Job_Swordman) { case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break;
skill 144,1,0; // Moving HP-Recovery case 2: skill 157,1,0; break;
skill 145,1,0; // Fatal Blow case 3: skill 147,1,0; skill 148,1,0; break;
skill 146,1,0; // Auto Berserk case 4: skill 156,1,0; break;
} else if (BaseClass == Job_Mage) { case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break;
skill 157,1,0; // Energy Coat case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break;
} else if (BaseClass == Job_Archer) { default: break; }
skill 147,1,0; // Arrow Crafting switch(roclass(eaclass()&EAJ_UPPERMASK)) {
skill 148,1,0; // Arrow Repel case 7: skill 1001,1,0; break;
} else if (BaseClass == Job_Merchant) { case 8: skill 1014,1,0; break;
skill 153,1,0; // Cart Revolution case 9: skill 1006,1,0; break;
skill 154,1,0; // Change Cart case 10: skill 1012,1,0; skill 1013,1,0; break;
skill 155,1,0; // Crazy Uproar case 11: skill 1009,1,0; break;
} else if (BaseClass == Job_Thief) { case 12: skill 1003,1,0; skill 1004,1,0; break;
skill 149,1,0; // Sand Attack case 14: skill 1002,1,0; break;
skill 150,1,0; // Back Slide case 15: skill 1015,1,0; skill 1016,1,0; break;
skill 151,1,0; // Find Stone case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break;
skill 152,1,0; // Stone Fling case 17: skill 1005,1,0; break;
} else if (BaseClass == Job_Acolyte) { case 18: skill 238,1,0; break;
skill 156,1,0; // Holy Light case 19: skill 1010,1,0; break;
} case 20: skill 1011,1,0; break;
if (Class == Job_Knight || Class == Job_Lord_Knight) { default: break; }
skill 1001,1,0; // Charge Attack
} else if (Class == Job_Crusader || Class == Job_Paladin) {
skill 1002,1,0; // Shrink
} else if (Class == Job_Wizard || Class == Job_High_Wizard) {
skill 1006,1,0; // Sight Blaster
} else if (Class == Job_Sage || Class == Job_Professor) {
skill 1007,1,0; // Create Elemental Converter
skill 1008,1,0; // Elemental Change Water
skill 1017,1,0; // Elemental Change Earth
skill 1018,1,0; // Elemental Change Fire
skill 1019,1,0; // Elemental Change Wind
} else if (Class == Job_Hunter || Class == Job_Sniper) {
skill 1009,1,0; // Phantasmic Arrow
} else if (Class == Job_Bard || Class == Job_Clown) {
skill 1010,1,0; // Pang Voice
} else if (Class == Job_Dancer || Class == Job_Gypsy) {
skill 1011,1,0; // Wink of Charm
} else if (Class == Job_Blacksmith || Class == Job_Whitesmith) {
skill 1012,1,0; // Unfair Trick
skill 1013,1,0; // Greed
} else if (Class == Job_Alchemist || Class == Job_Creator) {
skill 238,1,0; // Bioethics
} else if (Class == Job_Assassin || Class == Job_Assassin_Cross) {
skill 1003,1,0; // Sonic Acceleration
skill 1004,1,0; // Throw Venom Knife
} else if (Class == Job_Rogue || Class == Job_Stalker) {
skill 1005,1,0; // Close Confine
} else if (Class == Job_Priest || Class == Job_High_Priest) {
skill 1014,1,0; // Redemptio
} else if (Class == Job_Monk || Class == Job_Champion) {
skill 1015,1,0; // Ki Translation
skill 1016,1,0; // Ki Explosion
}
mes "[Platinum Skill NPC]"; mes "[Platinum Skill NPC]";
mes "There you go!"; mes "There you go!";
close; close;

View File

@ -10,64 +10,55 @@
//= Quest to get the Berzebub Card //= Quest to get the Berzebub Card
//===== Additional Comments: ================================= //===== Additional Comments: =================================
//= 1.1 Fixed ingredients. Was too exploitable [Lupus] //= 1.1 Fixed ingredients. Was too exploitable [Lupus]
//= 1.2 Optimized. [Euphy]
//============================================================ //============================================================
prontera,165,178,8 script Old Woman 103,{ prontera,165,178,8 script Old Woman 103,{
mes "[Old Woman]";
if(BerzQuest == 1) goto L_Already; setarray .@Items[0],714,25,1061,100,1095,200,618,10,1551,2,1614,1,727,20;
mes "Greeting lad. I found a really nifty item while I was picking mushrooms near Glast Heim."; set .@n$,"[Old Woman]";
mes .@n$;
if(BerzQuest == 1) {
mes "Hey, I remember you! I already told you that you may only complete this quest once.";
close; }
mes "Greeting, lad. I found a really nifty item while I was picking mushrooms near Glast Heim.";
next; next;
menu "Keep talking",-, "Leave", M_Leave; if(select("Keep Talking:Leave")==2) goto M_Leave;
mes "[Old Woman]"; mes .@n$;
mes "I have never seen an item like this before. I am told it can be placed inside am accessory that has a slot avaiable in it."; mes "I have never seen an item like this before. I am told it can be placed inside any accessory with a slot available.";
next; next;
mes "[Old Woman]"; mes .@n$;
mes "If you're interested in this item, tell me and I'll tell you what you need for me to make you one of your own. I can only give one of these to each player, so once you finish this quest once, you may not do it again."; mes "If you're interested in this item, I'll tell you what you need for me to make you one of your own. I can only give one of these to each player, so once you finish this quest, you may not do it again.";
next; next;
menu "Tell me more about it",-, "Nah, I don't care about it", M_Leave; if(select("Tell me more about it:Nah, I don't care about it")==2) goto M_Leave;
mes "[Old Woman]"; mes .@n$;
mes "I believe the item is called a ^FF0000Berzebub Card^000000. It can make any spell caster cast spells really fast!"; mes "I believe the item is called a ^FF0000Berzebub Card^000000. It makes you cast spells really fast!";
next; next;
mes "[Old Woman]"; mes .@n$;
mes "I need all of the following items:"; mes "I need all of the following items:";
mes "^0080FF25^000000 Emperiums"; for(set .@i,0; .@i<getarraysize(.@Items); set .@i,.@i+2) {
mes "^0080FF100^000000 Witched Starsands"; mes " ~ "+.@Items[.@i+1]+"x "+getitemname(.@Items[.@i]);
mes "^0080FF200^000000 Needles of Alarm"; if (countitem(.@Items[.@i]) < .@Items[.@i+1]) set .@nr,1; }
mes "^0080FF10^000000 Worn Out Scrolls";
mes "^0080FF2^000000 Biblies";
mes "^0080FF1^000000 Wand of the Occult";
mes "^0080FF20^000000 Opals";
next; next;
menu "I have all that!",-, "I'll get those ASAP", M_Leave; if(select("I have all of that!:I'll get those ASAP")==2) goto M_Leave;
mes "[Old Woman]"; mes .@n$;
mes "Anyone can say they have the items, but do they really have them? Let's take a look here..."; if (.@nr) {
next; mes "You lie! Get out of here and get those items, you sorry excuse for a rock star.";
mes "[Old Woman]"; close; }
if(countitem(714) < 25 || countitem(1061) < 100 || countitem(1095) < 200 || countitem(618) < 10 || countitem(1551) < 2 || countitem(1614) < 1 || countitem(727) < 20) goto L_noItems; for(set .@i,0; .@i<getarraysize(.@Items); set .@i,.@i+2)
delitem 714, 25; delitem .@Items[.@i], .@Items[.@i+1];
delitem 1061, 100; getitem 4145,1;
delitem 1095, 200;
delitem 618, 10;
delitem 1551, 2;
delitem 1614, 1;
delitem 727, 20;
getitem 4145, 1;
set BerzQuest, 1; set BerzQuest, 1;
mes "Well congratulations! You have all the items. Here is your ^FF0000Berzebub Card^000000, just as I promised."; mes "Congratulations! You have all the items. Here is your ^FF0000Berzebub Card^000000, as promised.";
emotion e_grat; emotion e_grat;
close; close;
M_Leave: M_Leave:
mes "[Old Woman]"; mes .@n$;
mes "Such a great item I have right here..."; mes "Such a great item I have right here...";
close; close;
L_noItems: }
mes "I knew you were lying! Get out of here and get those items you sorry excuse for a rock star.";
close;
L_Already:
mes "Hey I remember you! I already told you that you may only complete this quest once.";
close;
}

View File

@ -181,7 +181,7 @@ F26: setarray @c[2],371,212;
Disp("Dewata Field",1,1); Pick("dew_fild"); Disp("Dewata Field",1,1); Pick("dew_fild");
F27: setarray @c[2],97,314; F27: setarray @c[2],97,314;
Disp("Eclage Field",1,1); Pick("ecl_fild"); Disp("Eclage Field",1,1); Pick("ecl_fild");
F28: setarray @c[2],40,272,266,359; F28: setarray @c[2],40,272,207,180;
Disp("Malaya Field",1,2); Pick("ma_fild"); Disp("Malaya Field",1,2); Pick("ma_fild");
// -------------------------------------------------- // --------------------------------------------------

View File

@ -1,9 +1,9 @@
//===== rAthena Script ======================================= //===== rAthena Script =======================================
//= Clothes Dyer //= Clothes Dyer
//===== By: ================================================== //===== By: ==================================================
//= Usnul //= Usnul
//===== Current Version: ===================================== //===== Current Version: =====================================
//= 2.4 //= 2.5
//===== Compatible With: ===================================== //===== Compatible With: =====================================
//= rAthena 1.0+ //= rAthena 1.0+
//===== Description: ========================================= //===== Description: =========================================
@ -12,377 +12,133 @@
//= Fully working //= Fully working
//= 2.1 Shortened some labels to make this script loading, //= 2.1 Shortened some labels to make this script loading,
//= Added Black+White Colors desc [Lupus] //= Added Black+White Colors desc [Lupus]
//= 2.1a - added adv classes + abby class support [Lupus] //= 2.1a - added adv classes + baby class support [Lupus]
//= 2.2 <EFBFBD> Spell checked. [Nexon] //= 2.2 - Spell checked. [Nexon]
//= 2.3 - Fixed dis $hit! [Poki#3] //= 2.3 - Fixed dis $hit! [Poki#3]
//= 2.4 - Disabled cloth dyeing since it's not implemented //= 2.4 - Disabled cloth dyeing since it's not implemented
// on official servers and cause your client to crash // on official servers and cause your client to crash
// [Playtester] // [Playtester]
//= 2.5 - Optimized. [Euphy]
//============================================================ //============================================================
//Note: To enable it, replace L_Busy with L_Dye
//============================================================
// Dyer Ginedin Rephere ---------------------------------------------------
prt_in,284,168,2 script Dyer Ginedin Rephere 55,{ prt_in,284,168,2 script Dyer Ginedin Rephere 55,{
mes "[Dyer Ginedin Rephere]"; function Dyes;
mes "11... 12... Mmm... good. I think I'll be able to finish before tonight<68>s party. Oh! I didn't notice that you were here. Anyway how may I assist you?";
M_Menu:
next;
menu "-Talk",L_Talk,"-Dye Clothing",L_Busy,"-Price list",L_PriceList,"-Cancel",L_End;
L_Talk:
mes "[Dyer Ginedin Rephere]";
mes "Life may have gotten a little better.... but when I look at all of the orders I've received... Whew!";
mes "It seems that the young women of Rune Midgard must be very well off these days.";
next;
mes "[Dyer Ginedin Rephere]";
mes "Not that I think that they are indulging in anything luxurious mind you.";
mes "I don't think there is anything wrong with the pursuit of beauty and being fashionable.";
next;
mes "[Dyer Ginedin Rephere]";
mes "For us humans, who have no colorful fur or decorative scales, clothes are one of the few ways we have to display our personality, style, and beauty.";
next;
mes "[Dyer Ginedin Rephere]";
mes "Haha... When I think about it, I really feel that my job is worthwhile. I believe that I provide a service that the people desire.";
next;
mes "[Dyer Ginedin Rephere]";
mes "Can you feel it too? The energy that is released when rough fabric and leather are brought to life with color?.....";
next;
mes "[Dyer Ginedin Rephere]";
mes "Although the process is very tedious and time consuming, the joy and happiness I feel when a dress is finished.....";
mes "more than makes up for all of the hard work!!";
goto M_Menu;
L_Dye: set .@EnableDyes,1; // Disable (set to 0) if palettes cause errors [see note v2.4]
mes "[Dyer Ginedin Rephere]";
mes "Oh... you need my work? Well... okay sounds good.";
next;
mes "[Dyer Ginedin Rephere]";
mes "Please choose a color that suits you.";
next;
if(Sex==0) goto Female_dye;
//=================================
// Clothing Dyeing for Males
//=================================
Male_dye: set .n$,"[Dyer Ginedin Rephere]";
if(BaseJob==Job_Novice || BaseJob==Job_Novice_High || BaseJob==Job_Baby) goto L_Novice_M; mes .n$;
if(BaseJob==Job_Swordman || BaseJob==Job_Swordman_High || BaseJob==Job_Baby_Swordman) goto L_Swordman_M; mes "11... 12... Mmm... good. I think I'll be able to finish before tonight's party. Oh! I didn't notice you were here!";
if(BaseJob==Job_Mage || BaseJob==Job_Mage_High || BaseJob==Job_Baby_Mage) goto L_Mage_M; while(1) {
if(BaseJob==Job_Archer || BaseJob==Job_Archer_High || BaseJob==Job_Baby_Archer) goto L_Archer_M; next;
if(BaseJob==Job_Acolyte || BaseJob==Job_Acolyte_High || BaseJob==Job_Baby_Acolyte) goto L_Acolyte_M; mes .n$;
if(BaseJob==Job_Merchant || BaseJob==Job_Merchant_High || BaseJob==Job_Baby_Merchant) goto L_Merchant_M; mes "How may I assist you?";
if(BaseJob==Job_Thief || BaseJob==Job_Thief_High || BaseJob==Job_Baby_Thief) goto L_Thief_M; next;
if(BaseJob==Job_Knight || BaseJob==Job_Knight2 || BaseJob==Job_Crusader || BaseJob==Job_Crusader2 || BaseJob==Job_Lord_Knight || BaseJob==Job_Lord_Knight2 || BaseJob==Job_Paladin || BaseJob==Job_Paladin2 || BaseJob==Job_Stalker || BaseJob==Job_Baby_Knight || BaseJob==Job_Baby_Knight2 || BaseJob==Job_Baby_Crusader || BaseJob==Job_Baby_Crusader2) goto L_Swordman2_M; switch(select("- Talk:- Dye Clothing:- Price List:- ^777777Cancel^000000")) {
if(BaseJob==Job_Priest || BaseJob==Job_Monk || BaseJob==Job_High_Priest || BaseJob==Job_Champion || BaseJob==Job_Baby_Priest || BaseJob==Job_Baby_Monk) goto L_Acolyte2_M; case 1:
if(BaseJob==Job_Wizard || BaseJob==Job_High_Wizard || BaseJob==Job_Baby_Wizard) goto L_Mage2_M; mes .n$;
if(BaseJob==Job_Blacksmith || BaseJob==Job_Alchemist || BaseJob==Job_Whitesmith || BaseJob==Job_Creator || BaseJob==Job_Baby_Blacksmith || BaseJob==Job_Baby_Alchemist) goto L_Merchant2_M; mes "Life may have gotten a bit better, but when I look at all of the orders I've received... Whew!";
if(BaseJob==Job_Hunter || BaseJob==Job_Bard || BaseJob==Job_Sniper || BaseJob==Job_Clown || BaseJob==Job_Baby_Hunter || BaseJob==Job_Baby_Bard) goto L_Archer2_M; mes "It seems that the young women of Rune Midgard must be very well off these days.";
if(BaseJob==Job_Assassin || BaseJob==Job_Rogue || BaseJob==Job_Assassin_Cross || BaseJob==Job_Baby_Assassin || BaseJob==Job_Baby_Rogue) goto L_Thief2_M; next;
if(BaseJob==Job_SuperNovice || BaseJob==Job_Super_Baby) goto L_Super_Novice_M; mes .n$;
goto sL_Sorry; mes "Not that I think that they are indulging in anything luxurious, mind you.";
//NOTE: Although Sages have pellets, they color non existent piece's of clothing. They are not listed, so players won't waste their items and zeny. mes "I don't think there is anything wrong with the pursuit of beauty and being fashionable.";
//Professors also have a problem <.< The only thing that changes is a part of there Fox scarf. The Stalker Placement is not a bug! next;
mes .n$;
mes "For us humans, who have no colorful fur or decorative scales, clothes are one of the few ways we have to display our personality, style, and beauty.";
next;
mes .n$;
mes "Haha... When I think about it, I really feel that my job is worthwhile. I believe that I provide a service that the people desire.";
next;
mes .n$;
mes "Can you feel it too? The energy that is released when rough fabric and leather are brought to life with color?.....";
next;
mes .n$;
mes "Although the process is very tedious and time consuming, the joy and happiness I feel when a dress is finished more than makes up for all of the hard work!!";
break;
case 2:
mes .n$;
if (!.@EnableDyes) {
mes "Sorry, I'm too busy with other jobs to dye your clothes."; break; }
mes "Oh... you need my work? Well... okay, sounds good.";
next;
mes .n$;
mes "Please choose a color";
mes "that suits you.";
next;
set .@eac, eaclass();
switch(roclass(eaclass()&EAJ_UPPERMASK)) {
L_Novice_M: // Dyes(<color value>,<dye number>{,...});
set @black, 1; // Colors: [1]Orange, [2]Violet, [3]Red, [4]Black, [5]Green, [6]Blue, [7]White, [8]Yellow
set @blue, 2;
set @green, 3;
menu "- Default",L_Dye_Default,"- Black",L_Dye_Black,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Cancel",L_End;
L_Swordman_M:
set @black, 1;
set @blue, 2;
set @green, 3;
menu "- Default",L_Dye_Default,"- Black",L_Dye_Black,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Cancel",L_End;
L_Mage_M:
set @red, 1;
set @violet, 2;
set @orange, 3;
set @white, 4;
menu "- Default",L_Dye_Default,"- Red",L_Dye_Red,"- Violet",L_Dye_Violet,"- Orange",L_Dye_Orange,"- White",L_Dye_White,"- Cancel",L_End;
L_Archer_M:
set @black, 1;
set @violet, 2;
set @green, 3;
menu "- Default",L_Dye_Default,"- Black",L_Dye_Black,"- Violet",L_Dye_Violet,"- Green",L_Dye_Green,"- Cancel",L_End;
L_Acolyte_M:
set @blue, 1;
set @red, 2;
set @white, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Blue",L_Dye_Blue,"- Red",L_Dye_Red,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Merchant_M:
set @black, 1;
set @blue, 2;
set @green, 3;
menu "- Default",L_Dye_Default,"- Black",L_Dye_Black,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Cancel",L_End;
L_Thief_M:
set @green, 1;
set @red, 2;
set @white, 4;
menu "- Default",L_Dye_Default,"- Green",L_Dye_Green,"- Red",L_Dye_Red,"- White",L_Dye_White,"- Cancel",L_End;
L_Swordman2_M:
set @violet, 1;
set @red, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Violet",L_Dye_Violet,"- Red",L_Dye_Red,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Acolyte2_M:
set @blue, 1;
set @green, 2;
set @red, 3;
set @white, 4;
menu "- Default",L_Dye_Default,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Red",L_Dye_Red,"- White",L_Dye_White,"- Cancel",L_End;
L_Mage2_M:
set @blue, 1;
set @green, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Merchant2_M:
set @black, 1;
set @green, 2;
set @white, 3;
menu "- Default",L_Dye_Default,"- Black",L_Dye_Black,"- Green",L_Dye_Green,"- White",L_Dye_White,"- Cancel",L_End;
L_Archer2_M:
set @black, 1;
set @blue, 2;
set @green, 3;
menu "- Default",L_Dye_Default,"- Black",L_Dye_Black,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Cancel",L_End;
L_Thief2_M:
set @blue, 1;
menu "- Default",L_Dye_Default,"- Blue",L_Dye_Blue,"- Cancel",L_End;
L_Super_Novice_M:
set @violet, 1;
set @blue, 2;
set @green, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Violet",L_Dye_Violet,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Black",L_Dye_Black,"- Cancel",L_End;
//=================================
// Clothing Dyeing for Females
//=================================
Female_dye:
if(BaseJob==Job_Novice || BaseJob==Job_Novice_High || BaseJob==Job_Baby) goto L_Novice_F;
if(BaseJob==Job_Swordman || BaseJob==Job_Swordman_High || BaseJob==Job_Baby_Swordman) goto L_Swordman_F;
if(BaseJob==Job_Mage || BaseJob==Job_Mage_High || BaseJob==Job_Baby_Mage) goto L_Mage_F;
if(BaseJob==Job_Archer || BaseJob==Job_Archer_High || BaseJob==Job_Baby_Archer) goto L_Archer_F;
if(BaseJob==Job_Acolyte || BaseJob==Job_Acolyte_High || BaseJob==Job_Baby_Acolyte) goto L_Acolyte_F;
if(BaseJob==Job_Merchant || BaseJob==Job_Merchant_High || BaseJob==Job_Baby_Merchant) goto L_Merchant_F;
if(BaseJob==Job_Thief || BaseJob==Job_Thief_High || BaseJob==Job_Baby_Thief) goto L_Thief_F;
if(BaseJob==Job_Knight || BaseJob==Job_Knight2 || BaseJob==Job_Crusader || BaseJob==Job_Crusader2 || BaseJob==Job_Lord_Knight || BaseJob==Job_Lord_Knight2 || BaseJob==Job_Paladin || BaseJob==Job_Paladin2 || BaseJob==Job_Stalker || BaseJob==Job_Baby_Knight || BaseJob==Job_Baby_Knight2 || BaseJob==Job_Baby_Crusader || BaseJob==Job_Baby_Crusader2) goto L_Swordman2_F;
if(BaseJob==Job_Priest || BaseJob==Job_Baby_Priest) goto L_Acolyte2_F;
if(BaseJob==Job_Wizard || BaseJob==Job_Sage || BaseJob==Job_High_Wizard || BaseJob==Job_Professor || BaseJob==Job_Baby_Wizard || BaseJob==Job_Baby_Sage) goto L_Mage2_F;
if(BaseJob==Job_Blacksmith || BaseJob==Job_Alchemist || BaseJob==Job_Whitesmith || BaseJob==Job_Creator || BaseJob==Job_Baby_Blacksmith || BaseJob==Job_Baby_Alchemist) goto L_Merchant2_F;
if(BaseJob==Job_Hunter || BaseJob==Job_Dancer || BaseJob==Job_Sniper || BaseJob==Job_Gypsy || BaseJob==Job_Baby_Hunter || BaseJob==Job_Baby_Dancer) goto L_Archer2_F;
if(BaseJob==Job_Assassin || BaseJob==Job_Baby_Assassin) goto L_Thief2_F;
if(BaseJob==Job_Rogue || BaseJob==Job_Assassin_Cross || BaseJob==Job_Baby_Rogue) goto L_Thief3_F;
if(BaseJob==Job_SuperNovice || BaseJob==Job_Super_Baby) goto L_Super_Novice_F;
goto sL_Sorry;
//NOTE: Same problems as with Males. This time: Monk, High Priest, Champion.
//Rogue and Assassin Cross have her own check, because the default dye is black <.< The Stalker Placement is not a bug!
L_Novice_F:
set @blue, 1;
set @red, 2;
set @green, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Blue",L_Dye_Blue,"- Red",L_Dye_Red,"- Green",L_Dye_Green,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Swordman_F:
set @red, 1;
set @green, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Red",L_Dye_Red,"- Green",L_Dye_Green,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Mage_F:
set @red, 1;
set @violet, 2;
set @white, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Red",L_Dye_Red,"- Violet",L_Dye_Violet,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Archer_F:
set @red, 1;
set @green, 2;
set @white, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Red",L_Dye_Red,"- Green",L_Dye_Green,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Acolyte_F:
set @red, 1;
set @green, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Red",L_Dye_Red,"- Green",L_Dye_Green,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Merchant_F:
set @violet, 1;
set @green, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Violet",L_Dye_Violet,"- Green",L_Dye_Green,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Thief_F:
set @red, 1;
set @white, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Red",L_Dye_Red,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Swordman2_F:
set @blue, 1;
set @white, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Blue",L_Dye_Blue,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Acolyte2_F:
set @red, 1;
set @green, 2;
set @white, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Red",L_Dye_Red,"- Green",L_Dye_Green,"- White",L_Dye_White,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Mage2_F:
set @red, 1;
set @blue, 2;
set @white, 3;
set @green, 4;
menu "- Default",L_Dye_Default,"- Red",L_Dye_Red,"- Blue",L_Dye_Blue,"- White",L_Dye_White,"- Green",L_Dye_Green,"- Cancel",L_End;
L_Merchant2_F:
set @red, 1;
set @green, 2;
set @violet, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Red",L_Dye_Red,"- Green",L_Dye_Green,"- Violet",L_Dye_Violet,"- Black",L_Dye_Black,"- Cancel",L_End;
L_Archer2_F:
set @blue, 1;
set @green, 3;
set @violet, 4;
menu "- Default",L_Dye_Default,"- Blue",L_Dye_Blue,"- Green",L_Dye_Green,"- Violet",L_Dye_Violet,"- Cancel",L_End;
L_Thief2_F:
set @black, 1;
set @yellow, 2;
set @white, 3;
menu "- Default",L_Dye_Default,"- Black",L_Dye_Black,"- Yellow",L_Dye_Yellow,"- White",L_Dye_White,"- Cancel",L_End;
L_Thief3_F:
set @yellow, 2;
set @white, 3;
menu "- Default",L_Dye_Default,"- Yellow",L_Dye_Yellow,"- White",L_Dye_White,"- Cancel",L_End;
L_Super_Novice_F:
set @blue, 1;
set @red, 2;
set @green, 3;
set @black, 4;
menu "- Default",L_Dye_Default,"- Blue",L_Dye_Blue,"- Red",L_Dye_Red,"- Green",L_Dye_Green,"- Black",L_Dye_Black,"- Cancel",L_End;
//=================================
// Rest of the script
//=================================
L_Dye_Default:
mes "[Dyer Ginedin Rephere]";
mes "I can change your dye to the default one for free.";
mes "Are you sure?";
next;
menu "Yes",-,"No",L_End;
mes "[Dyer Ginedin Rephere]";
mes "OK. Here goes nothing.";
setlook 7,0;
close;
L_Dye_Orange:
mes "[Dyer Ginedin Rephere]";
if(countitem(980) < 1) goto sL_NoDye;
if(Zeny < 10000) goto sL_Zeny;
delitem 980,1;
set Zeny, Zeny - 10000;
mes "Ok. I will dye you clothes orange.";
setlook 7,@orange;
close;
L_Dye_Violet:
mes "[Dyer Ginedin Rephere]";
if(countitem(981) < 1) goto sL_NoDye;
if(Zeny < 10000) goto sL_Zeny;
delitem 981,1;
set Zeny, Zeny - 10000;
mes "Ok. I will dye you clothes Violet.";
setlook 7,@violet;
close;
L_Dye_Red:
mes "[Dyer Ginedin Rephere]";
if(countitem(975) < 1) goto sL_NoDye;
if(Zeny < 10000) goto sL_Zeny;
delitem 975,1;
set Zeny, Zeny - 10000;
mes "Ok. I will dye you clothes red.";
setlook 7,@red;
close;
L_Dye_Black:
mes "[Dyer Ginedin Rephere]";
if(countitem(983) < 1) goto sL_NoDye;
if(Zeny < 10000) goto sL_Zeny;
delitem 983,1;
set Zeny, Zeny - 10000;
mes "Ok. I will dye you clothes black.";
setlook 7,@black;
close;
L_Dye_Green:
mes "[Dyer Ginedin Rephere]";
if(countitem(979) < 1) goto sL_NoDye;
if(Zeny < 10000) goto sL_Zeny;
delitem 979,1;
set Zeny, Zeny - 10000;
mes "Ok. I will dye you clothes green.";
setlook 7,@green;
close;
L_Dye_Blue:
mes "[Dyer Ginedin Rephere]";
if(countitem(978) < 1) goto sL_NoDye;
if(Zeny < 10000) goto sL_Zeny;
delitem 978,1;
set Zeny, Zeny - 10000;
mes "Ok. I will dye you clothes blue.";
setlook 7,@blue;
close;
L_Dye_White:
mes "[Dyer Ginedin Rephere]";
if(countitem(982) < 1) goto sL_NoDye;
if(Zeny < 10000) goto sL_Zeny;
delitem 982,1;
set Zeny, Zeny - 10000;
mes "Ok. I will dye you clothes white.";
setlook 7,@white;
close;
L_Dye_Yellow:
mes "[Dyer Ginedin Rephere]";
if(countitem(976) < 1) goto sL_NoDye;
if(Zeny < 10000) goto sL_Zeny;
delitem 976,1;
set Zeny, Zeny - 10000;
mes "Ok. I will dye you clothes yellow.";
setlook 7,@yellow;
close;
sL_Sorry:
mes "Wow, your clothes is very strange, I haven't seen anything like it before. Hmmm... I'm sorry, but there is no way I can paint it.";
close;
sL_Zeny:
mes "I'm sorry but you don't have enough money.";
close;
sL_NoDye:
mes "For me to dye your clothes, I'll need the appropriate Dyestuffs. Please check my price list for the information.";
next;
L_Busy:
mes "Sorry, I'm too busy with other jobs to dye your clothes.";
goto M_Menu;
L_PriceList:
mes "[Dyer Ginedin Rephere]";
mes "Here is the list of colors you can choose from and their prices:";
mes " ";
mes " - ^FF4422Red^000000: 10000 zeny, 1 Scarlet Dyestuffs";
mes " - ^D5A500Yellow^000000: 10000 zeny, 1 Lemon Dyestuffs";
mes " - ^AA00AAViolet^000000: 10000 zeny, 1 Violet Dyestuffs";
mes " - ^FF8800Orange^000000: 10000 zeny, 1 Orange Dyestuffs";
mes " - ^4422FFBlue^000000: 10000 zeny, 1 CobaltBlue Dyestuffs";
mes " - ^009500Green^000000: 10000 zeny, 1 DarkGreen Dyestuffs";
mes " - Black: 10000 zeny, 1 Black Dyestuffs";
mes " - White: 10000 zeny, 1 White Dyestuffs";
goto M_Menu;
case Job_Novice: if (Sex) Dyes(4,1,6,2,5,3); else Dyes(6,1,3,2,5,3,4,4);
case Job_Swordman: if (Sex) Dyes(4,1,6,2,5,3); else Dyes(3,1,5,3,4,4);
case Job_Mage: if (Sex) Dyes(3,1,2,2,1,3,7,4); else Dyes(3,1,2,2,7,3,4,4);
case Job_Archer: if (Sex) Dyes(4,1,2,2,5,3); else Dyes(3,1,5,2,7,3,4,4);
case Job_Acolyte: if (Sex) Dyes(6,1,3,2,7,3,4,4); else Dyes(3,1,5,3,4,4);
case Job_Merchant: if (Sex) Dyes(4,1,6,2,5,3); else Dyes(2,1,5,3,4,4);
case Job_Thief: if (Sex) Dyes(5,1,3,2,7,4); else Dyes(3,1,7,3,4,4);
case Job_Knight: case Job_Crusader: if (Sex) Dyes(2,1,3,3,4,4); else Dyes(6,1,7,3,4,4);
case Job_Priest: case Job_Monk: if (Sex) Dyes(6,1,5,2,3,3,7,4); else Dyes(3,1,5,2,7,3,4,4);
case Job_Wizard: case Job_Sage: if (Sex) Dyes(6,1,5,3,4,4); else Dyes(3,1,6,2,7,3,5,4);
case Job_Blacksmith: case Job_Alchemist: if (Sex) Dyes(4,4,5,2,7,3); else Dyes(3,1,5,2,2,3,4,4);
case Job_Hunter: case Job_Bard: case Job_Dancer: if (Sex) Dyes(4,1,6,2,5,3); else Dyes(6,1,5,3,2,4);
case Job_Assassin: case Job_Rogue: if (Sex) Dyes(6,1); else Dyes(4,1,8,2,7,3);
case Job_SuperNovice: if (Sex) Dyes(2,1,6,2,5,3,4,4); else Dyes(6,1,3,2,5,3,4,4);
default:
mes "Wow, I've never seen clothes like that before! I'm sorry, but I don't think I can paint it.";
close; }
case 3:
mes .n$;
mes "Each color costs 10000z and 1 dye:";
mes " ";
mes " - ^FF4422Red^000000: Scarlet Dyestuffs";
mes " - ^D5A500Yellow^000000: Lemon Dyestuffs";
mes " - ^AA00AAViolet^000000: Violet Dyestuffs";
mes " - ^FF8800Orange^000000: Orange Dyestuffs";
mes " - ^4422FFBlue^000000: CobaltBlue Dyestuffs";
mes " - ^009500Green^000000: DarkGreen Dyestuffs";
mes " - Black: Black Dyestuffs";
mes " - White: White Dyestuffs";
break;
case 4:
goto L_End; } }
L_End: L_End:
mes "[Dyer Ginedin Rephere]"; mes .n$;
mes "Make yourself at home. Even though I don't have time for you."; mes "Make yourself at home. Even though I don't have time for you.";
close; close;
}
function Dyes {
setarray .@DyeName$[0],"the default color","Orange","Violet","Red","Black","Green","Blue","White","Yellow";
setarray .@DyeItems[0],0,980,981,975,983,979,978,982,976;
set .@menu$,"- Default:";
for(set .@i,0; 1; set .@i,.@i+2) {
if (!getarg(.@i,0)) break;
set .@menu$, .@menu$+"- "+.@DyeName$[getarg(.@i)]+":"; }
set .@menu$, .@menu$+"- ^777777Cancel^000000";
set .@s, select(.@menu$)-1;
if (.@s==.@i-2) goto L_End;
mes .n$;
if (!.@s) {
mes "I can change your dye to";
mes "the default for free.";
mes "Are you sure?";
next;
if(select("Yes:No")==2) goto L_End;
mes .n$;
setlook 7,0;
mes "Your clothes have been dyed "+.@DyeName$[0]+".";
close; }
if (!countitem(.@DyeItems[getarg((.@s-1)*2)])) {
mes "For me to dye your clothes, I'll need the appropriate Dyestuffs. Please check my price list for the information.";
close; }
if (Zeny < 10000) {
mes "I'm sorry, but you don't have enough money.";
close; }
delitem .@DyeItems[getarg((.@s-1)*2)],1;
set Zeny, Zeny-10000;
setlook 7, ((.@s)?(getarg((.@s-1)*2+1)):0);
mes "Your clothes have been dyed "+((.@s)?.@DyeName$[getarg((.@s-1)*2)]:.@DyeName$[0])+".";
close; }
}