root/npc/custom/eAAC_Scripts/kafraExpress/ke_stats.txt

Revision 1, 3.2 kB (checked in by jinshiro, 17 years ago)
Line 
1//===== eAthena Script =======================================
2//= Kafra Express - Stat/Reset Module
3//===== By: ==================================================
4//= Skotlex
5//===== Current Version: =====================================
6//= 2.2
7//===== Compatible With: =====================================
8//= eAthena SVN R3424+
9//===== Description: =========================================
10//= Part of the Kafra Express Script Package.
11//= Offers stat raising and Stat/Reset skills
12//===== Additional Comments: =================================
13//= See config.txt for configuration.
14//============================================================
15
16-       script  keInit_stats    -1,{
17OnInit: //Load Config
18        donpcevent "keConfig::OnLoadStats";
19        end;
20}
21
22function        script  F_keStats       {
23
24        function SF_statRaise;
25
26        set @discount,callfunc("F_keCost",100,$@kest_discount);
27        do {
28                set @kmenu, select(
29                        "- Return",
30                        "- Raise Stats",
31                        "- Reset Stats ("+$@kest_stResetCost+"z+"+$@kest_BaseLvCost+"/blv)",
32                        "- Reset Skills ("+$@kest_skResetCost+"z+"+$@kest_JobLvCost+"/jlv)",
33                        "- Reset Both ("+$@kest_resetCost+"z+"+$@kest_BothLvCost+"/lv)"
34                );
35                switch (@kmenu) {
36                case 2: //Stat raising
37                        SF_statRaise();
38                        set @cost, 0;
39                        set @reset, 0;
40                        break;
41                case 3: //Reset Stat
42                        set @cost, $@kest_stResetCost+BaseLevel*$@kest_BaseLvCost;
43                        set @reset, 1;
44                        break;
45                case 4: //Reset Skills
46                        set @cost, $@kest_skResetCost+(JobLevel+jobchange_level)*$@kest_JobLvCost;
47                        set @reset, 2;
48                        break;
49                case 5: //Reset Both
50                        set @cost, $@kest_resetCost+(BaseLevel+JobLevel+jobchange_level)*$@kest_BothLvCost;
51                        set @reset, 3;
52                        break;
53                default: //Cancel
54                        set @cost, 0;
55                        set @reset, 0;
56                        break;
57                }
58                if (@reset > 0) {
59                        if (select("- Cancel","- Reset for "+(@cost*@discount/100)+"z") == 2) {
60                                if (!(callfunc("F_keCharge",@cost,$@kest_discount,1))) {
61                                        callfunc "F_keIntro", e_an, "Sorry, you don't have enough Zeny.";
62                                } else {
63                                        if (@reset&1)
64                                                ResetStatus;
65                                        if (@reset&2) {
66                                                if ($@kest_resetBasic)
67                                                        ResetSkill;
68                                                else {
69                                                        set @skill1,getskilllv("NV_BASIC");
70                                                        ResetSkill;
71                                                        skill 1,@skill1,0;
72                                                        set SkillPoint,SkillPoint-@skill1;
73                                                }
74                                        }
75                                        emotion e_hmm;
76                                }
77                        }
78                }
79        } while (@kmenu > 1);
80        return;
81       
82function SF_statRaise {
83        do {
84                set @submenu, select(
85                        "- Return",
86                        "- Raise Strength",
87                        "- Raise Agility",
88                        "- Raise Vitality",
89                        "- Raise Intelligence",
90                        "- Raise Dexterity",
91                        "- Raise Luck"
92                );
93                switch (@submenu) {
94                case 2:
95                        set @stat,bStr;
96                        break;
97                case 3:
98                        set @stat,bAgi;
99                        break;
100                case 4:
101                        set @stat,bVit;
102                        break;
103                case 5:
104                        set @stat,bInt;
105                        break;
106                case 6:
107                        set @stat,bDex;
108                        break;
109                case 7:
110                        set @stat,bLuk;
111                        break;
112                default:
113                        return;
114                }
115                input @qty;
116                if (@qty <1) {
117                        callfunc "F_keIntro", e_swt, "I don't lower stats, try resetting them.";
118                } else if (@qty >100) {
119                        callfunc "F_keIntro", e_swt2, "Sorry... I can only raise stats up to 100 at a time.";
120                } else {
121                        do {
122                                statusup @stat;
123                                set @qty,@qty-1;
124                        } while (@qty > 0);
125                        emotion e_ok;
126                }
127        } while (@submenu > 1);
128}
129
130}
Note: See TracBrowser for help on using the browser.