diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/battle.c | 2 | ||||
-rw-r--r-- | src/map/clif.c | 27 | ||||
-rw-r--r-- | src/map/skill.c | 1 |
3 files changed, 15 insertions, 15 deletions
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;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;
}
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 @.@
|