Please download again.
I fixed a bug that caused synchronization issues in multiplayer mode, which should improve things somewhat.
1.4.1.7
1. Rewrote the skill module and implemented a universal skill definition system.
You can now define and use buffs directly through skills. For example:
def skill_name
class skill
mana_cost 100
effect buffs buff_name # or effect debuffs buff_name
effect_target self
If you write it this way, casting the skill will directly apply the buff to yourself.
effect_target ask
effect_range 12
If you write it this way, you need to use Tab to select a target and then press Enter to use the skill, and the buff will be applied to the selected target.
2. The buff module has been enhanced with a new buff_radius parameter, allowing you to define aura-type buffs.
Additionally, buffs can now affect multiple attributes:
Multi-Attribute Buff System Documentation
Overview
New Features
1. Multi-Attribute Support
The stat parameter can now accept multiple attributes.
The v, dv, and percentage parameters can set different values for each attribute.
2. Smart Value Matching
If there are more attributes than values, the last value is reused for the remaining attributes.
If there is only one value, it applies to all attributes.
If there are more values than attributes, the extra values are ignored.
3:
The original single-attribute buff definition remains unchanged and fully compatible.
No changes are necessary for existing buff definitions.
Usage
Definition format in rules files:
Basic Syntax
BuffName 1
stat attribute1 attribute2 attribute3
v value1 value2 value3
duration duration_time
temporary 1
Example 1: Healing Enhancement Buff (direct value assignment) ⭐
def HealEnhancementBuff
class buff
stat heal_level heal_cd heal_radius
v 1 1500 6
duration 300
temporary 1
Effect:
heal_level increases healing by 1 point
heal_cd sets a cooldown of 1.5 seconds (1500 ms)
heal_radius increases healing range by 6
Example 2: Using the same value for all
def AllRoundBuff
class buff
stat hp_max mana_max speed
v 100
duration 600
temporary 1
Effect: All three attributes are increased by 100.
Example 3: Mixing percentage and fixed values
def MixedBuff
class buff
stat hp mana
percentage 50 0
v 0 100
duration 300
temporary 1
Effect:
hp is increased by 50% of current value
mana is increased by a fixed 100 points
Example 4: Continuous effect
def RegenerationBuff
class buff
stat hp mana
dv 10 5
dt 1
duration 600
temporary 0
Effect:
Restores 10 hp per second
Restores 5 mana per second
Example 5: Backward compatibility (original format)
def OldStyleBuff
class buff
stat hp
v 200
duration 300
temporary 1
Effect: Increases hp by 200 (the original functionality is unchanged)
Rewrote the effect module, breaking down the harm_level functionality into harm_level, harm_cd, harm_ready, harm_range, and harm_radius. Effects can now also carry buffs/debuffs. For example:
def exorcism
class effect
harm_level 2
harm_cd 7.5
harm_radius 6
harm_target_type undead
debuffs b_slow
You can then define a skill to summon this effect: it will attack undead units within a radius of 6 and apply a debuff.
Healing has also been split into heal_level, heal_cd, heal_ready, heal_range, heal_radius, and heal_target_type.
Additionally, hp_regen and mana_regen now support ready and cooldown states, e.g., hp_regen_cd, mana_regen_ready.
Although mod development now requires more effort, the flexibility and extensibility have greatly increased.
game:
code: