Jump to content
  • 0

Blocking all skills for a character


Mikado

Question


  • Group:  Members
  • Topic Count:  13
  • Topics Per Day:  0.00
  • Content Count:  26
  • Reputation:   2
  • Joined:  11/08/12
  • Last Seen:  

I know I can block a certain skill with skill_blockpc_start, but how can I block every skill of the given character for a given time?

 

Thank you.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  28
  • Topics Per Day:  0.01
  • Content Count:  218
  • Reputation:   16
  • Joined:  01/24/12
  • Last Seen:  

Put the character into a state where they can't use any of their skills, like berserk or something.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  13
  • Topics Per Day:  0.00
  • Content Count:  26
  • Reputation:   2
  • Joined:  11/08/12
  • Last Seen:  

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.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  60
  • Topics Per Day:  0.01
  • Content Count:  562
  • Reputation:   219
  • Joined:  11/22/11
  • Last Seen:  

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
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  13
  • Topics Per Day:  0.00
  • Content Count:  26
  • Reputation:   2
  • Joined:  11/08/12
  • Last Seen:  

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
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  17
  • Topics Per Day:  0.00
  • Content Count:  754
  • Reputation:   186
  • Joined:  05/22/12
  • Last Seen:  

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.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  13
  • Topics Per Day:  0.00
  • Content Count:  26
  • Reputation:   2
  • Joined:  11/08/12
  • Last Seen:  

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
Link to comment
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.

×
×
  • Create New...