irc host , irc hosting , irc shell , irc reseller , radyo host , radyo hosting  

Go Back   irc host , irc hosting , irc shell , irc reseller , radyo host , radyo hosting > ircd servisleri > Ircservices
VPS Kirala Dedicated Kirala Irc Hosting Web Hosting Radyo Hosting Domain Satın Al IRC Reseller

Ircservices Ircservices destek platformu

Cevapla
 
Seçenekler Stil
Alt 02-09-2008, 19:23 PM   #1
Cengaver
Junior Member
 
Cengaver - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Feb 2008
Mesajlar: 16
Cengaver is on a distinguished road
Standart Access Kabul (IrcServices)

Sky-Dancer'a kodlardan ötürü teşekkürler ..



Ptlink tarzı Access Kabul sistemi.. (eklenen accesslerin /cs kabul #kanalismi e/h yapması şarttır.)



Kod 3 saat içinde tarafımdan yazılmıştır..



Ekleme Zorluğu : Orta/Zor



Yapılması Gereken Değişiklikler :



cd ircservices-5.0.xx





pico lang/tr.l





PHP- Kodu:
CHAN_ACCESS_ADDED

%s nicki %s kanalinin erisim listesine %d seviyeden eklendi




Bu Satırları bulup, Şu şekilde değiştirin



PHP- Kodu:
CHAN_ACCESS_ADDED

%s nickine %s kanalinin erisim listesine %d seviyeden eklenmesi için Kabul Mesajı Gönderildi




-





PHP- Kodu:
CHAN_ACCESS_LIST_HEADER

 
%s Kanali Erisim Listesi:

   
Sira   Seviye  Nick

CHAN_ACCESS_LIST_FORMAT

   
%4d    %4d   %






Bu Satırları bulup, Şu şekilde değiştirin



PHP- Kodu:
CHAN_ACCESS_LIST_HEADER

 
%s Kanali Erisim Listesi:

   
Sira   Seviye  Nick  Durum

CHAN_ACCESS_LIST_FORMAT

   
%4d    %4d   %s   %






-





PHP- Kodu:
CHAN_XOP_ADDED

 
%%%s listesine eklendi




Bu Satırları bulup, Şu şekilde değiştirin





PHP- Kodu:
CHAN_XOP_ADDED

 
%s nickine %%s listesine eklenmesi için Kabul Mesajı Gönderildi 




-





PHP- Kodu:
CHAN_XOP_LIST_HEADER

 
%%s listesi:

   
Sira   Nick

CHAN_XOP_LIST_FORMAT

   
%4d   %






Bu Satırları bulup, Şu şekilde değiştirin:





PHP- Kodu:
CHAN_XOP_LIST_HEADER

 
%%s listesi:

   
Sira   Nick   Durum

CHAN_XOP_LIST_FORMAT

   
%4d   %s   %




pico modules\chanserv\access-levels.c





PHP- Kodu:
int is_list;  /* Is true when command is either LIST or COUNT */ 


Bu Satırları bulup, bir üstüne şu satırı ekleyin



User *sky;



-





PHP- Kodu:
notice_lang(s_ChanServuCHAN_ACCESS_ADDEDnickchanlevel); 




Bu satırı bulup, bir altına şu satırları ekleyin



PHP- Kodu:
  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->nicku->nickchan);

    
send_cmd(s_ChanServ"NOTICE %s :Kabul Etmek için /chanserv kabul %s e Yaziniz."sky->nickchan);

    
send_cmd(s_ChanServ"NOTICE %s :Reddetmek için /chanserv kabul %s h Yaziniz."sky->nickchan);

   }

  } 




---





PHP- Kodu:
static int access_list(User *uint indexChannelInfo *ciint *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_ChanServuCHAN_ACCESS_LIST_HEADERci->name);

 *
sent_header 1;

    }

    
notice_lang(s_ChanServuCHAN_ACCESS_LIST_FORMAT,

  
index+1access->levelngi_mainnick(ngi));

    return 
RET_LISTED;








Bu kodu bulup, şu kod ile değiştirin





PHP- Kodu:
static int access_list(User *uint indexChannelInfo *ciint *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_ChanServuCHAN_ACCESS_LIST_HEADERci->name);

 *
sent_header 1;

    }

 if (
access->kabul==0)

    
notice_lang(s_ChanServuCHAN_ACCESS_LIST_FORMAT,

  
index+1access->levelngi_mainnick(ngi), "<Beklemede>");

 else if (
access->kabul==1)

    
notice_lang(s_ChanServuCHAN_ACCESS_LIST_FORMAT,

  
index+1access->levelngi_mainnick(ngi), "<Kabul Edildi>");

    return 
RET_LISTED;




pico modules\chanserv\access-xop.c





PHP- Kodu:
const char *listname XOP_LISTNAME(level); 




Bu Satıri bulup, bir üstüne şu satırı ekleyin





PHP- Kodu:
User *sky




-





PHP- Kodu:
notice_lang(s_ChanServuCHAN_XOP_ADDEDnickchanlistname); 




Bu satırı bulup bir altına şu satırları ekleyin:





PHP- Kodu:
    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->nicku->nickchan);

    
send_cmd(s_ChanServ"NOTICE %s :Kabul Etmek için /chanserv kabul %s e Yaziniz."sky->nickchan);

    
send_cmd(s_ChanServ"NOTICE %s :Reddetmek için /chanserv kabul %s h Yaziniz."sky->nickchan);

   }

  } 




-





PHP- Kodu:
static int xop_list(User *uint indexChannelInfo *ciint *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_ChanServuCHAN_XOP_LIST_HEADER,

      
XOP_LISTNAME(access->level), ci->name);

 *
sent_header 1;

    }

    
notice_lang(s_ChanServuCHAN_XOP_LIST_FORMATrelindex,

  
ngi_mainnick(ngi));

    return 
1;






Bu kodu bulup şu kod ile değiştirin





PHP- Kodu:
static int xop_list(User *uint indexChannelInfo *ciint *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_ChanServuCHAN_XOP_LIST_HEADER,

      
XOP_LISTNAME(access->level), ci->name);

 *
sent_header 1;

    }

 if (
access->kabul==0)

  
notice_lang(s_ChanServuCHAN_XOP_LIST_FORMATrelindex,

   
ngi_mainnick(ngi), "<Beklemede>");

 else if (
access->kabul==1)

  
notice_lang(s_ChanServuCHAN_XOP_LIST_FORMATrelindex,

   
ngi_mainnick(ngi), "<Kabul Edildi>");

    return 
1;






pico modules\chanserv\access.c





PHP- Kodu:
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.)





PHP- Kodu:
if (ci->access[i].kabul==1




PHP- Kodu:
    ci->access[i].nickgroup ni->nickgroup;

    
ci->access[i].level level




bu satırları bulup hemen altına şu kodu ekleyiniz:



PHP- Kodu:
ci->access[i].kabul 0




PHP- Kodu:
pico moduleschanservchanserv.




PHP- Kodu:
int16 level




bu kodu bulup hemen altına şu kodu ekleyin





PHP- Kodu:
int32 kabul




-





PHP- Kodu:
int16 access_count




bu kodu bulup hemen altına şu kodu ekleyin:





ChanAccess *accesstemp;





pico modules\chanserv\main.c





PHP- Kodu:
static void do_status(User *u); 




PHP- Kodu:
bu satırı bulup hemen altına şu satırı ekleyin


PHP- Kodu:
static void do_kabul(User *u); 




PHP- Kodu:
    "UNSUSPEND",do_unsuspend,is_services_admin,  -1,

  -
1CHAN_OPER_HELP_UNSUSPEND }, 




bu satırları bulup hemen altına şu satırı ekleyin



PHP- Kodu:
    "KABUL",    do_kabul,   NULL,          -1,-1, -}, 




PHP- Kodu:
static void do_help(User *u)






bu satırları bulup hemen bir üstüne şu kodu ekleyin





PHP- Kodu:
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_ChanServuCHAN_REGISTER_SHORT_CHANNEL);

    } else if (*
kanal == '&') {

 
notice_lang(s_ChanServuCHAN_REGISTER_NOT_LOCAL);

    } else if ((*
kanal != '#') && stricmp(kanal"list")) {

 
notice_lang(s_ChanServuCHAN_REGISTER_INVALID_NAME);

    } else if (!
ni) {

 
notice_lang(s_ChanServuCHAN_MUST_REGISTER_NICKs_NickServ);

    } else if (!
user_identified(u)) {

 
notice_lang(s_ChanServuCHAN_MUST_IDENTIFY_NICK,

  
s_NickServs_NickServ);

 } else if (
stricmp(kanal"list") == 0) {

  for (
ci first_channelinfo(); cici next_channelinfo()) {

   if (
ci->flags & (CI_VERBOTEN))

   continue;

   if (
ci->suspendinfo)

      continue;

   
ARRAY_SEARCH_SCALAR(ci->accessnickgroupu->ngi->idi);

   if (
!= 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->nickci->name);

     
send_cmd(s_ChanServ"NOTICE %s :Kabul Etmek için /chanserv kabul %s e Yazınız."u->nickci->name);

     
send_cmd(s_ChanServ"NOTICE %s :Reddetmek için /chanserv kabul %s h Yazınız."u->nickci->name);

     
send_cmd(s_ChanServ"NOTICE %s :-"u->nick);

    }

   }

  }

 return;

 }

 else if (
ci == NULL) {

  
notice_lang(s_ChanServuCHAN_X_NOT_REGISTEREDkanal);

 }

 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 (ici->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->nickkanal);

     }

     else if (
ci->access[i].kabul==1) {

      
send_cmd(s_ChanServ"NOTICE %s :%s Kanalı için Access Eklemesini Zaten Kabul Etmişsiniz."u->nickkanal);

     }

     else {

      
send_cmd(s_ChanServ"NOTICE %s :%s Kanalı için Nickinize Ait Bekleyen Access isteği Yok."u->nickkanal);

     }

         
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->nickkanal);

      
ARRAY_REMOVE(ci->accessi);

         
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->nickkanal);

 }








pico modules\nickserv\main.c







#include "modules/operserv/operserv.h"



bu kodu bulup hemen altına şu kodu ekleyin





#include "modules/chanserv/chanserv.h"





-



PHP- Kodu:
char *s_NickServ


bu kodu bulup hemen altına şu kodu ekleyin:





char *s_ChanServ;



-







PHP- Kodu:
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





PHP- Kodu:
ChannelInfo *ci;

 
int i;

 
int toplam=0




-





PHP- Kodu:
notice_lang(s_NickServuNICK_IDENTIFY_SUCCEEDED); 




bu satırı bulup hemen bir altına şu satırları ekleyiniz





PHP- Kodu:
 for (ci first_channelinfo(); cici next_channelinfo()) {

     if (
ci->flags & (CI_VERBOTEN))

  continue;

  if (
ci->suspendinfo)

      continue;

  
ARRAY_SEARCH_SCALAR(ci->accessnickgroupu->ngi->idi);

  if (
!= 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->nicktoplam);

  
send_cmd(s_ChanServ"NOTICE %s :istekleri Listelemek için /chanserv kabul list Komutunu Uygulayınız."u->nick);

 } 






pico modules\database\version4.c





PHP- Kodu:
SAFE(write_int16(convert_new_level(ci->access[i].level), f)); 




bu satırı bulup hemen altına şu satırı ekleyiniz



PHP- Kodu:
SAFE(write_int32(ci->access[i].kabulf)); 




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;



make

make 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





ci->access[i].level = convert_old_level(lev);



bu satırı bulup hemen altına şu satırı ekleyiniz:





SAFE(read_int32(&ci->access[i].kabul, f));





bu işlemden sonra da tekrar

make

make install

komutlarını uygulayıp servislerinizi getirirseniz işlem tamamlanacaktır.



Not : Çıkan yazılar, kodlar veya komut düzenlerinde devriklik veya hata olabilir.. Bu, Test etmediğimden ve kodu hazırladıktan sonra zamanımın olmayışından kaynaklanıyor.



Not : Umarım kodlar hakkında eskiden yaşananlar yine yaşanmaz.. (BAŞKA FORUMLARDA PAYLAŞACAKSANIZ "Alıntı : Kodlayan Sky-Dancer" gibi bir yazı yazarsanız sevinirim. )



Çıkan hataları bu başlık altında yazarsanız sevinirim.



iyi Çalışmalar..
Cengaver isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı

Hizli Erisim


Tüm Zamanlar GMT +2 Olarak Ayarlanmış. Şuanki Zaman: 20:07 PM.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.