summaryrefslogtreecommitdiff
path: root/npc/guilds/logs.txt
blob: dcb086a612afd49c3ea1de88455a7ae744da0553 (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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// Moubootaur Legends Script
// Author:
//    Jesusalva
// Description:
//  Guild Facility - Contains recipe list

guilds,47,39,0	script	Guild Logs	NPC_NO_SPRITE,{
    function GDSkillLearn;
    .@gid=getcharid(2);
    .@role=getguildrole(.@gid, getcharid(3));
    do
    {
        select
            l("Do nothing"),
            rif(strcharinfo(0) == getguildmaster(.@gid), l("Raise max members"));
        mes "";

        switch (@menu) {
            case 2:
                .@cur_lv=getguildlvl(.@gid);
                .@min_lv=(getskilllv(GD_EXTENSION)+1)*1;
                .@price=.@min_lv*274;
                if (.@cur_lv < .@min_lv)
                {
                    mesc l("Guild Level is not enough: @@/@@", .@cur_lv, .@min_lv);
                    next;
                    break;
                }
                mesc l("Raising this skill will allow to recruit 4 more members.");
                mesc l("The cost for Guild Vault is @@ GP.", .@price);
                next;
                select
                    rif($GUILD_BANK[.@gid] >= .@price, l("Upgrade it")),
                    l("Don't upgrade it");
                mes "";
                if (@menu == 1 && $GUILD_BANK[.@gid] >= .@price)
                {
                    $GUILD_BANK[.@gid]-=.@price;
                    // guildskill()?
                    skill GD_EXTENSION, getskilllv(GD_EXTENSION)+1, 0;
                    break;
                }
                break;
        }

    } while (@menu != 1);
    close;


// GDSkillLearn(SKID, cost-per-guild-level, title, desc, lv1, {lv2, lv3...})
function GDSkillLearn {
    .@id=getarg(0);
    .@p=getarg(1);
    .@t$=getarg(2);
    .@d$=getarg(3);

    .@gid=getcharid(2);
    .@gid_lv=getguildlvl(.@gid);
    .@cur_lv=getskilllv(.@id);
    .@min_lv=getarg(4+.@cur_lv, -1);

    .@price=.@min_lv*.@p;

    // Max level reached
    if (.@min_lv < 0)
    {
        mesc l("This skill cannot be upgraded further.");
        next;
        return 0;
    }

    // Guild level insuffice
    if (.@gid_lv < .@min_lv)
    {
        mesc l("Guild Level is not enough: @@/@@", .@gid_lv, .@min_lv);
        next;
        return 0;
    }

    mes ".:: "+.@t$+" ::.";
    mes .@d$;
    mesc l("The cost for Guild Vault is @@ GP.", format_number(.@price));
    mesc l("Current Guild Balance: %s GP", format_number($GUILD_BANK[.@gid]));
    next;
    select
        rif($GUILD_BANK[.@gid] >= .@price, l("Upgrade it")),
        l("Don't upgrade it");
    mes "";
    if (@menu == 1 && $GUILD_BANK[.@gid] >= .@price)
    {
        $GUILD_BANK[.@gid]-=.@price;
        // guildskill()?
        skill .@id, .@cur_lv+1, 0;
        mesc l("Skill improved"), 2;
        @menu=99;
        return 1;
    }
    return 0;
}

OnInit:
    .distance=2;
    end;
}