Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

WZ Mobskills~~

Initiate Mage
Joined
Aug 17, 2014
Messages
26
Reaction score
1
So, i've been successfully adding mobs into my server for awhile now. Taking into account all the wz edits needed to do so (String.wz, Sound.wz, Mob.wz) But now im trying to add mobs that actually attack a target. I cant seem to get them to work. I know i must add in their Mobskill, but i've yet to find it. Under Mobskills in the Skill.wz, its pretty much a bunch of number from 100~224 then 799 and 800. Then under each of them you have a property called level with opens up to a bunch of more numbers. Been working with harepacker for years now, yet i've never figured out how the mobskills work, Anyone care to shine some light? Thanks :)
 
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
799 and 800? You must be on one heck of a high version. ;P In the versions I work on (anything BEFORE bigbang), you have all of the following MobSkills:

PHP:
// Buffs
    PowerUp(100),
    MagicUp(101),
    PGuardUp(102),
    MGuardUp(103),
    Haste(104),
    PowerUp_M(110),
    MagicUp_M(111),
    PGuardUp_M(112),
    MGuardUp_M(113),
    Heal_M(114),
    Haste_M(115),
    // Attacks
    Seal(120),
    Darkness(121),
    Weakness(122),
    Stun(123),
    Curse(124),
    Poison(125),
    Slow(126),
    Dispel(127),
    Attract(128),
    BanMap(129),
    Area_Fire(130),
    Area_Poison(131),
    ReverseInput(132),
    Undead(133),
    StopPortion(134),
    StopMotion(135),
    Fear(136),
    Frozen(137),
    // Immunity
    PhysicalImmune(140),
    MagicImmune(141),
    HardSkin(142),
    PCounter(143),
    MCounter(144),
    PMCounter(145),
    // Stats
    PAD(150),
    MAD(151),
    PDR(152),
    MDR(153),
    ACC(154),
    EVA(155),
    Speed(156),
    SealSkill(157),
    BalrogCounter(158), // wtf?
    SpreadSkillFromUser(160), // wtf?
    HealByDamage(161),
    Bind(162),
    // Summon
    Summon(200),
    Summon_Cube(201);

Now these specific skills in the list, for example Summon, will have around ~300 levels. The reason for this is because each mob controls a specific level of the skill. For Summon, Pink Bean uses level like.. 151? Some high level like that to spawn the Mini Pink Beans. Other mobs use other levels.

MobSkills are seperated as you can see by my enum above. Some are attacking skills, some are buffs to monsters, and some are stats and other etc. stuff. Adding in the MobSkill to your WZ and XML along with the Mob will have the skill working if it is implemented server-sided. You cannot copy new MobStats from higher versions into your version. If it is the same buffstat yet different appearance, you can do that but have to handle it server-side.

When Mobs move, it has a chance at a specific HP value (hence the 'nHPBelow' checks Nexon uses) to use an attack against you. This calls MobSkill.getMobSkill or whatever the function is called -- it is a big switch statement of the skills and will apply the MobSkill to the monster/characters within the area.

Normal attacks are not even MobSkills. If your mob doesn't attack at all, it isn't because of a missing MobSkill.

Lastly, when updating MobSkills, you will need not only newer .img properties but you will need updated nodes. As I previously stated, Nexon adds monsters' summons and other attacks as a 'level', and that's where they update them. You can use something like WzRepacker to target new nodes on the right side and do a copy->paste to the left side.
 
Back
Top