summaryrefslogtreecommitdiff
path: root/npc/guilds/logs.txt
blob: a41a377c58cb7aa8ebcc5f329b9101c520155725 (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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
// Moubootaur Legends Script
// Author:
//    Jesusalva
// Description:
//  Guild Facility - Contains recipe list

guilds,47,39,0	script	Guild Logs	NPC_NO_SPRITE,{
    function showRecipe;
    function calcRecipe;
    .@gid=getcharid(2);

    mes ".:: " + l("Alchemy Recipes") + " ::.";
    showRecipe(CraftPiberriesInfusion, PiberriesInfusion,
               5, Piberries, 1, Curshroom);
    showRecipe(CraftSacredManaPot, SacredManaPot,
               1, GoldenApple, 15, CelestiaTea);
    showRecipe(CraftSacredLifePot, SacredLifePot,
               1, GoldenApple, 1, ElixirOfLife);


    if (getguildrole(.@gid, getcharid(3)) > GPOS_VICELEADER)
        close;
    do
    {
        select
            l("Do nothing"),
            rif(strcharinfo(0) == getguildmaster(.@gid), l("Raise max members"));
            l("Learn Alchemy Recipes");
        mes "";

        switch (@menu) {
            case 2:
                .@cur_lv=getguildlvl(.@gid);
                .@min_lv=(getskilllv(GD_EXTENSION)+1)*4;
                .@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;
                    skill GD_EXTENSION, getskilllv(GD_EXTENSION)+1, 0;
                    break;
                }
                break;
            case 3:
                mes ".:: " + l("Alchemy Recipes") + " ::.";
                deletearray(@tmp_alcrep_id);
                deletearray(@tmp_alcrep_glv);
                deletearray(@tmp_alcrep_ggp);
                deletearray(@tmp_alcrep_txt$);

                // Setup
                if (!showRecipe(CraftPiberriesInfusion, 0, 0, 0, 0, 0, true))
                calcRecipe(CraftPiberriesInfusion, 3, 10000, l("Piberries Infusion"));
                if (!showRecipe(CraftSacredManaPot, 0, 0, 0, 0, 0, true))
                calcRecipe(CraftSacredManaPot, 5, 100000, l("Sacred Mana Potion"));
                if (!showRecipe(CraftSacredLifePot, 0, 0, 0, 0, 0, true))
                calcRecipe(CraftSacredLifePot, 5, 100000, l("Sacred Life Potion"));

                // Select
                select (@tmp_alcrep_txt$+":Nothing");
                if (@tmp_alcrep_glv[@menu] == 0)
                    break;
                if (getguildlvl(.@gid) < @tmp_alcrep_glv[@menu]) {
                    mesc l("Insufficient Guild Level!"), 1;
                    break;
                }
                if ($GUILD_BANK[.@gid] < @tmp_alcrep_ggp[@menu]) {
                    mesc l("Insufficient Guild Money! (Guild has: @@ GP)", format_number($GUILD_BANK[.@gid])), 1;
                    break;
                }
                // All fine, proceed
                $GUILD_BANK[.@gid] -= @tmp_alcrep_ggp[@menu];
                $RECIPES_ALCHEMY[getcharid(2)]=$RECIPES_ALCHEMY[getcharid(2)]|@tmp_alcrep_id[@menu];
                mesc l("Skill learnt!"), 2;
                next;
                break;
        }

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

// showRecipe (Craft, Bonus, Req1No, Req1Id, Req2No, Req2Id, DisplayText)
function showRecipe {
    if ($RECIPES_ALCHEMY[getcharid(2)] & getarg(0)) {
        if (getarg(6,1)) {
            mesn l("Craft @@", getitemlink(getarg(1)));
            mesc l("* @@ @@", getarg(2), getitemlink(getarg(3)));
            mesc l("* @@ @@", getarg(4), getitemlink(getarg(5)));
            mes "";
        }
        return 1;
    }
    return 0;
}

// calcRecipe (CraftID, GLV, GGP, TXT)
function calcRecipe {
    array_push(@tmp_alcrep_id, getarg(0));
    array_push(@tmp_alcrep_glv, getarg(1));
    array_push(@tmp_alcrep_ggp, getarg(2));
    array_push(@tmp_alcrep_txt$, getarg(3) + " - GLV "+getarg(1)+", "+getarg(2)+" GP");
    return;
}

OnInit:
    .distance=2;
    end;
}