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

Hiç yorum yok:

Yorum Gönder