Bladeren bron

- Adjusted status resistances and durations taking as base Viccious's info from the kro guidebook.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7034 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 19 jaren geleden
bovenliggende
commit
17d6fd86cc
2 gewijzigde bestanden met toevoegingen van 34 en 25 verwijderingen
  1. 2 0
      Changelog-Trunk.txt
  2. 32 25
      src/map/status.c

+ 2 - 0
Changelog-Trunk.txt

@@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/06/07
+	* Adjusted status resistances and durations taking as base Viccious's info
+	  from the kro guidebook. [Skotlex]
 	* Moved souldrain code from skill_counter_additional_effect to mob_dead. It
 	  should display the skill animation correctly now. [Skotlex]
 	* Adjusted several sc rate/time reductions as pointed out by Playtester.

+ 32 - 25
src/map/status.c

@@ -3828,17 +3828,6 @@ int status_get_sc_def(struct block_list *bl, int type)
 	status = status_get_status_data(bl);
 	switch (type)
 	{
-	//Note that stats that are *100/3 were simplified to *33
-	case SC_STONE:
-	case SC_FREEZE:
-	case SC_DECREASEAGI:
-	case SC_COMA:
-		sc_def = 300 +100*status->mdef +10*status->luk;
-		break;
-	case SC_SLEEP:
-	case SC_CONFUSION:
-		sc_def = 300 +100*status->int_ +10*status->luk;
-		break;
 	case SC_STUN:
 	case SC_POISON:
 	case SC_DPOISON:
@@ -3846,11 +3835,26 @@ int status_get_sc_def(struct block_list *bl, int type)
 	case SC_BLEEDING:
 		sc_def = 300 +100*status->vit +10*status->luk;
 		break;
-	case SC_BLIND:
-		sc_def = 300 +100*status->int_ +10*status->vit;
+	case SC_SLEEP:
+		sc_def = 300 +100*status->int_ +10*status->luk;
+		break;
+	case SC_STONE:
+	case SC_FREEZE:
+	case SC_DECREASEAGI:
+	case SC_COMA:
+		sc_def = 300 +100*status->mdef +10*status->luk;
 		break;
 	case SC_CURSE:
-		sc_def = 300 +100*status->luk +10*status->vit;
+		if (status->luk > status_get_lv(bl))
+			sc_def = 10000; //Special property: inmunity when luk is greater than level
+		else
+			sc_def = 300 +100*status->luk;
+		break;
+	case SC_BLIND: //TODO: These 50/50 factors are guessed. Need to find actual value.
+		sc_def = 300 +50*status->vit +50*status->int_ +10*status->luk;
+		break;
+	case SC_CONFUSION:
+		sc_def = 300 +50*status->str +50*status->int_ +10*status->luk;
 		break;
 	default:
 		return 0; //Effect that cannot be reduced? Likely a buff.
@@ -3903,25 +3907,28 @@ int status_get_sc_tick(struct block_list *bl, int type, int tick)
 			if(sd && pc_checkskill(sd,BS_HILTBINDING)>0)
 				tick += tick / 10;
 		break;
-		case SC_STONE:
-			rate = -200*status->mdef;
-		break;
-		case SC_FREEZE:
-			rate = 100*status->mdef;
-		break;
-		case SC_STUN:
 		case SC_DPOISON:
 		case SC_POISON:
-			rate = 100*status->vit + 20*status->luk;
-		break;
+		case SC_STUN:
 		case SC_BLEEDING:
 		case SC_SILENCE:
-		case SC_CONFUSION:
 		case SC_CURSE:
 			rate = 100*status->vit;
 		break;
+		case SC_SLEEP:
+			rate = 100*status->int_;
+		break;
+		case SC_STONE:
+			rate = -200*status->mdef;
+		break;
+		case SC_FREEZE:
+			rate = 100*status->mdef;
+		break;
 		case SC_BLIND:
-			rate = 10*status_get_lv(bl) + 7*status->int_;
+			rate = 50*status->vit +50*status->int_;
+		break;
+		case SC_CONFUSION:
+			rate = 50*status->str +50*status->int_;
 		break;
 		case SC_SWOO:
 			if (status->mode&MD_BOSS)