// TMW2 Script. // Author: // Saulc // Jesusalva // Description: // Will be with dye functions for a while... May be wrong. Only Card2 is available per hercules rules // Original code from evol // Authors: // Reid 003-6,33,30,0 script Cyndala NPC_FEMALE,{ function explain_dyes { speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("Dyes are a special kind of ink to make certain objects fancier."), l("Once you have the appropriate colorant for the item, ##bdrag the colorant##b to the material."), l("Example:"), l("Drag and drop a @@ in a @@, and you will obtain a @@.", getitemlink(RedDye), getitemlink(ArtisTankTop), getitemlink(ArtisTankTop, RedDye)), l("Dye cards are not the only thing which exist, but they are the coolest!"); } 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] > YellowDye) || (@inventorylist_card1[.@item_index] < CrimsonDye)) { 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 probably lose the color dye during this process."); switch (askyesno()) { case 1: speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("Ok, let me see..."), l("..."); if (rand(1, 1000) > readparam(bLuk)) failedremovecardsindex .@item_index, 1; else successremovecardsindex(.@item_index); // First option slot of weapon: Raises STR in 5 // setequipoption(EQI_HAND_R, 1, VAR_STRAMOUNT, 5); // This is an option :3 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; } } mesn; mesq l("Hello, darling!"); mes ""; do { select l("Excuse me."), l("Could you bleach my clothes?"), l("What can you say about dyes?"), rif(is_staff(), l("Technical problem, gimme info about an item.")); switch (@menu) { case 2: remove_cards_from_item(); break; case 3: explain_dyes(); break; case 4: .@item = requestitemindex(); mes "Item index selected: " + str(.@item); mes "slots=" + str(MAX_SLOTS); for (.@i = 0; .@i < MAX_SLOTS; .@i++) { mes "slot " + str(.@i) + " = " + str(getcardbyindex(.@item, .@i)); } mes str(@inventorylist_card1[.@item]); mes str(YellowDye); mes "item options:"; for (.@i = 0; .@i < 5; .@i ++) { mes sprintf("%d: Option: %d, Value: %d", .@i, getitemoptionidbyindex(.@item, .@i), getitemoptionvaluebyindex(.@item, .@i)); } mes "Note named items (Card1 254 and 255) have Card3 and Card4 reserved"; break; default: speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("I wish you a good time in town."); break; } } while (@menu != 1); closeclientdialog; goodbye; close; OnInit: .@npcId = getnpcid(.name$); setunitdata(.@npcId, UDT_HEADTOP, NPCEyes); setunitdata(.@npcId, UDT_HEADMIDDLE, ValentineDress); //TODO setunitdata(.@npcId, UDT_HEADBOTTOM, CottonTrousers); setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); // Boots setunitdata(.@npcId, UDT_HAIRSTYLE, 16); setunitdata(.@npcId, UDT_HAIRCOLOR, 11); .sex = G_FEMALE; .distance = 5; end; }