public void ClientEvent_interactionPressed(Player player, params object[] arguments)
case 7811:
Houses.HouseManager.OpenCarsSellMenu(player);
return;
+это под redage v3?
В RedAge v3 нету ClientEvent_interactionPressedПринцип работы свалки : Встаёшь на маркер и нажимаешь Е - тебе вылезает меню, где ты можешь продать машину. Ты сможешь это сделать даже не имея дома.
*** Скрытый текст не может быть процитирован. ***
1. Закидываете файл Svalka.cs в ваш проект, к примеру, в Core
2. Открываете Main.cs и ищите
3.Чуть ниже находите switch (id) и ниже добавляете это:Код:public void ClientEvent_interactionPressed(Player player, params object[] arguments)
Код:case 7811: Houses.HouseManager.OpenCarsSellMenu(player); return;
печальВ RedAge v3 нету ClientEvent_interactionPressed
Hello! How can I assist you today?
I can't watch videos on YouTube, so I can only upload them here, I can watch them here, they only look and hang on YouTube for up to 59 seconds, I watch them and delete them immediately
using GTANetworkAPI;
using System;
using Redage.SDK;
using NeptuneEvo.Core;
using NeptuneEvo.Character;
using Database;
using NeptuneEvo;
using NeptuneEvo.Handles;
using static NeptuneEvo.Core.BusinessManager;
using System.Collections.Generic;
using NeptuneEvo.VehicleData.Models;
using MySql.Data.MySqlClient;
using NeptuneEvo.Players;
using NeptuneEvo.Functions;
using Localization;
using NeptuneEvo.Accounts;
using GTANetworkMethods;
using System.Linq.Expressions;
using Org.BouncyCastle.Bcpg;
using NeptuneEvo.MoneySystem;
using System.Linq;
namespace NeptuneEvo.Houses
{
class Svalka : Script
{
//private static Vector3 Svalki[i] = new Vector3(-363.91403, -92.45042, 39.015663);
private static nLog Log = new nLog("Свалка");
public static List<Vector3> Svalki = new List<Vector3>
{
new Vector3(-441.31528, -1695.6655, 18.69018),
};
[ServerEvent(Event.ResourceStart)]
public void onResourceStart()
{
try
{
for (int i = 0; i < Svalki.Count; i++)
{
NAPI.Marker.CreateMarker(1, Svalki[i] - new Vector3(0, 0, 0.7), new Vector3(), new Vector3(), 3, new Color(255, 0, 0));
NAPI.Blip.CreateBlip(163, Svalki[i], 0.9f, 1, "Свалка", 255, 0, true, 0, 0);
CustomColShape.CreateCylinderColShape(Svalki[i], 3, 3, 0, ColShapeEnums.Svalka);
NAPI.TextLabel.CreateTextLabel("~r~Сдача транспорта на свалку", Svalki[i] + new Vector3(0, 0, 1.5), 5F, 0.3F, 0, new Color(255, 255, 255));
}
}
catch (Exception e)
{
Log.Write("ResourceStart: " + e.Message, nLog.Type.Error);
}
}
[Interaction(ColShapeEnums.Svalka)]
private void SellCar(ExtPlayer player)
{
var sessionData = player.GetSessionData();
if (sessionData == null)
return;
var accountData = player.GetAccountData();
if (accountData == null)
return;
var characterData = player.GetCharacterData();
if (characterData == null)
return;
if (!player.IsInVehicle)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не в транспорте.", 3000);
return;
}
var vehicle = (ExtVehicle)player.Vehicle;
var vehicleData = VehicleManager.GetVehicleToNumber(vehicle.NumberPlate);
var pl = characterData.FirstName + "_" + characterData.LastName;
var holder = VehicleManager.Vehicles[player.Vehicle.NumberPlate].Holder;
if (pl != holder)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Это не ваш автомобиль", 3000);
return;
}
if (characterData.FirstName == null || characterData.LastName == null)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Этот транспорт нельзя сдать на свалку.", 3000);
return;
}
if (vehicleData == null)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Этот транспорт нельзя сдать на свалку.", 3000);
return;
}
if (holder == null)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Этот транспорт нельзя сдать на свалку.", 3000);
return;
}
if (pl == null)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Этот транспорт нельзя сдать на свалку.", 3000);
return;
}
if (vehicleData == null) return;
if (vehicleData.Holder != sessionData.Name) return;
sessionData.CarSellGov = vehicle.NumberPlate;
int price = 0;
if (BusinessManager.BusProductsData.ContainsKey(vehicleData.Model))
{
switch (accountData.VipLvl)
{
case 0: // None
case 1: // Bronze
case 2: // Silver
price = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData.Model].Price * 0.5);
break;
case 3: // Gold
price = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData.Model].Price * 0.6);
break;
case 4: // Platinum
case 5: // Media Platinum
price = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData.Model].Price * 0.7);
break;
default:
price = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData.Model].Price * 0.5);
break;
}
}
Trigger.ClientEvent(player, "openDialog", "SvalkaSell", $"Вы хотите сдать ваш транспорт на свалку? Вы получите ${price}");
return;
}
}
}
case "CONFIRM_BUY_ORGBODYARMOUR":
Organizations.Manager.CraftBodyArmor(player);
return;
case "SvalkaSell":
var vehicle1 = (ExtVehicle)player.Vehicle;
string number1 = sessionData.CarSellGov;
var vehicleData1 = VehicleManager.GetVehicleToNumber(number1);
var pricesell = 0;
if (BusinessManager.BusProductsData.ContainsKey(vehicleData1.Model))
{
switch (accountData.VipLvl)
{
case 0: // None
case 1: // Bronze
case 2: // Silver
pricesell = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData1.Model].Price * 0.5);
break;
case 3: // Gold
pricesell = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData1.Model].Price * 0.6);
break;
case 4: // Platinum
case 5: // Media Platinum
pricesell = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData1.Model].Price * 0.7);
break;
default:
pricesell = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData1.Model].Price * 0.5);
break;
}
}
MoneySystem.Wallet.Change(player, pricesell);
GameLog.Money($"server", $"player({characterData.UUID})", pricesell, $"carSellgov({vehicleData1.Model})");
Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы успешно сдали автомобиль на свалку!", 3000);
var vehiclesNumber = VehicleManager.GetVehiclesCarNumberToPlayer($"{characterData.FirstName}_{characterData.LastName}");
VehicleManager.Remove(number1);
player.Vehicle.Delete();
return;
В коде выше создается класс `Svalka`, который является скриптом для игрового сервера Rage MP. В этом классе описаны методы и события связанные с функционалом "Свалки" игрового мира.В core создаем файл svalka.cs
C#:using GTANetworkAPI; using System; using Redage.SDK; using NeptuneEvo.Core; using NeptuneEvo.Character; using Database; using NeptuneEvo; using NeptuneEvo.Handles; using static NeptuneEvo.Core.BusinessManager; using System.Collections.Generic; using NeptuneEvo.VehicleData.Models; using MySql.Data.MySqlClient; using NeptuneEvo.Players; using NeptuneEvo.Functions; using Localization; using NeptuneEvo.Accounts; using GTANetworkMethods; using System.Linq.Expressions; using Org.BouncyCastle.Bcpg; using NeptuneEvo.MoneySystem; using System.Linq; namespace NeptuneEvo.Houses { class Svalka : Script { //private static Vector3 Svalki[i] = new Vector3(-363.91403, -92.45042, 39.015663); private static nLog Log = new nLog("Свалка"); public static List<Vector3> Svalki = new List<Vector3> { new Vector3(-441.31528, -1695.6655, 18.69018), }; [ServerEvent(Event.ResourceStart)] public void onResourceStart() { try { for (int i = 0; i < Svalki.Count; i++) { NAPI.Marker.CreateMarker(1, Svalki[i] - new Vector3(0, 0, 0.7), new Vector3(), new Vector3(), 3, new Color(255, 0, 0)); NAPI.Blip.CreateBlip(163, Svalki[i], 0.9f, 1, "Свалка", 255, 0, true, 0, 0); CustomColShape.CreateCylinderColShape(Svalki[i], 3, 3, 0, ColShapeEnums.Svalka); NAPI.TextLabel.CreateTextLabel("~r~Сдача транспорта на свалку", Svalki[i] + new Vector3(0, 0, 1.5), 5F, 0.3F, 0, new Color(255, 255, 255)); } } catch (Exception e) { Log.Write("ResourceStart: " + e.Message, nLog.Type.Error); } } [Interaction(ColShapeEnums.Svalka)] private void SellCar(ExtPlayer player) { var sessionData = player.GetSessionData(); if (sessionData == null) return; var accountData = player.GetAccountData(); if (accountData == null) return; var characterData = player.GetCharacterData(); if (characterData == null) return; if (!player.IsInVehicle) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не в транспорте.", 3000); return; } var vehicle = (ExtVehicle)player.Vehicle; var vehicleData = VehicleManager.GetVehicleToNumber(vehicle.NumberPlate); var pl = characterData.FirstName + "_" + characterData.LastName; var holder = VehicleManager.Vehicles[player.Vehicle.NumberPlate].Holder; if (pl != holder) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Это не ваш автомобиль", 3000); return; } if (characterData.FirstName == null || characterData.LastName == null) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Этот транспорт нельзя сдать на свалку.", 3000); return; } if (vehicleData == null) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Этот транспорт нельзя сдать на свалку.", 3000); return; } if (holder == null) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Этот транспорт нельзя сдать на свалку.", 3000); return; } if (pl == null) { Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Этот транспорт нельзя сдать на свалку.", 3000); return; } if (vehicleData == null) return; if (vehicleData.Holder != sessionData.Name) return; sessionData.CarSellGov = vehicle.NumberPlate; int price = 0; if (BusinessManager.BusProductsData.ContainsKey(vehicleData.Model)) { switch (accountData.VipLvl) { case 0: // None case 1: // Bronze case 2: // Silver price = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData.Model].Price * 0.5); break; case 3: // Gold price = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData.Model].Price * 0.6); break; case 4: // Platinum case 5: // Media Platinum price = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData.Model].Price * 0.7); break; default: price = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData.Model].Price * 0.5); break; } } Trigger.ClientEvent(player, "openDialog", "SvalkaSell", $"Вы хотите сдать ваш транспорт на свалку? Вы получите ${price}"); return; } } }
В main.cs найти case:
C#:case "CONFIRM_BUY_ORGBODYARMOUR": Organizations.Manager.CraftBodyArmor(player); return;
после него добавить:
C#:case "SvalkaSell": var vehicle1 = (ExtVehicle)player.Vehicle; string number1 = sessionData.CarSellGov; var vehicleData1 = VehicleManager.GetVehicleToNumber(number1); var pricesell = 0; if (BusinessManager.BusProductsData.ContainsKey(vehicleData1.Model)) { switch (accountData.VipLvl) { case 0: // None case 1: // Bronze case 2: // Silver pricesell = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData1.Model].Price * 0.5); break; case 3: // Gold pricesell = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData1.Model].Price * 0.6); break; case 4: // Platinum case 5: // Media Platinum pricesell = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData1.Model].Price * 0.7); break; default: pricesell = Convert.ToInt32(BusinessManager.BusProductsData[vehicleData1.Model].Price * 0.5); break; } } MoneySystem.Wallet.Change(player, pricesell); GameLog.Money($"server", $"player({characterData.UUID})", pricesell, $"carSellgov({vehicleData1.Model})"); Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы успешно сдали автомобиль на свалку!", 3000); var vehiclesNumber = VehicleManager.GetVehiclesCarNumberToPlayer($"{characterData.FirstName}_{characterData.LastName}"); VehicleManager.Remove(number1); player.Vehicle.Delete(); return;