Evet şimdi de pek bilinmeyen bir fonksiyonu aciklayalim elimizden geldiğince..
Fonksiyonumuzun ismi RANDBELL
Rastgele sayi uretmenin degis*k
bir yolu.
Sphere'da dort adet rastgele sayi uretme yolu var.
1. Rand(x) seklinde olan ki (0) ile (x-1) arasinda rastgele bir sayi uretir ve uretilen sayi doner..
2. x ve y sayilari arasinda bir sayi uretmek icinse {x y} kulanilir..
3. a ve b rastgelecek sayilar olsun. Ama birinin sansinin daha fazla olmasini istiyoruz degilmi.. Onu da {a 2 b 1} seklinde yapariz. a nin gelme sansi 3 te 2 b nin gelme sansi ise 3 de 1 dir...
4. Ve geldik asıl konumuza .. RandBell fonksiyonumuz can seklinde bir egri hesaplar..
Genel olarak Randbell fonksiyonu skill gain (yetenek puani) ve craft malzemelerinin yapim sanslarinda kullanilmak uzere yapilmistir . Eger kavranilirsa cok fazla satir yerine 3- 5 satir ile mukemmel bir skill gain sistemi yapilabilir..
Diger rastgele sayi ureticilerinden farklı olarak 2 parametreye sahiptir..
Randbell( diff, variance )
Bu fonksiyonu aciklamak aslında baya zor..
Asagida gordugunuz gibi bir grafik cikiyor karsimiza..
[URL=https://imageshack.us][IMG]https://img512.imageshack.us/img512/2199/randbell6dv4mp.jpg[/IMG][/URL]
yukardaki sekilde yatay eksendeki sapma sıfırdır. Dikey eksen ise 0 en dusuk ve 500 en yuksek
noktalaridir. bir nevi min ve max degerleri diyebiliriz. bu da bize bir basari orani sagliyor...Nerden nereye ? demin belirttigimiz sayilari alirsak 0% dan 50.0% ye kadar..
tabi her iki kosulu da vermeliyiz...karsitlik <variance> ve diff degeri..
Diff degerimiz 0 ise donen deger herzmn icin 500 olacaktir.. <diff> = (<variance>) yaparsak eger donen deger 250 olacaktir.
ornegin ..
src.say <EVAL RANDBELL(7,10)>
standart sapmasi 10 olan egrideki 7 degeri bize 325 degerini veriyor..
yada bunu bir scrıpt icinde aciklarsak..
mesela mevcut skill ve gereken skill seklinde ..
[FUNCTION skillchance]
// VAR.SKILL_REQ,VAR.SKILL_CURR
// fonk. cagrilmadan bunlari tanimlamak gerek.
var.skill_req 1000
var.skill_curr 600
var.skill_diff <eval <var.skill_req> + -<var.skill_curr>>
var.skill_bell <eval randbell( <var.skill_diff>, 10.0 )>
if ( <var.skill_diff> < 0 )
var.skill_bell <eval 1000 +- <var.skill_bell>>
endif
return <var.skill_bell>
[function 1122]
say <skillchance>
0 Kullanıcı
Ultima Online 3 hafta önce
Sphere Scripting 4 hafta önce
Sunucular 1 ay önce
Sunucular 2 ay önce
Sphere Scripting 2 ay önce
CS 1.6 3 ay önce
Sunucular 4 ay önce
Sunucular 4 ay önce
Sunucular 4 ay önce
Sunucular 4 ay önce
Sunucular 4 ay önce
Ultima Online 4 ay önce
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
2024-04-09 16:53
2024-04-06 18:20
2024-04-06 17:43