Максимальная производительность для ваших игровых серверов!
Заказать сейчасВыбирай как больше тебе нравится:можно ли вообще получить энтити с игрока
var player = BasePlayer.Find("userid or another") // BasePlayer.Find - для примера получения игрока
var entity = (BaseEntity)player;
var player = BasePlayer.Find("userid or another");
var entity = player.GetComponent<BaseEntity>();
BaseEntity GetMountedEntity(BasePlayer player)
{
if(player.GetMounted())
{
return player.GetMountedEntity();
}
return null;
}
нет такого метода для baseplayerДля того, чтобы получить BaseEntity из BasePlayer в игре Rust, вы можете использовать метод GetMounted() для проверки, находится ли игрок на взводимом объекте. Если игрок находится на взводимом объекте, то вы можете получить BaseEntity, к которому он привязан, с помощью метода GetMountedEntity(). Вот пример кода:
C#:BaseEntity GetMountedEntity(BasePlayer player) { if(player.GetMounted()) { return player.GetMountedEntity(); } return null; }
Вы можете вызвать этот метод, передав в качестве аргумента вашего BasePlayer, и он вернет BaseEntity, если игрок находится на взводимом объекте, или null, если игрок не находится на взводимом объекте.
Извините за путаницу. В Rust нет прямого методанет такого метода для baseplayer
GetMountedEntity()
для BasePlayer
. BaseEntity
, к которому привязан BasePlayer
, вы можете использовать следующий код:BaseEntity GetMountedEntity(BasePlayer player)
{
if (player.isMounted)
{
return player.GetMounted().gameObject.GetComponent<BaseEntity>();
}
return null;
}
isMounted
. Если игрок привязан, то мы получаем BaseEntity
с помощью GetComponent<BaseEntity>()
у gameObject
, к которому привязан BasePlayer
. В противном случае метод возвращает null
.Выбирай как больше тебе нравится:можно ли вообще получить энтити с игрока
var player = BasePlayer.Find("userid or another") // BasePlayer.Find - для примера получения игрока
var entity = (BaseEntity)player;
var player = BasePlayer.Find("userid or another");
var entity = player.GetComponent<BaseEntity>();
Выбирай как больше тебе нравится:
1)
C#:var player = BasePlayer.Find("userid or another") // BasePlayer.Find - для примера получения игрока var entity = (BaseEntity)player;
2)
C#:var player = BasePlayer.Find("userid or another"); var entity = player.GetComponent<BaseEntity>();
BasePlayer basePlayer = BasePlayer.FindByID(тут стим айди чела);
и вроде как можем так:
BaseEntity be = basePlayer as BaseEntity;
Это одно и то же сC#:BasePlayer basePlayer = BasePlayer.FindByID(тут стим айди чела);
C#:и вроде как можем так: BaseEntity be = basePlayer as BaseEntity;
(BaseEntity)player
BasePlayer
основан на BaseEntity
, т.е. он имеет все те же поля и методы что и BaseEntity
.в хук надо было отправить BaseEntity:anguished: Главный вопрос, а зачем?
BasePlayer
основан наBaseEntity
, т.е. он имеет все те же поля и методы что иBaseEntity
.
дс мой знаешь, там бы и написал свою проблемув хук надо было отправить BaseEntity
Ты ловишь или ты вызываешь?в хук надо было отправить BaseEntity
Если ты вызовешь так, гдевызываю
player
это BasePlayer
Interface.Oxide.CallHook("OnTEST", player);
private void OnTEST(BaseEntity entity)
{
Puts($"{entity}");
}
OnTEST
, принимает все объекты BaseEntity
и BaseEntity
-based объекты. А BasePlayer
собственно и основан на BaseEntity
, как и почти все entity в игре.Interface.Oxide.CallHook("OnTEST", entity);
private void OnTEST(BasePlayer player)
{
Puts($"{player}");
}
BasePlayer
и все что на нем основано.понял, спасибоЕсли ты вызовешь так, гдеplayer
этоBasePlayer
Код:Interface.Oxide.CallHook("OnTEST", player);
То хук такого вида
Код:private void OnTEST(BaseEntity entity) { Puts($"{entity}"); }
Будет вызван.
Магия тут в том, что хукOnTEST
, принимает все объектыBaseEntity
иBaseEntity
-based объекты. АBasePlayer
собственно и основан наBaseEntity
, как и почти все entity в игре.
---
Но вот если наоборот,
Код:Interface.Oxide.CallHook("OnTEST", entity);
То хук такого вида
Код:private void OnTEST(BasePlayer player) { Puts($"{player}"); }
Вызван не будет, т.е. он ожидает на входе у себяBasePlayer
и все что на нем основано.
Я вкурсе. Мало-ли, человеку в будущем понадобиться что то наподобии:anguished: Главный вопрос, а зачем?
BasePlayer
основан наBaseEntity
, т.е. он имеет все те же поля и методы что иBaseEntity
.
Он же ответил. Да бы в хук передать. Просто человек не в курсе, что если хук принимает BaseEntity, то туда можно и BasePlayer скормить без преобразования.А зачем человеку знать как получить baseentity из baseplayer - вопрос, покрытый мраком