// Evol scripts. // Author: // Reid // Description: // Old man living in the rich hill, can bleach clothes. 001-2-12,38,30,0 script Oscar#001-2-12 NPC_OSCAR,{ function live_here_alone { speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("Meh!"), l("This is a harsh word to use, you are never alone in the beautiful place of Artis."), l("Mob is doing its daily noise, nature is singing its sumptuous melody, none is alone."); return; } function item_is_bleachable { .@item_index = getarg(0); if (.@item_index < 0) return false; getinventorylist; if (@inventorylist_card1[.@item_index] != 0) { if ((@inventorylist_card1[.@item_index] > YellowCottonDye) || (@inventorylist_card1[.@item_index] < CrimsonCashmereDye)) { return false; } .@is_bleachable = true; } if (@inventorylist_card2[.@item_index] != 0) { if ((@inventorylist_card2[.@item_index] > YellowCottonDye) || (@inventorylist_card2[.@item_index] < CrimsonCashmereDye)) { return false; } .@is_bleachable = true; } if (@inventorylist_card3[.@item_index] != 0) { if ((@inventorylist_card3[.@item_index] > YellowCottonDye) || (@inventorylist_card3[.@item_index] < CrimsonCashmereDye)) { return false; } .@is_bleachable = true; } if (@inventorylist_card4[.@item_index] != 0) { if ((@inventorylist_card4[.@item_index] > YellowCottonDye) || (@inventorylist_card4[.@item_index] < CrimsonCashmereDye)) { return false; } .@is_bleachable = true; } return .@is_bleachable; } function remove_cards_from_item { .@item_index = -1; speech S_FIRST_BLANK_LINE, l("What item would you like to bleach?"); narrator S_FIRST_BLANK_LINE | S_LAST_NEXT, l("You can drag and drop an item to the NPC window or select an item through your inventory."); .@item_index = requestitemindex(); if (!item_is_bleachable(.@item_index)) { speech S_LAST_NEXT, l("You should know this, an item like this can't be bleached."); return; } speech S_LAST_NEXT, l("Your mind is set? You will loose the color dye during this process."); switch (askyesno()) { case 1: speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("Ok, let me see..."), l("..."); failedremovecardsindex .@item_index, 1; speech S_LAST_NEXT | S_NO_NPC_NAME, l("..."), l("Here it is, clean like a whistle!"); break; case 2: speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("Is it truly a hard choice to make?"); break; } return; } .@hour = gettime(GETTIME_HOUR); speech S_LAST_NEXT, (.@hour > 6 && .@hour < 18) ? l("Good day to you.") : l("Good evening."); do { select l("Could you bleach my clothes?"), l("Do you live here alone?"), menuaction(l("Quit")); switch (@menu) { case 1: remove_cards_from_item(); break; case 2: live_here_alone(); break; case 3: speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("I wish you a good time in town."); break; } } while (@menu != 3); closeclientdialog; goodbye; close; OnInit: .distance = 3; end; }