S.a aile sisteminde bir sorun var aynı aile kurdugumuzda o aile adından başka playerda kurabiliyor bunu nasıl hallede bilirim.(Suan scp bende bulunmadıgından paylaşmıyorum).
Neophyte
26.6001
Daha önce gördüğümü hatırlıyorum, arama sonuç getirecektir :)
[dialog d_aile button]
on=1
if (<badchar <argtxt[0]>>)
src.sysmessage @38,6,1 Lutfen aile isimlerine sadece harf koyunuz.
return 1
endif
if (<src.findid.i_aile_kolye>) || (<src.findid.i_aile>)
src.sysmessage @38,6,1 Zaten baska bir ailenin ferdisiniz.
return 1
endif
tag.aile=<argtxt[0]>
for 15
if (strmatch('<strsub <eval <local._for>> 1 <tag.aile>>',' '))
src.sysmessage @38,6,1 Aile isimlerinde bosluk olamaz
return 1
endif

if (<isnum <strsub <eval <local._for>> 1 <tag.aile>>>)
src.sysmessage @38,6,1 Aile isimlerinde numaralandirma olmaz.
return 1
endfor
endif


if (<isnum <argtxt[0]>>)
src.sysmessage @38,6,1 Pardon ?
return 1
endif

if (strlen(<argtxt[0]>) > 20)
src.sysmessage @38,6,1 Aile ismi 20 karakterden uzun olamaz.
return 1
endif


serv.newitem i_aile_kolye
//src.tag.eskiname=<src.name>
//tag.soyad=<argtxt[0]>
new.name=<argtxt[0]>
src.tag.name.suffix=" <argtxt[0]>"
new.bounce <src>
new.link <src.uid>
obj=<new.uid>
serv.newitem i_aile
src.new.bounce <src>
src.new.equip
new.cont <src.uid>
src.new.link <obj.uid>
serv.allclients sysmessage @38,6,1 <argtxt[0]> Ailesi kurulmustur. Basarilar dileriz.
remove
on=2
src.dialogclose	d_aile

Bu bölüm yeterli olur sanırım arama yaptım fakat olmadı elimde şöle bir scp var serverda aynı isim olunca degiştiriyor işte scp
[function isimsorgu]
forplayers 6144
  if (<src> != <uid>)
   local.isim = <strarg <name>>
    if (strmatch('<src.name>', '<local.isim>'))
      src.name HataliNick
      src.f_isimdegisabi
      src.stone 1
      return 1
    endif
  endif
endfor

obj=<uid>
forplayers 6144
if (<obj.uid> != <uid>
if (strmatch('<obj.name>', '<argtxt[1]>')
src.sdialog d_isimdegisabi
src.sysmessage @025,1,1 Bu nickden sunucuda bulunmaktadır.
return 1
endif
endif
endfor

if ((strlen(<argtxt[1]>) > 12) || ((strlen(<argtxt[1]>) < 4)
src.sdialog d_isimdegisabi
src.sysmessage @025,1,1 Nickiniz en az 4, en fazla 12 karakter olmalıdır.
return 1
endif

src.name <argtxt[1]>
src.tag.isim 1
src.isimduzenleabi
src.sysmessage @040,1,1 Nickiniz <argtxt[1]> olarak değiştirilmiştir.
src.stone 0
src.isimsorgu
src.tag.ayniisim 0
Burdan birşeyler denedim ama olmadı (:
[FUNCTION f_aile_soyad]
FOR X 0 <EVAL (<SERV.ACCOUNTS>-1)>
FOR Z 0 <EVAL (<SERV.ACCOUNT.<DLOCAL.X>.CHARS>-1)>
LOCAL.Y=<STREAT <SERV.ACCOUNT.<DLOCAL.X>.CHAR.<DLOCAL.Z>.NAME>>
IF STRMATCH("<ARGS>","<LOCAL.Y>")
SRC.SYSMESSAGE <ARGS> soy adı sunucuda bulunuyor.
RETURN 1
ENDIF
ENDFOR
ENDFOR

gerekli yerlere değiştirerek dene bir bakalım belki çalışır
Nereye eklemem gerekiyor? bunu dclick'e koydum olmadı buttona mı eklemem lazım f_aile_soyad'ı
dialog olarak kullanıcaksan argsları argtxt[x] şeklinde değiştirirsin functiona gerek kalmaz
Tam olarak anlamadım verdigin fuction'daki argsları degiştiricem sonra ?
buttonun altına bunu ekle işte

FOR X 0 <EVAL (<SERV.ACCOUNTS>-1)>
FOR Z 0 <EVAL (<SERV.ACCOUNT.<DLOCAL.X>.CHARS>-1)>
LOCAL.Y=<STREAT <SERV.ACCOUNT.<DLOCAL.X>.CHAR.<DLOCAL.Z>.NAME>>
IF STRMATCH("<ARGTXT[X]>","<LOCAL.Y>")
SRC.SYSMESSAGE <ARGTXT[X]> soy adı sunucuda bulunuyor.
RETURN 1
ENDIF
ENDFOR
ENDFOR

argtxt[x] olan yerde x leri kendine göre ayarlıyacaksın
Denedim fakat olmuyor spherede
21:17:ERROR:(ailetest.scp,126)Can't resolve <ARGTXT[X]>
Hatası veriyor
argtxt[x] bu kısımda köşeli parantez içinde olan textentry numarasına göre değiştireceksin yada sen direk scripti at buraya
sagol kardeşim yaptım birşeyler (:

Üye Ol veya Giriş Yap

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