Advertisement
Guest User

Untitled

a guest
Sep 18th, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 12.96 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\mp\_utility;
  3. #include maps\mp\gametypes\_hud_util;
  4.  
  5. init()
  6. {
  7.     level thread onPlayerConnect();
  8.     //LogPrint( "test" );
  9. }
  10.  
  11. onPlayerConnect()
  12. {
  13.     for(;;)
  14.     {
  15.         level waittill( "connected", player );
  16.        
  17.         player thread onPlayerSpawned();
  18.     }
  19. }
  20.  
  21. MysqlReturnQuery( Query )
  22. {
  23.     self endon( "query_finished" );
  24.     self endon( "query_failed" );
  25.    
  26.     RandomId = "";
  27.     RandomId += RandomIntRange( 1000, 9999 );
  28.     //self SayAll( RandomId );
  29.     //self SayAll( RandomId + "" );
  30.     LogPrint( "SQL&RETURN&" + Query + "&" + RandomId + "\n" );
  31.    
  32.     wait 0.25;
  33.    
  34.     LoopCounter = 0;
  35.     for( ;; )
  36.     {
  37.         self endon( "query_finished" );
  38.         self endon( "query_failed" );
  39.    
  40.         //self SayAll( "I want data: " + RandomId );
  41.         ReturnData = GetDvar( "server1", "Handled" );
  42.        
  43.         ReturnDataArray = [];
  44.         ReturnDataArray = ExtractReturnData( ReturnData );
  45.        
  46.         if( ReturnDataArray[ 0 ] == ( RandomId + "" ) )
  47.         {
  48.             //self SayAll( ReturnDataArray[ 0 ] );
  49.             //self SayAll( RandomId );
  50.             //self SayAll( "Handled" );
  51.             SetDvar( "server1", "Handled" );
  52.             //self SayAll( ReturnDataArray[ 1 ] );
  53.             return ReturnDataArray[ 1 ] + "-";
  54.             self notify( "query_finished" );
  55.         }
  56.         else
  57.         {
  58.             LoopCounter++;
  59.             wait 1.0;
  60.         }
  61.        
  62.         if( LoopCounter >= 25 )
  63.         {
  64.             self SayAll( "I finally failed!" );
  65.             return "query_failed";
  66.             self notify( "query_failed" );
  67.         }
  68.     }
  69. }
  70.  
  71. Ip()
  72. {
  73.     self endon( "ip_finished" );
  74.     self endon( "ip_failed" );
  75.    
  76.     RandomId = "";
  77.     RandomId += RandomIntRange( 1000, 9999 );
  78.    
  79.     SetDvar( "server2", "Handled" );
  80.    
  81.     LogPrint( "IP" + "&" + self.guid + "&" + RandomId );
  82.    
  83.     wait 0.25;
  84.    
  85.     LoopCounter = 0;
  86.     for( ;; )
  87.     {      
  88.         ReturnData = GetDvar( "server2", "Handled" );
  89.        
  90.         ReturnDataArray = [];
  91.         ReturnDataArray = ExtractReturnData( ReturnData );
  92.        
  93.         if( ReturnDataArray[ 0 ] == self.guid )
  94.         {
  95.             SetDvar( "server2", "Handled" );
  96.             return ReturnDataArray[ 1 ];
  97.             self notify( "ip_finished" );
  98.         }
  99.         else
  100.         {
  101.             LoopCounter++;
  102.             wait 1.0;
  103.         }
  104.        
  105.         if( LoopCounter >= 25 )
  106.         {
  107.             return "ip_failed";
  108.             self notify( "ip_failed" );
  109.         }
  110.     }
  111. }
  112.  
  113. ExtractReturnData( ReturnData )
  114. {
  115.     TempArray = strtok( ReturnData, "&" );
  116.    
  117.     return TempArray;
  118. }
  119.  
  120. onPlayerSpawned()
  121. {
  122.     self endon( "disconnect" );
  123.  
  124.     for(;;)
  125.     {
  126.         self waittill( "spawned_player" );
  127.        
  128.         self thread onPlayerDeath();
  129.         self thread monitorTeabag();
  130.        
  131.         if( self.hasHerpes != true )
  132.             self.hasHerpes = false;
  133.        
  134.         if( self.name == "=BC= Ardivaba" )
  135.         {
  136.             /*
  137.             wait 1.0;
  138.             self.ip = self Ip();
  139.             self iPrintLnBold( self.ip );
  140.             */
  141.         }
  142.     }
  143. }
  144.  
  145. onPlayerDeath()
  146. {
  147.     self endon( "disconnect" );
  148.    
  149.     for( ;; )
  150.     {
  151.         self waittill( "death" );
  152.         //self SayAll( self.origin );
  153.         level.herpes[ self.guid ] = newHudElem();
  154.         level.herpes[ self.guid ].origin = self.origin;
  155.         level.herpes[ self.guid ].guid = self.guid;
  156.         level.herpes[ self.guid ].name = self.name;
  157.         if( self.hasHerpes == "true" )
  158.             level.herpes[ self.guid ].hasHerpes = "true";
  159.         else
  160.             level.herpes[ self.guid ].hasHerpes = "false";
  161.         wait 1.0;
  162.     }
  163. }
  164.  
  165. monitorTeabag()
  166. {
  167.     self endon( "disconnect" );
  168.     self endon( "death" );
  169.    
  170.     for( ;; )
  171.     {
  172.         self notifyOnPlayerCommand( "pressC", "togglecrouch" );
  173.         self waittill( "pressC" );
  174.        
  175.         foreach( herpes in level.herpes )
  176.         {
  177.             if( distance( self.origin, herpes.origin ) <= 100 )
  178.             {
  179.                 self.teaCount += 1;
  180.                
  181.                 if( distance( self.origin, self.teaOrigin ) >= 50 )
  182.                     self.teaCount = 0;
  183.                
  184.                 if( self.teaCount >= 10 )
  185.                 {
  186.                     self.teaCount = 0;
  187.                     if( self.hasHerpes == false )
  188.                     {
  189.                         //self.sqldata = self thread MysqlReturnQuery( "UPDATE players SET points=points+1 WHERE xuid = '" + self.guid + "'" );
  190.                         MysqlReturn = self MysqlReturnQuery( "SELECT * FROM players WHERE xuid = '" + self.guid + "'" );
  191.                        
  192.                         if( strtok( MysqlReturn, "," )[2] == "1" )
  193.                         {
  194.                             self.hasHerpes = true;
  195.                             self SayAll( "^3I gave ^2" + herpes.name + " ^1 HERPES^3!" );
  196.                             foreach( player in level.players )
  197.                             {
  198.                                 if( player.name == herpes.name )
  199.                                 {
  200.                                     player thread MysqlReturnQuery( "UPDATE players SET herpes=herpes+1 WHERE xuid = '" + player.guid + "'" );
  201.                                 }
  202.                             }
  203.                         }
  204.                     }
  205.                     else
  206.                     {
  207.                         self SayAll( "^3I gave ^2" + herpes.name + " ^1 HERPES^3!" );
  208.                         foreach( player in level.players )
  209.                         {
  210.                             if( player.name == herpes.name )
  211.                             {
  212.                                 player thread MysqlReturnQuery( "UPDATE players SET herpes=1 WHERE xuid = '" + player.guid + "'" );
  213.                                 player SayAll( "UPDATE players SET herpes=1 WHERE xuid = '" + player.guid + "'" );
  214.                             }
  215.                         }                      
  216.                     }
  217.                    
  218.                     /*
  219.                     self.teaCount = 0;
  220.                    
  221.                     if( herpes.hasHerpes == "true" )
  222.                     {
  223.                         self SayAll( "I teabagged " + herpes.name + " and got herpes >:(" );
  224.                         foreach( player in level.players )
  225.                         {
  226.                             if( player.name == herpes.name )
  227.                             {
  228.                                 if( player.hasHerpes != "true" )
  229.                                 {
  230.                                     player.hasHerpes = "true";
  231.                                     player SayAll( self.name + " gave me herpes :(" );
  232.                                 }
  233.                             }
  234.                         }
  235.                         self SayAll( "sql teabag " + herpes.guid );
  236.                     }
  237.                     else
  238.                         self SayAll( "I teabagged " + herpes.name );
  239.                     */
  240.                     herpes destroy();
  241.                 }
  242.                
  243.                 self.teaOrigin = self.origin;
  244.                
  245.                 wait 0.1;
  246.             }
  247.         }
  248.     }
  249. }
  250.  
  251. using System;
  252. using System.Collections.Generic;
  253. using System.Linq;
  254. using System.Text;
  255. using aIW;
  256. using System.IO;
  257. using System.Threading;
  258. using System.Text.RegularExpressions;
  259.  
  260. namespace GSCApi
  261. {
  262.     public class gscapi : AdminPluginBase
  263.     {
  264.         public List<AdminClient> Players = new List<AdminClient>();
  265.         public bool Init = false;
  266.  
  267.         string GetIpGuid = "";
  268.  
  269.         public Mysqlcs mysql = new Mysqlcs("localhost", "dbtest", "root", "");
  270.  
  271.         public override EventEat OnSay(AdminClient client, string message)
  272.         {
  273.             HandleMessage(client.GUID.ToString("X1"), message);
  274.  
  275.             if (message.StartsWith("!"))
  276.             {
  277.                 return EventEat.EatAll;
  278.             }
  279.             else
  280.                 return EventEat.EatNone;
  281.         }
  282.  
  283.         public void HandleMessage(string guid, string message)
  284.         {
  285.             if (message == "!ip")
  286.                 GetIp("0" + guid.ToLower());
  287.         }
  288.  
  289.         public override void OnFrame()
  290.         {
  291.             if (Init == false)
  292.             {
  293.                 Thread WatchLogThread = new Thread(new ThreadStart(WatchLog));
  294.                 WatchLogThread.Start();
  295.  
  296.                 Init = true;
  297.             }
  298.         }
  299.  
  300.         void WatchLog()
  301.         {
  302.             var logPath = @"C:\Users\Ardi\Desktop\SERVER\mods\xerpes\games_mp.log";
  303.             long lengthOld = 0;
  304.             long length = 0;
  305.             bool start = true;
  306.             var fs = new FileStream(logPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
  307.             var FI = new FileInfo(logPath);
  308.             var DT = DateTime.Now;
  309.             while (true)
  310.             {
  311.                 DT = DateTime.Now;
  312.                 try
  313.                 {
  314.                     lengthOld = length;
  315.                     FI.Refresh();
  316.                     length = FI.Length;
  317.                     if (start != true)
  318.                     {
  319.                         if (length != lengthOld)
  320.                         {
  321.                             fs.Seek(lengthOld, SeekOrigin.Begin);
  322.                             byte[] newData = new byte[length - lengthOld];
  323.                             var huh = fs.Read(newData, 0, Convert.ToInt32(length - lengthOld));
  324.                             var newDataStr = System.Text.Encoding.UTF8.GetString(newData);
  325.                             var newDataArr = newDataStr.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
  326.                             foreach (var fLine in newDataArr)
  327.                             {
  328.                                 string line = fLine.Substring(7);
  329.                                 if (line != "" && line.StartsWith("SQL"))
  330.                                 {
  331.                                     parseSql(line);
  332.                                 }
  333.                                 else if (line != "" && line.StartsWith("IP"))
  334.                                 {
  335.                                     parseIP(line);
  336.                                 }
  337.                                 else if (line != "" && line.StartsWith("J"))
  338.                                 {
  339.                                     parseConnect(line);
  340.                                 }
  341.                             }
  342.                         }
  343.                     }
  344.                     else start = false;
  345.                 }
  346.                 catch
  347.                 {
  348.                     //SayAll(e.ToString());
  349.                 }
  350.                 if (!(new TimeSpan(DateTime.Now.Ticks).TotalSeconds - new TimeSpan(DT.Ticks).TotalSeconds < 1))
  351.                     Thread.Sleep(1000);
  352.             }
  353.         }
  354.  
  355.         void parseIP(string line)
  356.         {
  357.             string[] LineArray = line.Split('&');
  358.  
  359.             string error = "";
  360.  
  361.             GetIp( LineArray[1] );
  362.         }
  363.  
  364.         void parseSql(string line)
  365.         {
  366.             string[] LineArray = line.Split('&');
  367.             string MySqlData = "";
  368.             MySqlData = "LOLL";
  369.  
  370.             string error = "";
  371.  
  372.             try
  373.             {
  374.                 error = mysql.SingleQuery(LineArray[2]).ToString();
  375.             }
  376.             catch (Exception e)
  377.             {
  378.                 error = e.ToString();
  379.             }
  380.  
  381.             ExecuteCommand("server1 \"" + LineArray[3] + "&" + error + "\"\n");
  382.             //ExecuteCommand("server2 \"" + error + "\"");
  383.             SayAll("FUCKTARDS");
  384.         }
  385.  
  386.         void parseConnect(string line)
  387.         {
  388.             string[] LineArray = line.Split(';');
  389.             mysql.NoReturnQuery("INSERT INTO players ( xuid, points ) VALUES ( '" + LineArray[1] + "', '0' )");
  390.         }
  391.  
  392.         void GetIp(string name)
  393.         {
  394.             GetIpGuid = name;
  395.             CommandRedirectDelegate del = GetDvar_Redirect;
  396.             ExecuteCommand("status\n", del);
  397.         }
  398.  
  399.         void GetDvar_Redirect(string Status)
  400.         {
  401.             ExecuteCommand("server2 \"" + GetIpGuid + "&" + Status.Substring(Status.IndexOf(GetIpGuid) + GetIpGuid.Length + 25 + 2, 18) + "\"");
  402.             //System.Windows.Forms.MessageBox.Show(Status.Substring(Status.IndexOf(GetIpGuid) + GetIpGuid.Length + 25 + 2, 18));
  403.             //System.Windows.Forms.MessageBox.Show("server2 \"" + GetIpGuid + "&" + Status.Substring(Status.IndexOf(GetIpGuid) + GetIpGuid.Length + 25 + 2, 18) + "\"");
  404.             GetIpGuid = "";
  405.         }
  406.     }
  407. }
  408.  
  409. using System;
  410. using System.Collections.Generic;
  411. using System.Linq;
  412. using System.Text;
  413.  
  414. using MySql;
  415. using MySql.Data.MySqlClient;
  416. using MySql.Data.Types;
  417.  
  418. using System.Windows.Forms;
  419.  
  420. namespace GSCApi
  421. {
  422.     public class Mysqlcs
  423.     {
  424.         string Host = null;
  425.         string Database = null;
  426.         string Username = null;
  427.         string Password = null;
  428.  
  429.         public MySqlConnection connection = null;
  430.  
  431.         public Mysqlcs(string inHost, string inDatabase, string inUsername, string inPassword)
  432.         {
  433.             Host = inHost;
  434.             Database = inDatabase;
  435.             Username = inUsername;
  436.             Password = inPassword;
  437.  
  438.             string ConString = "SERVER=" + Host + ";" +
  439.                 "DATABASE=" + Database + ";" +
  440.                 "UID=" + Username + ";" +
  441.                 "PASSWORD=" + Password + ";";
  442.  
  443.             Connect(ConString);
  444.         }
  445.  
  446.         void Connect(string ConString)
  447.         {
  448.             connection = new MySqlConnection(ConString);
  449.             connection.Open();
  450.         }
  451.  
  452.         public string SingleQuery(string Query)
  453.         {
  454.             string Result = "";
  455.             try
  456.             {
  457.                 MySqlCommand Command = connection.CreateCommand();
  458.                 MySqlDataReader Reader;
  459.  
  460.                 Command.CommandText = Query;
  461.                 Reader = Command.ExecuteReader();
  462.  
  463.                 Result = "";
  464.                 while (Reader.Read())
  465.                 {
  466.                     string thisrow = "";
  467.                     for (int i = 0; i < Reader.FieldCount; i++)
  468.                         thisrow += Reader.GetValue(i).ToString() + ",";
  469.                     Result += thisrow + "&";
  470.                 }
  471.                 Reader.Close();
  472.                 Reader.Dispose();
  473.                 Command.Cancel();
  474.                 Command.Dispose();
  475.             }
  476.             catch (Exception e) { }
  477.             //MessageBox.Show(Result.ToString());
  478.             //MessageBox.Show(Query);
  479.             return Result;
  480.         }
  481.  
  482.         public void NoReturnQuery(string Query)
  483.         {
  484.             try
  485.             {
  486.                 MySqlCommand Command = connection.CreateCommand();
  487.  
  488.                 Command.CommandText = Query;
  489.                 Command.ExecuteNonQuery();
  490.             }
  491.             catch { }
  492.         }
  493.     }
  494. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement