Update log
Full Argentum Online update
The complete published notes, normalized for clean reading and source attribution.
Extracted changes
- Gameplay
- Balance
- Server
- Fixes
Prison Priest only revives User (#1215) β ReyarB
The Prison Priest now only revives the corresponding user (User#1215 β ReyarB). It does not modify any other status or affect other characters.
Refactor unused parameters (#1195) β Centorios
Removed the [c]MapNumber[/c] parameter from [c]UserDisconnected[/c].
Added explicit [c]Integer[/c] typing to the [c]UserConnected[/c] parameter.
Updated the [c]SaveUser[/c] call to match the new [c]UserDisconnected[/c] signature (now only receives [c]UserIndex[/c]).
This simplifies the user connection/disconnection interfaces and ensures consistent parameter types.
Item damage in combat against NPCs (#1190) β aledg994
Added support for NPC-specific damage ranges using new item properties:
[c]MinHitToNPC[/c]
[c]MaxHitToNPC[/c]
Weapons and ammunition can now define an alternative damage range that applies only when the target is an NPC, while maintaining the current behavior against users.
Technical changes
[c]GetUserDamage[/c] now receives the target type ([c]TargetType[/c]).
[c]GetUserDamageWithItem[/c] incorporates differentiated logic based on the target.
All calls to [c]GetUserDamageWithItem[/c] were updated accordingly.
Added helper [c]GetHitRangeValues[/c], which:
Uses [c]MinHitToNPC[/c] / [c]MaxHitToNPC[/c] when the target is an NPC.
Allows partial overrides (min only or max only).
Validates invalid ranges ([c]MaxHit < MinHit[/c]).
Applies to both weapons and ammunition.
If a weapon or ammunition does not define [c]MinHitToNPC[/c] and/or [c]MaxHitToNPC[/c], traditional values are used automatically.
Refactor SaveCharacterDB into orchestration + focused DB helpers (#1218) β Morgolock
[c]SaveCharacterDB[/c] was converted into an orchestrator while preserving:
Original login validation
[c]PerformanceTestStart[/c] timing
Call order
Invocation of [c]SaveCharacterQuestsDB[/c]
[c]InitUserPersistSnapshot[/c]
[c]LogSaveCharacterDuration[/c]
Original error handler text
Database operations were extracted into private helpers:
[c]SaveCharacterMainDB[/c]
[c]SaveCharacterSpellsDB[/c]
[c]SaveCharacterInventoryDB[/c]
[c]SaveCharacterBankInventoryDB[/c]
[c]SaveCharacterSkillsDB[/c]
[c]SaveCharacterPetsDB[/c]
[c]SaveCharacterQuestsDoneDB[/c]
[c]SaveCharacterInventorySkinsDB[/c]
Each helper:
Receives [c]ByRef[/c] parameters
Follows the [c]GetTickCountRaw + Execute + AppendQueryDuration[/c] pattern
Preserves the original timing labels
Parameter order and SQL constants were preserved (no query strings were modified), as well as the exact pet-type selection logic and quest builder/cleanup behavior.
[c]SaveInventorySkins[/c] was encapsulated within [c]SaveCharacterInventorySkinsDB[/c] to keep the "save inventory skins" timing label unchanged.
Stop updating immutable identity fields on character save (#1219) β Morgolock
Removed [c]name = ?[/c], [c]genre_id = ?[/c], [c]race_id = ?[/c], and [c]class_id = ?[/c] from the [c]QUERY_UPDATE_MAINPJ[/c] builder in [c]Codigo/Database_Queries.bas[/c], so [c]UPDATE user SET ... WHERE id = ?[/c] no longer modifies identity fields.
Also:
Removed packing of corresponding VB parameters from:
[c]SaveCharacterMainDB[/c]
[c]SaveChangesInUser[/c]
Adjusted [c]ReDim Params[/c] from 65 to 61 to match the new placeholder count.
Added [c]Debug.Assert i = UBound(Params) + 1[/c] immediately before [c]Execute(QUERY_UPDATE_MAINPJ, Params)[/c] in both save paths to detect future mismatches between SQL placeholders and packed parameters.
New [c]DisabledInBattleServer[/c] flag for NPCs (#1223, #1224) β Temis-gt
Introduces a new NPC configuration field: [c]DisabledInBattleServer As Integer[/c].
Configuration
Read from config file:
[c]DisabledInBattleServer = Val(LeerNPCs.GetValue(SectionName, "DISABLEDINBATTLESERVER"))[/c]
Conditional check in BattleServer mode:
#If BATTLESERVER = 1 Then If Info.DisabledInBattleServer > 0 Then Exit Function #End If
Impact
Normal servers (BattleServer = 0): No changes. All NPCs load normally.
BattleServer (BattleServer = 1): NPCs with [c]DisabledInBattleServer = 1[/c] are not loaded or listed.
This prevents irrelevant or restricted NPCs from appearing in BattleServer mode and maintains gameplay consistency.
Fix: Net fishing not allowed from the shore (#1226) β ReyarB
Fixed a bug that allowed fishing nets to be used from the shore when it should not have been possible.
Hit Probability Limit Adjustment (5%β95%) (#1203) β Temis-gt
The hit probability calculation in combat (against both NPCs and players) has been adjusted.
Before: Minimum 10% β Maximum 90%
Now:
Source
