summaryrefslogblamecommitdiff
path: root/npc/003-6/cyndala.txt
blob: 4fc3037604787c4c155b06a5e01a223b02907108 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15














                                                                                                        
                                                                                 

                                                                                                               
                                                                                                                                                          








                                                                                         




                                                          


                                                    

                                                                   




























                                                                                                           
                                                                                             







                                                        
                                                      


                                                           
 



                                                                   







































                                                                                      
                                   




















                                                                                                                                               
                               










                                                                
// 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 (is_staff())
        mesf "Item Index %d (%s) - ID %d", .@item_index,
             getitemlink(@inventorylist_id[.@item_index]),
             @inventorylist_id[.@item_index];

        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 (rand2(1, 1000) > readparam2(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;
}