private void ParseCancelWalk(Internal.CommunicationStream message) { int direction = message.ReadUnsignedByte(); var absolutePosition = Player.Position; if (absolutePosition == _lastSnapback) { _snapbackCount++; } else { _snapbackCount = 0; } _lastSnapback.Set(absolutePosition.x, absolutePosition.y, absolutePosition.z); if (_snapbackCount >= 16) { Player.StopAutowalk(true); CreatureStorage.SetAttackTarget(null, false); SendCancel(); _snapbackCount = 0; } Player.AbortAutowalk((Direction)direction); }
static int Set(IntPtr L) { try { ToLua.CheckArgsCount(L, 4); UnityEngine.Vector3Int obj = (UnityEngine.Vector3Int)ToLua.CheckObject(L, 1, typeof(UnityEngine.Vector3Int)); int arg0 = (int)LuaDLL.luaL_checknumber(L, 2); int arg1 = (int)LuaDLL.luaL_checknumber(L, 3); int arg2 = (int)LuaDLL.luaL_checknumber(L, 4); obj.Set(arg0, arg1, arg2); ToLua.SetBack(L, 1, obj); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }