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.

102 lines
4.2 KiB
Plaintext

//===== rAthena Script =======================================
//= Vending Machine NPCs for Novice.
//===== Description: =========================================
//= [Walkthrough Conversion]
//= Exchangers NPCs for Novice.
//===== Additional Comments: =================================
//= 1.0 Firt version. [Aleos] [Secret]
//= 1.1 Additionnal clean-up. [Capuche]
//============================================================
- script novice_vending_machine#main -1,{
.@storage_ticket = 7059; // Cargo_Free_Ticket
.@storage_ticket_name$ = getitemname(.@storage_ticket);
mes "Vending Machine for Novices.";
mes "There are many buttons.";
next;
switch( select( "Manual", "Trade " + .@storage_ticket_name$, "Trade Novice equipments" ) ) {
case 1:
mes "[Exchange " + .@storage_ticket_name$ + "]";
mes "4 " + .@storage_ticket_name$ + " can be exchanged into 1 Free Ticket for Warp, Airship or the Cart Service, or 1 Free Ticket for Peco Ride, 15 Novice Fly Wing, 5 Novice Butterfly Wing, 30 Novice Potion.";
next;
mes "[Trade Novice Gears]";
mes "Armor, Hood, Sandals, Main Gauche and Guard for Novice from Criatura Academy can be exchanged into 4 " + .@storage_ticket_name$ + ".";
next;
mes "[Trade Novice Gears]";
mes "Novice Eggshell can be exchanged into Criatura Hair Coupon for changing your hairstyle.";
close;
case 2:
setarray .@exchange[0],
7060,1, // Warp_Free_Ticket
7311,1, // Free_Flying_Ship_Ticket
7061,1, // Cart_Free_Ticket
7310,1, // Free_Peco_Ticket
12323,15, // N_Fly_Wing
12324,5, // N_Butterfly_Wing
569,30; // Novice_Potion
.@size = getarraysize(.@exchange);
for ( .@i = 0; .@i < .@size; .@i += 2 ) {
if (.@exchange[.@i+1] > 1)
.@menu$ += .@exchange[.@i+1] + " ";
.@menu$ += getitemname(.@exchange[.@i]) + ":";
}
.@s = (select(.@menu$) - 1) * 2;
if (countitem(.@storage_ticket) < 4) {
mes "The number of " + .@storage_ticket_name$ + " is insufficient to proceed with the exchange.";
close;
}
if (.@exchange[.@s+1] > 1)
.@amount$ = .@exchange[.@s+1] + " ";
mes "Exchanged 4 " + .@storage_ticket_name$ + " to " + .@amount$ + getitemname(.@exchange[.@s]);
delitem .@storage_ticket,4;
getitem .@exchange[.@s],.@exchange[.@s+1];
close;
case 3:
mes "Exchange all Novice equipments into coupons.";
mes "Select continue to proceed.";
next;
if (select( "Continue", "Cancel." ) == 2) {
mes "The trade was interrupted.";
close;
}
mes "Exchanging all equipment into coupons.";
setarray .@list[0],2352,2510,2414,1243,2112,5055;
.@size = getarraysize(.@list);
for ( .@i = 0, .@i < .@size; .@i++ ) {
.@count = countitem(.@list[.@i]); // note: maybe check if equipped items are skipped
if (.@count < 1)
continue;
switch(.@list[.@i]) {
case 2352: // Novice_Plate
case 2510: // Novice_Hood
case 2414: // Novice_Boots
case 1243: // Novice_Knife
case 2112: // Novice_Guard
delitem .@list[.@i], .@count;
getitem .@storage_ticket,(4*.@count); // Cargo_Free_Ticket
break;
case 5055: // Novice_Egg_Cap
delitem .@list[.@i], .@count;
getitem 6593,.@count; // Cryptura_Hair_Coupon
break;
}
}
close;
}
}
izlude_in,69,177,5 duplicate(novice_vending_machine#main) Vending Machine for Nov#iz 2_VENDING_MACHINE1
payon_in02,71,75,5 duplicate(novice_vending_machine#main) Vending Machine for Nov#pay 2_VENDING_MACHINE1
prt_church,187,27,3 duplicate(novice_vending_machine#main) Vending Machine for Nov#prt 2_VENDING_MACHINE1
// unknown facing
alberta_in,60,52,3 duplicate(novice_vending_machine#main) Vending Machine for Nov#alb 2_VENDING_MACHINE1
geffen_in,158,107,3 duplicate(novice_vending_machine#main) Vending Machine for Nov#gef 2_VENDING_MACHINE1
moc_para01,17,37,3 duplicate(novice_vending_machine#main) Vending Machine for Nov#para 2_VENDING_MACHINE1
moc_prydb1,38,124,3 duplicate(novice_vending_machine#main) Vending Machine for Nov#pryd 2_VENDING_MACHINE1
payon_in01,59,20,3 duplicate(novice_vending_machine#main) Vending Machine for Nov#pay2 2_VENDING_MACHINE1
que_ng,28,73,3 duplicate(novice_vending_machine#main) Vending Machine for Nov#que_ng1 2_VENDING_MACHINE1
que_ng,168,39,3 duplicate(novice_vending_machine#main) Vending Machine for Nov#que_ng2 2_VENDING_MACHINE1