//===== 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