Browse Source

* Made guild skills to check for skill levels first when casting
* Modified arrow checking in skill.c
* Corrected Cart Revolution damage calculation

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

celest 20 years ago
parent
commit
1875255699
6 changed files with 37 additions and 30 deletions
  1. 7 0
      Changelog.txt
  2. 6 9
      Dev/bugs.txt
  3. 2 0
      db/Changelog.txt
  4. 9 9
      db/skill_tree.txt
  5. 2 2
      src/map/battle.c
  6. 11 10
      src/map/skill.c

+ 7 - 0
Changelog.txt

@@ -2,6 +2,13 @@ Date	Added
 12/13
 12/13
         * Internal MAIL system: moved all strings to msg_athena.conf [Lupus]
         * Internal MAIL system: moved all strings to msg_athena.conf [Lupus]
 
 
+12/12
+        * Made guild skills to check for skill levels first when casting [celest]
+
+12/11
+        * Modified arrow checking in skill.c [celest]
+        * Corrected Cart Revolution damage calculation [celest]
+
 12/10
 12/10
         * Fixed players unable to move in AFM maps [celest]
         * Fixed players unable to move in AFM maps [celest]
         * Added error message if a player's last map couldn't be found [celest]
         * Added error message if a player's last map couldn't be found [celest]

+ 6 - 9
Dev/bugs.txt

@@ -54,20 +54,16 @@ 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
 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
 Assigned:	N/A
 Progess:	0%
 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?
 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
 Notes:          Refer to char.c line 2272 and line 2416, intif.c line 107, chrif.c line 377
 Assigned:       N/A
 Assigned:       N/A
 Progress:       0%
 Progress:       0%
 
 
-Problem:	Sanctuary heal emp during WoE?
-Assigned:       N/A
-Progress:       0%
-Note:           Isn't sanctuary supposed to be able to heal the emperium? [celest]
-
 Problem:	AFM Maps not loading coords correctly, players appearing outside boundaries of the maps.
 Problem:	AFM Maps not loading coords correctly, players appearing outside boundaries of the maps.
 Assigned:	N/A
 Assigned:	N/A
-Progress:	0%
+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?
 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
 Assigned:	N/A
@@ -78,8 +74,8 @@ Assigned:	MC Cameri
 Progress:	100%
 Progress:	100%
 
 
 Problem:	Storm Gust doesn't freeze mobs / players
 Problem:	Storm Gust doesn't freeze mobs / players
-Assigned:	N/A
-Progress:	0%
+Assigned:	Celest
+Progress:	100% (Should be working now.)
 
 
 Problem:	MVP cast spells w/o showing "prepare cast line"
 Problem:	MVP cast spells w/o showing "prepare cast line"
 Assigned:	N/A
 Assigned:	N/A
@@ -88,7 +84,8 @@ Progress:	0%
 Problem:	Line 130 in item_db.txt is giving error.
 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); },{}
 Note:		This is the whole line: 658,Tribal_Solidarity,Tribal Solidarity,2,1000,0,500,,,,,10477567,2,,,,,{ guildgetexp rand(1,10000); },{}
 Assigned:	N/A
 Assigned:	N/A
-Progress:	0%
+Progress:	-
+Notes:          It's a new script command, you need to compile with an updated script.c. [celest]
 
 
 Problem:	Item duping bug in storage...
 Problem:	Item duping bug in storage...
 Assigned:	N/A
 Assigned:	N/A

+ 2 - 0
db/Changelog.txt

@@ -5,6 +5,8 @@
 	Ayathoya items == Added but no effect ( all are "ect" itens)
 	Ayathoya items == Added but no effect ( all are "ect" itens)
 	Skill databases == celest working on them i believe.
 	Skill databases == celest working on them i believe.
 
 
+12/12   * Removed unuseable skills from skill_tree.txt [celest]
+
 12/11   * Corrected item_db - Wedding rings should give all 3 skills [celest]
 12/11   * Corrected item_db - Wedding rings should give all 3 skills [celest]
 
 
 12/9    * Removed some unused skills from skill_tree.txt [celest]
 12/9    * Removed some unused skills from skill_tree.txt [celest]

+ 9 - 9
db/skill_tree.txt

@@ -833,10 +833,10 @@
 4011,113,5,111,3,0,0,0,0,0,0,0,0//BS_OVERTHRUST	#オーバートラスト#
 4011,113,5,111,3,0,0,0,0,0,0,0,0//BS_OVERTHRUST	#オーバートラスト#
 4011,114,5,112,3,113,2,0,0,0,0,0,0//BS_MAXIMIZE	#マキシマイズパワー#
 4011,114,5,112,3,113,2,0,0,0,0,0,0//BS_MAXIMIZE	#マキシマイズパワー#
 4011,384,10,109,3,105,1,107,5,113,3,0,0//WS_MELTDOWN		#基本スキル#
 4011,384,10,109,3,105,1,107,5,113,3,0,0//WS_MELTDOWN		#基本スキル#
-4011,385,3,109,5,94,5,96,3,97,2,0,0//WS_CREATECOIN		#基本スキル#
-4011,386,3,97,3,106,1,107,5,0,0,0,0//WS_CREATENUGGET		#基本スキル#
+//4011,385,3,109,5,94,5,96,3,97,2,0,0//WS_CREATECOIN		#基本スキル#
+//4011,386,3,97,3,106,1,107,5,0,0,0,0//WS_CREATENUGGET		#基本スキル#
 4011,387,1,39,5,153,1,154,1,105,1,0,0//WS_CARTBOOST		#基本スキル#
 4011,387,1,39,5,153,1,154,1,105,1,0,0//WS_CARTBOOST		#基本スキル#
-4011,388,1,107,10,112,3,0,0,0,0,0,0//WS_SYSTEMCREATE		#基本スキル#
+//4011,388,1,107,10,112,3,0,0,0,0,0,0//WS_SYSTEMCREATE		#基本スキル#
 4011,477,10,107,10,0,0,0,0,0,0,0,0//WS_WEAPONREFINE
 4011,477,10,107,10,0,0,0,0,0,0,0,0//WS_WEAPONREFINE
 //Sniper
 //Sniper
 4012,1,9,0,0,0,0,0,0,0,0,0,0//NV_BASIC		#基本スキル#
 4012,1,9,0,0,0,0,0,0,0,0,0,0//NV_BASIC		#基本スキル#
@@ -926,7 +926,7 @@
 4014,357,5,4,1,55,5,63,1,0,0,0,0//LK_CONCENTRATE
 4014,357,5,4,1,55,5,63,1,0,0,0,0//LK_CONCENTRATE
 4014,358,1,4,10,6,5,8,3,0,0,0,0//LK_TENSIONRELAX
 4014,358,1,4,10,6,5,8,3,0,0,0,0//LK_TENSIONRELAX
 4014,359,1,55,7,56,5,57,5,58,2,63,1//LK_BERSERK
 4014,359,1,55,7,56,5,57,5,58,2,63,1//LK_BERSERK
-4014,360,1,3,10,4,6,62,6,0,0,0,0//LK_FURY
+//4014,360,1,3,10,4,6,62,6,0,0,0,0//LK_FURY
 4014,397,5,0,0,0,0,0,0,0,0,0,0//LK_SPIRALPIERCE
 4014,397,5,0,0,0,0,0,0,0,0,0,0//LK_SPIRALPIERCE
 4014,398,5,0,0,0,0,0,0,0,0,0,0//LK_HEADCRUSH
 4014,398,5,0,0,0,0,0,0,0,0,0,0//LK_HEADCRUSH
 4014,399,10,0,0,0,0,0,0,0,0,0,0//LK_HEADCRUSH
 4014,399,10,0,0,0,0,0,0,0,0,0,0//LK_HEADCRUSH
@@ -1109,9 +1109,6 @@
 4019,235,5,237,3,0,0,0,0,0,0,0,0//AM_CP_SHIELD	#ケミカルシールドチャージ#
 4019,235,5,237,3,0,0,0,0,0,0,0,0//AM_CP_SHIELD	#ケミカルシールドチャージ#
 4019,236,5,235,3,0,0,0,0,0,0,0,0//AM_CP_ARMOR	#ケミカルアーマーチャージ#
 4019,236,5,235,3,0,0,0,0,0,0,0,0//AM_CP_ARMOR	#ケミカルアーマーチャージ#
 4019,237,5,228,2,0,0,0,0,0,0,0,0//AM_CP_HELM	#ケミカルヘルムチャージ#
 4019,237,5,228,2,0,0,0,0,0,0,0,0//AM_CP_HELM	#ケミカルヘルムチャージ#
-4019,478,10,231,5,0,0,0,0,0,0,0,0//CR_SLIMPITCHER
-4019,479,5,234,5,235,5,236,5,237,5,0,0//CR_FULLPROTECTION
-
 // 韓国でも未実装なので以下のツリーコメントアウト
 // 韓国でも未実装なので以下のツリーコメントアウト
 //4019,238,1,0,0,0,0,0,0,0,0,0,0//AM_BIOETHICS		#生命倫理#
 //4019,238,1,0,0,0,0,0,0,0,0,0,0//AM_BIOETHICS		#生命倫理#
 //4019,239,10,238,1,0,0,0,0,0,0,0,0//AM_BIOTECHNOLOGY	#生命工学研究#
 //4019,239,10,238,1,0,0,0,0,0,0,0,0//AM_BIOTECHNOLOGY	#生命工学研究#
@@ -1123,8 +1120,11 @@
 //4019,245,10,246,3,0,0,0,0,0,0,0,0//AM_DRILLMASTER	#ドリルマスター#
 //4019,245,10,246,3,0,0,0,0,0,0,0,0//AM_DRILLMASTER	#ドリルマスター#
 //4019,246,10,241,5,0,0,0,0,0,0,0,0//AM_HEALHOMUN		#ヒールホムンクルス#
 //4019,246,10,241,5,0,0,0,0,0,0,0,0//AM_HEALHOMUN		#ヒールホムンクルス#
 //4019,247,10,246,5,0,0,0,0,0,0,0,0//AM_RESURRECTHOMUN	#リザレクションホムンクルス#
 //4019,247,10,246,5,0,0,0,0,0,0,0,0//AM_RESURRECTHOMUN	#リザレクションホムンクルス#
-4019,392,5,228,5,0,0,0,0,0,0,0,0//CR_ALCHEMY		#Alchemy#
-4019,393,5,228,5,390,2,0,0,0,0,0,0//CR_SYNTHESISPOTION	#Potion Synthesis#
+//4019,392,5,228,5,0,0,0,0,0,0,0,0//CR_ALCHEMY		#Alchemy#
+//4019,393,5,228,5,390,2,0,0,0,0,0,0//CR_SYNTHESISPOTION	#Potion Synthesis#
+4019,478,10,231,5,0,0,0,0,0,0,0,0//CR_SLIMPITCHER
+4019,479,5,234,5,235,5,236,5,237,5,0,0//CR_FULLPROTECTION
+
 //Clown
 //Clown
 4020,1,9,0,0,0,0,0,0,0,0,0,0//NV_BASIC		#基本スキル#
 4020,1,9,0,0,0,0,0,0,0,0,0,0//NV_BASIC		#基本スキル#
 4020,142,1,0,0,0,0,0,0,0,0,0,0//NV_FIRSTAID	#応急手当#
 4020,142,1,0,0,0,0,0,0,0,0,0,0//NV_FIRSTAID	#応急手当#

+ 2 - 2
src/map/battle.c

@@ -3226,8 +3226,8 @@ static struct Damage battle_calc_pc_weapon_attack(
 				break;
 				break;
 			case MC_CARTREVOLUTION:	// カートレボリューション
 			case MC_CARTREVOLUTION:	// カートレボリューション
 				if(sd->cart_max_weight > 0 && sd->cart_weight > 0) {
 				if(sd->cart_max_weight > 0 && sd->cart_weight > 0) {
-					damage = ( damage*(150 + sd->cart_weight/80) )/100;	//fixed CARTREV damage [Lupus]
-					damage2 = ( damage2*(150 + sd->cart_weight/80) )/100;
+					damage = ( damage*(150 + sd->cart_weight/800) )/100;	//fixed CARTREV damage [Lupus] // should be 800, not 80... weight is *10 ^_- [celest]
+					damage2 = ( damage2*(150 + sd->cart_weight/800) )/100;
 					//damage = (damage*(150 + pc_checkskill(sd,BS_WEAPONRESEARCH) + (sd->cart_weight*100/sd->cart_max_weight) ) )/100;
 					//damage = (damage*(150 + pc_checkskill(sd,BS_WEAPONRESEARCH) + (sd->cart_weight*100/sd->cart_max_weight) ) )/100;
 					//damage2 = (damage2*(150 + pc_checkskill(sd,BS_WEAPONRESEARCH) + (sd->cart_weight*100/sd->cart_max_weight) ) )/100;
 					//damage2 = (damage2*(150 + pc_checkskill(sd,BS_WEAPONRESEARCH) + (sd->cart_weight*100/sd->cart_max_weight) ) )/100;
 				}
 				}

+ 11 - 10
src/map/skill.c

@@ -4410,13 +4410,13 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
 			   (su->group->unit_id != 0x92)){ //?‚ðŽæ‚è•Ô‚·
 			   (su->group->unit_id != 0x92)){ //?‚ðŽæ‚è•Ô‚·
 				if(sd){
 				if(sd){
 					if(battle_config.skill_removetrap_type == 1){
 					if(battle_config.skill_removetrap_type == 1){
-					for(i=0;i<10;i++) {
-						if(skill_db[su->group->skill_id].itemid[i] > 0){
-							memset(&item_tmp,0,sizeof(item_tmp));
-							item_tmp.nameid = skill_db[su->group->skill_id].itemid[i];
-							item_tmp.identify = 1;
-							if(item_tmp.nameid && (flag=pc_additem(sd,&item_tmp,skill_db[su->group->skill_id].amount[i]))){
-								clif_additem(sd,0,0,flag);
+						for(i=0;i<10;i++) {
+							if(skill_db[su->group->skill_id].itemid[i] > 0){
+								memset(&item_tmp,0,sizeof(item_tmp));
+								item_tmp.nameid = skill_db[su->group->skill_id].itemid[i];
+								item_tmp.identify = 1;
+								if(item_tmp.nameid && (flag=pc_additem(sd,&item_tmp,skill_db[su->group->skill_id].amount[i]))){
+									clif_additem(sd,0,0,flag);
 									map_addflooritem(&item_tmp,skill_db[su->group->skill_id].amount[i],sd->bl.m,sd->bl.x,sd->bl.y,NULL,NULL,NULL,0);
 									map_addflooritem(&item_tmp,skill_db[su->group->skill_id].amount[i],sd->bl.m,sd->bl.x,sd->bl.y,NULL,NULL,NULL,0);
 								}
 								}
 							}
 							}
@@ -7096,7 +7096,7 @@ int skill_check_condition(struct map_session_data *sd,int type)
 	case DC_THROWARROW:
 	case DC_THROWARROW:
 	case SN_SHARPSHOOTING:
 	case SN_SHARPSHOOTING:
 	case CG_ARROWVULCAN:
 	case CG_ARROWVULCAN:
-		if(sd->equip_index[10] <= 0) {
+		if(sd->equip_index[10] < 0) {
 			clif_arrow_fail(sd,0);
 			clif_arrow_fail(sd,0);
 			return 0;
 			return 0;
 		}
 		}
@@ -7493,11 +7493,12 @@ int skill_use_id( struct map_session_data *sd, int target_id,
 			struct guild *g;
 			struct guild *g;
 			if (!sd->status.guild_id)
 			if (!sd->status.guild_id)
 				return 0;
 				return 0;
-			if (!(g = guild_search(sd->status.guild_id)))
+			if ((g = guild_search(sd->status.guild_id)) == NULL)
 				return 0;
 				return 0;
 			if (strcmp(sd->status.name,g->master))
 			if (strcmp(sd->status.name,g->master))
 				return 0;
 				return 0;
-			if (skill_lv <= 0) skill_lv = 1;
+			skill_lv = guild_checkskill(g, skill_num);
+			if (skill_lv <= 0) return 0;
 		}
 		}
 		break;
 		break;
 	}
 	}