Ver código fonte

- Kaite, Kaute will now show a skill effect when they trigger.
- Fusion's cast time reduced to 0.
- Knowledge will now only trigger if you logon to the memorized map, not walk into it.


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

skotlex 19 anos atrás
pai
commit
01340a866e
6 arquivos alterados com 20 adições e 16 exclusões
  1. 3 0
      Changelog-Trunk.txt
  2. 1 0
      db/Changelog.txt
  3. 1 1
      db/skill_cast_db.txt
  4. 1 1
      src/map/battle.c
  5. 13 14
      src/map/clif.c
  6. 1 0
      src/map/skill.c

+ 3 - 0
Changelog-Trunk.txt

@@ -4,6 +4,9 @@ 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/05/03
+	* Kaite, Kaute will now show a skill effect when they trigger. [Skotlex
+	* Knowledge will now only trigger if you logon to the memorized map, not
+	  walk into it. [Skotlex]
 	* Corrected @whomap directly invoking msg_table[] rather than msg_txt()
 	  [Skotlex]
 	* Guessed where the pet data goes in spawn packet 0x7c. This may be wrong

+ 1 - 0
db/Changelog.txt

@@ -27,6 +27,7 @@
 
 =========================
 05/03
+	* Fusion's cast time reduced to 0. [Skotlex]
 	* Removed all Novice Job bonusses [Playtester]
 	* Reverted the changes to Killer Mantis and Demon Pungus card [Playtester]
 	- the base effect rate is 20%, but target's defense can lower the rate

+ 1 - 1
db/skill_cast_db.txt

@@ -700,7 +700,7 @@
 //SG_KNOWLEDGE
 443,0,0,0,600000,0
 //SG_FUSION
-444,1000,1000,0,600000,0
+444,0,1000,0,600000,0
 //==========================================
 
 //===== Soul Linker ========================

+ 1 - 1
src/map/battle.c

@@ -451,7 +451,6 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i
 		if(sc->data[SC_DODGE].timer != -1 && !sc->opt1 &&
 			(flag&BF_LONG || sc->data[SC_SPURT].timer != -1)
 			&& rand()%100 < 20) {
-			if (sd && pc_issit(sd)) pc_setstand(sd); //Stand it to dodge.
 			clif_skill_nodamage(bl,bl,TK_DODGE,1,1);
 			if (sc->data[SC_COMBO].timer == -1)
 				sc_start4(bl, SC_COMBO, 100, TK_JUMPKICK, src->id, 0, 0, 2000);
@@ -464,6 +463,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i
    	
 		if(sc->data[SC_KAUPE].timer != -1 && rand()%100 < sc->data[SC_KAUPE].val2)
 		{
+			clif_skill_nodamage(bl,bl,SL_KAUPE,1,1);
 			if (--sc->data[SC_KAUPE].val3 <= 0) //We make it work like Safety Wall, even though it only blocks 1 time.
 				status_change_end(bl, SC_KAUPE, -1);
 			return 0;

+ 13 - 14
src/map/clif.c

@@ -8185,6 +8185,14 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
 		if (sd->sc.option&OPTION_RIDING)
 			clif_status_load(&sd->bl, SI_RIDING, 1);
 
+		//Auron reported that This skill only triggers when you logon on the map o.O [Skotlex]
+		if ((i = pc_checkskill(sd,SG_KNOWLEDGE)) > 0) {
+			if(sd->bl.m == sd->feel_map[0].m
+				|| sd->bl.m == sd->feel_map[1].m
+				|| sd->bl.m == sd->feel_map[2].m)
+				sc_start(&sd->bl, SC_KNOWLEDGE, 100, i, skill_get_time(SG_KNOWLEDGE, i));
+		}
+
 		if(sd->status.pet_id > 0 && sd->pd && sd->pet.intimate > 900)
 			clif_pet_emotion(sd->pd,(sd->pd->class_ - 100)*100 + 50 + pet_hungry_val(sd));
 		//Removed, for some reason chars get stuck on map-change when you send this packet!? [Skotlex]
@@ -8230,12 +8238,6 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
 		ShowStatus("%d '"CL_WHITE"%s"CL_RESET"' events executed.\n",
 			npc_event_doall_id(script_config.loadmap_event_name, sd->bl.id), script_config.loadmap_event_name);
 	}
-	if ((i = pc_checkskill(sd,SG_KNOWLEDGE)) > 0) {
-		if(sd->bl.m == sd->feel_map[0].m
-			|| sd->bl.m == sd->feel_map[1].m
-			|| sd->bl.m == sd->feel_map[2].m)
-			sc_start(&sd->bl, SC_KNOWLEDGE, 100, i, skill_get_time(SG_KNOWLEDGE, i));
-	}
 
 	if (
 	    pc_checkskill(sd,SG_SUN_COMFORT)  ||
@@ -9235,9 +9237,9 @@ void clif_parse_NpcBuyListSend(int fd,struct map_session_data *sd)
 	n = (RFIFOW(fd,2)-4) /4;
 	item_list = (unsigned short*)RFIFOP(fd,4);
 
-	if (sd->state.trading|| !sd->npc_shopid){
+	if (sd->state.trading|| !sd->npc_shopid)
 		fail = 1;
-	}else{
+	else{
 		if((nd = ((struct npc_data *)map_id2bl(sd->npc_shopid))->master_nd)){
 			sprintf(npc_ev, "%s::OnBuyItem", nd->exname);
 			for(i=0;i<n;i++){
@@ -9273,9 +9275,9 @@ void clif_parse_NpcSellListSend(int fd,struct map_session_data *sd)
 	n = (RFIFOW(fd,2)-4) /4;
 	item_list = (unsigned short*)RFIFOP(fd,4);
 
-	if (sd->state.trading|| !sd->npc_shopid){
+	if (sd->state.trading|| !sd->npc_shopid)
 		fail = 1;
-	}else{
+	else{
 		if((nd = ((struct npc_data *)map_id2bl(sd->npc_shopid))->master_nd)){
 			sprintf(npc_ev, "%s::OnSellItem", nd->exname);
 			for(i=0;i<n;i++){
@@ -11261,10 +11263,7 @@ void clif_parse_FeelSaveOk(int fd,struct map_session_data *sd)
 	WFIFOW(fd,30)=i;
 	WFIFOSET(fd, packet_len_table[0x20e]);
 	
-	if (sd->bl.m == sd->feel_map[i].m && 
-		(i = pc_checkskill(sd,SG_KNOWLEDGE)) > 0)
-		sc_start(&sd->bl, SC_KNOWLEDGE, 100, i, skill_get_time(SG_KNOWLEDGE, i));
-
+	clif_skill_nodamage(&sd->bl,&sd->bl,sd->menuskill_id,sd->menuskill_lv,1);
 	sd->menuskill_lv = sd->menuskill_id = 0;
 }
 

+ 1 - 0
src/map/skill.c

@@ -1746,6 +1746,7 @@ int skill_attack( int attack_type, struct block_list* src, struct block_list *ds
 	if (attack_type&BF_MAGIC && sc && sc->data[SC_KAITE].timer != -1
 		&& !(status_get_mode(src)&MD_BOSS) && (sd || status_get_lv(dsrc) <= 80) //Works on players or mobs with level under 80.
 	) { //Bounce back the skill.
+		clif_skill_nodamage(bl,bl,SL_KAITE,sc->data[SC_KAITE].val1,1);
 		if (--sc->data[SC_KAITE].val2 <= 0)
 			status_change_end(bl, SC_KAITE, -1);
 		bl = src; //Just make the skill attack yourself @.@