Until a recent rust update, I used to be able to use OnItemDeployed to get code lock information when placing a lock on a door, but, now I only get the door information. Is there another way to get code lock information when placed? A OnCodeLockDeployed or something similar? Thanks.
Getting code lock information?
Discussion in 'Rust Development' started by insane8472, Jul 23, 2016.
-
You can get CodeLock via Reflection.
Code:void OnItemDeployed(Deployer deployer, BaseEntity entity) { Door door = (Door)entity; FieldInfo info = typeof(BaseEntity).GetField("entitySlots", BindingFlags.Instance | BindingFlags.NonPublic); EntityRef[] entitySlots = (EntityRef[])info.GetValue(door); CodeLock codeLock = (CodeLock)entitySlots[0].Get(true); }
Code:Door door = (Door)entity; CodeLock codeLock = (CodeLock)door.GetSlot(BaseEntity.Slot.Lock);
-
Yea..CodeLock fun
-
Code:local buildingBlock = entity:GetComponentInParent(global.Door._type) local lock = buildingBlock:GetComponent("BaseEntity"):GetSlot(0)
-
-
Sorry, been away. Can anyone lend some assistance with lua translations? Thanks.
-
Code:function PLUGIN:DoStuff(player, entity) local door = entity(Door) local codeLock = (CodeLock)door:GetSlot(BaseEntity.Slot.Lock) end
Code:function PLUGIN:DoStuff(player, entity) local door = entity(Door) local info = typeof(BaseEntity).GetField("entitySlots", BindingFlags.Instance and BindingFlags.NonPublic) local entitySlots = (EntityRef)info.GetValue(door) local codeLock = (CodeLock)entitySlots[0].Get(true); end
-
Thank you
Will give it a go when I get back to my computer.
-
I'm sure i'm missing something simple but I keep running into these errors.
Code:attempt to call local 'entity' (a userdata value) attempt to call global 'typeof' (a nil value)