Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: this_feature_currently_requires_accessing_site_using_safari
CREATE TABLE IF NOT EXISTS [ICODE]vehicles[/ICODE] (
[ICODE]idkey[/ICODE] int(11) NOT NULL AUTO_INCREMENT,
[ICODE]holder[/ICODE] varchar(155) NOT NULL,
[ICODE]model[/ICODE] varchar(155) NOT NULL,
[ICODE]health[/ICODE] int(11) NOT NULL,
[ICODE]fuel[/ICODE] int(11) NOT NULL,
[ICODE]components[/ICODE] text NOT NULL,
[ICODE]items[/ICODE] text NOT NULL,
[ICODE]position[/ICODE] varchar(255) DEFAULT NULL,
[ICODE]rotation[/ICODE] varchar(255) DEFAULT NULL,
[ICODE]keynum[/ICODE] int(11) NOT NULL DEFAULT 0,
[ICODE]dirt[/ICODE] float NOT NULL DEFAULT 0,
[ICODE]price[/ICODE] int(11) NOT NULL,
[ICODE]number[/ICODE] varchar(155) NOT NULL,
PRIMARY KEY ([ICODE]idkey[/ICODE])
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
[Command("setveh")]
public static void CMD_setveh(Player player, Vehicle vehicle)
{
try
{
Vector3 pos = NAPI.Entity.GetEntityPosition(vehicle) + new Vector3(0, 0, 0.5);
Vector3 rot = NAPI.Entity.GetEntityRotation(vehicle);
VehicleManager.VehicleData data = VehicleManager.Vehicles[vehicle.NumberPlate];
string items = JsonConvert.SerializeObject(data.Items);
MySqlCommand cmd = new MySqlCommand
{
CommandText = "UPDATE [ICODE]vehicles[/ICODE] SET holder=@hold, model=@model, health=@hp, fuel=@fuel, components=@comp, items=@it,position=@pos,rotation=@rot,keynum=@keyn,dirt=@dirt WHERE number=@numb"
};
cmd.Parameters.AddWithValue("@hold", data.Holder);
cmd.Parameters.AddWithValue("@model", data.Model);
cmd.Parameters.AddWithValue("@hp", data.Health);
cmd.Parameters.AddWithValue("@fuel", data.Fuel);
cmd.Parameters.AddWithValue("@comp", JsonConvert.SerializeObject(data.Components));
cmd.Parameters.AddWithValue("@it", items);
cmd.Parameters.AddWithValue("@pos", JsonConvert.SerializeObject(pos));
cmd.Parameters.AddWithValue("@rot", JsonConvert.SerializeObject(rot));
cmd.Parameters.AddWithValue("@keyn", data.KeyNum);
cmd.Parameters.AddWithValue("@dirt", (byte)data.Dirt);
cmd.Parameters.AddWithValue("[USER=3249]@numb[/USER]", vehicle.NumberPlate);
MySQL.Query(cmd);
}
catch (Exception e) { Log.Write("EXCEPTION AT \"ACMD_setfracveh\":\n" + e.ToString(), nLog.Type.Error); }
}
menuItem = new Menu.Item("changekey", Menu.MenuItem.Button);
menuItem.Text = $"Сменить замки";
menu.Add(menuItem);
menuItem = new Menu.Item("parkovka", Menu.MenuItem.Button);
menuItem.Text = $"Припарковать авто";
menu.Add(menuItem);
case "changekey":
case "parkovka":
number = menu.Items[0].Text;
var result = MySQL.QueryRead($"SELECT [ICODE]position[/ICODE], [ICODE]rotation[/ICODE] FROM [ICODE]vehicles[/ICODE] WHERE [ICODE]number[/ICODE]='{number}'");
foreach (DataRow Row in result.Rows)
{
var position = JsonConvert.DeserializeObject<Vector3>(Row["position"].ToString());
var rotation = JsonConvert.DeserializeObject<Vector3>(Row["rotation"].ToString());
garage = GarageManager.Garages[GetHouse(player).GarageID];
if (number != null)
{
Notify.Send(player, NotifyType.Info, NotifyPosition.BottomCenter, $"Ваша машина ", 3000);
NAPI.Task.Run(() =>
{
garage.SpawnCarAtPosition(player, number, position, rotation);
Trigger.ClientEvent(player, "createWaypoint", position.X, position.Y);
}, delayTime: 0);
}
}
return;
case 3:
if (player.IsInVehicle)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Вы не можете открыть инвентарь, находясь в машине", 3000);
return;
}
if (NAPI.Data.GetEntityData(vehicle, "ACCESS") == "WORK" || vehicle.Class == 13 || vehicle.Class == 8)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Эта транспортное средство не поддерживает инвентарь", 3000);
return;
}
if (Main.Players[player].AdminLVL == 0 && VehicleStreaming.GetDoorState(vehicle, DoorID.DoorTrunk) == DoorState.DoorClosed)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Вы не можете открыть инвентарь машины, пока багажник закрыт", 3000);
return;
}
if (vehicle.GetData<bool>("BAGINUSE") == true)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Дождитесь, пока другой человек перестанет пользоваться багажником.", 3000);
return;
}
vehicle.SetData("BAGINUSE", true);
GUI.Dashboard.OpenOut(player, vehicle.GetData<List<nItem>>("ITEMS"), "Багажник", 2);
player.SetData("SELECTEDVEH", vehicle);
return;
case 4:
if (player.IsInVehicle)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Вы не можете припарковать машину, находясь в ней", 3000);
return;
}
Commands.CMD_setveh(player, vehicle);
Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, "Вы припарковали свою машину", 3000);
return;
public CarInfo(string number, VehicleHash model, Vector3 position, Vector3 rotation, int color1, int color2, int price)
public class spawncars
{
public string Number { get; }
public Vector3 Position { get; }
public Vector3 Rotation { get; }
public spawncars(string number, Vector3 position, Vector3 rotation)
{
Number = number;
Position = position;
Rotation = rotation;
}
}
public static bool Save(string Number)
public static bool Save(string Number)
{
if (Vehicles.ContainsKey(Number)) return false;
VehicleData data = Vehicles[Number];
string items = JsonConvert.SerializeObject(data.Items);
if (string.IsNullOrEmpty(items) || items == null) items = "[]";
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = "UPDATE [ICODE]vehicles[/ICODE] SET holder=@hold, model=@model, health=@hp, fuel=@fuel, components=@comp, items=@it,position=@pos,rotation=@rot,keynum=@keyn,dirt=@dirt WHERE number=@numb";
cmd.Parameters.AddWithValue("@hold", data.Holder);
cmd.Parameters.AddWithValue("@model", data.Model);
cmd.Parameters.AddWithValue("@hp", data.Health);
cmd.Parameters.AddWithValue("@fuel", data.Fuel);
cmd.Parameters.AddWithValue("@comp", JsonConvert.SerializeObject(data.Components));
cmd.Parameters.AddWithValue("@it", items);
cmd.Parameters.AddWithValue("@pos", JsonConvert.SerializeObject(data.Position));
cmd.Parameters.AddWithValue("@rot", JsonConvert.SerializeObject(data.Rotation));
cmd.Parameters.AddWithValue("@keyn", data.KeyNum);
cmd.Parameters.AddWithValue("@dirt", (byte)data.Dirt);
cmd.Parameters.AddWithValue("[USER=3249]@numb[/USER]", Number);
MySQL.Query(cmd);
Log.Write("Saved: " + Number);
return true;
}
case "Машина":
switch (index) {
case 0:
case 1:
case 2:
case 3:
if (entity == null) return;
mp.events.callRemote('vehicleSelected', entity, index);
return;
case 0:
case 1:
case 2:
case 3:
case 4:
if (entity == null) return;
mp.events.callRemote('vehicleSelected', entity, index);
return;
.circle .carinv{background-image: url('../icons/carinv.png');}
.circle .setautopos{background-image: url('../icons/setautopos.png');}
"carinv":"Инвентарь",
"setautopos":"Припарковать авто",
"Машина":
[
["hood", "trunk", "doors", "carinv"],
],
"Машина":
[
["hood", "trunk", "doors", "carinv", "setautopos"],
],