Для исправления ошибки CS1503, связанной с невозможностью преобразовать выражение типа
ulong
в тип
uint
, вам нужно явно привести значение
ulong
к типу
uint
. Вот исправленный фрагмент кода:
C#:
case "setdefault":
{
shortName = arg.Args[1];
itemId = (uint)ulong.Parse(arg.Args[2]); // Приведение к типу uint
skinId = ulong.Parse(arg.Args[3]);
page = arg.Args[4].ToInt();
string layer = arg.Args[5];
if (playerData.DefaultSkins.ContainsKey(shortName))
{
var defaultSkinId = playerData.DefaultSkins[shortName];
playerData.DefaultSkins[shortName] = skinId;
if(defaultSkinId != skinId)
InterfaceBuilder.Instance.UpdateItem(player, shortName, itemId, defaultSkinId, page);
}
else
playerData.DefaultSkins.Add(shortName, skinId);
InterfaceBuilder.Instance.UpdateItem(player, shortName, itemId, skinId, page);
InterfaceBuilder.Instance.DrawSelectSkins(player, shortName, itemId, page);
}
break;
case "setskin":
{
itemId = (uint)ulong.Parse(arg.Args[1]); // Приведение к типу uint
skinId = ulong.Parse(arg.Args[2]);
var entity = _startUseMenu[playerData.SteamId];
if (entity == null)
{
var item = player.inventory.FindItemUID(itemId);
item.SetItemSkin(skinId);
player.SendNetworkUpdate();
return;
}
entity.SetSkin(skinId);
}
break;
case "close":
Пожалуйста, примените эти изменения к вашему коду и проверьте, решают ли они ошибку CS1503, связанную с преобразованием типа
ulong
в тип
uint
.
Исправь ошибку SSkin.cs(643,65): error CS1503: Argument `#1' cannot convert `ulong' expression to type `uint'
switch (arg.Args[0])
{
case "page":
{
shortName = arg.Args[1];
itemId = (uint)ulong.Parse(arg.Args[2]);
page = arg.Args[3].ToInt();
InterfaceBuilder.Instance.DrawSkins(player, shortName, itemId, page);
InterfaceBuilder.Instance.DrawSelectSkins(player, shortName, itemId, page);
}
break;
case "weaponSelect":
{
shortName = arg.Args[1];
itemId = (uint)ulong.Parse(arg.Args[2]);
InterfaceBuilder.Instance.DrawSkins(player, shortName, itemId, 1);
InterfaceBuilder.Instance.DrawSelectSkins(player, shortName, itemId, 1);
}
break;
case "setSelected":
{
shortName = arg.Args[1];
itemId = (uint)ulong.Parse(arg.Args[2]);
skinId = ulong.Parse(arg.Args[3]);
page = arg.Args[4].ToInt();
string layer = arg.Args[5];
playerData.AddOrRemoveSelectedSkin(shortName, skinId);
InterfaceBuilder.Instance.UpdateItem(player, shortName, itemId, skinId, page);
//InterfaceBuilder.Instance.DrawSkins(player, shortName, itemId, page);
InterfaceBuilder.Instance.DrawSelectSkins(player, shortName, itemId, page);
}
break;
case "setdefault":
{
shortName = arg.Args[1];
itemId = (uint)ulong.Parse(arg.Args[2]); // Приведение к типу uint
skinId = ulong.Parse(arg.Args[3]);
page = arg.Args[4].ToInt();
string layer = arg.Args[5];
if (playerData.DefaultSkins.ContainsKey(shortName))
{
var defaultSkinId = playerData.DefaultSkins[shortName];
playerData.DefaultSkins[shortName] = skinId;
if(defaultSkinId != skinId)
InterfaceBuilder.Instance.UpdateItem(player, shortName, itemId, defaultSkinId, page);
}
else
playerData.DefaultSkins.Add(shortName, skinId);
InterfaceBuilder.Instance.UpdateItem(player, shortName, itemId, skinId, page);
InterfaceBuilder.Instance.DrawSelectSkins(player, shortName, itemId, page);
}
break;
case "setskin":
{
itemId = (uint)ulong.Parse(arg.Args[1]); // Приведение к типу uint
skinId = ulong.Parse(arg.Args[2]);
var entity = _startUseMenu[playerData.SteamId];
if (entity == null)
{
var item = player.inventory.FindItemUID(itemId);
item.SetItemSkin(skinId);
player.SendNetworkUpdate();
return;
}
entity.SetSkin(skinId);
}
break;
case "close":
{
InterfaceBuilder.Instance.DestroyAllUI(player);
_startUseMenu.Remove(player.userID);
player.EndLooting();
}
break;
case "openEntityUi":
{
if (arg.Args.Length < 1)
return;
SkinEntityCommand(player, "console", new string[] { arg.Args[1] });
}
break;
case "openDefaultUi":
{
SkinCommand(player, "console", new string[0]);
}
break;
}