GetNpcCombatConfig: Difference between revisions

From Wiki G1R-MP G1 Remake Multiplayer
Jump to navigation Jump to search
Document upcoming 0.1.7: optional server TTS, 33 functions, 4 events, English voice/setup guides and NPC meleeSkillTier; not a release
Release 0.1.7 / BUILD199 / Protocol 39: current API availability, setup and improvements
Line 29: Line 29:
== Notes ==
== Notes ==
* Server-side only. Mutations require the NPC to belong to the calling resource; getters do not grant control.
* Server-side only. Mutations require the NPC to belong to the calling resource; getters do not grant control.
* Introduced in 0.1.5. Use matching client/server versions; the meleeSkillTier extension below requires upcoming 0.1.7.
* Introduced in 0.1.5. Use matching client/server versions; the meleeSkillTier extension below requires 0.1.7.
* Use matching updated client and server. See [[NPC scripting]] for lifecycle, defaults, combat examples and collision limitations.
* Use matching updated client and server. See [[NPC scripting]] for lifecycle, defaults, combat examples and collision limitations.
* Does not include combat movement; use getNpcCombatMovement.
* Does not include combat movement; use getNpcCombatMovement.
Line 38: Line 38:


<!-- melee017:start -->
<!-- melee017:start -->
== NPC melee skill tiers (upcoming 0.1.7) ==
== NPC melee skill tiers (since 0.1.7) ==
The functions themselves remain available since 0.1.5. '''Only the additions below are new in upcoming 0.1.7'''; they are not available in public 0.1.6.
The functions themselves remain available since 0.1.5. '''Only the additions below are new in 0.1.7'''; they require matching 0.1.7 client/server support.


* [[setNpcCombatConfig]] accepts optional <code>meleeSkillTier</code>: integer 0 (untrained, default), 1 (trained) or 2 (master). [[getNpcCombatConfig]] includes this field in its result table.
* [[setNpcCombatConfig]] accepts optional <code>meleeSkillTier</code>: integer 0 (untrained, default), 1 (trained) or 2 (master). [[getNpcCombatConfig]] includes this field in its result table.

Revision as of 23:50, 10 October 2026

getNpcCombatConfig

AVAILABLE FROM UPDATE 0.1.5
This function is available in G1R:MP 0.1.5 and later. The contract below includes the compatibility guarantees introduced in that update.

Reads NPC projectile configuration.

Syntax

getNpcCombatConfig(npcId)

Parameters

Name Type Required Description
npcId int yes Server-assigned NPC ID returned by spawnNpc; not a player ID.

Returns

Returns table {range, dexterity, skillTier, aimTimeMs, cooldownMs, consumeAmmo, consumeMana}, or false.

Examples

local config = getNpcCombatConfig(npcId)

Notes

  • Server-side only. Mutations require the NPC to belong to the calling resource; getters do not grant control.
  • Introduced in 0.1.5. Use matching client/server versions; the meleeSkillTier extension below requires 0.1.7.
  • Use matching updated client and server. See NPC scripting for lifecycle, defaults, combat examples and collision limitations.
  • Does not include combat movement; use getNpcCombatMovement.

NPC melee skill tiers (since 0.1.7)

The functions themselves remain available since 0.1.5. Only the additions below are new in 0.1.7; they require matching 0.1.7 client/server support.

  • setNpcCombatConfig accepts optional meleeSkillTier: integer 0 (untrained, default), 1 (trained) or 2 (master). getNpcCombatConfig includes this field in its result table.
  • skillTier remains the separate ranged-combat tier. Changing the melee tier does not overwrite ranged settings. Omitted fields keep their existing values; invalid/unknown fields reject the entire change.
  • This selects ordinary melee presentation/timing for the NPC's equipped family, not its weapon or damage. It does not enable combat, select a target or increase strength/damage. Existing resource ownership and combat controls still apply.
  • A strike already admitted keeps its captured animation/impact deadline. A melee-only or unchanged update does not restart unrelated projectile preparation; changing ranged settings still affects that separate configuration.
  • Use matching updated client/server support to see the new tier presentation, including observers and late join. Players continue using the existing setPlayerSkill API; no new setPlayerCombatStyle function was added.
-- npcId is an existing NPC owned by this server resource.
local ok = setNpcCombatConfig(npcId, {meleeSkillTier=2})
if ok then
    local config = getNpcCombatConfig(npcId)
    if config then outputDebugString("NPC melee tier: " .. config.meleeSkillTier) end
end