UO-Dev Arama


Level sistemi Kapsamlı

Yazar: Uur - Andrien
Tarih: 19-06-2015 01:52





Eskilerden hazırlamış olduğum level sistemi bu aralar UO ile aram bozuk olduğu için paylaşıyorum. Sistem 56c ile yazıldı esikleri olacaktır. O an eksikleri not ettim ama notları bulamıyorum. Ama çalışıyordur.

Sistemde neler var

Guild exp party exp bunların eventle ilişkili olan kısmını bulunca ekleyecem ayrı olarak.


Burada yapmanız gereken npclere level atamanız. Karışık gelebilir baktığımda bana da sonradan karışık geliyor. Aklınıza takılan olursa Ö.M ile ulaşın.
Kod:
on=@Kill
local.levelsi <eval <argo.level>*<argo.str>>
src.expgains <dlocal.levelsi>



Sistem

Burada taraf kısmına aklınız takılmasın benim projemde taraflar olacaktı isteyen olursa projemdeki fikirleri söyleye bilirim.

Kod:
[defname leveller]
taraffarki 5
lvldus_e_pre 4
lvldus_e_pregold 3
lvldus_e_preplat 2
lvldus_e_presiz 5

levelb 81
level0 75
level1 110
level2 250
level3 550
level4 887
level5 1145
level6 1550
level7 2101
level8 3500
level9 5150
level10 7530
level11 9804
level12 13486
level13 17487
level14 23651
level15 28749
level16 35798
level17 46064
level18 59654
level19 70223
level20 85000
level21 99540
level22 115460
level23 133230
level24 165460
level25 208790
level26 234650
level27 275680
level28 310701
level29 360260
level30 450210
level31 504560
level32 618654
level33 760879
level34 895043
level35 1003215
level36 1332405
level37 1534032
level38 1954606
level39 2697910
level40 4324650
level41 5824650
level42 6924650
level43 8324650
level44 9824650
level45 12324650
level46 14324650
level47 19324650
level48 24324650
level49 31324650
level50 39324650
level51 46924650
level52 52324650
level53 57324650
level54 62324650
level55 69324650
level56 75324650
level57 82324650
level58 89324650
level59 95324650
level60 102324650
level61 108324650
level62 112324650
level63 122324650
level64 127324650
level65 134324650
level66 139324650
level67 144324650
level68 154324650
level69 162324650
level70 169324650
level71 176324650
level72 187324650
level73 196324650
level74 206324650
level75 216324650
level76 229324650
level77 236324650
level78 246324650
level79 250324650
level80 270324650

// party ve guildparty exp hesap hesaplaması
guild_exp 1
party_exp 1
// premium exp hesaplaması
pre_pre 25
pre_pregold 50
pre_preplat 75

[events e_pre]
[events e_pregold]
[events e_preplat]
[events e_presiz]

[function fruit]
for <eval <SRC.findlayer.21.rescount>-1> 0
ref1=<uid.<SRC.findlayer.21>.findcont.<dlocal._for>>
if (<ref1.type> == t_fruit) || (<ref1.type> == t_food)
local.fruit += <ref1.amount>
endif
endfor
return <dlocal.fruit>

[function expgains]
if (<isinparty>)
for 0 <eval <party.members>-1>
ref1=<party.member.<dlocal._for>>
if (<ref1.distance <uid>> < 19)
if (<ref1.hits> > 0)
// local.exp <exss <dargs>>
TRYSRC <ref1> src.exper <dargs>// <dlocal.exp>
TRYSRC <ref1> src.levelup
// trysrc <ref1> src.expto <dlocal.exp>
ref1.sysmessage @,,1 <src.name> sayesinde tecrübe puanı kazandınız.
endif
endif
endfor
endif
if !(<isinparty>)
src.exper <dargs>
return 1
endif

[function expparty]
if (<isinparty>)
for 0 <eval <party.members>-1>
local.b ++
endif
endfor
return <dlocal.b>

[function expguild]
if (<isinparty>)
for 0 <eval <party.members>-1>
ref1=<party.member.<dlocal._for>>
// if !(<ref1> = <uid>)
local.b ++
// endif
endif
endfor
return <dlocal.b>

[function exper]
if (<level> >= <ddef.levelb>)
return 1
endif

if (<def.guild_exp> == 1)
local.seyis <eval <eval <argv0>*<expguild>>/100>
local.sayis <eval <argv0>+<dlocal.seyis>>
else
local.sayis <argv0>
endif
if (<isevent.e_pre>)
local.exphe <eval <eval <dlocal.sayis>*<ddef.pre_pre>>/100>>
local.texp <eval <dlocal.exphe>+<dlocal.sayis>>
exp +=<dlocal.texp>
levelup
expto <dlocal.texp>
dialogclose d_hits
dialog d_hits
elif (<isevent.e_pregold>)
local.exphe <eval <eval <dlocal.sayis>*<ddef.pre_pregold>>/100>>
local.texp <eval <dlocal.exphe>+<dlocal.sayis>>
exp +=<dlocal.texp>
levelup
expto <dlocal.texp>
dialogclose d_hits
dialog d_hits
elif (<isevent.e_preplat>)
local.exphe <eval <eval <dlocal.sayis>*<ddef.pre_preplat>>/100>>
local.texp <eval <dlocal.exphe>+<dlocal.sayis>>
exp +=<dlocal.texp>
levelup
expto <dlocal.texp>
dialogclose d_hits
dialog d_hits
else
local.exp1 <eval <eval <dlocal.sayis>*12>/10>
local.texp <dlocal.sayis>
exp +=<dlocal.texp>
levelup
expto <dlocal.texp>
dialogclose d_hits
dialog d_hits
endif
return <dlocal.texp>

[function level_dus]
if (<isevent.e_presiz>)
return <def.lvldus_e_presiz>
elif (<isevent.e_pre>)
return <def.lvldus_e_pre>
elif (<isevent.e_pregold>)
return <def.lvldus_e_pregold>
elif (<isevent.e_preplat>)
return <def.lvldus_e_preplat>
else
return <def.lvldus_e_presiz>
endif

[function lvldus]
local.lvl <eval <eval <def.level<eval <level>+1>>*<level_dus>>/100>
local.lvl1 <eval <exp>-<dlocal.lvl>>
if (<dlocal.lvl1> < 1)
if (<level> >= 1)
level -=1
exp <def.level<eval <level>+1>>
tag0.leveldus +=1
endif
if (<exp> >= 1)
exp -= <strsub 1 20 <dlocal.lvl1>>
endif
else
exp <dlocal.lvl1>
endif

[function exphesap]
if (<def.party_exp> == 1)
local.exp <eval <eval <argv0>*<expparty>>/100>
local.hesapt <eval <argv0>+<dlocal.exp>>
else
local.hesapt <argv0>
endif
return <dlocal.hesapt>

[function expto]
sendpacket 00B d<uid> w<args>

[function levelup]
local.lvl <def.level<eval <level>+1>>
if (<exp> >= <dlocal.lvl>)
if (<tag0.leveldus> >= 1)
level +=1
exp -=<ddef.level<level>>
tag0.leveldus -=1
endif
endif
if (<exp> >= <dlocal.lvl>)
if !(<level> > <ddef.levelb>)
level +=1
exp -=<ddef.level<level>>
if (<level> < 60)
src.tag0.statpoints +=3
else
src.tag0.statpoints +=5
endif
src.say @,,1 Level UP
levelup
else
src.sysmessage @,,1 En üst seviyedesiniz.
return 1
endif
endif

[function exppartylevel]
if (<isinparty>)
for 0 <eval <party.members>-1>
ref1=<party.member.<dlocal._for>>
local.as += <ref1.level>
endif
endfor
return <dlocal.as>

[function lvl]
if (<level> > <ddef.levelb>)
exp 0
endif
dialogclose d_lvlsystem
sdialog d_lvlsystem


Dialog kısmı dediğim gibi sistem proje yarı kaldığı için birçok şey yarı yineliyerek söylemek istiyorum proje fikri isteyen olursa paylaşabilirim UO ile boşanmış gibi bişiyim.

Kod:
[dialog d_hits]
0,625
// nomove
bozobag 10,10,570,100
// alphablack 20 20 550 60

if (<tag0.gorsel>)
button 560 15 015e3 015e7 1 0 1
else
button 560 15 015e1 015e5 1 0 2
endif


local.lvl <def.level<eval <level>+1>>
if (<hits> > <maxhits>)
gumppictiled 130 55 111 25 02a58
else
gumppictiled 130 55 <eval <eval <hits>*111>/<maxhits>> 25 02a58
endif
if (<mana> > <maxmana>)
gumppictiled 240 55 111 25 02a30
else
gumppictiled 240 55 <eval <eval <mana>*111>/<maxmana>> 25 02a30
endif

if (<eval <eval <exp>*111>/<dlocal.lvl>> < 112)
gumppictiled 350 55 <eval <eval <exp>*111>/<dlocal.lvl>> 25 02a44
else
gumppictiled 350 65 111 25 02a44
endif
dhtmlgump 30 40 120 20 0 0 <def.bfont_white><def.bfont_size4><name>
dtext 30 60 0481 <p>
dtext 30 80 0481 <region.name>
dtext 470 40 0481 Lv: <level>
dtext 470 60 0481 Cl: <tag0.class>
dtext 470 80 0481 Tr: <taraf>
dtext 150 35 0845 Ak: <attackhesapla>
dtext 220 35 0845 Df: <resphysical>
if (<food> < 0)
dtext 290 35 0845 Açlık: 0/<maxfood>
else
dtext 290 35 0845 Açlık: <food>/<maxfood>
endif
dtext 390 35 0845 Erzak: <fruit>

dtext 320 85 0850 Stat Points: <dtag.statpoints>
dtext 150 85 0850 Kalan Exp: <f_bolukayir <eval <dlocal.lvl>-<exp>>>

dhtmlgump 125 60 120 20 0 0 <def.center><def.bfont_lred><def.bfont_size2><hits>/<maxhits>
dhtmlgump 235 60 120 20 0 0 <def.center><def.bfont_lblue><def.bfont_size2><mana>/<maxmana>

dhtmlgump 345 60 110 20 0 0 <def.center><def.bfont_white><def.bfont_size2> %<strsub 0 5 <floatval <exp>*100/<dlocal.lvl>>>


[dialog d_hits button]
on 1
tag0.gorsel
dialogclose d_hits
dialog d_hits
dialogclose d_hits_2

on 2
tag0.gorsel 1
dialogclose d_hits
dialog d_hits
dialogclose d_hits_2
dialog d_hits_2

[dialog d_hits_2]
570,625
nomove
bozobag 10,10,200,100

dtext 30 35 0481 Str: <str>
dtext 30 50 0481 İnt: <int>
dtext 30 65 0481 Hp: <dtag.hp>
dtext 30 80 0481 Mp: <dtag0.magicpower>

dtext 90 35 0845 DF: <damfire>
dtext 90 50 0845 DC: <damcold>
dtext 90 65 0845 DP: <dampoison>
dtext 90 80 0845 DE: <damenergy>

dtext 150 35 0850 RF: <resfire>
dtext 150 50 0850 RC: <rescold>
dtext 150 65 0850 RP: <respoison>
dtext 150 80 0850 RE: <resenergy>

[dialog d_lvlsystem]
50,50

bozobag 10,10,400,300
// alphablack 20 20 380 280
dtext 37 12 0850 Durum
buttontileart 37 20 07588 07588 0 1 4 01b70 01b70 0 0

dtext 137 12 0850 Ef/Çı
buttontileart 137 20 07588 07588 0 2 5 01b70 01b70 0 0
dtext 237 12 0850 Spells
buttontileart 237 20 07588 07588 0 3 6 01b70 01b70 0 0
dtext 337 12 0850 ASD
buttontileart 337 12 07588 07588 0 4 7 01b70 01b70 0 0

page 1
dtext 37 12 100 Durum
local.lvl <def.level<eval <level>+1>>

if !(<level> > <eval <ddef.levelb>-1>)
resizepic 35 260 3000 <eval <eval <exp>*350>/<dlocal.lvl>> 20
dtext 180 260 0481 %<strsub 0 5 <floatval <exp>*100/<dlocal.lvl>>>
else
dtext 180 260 0850 Üst seviye.
endif
dtext 30 50 0481 Svy Exp: <exp> / <f_bolukayir <dlocal.lvl>>
dtext 30 70 0481 Kalan Exp: <f_bolukayir <eval <dlocal.lvl>-<exp>>>
dtext 30 90 0481 Level: <level>
dtext 30 110 0481 Class: <class>

dtext 30 130 0481 Stat Points: <dtag.statpoints>
dtext 30 150 0481 Açlık: <food> / <maxfood>
dtext 30 170 0481 Erzak yeterliliği: <fruit>


[dialog d_lvlsystem button]
on 1


Bu kısımda eksik olan fonksiyonlar


Kod:
[FUNCTION f_array_lenght]
return <dargv>

[function f_moonsep]
if <argv[0]> == 0
return <eval <argv> - 1>
else
return <argv[<argv[0]>]>
endif



Yorumlar

Henüz yorum yapılmamıştır.

Oylamalar

Oylama :
Üyelerin oylama ortalaması (10 dışında) : Henüz Oylanmamış   
Oylar: 0

Benzer Sayfalar

SayfalarYorumlarGönderenTarih
Sphere Level Ayarları0muhacan11-03-2012
Npc Level System0Cyrus09-08-2010
Level System0Crue03-06-2010
Set Secure Level Gump0Rowall01-09-2009
Deceit Dungeon Level 40TheRaskol31-07-2009


Keywords:

ultima online, RunUO, ultima online download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, ultima online pvp, player dosyaları, ultima online indir, frp game, RunUO 1.0.0, razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, gump editör, mul patcher, aos mulls, scriptler, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı,