You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
4.1 KiB
Plaintext
99 lines
4.1 KiB
Plaintext
4 months ago
|
//===== 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
|