Hesabına erişemeyen eski üyeler Discord üzerinden yardım alabilir.
merhaba arkadaşlar aynı isimden olan oyuncuları nasıl engelleyebilirim
mesela ismi; murat diyelim sadece 1 adet murat ismi olsun istiyorum oyuna girerken uyarı alması gerekiyor
denemediğim yöntem kalmadı 3 sene ara vermiştim teşekkür ederim şimdiden
Hangi yöntemleri denedin ?
Güzel bi isim düzenleme sistemi eklemen lazım login altına da functionunu verdin mi giriş çıkıştı kontrolünü sağlarsın
f_on_charcreate altında f_isimvarmi diye functionişleticeksin sonra altında gerekli sorguları yapacaksın.

Örneğin;
[function f_isimvarmi]
forplayers 6500
if (strmatch('<name>','<src.name>')
xxxxx
xxx
...
endif
endfor

Eğer halledemiyorsanız daha detaylı bilgi için benimle veya ultimadestek firması ile iletişime geçebilirsiniz...

Bu konu Mrs.xaRiyla tarafından düzenlendi(2015-03-29 18:35, 9 yıl önce)
sdfdsf la bi isim var mı diye tek tek tüm karakterlerin ismine mi bakılır?

hayır bir de bu insanlar server açıyor, yetmediği gibi profesyonel hizmet sunarız demiş. neyi sunuyorsun allah aşkına ortalama iq sahibi bir insana bir hafta scripting öğretsen şu yukardakinden 10 kat efektif bi çözümle gelir ahahaha.
biraz daha çözümü garanti olan sistem kurmak gerek bunlar için teşekkür ederim ama basit bu çözüm kalıcı ve sağlam değil

[function isimduzenle]
local.ilkharf=<strsub 0 1 <name>>
local.gerisi=<strsub 1 15 <name>>
local.1=<strtoupper(<local.ilkharf>)>
local.2=<strtolower(<local.gerisi>)>
name <local.1><local.2>
name <strarg <name>>
update

[function isimsorgu]
obj=<uid>
forplayers 6144
if (<obj.uid> != <uid>)
if (strmatch('<obj.name>', '<uid.<uid>.name>'))
obj.f_isimdegis  //////// dialog
obj.stone 1
return 1
endif
endif
endfor

yazacağın dialog onbutton tamam bölümü


on=1
if (strmatch('<argtxt[1]>',''))
src.sysmessage @025,1,1 Lutfen 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 @025,1,1 Hatalı kullanım.
src.sdialog d_isimdegis
return 1
endif
endfor

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

if ((strlen(<argtxt[1]>) > 12) || (strlen(<argtxt[1]>) < 4))
src.dialog d_isimdegis
src.sysmessage @025,1,1 Isminiz az 4, en fazla 12 karakter olmalidir.
return 1
endif

src.name <argtxt[1]>
src.tag.isim 1
src.isimduzenle
src.sysmessage @040,1,1 Isminiz <argtxt[1]> olarak değiştirilmiştir.
src.stone 0

charcreate bölümü altına isimsorgu yazdır olay bitsin
Kullanılan tüm isim kontrol sistemleri yukarıda bahsettiğim şekilde kullanılmaktadır.Tüm karakter isimlerini writefile ile bir dosyaya kaydedip herseferinde dosyadan okutmak veya sql baglantısı kurmak daha mantıklı bir iş olamaz kesinlikle.

@isvicrelizengin
Sırf burda beni karalamak ve laf karıştırmak için üye olmuşsun buda benim ayrıcalığım sanırım.
Bahsettiğin efektif sistemi arkadaş'a söyleseydin bari oda yararlansaydı.

@Monster
Bazı şeyleri fixlemek göründüğünden daha kolaydır.A yolundan B yoluna gitmek kısa iken birkaç durağa uğramak istiyorum dersen gereksiz sorgularla uzatılmış sistemlerde kullanabilirsin tabiki ancak bahsettiğim sorgu en kesin ve en garantisidir. Ve yine gördüğün gibi Dwayne arkadaşımız seninle gerekli tüm kodları paylaşmış.
Kusura bakma fazla efektif bi sistem değil ama kalıcı ve garanti bi çözümdür bu.Efektif sistemide artık @balıkesirlifakir'den alırsın :)
Novice
12.5
f_oncreate functionu altına

if !(<var.<src.name>>)
var.<src.name> 1
else
src.isimhatali
endif

isimhatali functionu yeni isim belirlemesi için kendin yapabilirsin.

Kod yazan arkadaşlara önerim; basit düşünebildikçe özgün olabilirsiniz.

var kullanımı yerine aynı mantık ile list kullanabilirsiniz ve daha detaylı çalışmalar yapabilirsiniz. Üzerinden daha fazla işlem yapabilirsiniz.

Bu konu Mortal tarafından düzenlendi(2015-03-30 14:04, 9 yıl önce)

Üye Ol veya Giriş Yap

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