Код
//Created by Admin Soulless
//v1.5a
//REscripted by Achat
//v1.6a
[defname level_settings]
max_level 20 //Maximum level a player is able to attain.
rankup 500 //Exp to gain next rank (Value increases each new rank)
ranksper_level 5 //Ranks it takes to get to next level.
//The following Functions are still in progess
protect_newbies 0 //Enable to protect low level players from being pked.
newbie_level 0 //Till this level a player is considered a newbie.
//The following functions pertain to the custom stat/skillgain system
custom_gains 1 //enable this to use the custom stat/skillgain system.
statsper_rank 5 //Stat points the player will get on each rank up.
skillsper_rank 10.0 //Skill points the player will get on each rank up.
level_bonus 1 //Bonus points for player leveling up.
[events e_level]
on=@statgain
if <def.custom_gains>
return 1
endif
on=@skillgain
if <def.custom_gains>
return 1
endif
on=@click
message @0482 [Level <eval <tag0.level>>]
on=@ClientToolTip
src.addcliloc 1070722,Level <eval <tag0.level>>>
on=@kill
obj=<argo.uid>
local.exp_value=<eval ((<obj.str> + <obj.int> + <obj.dex>)/3)>
if (<obj.npc>)&&!(<obj.flags>&statf_conjured)
gain_exp <local.exp_value>
endif
[function gain_exp]
if !(<tag0.level>>=<def.max_level>) && (<tag0.rank><=<def.ranksper_level>)
tag0.exp += <argn>
sysmessage @044 Gained <argn> exp!
check_rank
return 1
endif
[function check_rank]
if !(<tag0.level>>=<def0.max_level>)
if (<tag0.exp>>=<tag0.nextrankat>) && (<tag0.rank>>=<def.ranksper_level>)
tag0.rank 1
level_up
return 1
elseif (<tag0.exp>>=<tag0.nextrankat>)
rank_up
return 1
endif
[function rank_up]
if <def.custom_gains>
tag0.skillpoints += <def.skillsper_rank>
tag0.statpoints += <def.statsper_rank>
endif
tag0.rank += 1
sysmessage @017 You've Ranked up!
tag0.lastrankat=<tag0.nextrankat>
tag0.nextrankat += <eval (<def.rankup>*(<tag0.level>*<tag0.rank>))>
effect=3,i_fx_heal_effect,6,75,1,0481
sound 01eb
fix_rank
[function fix_rank]
if (<tag0.exp>>=<tag0.nextrankat>)
check_rank
endif
if (<tag0.level>>=<def.max_level>)
tag0.exp=<tag0.lastrankat>
endif
[function level_up]
if (<def.custom_gains>) && (<def.level_bonus>)
tag0.skillpoints += <eval <def.skillsper_rank>x2>
tag0.statpoints += <eval <def.statsper_rank>x2>
elseif (<def.custom_gains>)
tag0.skillpoints += <eval <def.skillsper_rank>>
tag0.statpoints += <eval <def.statsper_rank>>
endif
tag0.lastrankat=<tag0.nextrankat>
tag0.nextrankat += <eval (<def.rankup>*(<tag0.level>*<tag0.rank>))>
tag0.level += 1
sysmessage @036 Congratulations <name>, You have reached level <eval <tag0.level>>!
effect=3,i_fx_heal_effect,6,75,1,0481
sound 01f7
check_rank
[plevel 1]
exp
[function exp]
sdialog d_level
[dialog d_level]
250,250
page 0
if <def.custom_gains>
button 33 3 247 248 0 1
resizepic 33 0 5054 65 30
dtext 48 3 1152 Info
button 100 3 247 248 0 2
resizepic 100 0 5054 65 30
dtext 115 3 1152 Skills
button 167 3 247 248 0 4
resizepic 167 0 5054 65 30
dtext 183 3 1152 Stats
button 234 3 247 248 0 5
resizepic 234 0 5054 65 30
dtext 250 3 1152 Help
endif
if <def.race_system>
button 33 203 247 248 0 10
resizepic 33 200 5054 65 30
dtext 48 207 1152 Race
endif
if <def.class_system>
button 100 203 247 248 0 11
resizepic 100 200 5054 65 30
dtext 115 207 1152 Class
endif
resizepic 0 20 2600 325 190
page 1 //Level Menu
if <def.custom_gains>
button 33 3 247 248 0 1
resizepic 33 0 5054 65 30
dtext 48 3 1152 Info
endif
dtext 110 40 1152 Experiance Menu
dtext 45 65 1152 Name: <name>
dtext 45 80 1152 Level: <eval <tag0.level>> -- Rank: <eval <tag0.rank>>
dtext 45 95 1152 Exp: <eval <tag0.exp>>
dtext 45 110 1152 Exp Needed: <eval <tag0.nextrankat>-<tag0.exp>>
dtext 185 65 1152 Fame: <fame>
dtext 185 80 1152 Karma: <karma>
dtext 185 95 1152 Kills: <kills>
dtext 185 110 1152 Deaths: <deaths>
gumppic 225 125 109 0
dtext 109 135 1152 Next Rank: <eval ((<tag0.exp>-<tag0.lastrankat>)*100)/(<def.rankup>*(<tag0.level>*<tag0.rank>))>%
//The following is a modified piece of WarAngel's experiance system.
resizepic 95 158 2620 129 27
gumppic *100 *165 9023
gumppic *13 *0 9024
gumppic *13 *0 9024
gumppic *13 *0 9024
gumppic *13 *0 9024
gumppic *13 *0 9024
gumppic *13 *0 9024
gumppic *13 *0 9024
gumppic *15 *0 9025
gumppic <eval <eval ((<tag0.exp>-<tag0.lastrankat>)*100)/(<def.rankup>*(<tag0.level>*<tag0.rank>))>+102> *0 1209
page 2 //Skill Menu
resizepic 50 55 2620 135 35
button 100 3 247 248 0 2
resizepic 100 0 5054 65 30
dtext 115 3 1152 Skills
gumppictiled 55 60 125 25 3004
dtextentrylimited 55 65 155 15 0 0 20 Skill ID
resizepic 215 55 2620 55 35
gumppictiled 220 60 45 25 3004
dtextentrylimited 220 65 50 15 0 1 4 #
button 215 100 2128 2129 1 0 1
button 55 100 2031 2032 0 7
button 140 100 2119 2120 1 0 2
dtext 55 150 1152 You have <fval <tag0.skillpoints>> skillpoints available.
page 4 //Stat Menu
button 167 3 247 248 0 4
resizepic 167 0 5054 65 30
dtext 183 3 1152 Stats
dtext 60 40 1152 Strength
button 140 44 1209 1210 1 0 3
dtext 170 40 1152 Constitution
button 250 44 1209 1210 1 0 4
dtext 60 60 1152 Dexterity
button 140 64 1209 1210 1 0 5
dtext 170 60 1152 Stamina
button 250 64 1209 1210 1 0 6
dtext 60 80 1152 Intelligence
button 140 84 1209 1210 1 0 7
dtext 170 80 1152 Wisdom
button 250 84 1209 1210 1 0 8
dtext 55 150 1152 You have <eval <tag0.statpoints>> statpoints available.
page 5 //Help Menu
button 234 3 247 248 0 5
resizepic 234 0 5054 65 30
dtext 250 3 1152 Help
button 65 64 1209 1210 0 6
dtext 85 60 1152 Commands
button 245 64 1209 1210 0 7
dtext 185 60 1152 Skill List
button 155 114 1209 1210 0 8
dtext 145 90 1152 Credits
page 6 //Commands
button 234 3 247 248 0 5
resizepic 234 0 5054 65 30
dtext 250 3 1152 Help
dtext 45 60 1152 Exp : Brings up exp menu
page 7 //Skill List
button 234 3 247 248 0 5
resizepic 234 0 5054 65 30
dtext 250 3 1152 Help
dtext 140 35 1152 Skill List
resizepic 28 60 5054 273 105
dhtmlgump 29 61 270 103 0 1 Alchemy Anatomy ItemID ArmsLore Parrying Begging Blacksmithing Bowcraft Peacemacking Camping Carpentry Cartograpghy Cooking DetectingHidden Enticement EvauluatingIntel Healing Fishing Forensics Herding Hiding Provocation Inscription LockPicking Magery MagicResistance Tactics Snooping Musicianship Poisoning Archery SpiritSpeak Stealing Taming TasteID Tinkering Tracking Veterinary Swordsmanship Macefighting Fenceing Wrestling LumberJacking Mining Meditation Stealth RemoveTrap
page 8 //Credits
button 234 3 247 248 0 5
resizepic 234 0 5054 65 30
dtext 250 3 1152 Help
dtext 140 35 1152 Credits:
resizepic 28 60 5054 273 105
dhtmlgump 29 61 270 103 0 1 Scripted by Soulless. Rescripted by Achat. Current Version 1.6a! Try to fix skillpoints
[dialog d_level button]
onbutton=1
sdialog d_level 2
if <isempty (<streat <argtxt[0]>>)>
sysmessage @026 Error: No skill ID.
return 1
elseif <serv.lookupskill.<argtxt[0]>><0
sysmessage @026 Error: Invalid skill ID, "<argtxt[0]>".
return 1
elseif <isempty <argtxt[1]>>
sysmessage @026 Error: No skill value.
return 1
elseif !<isnum <argtxt[1]>>
sysmessage @026 Error: Invlaid number, "<argtxt[1]>".
return 1
elseif <eval <argtxt[1]>> > <tag0.skillpoints>
sysmessage @026 You don't have enough skillpoints.
return 1
elseif <eval <<argtxt[0]>>+<argtxt[1]>> >= 1000
sysmessage @026 You can't exceed 100.0 points in a single skill.
return 1
else
try <argtxt[0]> = <eval <eval <<argtxt[0]>>>+<argtxt[1]>>
tag0.skillpoints -= <argtxt[1]>
return 1
endif
onbutton=3,8
sdialog d_level 4
if !(<tag0.statpoints>>0)
sysmessage @026 You don't have enough statpoints
return 1
else
tag0.statpoints -= 1
doswitch <hval <argn1>-3>
begin
str += 1
end
begin
maxhits += 1
src.sysmessage @0170 Your constitution has increased by 1. it is now <eval <maxhits>>.
end
begin
dex += 1
end
begin
maxstam += 1
src.sysmessage @0170 Your stamina has increased by 1. it is now <eval <maxstam>>.
end
begin
int += 1
end
begin
maxmana += 1
src.sysmessage @0170 Your wisdom has increased by 1. it is now <eval <maxmana>>.
end
enddo
endif
[eof]