shourya90

Untitled

Apr 22nd, 2021
647
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using Crazy_CnR.PlayerData;
  2. using GTANetworkAPI;
  3. using MySql.Data.MySqlClient;
  4. using System.Threading;
  5. using System.Collections.Generic;
  6. using System;
  7. using Crazy_CnR.Functions;
  8. using Crazy_CnR.Colors;
  9.  
  10. namespace Crazy_CnR.Business
  11. {
  12.     class Business : Script
  13.     {
  14.         public static List<BusinessVar> BUSINESS_LIST = new List<BusinessVar>();
  15.         [ServerEvent(Event.ResourceStart)]
  16.         public void OnResourceStart()
  17.         {
  18.             LoadAllBusiness();
  19.         }
  20.         public static void LoadAllBusiness()
  21.         {
  22.             string Query = "SELECT a.*, b.name FROM business a LEFT JOIN accounts b ON a.owner = b.id";
  23.             using MySqlCommand command = new MySqlCommand(Query, Database.BussConn);
  24.             {
  25.  
  26.                 using (MySqlDataReader reader = command.ExecuteReader())
  27.                 {
  28.                     while (reader.Read())
  29.                     {
  30.  
  31.                         BusinessVar buss = new BusinessVar();
  32.                         buss.BussID = reader.GetInt32("id");
  33.                         buss.BussName = reader.GetString("bussname");
  34.                         buss.BussOwner = reader.GetInt32("owner");
  35.                         buss.BussPosX = reader.GetFloat("x");
  36.                         buss.BussPosY = reader.GetFloat("y");
  37.                         buss.BussPosZ = reader.GetFloat("z");
  38.                         buss.BussCost = reader.GetInt32("busscost");
  39.                         buss.BussValidity = reader.GetInt32("validity");
  40.                         buss.BussMoney = reader.GetInt32("money");
  41.                         buss.BussCol = NAPI.ColShape.CreateCylinderColShape(new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ), 1.5f, 1, 0);
  42.                         buss.BussMarker = NAPI.Marker.CreateMarker(1, new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ - 1), new Vector3(), new Vector3(), 1.5f, new Color(60, 224, 0, 100), false, 0);
  43.                         buss.BussBlip = NAPI.Blip.CreateBlip(374, new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ), 1, 1, "Business", 255, 2000, true, 0, 0);
  44.  
  45.                         string str = "";
  46.                         if (buss.BussOwner == 0)
  47.                         {
  48.                             str = $"Business: {buss.BussName}\nCost: {buss.BussCost}\nOwner: Unowned";
  49.                         }
  50.                         else
  51.                         {
  52.                             string ownername = reader.GetString("name");
  53.                             str = $"Business: {buss.BussName}\nOwner: {ownername}";
  54.                         }
  55.  
  56.                         buss.BussLabel = NAPI.TextLabel.CreateTextLabel(str, new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ), 5, 1, 0, new Color(255, 255, 255), false, 0);
  57.                         BUSINESS_LIST.Add(buss);
  58.                     }
  59.                     reader.Close();
  60.                     BussGlobalTimer();
  61.                 }
  62.             }
  63.         }
  64.         [Command("addbuss", "Usage: /addbuss [business name] [cost]", SensitiveInfo = true)]
  65.         public void CMD_CreateBusiness(Player player, string bussname, int cost)
  66.         {
  67.             string location = Fun.GetPlayerLocName(player);
  68.             int Level = player.GetData<int>(EntityData.PLAYER_LEVEL);
  69.  
  70.             if (Level > 4)
  71.             {
  72.  
  73.                 string Query = $"INSERT INTO `business` (`bussname`, `owner`, `x`, `y`, `z`, `busscost`, `validity`, `money`) VALUES(@bussname, @owner, @x, @y, @z, @busscost, @validity, @money)";
  74.                 using (MySqlCommand command = new MySqlCommand(Query, Database.BussConn))
  75.                 {
  76.  
  77.                     command.Parameters.AddWithValue("@bussname", bussname);
  78.                     command.Parameters.AddWithValue("@owner", 0);
  79.                     command.Parameters.AddWithValue("@x", player.Position.X);
  80.                     command.Parameters.AddWithValue("@y", player.Position.Y);
  81.                     command.Parameters.AddWithValue("@z", player.Position.Z);
  82.                     command.Parameters.AddWithValue("@busscost", cost);
  83.                     command.Parameters.AddWithValue("@validity", 0);
  84.                     command.Parameters.AddWithValue("@money", 0);
  85.  
  86.  
  87.                     try
  88.                     {
  89.                         command.ExecuteNonQuery();
  90.                         BusinessVar buss = new BusinessVar();
  91.                         buss.BussID = (int)command.LastInsertedId;
  92.                         buss.BussOwner = 0;
  93.                         buss.BussName = bussname;
  94.                         buss.BussPosX = player.Position.X;
  95.                         buss.BussPosY = player.Position.Y;
  96.                         buss.BussPosZ = player.Position.Z;
  97.                         buss.BussCost = cost;
  98.                         buss.BussValidity = 0;
  99.                         buss.BussMoney = 0;
  100.                         buss.BussCol = NAPI.ColShape.CreateCylinderColShape(new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ), 1.5f, 1, 0);
  101.                         buss.BussMarker = NAPI.Marker.CreateMarker(1, new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ - 1), new Vector3(), new Vector3(), 1.5f, new Color(60, 224, 0, 100), false, 0);
  102.                         buss.BussBlip = NAPI.Blip.CreateBlip(374, new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ), 1, 1, "Business", 255, 1000, true, 0, 0);
  103.                         buss.BussLabel = NAPI.TextLabel.CreateTextLabel($"Business: { buss.BussName}\nCost: { buss.BussCost}\nOwner: Unowned", new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ), 5, 1, 0, new Color(255, 255, 255), false, 0);
  104.  
  105.  
  106.                         BUSINESS_LIST.Add(buss);
  107.  
  108.                     }
  109.                     catch (Exception ex)
  110.                     {
  111.                         NAPI.Util.ConsoleOutput("[EXCEPTION CMD_CreateBusiness] " + ex.Message);
  112.                         NAPI.Util.ConsoleOutput("[EXCEPTION CMD_CreateBusiness] " + ex.StackTrace);
  113.                     }
  114.  
  115.                 }
  116.             }
  117.         }
  118.         [ServerEvent(Event.PlayerEnterColshape)]
  119.         public void OnPlayerEnterColshape(ColShape shape, Player player)
  120.         {
  121.             foreach (BusinessVar Busslist in BUSINESS_LIST)
  122.             {
  123.                 if (shape == Busslist.BussCol)
  124.                 {
  125.                     if (Busslist.BussOwner == 0)
  126.                     {
  127.                         player.TriggerEvent("ShowBusinessInfo", Busslist.BussName, Busslist.BussCost);
  128.                     }
  129.                     else if (Busslist.BussOwner != 0 && Busslist.BussOwner != Fun.GetPlayerSqlID(player))
  130.                     {
  131.                         return;
  132.                     }
  133.                     else
  134.                     {
  135.                         player.TriggerEvent("ShowPlayerOwnBusinessInfo", Busslist.BussName, Busslist.BussValidity, Busslist.BussMoney);
  136.                     }
  137.                 }
  138.             }
  139.         }
  140.         [RemoteEvent("BuyBusinessServer")]
  141.         public static void BuyBusinessServer(Player player, string bussname)
  142.         {
  143.             BusinessVar Buss = null;
  144.             foreach (BusinessVar Busslist in BUSINESS_LIST)
  145.             {
  146.                 if (Busslist.BussName == bussname)
  147.                 {
  148.                     Buss = Busslist;
  149.                     break;
  150.                 }
  151.             }
  152.             if(Buss != null)
  153.             {
  154.                 if(NAPI.ColShape.IsPointWithinColshape(Buss.BussCol, player.Position))
  155.                 {
  156.                     if(Buss.BussOwner == 0)
  157.                     {
  158.                         if(CountPlayerBusiness(player) > 0)
  159.                         {
  160.                             Fun.SendNotification(player, "You can not own more then 1 business");
  161.                             return;
  162.                         }
  163.                         if(Fun.GetPlayerLevel(player) < 6)
  164.                         {
  165.                             Fun.SendNotification(player, "A player with level 6 or above can own the business.");
  166.                             return;
  167.                         }
  168.                         if(Fun.GetPlayerMoney(player) < Buss.BussCost)
  169.                         {
  170.                             Fun.SendNotification(player, "Insufficient money");
  171.                             return;
  172.                         }
  173.                         Buss.BussOwner = Fun.GetPlayerSqlID(player);
  174.                         Buss.BussValidity = 604800;
  175.                         string str = $"Business: {Buss.BussName}\nOwner: {player.Name}";
  176.                         NAPI.TextLabel.SetTextLabelText(Buss.BussLabel, str);
  177.                         try
  178.                         {
  179.  
  180.  
  181.                             string Query = "UPDATE bussname SET owner = @owner, validity = @validity WHERE id = @id";
  182.                             using (MySqlCommand command = new MySqlCommand(Query, Database.BussConn))
  183.                             {
  184.  
  185.                                 command.Parameters.AddWithValue("@owner", Buss.BussOwner);
  186.                                 command.Parameters.AddWithValue("@validity", Buss.BussValidity);
  187.                                 command.Parameters.AddWithValue("@id", Buss.BussID);
  188.                                 command.ExecuteNonQuery();
  189.  
  190.                             }
  191.                             Fun.SendNotification(player, $"You have successfully bought ~y~{Buss.BussName}");
  192.                             Fun.SendInfoText($"{color.DARK_PURPLE}{player.Name} has bought {color.YELLOW}{Buss.BussName}");
  193.                         }
  194.                         catch (Exception ex)
  195.                         {
  196.                             NAPI.Util.ConsoleOutput("[EXCEPTION BuyBusinessServer] " + ex.Message);
  197.                             NAPI.Util.ConsoleOutput("[EXCEPTION BuyBusinessServer] " + ex.StackTrace);
  198.                         }
  199.                     }
  200.                 }
  201.             }
  202.         }
  203.         public static int CountPlayerBusiness(Player player)
  204.         {
  205.             int count = 0;
  206.             foreach (BusinessVar Busslist in BUSINESS_LIST)
  207.             {
  208.                 if (Busslist.BussOwner == Fun.GetPlayerSqlID(player))
  209.                 {
  210.                     count++;
  211.                 }
  212.             }
  213.             return count;
  214.         }
  215.         public static void AddBusinessFunds(string bussname, int amount)
  216.         {
  217.             foreach (BusinessVar Busslist in BUSINESS_LIST)
  218.             {
  219.                 if(Busslist.BussName == bussname)
  220.                 {
  221.                     if(Busslist.BussOwner != 0)
  222.                     {
  223.                         if(Busslist.BussMoney >= 200000)
  224.                         {
  225.                             return;
  226.                         }
  227.                         Busslist.BussMoney += amount;
  228.                         try
  229.                         {
  230.  
  231.  
  232.                             string Query = "UPDATE bussname SET money = @money WHERE id = @id";
  233.                             using (MySqlCommand command = new MySqlCommand(Query, Database.BussConn))
  234.                             {
  235.  
  236.                                 command.Parameters.AddWithValue("@money", Busslist.BussMoney);
  237.                                 command.Parameters.AddWithValue("@id", Busslist.BussID);
  238.                                 command.ExecuteNonQuery();
  239.  
  240.                             }
  241.  
  242.                         }
  243.                         catch (Exception ex)
  244.                         {
  245.                             NAPI.Util.ConsoleOutput("[EXCEPTION AddBusinessFunds] " + ex.Message);
  246.                             NAPI.Util.ConsoleOutput("[EXCEPTION AddBusinessFunds] " + ex.StackTrace);
  247.                         }
  248.                     }
  249.                 }
  250.             }
  251.         }
  252.         public static void BussGlobalTimer()
  253.         {
  254.             new Timer(obj =>
  255.             {
  256.                 NAPI.Task.Run(() =>
  257.                 {
  258.                     foreach (BusinessVar Busslist in BUSINESS_LIST)
  259.                     {
  260.                         if (Busslist.BussOwner != 0)
  261.                         {
  262.                             if(Busslist.BussValidity > 0)
  263.                             {
  264.                                 Busslist.BussValidity--;
  265.                             }
  266.                             else
  267.                             {
  268.                                 Busslist.BussOwner = 0;
  269.                                 string str = $"Business: {Busslist.BussName}\nCost: {Busslist.BussCost}\nOwner: Unowned";
  270.                                 NAPI.TextLabel.SetTextLabelText(Busslist.BussLabel, str);
  271.                                 try
  272.                                 {
  273.  
  274.  
  275.                                     string Query = "UPDATE bussname SET owner = @owner, validity = @validity WHERE id = @id";
  276.                                     using (MySqlCommand command = new MySqlCommand(Query, Database.BussConn))
  277.                                     {
  278.  
  279.                                         command.Parameters.AddWithValue("@owner", Busslist.BussOwner);
  280.                                         command.Parameters.AddWithValue("@validity", 0);
  281.                                         command.Parameters.AddWithValue("@id", Busslist.BussID);
  282.                                         command.ExecuteNonQuery();
  283.  
  284.                                     }
  285.                                    
  286.                                 }
  287.                                 catch (Exception ex)
  288.                                 {
  289.                                     NAPI.Util.ConsoleOutput("[EXCEPTION BussGlobalTimer] " + ex.Message);
  290.                                     NAPI.Util.ConsoleOutput("[EXCEPTION BussGlobalTimer] " + ex.StackTrace);
  291.                                 }
  292.                             }
  293.                         }
  294.                     }
  295.                 });
  296.  
  297.             }, null, 1000, 1000);
  298.         }
  299.     }
  300. }
  301.  
  302.  
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×