UO-Dev Arama

 



İçerde : 1 misafir, 0 üye : --- Sayfalar: 1
Yazar

Mesh


UO-Dev Üyesi
Skill Title: Expert
Online durumu
Toplam Mesaj: 403
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 25
Mesaj #45075   04-06-2011 08:29 GMT    
        
Merhaba arkadaşlar,
Ben bir sistem üzerinde çalışıyorum şöyle bir sorunum var. Playerlarımda birden çok tag var , ben sadece tekclick tagını silmek istiyorum nasıl yapacağım ?
Kod:
if (<src.tag.tekclick> == 1)
src.tag.tekclick 0

Gibimi??


Yazar

Dryas


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 121
Oyun Tarzı: Rp
Emulatör: 0.57
Tecrübe: Scripter
Yaş: 31
Mesaj #45078   04-06-2011 08:35 GMT    
        
Öncelikle tag sorgulamayı şu şekilde yaparsan daha sağlıklı olur :
Kod:
if (<src.tag0.tekclick> == 1)


sildirmek içinde şöyle yapabilirsin :

Kod:
if (<src.tag0.tekclick> == 1)
src.tag0.tekclick 0


Gösterdiğin şekildede olur ancak bir süre sonra konsolda error alırsın.



Yazar

babuli


UO-Dev Üyesi
Skill Title: Apprentice
Online durumu
Toplam Mesaj: 54
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 29
Mesaj #45080   04-06-2011 08:50 GMT    
        
eval'i unutmayalım eval konmazsa hex olarak algılar


Yaratılmış olanı yıkanlar, genellikle, yaratılanların gerçekten zevkine varma ya da bunları yaratma fırsatını bulamamış, kendilerine bu fırsat verilmemiş kişilerdir...

Yazar

Mesh


UO-Dev Üyesi
Skill Title: Expert
Online durumu
Toplam Mesaj: 403
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 25
Mesaj #45081   04-06-2011 09:16 GMT    
        
eval'ı nereye koyacağız


Yazar

Dryas


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 121
Oyun Tarzı: Rp
Emulatör: 0.57
Tecrübe: Scripter
Yaş: 31
Mesaj #45083   04-06-2011 09:29 GMT    
        
Kod:
if (<eval<src.tag0.tekclick>> == 1)


Bu şekilde..



Yazar

Mesh


UO-Dev Üyesi
Skill Title: Expert
Online durumu
Toplam Mesaj: 403
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 25
Mesaj #45086   04-06-2011 10:22 GMT    
        
Teşekkürler


Yazar

Buxiun


Yörünge Dışı Yetkili
Skill Title: Adept
Online durumu
Toplam Mesaj: 569
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 27
Mesaj #46707   25-06-2011 06:15 GMT    
        
ancak belirtmekte yarar var ;

tekclick tagını, herhangi bir işlemden sonra src.tag.tekclick şeklinde veriyorsan sorgulatmada ;

bknz:1
Kod:
if (<src.tag.tekclick>) // üzerinde bu tagın olduğunu belirtiyoruz sadece
src.sysmessage Bende tekclick tagı var.
else
src.sysmessage Tekclick tagı almamışım hiç.
return 1
endif


eğer tekclick tagını puanlama tarzında kullanırsan ve herhangi bir işlemden sonra src.tag.tekclick +=1 gibi bir + eklemesi yapıyorsan ancak sorgulatmada ;

bknz:2
Kod:
if (<eval <src.tag0.tekclick> > 1) // burada üzerinde olan tekclick tagının kaç değerinde olduğunu sorgulatıyoruz sadece
src.sysmessage Benim tekclick değerim 1'den fazla.
else
src.sysmessage Bunu yapmak için tekclick yetersiz.
return 1
endif


şeklinde kullanabilirsin. yani ;

bir işlemden sonra src.tag.tekclick şeklinde tagı verdirtip sonrasında bknz2'deki gibi sorgulatırsan, olumsuz yanıt alırsın. Çünkü bknz1'deki sorguda (<src.tag.tekclick> = 1) gibi bir komuttaki = 1 tagın üzerinde olduğunu değil, tag değerinin 1'e eşit olduğunu gösterir.


Player olarak dönüş ^^

Yazar

mahsuni


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 144
Oyun Tarzı: Rp
Emulatör:
Tecrübe: Scripter
Yaş: 27
Mesaj #95305   06-04-2018 09:58 GMT    
        
Konu baya Eksi Bir konu ama Evet Arkdaslar Bu sekillde Tag Sıfırlaniyor ama hala uzerinde tak kaliyor bu tag'ı Silmenin Bir Formulu varmi baya arastirdim ama .cleartags diyince butun taglari siliyo mesella Adamın uzerindeki tagi sıfırlamak yerine
tek olarak silmenin Bir formulu varmı ???


Warsa Atarin Cezani Yatarim . .

Yazar

Slothere


UO-Dev Üyesi
Skill Title: Expert
Online durumu
Toplam Mesaj: 270
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 26
Mesaj #95306   06-04-2018 10:02 GMT    
        
@mahsuni

cleartags, cleactags'ın çalışma prensibi şöyle.

Diyelim karakterde şöyle bir tag serisi mevcut.

tag.deneme_bir 123
tag.deneme_iki 342
tag.deneme_uc 323

"cleartags deneme" dediginde adının önünde "deneme" gecen taglerin tümü sıfırlanır. Yani null değer atanır. Siz bir tag'e 0 değerini atarsanız o tag hala daha o değeri taşımaya devam eder. Ama bir tag'i silmek isterseniz boş değer girişi yapmalısınız.

Yani;

tag.deneme_bir 0

ile

tag.deneme_bir

aynı işlevi görmez. Birisi 0 değeri atarken diğer o tag'e null değer atar ve bu sebeple o tag otomatik olarak kaldırılır.

Ctag ile tag arasında teknik bir fark yok. Ctag client oturumu temelli olduğu için logout olduğunuz an silinir. Tag daimi kalır.


 mahsuni
Ücreti mukabilinde, tüm Sphere sürümlerine teknik destek verilir, özgün script yazılır. İletişim ve detaylar için özel mesaj atınız.

> Singularity Server Özellikleri

Yazar

xrambo


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 121
Oyun Tarzı: Pvp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 27
Mesaj #95307   06-04-2018 10:02 GMT    
        
.cleartags xxx şeklinde yapabilirsin.
.cleartags deneme

.xcleartags deneme

Edit : Fazla söze gerek yok yukarıdaki gibi yap.


 mahsuni
Rota Uo

Yazar

xwerswoodx


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1726
Oyun Tarzı: Rp
Emulatör:
Tecrübe: Scripter
Yaş: 9
Mesaj #95308   06-04-2018 10:07 GMT    
        
Kod:
src.tag.tagadı
yazarsan sadece siler tagı.

Ayrıca tag ile tag0 aynı şeyler değildir, ctag, tag, tag0 hepsi farklı tanımlamalardır. "Tag" sorgulamak için tag.tagadı şeklinde sorgulanır, eval kullanılacak ise dtag.tagadı şeklinde sorgulanır, tag0 ise farklı bir tanımdır, tag0.tagadı, dtag0.tagadı şeklinde kullanılır, burada ki başa konulan "d" decimal yani sayısal değerin kısaltmasıdır, yani <dtag0.tagadı> ile <eval <tag0.tagadı>> aynı şeylerdir.

Kısacası bir tag sıfırlanacak ise, eğer tag sayısal değerlerden oluşmuyor ise;
Kod:
if !(<isEmpty <src.tag.tagadı>>) //Tag var ise?
  src.tag.tagadı
endif

Şeklinde sıfırlanır, sonuna "= 0" yada "0" eklemek sadece veriyi "0" olan sayısal değer ile değişir silmez.

Eğer tag bir sayısal değerden oluşuyor ise, üstteki yöntem ile yada "d" yöntemi ile sorgulanabilir.
Kod:
if (<src.dtag.tagadı>) //Tag var mı?
  src.tag.tagadı
endif

Ancak sayısal değerler için tag yerine tag0 kullanıyoruz genellikle, çünkü tag0 sayısal değerler için yapılmış bir tag türüdür. TAG0 da belirtilen tag "default" yani varsayılan olarak "0" değerini alır, ve sadece "0" dan büyük ise tagın varlığı sorgulanır.
Kod:
if (<src.dtag0.tagadı>) //Tag var mı?
  src.tag0.tagadi
endif

Şeklinde sıfırlanır. Ancak "TAG" ile tanımlanan veri cTAG yada TAG0 ile sıfırlanamaz.


 Slothere, mahsuni
Geçmişi olmayanın, geleceği olmaz.

Yazar

mahsuni


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 144
Oyun Tarzı: Rp
Emulatör:
Tecrübe: Scripter
Yaş: 27
Mesaj #95309   06-04-2018 10:13 GMT    
        
Teşekkürler Arkadaşlar

Cleartags xxxx işimi Gordu


Warsa Atarin Cezani Yatarim . .

Yazar

Slothere


UO-Dev Üyesi
Skill Title: Expert
Online durumu
Toplam Mesaj: 270
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 26
Mesaj #95310   06-04-2018 10:36 GMT    
        
@xwerswoodx

Birkaç yanlış noktayı düzeltmek isterim.

Tag, tag0 ve ctag, ctag0 esasında aynı şey.

Tag karakter temelli, ctag client temelli tutuluyor. Ctag karakter oyundan çıktı mı siliniyor. Tag kalıyor.

Oradaki 0'ın sayısal hesap kitapla pek alakası yok. Tag0 ile sayısal olmayan değer girişi de yapılabilir.

Kod:
tag0.deneme "metin icerigi"


gibi bir tanım da yapılabilir. Oradaki 0 esasen kontrol bölümünde önem taşıyor.

Eğer bir tag tanımlı değilse doğrudan

Kod:
if <tag.deneme>
...
endif


yapıldığında tanımlı olmadığı için uyarı alınacaktır. Fakat;

Kod:
if <tag0.deneme>
...
endif


yaptığınızda tag tanımlı değilse oradaki 0 vasıtasıyla 0 değerini içeriyormuş farz edilir ve o hata önlenir.

Kod:
[function tagtest]
tag.test <args>
if <tag.test> == 1
say ok.
endif


bu şekilde kullanırsanız tagtest yazıp boş parametre girerseniz hata alırsınız. Çünkü değer girişi yapmadığınız için tag.test'e null değer atanmaya çalışılır, değişken tanımlanmaz ve sorgu esnasında tag.test değişkeni tanımlı olmadığı için hata alınır. Fakat;

Kod:
[function tagtest]
tag.test <args>
if <tag0.test> == 1
say ok.
endif


yaparsanız boş değer dahi girseniz kontrol esnasında tag0.test'e oradaki 0 vasıtasıyla 0 değeri atanır ve hata önlenir.

Silerken de aynı şekilde. Ekstra bir sorguya ihtiyaç yok. Mesela;

Kod:
tag.deneme


yaptığınızda tag.deneme diye bir değişken tanımlı olmasa dahi null değer girilerek tanımlanmaya çalışılacağı için esasen bu değişken tanımlanamayacak. Eğer tanımlı ise de değişkene null değeri atanacağı için otomatik silinecek. Mantıken aynı şeyler aslında.

Temel algoritmik bir ek bilgi olarak string içeren herhangi bir değişkeni doğrudan sorgulayamazsınız. Aracı strmatch, strcmp, strcmpi gibi bir fonksiyon kullanılmalı. Yani;

Kod:
tag.deneme "slothere"
if <tag.deneme> == "slothere"
...
endif


diye sorgulayamazsınız. Ya da;
Kod:
[function tagtest]
tag.test <args>
if <tag0.test>
say ok.
endif


şeklinde sorgulayamazsınız. "tagtest slothere" girdiğinizi varsayarsak bu sefer arkaplanda sayı temelli bir sorgulama yapılmak istenecek fakat değişken içeriği string'den oluşan bir değere sahip olduğu için bu hesaplanamayacak ve hata alacaksınız. Bu noktada xwerswoodx'in de dediği gibi isempty gibi aracıları kullanmak gerekiyor.

Kod:
[function tagtest]
tag.test <args>
if !<isempty <tag.test>>
say ok.
endif


Kod:
[function tagtest]
tag.test <args>
if !<isempty <tag0.test>>
say ok.
endif


gibi.

Stringler;

Kod:
[function tagtest]
tag.test <args>
if strcmp('slothere','<tag.test>') == 0
say ok.
endif

[function tagtest]
tag.test <args>
if strcmp('slothere','<tag0.test>') == 0
say ok.
endif


şeklinde sorgulanmalı. Sıfıra denkliğin sorgulanma sebebi ise fonksiyonun çalışma prensibi yüzünden. Metin büyükse, küçükse 1 ve -1 gibi değerler, denkse 0 değeri dönüyor bu sebeple eşitlik sorgulanıyor.

Eval ve d mevzuları da aynı işe yarıyor. D eval'in kısaltılmış hali. Decimal değere dönüştürüyor. Bu sebeple değişken değeri string de olsa, boş değer de olsa decimal dönüş yapıldığında en kötü 0 değeri dönüyor.

Kod:
[function tagtest]
tag.test <args>
sysmessage <eval <tag.test>>

[function tagtest]
tag.test <args>
sysmessage <dtag.test>


"tagtest slothere" yapıldığında da 0 değeri alınacak "tagtest " yazıp değer girilmezse de. Çünkü decimal karşılıkları 0'a tekabul ediyor.

Ayrıca sphere'da isset'e denk düşen bir aracı olmadığı için bazen sıkıntılar yaşanabiliyor. Mesela sunucuda 2 online var ise siz bir döngü aracılığıyla <serv.client.x> sorgusu yaparsanız değişken değeri 1'den fazla olduğunda (index 0,1) tanımsız değişken hatası alacaksınız -en azından 56c ve üzerinde-. Bu sebeple mümkün mertebe değişkenleri ön tanımlayıp en azından 0 değeri atamalı ve uygun tipte döndüğünden emin olmak için eval-d, fval, floatval gibi değerler kullanılmalı. Stringlerde de isempty gibi sorgular yapılmalı.


 xwerswoodx
Ücreti mukabilinde, tüm Sphere sürümlerine teknik destek verilir, özgün script yazılır. İletişim ve detaylar için özel mesaj atınız.

> Singularity Server Özellikleri

Yazar

xwerswoodx


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1726
Oyun Tarzı: Rp
Emulatör:
Tecrübe: Scripter
Yaş: 9
Mesaj #95311   06-04-2018 11:27 GMT    
        
Yanlış anlaşılma olmuş sanırım, cTAG, TAG ve TAG0 farklıdır derken, TAG verisini TAG0 kullanarak silmeye çalışanlar olmuş yukarıda o nedenle TAG.tagadı ile TAG0.tagadı nın aynı şey olmadığını söyledim. TAG0 da tabiki string değerler tanımlanabilir, zaten onuda aslında default olarak "0" değeri aldığını belirtmiştim yazarken. 0 sorgulaması da genellikle string de değil de integer yani sayısal değerlerde sorgulandığı için "genellikle" sayısal kayıtlar için tag0 kullanıyoruz demiştim, ama bu bahane ile bayağı geniş bir döküman oluşmuş )


 Slothere
Geçmişi olmayanın, geleceği olmaz.

Yazar

Slothere


UO-Dev Üyesi
Skill Title: Expert
Online durumu
Toplam Mesaj: 270
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 26
Mesaj #95312   06-04-2018 11:32 GMT    
        
@xwerswoodx

Sanırım. Çok büyük bir şey değil esasen. Dediğin gibi kazara döküman oldu.

İlaveten şunu da ekleyeyim

Kod:
[function tagtest]
tag0.test "deneme"
serv.log <tag.test>
tag.test "deneme2"
serv.log <tag0.test> | <tag.test>
tag0.test
serv.log <tag0.test> | <tag.test>

14:30:(sphere_test.scp,4)deneme
14:30:(sphere_test.scp,6)deneme2 | deneme2
14:30:(sphere_test.scp,8)0 |


çıktısı böyle olur. Tag ile tag0 ataması da yapılabilir, aynı şeyler sonuçta. tag0 da tag de aynı tag'e etki eder. Bir şey fark etmez.


 xwerswoodx
Ücreti mukabilinde, tüm Sphere sürümlerine teknik destek verilir, özgün script yazılır. İletişim ve detaylar için özel mesaj atınız.

> Singularity Server Özellikleri

Yazar

azmanomer


UO-Dev Üyesi
Skill Title: Apprentice
Online durumu
Toplam Mesaj: 56
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 28
Mesaj #95324   06-04-2018 23:01 GMT    
        
tog0 la tag zaten aynı şey tag0'ın kullanım amaca sorgu yaparken mesela if <tag.deneme> sorgusunda tag.deneme diye bişey yoksa konsolda hata alırsınız fakat if <tag0.deneme> kullanırsanız tag.deneme olmasa bile konsolda hata almazsınız tag yoksa direk 0 döndürür tag0.deneme ayrıca dtag.deneme = <eval <tag.deneme>> "d" nin manası tag.deneme'yi decimal olarak ver oluyo. aynı şekilde tüm yazıları okumadan bahsedildimi bilmiyorum fakat ctag'lar sadece playerlara verilebilir ve logout olduklarında silinir.

Dip not: Şimdi okudumda hepsinden bahsedilmiş :P



Yazar

xwerswoodx


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1726
Oyun Tarzı: Rp
Emulatör:
Tecrübe: Scripter
Yaş: 9
Mesaj #95330   07-04-2018 21:25 GMT    
        
Evet kontrol ettim bende siliyormuş, gerçi neden bilmiyorum ancak sanki tag ı 0 la sorgularken mi silerken mi hata ile karşılaştığımı hatırlıyorum, öyle kalmış aklımda )


Geçmişi olmayanın, geleceği olmaz.

Sayfalar: 1



Benzer Konular

KonularMesajlarSon gönderenTarih
Sphere kapanma hatası - yardım14xwerswoodx19-10-2018
Staff title yardım3nefrelius15-06-2018
Npc Bow yardım6mahsuni21-06-2018
Zar yardım2azmanomer30-04-2018
Stable sistemi yardım9MirroR27-04-2018


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ı,