Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Crazy_CnR.PlayerData;
- using GTANetworkAPI;
- using MySql.Data.MySqlClient;
- using System.Threading;
- using System.Collections.Generic;
- using System;
- using Crazy_CnR.Functions;
- using Crazy_CnR.Colors;
- namespace Crazy_CnR.Business
- {
- class Business : Script
- {
- public static List<BusinessVar> BUSINESS_LIST = new List<BusinessVar>();
- [ServerEvent(Event.ResourceStart)]
- public void OnResourceStart()
- {
- LoadAllBusiness();
- }
- public static void LoadAllBusiness()
- {
- string Query = "SELECT a.*, b.name FROM business a LEFT JOIN accounts b ON a.owner = b.id";
- using MySqlCommand command = new MySqlCommand(Query, Database.BussConn);
- {
- using (MySqlDataReader reader = command.ExecuteReader())
- {
- while (reader.Read())
- {
- BusinessVar buss = new BusinessVar();
- buss.BussID = reader.GetInt32("id");
- buss.BussName = reader.GetString("bussname");
- buss.BussOwner = reader.GetInt32("owner");
- buss.BussPosX = reader.GetFloat("x");
- buss.BussPosY = reader.GetFloat("y");
- buss.BussPosZ = reader.GetFloat("z");
- buss.BussCost = reader.GetInt32("busscost");
- buss.BussValidity = reader.GetInt32("validity");
- buss.BussMoney = reader.GetInt32("money");
- buss.BussCol = NAPI.ColShape.CreateCylinderColShape(new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ), 1.5f, 1, 0);
- 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);
- buss.BussBlip = NAPI.Blip.CreateBlip(374, new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ), 1, 1, "Business", 255, 2000, true, 0, 0);
- string str = "";
- if (buss.BussOwner == 0)
- {
- str = $"Business: {buss.BussName}\nCost: {buss.BussCost}\nOwner: Unowned";
- }
- else
- {
- string ownername = reader.GetString("name");
- str = $"Business: {buss.BussName}\nOwner: {ownername}";
- }
- buss.BussLabel = NAPI.TextLabel.CreateTextLabel(str, new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ), 5, 1, 0, new Color(255, 255, 255), false, 0);
- BUSINESS_LIST.Add(buss);
- }
- reader.Close();
- BussGlobalTimer();
- }
- }
- }
- [Command("addbuss", "Usage: /addbuss [business name] [cost]", SensitiveInfo = true)]
- public void CMD_CreateBusiness(Player player, string bussname, int cost)
- {
- string location = Fun.GetPlayerLocName(player);
- int Level = player.GetData<int>(EntityData.PLAYER_LEVEL);
- if (Level > 4)
- {
- string Query = $"INSERT INTO `business` (`bussname`, `owner`, `x`, `y`, `z`, `busscost`, `validity`, `money`) VALUES(@bussname, @owner, @x, @y, @z, @busscost, @validity, @money)";
- using (MySqlCommand command = new MySqlCommand(Query, Database.BussConn))
- {
- command.Parameters.AddWithValue("@bussname", bussname);
- command.Parameters.AddWithValue("@owner", 0);
- command.Parameters.AddWithValue("@x", player.Position.X);
- command.Parameters.AddWithValue("@y", player.Position.Y);
- command.Parameters.AddWithValue("@z", player.Position.Z);
- command.Parameters.AddWithValue("@busscost", cost);
- command.Parameters.AddWithValue("@validity", 0);
- command.Parameters.AddWithValue("@money", 0);
- try
- {
- command.ExecuteNonQuery();
- BusinessVar buss = new BusinessVar();
- buss.BussID = (int)command.LastInsertedId;
- buss.BussOwner = 0;
- buss.BussName = bussname;
- buss.BussPosX = player.Position.X;
- buss.BussPosY = player.Position.Y;
- buss.BussPosZ = player.Position.Z;
- buss.BussCost = cost;
- buss.BussValidity = 0;
- buss.BussMoney = 0;
- buss.BussCol = NAPI.ColShape.CreateCylinderColShape(new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ), 1.5f, 1, 0);
- 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);
- buss.BussBlip = NAPI.Blip.CreateBlip(374, new Vector3(buss.BussPosX, buss.BussPosY, buss.BussPosZ), 1, 1, "Business", 255, 1000, true, 0, 0);
- 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);
- BUSINESS_LIST.Add(buss);
- }
- catch (Exception ex)
- {
- NAPI.Util.ConsoleOutput("[EXCEPTION CMD_CreateBusiness] " + ex.Message);
- NAPI.Util.ConsoleOutput("[EXCEPTION CMD_CreateBusiness] " + ex.StackTrace);
- }
- }
- }
- }
- [ServerEvent(Event.PlayerEnterColshape)]
- public void OnPlayerEnterColshape(ColShape shape, Player player)
- {
- foreach (BusinessVar Busslist in BUSINESS_LIST)
- {
- if (shape == Busslist.BussCol)
- {
- if (Busslist.BussOwner == 0)
- {
- player.TriggerEvent("ShowBusinessInfo", Busslist.BussName, Busslist.BussCost);
- }
- else if (Busslist.BussOwner != 0 && Busslist.BussOwner != Fun.GetPlayerSqlID(player))
- {
- return;
- }
- else
- {
- player.TriggerEvent("ShowPlayerOwnBusinessInfo", Busslist.BussName, Busslist.BussValidity, Busslist.BussMoney);
- }
- }
- }
- }
- [RemoteEvent("BuyBusinessServer")]
- public static void BuyBusinessServer(Player player, string bussname)
- {
- BusinessVar Buss = null;
- foreach (BusinessVar Busslist in BUSINESS_LIST)
- {
- if (Busslist.BussName == bussname)
- {
- Buss = Busslist;
- break;
- }
- }
- if(Buss != null)
- {
- if(NAPI.ColShape.IsPointWithinColshape(Buss.BussCol, player.Position))
- {
- if(Buss.BussOwner == 0)
- {
- if(CountPlayerBusiness(player) > 0)
- {
- Fun.SendNotification(player, "You can not own more then 1 business");
- return;
- }
- if(Fun.GetPlayerLevel(player) < 6)
- {
- Fun.SendNotification(player, "A player with level 6 or above can own the business.");
- return;
- }
- if(Fun.GetPlayerMoney(player) < Buss.BussCost)
- {
- Fun.SendNotification(player, "Insufficient money");
- return;
- }
- Buss.BussOwner = Fun.GetPlayerSqlID(player);
- Buss.BussValidity = 604800;
- string str = $"Business: {Buss.BussName}\nOwner: {player.Name}";
- NAPI.TextLabel.SetTextLabelText(Buss.BussLabel, str);
- try
- {
- string Query = "UPDATE bussname SET owner = @owner, validity = @validity WHERE id = @id";
- using (MySqlCommand command = new MySqlCommand(Query, Database.BussConn))
- {
- command.Parameters.AddWithValue("@owner", Buss.BussOwner);
- command.Parameters.AddWithValue("@validity", Buss.BussValidity);
- command.Parameters.AddWithValue("@id", Buss.BussID);
- command.ExecuteNonQuery();
- }
- Fun.SendNotification(player, $"You have successfully bought ~y~{Buss.BussName}");
- Fun.SendInfoText($"{color.DARK_PURPLE}{player.Name} has bought {color.YELLOW}{Buss.BussName}");
- }
- catch (Exception ex)
- {
- NAPI.Util.ConsoleOutput("[EXCEPTION BuyBusinessServer] " + ex.Message);
- NAPI.Util.ConsoleOutput("[EXCEPTION BuyBusinessServer] " + ex.StackTrace);
- }
- }
- }
- }
- }
- public static int CountPlayerBusiness(Player player)
- {
- int count = 0;
- foreach (BusinessVar Busslist in BUSINESS_LIST)
- {
- if (Busslist.BussOwner == Fun.GetPlayerSqlID(player))
- {
- count++;
- }
- }
- return count;
- }
- public static void AddBusinessFunds(string bussname, int amount)
- {
- foreach (BusinessVar Busslist in BUSINESS_LIST)
- {
- if(Busslist.BussName == bussname)
- {
- if(Busslist.BussOwner != 0)
- {
- if(Busslist.BussMoney >= 200000)
- {
- return;
- }
- Busslist.BussMoney += amount;
- try
- {
- string Query = "UPDATE bussname SET money = @money WHERE id = @id";
- using (MySqlCommand command = new MySqlCommand(Query, Database.BussConn))
- {
- command.Parameters.AddWithValue("@money", Busslist.BussMoney);
- command.Parameters.AddWithValue("@id", Busslist.BussID);
- command.ExecuteNonQuery();
- }
- }
- catch (Exception ex)
- {
- NAPI.Util.ConsoleOutput("[EXCEPTION AddBusinessFunds] " + ex.Message);
- NAPI.Util.ConsoleOutput("[EXCEPTION AddBusinessFunds] " + ex.StackTrace);
- }
- }
- }
- }
- }
- public static void BussGlobalTimer()
- {
- new Timer(obj =>
- {
- NAPI.Task.Run(() =>
- {
- foreach (BusinessVar Busslist in BUSINESS_LIST)
- {
- if (Busslist.BussOwner != 0)
- {
- if(Busslist.BussValidity > 0)
- {
- Busslist.BussValidity--;
- }
- else
- {
- Busslist.BussOwner = 0;
- string str = $"Business: {Busslist.BussName}\nCost: {Busslist.BussCost}\nOwner: Unowned";
- NAPI.TextLabel.SetTextLabelText(Busslist.BussLabel, str);
- try
- {
- string Query = "UPDATE bussname SET owner = @owner, validity = @validity WHERE id = @id";
- using (MySqlCommand command = new MySqlCommand(Query, Database.BussConn))
- {
- command.Parameters.AddWithValue("@owner", Busslist.BussOwner);
- command.Parameters.AddWithValue("@validity", 0);
- command.Parameters.AddWithValue("@id", Busslist.BussID);
- command.ExecuteNonQuery();
- }
- }
- catch (Exception ex)
- {
- NAPI.Util.ConsoleOutput("[EXCEPTION BussGlobalTimer] " + ex.Message);
- NAPI.Util.ConsoleOutput("[EXCEPTION BussGlobalTimer] " + ex.StackTrace);
- }
- }
- }
- }
- });
- }, null, 1000, 1000);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement