Add Fall Back Mode For Early Versions Of Oxide
This commit is contained in:
parent
d2ec93d993
commit
3abdbfe4f1
|
@ -1,3 +1,5 @@
|
||||||
|
using Oxide.Core;
|
||||||
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Oxide.Plugins
|
namespace Oxide.Plugins
|
||||||
|
@ -12,10 +14,51 @@ namespace Oxide.Plugins
|
||||||
//SkinAndSpay skinid "new name" = Reskin and change name of item.
|
//SkinAndSpay skinid "new name" = Reskin and change name of item.
|
||||||
//Permission to use command
|
//Permission to use command
|
||||||
public const string permUse = "SkinAndSpay.use";
|
public const string permUse = "SkinAndSpay.use";
|
||||||
|
public const string permSkin = "SkinAndSpay.skin";
|
||||||
|
public bool HookFallBack = false;
|
||||||
|
List<ulong> Delay = new List<ulong>();
|
||||||
private void Init()
|
private void Init()
|
||||||
{
|
{
|
||||||
//register permission with server
|
//register permission with server
|
||||||
permission.RegisterPermission(permUse, this);
|
permission.RegisterPermission(permUse, this);
|
||||||
|
permission.RegisterPermission(permSkin, this);
|
||||||
|
if (OxideMod.Version.ToString() == "2.0.4012")
|
||||||
|
{
|
||||||
|
Puts("Setting Hook Fall Back Mode");
|
||||||
|
HookFallBack = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnPlayerInput(BasePlayer player, InputState input)
|
||||||
|
{
|
||||||
|
//Falls back for oxide version with out hook.
|
||||||
|
if(HookFallBack)
|
||||||
|
{
|
||||||
|
//Checks Player has permission to reduce server load on heavy hook.
|
||||||
|
if(player.IPlayer.HasPermission(permUse))
|
||||||
|
{
|
||||||
|
//Checks they have spray can and adds a delay cool down from function firing
|
||||||
|
if(player.GetHeldEntity() is SprayCan && input.WasJustReleased(BUTTON.FIRE_PRIMARY) && !Delay.Contains(player.userID))
|
||||||
|
{
|
||||||
|
Delay.Add(player.userID);
|
||||||
|
timer.Once(3, () => { Delay.Remove(player.userID); });
|
||||||
|
timer.Once(1f, () =>
|
||||||
|
{
|
||||||
|
//Scans where player is looking to find decal
|
||||||
|
RaycastHit hit;
|
||||||
|
if (!Physics.Raycast(player.eyes.HeadRay(), out hit)){return;}
|
||||||
|
var entity = hit.GetEntity();
|
||||||
|
if (entity != null && entity.prefabID == 3884356627)
|
||||||
|
{
|
||||||
|
//Found decal so apply skin from held spray can
|
||||||
|
entity.skinID = player.GetHeldEntity().skinID;
|
||||||
|
entity.SendNetworkUpdateImmediate();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private object OnSprayCreate(SprayCan sc, Vector3 vector, Quaternion quaternion)
|
private object OnSprayCreate(SprayCan sc, Vector3 vector, Quaternion quaternion)
|
||||||
|
@ -144,7 +187,7 @@ namespace Oxide.Plugins
|
||||||
//Load default skin 0
|
//Load default skin 0
|
||||||
ulong skin = 0;
|
ulong skin = 0;
|
||||||
//Check permission and reject users without it.
|
//Check permission and reject users without it.
|
||||||
if (!player.IPlayer.HasPermission(permUse))
|
if (!player.IPlayer.HasPermission(permSkin))
|
||||||
{
|
{
|
||||||
player.ChatMessage("Permission required");
|
player.ChatMessage("Permission required");
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue