Асаламалейкум!
Давайте пофиксим проблему когда ник в маске не пропадал на сборке RedAge 0.3.7 (На 037 точно работает, на 1.1 хз)
Короче просто повторяйте за мной, объяснять ничего не буду, ибо лень
Customization.csДавайте пофиксим проблему когда ник в маске не пропадал на сборке RedAge 0.3.7 (На 037 точно работает, на 1.1 хз)
Короче просто повторяйте за мной, объяснять ничего не буду, ибо лень
C#:
public static void SetMask(Client player, int variation, int texture)
{
if (variation == 0)
{
player.SetSharedData("IS_MASK", false);
ApplyCharacterFace(player);
player.SetClothes(2, CustomPlayerData[Main.Players[player].UUID].Hair.Hair, 0);
NAPI.Player.SetPlayerHairColor(player, (byte)CustomPlayerData[Main.Players[player].UUID].Hair.Color, (byte)CustomPlayerData[Main.Players[player].UUID].Hair.HighlightColor);
}
else
{
player.SetSharedData("IS_MASK", true);
ApplyMaskFace(player);
}
player.SetClothes(1, variation, texture);
}
C#:
public static void interactSafe(Client player)
{
if (!player.HasData("temp_SafeID")) return;
Safe safe = Safes.FirstOrDefault(s => s.ID == player.GetData("temp_SafeID"));
if (safe == null) return;
if (safe.IsOpen)
{
safe.Loot(player);
}
else
{
if (!player.HasSharedData("IS_MASK") || !player.GetData("IS_MASK"))
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Взлом возможен только в маске", 3000);
return;
}
if (safe.Occupier != null && NAPI.Player.GetPlayerFromHandle(safe.Occupier) != null)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Этот сейф уже взламывают", 3000);
return;
}
if (Fractions.Manager.FractionTypes[Main.Players[player].FractionID] != 1)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Доступно только для банд", 3000);
return;
}
if (DateTime.Now.Hour < 13 || DateTime.Now.Hour > 22)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Возможно открыть только с 13:00 до 23:00", 3000);
return;
}
var lockpick = nInventory.Find(Main.Players[player].UUID, ItemType.Lockpick);
var count = (lockpick == null) ? 0 : lockpick.Count;
if (count == 0)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"У Вас нет отмычки", 3000);
return;
}
if (safe.Address != "Мэрия")
{
if (DateTime.Now < NextRobbery && NowRobberyID != safe.ID)
{
DateTime g = new DateTime((NextRobbery - DateTime.Now).Ticks);
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Попробуйте через {g.Minute}:{g.Second}", 3000);
return;
}
}
var nearestPlayers = Main.GetPlayersInRadiusOfPosition(player.Position, 7);
var gangsters = 0;
foreach (var p in nearestPlayers)
{
if (p == null || !Main.Players.ContainsKey(p) || player == p) continue;
if (Fractions.Manager.FractionTypes[Main.Players[p].FractionID] == 1) gangsters++;
}
if (gangsters == 0)
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"С Вами должен быть как минимум ещё один тру гангстер", 3000);
//return;
}
safe.Occupier = player;
player.SetData("CURRENT_STAGE", 0);
Trigger.ClientEvent(player, "dial", "open", safe.LockAngles[0]);
Notify.Send(player, NotifyType.Warning, NotifyPosition.BottomCenter, $"С минуты на минуту сюда прибудут копы", 3000);
Manager.sendFractionMessage(7, $"Сейф по адресу {safe.Address} пытаются взломать");
Manager.sendFractionMessage(9, $"Сейф по адресу {safe.Address} пытаются взломать");
if (safe.Address != "Мэрия")
{
if (NowRobberyID != safe.ID) NextRobbery = DateTime.Now.AddMinutes(15);
NowRobberyID = safe.ID;
}
if (DateTime.Now >= safe.BlipSet)
{
safe.Blip = NAPI.Blip.CreateBlip(0, safe.Position, 1, 59, "Ограбление", 0, 0, true, 0, 0);
safe.Blip.Transparency = 0;
foreach (var p in Main.Players.Keys.ToList())
{
if (!Main.Players.ContainsKey(p)) continue;
if (Main.Players[p].FractionID != 7 && Main.Players[p].FractionID != 9) continue;
Trigger.ClientEvent(p, "changeBlipAlpha", safe.Blip, 255);
Trigger.ClientEvent(p, "createWaypoint", safe.Position.X, safe.Position.Y);
}
safe.BlipSet = DateTime.Now.AddMinutes(15);
NAPI.Task.Run(() => {
try
{
if (safe.Blip != null) safe.Blip.Delete();
} catch { }
}, 900000);
}
if (player.HasSharedData("IS_MASK") && !player.GetSharedData("IS_MASK"))
{
var wantedLevel = new WantedLevel(4, "Полиция", DateTime.Now, "Ограбление сейфа");
Police.setPlayerWantedLevel(player, wantedLevel);
}
}
}
C#:
public static void playerTakeoffMask(Client player, Client target)
{
if (player.IsInVehicle || target.IsInVehicle) return;
if (!target.HasSharedData("IS_MASK") || !target.HasSharedData("IS_MASK"))
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"У игрока нет маски", 3000);
return;
}
var maskItem = nInventory.Items[Main.Players[target].UUID].FirstOrDefault(i => i.Type == ItemType.Mask && i.IsActive);
nInventory.Remove(target, maskItem);
Customization.CustomPlayerData[Main.Players[target].UUID].Clothes.Mask = new ComponentItem(0, 0);
if (maskItem != null) Items.onDrop(player, maskItem, null);
Customization.SetMask(target, 0, 0);;
Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы сорвали маску с игрока ({target.Value})", 3000);
Notify.Send(target, NotifyType.Warning, NotifyPosition.BottomCenter, $"Игрок ({player.Value}) сорвал с Вас маску", 3000);
Commands.RPChat("me", player, " сорвал маску с {name}", target);
}
#endregion
#region crimeCommands
public static void robberyTarget(Client player, Client target)
{
if (!Main.Players.ContainsKey(player) || !Main.Players.ContainsKey(target)) return;
if (!target.GetData("CUFFED") && !target.HasData("HANDS_UP"))
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Игрок должен быть связан или с поднятыми руками", 3000);
return;
}
if (!player.HasSharedData("IS_MASK") || !player.GetSharedData("IS_MASK"))
{
Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Ограбление возможно только в маске", 3000);
return;
}
if (Main.Players[target].LVL < 2 || Main.Players[target].Money <= 1000 || (target.HasData("NEXT_ROB") && DateTime.Now < target.GetData("NEXT_ROB")))
{
Commands.RPChat("me", player, "хорошенько обшарив {name}, ничего не нашёл", target);
return;
}
var max = (Main.Players[target].Money >= 3000) ? 3000 : Convert.ToInt32(Main.Players[target].Money) - 200;
var min = (max - 200 < 0) ? max : max - 200;
var found = Main.rnd.Next(min, max + 1);
MoneySystem.Wallet.Change(target, -found);
MoneySystem.Wallet.Change(player, found);
GameLog.Money($"player({Main.Players[target].UUID})", $"player({Main.Players[player].UUID})", found, $"robbery");
target.SetData("NEXT_ROB", DateTime.Now.AddMinutes(60));
Commands.RPChat("me", player, "хорошенько обшарив {name}" + $", нашёл ${found}", target);
}
Кто не понял, просто замените код в нужных файлах
Ищите по первой строчке нужное место
Если не туда залил тему, ну переместите куда надо
Ну вроде должно работать, но я не уверен, у всех же разные редаги :3
Ищите по первой строчке нужное место
Если не туда залил тему, ну переместите куда надо
Ну вроде должно работать, но я не уверен, у всех же разные редаги :3