UO-Dev Arama


Timer, Timerd, Timerf Kullanımı hakkında scripting dersleri

Yazar: Michaell
Tarih: 29-07-2009 21:42


Paylaş : Paylaş

Spherede en önemli konulardan biriside timer olayıdır…Timeri 55r versiyonunda sadece item altında kullanabildik.Fakat 56b de bir functionda bile timer kullanabiliyoruz…

55r de sadece timer terimi varken 56b de ile timerd ve timerf gibi eklemeler yapılmıştır…

İşin kökü olan timer den başlayalım…

Timer adı üstünde zaman demektir.

Timer terimini itemler üzerinde kullanabiliriz.

Bir iteme timer veririz bu timer dolduğunda on=@timer triggeri altından işlem yaptırırız.

Örnek verelim;

Kod:
[itemdef i_deneme_icin]
id=i_memory
name=asdasdasd
type=t_eq_script
weight 0

on=@create
attr attr_decay|attr_newbie

on=@equip
timer 1

on=@timer
topobj.say saniye doldu
return 1


Yukarıdaki örnekte on=@equip triggeri altında timerini 1 yaptık 1 saniye sonra on=@timer altındaki işlemi uygulayacak.

Saniyemiz dolunca üstümüzde saniye doldu yazacaktır.İşlemi sürekli tekrar ettirmek için eşyaya yeniden timer vermeliyiz.

Kod:
on=@timer
topobj.say saniye doldu
timer 1
return 1


Şeklinde yaparsak her 1 saniyede saniye doldu diyecektir.

Bir not geçmek istiyorum çünkü birçok kişi bu hatayı yapıyor.

On=@timer altında src kullanamazsınız.çünkü bu bir item ve sizden bağımsız olarak çalışıyor.Src yi olgunun çalışmasını sağlayan kişi olarak düşünün.Buradaki timer tamamen kişiden bağımsız olarak çalıştığı için src kullanamayız.Konsolda hata verecektir.

E diyeceksiniz ki ben bu itemin sahibine nasıl işlem yaptırırım.Bu İtem eğer playerin üstünde ise src yerine cont yada topobj kullanacaksınız.Cont ve topobj nin anlamı bulunduğu yerdir.Cont.say asasd yaparsanız bu itemin bulunduğu çantanın sahibi nin üstünde asasd yazacaktır.Ne güzel anlattım demi :P


Birkaç şey daha söylemek istiyorum.Bir itemin timerini direk başlangıçta verdirebiliriz yani illaki equip ettireceğiz diye bir şey yok. On=@create altından verdiğiniz timer, item yaratıldığı andan itibaren saymaya başlar..Veya itemi verirken de bir timer belirleyebiliriz.

Kod:
serv.newitem i_deneme_icin
new.timer 10


gibi.

Timeri anladıysak timerd e geçebiliriz..

Timerd 56b sürümü ile birlikte gelen bir yeniliktir…1 saniye veya altında timer vermemizi sağlar…yani zaman anlayışı tamamıyla farklıdır…Timerin 10 da 1 i olarak düşünebilirsiniz…

Timerdi en güzel örnek olarak stafflarımızın kullandığı o janjanlı efectlerden anlayabiliriz…

Bir itemli bir efect scpsi yazalım..


Kod:
[function deneme_effect]
serv.newitem i_fx_field_fire
new.p <src.p>
new.attr attr_decay
new.timerd 1
return 1


Yukarıdaki functionu kullandığımızda hemen altımıza i_fx_field_fire itemi çıkacak ama çıktığı gibi kaybolacak.Çünkü timeri 1 saniyeden bile az.Bunu deneyerek görmeniz daha sağlıklı olacaktır.Bu functionu kurun ve ilk olarak new.timer 1 verin bakın sonra new.timerd 1 verin öyle bakın farkı anlayacaksınız..(Bu sistem sadece 56b surumu içindir)

İtemin attrsini attr_decay yapma sebebimiz timer dolduktan sonra kendisini silmesidir.Bir itemin on=@timer triggeri yoksa ve attrsi attr_decay ise o item timeri 0 olunca kendisini siler.


Evet geldik son terimimiz olan timerf e buda 56b ile gelen muhteşem bir yeniliktir…Normal timeri 55r de sadece item ile kullanabilirken ve bu işlem 10 20 satıra çıkarken şimdi tek satırda yapabilmek büyük bir kolaylık.Fazla konuşmadan hemen olaya geçeyim..

Bir komutumuz olsun bu komutu kullandıktan 5 saniye sonra üstümüzde okedir yazsın.

Kod:
[function denedegor]
timerf 5,say okedir


timerf den sonra kaç saniye sonra bu işlemi yapması gerektiğini bildiriyoruz , koyup yapması gereken işlemi belirliyoruz.Her türlü şeyi yapabilirsiniz timerf 5,go britain vs vs vs.

Timerf altında src kullanmanızda sakınca yok.Çünkü ortada bir item yok…


Bir karakter üzerinde birden fazla timerf çalışabileceğini belirtelim. Örn;

[function f_timer_dene]
timerf 10,say 10 bitti
timerf 5,say 5 bitti
timerf 20,say 20 bitti

Geniş kapsamlı bir sistemde örneğin jail sisteminde
jaile giren playera timerf verilirse;

timerf 222,f_forgive // gibi,

cezası bitmeden dışarıdan başka bir komut ile affet diyip adamı jailden çıkardığınızda hala timerf saymaya devam eder.

Timerf i sıfırlamak için ise, affedilen oyuncu için timerf -1 kullanılır. Bu işlem karakter üzerindeki tüm timerf leri sıfırlar.



Evet terimlerimiz bu kadardı…Umarım açıklayıcı olmuştur…Anlamadığınız yada anlatamadığım noktalarda bana pm atabilirsiniz  İyi Günler, iyi çalışmalar…



Yorumlar

1.   Gönderen Hermes   03-01-2010 16:42    

timerf -1 kullandiğimizda şöyle bir hata aliyordum

Kod:
TimerF function invalid parameter '-1'.
-1 yerine timerf clear kullanada bilirsiniz.

Oylamalar

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

Benzer Sayfalar

SayfalarYorumlarGönderenTarih
Tilepic Kullanımı0Mrs.xariyla23-02-2012
Tag - Var Kullanımı0tyr1027-04-2011
Ultima Online Skill Kullanımı0TheRaskol22-09-2009
Sendpacket Kullanımı0TheRaskol09-08-2009
Argv ve Argn Kullanımı0TheRaskol09-08-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ı,