OnSignUpdated
OxideStructurevoid OnSignUpdated(Signage signage, BasePlayer player, int int32)
void OnSignUpdated(PhotoFrame photoFrame, BasePlayer player)
void OnSignUpdated(CarvablePumpkin carvablePumpkin, BasePlayer player)Метод изменился — проверить — код метода игры отличается от того, под который записан хук в Oxide. Хук всё равно вызывается, но место вызова могло сместиться — стоит проверить после обновления.
Параметры
- signage
- Signage
- player
- BasePlayer
- int32
- int
Возвращаемое значение
voidВозвращаемое значение игнорируется — хук только уведомляет.
Пример
private void OnSignUpdated(Signage signage, BasePlayer player, int int32)
{
Puts("OnSignUpdated");
}Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.
Место встраивания 1
Rust.opj (Oxide)
void Signage.UpdateSign(BaseEntity.RPCMessage)
Передаёт: Signage signage, BasePlayer player, int int32
Метод изменился — проверитьReturnBehavior: ContinueArgumentBehavior: UseArgumentString (this, a0.player, l0)Assembly-CSharp.dll
Место встраивания 2
Rust.opj (Oxide)
void PhotoFrame.UpdateSign(BaseEntity.RPCMessage)
Передаёт: PhotoFrame photoFrame, BasePlayer player
Метод изменился — проверитьReturnBehavior: ContinueArgumentBehavior: UseArgumentString (this, a0.player)Assembly-CSharp.dll
Где вызывается (код игры этой ветки)
// …
if (!(msg.player == null) && CanUpdateSign(msg.player))
{
byte[] array = msg.read.BytesWithSize();
if (array != null && ImageProcessing.IsValidPNG(array, 1024, 1024))
{
_overlayTextureCrc = FileStorage.server.Store(net.ID, 0uL, FileStorage.Type.png, array);
Analytics.Azure.OnUGCCreated(msg.player, this, "photo_frame", array.Length);
UGCModeration.Send(msg.player, this, "photo_frame", _overlayTextureCrc, FileStorage.Type.png);
Interface.CallHook("OnSignUpdated", this, msg.player);
LogEdit(msg.player);
SendNetworkUpdate();
}
}
}Место встраивания 3
Rust.opj (Oxide)
void CarvablePumpkin.UpdateSign(BaseEntity.RPCMessage)
Передаёт: CarvablePumpkin carvablePumpkin, BasePlayer player
Метод изменился — проверитьReturnBehavior: ContinueArgumentBehavior: UseArgumentString (this, a0.player)Assembly-CSharp.dll
Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.