• 0
Yeezus

How to disable certain skills from being copied by rogue class?

Question

Hi guys I tried changeing AllowReproduce: true to AllowReproduce: false on skills that I didn't want to be copied and reloadskilldb but it still can be copied by rogue class.  I made sure that I am using the correct file (pre-re) and even changed the skill's cooldown and it took effect.  However, even after changing it to false or completely removing that line, it still doesn't work.  Anyone can help with this?

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0
2 hours ago, Yeezus said:

Hi guys I tried changeing AllowReproduce: true to AllowReproduce: false on skills that I didn't want to be copied and reloadskilldb but it still can be copied by rogue class.  I made sure that I am using the correct file (pre-re) and even changed the skill's cooldown and it took effect.  However, even after changing it to false or completely removing that line, it still doesn't work.  Anyone can help with this?

Which Rogue skill are you talking about,

If I am not wrong, "AllowReproduce" only restricts "Reproduce" Skill and not "Plagiarism" skill, so skills can still be copied via "Plagiarism"

Share this post


Link to post
Share on other sites
  • 0
1 hour ago, Dastgir said:

Which Rogue skill are you talking about,

If I am not wrong, "AllowReproduce" only restricts "Reproduce" Skill and not "Plagiarism" skill, so skills can still be copied via "Plagiarism"

Ohhhhh.  I didnt know that.  I was looking for docs about skilldb but couldn't find it so I assume it is like that since rAthena has their own db for skills allowed to be copied.  As for your question about which skills... I want to disable Waterball from being copied and maybe enable Acid Demonstration to be copied.  How do I do this?

Share this post


Link to post
Share on other sites
  • 0

Requires source edit. Go to src/map/skill.c, find static int can_copy().

Anywhere after nullpo_ret(sd); you can put your conditions.

    if (skill_id == WZ_WATERBALL)
        return 0;

If you want to carryover skill_lv, you need to edit 2 lines.

Change 1, find line:

can_copy(tsd,copy_skill,bl)) // Split all the check into their own function [Aru]


Change to:

can_copy(tsd, copy_skill, skill_lv, bl)) // Split all the check into their own function [Aru]

Change 2, find line:

static int can_copy(struct map_session_data *sd, uint16 skill_id, struct block_list *bl)


Change to:

static int can_copy(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, struct block_list *bl)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...