30 Temmuz 2010 Cuma
mIRC Access Kabul Sistemi
mIRC Access Kabul SistemiPtlink tarzı Access Kabul sistemi. (eklenen accesslerin /cs kabul #kanaladı e/h yapmalıdır…)
Ptlink tarzı Access Kabul sistemi. (eklenen accesslerin /cs kabul #kanaladı e/h yapmalıdır…)
Ekleme Zorluğu : Orta/ZorYapılması Gereken Değişiklikler :
cd ircservices-5.0.xx
pico lang/tr.l
Kod:CHAN_ACCESS_ADDED %s nick’i %s kanalinin erisim listesine %d seviyeden eklendi.Bu Satırları bulup, Şu şekilde değiştirin:
Kod:CHAN_ACCESS_ADDED %s nick’ine %s kanalinin erisim listesine %d seviyeden eklenmesi için Kabul Mesajı Gönderildi.-
Kod:CHAN_ACCESS_LIST_HEADER%s Kanali Erisim Listesi:Sira Seviye NickCHAN_ACCESS_LIST_FORMAT%4d %4d %sBu Satırları bulup, Şu şekilde değiştirin:
Kod:CHAN_ACCESS_LIST_HEADER%s Kanali Erisim Listesi:Sira Seviye Nick DurumCHAN_ACCESS_LIST_FORMAT%4d %4d %s %s-
Kod:CHAN_XOP_ADDED %s %s %s listesine eklendi.Bu Satırları bulup, Şu şekilde değiştirin..
Kod:CHAN_XOP_ADDED %s nickine %s %s listesine eklenmesi için Kabul Mesajı Gönderildi.-
Kod:CHAN_XOP_LIST_HEADER%s %s listesi:Sira NickCHAN_XOP_LIST_FORMAT%4d %sBu Satırları bulup, Şu şekilde değiştirin:
Kod:CHAN_XOP_LIST_HEADER%s %s listesi:Sira Nick DurumCHAN_XOP_LIST_FORMAT%4d %s %s——————————pico modules\\chanserv\\access-levels.c
Kod:int is_list; /* Is true when command is either LIST or COUNT */Bu Satırları bulup, bir üstüne şu satırı ekleyin:
Kod:User *sky;-
Kod:notice_lang(s_ChanServ, u, CHAN_ACCESS_ADDED, nick, chan, level);Bu satırı bulup, bir altına şu satırları ekleyin:
Kod:sky = get_user(nick);if (sky) {if (user_identified(sky)) {send_cmd(s_ChanServ, “NOTICE %s :%s Nicki %s Kanalında Size Access Ekledi.”, sky->nick, u->nick, chan);send_cmd(s_ChanServ, “NOTICE %s :Kabul Etmek için /chanserv kabul %s e Yaziniz.”, sky->nick, chan);send_cmd(s_ChanServ, “NOTICE %s :Reddetmek için /chanserv kabul %s h Yaziniz.”, sky->nick, chan);}}-
Kod:static int access_list(User *u, int index, ChannelInfo *ci, int *sent_header){ChanAccess *access = &ci->access[index];NickGroupInfo *ngi;if (!access->nickgroup)return RET_NOENTRY;if (!(ngi = get_ngi_id(access->nickgroup)))return RET_INTERR;if (!*sent_header) {notice_lang(s_ChanServ, u, CHAN_ACCESS_LIST_HEADER, ci->name);*sent_header = 1;}notice_lang(s_ChanServ, u, CHAN_ACCESS_LIST_FORMAT,index+1, access->level, ngi_mainnick(ngi));return RET_LISTED;}Bu kodu bulup, şu kod ile değiştirin:
Kod:static int access_list(User *u, int index, ChannelInfo *ci, int *sent_header){ChanAccess *access = &ci->access[index];NickGroupInfo *ngi;if (!access->nickgroup)return RET_NOENTRY;if (!(ngi = get_ngi_id(access->nickgroup)))return RET_INTERR;if (!*sent_header) {notice_lang(s_ChanServ, u, CHAN_ACCESS_LIST_HEADER, ci->name);*sent_header = 1;}if (access->kabul==0)notice_lang(s_ChanServ, u, CHAN_ACCESS_LIST_FORMAT,index+1, access->level, ngi_mainnick(ngi), “”);else if (access->kabul==1)notice_lang(s_ChanServ, u, CHAN_ACCESS_LIST_FORMAT,index+1, access->level, ngi_mainnick(ngi), “”);return RET_LISTED;}——————————pico modules\\chanserv\\access-xop.c
Kod:const char *listname = XOP_LISTNAME(level);Bu Satıri bulup, bir üstüne şu satırı ekleyin:
Kod:User *sky;-
Kod:notice_lang(s_ChanServ, u, CHAN_XOP_ADDED, nick, chan, listname);Bu satırı bulup bir altına şu satırları ekleyin:
Kod:sky = get_user(nick);if (sky) {if (user_identified(sky)) {send_cmd(s_ChanServ, “NOTICE %s :%s Nicki %s Kanalında Size Access Ekledi.”, sky->nick, u->nick, chan);send_cmd(s_ChanServ, “NOTICE %s :Kabul Etmek için /chanserv kabul %s e Yaziniz.”, sky->nick, chan);send_cmd(s_ChanServ, “NOTICE %s :Reddetmek için /chanserv kabul %s h Yaziniz.”, sky->nick, chan);}}-
Kod:static int xop_list(User *u, int index, ChannelInfo *ci, int *sent_header,int relindex){ChanAccess *access = &ci->access[index];NickGroupInfo *ngi;if (!(ngi = get_ngi_id(access->nickgroup)))return 0;if (!*sent_header) {notice_lang(s_ChanServ, u, CHAN_XOP_LIST_HEADER,XOP_LISTNAME(access->level), ci->name);*sent_header = 1;}notice_lang(s_ChanServ, u, CHAN_XOP_LIST_FORMAT, relindex,ngi_mainnick(ngi));return 1;}Bu kodu bulup şu kod ile değiştirin:
Kod:static int xop_list(User *u, int index, ChannelInfo *ci, int *sent_header,int relindex){ChanAccess *access = &ci->access[index];NickGroupInfo *ngi;if (!(ngi = get_ngi_id(access->nickgroup)))return 0;if (!*sent_header) {notice_lang(s_ChanServ, u, CHAN_XOP_LIST_HEADER,XOP_LISTNAME(access->level), ci->name);*sent_header = 1;}if (access->kabul==0)notice_lang(s_ChanServ, u, CHAN_XOP_LIST_FORMAT, relindex,ngi_mainnick(ngi), “”);else if (access->kabul==1)notice_lang(s_ChanServ, u, CHAN_XOP_LIST_FORMAT, relindex,ngi_mainnick(ngi), “”);return 1;}——————————pico modules\\chanserv\\access.c
Kod:if (ci->access[i].nickgroup == id)Bu kodu bulup Hemen bir alt satıra şu kodu ekleyiniz : (bu satır 2 kez çıkacak, ikisinde de aynı şekilde bir alt satırına aşağıdaki satırı ekleyiniz.)
Kod:if (ci->access[i].kabul==1)Kod:ci->access[i].nickgroup = ni->nickgroup;ci->access[i].level = level;bu satırları bulup hemen altına şu kodu ekleyiniz:
Kod:ci->access[i].kabul = 0;——————————pico modules\\chanserv\\chanserv.h
Kod:int16 level;bu kodu bulup hemen altına şu kodu ekleyin:
Kod:int32 kabul;-
Kod:int16 access_count;bu kodu bulup hemen altına şu kodu ekleyin:
Kod:ChanAccess *accesstemp;——————————pico modules\\chanserv\\main.c
Kod:static void do_status(User *u);bu satırı bulup hemen altına şu satırı ekleyin:
Kod:static void do_kabul(User *u);-
Kod:{ “UNSUSPEND”,do_unsuspend,is_services_admin, -1,-1, CHAN_OPER_HELP_UNSUSPEND },bu satırları bulup hemen altına şu satırı ekleyin:
Kod:{ “KABUL”, do_kabul, NULL, -1,-1, -1 },-
Kod:static void do_help(User *u){bu satırları bulup hemen bir üstüne şu kodu ekleyin:
Kod:static void do_kabul(User *u) {//char *cmd = strtok_remaining();char *kanal = strtok(NULL, ” “);char *secim = strtok(NULL, ” “);int sec;ChannelInfo *ci;NickInfo *ni=u->ni;int bulunan=0;int i=0;if (!kanal) {send_cmd(s_ChanServ, “NOTICE %s : Kullanımı : KABUL # Kanal e/h ”, u->nick);return;}ci = get_channelinfo(kanal);
if (strcmp(kanal, “#”) == 0) {notice_lang(s_ChanServ, u, CHAN_REGISTER_SHORT_CHANNEL);} else if (*kanal == ‘&’) {notice_lang(s_ChanServ, u, CHAN_REGISTER_NOT_LOCAL);} else if ((*kanal != ‘#’) && stricmp(kanal, “list”)) {notice_lang(s_ChanServ, u, CHAN_REGISTER_INVALID_NAME);} else if (!ni) {notice_lang(s_ChanServ, u, CHAN_MUST_REGISTER_NICK, s_NickServ);} else if (!user_identified(u)) {notice_lang(s_ChanServ, u, CHAN_MUST_IDENTIFY_NICK,s_NickServ, s_NickServ);} else if (stricmp(kanal, “list”) == 0) {for (ci = first_channelinfo(); ci; ci = next_channelinfo()) {if (ci->flags & (CI_VERBOTEN))continue;if (ci->suspendinfo)continue;ARRAY_SEARCH_SCALAR(ci->access, nickgroup, u->ngi->id, i);if (i != ci->access_count) {if (ci->access[i].kabul==0) {send_cmd(s_ChanServ, “NOTICE %s :%s Kanalında Bekleyen Bir Access isteği Bulundu..”, u->nick, ci->name);send_cmd(s_ChanServ, “NOTICE %s :Kabul Etmek için /chanserv kabul %s e Yazınız.”, u->nick, ci->name);send_cmd(s_ChanServ, “NOTICE %s :Reddetmek için /chanserv kabul %s h Yazınız.”, u->nick, ci->name);send_cmd(s_ChanServ, “NOTICE %s :-”, u->nick);}}}return;}else if (ci == NULL) {notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, kanal);}else {if (!secim) {send_cmd(s_ChanServ, “NOTICE %s : Kullanımı : KABUL # Kanal e/h ”, u->nick);return;}if (stricmp(secim, “h”) == 0)sec=0;else if (stricmp(secim, “e”) == 0)sec=1;else {send_cmd(s_ChanServ, “NOTICE %s : Kullanımı : KABUL # Kanal e/h ”, u->nick);return;}if (ci->flags & CI_VERBOTEN) {send_cmd(s_ChanServ, “NOTICE %s :Bu Kanal Yasaklı Bir Kanaldır, Komutunuzu Gözden Geçiriniz.”, u->nick);return;} else if (ci->suspendinfo) {send_cmd(s_ChanServ, “NOTICE %s :Bu Kanal Suspendli Bir Kanaldır, Komutunuzu Gözden Geçiriniz.”, u->nick);return;}ARRAY_FOREACH (i, ci->access) {if (ci->access[i].nickgroup == ni->nickgroup) {if (sec==1) {if (ci->access[i].kabul==0) {ci->access[i].kabul=1;send_cmd(s_ChanServ, “NOTICE %s :%s Kanalı için Access Eklemesi Kabul Edildi.”, u->nick, kanal);}else if (ci->access[i].kabul==1) {send_cmd(s_ChanServ, “NOTICE %s :%s Kanalı için Access Eklemesini Zaten Kabul Etmişsiniz.”, u->nick, kanal);}else {send_cmd(s_ChanServ, “NOTICE %s :%s Kanalı için Nickinize Ait Bekleyen Access isteği Yok.”, u->nick, kanal);}put_channelinfo(ci);bulunan=1;break;}else {if (ci->access[i].kabul==0) {send_cmd(s_ChanServ, “NOTICE %s :%s Kanalındaki Bekleyen Access isteğiniz Silindi.”, u->nick, kanal);ARRAY_REMOVE(ci->access, i);put_channelinfo(ci);bulunan=1;}break;}}}if (bulunan==0)send_cmd(s_ChanServ, “NOTICE %s :Nickiniz için %s Kanalında Bekleyen Bir Access isteği Yok.”, u->nick, kanal);}
}——————————pico modules\\nickserv\\main.c
Kod:#include “modules/operserv/operserv.h”bu kodu bulup hemen altına şu kodu ekleyin
Kod:#include “modules/chanserv/chanserv.h”-
Kod:char *s_NickServ;bu kodu bulup hemen altına şu kodu ekleyin:
Kod:char *s_ChanServ;-
Kod:static void do_identify(User *u){char *pass = strtok_remaining();NickInfo *ni = NULL;NickGroupInfo *ngi = NULL;bu satırları bulup hemen altına şu 3 satırı ekleyiniz:
Kod:ChannelInfo *ci;int i;int toplam=0;-
Kod:notice_lang(s_NickServ, u, NICK_IDENTIFY_SUCCEEDED);bu satırı bulup hemen bir altına şu satırları ekleyiniz:
Kod:for (ci = first_channelinfo(); ci; ci = next_channelinfo()) {if (ci->flags & (CI_VERBOTEN))continue;if (ci->suspendinfo)continue;ARRAY_SEARCH_SCALAR(ci->access, nickgroup, u->ngi->id, i);if (i != ci->access_count) {if (ci->access[i].kabul==0)toplam++;}}if (toplam!=0) {send_cmd(s_ChanServ, “NOTICE %s :%d Adet Bekleyen Access Kabul isteğiniz Var.”, u->nick, toplam);send_cmd(s_ChanServ, “NOTICE %s :istekleri Listelemek için /chanserv kabul list Komutunu Uygulayınız.”, u->nick);}——————————pico modules\\database\\version4.c
Kod:SAFE(write_int16(convert_new_level(ci->access[i].level), f));bu satırı bulup hemen altına şu satırı ekleyiniz:
Kod:SAFE(write_int32(ci->access[i].kabul, f));——————————
Not : tr.l de yapacağınız değişikliklerde “tab”lara dikkat ediniz.Not : dosyalarınızıftp den çekip not defterinde veya başka bir editörde yapmanız daha iyi olacaktır.
Buraya kadar herşeyi Satır kaydırmadan yaptıysanız;
makemake install
komutlarınızı kullanınız.
sonra ./ircservices komutu ile servislerinizi getirip, mirc üzerinden admin nickinizile girip /os update komutunu kullanınız..
bu işlemden HEMEN sonra servislerinizi ps x listenizden kapatınız..
sonrasında şu editi yapınız:
—pico modules\\database\\version4.c
Kod:ci->access[i].level = convert_old_level(lev);bu satırı bulup hemen altına şu satırı ekleyiniz:
Kod:SAFE(read_int32(&ci->access[i].kabul, f));bu işlemden sonra da tekrarmakemake installkomutlarını uygulayıp servislerinizi getirirseniz işlem tamamlanacaktır
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder