Jump to content
  • 0

Limit on SC_ ? (status such as Poison)


OscarScorp

Question


  • Group:  Members
  • Topic Count:  62
  • Topics Per Day:  0.02
  • Content Count:  217
  • Reputation:   16
  • Joined:  01/28/15
  • Last Seen:  

Within status.h and status.c, I have created multiple Status for items and skills, but just got into the problem of my last three statuses won't even start upon using some skills, for example, when using Bash it should mark the player with a new status named "SC_BASHMARK", but it won't be applied.
Trying with SC_BURNING or even another new status I made a few days ago, does work, but not with my new desired status, even when using items.

Is there a limit for SC? If so, where can I find it to edit it?

Edited by OscarScorp
Formatting.
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  54
  • Topics Per Day:  0.01
  • Content Count:  513
  • Reputation:   83
  • Joined:  08/11/12
  • Last Seen:  

Can you post a snippet of your code? We can't help you much without any visibility

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  62
  • Topics Per Day:  0.02
  • Content Count:  217
  • Reputation:   16
  • Joined:  01/28/15
  • Last Seen:  

Got my issue fixed.
Apparently, if I want to create a new status with a duration like BURNING, it should be using the already created time durations instead of adding a new time such as I did (3500).

/*========================================== [Playtester]
* Returns the interval for status changes that iterate multiple times
* through the timer (e.g. those that deal damage in regular intervals)
* @param type: Status change (SC_*)
*------------------------------------------*/
static int status_get_sc_interval(enum sc_type type)
{
	switch (type) {
		case SC_POISON:
		case SC_DPOISON:
		case SC_LEECHESEND:
			return 1000;
		case SC_BURNING:
		case SC_PYREXIA:
			return 3000; //I created 3500; here, which I should not do. Fix: use return 3000 or any other already stablished.
		case SC_MAGICMUSHROOM:
			return 4000;
		case SC_STONE:
			return 5000;
		case SC_BLEEDING:
		case SC_TOXIN:
			return 10000;
		default:
			break;
	}
	return 0;
}

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  36
  • Reputation:   4
  • Joined:  04/16/12
  • Last Seen:  

do you mean like this?

skill.c / skill.cpp


case SM_BASH:
		if( sd && skill_lv > 5 && pc_checkskill(sd,SM_FATALBLOW)>0 ){
			//BaseChance gets multiplied with BaseLevel/50.0; 500/50 simplifies to 10 [Playtester]
			status_change_start(src,bl,SC_STUN,(skill_lv-5)*sd->status.base_level*10,
				skill_lv,0,0,0,skill_get_time2(SM_FATALBLOW,skill_lv),SCSTART_NONE);
		}
		//Your Custom SC for BASH | 2*skill_lv+10 = is Chance | skill_get_time2 (duration) you can add sum or min for this
		sc_start(src,bl,SC_BASHMARK,(2*skill_lv+10),skill_lv,skill_get_time2(skill_id,skill_lv));
		sc_start(src,bl,SC_BURNING,(2*skill_lv+10),skill_lv,skill_get_time2(skill_id,skill_lv));
		sc_start(src,bl,SC_STONE,(2*skill_lv+10),skill_lv,skill_get_time2(skill_id,skill_lv));
		sc_start(src,bl,SC_MAGICMUSHROOM,(2*skill_lv+10),skill_lv,skill_get_time2(skill_id,skill_lv));
		sc_start(src,bl,SC_DPOISON,(2*skill_lv+10),skill_lv,skill_get_time2(skill_id,skill_lv));
		break;

&

skill_cast_db.txt

//-- SM_BASH
5,0,0,0,10000,10000,0,0 // 10000 Means 10 seconds of all your Bash Debuff duration (randomly)

 

Edited by t3quila
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...