viewing paste Unknown #51083 | 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 148 149 150 151 152 153 154 155 156 157 158 159 160
//===== rAthena Script =======================================
//= Card Trader
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.1
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Exchange cards for points.
//============================================================
 
prontera,165,85,3       script  Card Trader     684,{
        mes "[Card Trader]";
        mes "Hi, "+strcharinfo(0)+"!";
        mes "What can I do for you?";
        next;
        switch(select(" > Information: > Trade in cards: > Point shop (^0055FF"+getd(.Points$)+"^000000): > Leave")) {
        case 1:
                mes "[Card Trader]";
                mes "Do you find that you've got";
                mes "useless cards lying around?";
                mes "I'll be glad to take them off";
                mes "your hands!";
                next;
                mes "[Card Trader]";
                mes "I'll give you ^0055FF"+.Points[0]+" Point"+((.Points[0] == 1)?"":"s")+"^000000 for each";
                mes "card you give me, and";
                mes "^0055FF"+.Points[1]+" Points^000000 for MVP cards.";
                mes "You can trade those points";
                mes "for items later on.";
                mes "How does that sound?";
                emotion ET_MONEY;
                close;
        case 2:
                mes "[Card Trader]";
                mes "Select the cards you";
                mes "want to trade in.";
                if (.Level) {
                        mes " ";
                        mes "They must be dropped";
                        mes "by monsters of level";
                        mes .Level+" and above.";
                }
                deletearray @sold_nameid[0],getarraysize(@sold_nameid);
                callshop "card_shop",2;
                npcshopattach "card_shop";
                end;
        case 3:
                mes "[Card Trader]";
                mes "You have ^0055FF"+getd(.Points$)+"^000000 Point"+((getd(.Points$) == 1)?".":"s.");
                callshop "card_shop",1;
                npcshopattach "card_shop";
                end;
        case 4:
                mes "[Card Trader]";
                mes "*yawn*";
                mes "See you later!";
                emotion ET_SLEEPY;
                close;         
        }
 
OnSellItem:
        mes "Cards to sell:";
        mes "-----------------------------------";
        for(set .@i,0; .@i<getarraysize(@sold_nameid); set .@i,.@i+1) {
                switch(@sold_nameid[.@i]) {
                case 4027:      case 4073:      case 4048:      case 4102:
                case 4020:      case 4043:      case 4013:      case 4043:
                case 4087:      case 4053:      case 4042:      case 4069:
                case 4085:      case 4071:      case 4096:      case 4256:
                case 4205:      case 4210:      case 4314:
                        mes "Sorry, selling "+getitem(@sold_nameid[.@i])+" is prohibited.";
                        close;
                default:
                        break;
                }
                if (@sold_nameid[.@i] > 4000 && @sold_nameid[.@i] < 4700 || @sold_nameid[.@i] > 27163 && @sold_nameid[.@i] < 27182 || @sold_nameid[.@i] > 27012 && @sold_nameid[.@i] < 27013 || @sold_nameid[.@i] > 27018 && @sold_nameid[.@i] < 27020 || @sold_nameid[.@i] > 27106 && @sold_nameid[.@i] < 27109 || @sold_nameid[.@i] > 27264 && @sold_nameid[.@i] < 27265 || @sold_nameid[.@i] > 31016 && @sold_nameid[.@i] < 31026 || @sold_nameid[.@i] > 27081 && @sold_nameid[.@i] < 27088|| @sold_nameid[.@i] > 27157 && @sold_nameid[.@i] < 27161 || @sold_nameid[.@i] == 2070 || @sold_nameid[.@i] == 1884 || @sold_nameid[.@i] == 27254 ) {
                        if (.Level) {
                                query_sql("SELECT `LV` FROM `mob_db` WHERE `DropCardid` = "+@sold_nameid[.@i],.@lv);
                                if (.@lv < .Level) {
                                        dispbottom getitemname(@sold_nameid[.@i])+" is under the minimum level.";
                                        continue;
                                }
                        }
                        set .@card_id[getarraysize(.@card_id)], @sold_nameid[.@i];
                        set .@card_amt[getarraysize(.@card_amt)], @sold_quantity[.@i];
                        set .@mvp, compare(.MVP$,""+@sold_nameid[.@i]);
                        mes ((.@mvp)?"  ^FF0000":"  ^777777")+@sold_quantity[.@i]+"x "+getitemname(@sold_nameid[.@i])+"^000000";
                        set .@card_total, .@card_total+(@sold_quantity[.@i]*((.@mvp)?.Points[1]:.Points[0]));
                }
        }
        deletearray @sold_nameid[0], getarraysize(@sold_nameid);
        deletearray @sold_quantity[0], getarraysize(@sold_quantity);
        if (!.@card_id) {
                mes "  ^777777(none)^000000";
                emotion ET_SWEAT;
                close;
        }
        mes " ";
        mes "---------- Total: ^0055FF"+.@card_total+" pt.^000000 -------";
        next;
        if(select(" > ^0055FFComplete trade...^000000: > ^777777Cancel^000000") == 2) {
                mes "[Card Trader]";
                mes "Oh, okay...";
                emotion ET_SCRATCH;
                close;
        }
        for(set .@i,0; .@i<getarraysize(.@card_id); set .@i,.@i+1)
                delitem .@card_id[.@i],.@card_amt[.@i];
        setd .Points$, getd(.Points$)+.@card_total;
        mes "[Card Trader]";
        mes "All done!";
        emotion ET_DELIGHT;
        close;
 
OnBuyItem:
        for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1)
                for(set .@j,0; .@j<getarraysize(.Shop); set .@j,.@j+2)
                        if (@bought_nameid[.@i] == .Shop[.@j]) {
                                set .@cost, .@cost+(.Shop[.@j+1]*@bought_quantity[.@i]);
                                break;
                        }
        if (.@cost > getd(.Points$)) {
                mes "[Card Trader]";
                mes "You don't have enough Points.";
                emotion ET_HUK;
        }
        else {
                mes "Items purchased:";
                mes "-----------------------------------";
                for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) {
                        getitem @bought_nameid[.@i], @bought_quantity[.@i];
                        mes "  ^777777"+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+"^000000";
                }
                mes " ";
                mes "---------- Total: ^0055FF"+.@cost+" pt.^000000 -------";
                setd .Points$, getd(.Points$)-.@cost;
                emotion ET_MONEY;
        }
        deletearray @bought_nameid[0], getarraysize(@bought_nameid);
        deletearray @bought_quantity[0], getarraysize(@bought_quantity);
        close;
 
OnInit:
        set .Level,0;                   // Minimum monster level to trade corresponding cards.
        set .Points$,"#Card_Points";    // Variable to store points.
        setarray .Shop[0],              // Card Shop items: <ID>,<point cost>
          12214,5,17071,25,13989,25,14004,25,6635,50,6230,200,6234,200;
        setarray .Points[0],1,50;       // Points per <normal card>,<MVP card>
        set .MVP$,                      // List of MVP cards.
          "4121,4123,4128,4131,4132,4134,4135,4137,4142,4143,4144,4145,4146,4147,4148,4168,4236,"+
          "4241,4263,4276,4302,4305,4318,4324,4330,4342,4357,4359,4361,4363,4365,4399,4403,4407";
       
        npcshopdelitem "card_shop",909;
        for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2)
                npcshopadditem "card_shop",.Shop[.@i],.Shop[.@i+1];
        end;
}
-       shop    card_shop       -1,909:-1
Viewed 561 times, submitted by pajodex.