[comment credits]
This is a 56b script, compatible with feb 8th, 2008 release.
v0.3.0
Simple features, edit as you wish and leave comment here :)
-Simple leveling
-Simple stat gain to <skillclass.statsum> (statsum=xx in [skillclass xx] in sphere_skills.scp)
-Feature to add as many Power Hour times as you want.
-+50% /party exp gains whenever in a party at all times
-+75% guild exp gains whenever in a guild
Installation:
-Add EventsPlayer=e_level to sphere.ini
-Add EventsPet=e_exp to sphere.ini
Scripted by Skul,
www.marchadium.ca
[defname level_system_defnames]
levelsys_minimum_elapsed 60*3 //3 dk boyunca saldırmalısınız experience alıcağınız yaratığa.
levelsys_extra_party_exp 50 //50% extra party experience
levelsys_extra_guild_exp 75 //75% extra guild experience
levelsys_extra_guild_war_exp 200 //200% extra exp for attacking/killing someone at war with your guild.
levelsys_extra_powerhour_exp 200 //200% exp at power hours
levelsys_combat_exp 100 //100% combat experience.
levelsys_crafting_exp 100 //100% experience when crafting an item.
levelsys_leveling_difficulty 25 //25% difficulty, you can set this above 100%
levelsys_config_party_exp 1 //1 or 0 to enable or disable party experience sharing
levelsys_config_guild_exp 1 //1 or 0 to enable or disable guild experience sharing
levelsys_config_crafting_exp 1 //1 or 0 to enable or disable crafting experience
levelsys_powerhour_times 2 //amount of times set to enable power hour
levelsys_powerhour_time1 00 //first time, set to 00 (midnight)
levelsys_powerhour_time2 15 //second time, set to 12 (noon)
[plevel 0]
level
[function level]
sdialog d_level_dialog
[function exp_gain]
if (<argn1>) || (strmatch(<strarg <args>>,levelup))
if (<ischar>)
if (<isplayer>)
if (<def0.levelsys_config_party_exp>)
if (<isinparty>)
for 0 <eval <party.members> +-1>
local.exp=<party.member.<local._for>.total_exp_extras <args>>
if (<def0.levelsys_config_guild_exp>)
if (<memoryfindtype.0400.link>)
if !(<party.member.<local._for>.memoryfindtype.0400.link>==<memoryfindtype.0400.link>)
party.member.<local._for>.tag0.exp += <total_exp <local.exp>>
party.member.<local._for>.sysmessage @91 [Exp Gain]: <eval <strarg <local.exp>>> experience ve <eval <strarg <streat <local.exp>>>> party experienceı kazandınız .
party.member.<local._for>.levelup_check
endif
else
party.member.<local._for>.tag0.exp += <total_exp <local.exp>>
party.member.<local._for>.sysmessage @91 [Exp Gain]: <eval <strarg <local.exp>>> experience ve <eval <strarg <streat <local.exp>>>> party experienceı kazandınız .
party.member.<local._for>.levelup_check
endif
else
party.member.<local._for>.tag0.exp += <local.exp>
party.member.<local._for>.sysmessage @91 [Exp Gain]: You gained <eval <strarg <local.exp>>> experience ve <eval <strarg <streat <local.exp>>>> party experienceı kazandınız.
party.member.<local._for>.levelup_check
endif
endfor
if (<def0.levelsys_config_guild_exp>)
if (<memoryfindtype.0400.link>)
for 0 <eval <memoryfindtype.0400.link.member.count> +-1>
if (<memoryfindtype.0400.link.member.<local._for>.isonline>)
local.exp=<guild.member.<local._for>.total_exp_extras <args>>
memoryfindtype.0400.link.member.<local._for>.tag0.exp += <total_exp <local.exp>>
if (<eval <strarg <streat <streat <streat <local.exp>>>>>> > 0)
memoryfindtype.0400.link.member.<local._for>.sysmessage @91 [Exp Gain]: <eval <strarg <local.exp>>> experience ve <eval <strarg <streat <streat <local.exp>>>>> guild experienceı ve <eval <strarg <streat <streat <streat <local.exp>>>>>> guild savaş experienceı kazandınız.
else
memoryfindtype.0400.link.member.<local._for>.sysmessage @91 [Exp Gain]: <eval <strarg <local.exp>>> experience ve <eval <strarg <streat <streat <local.exp>>>>> guild experienceı kazandınız .
endif
memoryfindtype.0400.link.member.<local._for>.levelup_check
endif
endfor
endif
endif
else
if (<def0.levelsys_config_guild_exp>)
if (<memoryfindtype.0400.link>)
for 0 <eval <memoryfindtype.0400.link.member.count> +-1>
if (<memoryfindtype.0400.link.member.<local._for>.isonline>)
local.exp=<guild.member.<local._for>.total_exp_extras <args>>
memoryfindtype.0400.link.member.<local._for>.tag0.exp += <total_exp <local.exp>>
if (<eval <strarg <streat <streat <streat <local.exp>>>>>> > 0)
memoryfindtype.0400.link.member.<local._for>.sysmessage @91 [Exp Gain]: <eval <strarg <local.exp>>> experience ve <eval <strarg <streat <streat <local.exp>>>>> guild experienceı ve <eval <strarg <streat <streat <streat <local.exp>>>>>> guild savaş experienceı kazandınız.
else
memoryfindtype.0400.link.member.<local._for>.sysmessage @91 [Exp Gain]: <eval <strarg <local.exp>>> experience ve <eval <strarg <streat <streat <local.exp>>>>> guild experienceı kazandınız.
endif
memoryfindtype.0400.link.member.<local._for>.levelup_check
endif
endfor
else
local.exp=<total_exp_extras <args>>
tag0.exp += <total_exp <local.exp>>
sysmessage @91 [Exp Gain]: <total_exp <local.exp>> Experience kazandiniz.
levelup_check
endif
else
local.exp=<total_exp_extras <args>>
tag0.exp += <total_exp <local.exp>>
sysmessage @91 [Exp Gain]: <total_exp <local.exp>> Experience kazandiniz.
levelup_check
endif
endif
else
if (<def0.levelsys_config_guild_exp>)
if (<memoryfindtype.0400.link>)
for 0 <eval <memoryfindtype.0400.link.member.count> +-1>
if (<memoryfindtype.0400.link.member.<local._for>.isonline>)
local.exp=<guild.member.<local._for>.total_exp_extras <args>>
memoryfindtype.0400.link.member.<local._for>.tag0.exp += <total_exp <local.exp>>
if (<eval <strarg <streat <streat <streat <local.exp>>>>>> > 0)
memoryfindtype.0400.link.member.<local._for>.sysmessage @91 [Exp Gain]: <eval <strarg <local.exp>>> experience ve <eval <strarg <streat <streat <local.exp>>>>> guild experienceı ve <eval <strarg <streat <streat <streat <local.exp>>>>>> guild savaş experienceı kazandınız.
else
memoryfindtype.0400.link.member.<local._for>.sysmessage @91 [Exp Gain]: You gained <eval <strarg <local.exp>>> experience ve <eval <strarg <streat <streat <local.exp>>>>> guild experienceı kazandınız.
endif
memoryfindtype.0400.link.member.<local._for>.levelup_check
endif
endfor
else
local.exp=<total_exp_extras <args>>
tag0.exp += <total_exp <local.exp>>
sysmessage @91 [Exp Gain]: You gained <total_exp <local.exp>> experience.
levelup_check
endif
else
local.exp=<total_exp_extras <args>>
tag0.exp += <total_exp <local.exp>>
sysmessage @91 [Exp Gain]: <total_exp <local.exp>> Experience kazandiniz.
levelup_check
endif
endif
else
if (<memoryfindtype.02.link>)
memoryfindtype.02.link.exp_gain <args>
endif
endif
endif
endif
[function exp_gain_death]
for x 0 <eval <attacker> +-1>
if (<attacker.<local.x>.elapsed> < <ddef0.levelsys_minimum_elapsed>)
if (<uid.<attacker.<local.x>.uid>.isplayer>)
if (<def0.levelsys_config_party_exp>)
if (<uid.<attacker.<local.x>.uid>.isinparty>)
local.party_exists=
if (<local.parties>)
for 1 <local.parties>
if (<uid.<attacker.<local.x>.uid>.party.member.0.uid>==<local.party_master<dlocal.x>>)
local.party_exists=<local._for>
endif
endfor
endif
if !(<local.party_exists>)
local.parties += 1
local.party_master<dlocal.parties>=<uid.<attacker.<local._for>.uid>.party.member.0.uid>
local.party_totalexp<dlocal.parties> += <eval <eval <attacker.<local.x>.dam> *<def0.levelsys_combat_exp>> /100>
else
local.party_totalexp<dlocal.party_exists> += <eval <eval <attacker.<local.x>.dam> *<def0.levelsys_combat_exp>> /100>
endif
else
uid.<attacker.<local.x>.uid>.exp_gain <eval <eval <attacker.<local.x>.dam> *<def0.levelsys_combat_exp>> /100>, <uid>
endif
else
uid.<attacker.<local.x>.uid>.exp_gain <eval <eval <attacker.<local.x>.dam> *<def0.levelsys_combat_exp>> /100>, <uid>
endif
else
uid.<attacker.<local.x>.uid>.exp_gain <eval <eval <attacker.<local.x>.dam> *<def0.levelsys_combat_exp>> /100>, <uid>
endif
endif
endfor
if (<local.parties>)
for 1 <local.parties>
uid.<local.party_master<dlocal._for>>.exp_gain <local.party_totalexp<dlocal._for>>, <uid>
endfor
endif
[function total_exp_extras]
if (strmatch(<strarg <args>>,levelup))
local.exp=<eval <tag0.expneeded> +-<tag0.exp>>
else
local.exp=<argn1>
endif
if (<ispowerhour <def0.levelsys_powerhour_times>>)
local.exp=<eval <eval <local.exp> *<def0.levelsys_extra_powerhour_exp>> /100>
endif
if (<def0.levelsys_config_party_exp>)
if (<isinparty>)
local.partyexp=<eval <eval <local.exp> *<def0.levelsys_extra_party_exp>> /100>
endif
endif
if (<def0.levelsys_config_guild_exp>)
if (<memoryfindtype.0400.link>)
local.guildexp=<eval <eval <local.exp> *<def0.levelsys_extra_guild_exp>> /100>
if (<def0.levelsys_extra_guild_war_exp> > 0)
if (<uid.<strarg <streat <args>>>.notogetflag <uid>>==5)
local.guildwarexp=<eval <eval <local.exp> *<def0.levelsys_extra_guild_war_exp>> /100>
endif
endif
endif
endif
return <local.exp>, <local.partyexp>, <local.guildexp>, <local.guildwarexp>
[function total_exp]
if (<argv> > 0)
for 0 <eval <argv> +-1>
local.return += <argv[<local._for>]>
endfor
endif
return <dlocal.return>
[function total_crafting_exp]
if (<argv> > 0)
for 0 <eval <argv> +-1>
if (<eval <def.<strarg <streat <argv[<local._for>]>>>> +-0c0000000> >= 0) && (<eval <def.<strarg <streat <argv[<local._for>]>>>> +-0c0000000> <= 54)
if (<serv.skill.<eval <def.<strarg <streat <argv[<local._for>]>>>> +-0c0000000>.key>==<serv.skill.<strarg <streat <argv[<local._for>]>>>.key>)
if !(<isempty <strarg <argv[<local._for>]>>>)
local.return += <strarg <argv[<local._for>]>>
endif
endif
endif
endfor
endif
return <dlocal.return>
[function levelup_check]
while (<tag0.exp> >= <tag0.expneeded>)
levelup
endwhile
[function levelup]
effect 3,i_fire_column,15,15,1 0,7
sound snd_spell_flamestrike
sound snd_spell_lightning
tag0.level += 1
message @91,0 [+Level Up+]
dorand 3
begin
local.x=<eval {1 10 3 5 5 1}>
ostr += <local.x>
end
begin
local.x=<eval {1 10 3 5 5 1}>
odex += <local.x>
end
begin
local.x=<eval {1 10 3 5 5 1}>
oint += <local.x>
end
enddo
if !(<tag0.expneeded>)
tag0.exp=
tag0.expneeded=1000
else
tag0.exp -= <tag0.expneeded>
tag0.expneeded += <eval <eval <tag0.expneeded> *<def0.levelsys_leveling_difficulty>> /100>
endif
sysmessage @91 [Level Up]: Level Atladınız <dtag0.level>
[function ispowerhour]
if (<argn1> > 0)
for 1 <argn1>
if (strmatch(<ddef0.levelsys_powerhour_time<dlocal._for>>:*,<streat <serv.rtime>>))
local.return=1
endif
endfor
endif
return <dlocal.return>
[events e_level]
on=@click
if (<tag0.level>)
message (Level: <dtag0.level>)
endif
return 0
on=@skillmakeitem
if (<def0.levelsys_config_crafting_exp>)
exp_gain <eval <eval <total_crafting_exp <act.skillmake>> *<def0.levelsys_crafting_exp>> /100>
endif
on=@gethit
if (<src.ischar>)
if (<eval <hitpoints> +-<argn1>> < 0)
src.exp_gain <eval <eval <hitpoints> *<def0.levelsys_combat_exp>> /100>, <uid>
else
src.exp_gain <eval <eval <argn1> *<def0.levelsys_combat_exp>> /100>, <uid>
endif
endif
return 0
on=@death
exp_gain_death
return 0
[events e_exp]
on=@click
if (<notogetflag>==6)
message @38 (Level: <qval <eval <eval <maxhits> +<ostr>> /50> < 1 ?1:<eval <eval <maxhits> +<ostr>> /50>>)
else
message (Level: <qval <eval <eval <maxhits> +<ostr>> /50> < 1 ?1:<eval <eval <maxhits> +<ostr>> /50>>)
endif
return 0
on=@gethit
if (<src.ischar>)
if (<eval <hitpoints> +-<argn1>> < 0)
src.exp_gain <eval <eval <hitpoints> *<def0.levelsys_combat_exp>> /100>, <uid>
else
src.exp_gain <eval <eval <argn1> *<def0.levelsys_combat_exp>> /100>, <uid>
endif
endif
return 0
on=@death
exp_gain_death
return 0
[dialog d_level_dialog]
0,0
page 0
resizepic 71 64 9270 341 201
dtext 96 88 00bd Level Bilgi Sayfasina hoş geldiniz <name>.
dtext 100 131 00bd Level -
dtext 100 171 00bd Experience -
dtext 100 211 00bd Gereken Experience-
resizepic 280 120 9350 104 38
resizepic 280 163 9350 104 38
resizepic 280 206 9350 104 38
dtext 288 131 00bd <dtag0.level>
dtext 288 216 00bd <dtag0.expneeded>
dtext 288 173 00bd <dtag0.exp>
[dialog d_level_dialog button]
[eof]
Total votes: 0
Ultima Online 11 saat önce
Ultima Online 2 gün önce
Duyurular 1 hafta önce
Sunucular 1 hafta önce
Ultima Online 2 hafta önce
Ultima Online 2 hafta önce
Ultima Online 3 hafta önce
Ultima Online 3 hafta önce
Sunucular 3 hafta önce
Sunucular 3 hafta önce
Sunucular 1 ay önce
Ultima Online 1 ay önce
2024-10-31 22:47
2024-10-14 17:45
2024-09-26 14:21
2024-07-08 22:50
2024-07-08 22:34
2024-06-19 22:05
2024-06-01 02:19
2024-05-31 21:17
Yorumlar (0)