UO-Dev Arama

 



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

Nefralius


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 109
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 28
Mesaj #75347   07-11-2013 00:43 GMT    
        
Merhaba.
Serveri oluştururken farkettiğim yeni bir hata.Sunucuda bulunan isimden birkaçtane daha açılabiliyor normalde sphere kendisi engelliyordu sanki ama yanlış hatırlıyor olabilirim ve engellemiyor.Bunun üzerine bi sistem yapmak istedim hatta olan sistemleride inceledim.Tamam sistemler eğer oyunda olan isim sadece <name> şeklinde ise mesela isim AHMET sizde AHMET yaparsanız sorguluyor ama AHMET e karşılık AhmET yaparsanız sorgu onay veriyor yani sorun yok diyor ayrıca aile deki bireyin isminide alabiliyorsunuz. Bunu fixleyebilen varsa bi destek çıksın çünki açık olan serverlerdede denedim bu bug var sanırım herkez benle aynı sıkıntıda. DB üzerinden sorgu yapmakta istemiyorum çünki serveri DB ye bağlamayı düşünmüyorum.Bunu tek tek VAR kaydettirerek çözebilrim ama buda ilerde lag yapar bi bilen vardır elbet diyip sizlerden yardım bekliyorum.

Umarım busefer birileri yardım eder


Bu kullanıcı uzaklaştırılmıştır.
Afronola

Yazar

dw4yne


UO-Dev Üyesi
Skill Title: Expert
Online durumu
Toplam Mesaj: 309
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 25
Mesaj #75349   07-11-2013 01:56 GMT    
        
Kod:
[function isimsorgu]
obj=<uid>
forplayers 6144
if (<obj.uid> != <uid>)
if (strmatch('<obj.name>', '<uid.<uid>.name>'))
obj.BURADA YENİ İSİM GİRCEĞİ DİALOG AÇTIR
obj.stone 1
return 1
endif
endif
endfor


açtırdığın dialogda'da isimsorgulatmayı unutma aynısını yazar geçer


No [img] !

Yazar

Nefralius


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 109
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 28
Mesaj #75358   07-11-2013 10:52 GMT    
        
Arkadaşım bu vediğin döngü zaten Noxier'in sitede bulunan scriptinin bi döngüsü.
O sistem zaten tam stabil değil bunu anlatmak istedim.Eğer sorunumu tamamen okuduysan zaten anlamış olman lazım.
Bu sağdece isim AHMET ise AHMET yazılınca sorguluyor ama AhMeT yaparsan sorun yok diyor okeyliyor.Yada aile mesubuysa gene görmüyor.

Ben bir sistem yaptım VAR üzerinden kaydettirdim bütün isimleri fakat sanırım bu ilerleyen zamanlarda lag olmasına sebeb olucak bir sistem.Hani VAR lag yapar konusu geçiyordu bi aralar nekadar doğru nekadar yanlış hatırlamıyorum açıkcası...
Yinede bunun prof. bir çözüm olduğuna inanmıyorum.Bu işin kısa ve basit bir yöntemi olduğuna inanıyorum.Ve yardımlarınızı bekliyorum.

Yaptıgım sistem denemeside bu çalışıyormu derseniz evet çalışıyor login altında ilk giriş sorgusu yaptırmayı ve eğer isim sorunsuzsa VAR kaydettirmeyi unutmayın.Yanlız ben servere kayıtlı olan <var.isim.<name>> leri tablo halinde göstermek istedim beceremedim Hani isim adına kayıtlanmış tüm var'lar tek bi tabloda görünsün ayarlanırsa daha güzel bir olay olabilir.
Kod:
[function f_gostersene]
src.name <strarg <src.name>>
if (<var.isim.<src.name>> == 1)
src.sysmessage @0846,,1 Şuanda <src.name> ismi  Kullanılıyor.
src.f_isimdegistir
src.stone
return 1
endif

[function f_isimdegistir]
sdialog d_ismimhatali
return 1


[dialog d_ismimhatali]
100,410
nomove
//noclose
resizepic 100 0 3600 370 160 // arka plan
resizepic 200 120 9300 140 20 // Yeni isim arka plan
dtextentry 210 120 160 100 1152 1 _______________

dhtmlgump 120 20 200 20 0 0 <def.bfont_white> Merhaba;
dhtmlgump 120 40 330 70 0 0 <def.bfont_gray> Seçmiş olduğunuz <def.bfont_white><src.name> <def.bfont_gray>ismi daha önceden başka bir player tarafından seçilmiş.Bu yüzden isiminizi değiştirmeniz gerekmektedir.

button 350 120 55 56 1 0 1

[dialog d_ismimhatali BUTTON]
onbutton=1
if (<var.isim.<argtxt[1]>> ==1)
src.sysmessage @0846,,1 Bu isim daha önceden seçilmiş.
src.sdialog d_ismimhatali
return 1
endif

if (strmatch('<argtxt[1]>','')
src.sysmessage @025,1,1 Lütfen istediğiniz isim'i belirtiniz.
src.sdialog d_ismimhatali
return 1
endif

for 0 <eval strlen(<argtxt[1]>) -1>
if !strmatch('[a-z]','<strsub <eval <local._for>> 1 <argtxt[1]>>')
src.sysmessage @025,1,1 Hatali isim : "<argtxt[1]>"
src.sdialog d_ismimhatali
return 1
endif
endfor

if ((strlen(<argtxt[1]>) > 12) || ((strlen(<argtxt[1]>) < 4)
src.sdialog d_ismimhatali
src.sysmessage @025,1,1 Enaz 4, en fazla 12 karakter olmalidir.
else
src.name <src.name> <argtxt[1]>
serv.var.isim.<argtxt[1]> = 1
src.sysmessage @0b2,,1 Yeni isminiz <src.name> olarak ayarlandı.
return 1


Son güncelleme: Nefralius tarafından 07-11-2013 11:45 GMT, önce düzenlendi.


Bu kullanıcı uzaklaştırılmıştır.
Afronola

Yazar

dkmcone



Skill Title: Neophyte
Online durumu
Toplam Mesaj:
Oyun Tarzı:
Emulatör:
Tecrübe:
Yaş:
Mesaj #75359   07-11-2013 12:02 GMT    
        
Sphere_serv_triggers scriptindeki

Kod:
[FUNCTION f_onchar_create]


functionu altına;

Kod:
src.isimkontrol


Bunu ekle bunun functionuda;

Kod:
[function isimkontrol]
for 1 16
if  (strmatch('<strsub <dlocal._for> 1 <src.name>>','''))
local.ismim <strsub 0 <dlocal._for> <src.name>>
src.f_isimkontrol <local.ismim>
return 1
endif
endfor
src.f_isimkontrol <src.name>

[function f_isimkontrol]
src.say <args>
local.ilkharf <strsub 0 1 <args>>
local.gerisi <strsub 1 15 <args>>
local.1 <strtoupper <local.ilkharf>>
local.2 <strtolower <local.gerisi>>
src.name <strarg <local.1><local.2>>
timerf 1,src.sysmessage @07a1,,1 Isminiz düzenlenmistir.


Bu sorguyla oyunda açılan AHmEt gibi karakter isimleri Ahmet olarak düzenleniyor. login için düzenlediğin function altında isim sorgusu yaparsan aynı isim olayını tamamen kapatmış olursun birisi AhMeT diğeri AHMET bir ötekisi daha farklı harflerle aynı ismi kullanamaz. Yalnız dikkat et f_onchar_create de verdiğin sorguyla loginde verdiğin sorgu farklı işlev gösterir. O yüzden f_onchar_create de ismi düzenleyip loginde aynılığı sorgulatmak kesin çözüme ulaştırır seni. Birde ufak bir öngörüm olucak isim değiştirteceğin scriptle ilgili on=@login triggeri altında koyacağın için aynı isimle login olan 2. player a dialog gösterir göstermez ismini hatalı isim yada kullanılan isim gibi birşey olarak değiştir ki ilk ismi kullanan kişi bu adamdan sonra girerse isim hakkını kaybetmesin. Kolay gelsin.



Yazar

Nefralius


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 109
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 28
Mesaj #75361   07-11-2013 12:40 GMT    
        
Yardımın için teşekkür ederim fakat isimleri player nasıl isterse öyle yazsın istediğim için isim düzenleme olayını eklemedim.Daha önceden açılmış karaktere hata vermesini halletim ufak bi döngüyle o sorun gideriliyor.
Ayrıca zaten kullanılan isim kontrol sistemindeki tek sorun küçük büyük ayrımı yapmaması degil mesela AHMET aileye girip AHMET YILDIRIM olduysa ismi onuda kabul ediyor tekrardan AHMET isminin alınmasına izin veriyor :S benim yaptıgım VAR kaydettirme işinde bu olmuyor ama sanırım lag yaptırır bu sistem :S


Bu kullanıcı uzaklaştırılmıştır.
Afronola

Yazar

dkmcone



Skill Title: Neophyte
Online durumu
Toplam Mesaj:
Oyun Tarzı:
Emulatör:
Tecrübe:
Yaş:
Mesaj #75364   07-11-2013 12:47 GMT    
        
Var muhabbeti şöyle belirlenen var bütün scriptler tarafından okunabilir olduğu için var lı kullandığın başka bir sistem gecikme yaşatabilir yani var ın kastırma mantığı var sayısı ne kadar şişerse var lı döngüye girildiğinde server yavaşlar.



Yazar

Nefralius


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 109
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 28
Mesaj #75365   07-11-2013 12:56 GMT    
        
Yani VAR ile yaptıracagım işlem düşündüğüm gibi sakat olucak ama bu işin bi çözümü olmalı.
Normalde client kendisi This name already use gibi bir hata verip aynı isimden açılmasını engelliyordu bu neden şuanda yok anlamış değilim.Bu konu hakkında bi trigger varmı diye araştırıyorum bulamıyorum.Aslında çok büyük bi hata değil normal yaşantıda bile isim benzerligi var oyunda neden olmasın der geçilirde bikere kafaya taktık

Tekrar söylüyorum bu işin basit bir yöntemi olduğuna inanıyorum ve bekliyorum.Çünki şuanda açık olan birkaç sunucudada bu sorun var.Bunu halletmemiz hem benim hem şuanda bu sorunu yaşayıp çözemeyen hemde ileride server acıcaklar icin iyi olacak.Çünki gemiş zamanda çözülememiş denemeler yapılmış ama hatalar ortada

Yine kendi kendime sorunu çözdüm arkadaşkar.Scripti %100 bitirdigimde burda paylaşacagım ve inanıyorumki asla kasma veya aileye girince bug gibi şeyler yapmayacak !

Yine Bayram arkadaşım (g-defender) askere gider ayak yaptı yapacagını ve gözden kaçırdıgım beni 2 saat sinir komasına sokan fazladan ekledigim bir adet return 1 i gösterdi ve sistem sorunsuz hale geldi.Teşekkürler bayram hayırlı teskereler.
Evet arkadaşlar birkaç deneme yaptım bug göremedim.Ha benim denemedigim bi yöntemden bug çıkar ise bunuda fixleriz veya yardım isteyene yardım ederiz.
Öncelikle sphere_skills.scp altına bir kontrol tag'ı vermemiz lazım ve ismi düzenletmek lazım.
Kod:
if !(<src.tag0.isimkontroledildi> == 1)
src.f_isimduzenle
src.f_isimvarmi
endif


Ondan sonra bu scripti ekleyin.Sıkıntı kalmayacaktır.Dialog'u istediğiniz gibi düzenleyebilirsiniz.Kullanımı serbesttir ki zaten sorun yaşayan arkadaşlar kullansın diye paylaşıyorum.
Kod:
[function f_isimduzenle]
name <strarg <name>>
update


[function f_isimvarmi]
obj=<uid>
forplayers 6144
if !(<obj.uid> = <uid>)
if (strmatch('<obj.name>', '<uid.<uid>.tag0.isim>'))
obj.f_isimvardegistir
obj.stone 1
obj.sysmessage Bu isim var.
else
obj.tag0.isim = <obj.name>
obj.tag0.isimkontroledildi 1
endif
endif
endfor

[function f_isimvardegistir]
timerf 1,src.tag0.isimkontroledildi 0
src.dialog d_isimdegis
return 1

[dialog d_isimdegis]
100,410
nomove
//noclose
resizepic 100 0 3600 370 160 // arka plan
resizepic 200 120 9300 140 20 // Yeni isim arka plan
dtextentry 210 120 160 100 1152 1 _______________

dhtmlgump 120 20 200 20 0 0 <def.bfont_white> Merhaba;
dhtmlgump 120 40 330 70 0 0 <def.bfont_gray> Seçmiş olduğunuz <def.bfont_white><src.name> <def.bfont_gray>ismi daha önceden başka bir player tarafından seçilmiş.Bu yüzden isiminizi değiştirmeniz gerekmektedir.

button 350 120 55 56 1 0 1

[dialog d_isimdegis button]
on=0
src.sysmessage @0846,,1 İsminizi değiştirmeniz gereklidir.
src.dialog d_isimdegis
return 1

on=1
if (strmatch('<argtxt[1]>',''))
src.sdialog d_isimdegis
src.sysmessage @0846,,1 Lütfen bir isim giriniz.
return 1
endif

for 0 <eval strlen(<argtxt[1]>) -1>
if !strmatch('[a-z]','<strsub <eval <local._for>> 1 <argtxt[1]>>')
src.sysmessage @0846,,1 Hatalı kullanım.
src.sdialog d_isimdegis
return 1
endif
endfor


if ((strlen(<argtxt[1]>) > 12) || (strlen(<argtxt[1]>) < 4))
src.dialog d_isimdegis
src.sysmessage @0846,,1 İsminiz en az 4, en fazla 12 karakter olmalıdır.
return 1
endif

obj=<uid>
forplayers 6144
if !(<obj.uid> = <uid>)
if (strmatch('<argtxt[1]>', '<uid.<uid>.tag0.isim>'))
src.dialog d_isimdegis
src.sysmessage @0846,,1 Bu isimden sunucuda bulunmaktadir.
return 1
endif
endif
endfor

src.name <argtxt[1]>
src.tag0.isim <src.name>
src.tag0.isimkontroledildi 1
src.sysmessage @033,,1 İsminiz <src.tag0.isim> olarak değiştirilmiştir.
src.stone 0


NOT: BU sistemi eklemeden önce çar var ise bunlara tektek src.tag0.isim <name> şeklinde tag verdirmelisiniz.Yanlız bunu oyun içerisinden yapamazsınız.Yine login altında ufak bi döngü ile bu tag'ı verdirebilirsiniz.Hadi kolay gelsin. Script çalıyor ağlıyor diyenler şimdi nerdeler


Son güncelleme: Nefralius tarafından 07-11-2013 16:51 GMT, önce düzenlendi.


Bu kullanıcı uzaklaştırılmıştır.
Afronola

Yazar

dkmcone



Skill Title: Neophyte
Online durumu
Toplam Mesaj:
Oyun Tarzı:
Emulatör:
Tecrübe:
Yaş:
Mesaj #75368   07-11-2013 16:43 GMT    
        
Ellerine sağlık



Yazar

Nefralius


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 109
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 28
Mesaj #75371   07-11-2013 16:53 GMT    
        
Mesela sitede bulunan diğer isim kontrol sistemlerinde oyundan cıkıp girince hop isim normal gibi devam ediyordu.Onuda fixledik ve ismi düzeltene kadar her girişte stone olur ve dialog karşınızda olur

Sağol dkmcone sende destek olmaya calıstın.En azından yardım etmeye calıstın konuyu öldürmek yerine


Bu kullanıcı uzaklaştırılmıştır.
Afronola

Yazar

manyaqq


UO-Dev Üyesi
Skill Title: Expert
Online durumu
Toplam Mesaj: 265
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 31
Mesaj #75772   19-11-2013 12:47 GMT    
        
Bu script bana lazım ama kafam karıştı
Kod:
[function f_isimduzenle]
name <strarg <name>>
update


[function f_isimvarmi]
obj=<uid>
forplayers 6144
if !(<obj.uid> = <uid>)
if (strmatch('<obj.name>', '<uid.<uid>.tag0.isim>'))
obj.f_isimvardegistir
obj.stone 1
obj.sysmessage Bu isim var.
else
obj.tag0.isim = <obj.name>
obj.tag0.isimkontroledildi 1
endif
endif
endfor

[function f_isimvardegistir]
timerf 1,src.tag0.isimkontroledildi 0
src.dialog d_isimdegis
return 1

[dialog d_isimdegis]
100,410
nomove
//noclose
resizepic 100 0 3600 370 160 // arka plan
resizepic 200 120 9300 140 20 // Yeni isim arka plan
dtextentry 210 120 160 100 1152 1 _______________

dhtmlgump 120 20 200 20 0 0 <def.bfont_white> Merhaba;
dhtmlgump 120 40 330 70 0 0 <def.bfont_gray> Seçmiş olduğunuz <def.bfont_white><src.name> <def.bfont_gray>ismi daha önceden başka bir player tarafından seçilmiş.Bu yüzden isiminizi değiştirmeniz gerekmektedir.

button 350 120 55 56 1 0 1

[dialog d_isimdegis button]
on=0
src.sysmessage @0846,,1 İsminizi değiştirmeniz gereklidir.
src.dialog d_isimdegis
return 1

on=1
if (strmatch('<argtxt[1]>',''))
src.sdialog d_isimdegis
src.sysmessage @0846,,1 Lütfen bir isim giriniz.
return 1
endif

for 0 <eval strlen(<argtxt[1]>) -1>
if !strmatch('[a-z]','<strsub <eval <local._for>> 1 <argtxt[1]>>')
src.sysmessage @0846,,1 Hatalı kullanım.
src.sdialog d_isimdegis
return 1
endif
endfor


if ((strlen(<argtxt[1]>) > 12) || (strlen(<argtxt[1]>) < 4))
src.dialog d_isimdegis
src.sysmessage @0846,,1 İsminiz en az 4, en fazla 12 karakter olmalıdır.
return 1
endif

obj=<uid>
forplayers 6144
if !(<obj.uid> = <uid>)
if (strmatch('<argtxt[1]>', '<uid.<uid>.tag0.isim>'))
src.dialog d_isimdegis
src.sysmessage @0846,,1 Bu isimden sunucuda bulunmaktadir.
return 1
endif
endif
endfor

src.name <argtxt[1]>
src.tag0.isim <src.name>
src.tag0.isimkontroledildi 1
src.sysmessage @033,,1 İsminiz <src.tag0.isim> olarak değiştirilmiştir.
src.stone 0

Bu script'i sphere_serv_triggers'daki
Kod:
[PLEVEL 7]
f_onaccount_create
f_onchar_create

funtion'ları altınamı ekleyeceğim?



Yazar

dkmcone



Skill Title: Neophyte
Online durumu
Toplam Mesaj:
Oyun Tarzı:
Emulatör:
Tecrübe:
Yaş:
Mesaj #75773   19-11-2013 13:08 GMT    
        
Kod:
if !(<src.tag0.isimkontroledildi> == 1)
src.f_isimduzenle
src.f_isimvarmi
endif


Bu kodu playerların login functionu altına ekleyeceksin diğer tanımlamalarıda herhangi bir .scp dosyası içine atsanda olur. f_onchar_create de sorgulatma yaptırıyorsun ama dialog yollatamıyorsun diye biliyorum. O yüzden login functionu en temizi sphere_skills.scp içinde on=@login olmalı oraya ekleyebilirisin playerların login kısmına.



Yazar

RasmuS


UO-Dev Üyesi
Skill Title: Adept
Online durumu
Toplam Mesaj: 725
Oyun Tarzı: Pp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 33
Mesaj #91125   22-03-2017 01:30 GMT    
        
forplayers 6144

bu döngü oyunda karakter sayısı fazla ise kasma yaratabilir kısa süreli de olsa. Çok sağlıklı bir sorgu olmaz. Bunun yerine MySQL kullanmaya başlamakta fayda var.


Sunucu Projesi : www.ros.gen.tr

Yazar

MirroR


UO-Dev Üyesi
Skill Title: Adept
Online durumu
Toplam Mesaj: 598
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 27
Mesaj #91138   23-03-2017 02:44 GMT    
        
strmatch içerisinde '' yerine ** kullanın.
http://wiki.spherecommunity.....itle=Chapter_10#STRMATCH


Hayat dediğin bir çift bacak gidebildiğin yol kadardır.

Sayfalar: 1



Benzer Konular

KonularMesajlarSon gönderenTarih
Artılı Silahların Renkleri ve İsim renkleri5M.CANILIK02-04-2019
Binek isim degişmemesi6paris1601-09-2018
Artılı isim sorunu5New12-02-2018
Binege binince playerin üstünden isim yazması7MirroR19-12-2016
isim7basic14-12-2013


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