Grid Power

Платно Плагин Grid Power 1.0.25

Нет прав для скачивания
Team Rust Mods
Администратор
C# Разработчик
Регистрация
22 Авг 2022
Сообщения
1 233
Devill разместил(а) новый ресурс:

Grid Power - Получайте электричество прямо из линей электропередач

Получайте электричество прямо из Power Grid в Rust — на любой карте, будь то процедурно сгенерированная или пользовательская! Поднимайтесь по опорам линий электропередач, чтобы модернизировать их трансформаторы с помощью таких компонентов , как Root Combiners (для замены отсутствующих/украденных/разрушенных розеток , к которым вы подключаетесь) и Tech Trash (для постоянного повышения уровня выходной мощности до...

Посмотреть страницу этого ресурса...
 
Team Rust Mods
Администратор
C# Разработчик
Регистрация
22 Авг 2022
Сообщения
1 233
Team Rust Mods
Администратор
C# Разработчик
Регистрация
22 Авг 2022
Сообщения
1 233
Devill обновил ресурс Grid Power новой записью:

1.0.11

Обновление за апрель 2023 года принудительная очистка
Исправлена ошибка провисания проводов, которая не работала должным образом и вызывала ошибки в консоли из-за изменений в Rust - убедитесь, что вы обновили свой Oxide до версии v2.0.5800 или выше!

Посмотреть подробности об этом обновлении...
 
Team Rust Mods
Администратор
C# Разработчик
Регистрация
22 Авг 2022
Сообщения
1 233
Devill обновил ресурс Grid Power новой записью:

1.0.13

Исправлен предохранитель, вставленный в панель линии электропередачи, теряющий свое состояние так же быстро, как обычный предохранитель
Удалено это дурацкое отладочное сообщение "CRUNCHING WIRE COROUTINE" с вашей консоли

Посмотреть подробности об этом обновлении...
 
Team Rust Mods
Администратор
C# Разработчик
Регистрация
22 Авг 2022
Сообщения
1 233
Devill обновил ресурс Grid Power новой записью:

1.0.15

Исправлено, что некоторые промышленные объекты и текучие объекты ошибочно принимались за внутренние объекты электросети, что приводило к их непреднамеренному удалению, когда "gp_emergency_cleanup" был выдан вручную в середине очистки - извините за это! Спасибо людям (им обоим!), которые сообщили об этом! Теперь безопасно снова выполнить промежуточную очистку "gp_emergency_cleanup", и она должна стереть только внутренние объекты.

Обновлено разделение "Hangingwires Andhoses" внутри профилей...

Посмотреть подробности об этом обновлении...
 
Пользователь
Пользователь
Регистрация
2 Сен 2025
Сообщения
2
(16:49:14) | Error while compiling GridPower: No data contained in .cs file

(16:49:18) | Error while compiling GridPower: 'Construction.Target' does not contain a definition for 'inBuildingPrivilege' and no accessible extension method 'inBuildingPrivilege' accepting a first argument of type 'Construction.Target' could be found (are you missing a using directive or an assembly reference?) | Line: 5530, Pos: 24
 
Пользователь
Пользователь
Регистрация
2 Сен 2025
Сообщения
2
Hi, I think I've solved the problem.I changed this part:

foreach (Socket_Base item in obj)

{

Construction.Placement placement = default(Construction.Placement);

if (target.entity != null && target.socket != null && target.entity.IsOccupied(target.socket))

{

continue;

}

if (!placement.isPopulated)

{

placement = item.DoPlacement(target);

}

if (!placement.isPopulated)

{

continue;

}

if (!item.CheckSocketMods(ref placement))

{

transform.position = placement.position;

transform.rotation = placement.rotation;

continue;

}





if (TestPlacingThroughRock(common, ref placement, target))

{

transform.position = placement.position;

transform.rotation = placement.rotation;

lastPlacementError = ConstructionErrors.ThroughRock.english;

continue;

}



if (!TestPlacingThroughWall(ref placement, transform, common, target))

{

transform.position = placement.position;

transform.rotation = placement.rotation;

lastPlacementError = "Placing through wall";

continue;

}



if (Vector3.Distance(placement.position, target.player.eyes.position) > common.maxplaceDistance + 1f)

{

transform.position = placement.position;

transform.rotation = placement.rotation;

lastPlacementError = ConstructionErrors.TooFarAway.english;

continue;

}



DeployVolume[] volumes = PrefabAttribute.server.FindAll<DeployVolume>(common.prefabID);



/*

if (DeployVolume.Check(placement.position, placement.rotation, volumes))

{

transform.position = placement.position;

transform.rotation = placement.rotation;

lastPlacementError = "Not enough space";

continue;

}*/



if (DeployVolume.Check(placement.position, placement.rotation, volumes))

{

transform.position = placement.position;

transform.rotation = placement.rotation;

if (DeployVolume.LastDeployHit != null)

{

string blockedByErrorFromCollider = ConstructionErrors.GetBlockedByErrorFromCollider(DeployVolume.LastDeployHit, target.player);

if (!string.IsNullOrEmpty(blockedByErrorFromCollider))

{

lastPlacementError = blockedByErrorFromCollider + DeployVolume.LastDeployHit.name;

continue;

}

}

lastPlacementError = ConstructionErrors.NotEnoughSpace.english;

continue;

}



if (BuildingProximity.Check(target.player, common, placement.position, placement.rotation))

{

transform.position = placement.position;

transform.rotation = placement.rotation;

continue;

}

/*

if (common.isBuildingPrivilege && !target.player.CanPlaceBuildingPrivilege(placement.position, placement.rotation, common.bounds))

{

transform.position = placement.position;

transform.rotation = placement.rotation;

lastPlacementError = ConstructionErrors.StackPrivilege.english;

continue;

}*/

bool flag = target.player.IsBuildingBlocked(placement.position, placement.rotation, common.bounds);

if (!common.canBypassBuildingPermission && flag)

{

transform.position = placement.position;

transform.rotation = placement.rotation;

lastPlacementError = "Building privilege";

continue;

}



target.inBuildingPrivilege = flag;

transform.SetPositionAndRotation(placement.position, placement.rotation);



if (common.holdToPlaceDuration > 0f && target.player != null && common.isServer)

{

Planner planner = target.player.GetHeldEntity() as Planner;

if ((object)planner != null && (Vector3.Distance(target.player.transform.position, planner.serverStartDurationPlacementPosition) > 1f || Mathf.Abs((float)planner.serverStartDurationPlacementTime - common.holdToPlaceDuration) > 0.5f))

{

return false;

}

}



target.inBuildingPrivilege = flag;

transform.position = placement.position;

transform.rotation = placement.rotation;

Facepunch.Pool.FreeUnmanaged(ref obj);

return true;

}


Changed with this one:

foreach (Socket_Base item in obj)
{
Construction.Placement placement = default(Construction.Placement);
if (target.entity != null && target.socket != null && target.entity.IsOccupied(target.socket))
{
continue;
}
if (!placement.isPopulated)
{
placement = item.DoPlacement(target);
}
if (!placement.isPopulated)
{
continue;
}
if (!item.CheckSocketMods(ref placement))
{
transform.position = placement.position;
transform.rotation = placement.rotation;
continue;
}

if (TestPlacingThroughRock(common, ref placement, target))
{
transform.position = placement.position;
transform.rotation = placement.rotation;
lastPlacementError = ConstructionErrors.ThroughRock.english;
continue;
}

if (!TestPlacingThroughWall(ref placement, transform, common, target))
{
transform.position = placement.position;
transform.rotation = placement.rotation;
lastPlacementError = "Placing through wall";
continue;
}

if (Vector3.Distance(placement.position, target.player.eyes.position) > common.maxplaceDistance + 1f)
{
transform.position = placement.position;
transform.rotation = placement.rotation;
lastPlacementError = ConstructionErrors.TooFarAway.english;
continue;
}

DeployVolume[] volumes = PrefabAttribute.server.FindAll<DeployVolume>(common.prefabID);

if (DeployVolume.Check(placement.position, placement.rotation, volumes))
{
transform.position = placement.position;
transform.rotation = placement.rotation;
if (DeployVolume.LastDeployHit != null)
{
string blockedByErrorFromCollider = ConstructionErrors.GetBlockedByErrorFromCollider(DeployVolume.LastDeployHit, target.player);
if (!string.IsNullOrEmpty(blockedByErrorFromCollider))
{
lastPlacementError = blockedByErrorFromCollider + DeployVolume.LastDeployHit.name;
continue;
}
}
lastPlacementError = ConstructionErrors.NotEnoughSpace.english;
continue;
}

if (BuildingProximity.Check(target.player, common, placement.position, placement.rotation))
{
transform.position = placement.position;
transform.rotation = placement.rotation;
continue;
}

bool flag = target.player.IsBuildingBlocked(placement.position, placement.rotation, common.bounds);
if (!common.canBypassBuildingPermission && flag)
{
transform.position = placement.position;
transform.rotation = placement.rotation;
lastPlacementError = "Building privilege";
continue;
}

// → Sostituzione di target.inBuildingPrivilege con la variabile locale
// target.inBuildingPrivilege = flag; <- rimosso
transform.SetPositionAndRotation(placement.position, placement.rotation);

if (common.holdToPlaceDuration > 0f && target.player != null && common.isServer)
{
Planner planner = target.player.GetHeldEntity() as Planner;
if ((object)planner != null &&
(Vector3.Distance(target.player.transform.position, planner.serverStartDurationPlacementPosition) > 1f ||
Mathf.Abs((float)planner.serverStartDurationPlacementTime - common.holdToPlaceDuration) > 0.5f))
{
return false;
}
}

// target.inBuildingPrivilege = flag; <- rimosso
transform.position = placement.position;
transform.rotation = placement.rotation;
Facepunch.Pool.FreeUnmanaged(ref obj);
return true;
}
 
Сверху