Переглянути джерело

* Updated Sacrifice
* Fixed compile errors in party.c
* Moved SC_EDP back to 114

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@750 54d463be-8e91-2dee-dedb-b68131a5f0ec

celest 20 роки тому
батько
коміт
b249fe2444
7 змінених файлів з 26 додано та 53 видалено
  1. 3 0
      Changelog.txt
  2. 4 34
      Dev/bugs.txt
  3. 1 1
      db/skill_db.txt
  4. 1 1
      db/skill_require_db.txt
  5. 4 13
      src/map/battle.c
  6. 1 1
      src/map/party.c
  7. 12 3
      src/map/skill.h

+ 3 - 0
Changelog.txt

@@ -1,6 +1,9 @@
 Date	Added
 12/23
 	* Updated mapflags (added missing payon_in03,ayo_in01,ayo_in02, que_god01, que_god02) [Lupus]
+        * Updated Sacrifice [celest]
+        * Fixed compile errors in party.c [celest]
+        * Moved SC_EDP back to 114 [celest]
 
 12/22
 	* Eliminated skill tree mapping since we have entries

+ 4 - 34
Dev/bugs.txt

@@ -1,8 +1,3 @@
-Problem:	Adding the new guild skills causes it to crash?
-Assigned:	Celest
-Progess:	90%
-Note:           The skills should be almost working now.
-
 Problem:	2-2-1 classes are regarded as Novicies by the game server. NPCs aren't taking them as thier jobs but if you the the NPC to do something for a novice class it works with the 2-2-1 like renters. Also if some one becomes high novice, if they use jobra they can become first jobs like a swordsman.
 Assigned:	N/A
 Progess:	0%
@@ -43,28 +38,10 @@ Problem:	When servers restart sometime the gm lvls in sql get reset back to 0
 Assigned:	Wizputer
 Progess:	0%
 
-Problem:	[mob attacks againsts players wearing ghostring armor do full damage mob_ghostring_fix: yes] Does not work, does nothing.
-Assigned:	N/A
-Progess:	0%
-
 Problem:	When athena is run in linux it creates core files which takes 300 megs.
 Assigned:	N/A (it's not a bug, those core files are createt on every server crash)
 Progess:	0%
 
-Problem:	Sage's Area Skills (Delu.,Vulcano, etc) if casted on the same area (or overlap each other) instantly reboots server. use @gvgon when test. Don't test it towns
-Assigned:	N/A
-Progess:	0%
-Notes:          Never heard of this being reported again... fixed maybe? [Celest]
-
-Problem:        Changing email and Broadcast both use the same packets / Packet 0x3000 assigned to changing email instead of broadcasting?
-Notes:          Refer to char.c line 2272 and line 2416, intif.c line 107, chrif.c line 377
-Assigned:       N/A
-Progress:       0%
-
-Problem:	AFM Maps not loading coords correctly, players appearing outside boundaries of the maps.
-Assigned:	N/A
-Progress:	100% (Fixed, i hope. ;p [Celest])
-
 Problem:	Wierd login-server bug on sql, it displays that the server is full when map-server crashes, has something to do with anti double login feature?
 Assigned:	N/A
 Progress:	0%
@@ -73,20 +50,10 @@ Problem:	Login-Txt is now crashing when you close it using ^C, Ctrl+C(on windows
 Assigned:	MC Cameri
 Progress:	100%
 
-Problem:	Storm Gust doesn't freeze mobs / players
-Assigned:	Celest
-Progress:	100% (Should be working now.)
-
 Problem:	MVP cast spells w/o showing "prepare cast line"
 Assigned:	N/A
 Progress:	0%
 
-Problem:	Line 130 in item_db.txt is giving error.
-Note:		This is the whole line: 658,Tribal_Solidarity,Tribal Solidarity,2,1000,0,500,,,,,10477567,2,,,,,{ guildgetexp rand(1,10000); },{}
-Assigned:	N/A
-Progress:	-
-Notes:          It's a new script command, you need to compile with an updated script.c. [celest]
-
 Problem:	Item duping bug in storage...
 Assigned:	N/A
 Progress:	0%
@@ -159,10 +126,13 @@ Note:		An example of this would be to make the last line of your NPC you right c
 Problem:	Berserk disallows you to talk and never turns off
 Assigned:	N/A
 Progress:	0%
+Notes:          Doesn't it stop when you have only 100 hp left? [Celest]
 
 Problem:	Auto Berserk doesn't automatically start when you get < 25% HP
 Assigned:	N/A
-Progress:	0%
+Progress:	-
+Notes:          It works differently now, you have to use it once to *allow* it to
+                activate, and once again to stop it from activating. ^^; [Celest]
 
 Problem:	When you change JOB, you don't lose skills in DB. It means if you were Merchant once 
 		you can buy/sell with discount being Mage, etc.

+ 1 - 1
db/skill_db.txt

@@ -425,7 +425,7 @@
 365,8,8,1,0,2,1,1,yes,0,0,0,magic,0	//HW_MAGICCRASHER#?ジッククラッシャ?#
 366,0,6,4,0,1,10,1,no,0,0,0,magic,0	//HW_MAGICPOWER#魔?力増幅#
 367,8,8,1,0,2,5,1,no,0,0,0,magic,0	//PA_PRESSURE#プレッシャ?#
-368,8,6,1,0,2,5,1,yes,0,0,0,magic,0	//PA_SACRIFICE#サクリフ?イス#
+368,0,6,4,0,1,5,1,yes,0,0,0,magic,0	//PA_SACRIFICE#サクリファイス#
 369,0,6,4,0,1,10,1,yes,0,0,0,magic,0	//PA_GOSPEL#ゴスペル#
 370,-2,6,1,0,0,5,1,yes,0,0,0,weapon,3	//CH_PALMSTRIKE#猛虎硬派山#
 371,-2,8,4,0,0,5,1,no,0,0,0,weapon,0	//CH_TIGERFIST#伏虎拳#

+ 1 - 1
db/skill_require_db.txt

@@ -253,7 +253,7 @@
 365,0,0,8,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HW_MAGICCRASHER#マジッククラッシャ?#
 366,0,0,14:18:22:26:30:34:38:42:46:50,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HW_MAGICPOWER#魔法力?幅#
 367,0,0,30:35:40:45:50,0,20:25:30:35:40,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//PA_PRESSURE#プレッシャ?#
-368,0,9,100,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//PA_SACRIFICE#サクリファイス#
+368,0,0,100,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//PA_SACRIFICE#サクリファイス#
 369,0,0,80:80:80:80:80:100:100:100:100:100,0,0,0,99,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//PA_GOSPEL#ゴスペル#
 370,0,0,2:4:6:8:10,0,0,0,99,explosionspirits,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CH_PALMSTRIKE#猛虎硬派山#
 371,0,0,4:6:8:10:12,0,0,0,99,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CH_TIGERFIST#伏虎拳#

+ 4 - 13
src/map/battle.c

@@ -3490,16 +3490,6 @@ static struct Damage battle_calc_pc_weapon_attack(
 				damage = damage*(200+20*skill_lv+20*pc_checkskill(sd,AS_POISONREACT))/100;
 				damage2 = damage2*(200+20*skill_lv+20*pc_checkskill(sd,AS_POISONREACT))/100;
 				break;
-			case PA_SACRIFICE:
-				if(sd){
-					int hp, mhp, damage3;
-					hp = battle_get_hp(src);
-					mhp = battle_get_max_hp(src);
-					damage3 = mhp*9/100;
-					damage = damage*damage3*(90+10*skill_lv)/10000;
-					damage2 = damage2*damage3*(90+10*skill_lv)/10000;
-				}
-				break;
 			case ASC_BREAKER:		// -- moonsoul (special damage for ASC_BREAKER skill)
 				if(sd){
 					int damage3;
@@ -3614,11 +3604,12 @@ static struct Damage battle_calc_pc_weapon_attack(
 			damage += damage * (150 + sc_data[SC_EDP].val1 * 50) / 100;
 			no_cardfix = 1;
 		}
-		if (!skill_num && !(t_mode&0x20) && sc_data[SC_SACRIFICE].timer != -1) {
+		// sacrifice works on boss monsters, and does 9% damage to self [Celest]
+		if (!skill_num && /*!(t_mode&0x20) &&*/ sc_data[SC_SACRIFICE].timer != -1) {
 			int mhp = battle_get_max_hp(src);
-			int dmg = mhp * (5 + sc_data[SC_SACRIFICE].val1 * 5) / 1000;
+			int dmg = mhp * 9/100;
 			pc_heal(sd, -dmg, 0);
-			damage = dmg * (90 + sc_data[SC_SACRIFICE].val1 * 15) / 100;
+			damage = dmg * (90 + sc_data[SC_SACRIFICE].val1 * 10) / 100;
 			damage2 = 0;
 			hitrate = 1000000;
 			s_ele = 0;

+ 1 - 1
src/map/party.c

@@ -591,7 +591,7 @@ int party_exp_share(struct party *p,int map,int base_exp,int job_exp,int zeny)
 		return 0;
 	for(i=0;i<MAX_PARTY;i++)
 		if((sd=p->member[i].sd)!=NULL && sd->bl.m==map && session[sd->fd] != NULL) {
-			if (/* pc_issit(sd) || */ (sd->chatID != NULL) || (sd->idletime < (time(0) - 120)))
+			if (/* pc_issit(sd) || */ sd->chatID || (sd->idletime < (time(0) - 120)))
 				continue;
 #ifdef TWILIGHT
 			pc_gainexp(sd,base_exp,job_exp);

+ 12 - 3
src/map/skill.h

@@ -1,4 +1,4 @@
-// $Id: skill.h,v 1.5 2004/12/3 7:53:26 PM Celestia $
+// $Id: skill.h,v 1.5 2004/12/23 7:43:16 PM Celestia $
 #ifndef _SKILL_H_
 #define _SKILL_H_
 
@@ -223,6 +223,7 @@ enum {	// struct map_session_data 
 	SC_SPEEDPOTION1		= 38,
 	SC_SPEEDPOTION2		= 39,
 	SC_SPEEDPOTION3		= 40,
+//-- 40-50
 	SC_STRIPWEAPON		= 50,
 	SC_STRIPSHIELD		= 51,
 	SC_STRIPARMOR		= 52,
@@ -238,6 +239,7 @@ enum {	// struct map_session_data 
 	SC_DEFENDER			= 62,
 	SC_AUTOSPELL		= 65,
 	SC_SPEARSQUICKEN	= 68,
+//-- 69-85
 	SC_EXPLOSIONSPIRITS	= 86,
 	SC_STEELBODY		= 87,
 	SC_COMBO			= 89,
@@ -245,21 +247,28 @@ enum {	// struct map_session_data 
 	SC_FROSTWEAPON		= 91,
 	SC_LIGHTNINGLOADER	= 92,
 	SC_SEISMICWEAPON	= 93,
+//-- 94-102
 	SC_AURABLADE		= 103, /* オ?ラブレ?ド */
 	SC_PARRYING			= 104, /* パリイング */
 	SC_CONCENTRATION	= 105, /* コンセントレ?ション */
 	SC_TENSIONRELAX		= 106, /* テンションリラックス */
 	SC_BERSERK			= 107, /* バ?サ?ク */
+//-- 108, 109
 	SC_ASSUMPTIO		= 110, /* アシャンプティオ */
+//-- 111, 112
 	SC_MAGICPOWER		= 113, /* 魔法力?幅 */
+//-- 114
 	SC_TRUESIGHT		= 115, /* トゥル?サイト */
 	SC_WINDWALK			= 116, /* ウインドウォ?ク */
 	SC_MELTDOWN			= 117, /* メルトダウン */
 	SC_CARTBOOST		= 118, /* カ?トブ?スト */
+//-- 119
 	SC_REJECTSWORD		= 120, /* リジェクトソ?ド */
 	SC_MARIONETTE		= 121, /* マリオネットコントロ?ル */
+//-- 122, 123
 	SC_HEADCRUSH		= 124, /* ヘッドクラッシュ */
 	SC_JOINTBEAT		= 125, /* ジョイントビ?ト */
+//-- 126, 127
 
 	SC_STONE			= 128,
 	SC_FREEZE			= 129,
@@ -314,7 +323,7 @@ enum {	// struct map_session_data 
 	SC_SPIDERWEB		=180,		/* スパイダ?ウェッブ */
 	SC_MEMORIZE			=181,		/* メモライズ */
 	SC_DPOISON			=182,		/* 猛毒 */
-	SC_EDP				=183,		/* エフェクトが判明したら移動 */
+//	SC_EDP				=183,	// moved
 	SC_SACRIFICE		=184,		/* サクリファイス */
 	SC_WEDDING			=187,	//結婚用(結婚衣裳になって?くのが?いとか)
 	SC_NOCHAT			=188,	//赤エモ?態
@@ -332,7 +341,7 @@ enum {	// struct map_session_data 
 	SC_SIGHTTRASHER		=73,
 //	SC_BASILICA			=125, // 125 is the same id as joint break
 	SC_BASILICA			=102, // temporarily use this before an actual id is found [celest]
-//	SC_EDP				=114, // 
+	SC_EDP				=114, /* エフェクトが判明したら移動 */
 	SC_MARIONETTE2		=122, // Marionette target
 	SC_ENSEMBLE			=159,
 	SC_FOGWALL			=178,