Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Easy VIP System
KinD
Дата: Пятница, 22.02.2013, 22:07 | Сообщение # 1
офлайн

  • Сообщения: 1148
  • Награды: 22
  • Замечания:
 
Функционал:
1)Автоудаление
2)Добавление через ini файл
Код
#include <amxmodx>
new VIPCount;
new Array:Player_info; // Ник
new Array:Data; //Дата
#define VIP_FILE "addons/amxmodx/configs/vip_users.ini"
new is_user_vip_player[33];
new data_add_vip[14];

public plugin_init()
{
     register_plugin("Vipsystem", "1.0", "daywer")
     set_task(0.1,"Load")
     register_clcmd("you_vip","vip_func")
     get_time("%Y.%m.%d", data_add_vip, charsmax(data_add_vip))
}

public vip_func(id)
{
     if(is_user_vip_player[id])
     {
        new msg[250]
        formatex(msg,charsmax(msg),"%s",data_add_vip)
        client_print(id,print_chat,msg)
     }
}     

public plugin_precache()
{
     Player_info = ArrayCreate(64, 1);
     Data = ArrayCreate(64, 1);
}

public client_connect( id )
{
     new name[64];
     new DT[14]
     get_user_name(id,name,63)
     is_user_vip_player [id]= 0
     for (new i = 0; i < VIPCount; i++)
     {
        new Name[64];
        ArrayGetString(Player_info,i, Name, charsmax(Name));
          
        if(equali(Name,name))
        {
           ArrayGetString(Data,i, DT, charsmax(DT));
             
           if(equali(DT,data_add_vip))
           {
              set_task(15.0,"remove_vip_player",id)
           }
           else if(!(equali(DT,data_add_vip)))
           {
              is_user_vip_player [id]= 1     
           }     

        }
     }
}

public remove_vip_player(id)
{
       
        new Name[64]
        get_user_name(id,Name,63)
        new Line = 0
          
        new File=fopen(VIP_FILE,"r");
        if (File)
        {
           new Text[512];
           new AuthData[64];
           new Player_add[40]
          
           while (!feof(File))
           {
              fgets(File,Text,sizeof(Text)-1);
             
              trim(Text);
             
              if (Text[0]==';')   
              {
                 Line++   
                 continue;
              }
              parse(Text,AuthData,sizeof(AuthData)-1,Player_add,charsmax(Player_add))
                
              if(equali(Name,AuthData))
              {
                 new msg[250]
                 formatex(msg,charsmax(msg),";VIP права у %s удалены из-за окончанию срока VIP",Name)
                 write_file(VIP_FILE,msg,Line)
                 server_print("[SYSTEM]Line is %d",Line+1);
                 Load()
              }
              Line++
           }
        }
}        

public Load()
{
     new File=fopen(VIP_FILE,"r");
     VIPCount = 0
     if (File)
     {
        new Text[512];
        new AuthData[44];
        new Player_add[40]
          
        while (!feof(File))
        {
           fgets(File,Text,sizeof(Text)-1);
             
           trim(Text);
             
           if (Text[0]==';')   
           {
              continue;
           }
             
           AuthData[0]=0;
             
           parse(Text,AuthData,sizeof(AuthData)-1,Player_add,charsmax(Player_add))
             
           ArrayPushString(Player_info, AuthData);     
           ArrayPushString(Data, Player_add);     

           VIPCount++;
        }
        server_print("[SYSTEM]Vip player %d",VIPCount);
          
        fclose(File);
     }
}


Skype:daywerok

Сообщение отредактировал KinD - Пятница, 22.02.2013, 22:07
 
Contra63
Дата: Воскресенье, 24.02.2013, 01:00 | Сообщение # 2
офлайн

  • Сообщения: 830
  • Награды: 7
  • Замечания:
 
KinD, спасибо за код. Возьму в свой VIP Private 0.9b

smile


 
KinD
Дата: Воскресенье, 24.02.2013, 01:48 | Сообщение # 3
офлайн

  • Сообщения: 1148
  • Награды: 22
  • Замечания:
 
Пример формы добавления "Hell Machine" "2013.03.23"
1 - ник 2 - дата окончания.


Skype:daywerok
 
  • Страница 1 из 1
  • 1
Поиск: