Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
98 lines (94 sloc)
4.13 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //===== 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; | |
| .@string$ = "( `name_aegis` IN ( SELECT DISTINCT `drop1_item` FROM `" + .@mob_db$ + "` WHERE COALESCE(`mode_mvp`,0) = 0 ) " + | |
| "OR `name_aegis` IN ( SELECT DISTINCT `drop2_item` FROM `" + .@mob_db$ + "` WHERE COALESCE(`mode_mvp`,0) = 0 ) " + | |
| "OR `name_aegis` IN ( SELECT DISTINCT `drop3_item` FROM `" + .@mob_db$ + "` WHERE COALESCE(`mode_mvp`,0) = 0 ) " + | |
| "OR `name_aegis` IN ( SELECT DISTINCT `drop4_item` FROM `" + .@mob_db$ + "` WHERE COALESCE(`mode_mvp`,0) = 0 ) " + | |
| "OR `name_aegis` IN ( SELECT DISTINCT `drop5_item` FROM `" + .@mob_db$ + "` WHERE COALESCE(`mode_mvp`,0) = 0 ) " + | |
| "OR `name_aegis` IN ( SELECT DISTINCT `drop6_item` FROM `" + .@mob_db$ + "` WHERE COALESCE(`mode_mvp`,0) = 0 ) " + | |
| "OR `name_aegis` IN ( SELECT DISTINCT `drop7_item` FROM `" + .@mob_db$ + "` WHERE COALESCE(`mode_mvp`,0) = 0 ) " + | |
| "OR `name_aegis` IN ( SELECT DISTINCT `drop8_item` FROM `" + .@mob_db$ + "` WHERE COALESCE(`mode_mvp`,0) = 0 ) " + | |
| "OR `name_aegis` IN ( SELECT DISTINCT `drop9_item` FROM `" + .@mob_db$ + "` WHERE COALESCE(`mode_mvp`,0) = 0 ) " + | |
| "OR `name_aegis` IN ( SELECT DISTINCT `drop10_item` FROM `" + .@mob_db$ + "` WHERE COALESCE(`mode_mvp`,0) = 0 ) )"; | |
| .@total = query_sql( "SELECT DISTINCT LEFT( `name_english`, 1 ) AS alphabets FROM `"+ .@item_db$ +"` WHERE `type` = 'Card' AND " + .@string$ + " ORDER BY alphabets;", .@alphabet$ ); | |
| for ( .@i = 0; .@i < .@total; .@i++ ) { | |
| .@nb = query_sql( "SELECT `"+ .@item_db$ +"`.`id` FROM `"+ .@item_db$ +"` WHERE `type` = 'Card' AND LEFT( `name_english`, 1 ) = '"+ .@alphabet$[.@i] +"' AND " + .@string$ + " ORDER BY `name_english` 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 (getiteminfo(.@id[.@j], ITEMINFO_SUBTYPE) == CARD_ENCHANT)// 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 |