summaryrefslogtreecommitdiff
path: root/npc/000-2-1/chest.txt
blob: f9ec2742d8f3494c5582709504678eb000ed195e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// Evol scripts.
// Authors:
//    4144
//    gumi
//    omatt
//    Reid
// Description:
//    A box with clothes for new players.
// Variable:
//    ShipQuests_Arpan
// Values:
//    1   Talked to Arpan and needs to get clothes.
//    2   Has the clothes.

000-2-1,51,37,0	script	Chest#000-2-1	NPC_CHEST_BIG,2,4,{

    .@questState = getq(ShipQuests_Arpan);

    if (.@questState == 0)
    {
        npctalk3 l("You should talk to Magic Arpan first.");
        end;
    }

    if (.busy == false)
    {
        if (.@questState <= 1)
        {
            inventoryplace CreasedShirt, 2;
            setq ShipQuests_Arpan, 2;
            getitem CreasedShirt, 1;
            getitem CreasedShorts, 1;
            npctalk3 l("You take the clothes from the chest.");
        }

        specialeffect(.dir == 0 ? 24 : 25, AREA, getnpcid()); // closed ? opening : closing
        .dir = .dir == 0 ? 2 : 6; // closed ? opening : closing
        .busy = true; // lock the animation
        initnpctimer;
    }
    end;

OnTimer220:
    .dir = .dir == 6 ? 0 : 4; // closing ? closed : open
    end;

OnTimer500:
    .busy = false; // unlock

    if (.dir == 0)
    {
        stopnpctimer; // stop here if the chest is closed
    }
    end;

OnUnTouch:
    if (getareausers(.x - 2, .y - 4, .x + 2, .y + 6) > 0 || .dir == 0)
    {
        end;
    }
OnTimer30000:
    .busy = true;
    .dir = 6; // closing
    specialeffect(25, AREA, getnpcid()); // closing
    setnpctimer 0;
OnTouch:
    end;

OnInit:
    .distance = 2;
    end;
}