summaryrefslogtreecommitdiff
path: root/npc/custom
diff options
context:
space:
mode:
Diffstat (limited to 'npc/custom')
-rw-r--r--npc/custom/platinum_skills.txt91
-rw-r--r--npc/custom/quests/berzebub.txt81
-rw-r--r--npc/custom/warper.txt2
3 files changed, 67 insertions, 107 deletions
diff --git a/npc/custom/platinum_skills.txt b/npc/custom/platinum_skills.txt
index 2a30e00f1..7eb933106 100644
--- a/npc/custom/platinum_skills.txt
+++ b/npc/custom/platinum_skills.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= Keichii, DarkChild
//===== Current Version: =====================================
-//= 2.7
+//= 2.8
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@@ -17,6 +17,7 @@
//= 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.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,{
@@ -27,66 +28,34 @@ prontera,128,200,6 script Platinum Skill NPC 94,{
if (select("Yes Please:No") == 2) {
mes "[Platinum Skill NPC]";
mes "Have a nice day... >.>";
- close;
- }
- skill 142,1,0; // First Aid
- if (BaseClass == Job_Novice) {
- skill 143,1,0; // Play Dead
- } else if (BaseClass == Job_Swordman) {
- skill 144,1,0; // Moving HP-Recovery
- skill 145,1,0; // Fatal Blow
- skill 146,1,0; // Auto Berserk
- } else if (BaseClass == Job_Mage) {
- skill 157,1,0; // Energy Coat
- } else if (BaseClass == Job_Archer) {
- skill 147,1,0; // Arrow Crafting
- skill 148,1,0; // Arrow Repel
- } else if (BaseClass == Job_Merchant) {
- skill 153,1,0; // Cart Revolution
- skill 154,1,0; // Change Cart
- skill 155,1,0; // Crazy Uproar
- } else if (BaseClass == Job_Thief) {
- skill 149,1,0; // Sand Attack
- skill 150,1,0; // Back Slide
- skill 151,1,0; // Find Stone
- skill 152,1,0; // Stone Fling
- } else if (BaseClass == Job_Acolyte) {
- skill 156,1,0; // Holy Light
- }
- if (Class == Job_Knight || Class == Job_Lord_Knight) {
- 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
- }
+ close; }
+
+ skill 142,1,0;
+ switch(BaseClass) {
+ case 0: if (Class !=23) skill 143,1,0; break;
+ case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break;
+ case 2: skill 157,1,0; break;
+ case 3: skill 147,1,0; skill 148,1,0; break;
+ case 4: skill 156,1,0; break;
+ case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break;
+ case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break;
+ default: break; }
+ switch(roclass(eaclass()&EAJ_UPPERMASK)) {
+ case 7: skill 1001,1,0; break;
+ case 8: skill 1014,1,0; break;
+ case 9: skill 1006,1,0; break;
+ case 10: skill 1012,1,0; skill 1013,1,0; break;
+ case 11: skill 1009,1,0; break;
+ case 12: skill 1003,1,0; skill 1004,1,0; break;
+ case 14: skill 1002,1,0; break;
+ case 15: skill 1015,1,0; skill 1016,1,0; break;
+ case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break;
+ case 17: skill 1005,1,0; break;
+ case 18: skill 238,1,0; break;
+ case 19: skill 1010,1,0; break;
+ case 20: skill 1011,1,0; break;
+ default: break; }
+
mes "[Platinum Skill NPC]";
mes "There you go!";
close;
diff --git a/npc/custom/quests/berzebub.txt b/npc/custom/quests/berzebub.txt
index 6fbb60960..cfaf78980 100644
--- a/npc/custom/quests/berzebub.txt
+++ b/npc/custom/quests/berzebub.txt
@@ -10,64 +10,55 @@
//= Quest to get the Berzebub Card
//===== Additional Comments: =================================
//= 1.1 Fixed ingredients. Was too exploitable [Lupus]
+//= 1.2 Optimized. [Euphy]
//============================================================
prontera,165,178,8 script Old Woman 103,{
- mes "[Old Woman]";
- if(BerzQuest == 1) goto L_Already;
- mes "Greeting lad. I found a really nifty item while I was picking mushrooms near Glast Heim.";
+
+ setarray .@Items[0],714,25,1061,100,1095,200,618,10,1551,2,1614,1,727,20;
+ 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;
- menu "Keep talking",-, "Leave", M_Leave;
-
- mes "[Old Woman]";
- 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.";
+ if(select("Keep Talking:Leave")==2) goto M_Leave;
+
+ mes .@n$;
+ 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;
- mes "[Old Woman]";
- 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 .@n$;
+ 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;
- menu "Tell me more about it",-, "Nah, I don't care about it", M_Leave;
-
- mes "[Old Woman]";
- mes "I believe the item is called a ^FF0000Berzebub Card^000000. It can make any spell caster cast spells really fast!";
+ if(select("Tell me more about it:Nah, I don't care about it")==2) goto M_Leave;
+
+ mes .@n$;
+ mes "I believe the item is called a ^FF0000Berzebub Card^000000. It makes you cast spells really fast!";
next;
- mes "[Old Woman]";
+ mes .@n$;
mes "I need all of the following items:";
- mes "^0080FF25^000000 Emperiums";
- mes "^0080FF100^000000 Witched Starsands";
- mes "^0080FF200^000000 Needles of Alarm";
- mes "^0080FF10^000000 Worn Out Scrolls";
- mes "^0080FF2^000000 Biblies";
- mes "^0080FF1^000000 Wand of the Occult";
- mes "^0080FF20^000000 Opals";
+ for(set .@i,0; .@i<getarraysize(.@Items); set .@i,.@i+2) {
+ mes " ~ "+.@Items[.@i+1]+"x "+getitemname(.@Items[.@i]);
+ if (countitem(.@Items[.@i]) < .@Items[.@i+1]) set .@nr,1; }
next;
- menu "I have all that!",-, "I'll get those ASAP", M_Leave;
-
- mes "[Old Woman]";
- mes "Anyone can say they have the items, but do they really have them? Let's take a look here...";
- next;
- mes "[Old Woman]";
- 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;
- delitem 714, 25;
- delitem 1061, 100;
- delitem 1095, 200;
- delitem 618, 10;
- delitem 1551, 2;
- delitem 1614, 1;
- delitem 727, 20;
- getitem 4145, 1;
+ if(select("I have all of that!:I'll get those ASAP")==2) goto M_Leave;
+
+ mes .@n$;
+ if (.@nr) {
+ mes "You lie! Get out of here and get those items, you sorry excuse for a rock star.";
+ close; }
+ for(set .@i,0; .@i<getarraysize(.@Items); set .@i,.@i+2)
+ delitem .@Items[.@i], .@Items[.@i+1];
+ getitem 4145,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;
close;
M_Leave:
- mes "[Old Woman]";
+ mes .@n$;
mes "Such a great item I have right here...";
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;
-}
+} \ No newline at end of file
diff --git a/npc/custom/warper.txt b/npc/custom/warper.txt
index 8c85997e5..7fec440cb 100644
--- a/npc/custom/warper.txt
+++ b/npc/custom/warper.txt
@@ -181,7 +181,7 @@ F26: setarray @c[2],371,212;
Disp("Dewata Field",1,1); Pick("dew_fild");
F27: setarray @c[2],97,314;
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");
// --------------------------------------------------