diff options
Diffstat (limited to 'npc/custom/item_signer.txt')
-rw-r--r-- | npc/custom/item_signer.txt | 223 |
1 files changed, 223 insertions, 0 deletions
diff --git a/npc/custom/item_signer.txt b/npc/custom/item_signer.txt new file mode 100644 index 000000000..98e7cf2c8 --- /dev/null +++ b/npc/custom/item_signer.txt @@ -0,0 +1,223 @@ +//===== rAthena Script =======================================
+//= Sign Your Items
+//===== By: ==================================================
+//= Lupus
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Write you name on your rare equipment or weapon ^_-
+//= Original X-Mas mini-quest(could be used as a permanent one)
+//===== Additional Comments: =================================
+//=
+//============================================================
+
+prt_in,24,61,7 script Perchik 47,{
+ mes "[Perchik]";
+ if(BaseJob==Job_Novice || BaseLevel<50) {
+ mes "Sorry, I don't help newbies. Go kill more Porings.";
+ emotion e_sry;
+ close;
+ }
+ mes "Hi, I can ^000090sign your name^000000 on almost any rare item you can hold.";
+ next;
+ menu "Tell me more...",-, "Sign my items, please",M_DO;
+
+ mes "[Perchik]";
+ mes "I can put your name on any slotless equipment or weapon.";
+ emotion e_ic;
+ next;
+ mes "[Perchik]";
+ mes "A week ago, my BOSS told me to send away newbies. I dunno why.";
+ next;
+ mes "[Perchik]";
+ mes "For my work I accept ^0000803 Gift Box^000000es (gray one)";
+ mes "plus ^FF00005000z^000000 per each refine of your item.";
+ next;
+ emotion e_cry;
+ mes "[Perchik]";
+ mes "Alas, I have 12 hungry children";
+ mes "and a very angry wife.";
+ next;
+ mes "[Perchik]";
+ mes "Or it was... 12 angry children";
+ mes "and a very hungry wife...";
+ emotion e_hmm;
+ close;
+
+M_DO:
+ mes "[Perchik]";
+ mes "Show me your items to sign...";
+M_MENU:
+ next;
+ menu getequipname(1),M_PART1,getequipname(9),M_PART9,getequipname(10),M_PART10,getequipname(2),M_PART2,getequipname(4),M_PART4,
+ getequipname(3),M_PART3,getequipname(5),M_PART5,getequipname(6),M_PART6,getequipname(7),M_PART7,getequipname(8),M_PART8;
+
+ //Head Gear
+M_PART1:
+ set @part,1;
+ if (getequipisequiped(1)) goto L_CHECK1;
+ mes "[Perchik]";
+ mes "A bald head under a cheap wig... There's nothing worthy to sign.";
+ emotion 6;
+ goto M_MENU;
+M_PART9:
+ set @part,9;
+ if (getequipisequiped(9)) goto L_CHECK1;
+ mes "[Perchik]";
+ mes "Glasses... I can't see any glasses...";
+ emotion 20;
+ goto M_MENU;
+M_PART10:
+ set @part,10;
+ if (getequipisequiped(10)) goto L_CHECK1;
+ mes "[Perchik]";
+ mes "I don't see any mask here.";
+ emotion 20;
+ goto M_MENU;
+ //Armor
+M_PART2:
+ set @part,2;
+ if (getequipisequiped(2)) goto L_CHECK1;
+ mes "[Perchik]";
+ mes "Your belly...? Yes, it's rather fat.";
+ emotion 6;
+ goto M_MENU;
+ //Left Hand
+M_PART3:
+ set @part,3;
+ if (getequipisequiped(3)) goto L_CHECK1;
+ mes "[Perchik]";
+ mes "Sign your left hand? I'm not a celebrity, you know...";
+ emotion 4;
+ goto M_MENU;
+ //Right Hand
+M_PART4:
+ set @part,4;
+ if (getequipisequiped(4)) goto L_CHECK1;
+ mes "[Perchik]";
+ mes "It isn't an armor... It's a mud!!! Wash your hands more often.";
+ emotion 4;
+ goto M_MENU;
+ //Garment
+M_PART5:
+ set @part,5;
+ if (getequipisequiped(5)) goto L_CHECK1;
+ mes "[Perchik]";
+ mes "Look... It's empty...";
+ goto M_MENU;
+ //Foot Gear
+M_PART6:
+ set @part,6;
+ if (getequipisequiped(6)) goto L_CHECK1;
+ mes "[Perchik]";
+ mes "Aw!! I don't like stinky feet.";
+ emotion 16;
+ goto M_MENU;
+ //Accessory1
+M_PART7:
+ set @part,7;
+ if (getequipisequiped(7)) goto L_CHECK1;
+ mes "[Perchik]";
+ mes "Yep... a pocket with a huge hole...";
+ emotion 20;
+ goto M_MENU;
+ //Accessory2
+M_PART8:
+ set @part,8;
+ if (getequipisequiped(8)) goto L_CHECK1;
+ mes "[Perchik]";
+ mes "I see your fat belly...";
+ emotion 20;
+ goto M_MENU;
+
+L_CHECK1:
+ set @ref,0;
+ set @id,getequipid(@part);
+ if(getequipisidentify(@part)) goto L_CHECK2;
+ mes "[Perchik]";
+ mes "How could you equip such unknown item?";
+ npctalk "What a sneaky cheater!";
+ emotion e_wah;
+ close;
+
+L_CHECK2:
+ set @ref,getequiprefinerycnt(@part);
+ mes "[Perchik]";
+ mes "You want me to sign your "+getitemname(@id)+"...";
+ if(BaseJob==Job_Novice) {
+ mes "But you're a Novice. My BOSS told me to send such weaklings away.";
+ emotion e_sry;
+ goto M_MENU;
+ }
+ set @slot0,getequipcardid(@part,0);
+ set @slot1,getequipcardid(@part,1);
+ set @slot2,getequipcardid(@part,2);
+ set @slot3,getequipcardid(@part,3);
+
+ if(@slot0==255 || @slot0==254 || @slot0<0) {
+ mes "Alas, this item's already signed.";
+ mes "I would never touch masters work.";
+ emotion e_hmm;
+ goto M_MENU;
+ }
+ if(@slot0>4000 && @slot0<5000) {
+ mes "A card? Here?!";
+ mes "As I said before, I don't sign items with cards.";
+ emotion e_hmm;
+ goto M_MENU;
+ }
+ if(getiteminfo(@id,10)) {
+ mes "Sorry. I don't sign slotted items.";
+ emotion e_sry;
+ goto M_MENU;
+ }
+ getinventorylist;
+ for (set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1){
+ if(@inventorylist_expire[.@i] != 0) {
+ mes "Sorry, I don't sign rental items!";
+ emotion e_hmm;
+ goto M_MENU;
+ }
+ }
+
+ if(@ref)mes "It has been refined "+@ref+" times... Adding ^FF00005000z^000000 per time.";
+ mes "Give me ^0000803 gray Gift Boxes^000000";
+ if(@ref)mes "and ^FF0000"+(5000*@ref)+"z^000000.";
+ next;
+ menu "Ok!",-, "Leave",M_END;
+ if(Zeny>=(5000*@ref) && countitem(644)>=3) {
+ delitem 644,3;
+ set Zeny,Zeny-(5000*@ref);
+ goto L_MAKE;
+ }
+ mes "[Perchik]";
+ mes "I don't work for 'thanks'.";
+ emotion e_sry;
+ close;
+
+L_MAKE:
+ if(countitem2(@id,1,@ref,0,@slot0,@slot1,@slot2,@slot3)==0) {
+ mes "[Perchik]";
+ mes "Where is... "+getitemname(@id)+"?";
+ npctalk "You're a snoozy cheater!";
+ logmes "CHEATER: Tried to sign an item not having it: "+getitemname(@id);
+ emotion e_wah;
+ close;
+ }
+ delitem2 @id,1,1,@ref,0,@slot0,@slot1,@slot2,@slot3;
+
+ mes "[Perchik]";
+ mes "Done!";
+ emotion e_proud;
+
+ getitem2 @id,1,1,@ref,0,254,0,getcharid(0)&0xffff,(getcharid(0)>>16)&0xffff;
+ close;
+
+M_END:
+ mes "[Perchik]";
+ mes "See you...";
+ emotion e_yawn;
+ close;
+}
|