jusT
03ofkosucusu
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;
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.
Ş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
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.
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..
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.
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;
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…
İyi Günler, iyi çalışmalar…
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
[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
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

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
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
[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
[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;
Kod:
[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,
[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…
İyi Günler, iyi çalışmalar…