Jump to content
  • 0

Blocking all skills for a character


Question

6 answers to this question

Recommended Posts

Posted

What?! That's ridiculous O_o berserk will change player status, remove buffs and a lot of non sense things.

 

skill_blockpc_start forces a cooldown on the character (with the cat footsprint on the desired skill) just like when you cast Storm Gust without "A poem of bragi", every skill is disabled for about 7 seconds <- that's what I want, the cat footsprint and a forced delay for a time.

Posted (edited)

I guess you just need to add a bool define in 3 main skill function

( skill_castend_damage_id, skill_castend_nodamage_id, and skill_castend_pos2 )

 

and if bool = true then '' return 0; '' before run anything.

Edited by goddameit
Posted (edited)

I guess you just need to add a bool define in 3 main skill function

( skill_castend_damage_id, skill_castend_nodamage_id, and skill_castend_pos2 )

 

and if bool = true then '' return 0; '' before run anything.

 

Hmmm, I don't get why I should return 0. Could you be more precise? For now I've got a function present in those 3 functions, when the skill id is one of what I want to have a certain delay, I force it with skill_blockpc_start but that just works with one skill, while I want the cooldown to be present in every skill.

 

This is an anti-nodelay "fix", so I want it to be the minimum cooldown (even with a poem of bragi and delay reductions). But as it only blocks one skill and doesn't cooldown the character itself it's a bad solution.

Edited by Mikado
Posted

You can make a new SC_, then add a check in the "skillnotok" function if that status is applied to the character.

 

e.g.

 

 

skill.c

    if (pc_has_permission(sd, PC_PERM_SKILL_UNCONDITIONAL))
        return 0; // can do any damn thing they want
+    if( sd->sc.data[SC_NOSKILL] )
+        return 0;
    if( skill_id == AL_TELEPORT && sd->skillitem == skill_id && sd->skillitemlv > 2 )
        return 0; // Teleport lv 3 bypasses this check.[Inkfish]

You'll have to exclude this new SC from being removed when relogging/status clearing skills are used against the character.

 

 

another way is to make a new flag.. but relogging will remove the flag.

Posted (edited)

I've managed to do it using some SC_ as you suggested,  I'm using the sc_start() function to set the desired time, but I'm worried about the status clearing skills (no need to check it when relogging, as it will never be more than 0.7 seconds),

 

I think a flag would be a better solution, but how can I set temporal flags?

Edited by Mikado

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...