Advertisement
Guest User

plainte admin csgo

a guest
Nov 27th, 2015
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.00 KB | None | 0 0
  1. #include <sourcemod>
  2. #include <sdktools>
  3. #include <morecolors>
  4. #include <smlib>
  5. #undef REQUIRE_PLUGIN
  6. #include <adminmenu>
  7.  
  8.  
  9. #define PLUGIN_NAME         "plainte_se"
  10. #define PLUGIN_AUTHOR       "Dertione"
  11. #define PLUGIN_DESCRIPTION  "susteme plainte pour jailbreak"
  12. #define PLUGIN_VERSION      "0.1"
  13. #define PLUGIN_URL          "http://www.supreme-elite.fr/"
  14. #define DATABASE_NAME "dertione"
  15.  
  16. //new Handle:hTopMenu = INVALID_HANDLE;
  17.  
  18. new Handle:g_hDatabase = INVALID_HANDLE;
  19. new String:Steam_id[20];
  20.  
  21. public Plugin:myinfo =
  22. {
  23.     name        = PLUGIN_NAME,
  24.     author      = PLUGIN_AUTHOR,
  25.     description = PLUGIN_DESCRIPTION,
  26.     version     = PLUGIN_VERSION,
  27.     url         = PLUGIN_URL,
  28. };
  29.  
  30.  
  31.  
  32. public OnPluginStart()
  33. {
  34.     RegConsoleCmd("listeplainte", Command_Plainte, "", 0);
  35. }
  36.  
  37. public OnMapStart()
  38. {
  39.     ConnectBDD();
  40. }
  41.  
  42. public OnMapEnd()
  43. {
  44.     DisconnectSQL();
  45. }
  46.  
  47.  
  48. public Action:Command_Plainte(client, args)
  49. {
  50.     if (IsAdmin(client) || IsRoot(client))
  51.     {
  52.         new Handle:hQuery = INVALID_HANDLE;
  53.         new String:sQuery[255];
  54.         new String:NameOfP[50];
  55.         new String:PlainteDe[65];
  56.         new String:SteamIdOfP[4];
  57.         new id;
  58.         /* :TODO: we should either remove this or make it configurable */
  59.         if(CheckSQL())
  60.         {
  61.             Format(sQuery, sizeof(sQuery), "SELECT id, name_plaignant FROM plainte_se ORDER BY date DESC");
  62.             hQuery = SQL_Query(g_hDatabase, sQuery);
  63.             if(g_hDatabase == INVALID_HANDLE)
  64.             {
  65.                 LogError("Query failed! ");
  66.             }
  67.             else if(!SQL_GetRowCount(hQuery))
  68.             {
  69.                 SendPanelToAll(client,"Aucune plainte");
  70.             }
  71.             else
  72.             {
  73.                 new Handle:menu2 = CreateMenu(MenuHandler_Plaintif);
  74.                 while(SQL_FetchRow(hQuery))
  75.                 {
  76.                     id = SQL_FetchInt(hQuery,0);
  77.                     //SQL_FetchString(hQuery, 0, SteamIdOfP, sizeof(SteamIdOfP));
  78.                     SQL_FetchString(hQuery, 1, NameOfP, sizeof(NameOfP));
  79.                     Format(PlainteDe, 65, "Plainte de %s", NameOfP);
  80.                     IntToString(id, SteamIdOfP,4);
  81.                     AddMenuItem(menu2, SteamIdOfP , PlainteDe);
  82.                 }
  83.                 SetMenuTitle(menu2, "Plaignant");
  84.                 SetMenuExitBackButton(menu2, true);
  85.                 DisplayMenu(menu2, client, MENU_TIME_FOREVER);
  86.             }
  87.             CloseHandle(hQuery);
  88.         }
  89.         else
  90.         {
  91.             DisconnectSQL();
  92.         }
  93.     }
  94.     else
  95.     {
  96.         CPrintToChat(client,"\x01\x0B\x02[Plainte-SE] \x06 Cette commande est restreind aux admins");
  97.     }
  98. }
  99.  
  100. public MenuHandler_Plaintif(Handle:menu, MenuAction:action, client, param2)
  101. {
  102.     /*new Handle:hQuery = INVALID_HANDLE;
  103.     new String:sQuery[255];*/
  104.     if (action == MenuAction_End)
  105.     {
  106.         CloseHandle(menu);
  107.         /*new String:steamid_plaignant[20];
  108.         GetClientAuthString(client, steamid_plaignant,20);
  109.        
  110.         Format(sQuery, sizeof(sQuery), "DELETE FROM plainte_se WHERE authid_plaignant=%s", steamid_plaignant);
  111.         hQuery = SQL_Query(g_hDatabase, sQuery);
  112.         SQL_FetchRow(hQuery);*/
  113.     }
  114.     else if (action == MenuAction_Cancel)
  115.     {
  116.         /*new String:steamid_plaignant[20];
  117.         GetClientAuthString(client, steamid_plaignant,20);
  118.        
  119.         Format(sQuery, sizeof(sQuery), "DELETE FROM plainte_se WHERE authid_plaignant=%s", steamid_plaignant);
  120.         hQuery = SQL_Query(g_hDatabase, sQuery);
  121.         SQL_FetchRow(hQuery);*/
  122.     }
  123.     else if (action == MenuAction_Select)
  124.     {
  125.         decl String:info[4];
  126.         GetMenuItem(menu, param2, info, sizeof(info));
  127.         DisplayPlainteMenu(client, info);
  128.     }
  129. }
  130.  
  131. stock DisplayPlainteMenu(client,const String:id_Plaignant[])
  132. {
  133.     new Handle:hQuery = INVALID_HANDLE;
  134.     new String:sQuery[255];
  135.     new String:NameOfP[50];
  136.     new String:NameOfTitle[65];
  137.     new String:Info[128];
  138.     new Handle:hPanel = CreatePanel();
  139.     if(CheckSQL())
  140.     {
  141.         Format(sQuery, sizeof(sQuery), "SELECT `name_plaignant` FROM `plainte_se` WHERE `id`='%s'",id_Plaignant);
  142.         hQuery = SQL_Query(g_hDatabase, sQuery);   
  143.         SQL_FetchRow(hQuery);
  144.         SQL_FetchString(hQuery, 0, NameOfP, sizeof(NameOfP));
  145.         Format(NameOfTitle, 65, "Plainte de %s", NameOfP);
  146.         SetPanelTitle(hPanel, NameOfP);
  147.         DrawPanelItem(hPanel, "Close");
  148.        
  149.         Format(Steam_id, 20, id_Plaignant);
  150.        
  151.         Format(sQuery, sizeof(sQuery), "SELECT `type` FROM `plainte_se` WHERE `id`='%s'",id_Plaignant);
  152.         hQuery = SQL_Query(g_hDatabase, sQuery);   
  153.         SQL_FetchRow(hQuery);
  154.         SQL_FetchString(hQuery, 0, NameOfP, sizeof(NameOfP));
  155.         Format(NameOfTitle, 65, "Type : %s", NameOfP);
  156.         DrawPanelText(hPanel, NameOfTitle);
  157.        
  158.         Format(sQuery, sizeof(sQuery), "SELECT `name_freekilleur` FROM `plainte_se` WHERE `id`='%s'",id_Plaignant);
  159.         hQuery = SQL_Query(g_hDatabase, sQuery);   
  160.         SQL_FetchRow(hQuery);
  161.         SQL_FetchString(hQuery, 0, NameOfP, sizeof(NameOfP));
  162.         Format(NameOfTitle, 65, "Suspect : %s", NameOfP);
  163.         DrawPanelText(hPanel, NameOfTitle);
  164.        
  165.         Format(sQuery, sizeof(sQuery), "SELECT `lieu` FROM `plainte_se` WHERE `id`='%s'",id_Plaignant);
  166.         hQuery = SQL_Query(g_hDatabase, sQuery);   
  167.         SQL_FetchRow(hQuery);
  168.         SQL_FetchString(hQuery, 0, NameOfP, sizeof(NameOfP));
  169.         Format(NameOfTitle, 65, "Lieu : %s", NameOfP);
  170.         DrawPanelText(hPanel, NameOfTitle);
  171.        
  172.         DrawPanelText(hPanel, "Information supplementaire :");
  173.         Format(sQuery, sizeof(sQuery), "SELECT `info` FROM `plainte_se` WHERE `id`='%s'",id_Plaignant);
  174.         hQuery = SQL_Query(g_hDatabase, sQuery);   
  175.         SQL_FetchRow(hQuery);
  176.         SQL_FetchString(hQuery, 0, Info, sizeof(Info));
  177.         DrawPanelText(hPanel, Info);
  178.        
  179.         DrawPanelItem(hPanel, "Plainte traité");
  180.         DrawPanelItem(hPanel, "Plainte bidon");
  181.        
  182.         SendPanelToClient(hPanel, client, PanelHandler1, MENU_TIME_FOREVER);
  183.         CloseHandle(hQuery);
  184.     }
  185.     CloseHandle(hPanel);
  186. }
  187.  
  188. public PanelHandler1(Handle:menu, MenuAction:action, client, param2)
  189. {
  190.     new Handle:hQuery = INVALID_HANDLE;
  191.     new String:sQuery[255];
  192.     if (action == MenuAction_Select)
  193.     {
  194.         if(CheckSQL())
  195.         {
  196.             if(param2 == 2)
  197.             {
  198.  
  199.                 Format(sQuery, sizeof(sQuery), "DELETE FROM `plainte_se` WHERE `id`='%s'", Steam_id);
  200.                 hQuery = SQL_Query(g_hDatabase, sQuery);
  201.                 CloseHandle(hQuery);
  202.             }
  203.             if(param2 == 3)
  204.             {
  205.                 CPrintToChatAll("\x01\x0B\x02 Les plaintes bidons sont sévérement punis, ne l'oubliez pas !!!!!");
  206.                 Format(sQuery, sizeof(sQuery), "DELETE FROM `plainte_se` WHERE `id`='%s'", Steam_id);
  207.                 hQuery = SQL_Query(g_hDatabase, sQuery);
  208.                 CloseHandle(hQuery);
  209.             }
  210.         }
  211.         else
  212.         {
  213.             DisconnectSQL();
  214.         }
  215.     }
  216.     return true;
  217. }
  218.  
  219.  
  220. public IsRoot(client)
  221. {
  222.     decl String:steamId[30];
  223.     GetClientAuthString(client, steamId, sizeof(steamId));
  224.     if (GetUserFlagBits(client) & ADMFLAG_ROOT) return true;
  225.     else return false;
  226. }
  227.  
  228. public IsAdmin(client)
  229. {
  230.     decl String:steamId[30];
  231.     GetClientAuthString(client, steamId, sizeof(steamId));
  232.     if (GetUserFlagBits(client) & ADMFLAG_SLAY) return true;
  233.     else if (GetUserFlagBits(client) & ADMFLAG_GENERIC) return true;
  234.     else if (GetUserFlagBits(client) & ADMFLAG_BAN) return true;
  235.     else return false;
  236. }
  237.  
  238. SendPanelToAll(from, String:message[])
  239. {  
  240.     ReplaceString(message, 192, "\\n", "\n");
  241.    
  242.     new Handle:mSayPanel = CreatePanel();
  243.     SetPanelTitle(mSayPanel, "Liste Plainte");
  244.     DrawPanelItem(mSayPanel, "", ITEMDRAW_SPACER);
  245.     DrawPanelText(mSayPanel, message);
  246.     DrawPanelItem(mSayPanel, "", ITEMDRAW_SPACER);
  247.  
  248.     SetPanelCurrentKey(mSayPanel, 10);
  249.     DrawPanelItem(mSayPanel, "Exit", ITEMDRAW_CONTROL);
  250.     SendPanelToClient(mSayPanel, from, Handler_DoNothing, 10);
  251.  
  252.     CloseHandle(mSayPanel);
  253. }
  254.  
  255. public Handler_DoNothing(Handle:menu, MenuAction:action, param1, param2)
  256. {
  257.     /* Do nothing */
  258. }
  259.  
  260. public ConnectBDD()
  261. {
  262.     // On check la config présente dans database.cfg
  263.     if (SQL_CheckConfig(DATABASE_NAME))
  264.     {
  265.         new String:error[255];
  266.         // On créé une connexion à la base de donné via la config présente dans database.cfg
  267.         g_hDatabase = SQL_Connect(DATABASE_NAME,true,error, sizeof(error));
  268.         if (g_hDatabase == INVALID_HANDLE)
  269.         {
  270.             LogMessage("Erreur de connexion: %s", error);
  271.         }
  272.         else
  273.         {
  274.             LogMessage("Connexion à la BDD MySQL réussie");
  275.         }
  276.     }
  277.     else
  278.     {
  279.         LogError("Impossible de trouvé <%s> dans le fichier databases.cfg", DATABASE_NAME);
  280.     }
  281.  
  282. }
  283.  
  284.  
  285. stock bool:DisconnectSQL()
  286. {
  287.     if(g_hDatabase != INVALID_HANDLE)
  288.     {
  289.         CloseHandle(g_hDatabase);
  290.         g_hDatabase = INVALID_HANDLE;
  291.     }
  292.    
  293.     return true;
  294. }
  295.  
  296. stock bool:CheckSQL()
  297. {
  298.     if(g_hDatabase == INVALID_HANDLE)
  299.     {
  300.         ConnectBDD();
  301.         return false ;
  302.     }
  303.    
  304.     return true;
  305. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement