From 50792f95a568570e16cd38f466cf1af7ead79a29 Mon Sep 17 00:00:00 2001 From: AqpAnaciy <101519462+aqpanaciy@users.noreply.github.com> Date: Fri, 28 Nov 2025 20:27:45 +0300 Subject: [PATCH 1/4] On stop save only the modified layers --- src/Perpetuum/Zones/Terrains/IntervalLayerSaver.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Perpetuum/Zones/Terrains/IntervalLayerSaver.cs b/src/Perpetuum/Zones/Terrains/IntervalLayerSaver.cs index 3938a8b..67c8692 100644 --- a/src/Perpetuum/Zones/Terrains/IntervalLayerSaver.cs +++ b/src/Perpetuum/Zones/Terrains/IntervalLayerSaver.cs @@ -29,13 +29,17 @@ public IntervalLayerSaver(ILayerFileIO layerFileIO,ILayer layer, IZone zone) public override void Stop() { - SaveLayer(); + // When stopping the server, we save only the modified layers. + if (Interlocked.CompareExchange(ref _dirty, 0, 1) == 1) + { + SaveLayer(); + } base.Stop(); } public override void Update(TimeSpan time) { - if ( Interlocked.CompareExchange(ref _dirty,0,1) == 0) + if (Interlocked.CompareExchange(ref _dirty, 0, 1) == 0) return; SaveLayer(); From 1279ee7eaa09a5d5766f2e73bb36188dbac3ee62 Mon Sep 17 00:00:00 2001 From: AqpAnaciy <101519462+aqpanaciy@users.noreply.github.com> Date: Sun, 30 Nov 2025 19:20:35 +0300 Subject: [PATCH 2/4] Build and upload artifact for x64 platform --- .github/workflows/dotnet.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 667dfd0..b10103a 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -26,10 +26,10 @@ jobs: - name: Restore dependencies run: dotnet restore - name: Build - run: dotnet build src/Perpetuum.ServerService2/Perpetuum.ServerService2.csproj --no-restore --configuration Release --verbosity quiet + run: dotnet build src/Perpetuum.ServerService2/Perpetuum.ServerService2.csproj --no-restore --configuration Release --verbosity quiet -p:Platform=x64 - name: Upload a Build Artifact uses: actions/upload-artifact@v4 with: name: Perpetuum-Server-v2-${{ github.sha }} - path: ${{ env.Workspace }}/bin/Release/net8.0 + path: ${{ env.Workspace }}/bin/x64/Release/net8.0 if: ${{ github.event_name == 'push'}} From 9b9269634c1f4a47930171c38ef3312dec4ae1bf Mon Sep 17 00:00:00 2001 From: AqpAnaciy <101519462+aqpanaciy@users.noreply.github.com> Date: Thu, 4 Dec 2025 19:45:56 +0300 Subject: [PATCH 3/4] Create status badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ac284eb..b74c0a2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ ![opp-server2](opp-server2.png) +[![Build Perpetuum.Server Service v2](https://github.com/OpenPerpetuum/PerpetuumServer2/actions/workflows/dotnet.yml/badge.svg?branch=develop)](https://github.com/OpenPerpetuum/PerpetuumServer2/actions/workflows/dotnet.yml) + # The Open Perpetuum Server 2 From 373a3eaa494dece5e61b0a421a0d17154a0c4282 Mon Sep 17 00:00:00 2001 From: AqpAnaciy <101519462+aqpanaciy@users.noreply.github.com> Date: Thu, 18 Dec 2025 13:02:29 +0300 Subject: [PATCH 4/4] Forcefully update the armor level when logout from the server. --- src/Perpetuum/Zones/ZoneSession.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Perpetuum/Zones/ZoneSession.cs b/src/Perpetuum/Zones/ZoneSession.cs index f858c80..ae0a4a6 100644 --- a/src/Perpetuum/Zones/ZoneSession.cs +++ b/src/Perpetuum/Zones/ZoneSession.cs @@ -949,6 +949,7 @@ private void LogoutPlayer() using (TransactionScope scope = Db.CreateTransaction()) { + _player.DynamicProperties.Update(k.armor, _player.Armor.Ratio(_player.ArmorMax)); _player.Save(); character.ZoneId = _zone.Id; character.ZonePosition = _player.CurrentPosition;