Guest User

Untitled

a guest
Apr 25th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.68 KB | None | 0 0
  1. cVip Vip;
  2.  
  3. void cVip::Load()
  4. {
  5.     Config.Enabled = Configs.GetInt(0, 1, 1, "VipSystem", "EnableVip", IAJuliaVIP);
  6.     if(!Config.Enabled)return;
  7.  
  8.     GetPrivateProfileString("VipSystem","VIPColumn",    "VIP",      Config.Column,      sizeof(Config.Column),      IAJuliaVIP);
  9.     GetPrivateProfileString("VipSystem","VIPColumnDate","VIP_DATE", Config.ColumnDatesizeof(Config.ColumnDate),  IAJuliaVIP);                     
  10.  
  11.     MuOnlineQuery.CheckColumn(Config.Column,     "MEMB_INFO", "ALTER TABLE MEMB_INFO ADD [%s][int] DEFAULT (0) NOT NULL", Config.Column);
  12.     MuOnlineQuery.CheckColumn(Config.ColumnDate, "MEMB_INFO", "ALTER TABLE MEMB_INFO ADD [%s][int] DEFAULT (0) NOT NULL", Config.ColumnDate);
  13.  
  14.     Config.NumStates        = Configs.GetInt(0, 10, 3, "VipSystem", "NumStates", IAJuliaVIP);  
  15.     Config.AllowRebuying    = Configs.GetInt(0, 1, 0, "VipSystem", "AllowRebuying", IAJuliaVIP);
  16.  
  17.     char PState[10];
  18.     for(int i = 1; i <= Config.NumStates; i++)
  19.     {
  20.         wsprintf(PState, "State%d", i);
  21.  
  22.         GetPrivateProfileString(PState,"VIPStateName","bronze",Config.VIPState[i].VIPName,sizeof(Config.VIPState[i].VIPName), IAJuliaVIP);   
  23.         Config.VIPState[i].EnabledCmd   = Configs.GetInt(0, 1,                               1,     PState, "AllowAutoBuy", IAJuliaVIP);
  24.         Config.VIPState[i].CostPCPoints = Configs.GetInt(0, PCPoint.Config.MaximumPCPoints, 5,      PState, "CostPCPoints", IAJuliaVIP);
  25.         Config.VIPState[i].CostWCoins   = Configs.GetInt(0, PCPoint.Config.MaximumWCPoints, 5,      PState, "CostWCoins",   IAJuliaVIP);
  26.         Config.VIPState[i].CostZen      = Configs.GetInt(0, 2000000000,                      5000,  PState, "CostZen",      IAJuliaVIP);
  27.  
  28.         Config.VIPState[i].BonusExp     = Configs.GetInt(0, 9999,                            5,     PState, "BonusExp",     IAJuliaVIP);
  29.         Config.VIPState[i].BonusZen     = Configs.GetInt(0, 9999,                            5,     PState, "BonusZen",     IAJuliaVIP);
  30.         Config.VIPState[i].BonusDrop    = Configs.GetInt(0, 9999,                            5,     PState, "BonusDrop",    IAJuliaVIP);
  31.  
  32.         Config.VIPState[i].MinHours     = Configs.GetInt(0, 32000,                           1,     PState, "MinHours",     IAJuliaVIP);
  33.         Config.VIPState[i].MaxHours     = Configs.GetInt(Config.VIPState[i].MinHours, 32000, 200,   PState, "MaxHours",     IAJuliaVIP);
  34.     }
  35. }
  36.  
  37. void cVip::Connect(LPOBJ gObj)
  38. {
  39.     if(Config.Enabled)
  40.     {                                              
  41.         MuOnlineQuery.ExecQuery("SELECT %s, %s FROM MEMB_INFO WHERE MEMB__ID = '%s'", Config.Column, Config.ColumnDate, gObj->AccountID);
  42.         MuOnlineQuery.Fetch();
  43.         AddTab[gObj->m_Index].VIP_Type = MuOnlineQuery.GetAsInteger(Config.Column);
  44.         AddTab[gObj->m_Index].VIP_Min = MuOnlineQuery.GetAsInteger(Config.ColumnDate);
  45.         MuOnlineQuery.Close();
  46.  
  47.         AddTab[gObj->m_Index].VIP_Sec = 0;
  48.         if(AddTab[gObj->m_Index].VIP_Min > 0)
  49.         {                                            
  50.             Chat.MessageLog(1, c_Red, t_VIP, gObj, "[VIP] Left %d minutes of VIP.", AddTab[gObj->m_Index].VIP_Min);
  51.         }
  52.     }
  53. }
  54.  
  55. void cVip::Tick(LPOBJ gObj)
  56. {
  57.     if(AddTab[gObj->m_Index].VIP_Type > 0 && Config.Enabled)
  58.     {
  59.         AddTab[gObj->m_Index].VIP_Sec++;
  60.         if(AddTab[gObj->m_Index].VIP_Sec >= 60)
  61.         {
  62.             AddTab[gObj->m_Index].VIP_Min--;
  63.             AddTab[gObj->m_Index].VIP_Sec = 0;
  64.  
  65.             if(CheckVipTime(AddTab[gObj->m_Index].VIP_Min))
  66.             {          
  67.                 Chat.MessageLog(1, c_Red, t_VIP, gObj, "[VIP] You have %d more vip minutes", AddTab[gObj->m_Index].VIP_Min);
  68.             }
  69.             if(AddTab[gObj->m_Index].VIP_Min <= 0)
  70.             {
  71.                 Chat.MessageLog(1, c_Red, t_VIP, gObj, "[VIP] Your vip time is over! You are normal player again.");
  72.                 AddTab[gObj->m_Index].VIP_Type = 0;
  73.                 AddTab[gObj->m_Index].VIP_Min = 0;
  74.                 MuOnlineQuery.ExecQuery("UPDATE MEMB_INFO SET %s = 0, %s = 0 WHERE MEMB__ID = '%s'", Config.Column, Config.ColumnDate, gObj->AccountID);
  75.                 MuOnlineQuery.Fetch();
  76.                 MuOnlineQuery.Close();         
  77.                 MuOnlineQuery.ExecQuery("SELECT %s, %s FROM MEMB_INFO WHERE MEMB__ID = '%s'", Config.Column, Config.ColumnDate, gObj->AccountID);
  78.                 MuOnlineQuery.Fetch();
  79.                 AddTab[gObj->m_Index].VIP_Type = MuOnlineQuery.GetAsInteger(Config.Column);
  80.                 AddTab[gObj->m_Index].VIP_Min = MuOnlineQuery.GetAsInteger(Config.ColumnDate);
  81.                 MuOnlineQuery.Close();
  82.             }
  83.             else
  84.             {
  85.                 MuOnlineQuery.ExecQuery("UPDATE MEMB_INFO SET %s = (%s - 1) WHERE MEMB__ID = '%s'", Config.ColumnDate, Config.ColumnDate, gObj->AccountID);
  86.                 MuOnlineQuery.Fetch();
  87.                 MuOnlineQuery.Close();
  88.                 MuOnlineQuery.ExecQuery("SELECT %s, %s FROM MEMB_INFO WHERE MEMB__ID = '%s'", Config.Column, Config.ColumnDate, gObj->AccountID);
  89.                 MuOnlineQuery.Fetch();
  90.                 AddTab[gObj->m_Index].VIP_Type = MuOnlineQuery.GetAsInteger(Config.Column);
  91.                 AddTab[gObj->m_Index].VIP_Min = MuOnlineQuery.GetAsInteger(Config.ColumnDate);
  92.                 MuOnlineQuery.Close();
  93.             }
  94.         }
  95.     }
  96. }
  97.  
  98. bool cVip::CheckVipTime(int TimeInMin)
  99. {
  100.     switch(TimeInMin)
  101.     {
  102.     case 1:
  103.     case 2:
  104.     case 3:
  105.     case 5:
  106.     case 15:
  107.     case 30:
  108.     case 60:
  109.     case 120:
  110.     case 340:
  111.     case 680:
  112.         return true;
  113.     }
  114.     return false;
  115. }
Add Comment
Please, Sign In to add comment