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.

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.Birde karakter silince VAR sildirmeyide unutmayın :) bunun kesin daha basit ve kesin çözümü var ve bi bilen olduguna inanıyorum :D
[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


Bu konu Mrs.xaRiyla tarafından düzenlendi(2013-11-07 15:05, 10 yıl önce)

if strmatch(AHMET,AhmET)
  say Bu isim var.
endif

Çalışıyor :/
Bir şey soracam
Ben bu scriptsi " sphere_serv_triggers.scp " altında şuraya ekledim

[FUNCTION f_onchar_create]
src.f_gostersene
// This function is called before client is going to delete a character.
// SRC  --> char being deleted
// ARGO --> the client deleting the character
// RETURN
//	  0 --> normal action (delete char)
//	  1 --> denyes deletion
Acaba owner charla aynı isimde birini açtığım içinmi olmuyor? Yoksa hatammı var?
Yani plevel 1 olan bir accdemi denemeliyim?
Yok bu kod herkes için geçerli. Fakat referansları yanlış kullanıyo olabilirsin.
[FUNCTION f_onchar_create] üstündekiler bu kodun açıklaması.


// This function is called after client have created a new char.
// SRC   --> char being created
// ARGN1 --> flags
// ARGN2 --> profession chosen
// ARGN3 --> race (1=human, 2=elf, 3=gargoyle)
// ARGS  --> account name
// ARGO  --> the client creating the character
[FUNCTION f_onchar_create]
Dostum ben scriptsi sana şöle atayım ve dediğin satır aynısı!
Vallahi yaklaşık 40 denemeden sonuç alamadım. Son çare timerf oldu. Ne kadar stabil olur emin değilim.


[FUNCTION f_onchar_create]
src.timerf 1, f_gostersene

Olarak değiştir.
Yaptım fakat konsoldaki hata bu
19:54:ERROR:(sphere_serv_triggers.scp,108)Undefined symbol ''
108.Satırda ise yazan bu
if (<var.isim.<src.name>> == 1)
Konsol sana hatayı; koşul gerçekleşmediği için veriyor. Yani senin istediğin sorgu yapılıyor ve o isimde biri bulunamıyor.


if (<var0.isim.<src.name>> == 1)

Olarak değiştir.
Konsol hata vermiyo fakat ismim " Yuri " Birdaha " Yuri " Adlı char açınca bir işlev gerçekleşmiyor.
Not:Bu plevel 7 accsi ile yapıyorum,Yani farklı acclerde denemiyorum.
Sorun ilk başta işlemin tetiklenmemesiydi. İşlemi tetiklettirdik, script i yazmak sana düşüyor :/
Sağol
sphere_serv_tiggers.scp'den başka scripts oluşturmamama gerek varmı ?
Sadece tiggers altında funtion scripts yazsam yeterlimi ?
sphere_skills.scp'ye ek olarak scripts eklemelimiyim ?
Novice
12.5
@login triggeri üzerinden çalış.
Bu bir örnek
on @login
if (<account.plevel> > 1)
serv.allclients sysmessage @058,,1 <src.name> isimli staff online olmuştur.
serv.allclients sysmessage @0481,,1 iyi oyunlar dileriz..
src.message @058,,1 Hoşgeldin <src.name>
src.go 5140,1761
elseif (<account.plevel> < 1)
serv.allclients sysmessage @033,,1 <src.name> isimli player online olmuştur.
serv.allclients sysmessage @0481,,1 iyi oyunlar dileriz..
src.message @058,,1 Hoşgeldin <src.name>
endif
Eğer loginde sorgularsak her defasında girişleri kontrol edeceği için player soy isimlerini dahi hatalı isim görür!
Ondan on @login'de sanmıyorum..
Bu sphere_serv_tiggers.scp'nin bir kısmı

Burada konsolda hata göstermiyor fakat [FUNCTION f_onchar_create] src.timerf 1, f_gostersene dialoguna geçiş yapmıyor.
Ve bu işlemde yeni char açılırken kontrol edilmesi lazım.
way be konu baya uzamış gitmiş ben b sorunumu hallettim arkadaşlar uzun süre kimseden ses çıkmayınca ayarladıydım ben onu :D
Cin olmadan adam carpmaya ugrasma
Login altindan devam et. Tag sorgulatrsin tag yoksa işlemlere baslarsn. Islemler bitince tag verirsun bi dahaki login de islem yapmaz. Charcreate altindan da olur. Trysrc ile calis veya eski usul item unequip altindan

Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.