1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- //===== rAthena Script =======================================
- //= Card Seller A-Z
- //===== Description: =========================================
- //= Sells all cards dropped by mobs, grouped alphabetically.
- //= MVP cards are excluded from the list.
- //=
- //= NOTE: Requires SQL item and mob databases.
- //===== Changelogs: ==========================================
- //= 1.0 First version [AnnieRuru]
- //= 1.1 Minor edits [Euphy]
- //= 1.2 Update for monster mode and enchants [Lemongrass]
- //============================================================
- prontera,155,177,5 script Card Seller 100,{
- .@menu$ = getvariableofnpc( .alphabet_menu$, "card_seller_creation" );
- if (.@menu$ == "") {
- mes "[Card Seller]";
- mes "I am sorry, it seems like something went wrong.";
- mes "I cannot find any cards in our database at the moment.";
- mes "Please contact a game master.";
- close;
- }
- mes "[Card Seller]";
- mes "Welcome!";
- mes "I can sell you any normal monster card in the game. Would you like to have a look?";
- next;
- .@s = select(.@menu$) -1;
- close2;
- callshop "card_mob#"+ getvariableofnpc( .alphabet$[.@s], "card_seller_creation" ), 1;
- end;
- }
- - script card_seller_creation -1,{
- end;
- OnInit:
- if (checkre(0)) {
- .@mob_db$ = "mob_db_re";
- .@item_db$ = "item_db_re";
- } else {
- .@mob_db$ = "mob_db";
- .@item_db$ = "item_db";
- }
- freeloop 1;
- .@total = query_sql( "SELECT DISTINCT LEFT( `name_japanese`, 1 ) AS alphabets FROM `"+ .@item_db$ +"` WHERE `type` = " + IT_CARD + " AND `id` IN ( SELECT DISTINCT `dropcardid` FROM `"+ .@mob_db$ +"` WHERE ~(`MODE`) & " + MD_MVP + " ) ORDER BY alphabets;", .@alphabet$ );
- for ( .@i = 0; .@i < .@total; .@i++ ) {
- .@nb = query_sql( "SELECT `"+ .@item_db$ +"`.`id` FROM `"+ .@item_db$ +"` WHERE `type` = " + IT_CARD + " AND LEFT( `name_japanese`, 1 ) = '"+ .@alphabet$[.@i] +"' AND `id` IN ( SELECT DISTINCT `dropcardid` FROM `"+ .@mob_db$ +"` WHERE ~(`MODE`) & " + MD_MVP + " ) ORDER BY `name_japanese` LIMIT 128;", .@id );
- if (.@nb > 0) {
- .alphabet$[.@size_alphabet++] = .@alphabet$[.@i];
- .alphabet_menu$ = .alphabet_menu$ + .@alphabet$[.@i] +" Cards:";
- npcshopdelitem "card_mob#"+ .@alphabet$[.@i], 501;
- for ( .@j = 0; .@j < .@nb; .@j++ ) {
- if (callfunc( "F_IsCharm", .@id[.@j] ) == true)// Skip enchants in case someone added them as card drop
- continue;
- npcshopadditem "card_mob#"+ .@alphabet$[.@i], .@id[.@j], 1000000;
- }
- }
- }
- freeloop 0;
- end;
- }
- - shop card_mob#A -1,501:1000
- - shop card_mob#B -1,501:1000
- - shop card_mob#C -1,501:1000
- - shop card_mob#D -1,501:1000
- - shop card_mob#E -1,501:1000
- - shop card_mob#F -1,501:1000
- - shop card_mob#G -1,501:1000
- - shop card_mob#H -1,501:1000
- - shop card_mob#I -1,501:1000
- - shop card_mob#J -1,501:1000
- - shop card_mob#K -1,501:1000
- - shop card_mob#L -1,501:1000
- - shop card_mob#M -1,501:1000
- - shop card_mob#N -1,501:1000
- - shop card_mob#O -1,501:1000
- - shop card_mob#P -1,501:1000
- - shop card_mob#Q -1,501:1000
- - shop card_mob#R -1,501:1000
- - shop card_mob#S -1,501:1000
- - shop card_mob#T -1,501:1000
- - shop card_mob#U -1,501:1000
- - shop card_mob#V -1,501:1000
- - shop card_mob#W -1,501:1000
- - shop card_mob#X -1,501:1000
- - shop card_mob#Y -1,501:1000
- - shop card_mob#Z -1,501:1000
|