From 0eb4ba12344652dd948c3aece8264865ffa857e5 Mon Sep 17 00:00:00 2001 From: skotlex Date: Wed, 3 May 2006 17:53:57 +0000 Subject: - 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6462 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 3 +++ db/Changelog.txt | 1 + db/skill_cast_db.txt | 2 +- src/map/battle.c | 2 +- src/map/clif.c | 27 +++++++++++++-------------- src/map/skill.c | 1 + 6 files changed, 20 insertions(+), 16 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index ce7983b9d..52fc74d46 100644 --- a/Changelog-Trunk.txt +++ b/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 diff --git a/db/Changelog.txt b/db/Changelog.txt index c52bbe836..5f5d7bae5 100644 --- a/db/Changelog.txt +++ b/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 diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt index 535d06db7..6f26fab77 100644 --- a/db/skill_cast_db.txt +++ b/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 ======================== diff --git a/src/map/battle.c b/src/map/battle.c index d042ef75f..97aaf1ee3 100644 --- a/src/map/battle.c +++ b/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; diff --git a/src/map/clif.c b/src/map/clif.c index fb2157989..d61ce3682 100644 --- a/src/map/clif.c +++ b/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;istate.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;ibl.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; } diff --git a/src/map/skill.c b/src/map/skill.c index 80b1bd817..10b355d3f 100644 --- a/src/map/skill.c +++ b/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 @.@ -- cgit v1.2.3-70-g09d2