Aile kura basınca daha önceden talepte bulunmuşsunuz sorunu oluştu. O satırı sildim sonra zaten bir aileye üyesiniz diyor. Problem nerede olabilir?
// -- functions [plevel 7] ailetablo ailetablo_sil [function ailetablo] db.connect if <db.connected> db.execute "CREATE TABLE IF NOT EXISTS `aileler` (`id` INT NULL AUTO_INCREMENT PRIMARY KEY,`aileisim` VARCHAR( 14 ) NOT NULL, `ailereis` VARCHAR( 10 ) NOT NULL, `kurulus` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `yuzukid` VARCHAR( 15 ) NOT NULL DEFAULT 'NULL', `durum` ENUM( '0', '1' ) NOT NULL DEFAULT '0', `onaylayan` VARCHAR( 10 ) DEFAULT 'NULL')"; db.execute "CREATE TABLE IF NOT EXISTS `aileUyeleri` (`id` INT NULL AUTO_INCREMENT PRIMARY KEY ,`aileNo` INT NOT NULL ,`uyeUid` VARCHAR( 10 ) NOT NULL ,`katilmaTarihi` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP )" sys_normal tablolar oluşturuldu. endif db.close [function ailetablo_sil] db.connect if <db.connected> db.execute "drop table aileler"; db.execute "drop table aileuyeleri" endif db.close [function isinfamily] if <tag0.aileno> return 1 else return 0 endif [function isfamilyexist] db.connect if <db.connected> db.query "select aileisim from aileler where aileisim='<addslashes <args>>'"; if <db.row.numrows> return 1 else return 0 endif else return 1 endif db.close [function isfamilyreqexist] db.connect if <db.connected> db.query "select ailereis from aileler where ailereis='<src>'"; if <db.row.numrows> return 1 else return 0 endif else return 1 endif db.close [function staff_aile_msg] if <account.plevel> > 1 sysmessageua 48,6,6,0 <args> endif [plevel 6] ailetalep [function ailetalep] clearctags=aile ctag0.aile_limit=0 dialogclose d_aile_yetkili_paneli sdialog d_aile_yetkili_paneli [plevel 1] ailem ailemi_dagit aileden_ayril [function ailem] if !<isempty <tag.name.suffix>> db.connect if <db.connected> db.query "select ailereis from aileler where id='<dtag0.aileno>'"; if <db.row.0.ailereis>!=<uid> sys_error Bu işlemi yalnızca aile reisi kullanabilir. else db.query "select count(id) from aileuyeleri where aileno='<dtag0.aileno>'"; if !<db.row.0> sys_error Ailenizde üye bulunmuyor. else db.query "select id from aileuyeleri where aileno='<dtag0.aileno>'"; ctag0.uye_index=0 ctag0.uye_id=<db.row.<dctag0.uye_index>.id> sdialog d_aile_menusu endif endif endif db.close endif [function ailemi_dagit] if !<isempty <tag.name.suffix>> db.connect if <db.connected> db.query "select ailereis from aileler where id='<dtag0.aileno>' and ailereis='<uid>"; if !<db.row.numrows> sys_error Bu işlemi yalnızca aile reisi kullanabilir. else sdialog d_aile_dagit endif endif db.close endif [function aileden_ayril] if !<isempty <tag.name.suffix>> db.connect if <db.connected> db.query "select ailereis from aileler where id='<dtag0.aileno>' and ailereis='<uid>'"; if <db.row.numrows> sys_error Yalnızca aile üyeleri kullanabilir. else sdialog d_aileden_ayril endif endif endif // -- items [itemdef i_yuzuk_aile] id=i_ring_gold type=t_jewelry weight=0 name=Aile Yuzugu on=@create color=1153 attr=attr_newbie on=@click messageua 48,6,6,0 [<name>] messageua 1000,6,6,0 Sahibi: <link.name> return 1 on=@equip if <link> if <link>!=<src> link.equip=<uid> update src.sys_error Bu yüzük size ait değil. endif endif on=@dclick if <link>!=<src> cont=<link.findlayer(layer_pack).uid> link.equip=<uid> update src.sys_error Bu yüzük size ait değil. else target @048,,1 Aileye almak istediğiniz oyuncuyu seçiniz. equip endif return 1 on=@targon_item target @38,,1 Yalnızca oyuncuları seçebilirsiniz. return 1 on=@targon_ground target @38,,1 Yalnızca oyuncuları seçebilirsiniz. return 1 on=@targon_char if <src.targ>==<src> target @38,,1 Kendinizi seçemezsiniz. elif !(<src.targ.isplayer>) || (<src.targ.account.plevel> > 1) target @38,,1 Yalnızca oyuncuları seçebilirsiniz. elif <src.targ.isinfamily> target @38,,1 <src.targ.name> <strtrim <src.targ.tag0.name.suffix>> ailesinin mensubu. elif <src.targ.gold> < 75000 target @38,,1 <src.targ.name> üyelik için gereken ücreti ödeyecek durumda değil. (75.000gp) elif <src.targ.isdialogopen d_aile_uye_onay> target @38,,1 <src.targ.name> şu an zaten bir aile daveti alıyor. else trysrc <src.targ> sdialog d_aile_uye_onay endif return 1 on=@destroy db.connect if <db.connected> db.query "select id,uyeuid from aileuyeleri where aileno='<link.dtag0.aileno>'"; while <db.row.<dlocal._while>.uyeuid> ref1=<db.row.<dlocal._while>.uyeuid> ref1.tag0.name.suffix= db.execute "delete from aileuyeleri where id='<db.row.<dlocal._while>.id>'"; ref1.dialogcloseall endwhile serv.allclients sysmessageua 0481,6,6,0 <strtrim <link.tag0.name.suffix>> isimli aile dağıldı. link.tag0.name.suffix= link.tag0.aileno= db.execute "delete from aileler where yuzukid='<uid>'"; link.dialogcloseall else return 1 endif db.close [itemdef i_aile_belgesi] id=i_deed type=t_script name=Aile Belgesi weight=5 VALUE=450000 on=@create color=04ec attr=attr_newbie on=@click message <name> return 1 on=@dclick if <topobj>!=<src> src.sys_error Yalnızca çantanızdayken kullanabilirsiniz. elif <src.isinfamily> src.sys_error Sizin zaten bir aileniz var. else sdialog d_aile_kurulum endif return 1 [dialog d_aile_kurulum] 0,0 nomove resizepic 50 50 5170 450 350 dhtmlgump 90 55 220 20 0 0 <def.bfont_size5>Mandarin Aile Kurulum Menüsü dhtmlgump 80 85 400 90 0 0 Aile kurabilmek için öncelikle aile ismizin kurallara uygun olması gerekmektedir. Bu kurallara aşağıdan ulaşabilirsiniz. Ayrıca aile kurulumu için talepte bulunduğunuz an talebiniz yetkili onayına gönderilecektir. Uygun görüldüğü taktirde ailenizin kurulum işlemi tamamlanacaktır. dhtmlgump 100 180 380 120 0 0 <def.bfont_red>1. Hakaret iceren anlamsiz soy isimleri kullanmanız yasaktır.<def.br>2. Sunucudaki aktif soy isimlerini kullanamazsınız.<def.br>3. Soy isminin uzunluğu en az 3, en fazla 14 karakter olabilir.<def.br>4. Yalnızca alfabetik karakterler, (')(-) simgeleri ve boşluk karakterini kullanabilirsiniz. gumppic 190 300 098e dtextentry 205 300 200 20 1152 0 button 210 330 09a8 09a9 1 0 1 dtext 240 333 0 Gönder [dialog d_aile_kurulum button] on=1 if (strlen(<argtxt[0]>) > 14) src.sys_error Soyadınız en fazla 14 karakter olabilir. return 1 endif if <topobj>!=<src> src.sys_error Yalnızca çantanızdayken kullanabilirsiniz. elif <src.isinfamily> src.sys_error Sizin zaten bir aileniz var. elif <src.isfamilyreqexist> src.sys_error Siz daha önceden aile kurulumu için talepte bulunmuşsunuz. elif <isempty <argtxt[0]>> src.sys_error Aile ismini girmelisiniz. elif <eval(strlen(<argtxt[0]>))> < 3 src.sys_error Aile ismi en az 3, en fazla 14 karakterden oluşabilir. elif <badfamilynames <argtxt[0]>> src.sys_error Hatalı aile ismi girdiniz. elif <isfamilyexist <argtxt[0]>> src.syS_error Bu aile ismi daha önceden kayıt edilmiş. else db.connect if <db.connected> local.aileisim=<strtrim <argtxt[0]>> db.execute "insert into aileler (aileisim,ailereis) values ('<addslashes <local.aileisim>>','<src>')"; src.sys_normal Aile başvurusu talebiniz iletildi. serv.allclients staff_aile_msg -- Yeni Aile Talebi: <local.aileisim>, <src.name>/<src> serv.allclients f_tagver remove endif db.close endif // -- // -- dialogs [dialog d_aile_yetkili_paneli] 0,0 nomove resizepic 50 100 2600 590 400 dtext 100 120 48 Aile İsmi dtext 220 120 48 Kurucu dtext 340 120 48 Tarih dtext 520 120 48 Onaylayan gumppictiled 100 140 500 5 3000 button 600 460 015a4 015a6 1 0 10000 button 70 460 015a1 015a3 1 0 10001 db.connect if <db.connected> db.query "select id,aileisim,ailereis,kurulus,onaylayan,durum from aileler order by kurulus desc limit <dctag0.aile_limit>,15"; while <db.row.<dlocal._while>.ailereis> if <db.row.<dlocal._while>.durum>==1 local.color=048 dtext 520 <eval(<local._while>*20)+150> <local.color> <uid.<db.row.<dlocal._while>.onaylayan>.name> else local.color=38 dtext 520 <eval(<local._while>*20)+150> <local.color> - button 65 <eval(<local._while>*20)+150> 4005 4007 1 0 <db.row.<dlocal._while>.id> endif dtext 100 <eval(<local._while>*20)+150> <local.color> <db.row.<dlocal._while>.aileisim> dtext 220 <eval(<local._while>*20)+150> <local.color> <uid.<db.row.<dlocal._while>.ailereis>.name> dtext 340 <eval(<local._while>*20)+150> <local.color> <db.row.<dlocal._while>.kurulus> endwhile endif db.close [dialog d_aile_yetkili_paneli button] on=1 9999 ctag0.aile_id=<dargn> sdialog d_aile_onay on=10000 ctag0.aile_limit +=16 sdialog d_aile_yetkili_paneli on=10001 if <ctag0.aile_limit> > 0 ctag0.aile_limit -=16 endif sdialog d_aile_yetkili_paneli [dialog d_aile_onay] 0,0 nomove resizepic 50 50 5170 300 180 db.connect if <db.connected> db.query "select aileisim,ailereis,kurulus from aileler where id='<dctag0.aile_id>'"; dhtmlgump 80 75 280 70 0 0 <db.row.0.aileisim> isimli aile başvurusunu nasıl değerlendiriyorsunuz?<def.br><def.bfont_red>Kurucu:<def.bfont_black> <uid.<db.row.0.ailereis>.name><def.br><def.bfont_red>Kuruluş:<def.bfont_black> <db.row.0.kurulus> button 80 170 0481 0483 1 0 1 dtext 110 170 1152 Onayla button 220 170 047e 0480 1 0 2 dtext 250 170 1152 Sil endif db.close [dialog d_aile_onay button] on=1 db.connect if <db.connected> db.query "select aileisim,ailereis from aileler where id='<dctag0.aile_id>'"; ref1=<db.row.0.ailereis> local.aileisim=<db.row.0.aileisim> ref1.tag0.name.suffix=" <db.row.0.aileisim>" ref1.tag0.aileno=<dctag0.aile_id> serv.newitem i_yuzuk_aile,1,<ref1>,1 new.link=<ref1> db.execute "update aileler set durum='1', onaylayan='<src>', yuzukid='<new>' where id='<dctag0.aile_id>'"; sys_normal Aile başvurusunu kabul ettiniz. if <ref1.isonline> ref1.sys_normal Aile başvurunuz <name> tarafından onaylandı. serv.allclients f_tagal else ref1.events +e_aile_msg2 ref1.tag0.aile_staff=<name> endif serv.allclients sysmessageua 0481,6,6,0 <local.aileisim> isimli aile <ref1.name> tarafından kuruldu. endif db.close on=2 db.connect if <db.connected> db.query "select ailereis from aileler where id='<dctag0.aile_id>'"; ref1=<db.row.0.ailereis> db.execute "delete from aileler where id='<dctag0.aile_id>'"; serv.newitem i_aile_belgesi,1,<ref1.findlayer(layer_pack).uid> sys_normal Aile başvurusunu ret ettiniz. if <ref1.isonline> ref1.sys_normal Aile başvurunuz <name> tarafından ret edildi. serv.allclients f_tagal else ref1.tag0.aile_staff=<name> ref1.events +e_aile_msg1 endif endif db.close [events e_aile_msg1] on=@login sys_normal Aile başvurunuz <tag0.aile_staff> tarafından ret edildi. tag0.aile_staff= events -e_aile_msg1 [events +e_aile_msg2] on=@login sys_normal Aile başvurunuz <tag0.aile_staff> tarafından onaylandı. tag0.aile_staff= events -e_aile_msg2 [dialog d_aile_uye_onay] 0,0 nomove resizepic 75 75 5170 340 140 dhtmlgump 108 97 270 50 0 0 <link.name> sizi <strtrim <link.tag0.name.suffix>> isimli ailesine davet ediyor. Katılmak ister misiniz? button 120 150 4005 4007 1 0 2 dtext 155 150 0 Evet button 270 150 4005 4007 1 0 1 dtext 305 150 0 Hayır [dialog d_aile_uye_onay button] on=0 1 if <link.isonline> link.sys_normal <src.name> aile davetinizi ret etti. endif on=2 db.connect if !<db.connected> link.sys_normal Sistem hatası oluştu, yetkililere ulaşınız. src.syS_normal Sistem hatası oluştu, yetkililere ulaşınız. else db.query "select id,aileisim from aileler where yuzukid='<uid>'"; if !<db.row.numrows> src.sys_error Böyle bir aile bulunamadı. elif <src.gold> < 75000 src.sys_error Yeterli altınınız bulunmuyor. (75.000gp) link.sys_error <src.name>'in yeterli altını bulunmuyor. (75.000gp) else link.sys_normal <src.name> aile davetinizi kabul etti. serv.allclients sysmessageua 0481,6,6,0 <src.name>, <db.row.0.aileisim> isimli aileye katıldı. src.gold -=75000 src.tag0.name.suffix=" <db.row.0.aileisim>" db.execute "insert into aileuyeleri (aileno,uyeuid) values (<db.row.0.id>,'<src>')"; endif endif db.close [dialog d_aile_menusu] 0,0 nomove resizepic 100 100 5170 350 215 dtext 140 130 450 İsim: dtext 140 150 450 Durumu: dtext 140 170 450 Skilltotal: dtext 140 190 450 Stats: dtext 140 210 450 Fame/Karma: dtext 140 230 450 Kills/Deaths: db.connect if <db.connected> db.query "select uyeuid from aileuyeleri where id='<dctag0.uye_id>'"; if <db.row.0> ref1=<db.row.0> dhtmlgump 235 132 200 20 0 0 <ref1.name> dhtmlgump 235 152 100 20 0 0 <qval(<ref1.isonline>)?<def.bfont_green>Online:<def.bfont_red>Offline> dhtmlgump 235 172 100 20 0 0 <fval <ref1.skilltotal>> dhtmlgump 235 192 200 20 0 0 <ref1.maxhits> str, <ref1.maxstam> dex, <ref1.maxmana> int dhtmlgump 235 212 150 20 0 0 <ref1.fame>/<ref1.karma> dhtmlgump 235 232 150 20 0 0 <qval(<ref1.kills>)?<ref1.kills>:->/<qval(<ref1.deaths>)?<ref1.deaths>:-> button 380 265 015a4 015a6 1 0 2 dtext 335 266 0 Sonraki button 140 265 015a1 015a3 1 0 1 dtext 162 266 0 Önceki db.query "select ailereis from aileler where id='<dtag0.aileno>' and ailereis='<src>'"; if <db.row.numrows> button 120 105 2117 2118 1 0 3 dtext 140 103 68 Aileden Çıkart (Emin misiniz? : ) checkbox 330 103 02342 02343 0 1 endif endif endif db.close [dialog d_aile_menusu button] on=1 db.connect if <db.connected> db.query "select id from aileuyeleri where aileno='<dtag0.aileno>'"; if <db.row.<eval(<ctag0.uye_index>-1)>.id> ctag0.uye_index -- ctag0.uye_id=<db.row.<dctag0.uye_index>.id> endif db.close endif sdialog d_aile_menusu on=2 db.connect if <db.connected> db.query "select id from aileuyeleri where aileno='<dtag0.aileno>'"; if <db.row.<eval(<ctag0.uye_index>+1)>.id> ctag0.uye_index ++ ctag0.uye_id=<db.row.<dctag0.uye_index>.id> endif db.close endif sdialog d_aile_menusu on=3 if !<argchk[1]> sys_error Aileden çıkartma işlemi için onayınız gerekiyor. sdialog d_aile_menusu else db.connect if <db.connected> db.query "select uyeuid from aileuyeleri where id='<dctag0.uye_id>'"; if !<db.row.numrows> sys_error Böyle bir üye bulunamadı. else ref1=<db.row.0.uyeuid> ref1.tag0.name.suffix= if <ref1.isonline> ref1.sys_normal Ailenizden çıkartıldınız. endif db.execute "delete from aileuyeleri where id='<dctag0.uye_id>'"; sys_normal <ref1.name> isimli üye ailenizden çıkartıldı. endif endif db.close endif [dialog d_aile_dagit] 0,0 resizepic 100 100 5170 280 140 dhtmlgump 135 130 250 45 0 0 <strtrim <tag0.name.suffix>> isimli ailenizi dağıtmak istediğinize emin misiniz? button 150 180 4005 4007 1 0 1 dtext 185 180 0 Evet button 250 180 4005 4007 1 0 2 dtext 285 180 0 Hayır [dialog d_aile_dagit button] on=1 db.connect if <db.connected> db.query "select yuzukid from aileler where id='<dtag0.aileno>'"; ref1=<db.row.0.yuzukid> ref1.remove endif db.close [dialog d_aileden_ayril] 0,0 resizepic 100 100 5170 280 140 dhtmlgump 135 130 250 45 0 0 <strtrim <tag0.name.suffix>> isimli ailenizden ayrılmak istediğinize emin misiniz? button 150 180 4005 4007 1 0 1 dtext 185 180 0 Evet button 250 180 4005 4007 1 0 2 dtext 285 180 0 Hayır [dialog d_aileden_ayril button] on=1 db.connect if <db.connected> db.execute "delete from aileuyeleri where uyeuid='<uid>'"; serv.allclients sysmessageua 0481,6,6,0 <name> <strtrim <tag0.name.suffix>> isimli aileden ayrıldı. tag0.name.suffix= tag0.aileno= sys_normal Ailenizden ayrıldınız. endif db.close [function ac] if (strmatch("<args>","")) src.hata Bos mesaj gönderemezsiniz. elseif (strmatch("<args>","<tag.yazi>")) src.hata Aile arasi mesajlarda flood yapmayiniz. elseif !(0<src.tag.biraileuyesi>) src.hata Bir aileye uye degilsiniz. return 1 else tag0.yazi <args> serv.allclients ailechatci <args> endif [function ailechatci] if (strmatch('<src.tag.deeduid>','<tag.deeduid>') sysmessage @1153,0,1 [Aile Chat] <src.name> : <args> endif // -- [eof]
Hiç aile kurmadığın ya da Üzerindeki "tag0.aileno" tagini kaldırıp dener misin. Hepsini okumadım ama olmazsa tekrar yaz yardımcı olmaya çalışayım.
Soru sorulalı aylar geçmiş. Belki bir başkası kullanmak ister diye yazıyorum.
Sonuçta bir sisteme en iyi yardımı scripti yazan verebilir. :) Aradan 7 yıl geçmiş ve scriptimin üstündeki imza kısmı dahi silinerek yayınlanmış olsa da...
Önce düzgünce MySQL kurulumunu yapman lazım. Sphere güzelce MySQL'e bağlandıktan sonra yetkili bir karakterle tablo kurulum fonksiyonunu bir defa çalıştıracaksın. .ailetablo fonksiyonunu oraya boşuna yazmamışım değil mi? :) Her şey hazır olduğunda sistem zaten düzgün şekilde çalışacak. Sağını solunu kesip biçmeye lüzum yok. Zamanında o sistemi test etmiştim, çalışıyordu.
Bu sistemi MySQL bağlantısı olmadan kullanamazsın. MySQL kullanmıyorsan farklı bir script kullanmalısın.