Помощь - Поиск - Пользователи - Календарь
Полная версия: Level System V1.6a
UoKit.com Форумы > Ultima Online : Dev > Sphere Server > Архив готовых скриптов
Achat
Код
//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]
Lord Finger Board
Симпотично!
Panika
Ребята объясните плз я не догоняю=) что с ним нада сделать что бы он работал!)
Worion
Симпатичкая системка.
Конечн куча недоработок в системе диалогов, но вообще мне понравилась...мож тоже написать свою ?smile.gif
LawbreaK
Спасибо, обойдемся.
Achat
Цитата(Worion @ 10.10.2006, 0:07)
Симпатичкая системка.
Конечн куча недоработок в системе диалогов, но вообще мне понравилась...мож тоже написать свою ?smile.gif
*




да диалоги проблемные tongue.gif
Panika
ребята так куда его нада засунуть что бы он правильно работал...а то у мя чет не пашет(((расскажите плз поподробнее

Этот скрипт нада в sphereevents или куда его пихать то?
а для монстров нада чтонить ставить
Panika
Этот скрипт нада в phereevents или куда его ихать то?
DihlofozzZ
в sphere_skills.scp
Код
ON=@LOGin
events -e_level
events +e_level


а сам скрипт в любой файл с расшиением *.scp
Panika
Спасиба))) а то я не особо разбираюсь еще))) во всем)
Panika
хм...что то ничего не работает( в место sphere_skills.scp меня sphereskill.scp вот я внего вставил исходный ну скрипт тоже с раширением scp так вот ниче не работает(
какими командами проверять сколько экспы и тд? за монстров ее не дают(
DihlofozzZ
exp
Panika
В консоли сферы вот мне че пишет

Код
17:55:ERROR:(lvl.scp,109)Undefined keyword 'sdialog'
17:55:110:'6yPATuHA' commands 'exp'=1
17:55:ERROR:(lvl.scp,109)Undefined keyword 'sdialog'
DihlofozzZ
на какую сферу поставил? нужна 0.56b для полноценной работы
Panika
еееех( а у мя 55i ну лана поменяю тогда ядро) спсб)
DihlofozzZ
ща пойдут вопросы по установке 56 сферы значит.... =(
Panika
нет я поставил56b там заморочка с AGREE=1 была)))
потестил скрипт и фсе и решил опять 55i ставить а ты не знаеш где для 55i достать примерно такуюже лвл систему только что бы она как рпг была тоисть с монстров только считала експу
LawbreaK
Цитата
а ты не знаеш где для 55i достать примерно такуюже лвл систему


нАПИСАТЬ НЕ ПРОБЫВАЛ? О о
Panika
нее я пока еще плохо умею писать а систему лвлов темболее не напишу...а если и напишу ту кривую которая ваще работать не будет
DihlofozzZ
Цитата(Panika @ 10.10.2006, 18:56)
а ты не знаеш где для 55i достать примерно такуюже лвл систему только что бы она как рпг была тоисть с монстров только считала експу
*


https://forum.uokit.com/index.php?showtopic=5863
тема спецом для тебя прибита smile.gif
Panika
Dihlofozzz а этот https://forum.uokit.com/index.php?showt...st=&#entry37113 скрипт ставить так же как и лвл систему для 56b сферы? и команды там такие же типа .exp?
DihlofozzZ
позже отвечу, ща в скрипт не въезжаю smile.gif спат охото smile.gif
Panika
ок)) жду
DihlofozzZ
добавляешь эвент, команда вроде .level_up
Panika
а поподробнее ? в spherevevents нада добавить типа [EVENTS e_exp]
дальше что ? или как то подругому?
DihlofozzZ
весь скрипт в любой файл с расширением *.scp

в sphere_skills.scp или spheretables.scp (если сфера 55и) делаешь процедуру как я выше описывал с @login, всо
crazyjack
23:33:ERROR:(level.scp,159)Exp_GetVal: Divide by 0
23:33:ERROR:(level.scp,171)Exp_GetVal: Divide by 0

вот пчм он ругаетсЯ?
Wap
Цитата(crazyjack @ 22.11.2009, 23:35) *

23:33:ERROR:(level.scp,159)Exp_GetVal: Divide by 0
23:33:ERROR:(level.scp,171)Exp_GetVal: Divide by 0

вот пчм он ругаетсЯ?
Деление на 0 в этих строчках.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.