Tekil Mesaj gösterimi
Alt 19 Haziran 2014, 13:24   #13
Çevrimdışı
Diablo
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Belirtilen nickler harici kanala giriş olmasın




Entrance Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Sunucusuna verdiğim kodları kurup deneyen sadece konu sahibi var anladığım kadarıyla verdiğim o küçücük kod Entrance, rumuzu harici oper'de olsa dahi kanala girmesine izin vermiyor ancak, altını çizerek söylüyorum konuda da belirttim zaten, SAJOIN komutunu herhangi bir oper herhangi bir nick'e veya kendisine istinaden kullanmadığı sürece ilgili kanala giriş olmaz..

Konuya da yorum yapmışken sajoin komutunu belli başlı kişilerin kullanmasına nazaran bir düzenleme yapayım kullanmak isteyenler ister kullanır ister kullanmaz..

1.) -> Unreal3.2*/src/modules/m_sajoin.c

Eklenmesi gereken bölüm..

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* m_sajoin() - Lamego - Wed Jul 21 20:04:48 1999 Copied off PTlink IRCd (C) PTlink coders team. Coded for Sadmin by Stskeeps also Modified by NiQuiL (niquil@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].net) parv[0] - sender parv[1] - nick to make join parv[2] - channel(s) to join */

Altına,

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
static char *nlist[] = { "NICK", "NICK2", "NICK3", "NICK4", NULL }; static int n_listesi(char *ent) { char **nicklist; for (nicklist=nlist; *nicklist; *nicklist++) { if (strstr(ent, *nicklist)) return 1; } return 0; }

Ekleyin, daha sonra..

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
if (!IsSAdmin(sptr) && !IsULine(sptr)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return 0; }

Yukarıda ki bölümü..

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
if (!n_listesi(sptr->name) && !IsULine(sptr)) { sendto_one(sptr, ":%s NOTICE %s :SAJOIN komutunu sadece özel nickler kullanabilir.", me.name, sptr->name); sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); return 0; }

Bununla değiştirin, make ve rehash komutlarını uygulayın böylece sajoin komutunu sadece belirtilen nickler kullanacak şekilde düzenledik, bu fonksiyonu IsNetAdmin(sptr) tanımlaması ile sadece netadminlere de yaptırabilirdik fakat böylesi daha sağlıklı olur diye düşündüm..

Hoşça paylaşımlar..

Amacım konuyu baltalamak değil ama bazı kişiler yanlış anlıyor.Bu tür konularda geniş düşünmek gerekli ilk verdiğin yerdeki demek istediğim adam admin olsa bile kanala girmek istediğinde adminlere özel bir kanal diyecek aldatmaca gibi olacak bunu

m_join.c dosyasında

/* don't use 'return x;' but 'RET(x)' from here ;p */

satırının altına

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
if (stricmp("NICK", sptr->name) && stricmp("NICK2", sptr->name)) { if (!stricmp(parv[1],"#KANAL")) { sendto_one(sptr, ":%s NOTICE %s :*** Bu kanala giriş izniniz yok.", me.name, sptr>name); return 0; } }

şeklinde eklese daha mantıklı. 2. si sajoin komutu
Sajoin komutunu belirlediğin kişiler çekebilecek diğer adminler vs çekemiyecek buda 2. bir sorun bunuda şu şekilde düzenlersin olur biter.

m_sajoin.c dosyasında

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
if (chptr && (lp = find_membership_link(acptr->user->channel, chptr))) continue;

satırının altına

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
if (!stricmp(chptr->chname,"#KANAL")) { sendnotice(sptr, "Bu kanala SAJOIN komutu uygulamanıza izniniz yok."); continue; }

Burdaki amac operlerin veya adminlerin bu kanala sajoin komutu uygulamasını engellemek ama senin verdiğin tüm sunuculardaki kanallara belirlediğin nicklerden başka yetkililerin SAJOIN komutunu çekmemesini sağlamak.

Amacım burda bilgi üstünlüğü vs felan değil sadece birilerine yardım edeyim derken diğerlerinide mağdur etmemek önce bunu düşünmek gerek.

 

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet