Advertisement
Guest User

Steam Group Credits

a guest
Jul 2nd, 2016
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.94 KB | None | 0 0
  1. #pragma semicolon 1
  2. #include <SteamWorks>
  3. #include <shop>
  4.  
  5. ConVar iGroupID,
  6.     CreditsAdder,
  7.     group_adverts,
  8.     CreditsTime;
  9. Handle TimeAuto = null;
  10. bool b_IsMember[MAXPLAYERS+1];
  11. int i_advert[MAXPLAYERS+1];
  12.  
  13. public Plugin myinfo =
  14. {
  15.     name = "Steam Group Credits",
  16.     author = "Xines",
  17.     description = "Deals x amount of credits per x amount of secounds",
  18.     version = "1.0.0.1",
  19.     url = ""
  20. };
  21.  
  22. public void OnPluginStart()
  23. {
  24.     //Chat print on/off for all players
  25.     group_adverts = CreateConVar("sm_group_enable_adverts", "1", "Enables/Disables notifications for all in chat (1=On/0=Off)", FCVAR_PLUGIN|FCVAR_NOTIFY, true, 0.0, true, 1.0);
  26.    
  27.     //Chat print on/off Client
  28.     RegConsoleCmd("sm_sgc", SgcCmd, "(On/Off) Steam Group Credits, Client Announcements");
  29.    
  30.     //Configs
  31.     iGroupID = CreateConVar("sm_groupid_add", "0000000", "Steam Group ID (Replace with yours)", FCVAR_PLUGIN|FCVAR_NOTIFY);
  32.     CreditsAdder = CreateConVar("sm_group_credits", "5", "Credits to give per X time, if player is in group.", FCVAR_PLUGIN|FCVAR_NOTIFY);
  33.     CreditsTime = CreateConVar("sm_group_credits_time", "60", "Time in seconds to deal credits.", FCVAR_PLUGIN|FCVAR_NOTIFY);
  34.    
  35.     //Don't Touch
  36.     HookConVarChange(CreditsTime, Change_CreditsTime);
  37. }
  38.  
  39. public void OnMapStart()
  40. {
  41.     TimeAuto = CreateTimer(GetConVarFloat(CreditsTime), CheckPlayers, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
  42. }
  43.  
  44. public Action CheckPlayers(Handle timer)
  45. {
  46.     for (int i = 1; i <= MaxClients; i++)
  47.     {
  48.         if(IsClientInGame(i) && !IsFakeClient(i))
  49.         {
  50.             addcredits(i);
  51.         }
  52.     }
  53.    
  54.     return Plugin_Continue;
  55. }
  56.  
  57. public void addcredits(int client)
  58. {
  59.     if(b_IsMember[client])
  60.     {
  61.         //Shop_SetClientCredits(client, Shop_GetClientCredits(client) + GetConVarInt(CreditsAdder)); // Frozdark shop
  62.         //Store_SetClientCredits(client, Store_GetClientCredits(client) + GetConVarInt(CreditsAdder)); // Zephs shop
  63.         if(GetConVarBool(group_adverts))
  64.         {
  65.             if(!i_advert[client])
  66.                 PrintToChat(client, "\x01[SM] Вы получили \x04%i\x01 кредит, за то что вступили в нашу \x04стим группу.", GetConVarInt(CreditsAdder));
  67.         }
  68.     }
  69. }
  70.  
  71. public void OnClientPostAdminCheck(int client)
  72. {
  73.     if (IsFakeClient(client))
  74.         return;
  75.  
  76.     b_IsMember[client] = false;
  77.     SteamWorks_GetUserGroupStatus(client, GetConVarInt(iGroupID));
  78. }
  79.  
  80. public int SteamWorks_OnClientGroupStatus(int authid, int groupAccountID, bool isMember, bool isOfficer)
  81. {
  82.     int client = UserAuthGrab(authid);
  83.    
  84.     if (client == -1)
  85.     {
  86.         return;
  87.     }
  88.    
  89.     if(isMember)
  90.     {
  91.         b_IsMember[client] = true;
  92.     }
  93. }
  94.  
  95. public int UserAuthGrab(int authid)
  96. {
  97.     for (int i = 1; i <= MaxClients; i++)
  98.     {
  99.         char charauth[64];
  100.         GetClientAuthId(i, AuthId_Engine, charauth, sizeof(charauth));  
  101.         char authchar[64];
  102.         IntToString(authid, authchar, sizeof(authchar));
  103.         if(StrContains(charauth, authchar) != -1)
  104.         {
  105.             return i;
  106.         }
  107.     }
  108.    
  109.     return -1;
  110. }
  111.  
  112. public void Change_CreditsTime(Handle cvar, const char[] oldVal, const char[] newVal)
  113. {
  114.     if (TimeAuto != null)
  115.     {
  116.         KillTimer(TimeAuto);
  117.         TimeAuto = null;
  118.     }
  119.  
  120.     TimeAuto = CreateTimer(GetConVarFloat(CreditsTime), CheckPlayers, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
  121. }
  122.  
  123. public Action SgcCmd(int client, int args)
  124. {
  125.     if (!GetConVarBool(group_adverts))
  126.     {
  127.         return Plugin_Continue;
  128.     }
  129.    
  130.     switch (i_advert[client])
  131.     {
  132.         case 0:
  133.         {
  134.             i_advert[client] = 1;
  135.             PrintToChat(client, "\x01Уведомления - \x04[OFF]");
  136.         }
  137.         default:
  138.         {
  139.             i_advert[client] = 0;
  140.             PrintToChat(client, "\x01Уведомления - \x04[ON]");
  141.         }
  142.     }
  143.    
  144.     return Plugin_Handled;
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement