Advertisement
Guest User

Steam Group Credits

a guest
Jul 3rd, 2016
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.95 KB | None | 0 0
  1. #pragma semicolon 1
  2. #include <SteamWorks>
  3. #include <shop>
  4.  
  5. #define LoopAllPlayers(%1) for(int %1=1;%1<=MaxClients;++%1)\
  6. if(IsClientInGame(%1) && !IsFakeClient(%1))
  7.  
  8. ConVar iGroupID,
  9.     CreditsAdder,
  10.     group_adverts,
  11.     CreditsTime;
  12. bool b_IsMember[MAXPLAYERS+1],
  13.     b_advert[MAXPLAYERS+1];
  14.    
  15. // Получить SteamID64: http://steamcommunity.com/groups/{YOUR_GROUP_NAME}/memberslistxml/?xml=1
  16.  
  17. public Plugin myinfo =
  18. {
  19.     name = "Steam Group Credits",
  20.     author = "Xines",
  21.     description = "Deals x amount of credits per x amount of secounds",
  22.     version = "1.0.0.3",
  23.     url = ""
  24. };
  25.  
  26. public void OnPluginStart()
  27. {
  28.     //Chat print on/off for all players
  29.     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);
  30.    
  31.     //Chat print on/off Client
  32.     RegConsoleCmd("sm_sgc", SgcCmd, "(On/Off) Steam Group Credits, Client Announcements");
  33.    
  34.     //Configs
  35.     iGroupID = CreateConVar("sm_groupid_add", "0000000", "Steam Group ID (Replace with yours)", FCVAR_PLUGIN|FCVAR_NOTIFY);
  36.     CreditsAdder = CreateConVar("sm_group_credits", "5", "Credits to give per X time, if player is in group.", FCVAR_PLUGIN|FCVAR_NOTIFY);
  37.     CreditsTime = CreateConVar("sm_group_credits_time", "60.0", "Time in seconds to deal credits.", FCVAR_PLUGIN|FCVAR_NOTIFY);
  38.    
  39.     CreateTimer(GetConVarFloat(CreditsTime), Timer_AutoGiveCredits, _, TIMER_REPEAT);
  40. }
  41.  
  42. public Action Timer_AutoGiveCredits(Handle timer){
  43.     LoopAllPlayers(i){
  44.         GiveCredits(i);
  45.     }
  46. }
  47.  
  48. public void GiveCredits(int client){
  49.     if (b_IsMember[client]){
  50.         int amount = GetConVarInt(CreditsAdder);
  51.         Shop_GiveClientCredits(client, amount, CREDITS_BY_NATIVE);
  52.         if (GetConVarBool(group_adverts)){
  53.             if (b_advert[client]) PrintToChat(client, "\x01Вы получили \x04%i \x01кредит(ов)!", amount);
  54.         }
  55.     } else {
  56.         if (b_advert[client]) PrintToChat(client, "Вы не состоите в нашей steam группе!");
  57.     }
  58. }
  59.  
  60. public void OnClientPostAdminCheck(int client)
  61. {
  62.     b_IsMember[client] = false;
  63.     SteamWorks_GetUserGroupStatus(client, GetConVarInt(iGroupID));
  64. }
  65.  
  66. public int SteamWorks_OnClientGroupStatus(int authid, int groupAccountID, bool isMember, bool isOfficer)
  67. {
  68.     int client = GetUserFromAuthID(authid);
  69.    
  70.     if (isMember) b_IsMember[client] = true;
  71. }
  72.  
  73. int GetUserFromAuthID(int authid)
  74. {
  75.     LoopAllPlayers(i)
  76.     {
  77.         char authstring[50], authstring2[50];
  78.         GetClientAuthId(i, AuthId_Steam3, authstring, sizeof(authstring)); 
  79.         IntToString(authid, authstring2, sizeof(authstring2));
  80.        
  81.         if (StrContains(authstring, authstring2) != -1)
  82.         {
  83.             return i;
  84.         }
  85.     }
  86.     return -1;
  87. }
  88.  
  89. public Action SgcCmd(int client, int args)
  90. {
  91.     if (!GetConVarBool(group_adverts)) return Plugin_Continue;
  92.    
  93.     if (b_advert[client]) PrintToChat(client, "\x01Уведомления - \x04%s", (b_advert[client] = !b_advert[client]) ? "[ON]":"[OFF]");
  94.     return Plugin_Handled;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement