viewing paste Unknown #11094 | Athena

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
//Made by Lunar
//Version 1.6
//6.1.09
-       shop    quest_shop3     -1,501:50
 
alexandria,158,179,5    script  Lower HG Quest  483,{
setarray .setlimit[0],3,5;                      // Set the item limit here. *Note, make them match the Case/Callsub at the end of this script.
        if(getgmlevel() == 99) {
                mes "[Quest  Manager]";
                mes "^FF0000~Admin Menu~^000000";
                mes "Would you like to reset";
                mes "the item limit sir?";
                switch(select("No, don't:Yes, reset it")) {
                        case 1:
                                next;
                                mes "[Quest  Manager]";
                                mes "It's alright, no rush.";
                                next;
                                break;
                        case 2:
                                next;
                                mes "[Quest  Manager]";
                                mes "Are you sure you want";
                                mes "the item limit to be ^FF0000reset^000000?";
                                switch(select("No, don't:Yes, reset it")) {
                                        case 1:
                                                next;
                                                mes "[Quest  Manager]";
                                                mes "It's alright, no rush.";
                                                next;
                                                break;
                                        case 2:
                                                next;
                                                set .itemlimit1,0;
                                                mes "[Donation Manager]";
                                                mes "It has been done!";
                                                close;
                                }
                        break;
                }
        }
        set .@temp,0;
        set @i,0;
        mes "[Quest  Manager]";
        mes "Please select the equipment you want";
        callshop "quest_shop3",1;
        npcshopattach "quest_shop3";
        end;
OnBuyItem:
        if(.BuildQuest) {
                for(set .e,0; !compare(getarg(.e+1) + "","Zeny"); set .e,.e+2) {}
                for (set .@t,0; .@t < getarraysize(.itemlimit)+1; set .@t,.@t + 1) {
                        if(.setlimit[.@t] < .itemlimit[.@t]) {
                                npcshopdelitem "quest_shop3",914,1;
                                set .@temp,.@temp+1;
                        } else npcshopadditem "quest_shop3",getarg(.e+2),getarg(.e)*compare(getarg(.e+1) + "","SZeny");
                }
                setarray .Shop[.i],getarg(.e+2);
                set .i,.i+1;
                goto Quest_Setup;
        }
        if(.@temp > getarraysize(.itemlimit)) goto L_none;
        if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; }
        for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; }
        mes "[Shop Quest NPC]";
        mes "I require the following:";
        for(set @i,0; !compare(getarg(@i+1) + "","Zeny"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]";
        if(getarg(@i)) mes "^FF0000" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny";
        mes "^000000In exchange, I will give you:^0000FF";
        for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i));
        switch(select("Exchange:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Preview Item":"") + ":No thanks")) {
                case 1:
                        for(set @i,0; !compare(getarg(@i+1) + "","Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) {
                                next;
                                mes "You have " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + ".";
                                mes "Please obtain ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000.";
                                close;
                        }
                        if(Zeny < getarg(@i)) {
                                next;
                                mes "You do not have enough Zeny.";
                                mes "Please obtain ^FF0000" + (getarg(@i)-Zeny) + " more Zeny^000000.";
                                close;
                        }
                        for(set @i,0; !compare(getarg(@i+1) + "","Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1);
                        set Zeny,Zeny-getarg(@i);
                        for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1);
                        set .itemlimit[getarg(6)],.itemlimit[getarg(6)] + 1;
                        if (compare(getarg(@i,0) + "","announce")) announce strcharinfo(0) + " has just obtained " + getitemname(@bought_nameid) + "!",bc_all;
                        close;
                case 2:
                        set @bottomview, getlook(3);
                        set @topview, getlook(4);
                        set @midview, getlook(5);
                        addtimer 1000, strnpcinfo(3)+"::On_Leave";
                        set @equip,getiteminfo(@bought_nameid, 5);
                        set @view, getiteminfo(@bought_nameid, 11);
                        if(@equip != -1 && @view > 0) {
                                if(@equip & 1) atcommand "@changelook 3 " + @view;
                                if(@equip & 256) atcommand "@changelook 1 " + @view;
                                if(@equip & 512) atcommand "@changelook 2 " + @view;
                        }
                        next;
                        goto OnBuyItem;
                case 3:
                        close;
        }
On_Leave:
        atcommand "@changelook 1 " + @topview;
        atcommand "@changelook 2 " + @midview;
        atcommand "@changelook 3 " + @bottomview;
        set @equip,0;
        set @view,0;
        set @topview,0;
        set @midview,0;
        set @bottomview,0;
        end;
L_none:
        next;
        mes "[Quest  Manager]";
        mes "Oh I am sorry... ";
        mes "There seems to be a";
        mes "shortage of items currently.";
        next;
        mes "[Donation Manager]";
        mes "Please try again later!";
        close;
        end;
OnInit:
        npcshopitem "quest_shop3",0,0;
        npcshopdelitem "quest_shop3",0,0;
        set .BuildQuest,1;
        set .i,1;
        Quest_Setup:
        switch(.i) {
                default: set .BuildQuest,0; set .e,0; set .i,0; end;
                case 1: callsub OnBuyItem,7227,100,29999,30,0,"zeny",30111,1;
                case 2: callsub OnBuyItem,7227,100,29999,30,0,"zeny",30112,1;
                case 3: callsub OnBuyItem,7227,100,29999,30,0,"zeny",30113,1;
                case 4: callsub OnBuyItem,7227,100,29999,30,0,"zeny",30115,1;
                case 5: callsub OnBuyItem,7227,100,29999,30,0,"zeny",30116,1;
                case 6: callsub OnBuyItem,7227,100,29999,30,0,"zeny",30033,1;
                case 7: callsub OnBuyItem,7227,100,29999,30,0,"zeny",30055,1;
 
        }
}
 
Viewed 490 times, submitted by leloush.