From 7afacd63fe36eb56b52490ecf22daeaa95657942 Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Fri, 21 Dec 2012 22:07:37 -0800 Subject: Remove sending of packets the client can't handle --- src/map/atcommand.cpp | 19 +- src/map/battle.cpp | 11 - src/map/chat.cpp | 15 - src/map/clif.cpp | 1491 ++----------------------------------------------- src/map/clif.hpp | 66 --- src/map/map.cpp | 7 - src/map/map.hpp | 3 +- src/map/mob.cpp | 28 - src/map/pc.cpp | 30 +- src/map/script.cpp | 3 - src/map/skill.cpp | 265 +-------- 11 files changed, 65 insertions(+), 1873 deletions(-) (limited to 'src/map') diff --git a/src/map/atcommand.cpp b/src/map/atcommand.cpp index 5a43b54..7691789 100644 --- a/src/map/atcommand.cpp +++ b/src/map/atcommand.cpp @@ -1685,13 +1685,6 @@ int atcommand_option(const int fd, struct map_session_data *sd, sd->opt1 = param1; sd->opt2 = param2; - if (!bool(sd->status.option & Option::CART_MASK) - && bool(param3 & Option::CART_MASK)) - { - clif_cart_itemlist(sd); - clif_cart_equiplist(sd); - clif_updatestatus(sd, SP_CARTINFO); - } sd->status.option = param3; // fix pecopeco display if (sd->status.pc_class == 13 || sd->status.pc_class == 21 @@ -1888,12 +1881,8 @@ int atcommand_heal(const int fd, struct map_session_data *sd, sp = 1 - sd->status.sp; } - if (hp > 0) // display like heal - clif_heal(fd, SP_HP, hp); - else if (hp < 0) // display like damage + if (hp < 0) // display like damage clif_damage(&sd->bl, &sd->bl, gettick(), 0, 0, -hp, 0, 4, 0); - if (sp > 0) // no display when we lost SP - clif_heal(fd, SP_SP, sp); if (hp != 0 || sp != 0) { @@ -2228,7 +2217,6 @@ int atcommand_pvpoff(const int fd, struct map_session_data *sd, if (map[sd->bl.m].flag.pvp) { map[sd->bl.m].flag.pvp = 0; - clif_send0199(sd->bl.m, 0); for (i = 0; i < fd_max; i++) { //人数分ループ if (session[i] && (pl_sd = (struct map_session_data *)session[i]->session_data) @@ -2236,7 +2224,6 @@ int atcommand_pvpoff(const int fd, struct map_session_data *sd, { if (sd->bl.m == pl_sd->bl.m) { - clif_pvpset(pl_sd, 0, 0, 2); if (pl_sd->pvp_timer != -1) { delete_timer(pl_sd->pvp_timer, @@ -2276,7 +2263,6 @@ int atcommand_pvpon(const int fd, struct map_session_data *sd, if (!map[sd->bl.m].flag.pvp && !map[sd->bl.m].flag.nopvp) { map[sd->bl.m].flag.pvp = 1; - clif_send0199(sd->bl.m, 1); for (i = 0; i < fd_max; i++) { if (session[i] && (pl_sd = (struct map_session_data *)session[i]->session_data) @@ -2960,7 +2946,6 @@ int atcommand_produce(const int fd, struct map_session_data *sd, tmp_item.card[0] = 0x00ff; tmp_item.card[1] = ((star * 5) << 8) + attribute; *((unsigned long *) (&tmp_item.card[2])) = sd->char_id; - clif_produceeffect(sd, 0, item_id); // 製造エフェクトパケット clif_misceffect(&sd->bl, 3); // 他人にも成功を通知 if ((flag = pc_additem(sd, &tmp_item, 1))) clif_additem(sd, 0, 0, flag); @@ -3042,7 +3027,6 @@ int atcommand_memo(const int fd, struct map_session_data *sd, 24); sd->status.memo_point[position].x = sd->bl.x; sd->status.memo_point[position].y = sd->bl.y; - clif_skill_memo(sd, 0); if (pc_checkskill(sd, AL_WARP) <= (position + 1)) clif_displaymessage(fd, "Note: you don't have the 'Warp' skill level to use it."); atcommand_memo_sub(sd); @@ -7608,7 +7592,6 @@ int atcommand_summon(const int, struct map_session_data *sd, md->deletetimer = add_timer(tick + 60000, mob_timer_delete, id, 0); clif_misceffect(&md->bl, 344); } - clif_skill_poseffect(&sd->bl, AM_CALLHOMUN, 1, x, y, tick); return 0; } diff --git a/src/map/battle.cpp b/src/map/battle.cpp index 43a4719..6d650cc 100644 --- a/src/map/battle.cpp +++ b/src/map/battle.cpp @@ -1719,8 +1719,6 @@ int battle_calc_damage(struct block_list *src, struct block_list *bl, if (MRAND(100) < sc_data[SC_AUTOGUARD].val2) { damage = 0; - clif_skill_nodamage(bl, bl, CR_AUTOGUARD, - sc_data[SC_AUTOGUARD].val1, 1); if (sd) sd->canmove_tick = gettick() + 300; else if (md) @@ -1733,11 +1731,7 @@ int battle_calc_damage(struct block_list *src, struct block_list *bl, && flag & BF_WEAPON) { if (MRAND(100) < sc_data[SC_PARRYING].val2) - { damage = 0; - clif_skill_nodamage(bl, bl, LK_PARRYING, - sc_data[SC_PARRYING].val1, 1); - } } // リジェクトソード if (sc_data[SC_REJECTSWORD].timer != -1 && damage > 0 @@ -1752,10 +1746,6 @@ int battle_calc_damage(struct block_list *src, struct block_list *bl, { //反射確率は10+5*Lv damage = damage * 50 / 100; battle_damage(bl, src, damage, 0); - //ダメージを与えたのは良いんだが、ここからどうして表示するんだかわかんねぇ - //エフェクトもこれでいいのかわかんねぇ - clif_skill_nodamage(bl, bl, ST_REJECTSWORD, - sc_data[SC_REJECTSWORD].val1, 1); if ((--sc_data[SC_REJECTSWORD].val2) <= 0) skill_status_change_end(bl, SC_REJECTSWORD, -1); } @@ -4762,7 +4752,6 @@ int battle_weapon_attack(struct block_list *src, struct block_list *target, uint16_t(MO_TRIPLEATTACK), skilllv, 0, 0, delay, 0); } sd->attackabletime = sd->canmove_tick = tick + delay; - clif_combo_delay(src, delay); clif_skill_damage(src, target, tick, wd.amotion, wd.dmotion, wd.damage, 3, MO_TRIPLEATTACK, pc_checkskill(sd, MO_TRIPLEATTACK), -1); diff --git a/src/map/chat.cpp b/src/map/chat.cpp index b9c8dfe..9530bfc 100644 --- a/src/map/chat.cpp +++ b/src/map/chat.cpp @@ -43,23 +43,12 @@ int chat_leavechat(struct map_session_data *sd) if (leavechar < 0) // そのchatに所属していないらしい (バグ時のみ) return -1; - if (leavechar == 0 && cd->users > 1 && (*cd->owner)->type == BL_PC) - { - // 所有者だった&他に人が居る&PCのチャット - clif_changechatowner(cd, cd->usersd[1]); - clif_clearchat(cd, 0); - } - - // 抜けるPCにも送るのでusersを減らす前に実行 - clif_leavechat(cd, sd); - cd->users--; pc_setchatid(sd, 0); if (cd->users == 0 && (*cd->owner)->type == BL_PC) { // 全員居なくなった&PCのチャットなので消す - clif_clearchat(cd, 0); map_delobject(cd->bl.id, BL_CHAT); // freeまでしてくれる } else @@ -72,7 +61,6 @@ int chat_leavechat(struct map_session_data *sd) cd->bl.x = cd->usersd[0]->bl.x; cd->bl.y = cd->usersd[0]->bl.y; } - clif_dispchat(cd, 0); } return 0; @@ -118,8 +106,6 @@ int chat_createnpcchat(struct npc_data *nd, int limit, int pub, int trigger, } nd->chat_id = cd->bl.id; - clif_dispchat(cd, 0); - return 0; } @@ -135,7 +121,6 @@ int chat_deletenpcchat(struct npc_data *nd) nullpo_ret(cd = (struct chat_data *) map_id2bl(nd->chat_id)); chat_npckickall(cd); - clif_clearchat(cd, 0); map_delobject(cd->bl.id, BL_CHAT); // freeまでしてくれる nd->chat_id = 0; diff --git a/src/map/clif.cpp b/src/map/clif.cpp index 881cee6..3844eb9 100644 --- a/src/map/clif.cpp +++ b/src/map/clif.cpp @@ -867,71 +867,6 @@ int clif_set007b(struct map_session_data *sd, unsigned char *buf) return packet_len_table[0x1da]; } -/*========================================== - * クラスチェンジ typeはMobの場合は1で他は0? - *------------------------------------------ - */ -int clif_npc_class_change(struct block_list *bl, int npc_class, int type) -{ - uint8_t buf[16]; - - nullpo_ret(bl); - - if (npc_class >= MAX_PC_CLASS) - { - WBUFW(buf, 0) = 0x1b0; - WBUFL(buf, 2) = bl->id; - WBUFB(buf, 6) = type; - WBUFL(buf, 7) = npc_class; - - clif_send(buf, packet_len_table[0x1b0], bl, AREA); - } - return 0; -} - -/*========================================== - * - *------------------------------------------ - */ -int clif_mob_class_change(struct mob_data *md, int class_) -{ - uint8_t buf[16]; - int view = mob_get_viewclass(class_); - - nullpo_ret(md); - - if (view >= MAX_PC_CLASS) - { - WBUFW(buf, 0) = 0x1b0; - WBUFL(buf, 2) = md->bl.id; - WBUFB(buf, 6) = 1; - WBUFL(buf, 7) = view; - - clif_send(buf, packet_len_table[0x1b0], &md->bl, AREA); - } - return 0; -} - -// mob equipment [Valaris] - -int clif_mob_equip(struct mob_data *md, int nameid) -{ - unsigned char buf[16]; - - nullpo_ret(md); - - memset(buf, 0, packet_len_table[0x1a4]); - - WBUFW(buf, 0) = 0x1a4; - WBUFB(buf, 2) = 3; - WBUFL(buf, 3) = md->bl.id; - WBUFL(buf, 7) = nameid; - - clif_send(buf, packet_len_table[0x1a4], &md->bl, AREA); - - return 0; -} - /*========================================== * MOB表示1 *------------------------------------------ @@ -1052,39 +987,6 @@ int clif_npc0078(struct npc_data *nd, unsigned char *buf) return packet_len_table[0x78]; } -/*========================================== - * - *------------------------------------------ - */ -static -int clif_set01e1(struct map_session_data *sd, unsigned char *buf) -{ - nullpo_ret(sd); - - WBUFW(buf, 0) = 0x1e1; - WBUFL(buf, 2) = sd->bl.id; - WBUFW(buf, 6) = sd->spiritball; - - return packet_len_table[0x1e1]; -} - -/*========================================== - * - *------------------------------------------ - */ -static -int clif_set0192(int fd, int m, int x, int y, int type) -{ - WFIFOW(fd, 0) = 0x192; - WFIFOW(fd, 2) = x; - WFIFOW(fd, 4) = y; - WFIFOW(fd, 6) = type; - memcpy(WFIFOP(fd, 8), map[m].name, 16); - WFIFOSET(fd, packet_len_table[0x192]); - - return 0; -} - /* These indices are derived from equip_pos in pc.c and some guesswork */ static int equip_points[LOOK_LAST + 1] = { @@ -1148,9 +1050,6 @@ int clif_spawnpc(struct map_session_data *sd) WBUFW(buf, 51) = 0; clif_send(buf, packet_len_table[0x1d9], &sd->bl, AREA_WOS); - if (sd->spiritball > 0) - clif_spiritball(sd); - if (sd->status.pc_class == 13 || sd->status.pc_class == 21 || sd->status.pc_class == 4014 || sd->status.pc_class == 4022) pc_setoption(sd, sd->status.option | Option::RIDING); // [Valaris] @@ -1272,9 +1171,6 @@ int clif_spawnmob(struct mob_data *md) len = clif_mob0078(md, buf); clif_send(buf, len, &md->bl, AREA); - if (mob_get_equip(md->mob_class) > 0) // mob equipment [Valaris] - clif_mob_equip(md, mob_get_equip(md->mob_class)); - return 0; } @@ -2086,10 +1982,6 @@ int clif_updatestatus(struct map_session_data *sd, int type) case SP_JOBLEVEL: WFIFOL(fd, 4) = 0; break; - case SP_MANNER: - WFIFOL(fd, 4) = sd->status.manner; - clif_changestatus(&sd->bl, SP_MANNER, sd->status.manner); - break; case SP_STATUSPOINT: WFIFOL(fd, 4) = sd->status.status_point; break; @@ -2237,15 +2129,6 @@ int clif_updatestatus(struct map_session_data *sd, int type) len = 14; break; - case SP_CARTINFO: - WFIFOW(fd, 0) = 0x121; - WFIFOW(fd, 2) = sd->cart_num; - WFIFOW(fd, 4) = sd->cart_max_num; - WFIFOL(fd, 6) = sd->cart_weight; - WFIFOL(fd, 10) = sd->cart_max_weight; - len = 14; - break; - case SP_GM: WFIFOL(fd, 4) = pc_isGM(sd); break; @@ -2260,37 +2143,6 @@ int clif_updatestatus(struct map_session_data *sd, int type) return 0; } -int clif_changestatus(struct block_list *bl, int type, int val) -{ - unsigned char buf[12]; - struct map_session_data *sd = NULL; - - nullpo_ret(bl); - - if (bl->type == BL_PC) - sd = (struct map_session_data *) bl; - -//printf("clif_changestatus id:%d type:%d val:%d\n",bl->id,type,val); - if (sd) - { - WBUFW(buf, 0) = 0x1ab; - WBUFL(buf, 2) = bl->id; - WBUFW(buf, 6) = type; - switch (type) - { - case SP_MANNER: - WBUFL(buf, 8) = val; - break; - default: - if (battle_config.error_log) - printf("clif_changestatus : make %d routine\n", type); - return 1; - } - clif_send(buf, packet_len_table[0x1ab], bl, AREA_WOS); - } - return 0; -} - /*========================================== * *------------------------------------------ @@ -2674,107 +2526,6 @@ int clif_useitemack(struct map_session_data *sd, int index, int amount, return 0; } -/*========================================== - * - *------------------------------------------ - */ -int clif_dispchat(struct chat_data *cd, int fd) -{ - uint8_t buf[128]; // 最大title(60バイト)+17 - - if (cd == NULL || *cd->owner == NULL) - return 1; - - WBUFW(buf, 0) = 0xd7; - WBUFW(buf, 2) = strlen(cd->title) + 17; - WBUFL(buf, 4) = (*cd->owner)->id; - WBUFL(buf, 8) = cd->bl.id; - WBUFW(buf, 12) = cd->limit; - WBUFW(buf, 14) = cd->users; - WBUFB(buf, 16) = cd->pub; - strcpy((char *)WBUFP(buf, 17), cd->title); - if (fd) - { - memcpy(WFIFOP(fd, 0), buf, WBUFW(buf, 2)); - WFIFOSET(fd, WBUFW(buf, 2)); - } - else - { - clif_send(buf, WBUFW(buf, 2), *cd->owner, AREA_WOSC); - } - - return 0; -} - -/*========================================== - * - *------------------------------------------ - */ -int clif_clearchat(struct chat_data *cd, int fd) -{ - uint8_t buf[32]; - - nullpo_ret(cd); - - WBUFW(buf, 0) = 0xd8; - WBUFL(buf, 2) = cd->bl.id; - if (fd) - { - memcpy(WFIFOP(fd, 0), buf, packet_len_table[0xd8]); - WFIFOSET(fd, packet_len_table[0xd8]); - } - else - { - clif_send(buf, packet_len_table[0xd8], *cd->owner, AREA_WOSC); - } - - return 0; -} - -/*========================================== - * - *------------------------------------------ - */ -int clif_changechatowner(struct chat_data *cd, struct map_session_data *sd) -{ - uint8_t buf[64]; - - nullpo_ret(sd); - nullpo_ret(cd); - - WBUFW(buf, 0) = 0xe1; - WBUFL(buf, 2) = 1; - memcpy(WBUFP(buf, 6), cd->usersd[0]->status.name, 24); - WBUFW(buf, 30) = 0xe1; - WBUFL(buf, 32) = 0; - memcpy(WBUFP(buf, 36), sd->status.name, 24); - - clif_send(buf, packet_len_table[0xe1] * 2, &sd->bl, CHAT); - - return 0; -} - -/*========================================== - * - *------------------------------------------ - */ -int clif_leavechat(struct chat_data *cd, struct map_session_data *sd) -{ - uint8_t buf[32]; - - nullpo_ret(sd); - nullpo_ret(cd); - - WBUFW(buf, 0) = 0xdd; - WBUFW(buf, 2) = cd->users - 1; - memcpy(WBUFP(buf, 4), sd->status.name, 24); - WBUFB(buf, 28) = 0; - - clif_send(buf, packet_len_table[0xdd], &sd->bl, CHAT); - - return 0; -} - /*========================================== * 取り引き要請受け *------------------------------------------ @@ -2906,7 +2657,6 @@ int clif_tradeitemok(struct map_session_data *sd, int index, int amount, fd = sd->fd; WFIFOW(fd, 0) = 0x1b1; - //WFIFOW(fd,0)=0xea; WFIFOW(fd, 2) = index; WFIFOW(fd, 4) = amount; WFIFOB(fd, 6) = fail; @@ -3128,25 +2878,10 @@ void clif_getareachar_pc(struct map_session_data *sd, WFIFOSET(sd->fd, len); } - if (dstsd->chatID) - { - struct chat_data *cd; - cd = (struct chat_data *) map_id2bl(dstsd->chatID); - if (cd->usersd[0] == dstsd) - clif_dispchat(cd, sd->fd); - } - if (dstsd->spiritball > 0) - { - clif_set01e1(dstsd, WFIFOP(sd->fd, 0)); - WFIFOSET(sd->fd, packet_len_table[0x1e1]); - } if (battle_config.save_clothcolor == 1 && dstsd->status.clothes_color > 0) clif_changelook(&dstsd->bl, LOOK_CLOTHES_COLOR, dstsd->status.clothes_color); - if (sd->status.manner < 0) - clif_changestatus(&sd->bl, SP_MANNER, sd->status.manner); - clif_changelook_accessories(&sd->bl, dstsd); clif_changelook_accessories(&dstsd->bl, sd); } @@ -3168,12 +2903,6 @@ void clif_getareachar_npc(struct map_session_data *sd, struct npc_data *nd) len = clif_npc0078(nd, WFIFOP(sd->fd, 0)); WFIFOSET(sd->fd, len); - - if (nd->chat_id) - { - clif_dispchat((struct chat_data *) map_id2bl(nd->chat_id), sd->fd); - } - } /*========================================== @@ -3190,9 +2919,6 @@ int clif_movemob(struct mob_data *md) len = clif_mob007b(md, buf); clif_send(buf, len, &md->bl, AREA); - if (mob_get_equip(md->mob_class) > 0) // mob equipment [Valaris] - clif_mob_equip(md, mob_get_equip(md->mob_class)); - return 0; } @@ -3319,9 +3045,6 @@ void clif_getareachar_mob(struct map_session_data *sd, struct mob_data *md) len = clif_mob0078(md, WFIFOP(sd->fd, 0)); WFIFOSET(sd->fd, len); } - - if (mob_get_equip(md->mob_class) > 0) // mob equipment [Valaris] - clif_mob_equip(md, mob_get_equip(md->mob_class)); } /*========================================== @@ -3355,103 +3078,6 @@ void clif_getareachar_item(struct map_session_data *sd, WFIFOSET(fd, packet_len_table[0x9d]); } -/*========================================== - * 場所スキルエフェクトが視界に入る - *------------------------------------------ - */ -static -int clif_getareachar_skillunit(struct map_session_data *sd, - struct skill_unit *unit) -{ - int fd; - struct block_list *bl; - - nullpo_ret(unit); - - fd = sd->fd; - bl = map_id2bl(unit->group->src_id); - memset(WFIFOP(fd, 0), 0, packet_len_table[0x1c9]); - WFIFOW(fd, 0) = 0x1c9; - WFIFOL(fd, 2) = unit->bl.id; - WFIFOL(fd, 6) = unit->group->src_id; - WFIFOW(fd, 10) = unit->bl.x; - WFIFOW(fd, 12) = unit->bl.y; - WFIFOB(fd, 14) = unit->group->unit_id; - WFIFOB(fd, 15) = 1; - WFIFOL(fd, 15 + 1) = 0; //1-4調べた限り固定 - WFIFOL(fd, 15 + 5) = 0; //5-8調べた限り固定 - //9-12マップごとで一定の77-80とはまた違う4バイトのかなり大きな数字 - WFIFOL(fd, 15 + 13) = unit->bl.y - 0x12; //13-16ユニットのY座標-18っぽい(Y:17でFF FF FF FF) - WFIFOL(fd, 15 + 17) = 0x004f37dd; //17-20調べた限り固定 - WFIFOL(fd, 15 + 21) = 0x0012f674; //21-24調べた限り固定 - WFIFOL(fd, 15 + 25) = 0x0012f664; //25-28調べた限り固定 - WFIFOL(fd, 15 + 29) = 0x0012f654; //29-32調べた限り固定 - WFIFOL(fd, 15 + 33) = 0x77527bbc; //33-36調べた限り固定 - //37-39 - WFIFOB(fd, 15 + 40) = 0x2d; //40調べた限り固定 - WFIFOL(fd, 15 + 41) = 0; //41-44調べた限り0固定 - WFIFOL(fd, 15 + 45) = 0; //45-48調べた限り0固定 - WFIFOL(fd, 15 + 49) = 0; //49-52調べた限り0固定 - WFIFOL(fd, 15 + 53) = 0x0048d919; //53-56調べた限り固定 - WFIFOL(fd, 15 + 57) = 0x0000003e; //57-60調べた限り固定 - WFIFOL(fd, 15 + 61) = 0x0012f66c; //61-64調べた限り固定 - //65-68 - //69-72 - if (bl) - WFIFOL(fd, 15 + 73) = bl->y; //73-76術者のY座標 - WFIFOL(fd, 15 + 77) = unit->bl.m; //77-80マップIDかなぁ?かなり2バイトで足りそうな数字 - WFIFOB(fd, 15 + 81) = 0xaa; //81終端文字0xaa - - /* Graffiti [Valaris] */ - if (unit->group->unit_id == 0xb0) - { - WFIFOL(fd, 15) = 1; - WFIFOL(fd, 16) = 1; - memcpy(WFIFOP(fd, 17), unit->group->valstr, 80); - } - - WFIFOSET(fd, packet_len_table[0x1c9]); - if (unit->group->skill_id == WZ_ICEWALL) - clif_set0192(fd, unit->bl.m, unit->bl.x, unit->bl.y, 5); - - return 0; -} - -/*========================================== - * 場所スキルエフェクトが視界から消える - *------------------------------------------ - */ -static -int clif_clearchar_skillunit(struct skill_unit *unit, int fd) -{ - nullpo_ret(unit); - - WFIFOW(fd, 0) = 0x120; - WFIFOL(fd, 2) = unit->bl.id; - WFIFOSET(fd, packet_len_table[0x120]); - if (unit->group->skill_id == WZ_ICEWALL) - clif_set0192(fd, unit->bl.m, unit->bl.x, unit->bl.y, unit->val2); - - return 0; -} - -/*========================================== - * - *------------------------------------------ - */ -int clif_01ac(struct block_list *bl) -{ - uint8_t buf[32]; - - nullpo_ret(bl); - - WBUFW(buf, 0) = 0x1ac; - WBUFL(buf, 2) = bl->id; - - clif_send(buf, packet_len_table[0x1ac], bl, AREA); - return 0; -} - /*========================================== * *------------------------------------------ @@ -3478,7 +3104,6 @@ void clif_getareachar(struct block_list *bl, struct map_session_data *sd) clif_getareachar_item(sd, (struct flooritem_data *) bl); break; case BL_SKILL: - clif_getareachar_skillunit(sd, (struct skill_unit *) bl); break; default: if (battle_config.error_log) @@ -3506,13 +3131,6 @@ void clif_pcoutsight(struct block_list *bl, struct map_session_data *sd) { clif_clearchar_id(dstsd->bl.id, 0, sd->fd); clif_clearchar_id(sd->bl.id, 0, dstsd->fd); - if (dstsd->chatID) - { - struct chat_data *cd; - cd = (struct chat_data *) map_id2bl(dstsd->chatID); - if (cd->usersd[0] == dstsd) - clif_dispchat(cd, sd->fd); - } } break; case BL_NPC: @@ -3526,7 +3144,6 @@ void clif_pcoutsight(struct block_list *bl, struct map_session_data *sd) clif_clearflooritem((struct flooritem_data *) bl, sd->fd); break; case BL_SKILL: - clif_clearchar_skillunit((struct skill_unit *) bl, sd->fd); break; } } @@ -3562,7 +3179,6 @@ void clif_pcinsight(struct block_list *bl, struct map_session_data *sd) clif_getareachar_item(sd, (struct flooritem_data *) bl); break; case BL_SKILL: - clif_getareachar_skillunit(sd, (struct skill_unit *) bl); break; } } @@ -3712,28 +3328,6 @@ int clif_skillup(struct map_session_data *sd, SkillID skill_num) return 0; } -/*========================================== - * スキル詠唱エフェクトを送信する - *------------------------------------------ - */ -int clif_skillcasting(struct block_list *bl, - int src_id, int dst_id, int dst_x, int dst_y, - SkillID skill_num, int casttime) -{ - unsigned char buf[32]; - WBUFW(buf, 0) = 0x13e; - WBUFL(buf, 2) = src_id; - WBUFL(buf, 6) = dst_id; - WBUFW(buf, 10) = dst_x; - WBUFW(buf, 12) = dst_y; - WBUFW(buf, 14) = uint16_t(skill_num); //魔法詠唱スキル - WBUFL(buf, 16) = skill_get_pl(skill_num); //属性 - WBUFL(buf, 20) = casttime; //skill詠唱時間 - clif_send(buf, packet_len_table[0x13e], bl, AREA); - - return 0; -} - /*========================================== * *------------------------------------------ @@ -3825,267 +3419,52 @@ int clif_skill_damage(struct block_list *src, struct block_list *dst, } /*========================================== - * 支援/回復スキルエフェクト + * 状態異常アイコン/メッセージ表示 *------------------------------------------ */ -int clif_skill_nodamage(struct block_list *src, struct block_list *dst, - SkillID skill_id, int heal, int fail) +int clif_status_change(struct block_list *bl, StatusChange type, int flag) { - unsigned char buf[32]; - - nullpo_ret(src); - nullpo_ret(dst); + unsigned char buf[16]; - WBUFW(buf, 0) = 0x11a; - WBUFW(buf, 2) = uint16_t(skill_id); - WBUFW(buf, 4) = (heal > 0x7fff) ? 0x7fff : heal; - WBUFL(buf, 6) = dst->id; - WBUFL(buf, 10) = src->id; - WBUFB(buf, 14) = fail; - clif_send(buf, packet_len_table[0x11a], src, AREA); + nullpo_ret(bl); + WBUFW(buf, 0) = 0x0196; + WBUFW(buf, 2) = uint16_t(type); + WBUFL(buf, 4) = bl->id; + WBUFB(buf, 8) = flag; + clif_send(buf, packet_len_table[0x196], bl, AREA); return 0; } /*========================================== - * 場所スキルエフェクト + * Send message (modified by [Yor]) *------------------------------------------ */ -int clif_skill_poseffect(struct block_list *src, SkillID skill_id, int val, - int x, int y, int tick) +int clif_displaymessage(int fd, const char *mes) { - unsigned char buf[32]; - - nullpo_ret(src); + int len_mes = strlen(mes); - WBUFW(buf, 0) = 0x117; - WBUFW(buf, 2) = uint16_t(skill_id); - WBUFL(buf, 4) = src->id; - WBUFW(buf, 8) = val; - WBUFW(buf, 10) = x; - WBUFW(buf, 12) = y; - WBUFL(buf, 14) = tick; - clif_send(buf, packet_len_table[0x117], src, AREA); + if (len_mes > 0) + { // don't send a void message (it's not displaying on the client chat). @help can send void line. + WFIFOW(fd, 0) = 0x8e; + WFIFOW(fd, 2) = 5 + len_mes; // 4 + len + NULL teminate + memcpy(WFIFOP(fd, 4), mes, len_mes + 1); + WFIFOSET(fd, 5 + len_mes); + } return 0; } /*========================================== - * 場所スキルエフェクト表示 + * 天の声を送信する *------------------------------------------ */ -int clif_skill_setunit(struct skill_unit *unit) +int clif_GMmessage(struct block_list *bl, const char *mes, int len, int flag) { - unsigned char buf[128]; - struct block_list *bl; - - nullpo_ret(unit); - - bl = map_id2bl(unit->group->src_id); - - memset(WBUFP(buf, 0), 0, packet_len_table[0x1c9]); - WBUFW(buf, 0) = 0x1c9; - WBUFL(buf, 2) = unit->bl.id; - WBUFL(buf, 6) = unit->group->src_id; - WBUFW(buf, 10) = unit->bl.x; - WBUFW(buf, 12) = unit->bl.y; - WBUFB(buf, 14) = unit->group->unit_id; - WBUFB(buf, 15) = 1; - WBUFL(buf, 15 + 1) = 0; //1-4調べた限り固定 - WBUFL(buf, 15 + 5) = 0; //5-8調べた限り固定 - //9-12マップごとで一定の77-80とはまた違う4バイトのかなり大きな数字 - WBUFL(buf, 15 + 13) = unit->bl.y - 0x12; //13-16ユニットのY座標-18っぽい(Y:17でFF FF FF FF) - WBUFL(buf, 15 + 17) = 0x004f37dd; //17-20調べた限り固定(0x1b2で0x004fdbddだった) - WBUFL(buf, 15 + 21) = 0x0012f674; //21-24調べた限り固定 - WBUFL(buf, 15 + 25) = 0x0012f664; //25-28調べた限り固定 - WBUFL(buf, 15 + 29) = 0x0012f654; //29-32調べた限り固定 - WBUFL(buf, 15 + 33) = 0x77527bbc; //33-36調べた限り固定 - //37-39 - WBUFB(buf, 15 + 40) = 0x2d; //40調べた限り固定 - WBUFL(buf, 15 + 41) = 0; //41-44調べた限り0固定 - WBUFL(buf, 15 + 45) = 0; //45-48調べた限り0固定 - WBUFL(buf, 15 + 49) = 0; //49-52調べた限り0固定 - WBUFL(buf, 15 + 53) = 0x0048d919; //53-56調べた限り固定(0x01b2で0x00495119だった) - WBUFL(buf, 15 + 57) = 0x0000003e; //57-60調べた限り固定 - WBUFL(buf, 15 + 61) = 0x0012f66c; //61-64調べた限り固定 - //65-68 - //69-72 - if (bl) - WBUFL(buf, 15 + 73) = bl->y; //73-76術者のY座標 - WBUFL(buf, 15 + 77) = unit->bl.m; //77-80マップIDかなぁ?かなり2バイトで足りそうな数字 - WBUFB(buf, 15 + 81) = 0xaa; //81終端文字0xaa - - /* Graffiti [Valaris] */ - if (unit->group->unit_id == 0xb0) - { - WBUFL(buf, 15) = 1; - WBUFL(buf, 16) = 1; - memcpy(WBUFP(buf, 17), unit->group->valstr, 80); - } - - clif_send(buf, packet_len_table[0x1c9], &unit->bl, AREA); - return 0; -} - -/*========================================== - * 場所スキルエフェクト削除 - *------------------------------------------ - */ -int clif_skill_delunit(struct skill_unit *unit) -{ - unsigned char buf[16]; - - nullpo_ret(unit); - - WBUFW(buf, 0) = 0x120; - WBUFL(buf, 2) = unit->bl.id; - clif_send(buf, packet_len_table[0x120], &unit->bl, AREA); - return 0; -} - -/*========================================== - * ワープ場所選択 - *------------------------------------------ - */ -int clif_skill_warppoint(struct map_session_data *sd, SkillID skill_num, - const char *map1, const char *map2, - const char *map3, const char *map4) -{ - int fd; - - nullpo_ret(sd); - - fd = sd->fd; - WFIFOW(fd, 0) = 0x11c; - WFIFOW(fd, 2) = uint16_t(skill_num); - memcpy(WFIFOP(fd, 4), map1, 16); - memcpy(WFIFOP(fd, 20), map2, 16); - memcpy(WFIFOP(fd, 36), map3, 16); - memcpy(WFIFOP(fd, 52), map4, 16); - WFIFOSET(fd, packet_len_table[0x11c]); - return 0; -} - -/*========================================== - * メモ応答 - *------------------------------------------ - */ -int clif_skill_memo(struct map_session_data *sd, int flag) -{ - int fd; - - nullpo_ret(sd); - - fd = sd->fd; - - WFIFOW(fd, 0) = 0x11e; - WFIFOB(fd, 2) = flag; - WFIFOSET(fd, packet_len_table[0x11e]); - return 0; -} - -int clif_skill_teleportmessage(struct map_session_data *sd, int flag) -{ - int fd; - - nullpo_ret(sd); - - fd = sd->fd; - WFIFOW(fd, 0) = 0x189; - WFIFOW(fd, 2) = flag; - WFIFOSET(fd, packet_len_table[0x189]); - return 0; -} - -/*========================================== - * モンスター情報 - *------------------------------------------ - */ -int clif_skill_estimation(struct map_session_data *sd, - struct block_list *dst) -{ - struct mob_data *md; - unsigned char buf[64]; - int i; - - nullpo_ret(sd); - nullpo_ret(dst); - - if (dst->type != BL_MOB) - return 0; - if ((md = (struct mob_data *) dst) == NULL) - return 0; - - WBUFW(buf, 0) = 0x18c; - WBUFW(buf, 2) = mob_get_viewclass(md->mob_class); - WBUFW(buf, 4) = mob_db[md->mob_class].lv; - WBUFW(buf, 6) = mob_db[md->mob_class].size; - WBUFL(buf, 8) = md->hp; - WBUFW(buf, 12) = battle_get_def2(&md->bl); - WBUFW(buf, 14) = mob_db[md->mob_class].race; - WBUFW(buf, 16) = - battle_get_mdef2(&md->bl) - (mob_db[md->mob_class].vit >> 1); - WBUFW(buf, 18) = battle_get_elem_type(&md->bl); - for (i = 0; i < 9; i++) - WBUFB(buf, 20 + i) = battle_attr_fix(100, i + 1, md->def_ele); - - if (sd->status.party_id > 0) - clif_send(buf, packet_len_table[0x18c], &sd->bl, PARTY_AREA); - else - { - memcpy(WFIFOP(sd->fd, 0), buf, packet_len_table[0x18c]); - WFIFOSET(sd->fd, packet_len_table[0x18c]); - } - return 0; -} - -/*========================================== - * 状態異常アイコン/メッセージ表示 - *------------------------------------------ - */ -int clif_status_change(struct block_list *bl, StatusChange type, int flag) -{ - unsigned char buf[16]; - - nullpo_ret(bl); - - WBUFW(buf, 0) = 0x0196; - WBUFW(buf, 2) = uint16_t(type); - WBUFL(buf, 4) = bl->id; - WBUFB(buf, 8) = flag; - clif_send(buf, packet_len_table[0x196], bl, AREA); - return 0; -} - -/*========================================== - * Send message (modified by [Yor]) - *------------------------------------------ - */ -int clif_displaymessage(int fd, const char *mes) -{ - int len_mes = strlen(mes); - - if (len_mes > 0) - { // don't send a void message (it's not displaying on the client chat). @help can send void line. - WFIFOW(fd, 0) = 0x8e; - WFIFOW(fd, 2) = 5 + len_mes; // 4 + len + NULL teminate - memcpy(WFIFOP(fd, 4), mes, len_mes + 1); - WFIFOSET(fd, 5 + len_mes); - } - - return 0; -} - -/*========================================== - * 天の声を送信する - *------------------------------------------ - */ -int clif_GMmessage(struct block_list *bl, const char *mes, int len, int flag) -{ - unsigned char lbuf[255]; - unsigned char *buf = - ((len + 16) >= sizeof(lbuf)) ? (unsigned char*)malloc(len + 16) : lbuf; - int lp = (flag & 0x10) ? 8 : 4; + unsigned char lbuf[255]; + unsigned char *buf = + ((len + 16) >= sizeof(lbuf)) ? (unsigned char*)malloc(len + 16) : lbuf; + int lp = (flag & 0x10) ? 8 : 4; WBUFW(buf, 0) = 0x9a; WBUFW(buf, 2) = len + lp; @@ -4100,20 +3479,6 @@ int clif_GMmessage(struct block_list *bl, const char *mes, int len, int flag) return 0; } -/*========================================== - * HPSP回復エフェクトを送信する - *------------------------------------------ - */ -int clif_heal(int fd, int type, int val) -{ - WFIFOW(fd, 0) = 0x13d; - WFIFOW(fd, 2) = type; - WFIFOW(fd, 4) = val; - WFIFOSET(fd, packet_len_table[0x13d]); - - return 0; -} - /*========================================== * 復活する *------------------------------------------ @@ -4124,463 +3489,45 @@ int clif_resurrection(struct block_list *bl, int type) nullpo_ret(bl); - if (bl->type == BL_PC) - { // disguises [Valaris] - struct map_session_data *sd = ((struct map_session_data *) bl); - if (sd && sd->disguise > 23 && sd->disguise < 4001) - clif_spawnpc(sd); - } - - WBUFW(buf, 0) = 0x148; - WBUFL(buf, 2) = bl->id; - WBUFW(buf, 6) = type; - - clif_send(buf, packet_len_table[0x148], bl, type == 1 ? AREA : AREA_WOS); - - return 0; -} - -/*========================================== - * PVP実装?(仮) - *------------------------------------------ - */ -int clif_set0199(int fd, int type) -{ - WFIFOW(fd, 0) = 0x199; - WFIFOW(fd, 2) = type; - WFIFOSET(fd, packet_len_table[0x199]); - - return 0; -} - -/*========================================== - * PVP実装?(仮) - *------------------------------------------ - */ -int clif_pvpset(struct map_session_data *sd, int pvprank, int pvpnum, - int type) -{ - nullpo_ret(sd); - - if (map[sd->bl.m].flag.nopvp) - return 0; - - if (type == 2) - { - WFIFOW(sd->fd, 0) = 0x19a; - WFIFOL(sd->fd, 2) = sd->bl.id; - if (pvprank <= 0) - pc_calc_pvprank(sd); - WFIFOL(sd->fd, 6) = pvprank; - WFIFOL(sd->fd, 10) = pvpnum; - WFIFOSET(sd->fd, packet_len_table[0x19a]); - } - else - { - uint8_t buf[32]; - - WBUFW(buf, 0) = 0x19a; - WBUFL(buf, 2) = sd->bl.id; - if (bool(sd->status.option & Option::REAL_ANY_HIDE)) - WBUFL(buf, 6) = -1; - else if (pvprank <= 0) - pc_calc_pvprank(sd); - WBUFL(buf, 6) = pvprank; - WBUFL(buf, 10) = pvpnum; - if (!type) - clif_send(buf, packet_len_table[0x19a], &sd->bl, AREA); - else - clif_send(buf, packet_len_table[0x19a], &sd->bl, ALL_SAMEMAP); - } - - return 0; -} - -/*========================================== - * - *------------------------------------------ - */ -int clif_send0199(int m, int type) -{ - struct block_list bl; - uint8_t buf[16]; - - bl.m = m; - WBUFW(buf, 0) = 0x199; - WBUFW(buf, 2) = type; - clif_send(buf, packet_len_table[0x199], &bl, ALL_SAMEMAP); - - return 0; -} - -/*========================================== - * 精錬エフェクトを送信する - *------------------------------------------ - */ -int clif_refine(int fd, struct map_session_data *, int fail, int index, - int val) -{ - WFIFOW(fd, 0) = 0x188; - WFIFOW(fd, 2) = fail; - WFIFOW(fd, 4) = index + 2; - WFIFOW(fd, 6) = val; - WFIFOSET(fd, packet_len_table[0x188]); - - return 0; -} - -/*========================================== - * Wisp/page is transmitted to the destination player - *------------------------------------------ - */ -int clif_wis_message(int fd, const char *nick, const char *mes, int mes_len) // R 0097 .w .24B .?B -{ - WFIFOW(fd, 0) = 0x97; - WFIFOW(fd, 2) = mes_len + 24 + 4; - memcpy(WFIFOP(fd, 4), nick, 24); - memcpy(WFIFOP(fd, 28), mes, mes_len); - WFIFOSET(fd, WFIFOW(fd, 2)); - return 0; -} - -/*========================================== - * The transmission result of Wisp/page is transmitted to the source player - *------------------------------------------ - */ -int clif_wis_end(int fd, int flag) // R 0098 .B: 0: success to send wisper, 1: target character is not loged in?, 2: ignored by target -{ - WFIFOW(fd, 0) = 0x98; - WFIFOW(fd, 2) = flag; - WFIFOSET(fd, packet_len_table[0x98]); - return 0; -} - -/*========================================== - * キャラID名前引き結果を送信する - *------------------------------------------ - */ -int clif_solved_charname(struct map_session_data *sd, int char_id) -{ - char *p = map_charid2nick(char_id); - int fd; - - nullpo_ret(sd); - - fd = sd->fd; - if (p != NULL) - { - WFIFOW(fd, 0) = 0x194; - WFIFOL(fd, 2) = char_id; - memcpy(WFIFOP(fd, 6), p, 24); - WFIFOSET(fd, packet_len_table[0x194]); - } - else - { - map_reqchariddb(sd, char_id); - chrif_searchcharid(char_id); - } - return 0; -} - -/*========================================== - * 鑑定可能アイテムリスト送信 - *------------------------------------------ - */ -int clif_item_identify_list(struct map_session_data *sd) -{ - int i, c; - int fd; - - nullpo_ret(sd); - - fd = sd->fd; - - WFIFOW(fd, 0) = 0x177; - for (i = c = 0; i < MAX_INVENTORY; i++) - { - if (sd->status.inventory[i].nameid > 0 - && sd->status.inventory[i].identify != 1) - { - WFIFOW(fd, c * 2 + 4) = i + 2; - c++; - } - } - if (c > 0) - { - WFIFOW(fd, 2) = c * 2 + 4; - WFIFOSET(fd, WFIFOW(fd, 2)); - } - return 0; -} - -/*========================================== - * 修理可能アイテムリスト送信 - * ※実際のパケットがわからないので動作しません - *------------------------------------------ - */ -int clif_item_repair_list(struct map_session_data *sd) -{ - int i, c; - int fd; - - nullpo_ret(sd); - - fd = sd->fd; - - WFIFOW(fd, 0) = 0x0; - for (i = c = 0; i < MAX_INVENTORY; i++) - { - if (sd->status.inventory[i].nameid > 0 - && sd->status.inventory[i].broken != 0) - { - WFIFOW(fd, c * 2 + 4) = i + 2; - c++; - } - } - if (c > 0) - { - WFIFOW(fd, 2) = c * 2 + 4; - WFIFOSET(fd, WFIFOW(fd, 2)); - } - return 0; -} - -/*========================================== - * アイテムによる一時的なスキル効果 - *------------------------------------------ - */ -int clif_item_skill(struct map_session_data *sd, SkillID skillid, int skilllv, - const char *name) -{ - int range, fd; - - nullpo_ret(sd); - - fd = sd->fd; - WFIFOW(fd, 0) = 0x147; - WFIFOW(fd, 2) = uint16_t(skillid); - WFIFOW(fd, 4) = skill_get_inf(skillid); - WFIFOW(fd, 6) = 0; - WFIFOW(fd, 8) = skilllv; - WFIFOW(fd, 10) = skill_get_sp(skillid, skilllv); - range = skill_get_range(skillid, skilllv); - if (range < 0) - range = battle_get_range(&sd->bl) - (range + 1); - WFIFOW(fd, 12) = range; - memcpy(WFIFOP(fd, 14), name, 24); - WFIFOB(fd, 38) = 0; - WFIFOSET(fd, packet_len_table[0x147]); - return 0; -} - -/*========================================== - * カートにアイテム追加 - *------------------------------------------ - */ -int clif_cart_additem(struct map_session_data *sd, int n, int amount, - int) -{ - int view, j, fd; - unsigned char *buf; - - nullpo_ret(sd); - - fd = sd->fd; - buf = WFIFOP(fd, 0); - if (n < 0 || n >= MAX_CART || sd->status.cart[n].nameid <= 0) - return 1; - - WBUFW(buf, 0) = 0x124; - WBUFW(buf, 2) = n + 2; - WBUFL(buf, 4) = amount; - if ((view = itemdb_viewid(sd->status.cart[n].nameid)) > 0) - WBUFW(buf, 8) = view; - else - WBUFW(buf, 8) = sd->status.cart[n].nameid; - WBUFB(buf, 10) = sd->status.cart[n].identify; - if (sd->status.cart[n].broken == 1) //is weapon broken [Valaris] - WBUFB(buf, 11) = 1; - else - WBUFB(buf, 11) = sd->status.cart[n].attribute; - WBUFB(buf, 12) = sd->status.cart[n].refine; - if (sd->status.cart[n].card[0] == 0x00ff - || sd->status.cart[n].card[0] == 0x00fe - || sd->status.cart[n].card[0] == (short) 0xff00) - { - WBUFW(buf, 13) = sd->status.cart[n].card[0]; - WBUFW(buf, 15) = sd->status.cart[n].card[1]; - WBUFW(buf, 17) = sd->status.cart[n].card[2]; - WBUFW(buf, 19) = sd->status.cart[n].card[3]; - } - else - { - if (sd->status.cart[n].card[0] > 0 - && (j = itemdb_viewid(sd->status.cart[n].card[0])) > 0) - WBUFW(buf, 13) = j; - else - WBUFW(buf, 13) = sd->status.cart[n].card[0]; - if (sd->status.cart[n].card[1] > 0 - && (j = itemdb_viewid(sd->status.cart[n].card[1])) > 0) - WBUFW(buf, 15) = j; - else - WBUFW(buf, 15) = sd->status.cart[n].card[1]; - if (sd->status.cart[n].card[2] > 0 - && (j = itemdb_viewid(sd->status.cart[n].card[2])) > 0) - WBUFW(buf, 17) = j; - else - WBUFW(buf, 17) = sd->status.cart[n].card[2]; - if (sd->status.cart[n].card[3] > 0 - && (j = itemdb_viewid(sd->status.cart[n].card[3])) > 0) - WBUFW(buf, 19) = j; - else - WBUFW(buf, 19) = sd->status.cart[n].card[3]; - } - WFIFOSET(fd, packet_len_table[0x124]); - return 0; -} - -/*========================================== - * カートからアイテム削除 - *------------------------------------------ - */ -int clif_cart_delitem(struct map_session_data *sd, int n, int amount) -{ - int fd; - - nullpo_ret(sd); - - fd = sd->fd; - - WFIFOW(fd, 0) = 0x125; - WFIFOW(fd, 2) = n + 2; - WFIFOL(fd, 4) = amount; - - WFIFOSET(fd, packet_len_table[0x125]); - - return 0; -} - -/*========================================== - * カートのアイテムリスト - *------------------------------------------ - */ -int clif_cart_itemlist(struct map_session_data *sd) -{ - struct item_data *id; - int i, n, fd; - unsigned char *buf; - - nullpo_ret(sd); - - fd = sd->fd; - buf = WFIFOP(fd, 0); - WBUFW(buf, 0) = 0x1ef; - for (i = 0, n = 0; i < MAX_CART; i++) - { - if (sd->status.cart[i].nameid <= 0) - continue; - id = itemdb_search(sd->status.cart[i].nameid); - if (itemdb_isequip2(id)) - continue; - WBUFW(buf, n * 18 + 4) = i + 2; - if (id->view_id > 0) - WBUFW(buf, n * 18 + 6) = id->view_id; - else - WBUFW(buf, n * 18 + 6) = sd->status.cart[i].nameid; - WBUFB(buf, n * 18 + 8) = id->type; - WBUFB(buf, n * 18 + 9) = sd->status.cart[i].identify; - WBUFW(buf, n * 18 + 10) = sd->status.cart[i].amount; - WBUFW(buf, n * 18 + 12) = 0; - WBUFW(buf, n * 18 + 14) = sd->status.cart[i].card[0]; - WBUFW(buf, n * 18 + 16) = sd->status.cart[i].card[1]; - WBUFW(buf, n * 18 + 18) = sd->status.cart[i].card[2]; - WBUFW(buf, n * 18 + 20) = sd->status.cart[i].card[3]; - n++; - } - if (n) - { - WBUFW(buf, 2) = 4 + n * 18; - WFIFOSET(fd, WFIFOW(fd, 2)); + if (bl->type == BL_PC) + { // disguises [Valaris] + struct map_session_data *sd = ((struct map_session_data *) bl); + if (sd && sd->disguise > 23 && sd->disguise < 4001) + clif_spawnpc(sd); } + + WBUFW(buf, 0) = 0x148; + WBUFL(buf, 2) = bl->id; + WBUFW(buf, 6) = type; + + clif_send(buf, packet_len_table[0x148], bl, type == 1 ? AREA : AREA_WOS); + return 0; } /*========================================== - * カートの装備品リスト + * Wisp/page is transmitted to the destination player *------------------------------------------ */ -int clif_cart_equiplist(struct map_session_data *sd) +int clif_wis_message(int fd, const char *nick, const char *mes, int mes_len) // R 0097 .w .24B .?B { - struct item_data *id; - int i, j, n, fd; - unsigned char *buf; - - nullpo_ret(sd); - - fd = sd->fd; - buf = WFIFOP(fd, 0); + WFIFOW(fd, 0) = 0x97; + WFIFOW(fd, 2) = mes_len + 24 + 4; + memcpy(WFIFOP(fd, 4), nick, 24); + memcpy(WFIFOP(fd, 28), mes, mes_len); + WFIFOSET(fd, WFIFOW(fd, 2)); + return 0; +} - WBUFW(buf, 0) = 0x122; - for (i = 0, n = 0; i < MAX_INVENTORY; i++) - { - if (sd->status.cart[i].nameid <= 0) - continue; - id = itemdb_search(sd->status.cart[i].nameid); - if (!itemdb_isequip2(id)) - continue; - WBUFW(buf, n * 20 + 4) = i + 2; - if (id->view_id > 0) - WBUFW(buf, n * 20 + 6) = id->view_id; - else - WBUFW(buf, n * 20 + 6) = sd->status.cart[i].nameid; - WBUFB(buf, n * 20 + 8) = id->type; - WBUFB(buf, n * 20 + 9) = sd->status.cart[i].identify; - WBUFW(buf, n * 20 + 10) = id->equip; - WBUFW(buf, n * 20 + 12) = sd->status.cart[i].equip; - if (sd->status.cart[i].broken == 1) - WBUFB(buf, n * 20 + 14) = 1; //is weapon broken [Valaris] - else - WBUFB(buf, n * 20 + 14) = sd->status.cart[i].attribute; - WBUFB(buf, n * 20 + 15) = sd->status.cart[i].refine; - if (sd->status.cart[i].card[0] == 0x00ff - || sd->status.cart[i].card[0] == 0x00fe - || sd->status.cart[i].card[0] == (short) 0xff00) - { - WBUFW(buf, n * 20 + 16) = sd->status.cart[i].card[0]; - WBUFW(buf, n * 20 + 18) = sd->status.cart[i].card[1]; - WBUFW(buf, n * 20 + 20) = sd->status.cart[i].card[2]; - WBUFW(buf, n * 20 + 22) = sd->status.cart[i].card[3]; - } - else - { - if (sd->status.cart[i].card[0] > 0 - && (j = itemdb_viewid(sd->status.cart[i].card[0])) > 0) - WBUFW(buf, n * 20 + 16) = j; - else - WBUFW(buf, n * 20 + 16) = sd->status.cart[i].card[0]; - if (sd->status.cart[i].card[1] > 0 - && (j = itemdb_viewid(sd->status.cart[i].card[1])) > 0) - WBUFW(buf, n * 20 + 18) = j; - else - WBUFW(buf, n * 20 + 18) = sd->status.cart[i].card[1]; - if (sd->status.cart[i].card[2] > 0 - && (j = itemdb_viewid(sd->status.cart[i].card[2])) > 0) - WBUFW(buf, n * 20 + 20) = j; - else - WBUFW(buf, n * 20 + 20) = sd->status.cart[i].card[2]; - if (sd->status.cart[i].card[3] > 0 - && (j = itemdb_viewid(sd->status.cart[i].card[3])) > 0) - WBUFW(buf, n * 20 + 22) = j; - else - WBUFW(buf, n * 20 + 22) = sd->status.cart[i].card[3]; - } - n++; - } - if (n) - { - WBUFW(buf, 2) = 4 + n * 20; - WFIFOSET(fd, WFIFOW(fd, 2)); - } +/*========================================== + * The transmission result of Wisp/page is transmitted to the source player + *------------------------------------------ + */ +int clif_wis_end(int fd, int flag) // R 0098 .B: 0: success to send wisper, 1: target character is not loged in?, 2: ignored by target +{ + WFIFOW(fd, 0) = 0x98; + WFIFOW(fd, 2) = flag; + WFIFOSET(fd, packet_len_table[0x98]); return 0; } @@ -4869,183 +3816,6 @@ int clif_movetoattack(struct map_session_data *sd, struct block_list *bl) return 0; } -/*========================================== - * 製造エフェクト - *------------------------------------------ - */ -int clif_produceeffect(struct map_session_data *sd, int flag, int nameid) -{ - int view, fd; - - nullpo_ret(sd); - - fd = sd->fd; - // 名前の登録と送信を先にしておく - if (map_charid2nick(sd->status.char_id) == NULL) - map_addchariddb(sd->status.char_id, sd->status.name); - clif_solved_charname(sd, sd->status.char_id); - - WFIFOW(fd, 0) = 0x18f; - WFIFOW(fd, 2) = flag; - if ((view = itemdb_viewid(nameid)) > 0) - WFIFOW(fd, 4) = view; - else - WFIFOW(fd, 4) = nameid; - WFIFOSET(fd, packet_len_table[0x18f]); - return 0; -} - -/*========================================== - * オートスペル リスト送信 - *------------------------------------------ - */ -int clif_autospell(struct map_session_data *sd, int skilllv) -{ - int fd; - - nullpo_ret(sd); - - fd = sd->fd; - WFIFOW(fd, 0) = 0x1cd; - - if (skilllv > 0 && pc_checkskill(sd, MG_NAPALMBEAT) > 0) - WFIFOL(fd, 2) = uint16_t(MG_NAPALMBEAT); - else - WFIFOL(fd, 2) = 0x00000000; - if (skilllv > 1 && pc_checkskill(sd, MG_COLDBOLT) > 0) - WFIFOL(fd, 6) = uint16_t(MG_COLDBOLT); - else - WFIFOL(fd, 6) = 0x00000000; - if (skilllv > 1 && pc_checkskill(sd, MG_FIREBOLT) > 0) - WFIFOL(fd, 10) = uint16_t(MG_FIREBOLT); - else - WFIFOL(fd, 10) = 0x00000000; - if (skilllv > 1 && pc_checkskill(sd, MG_LIGHTNINGBOLT) > 0) - WFIFOL(fd, 14) = uint16_t(MG_LIGHTNINGBOLT); - else - WFIFOL(fd, 14) = 0x00000000; - if (skilllv > 4 && pc_checkskill(sd, MG_SOULSTRIKE) > 0) - WFIFOL(fd, 18) = uint16_t(MG_SOULSTRIKE); - else - WFIFOL(fd, 18) = 0x00000000; - if (skilllv > 7 && pc_checkskill(sd, MG_FIREBALL) > 0) - WFIFOL(fd, 22) = uint16_t(MG_FIREBALL); - else - WFIFOL(fd, 22) = 0x00000000; - if (skilllv > 9 && pc_checkskill(sd, MG_FROSTDIVER) > 0) - WFIFOL(fd, 26) = uint16_t(MG_FROSTDIVER); - else - WFIFOL(fd, 26) = 0x00000000; - - WFIFOSET(fd, packet_len_table[0x1cd]); - return 0; -} - -/*========================================== - * ディボーションの青い糸 - *------------------------------------------ - */ -int clif_devotion(struct map_session_data *sd, int) -{ - unsigned char buf[56]; - int n; - - nullpo_ret(sd); - - WBUFW(buf, 0) = 0x1cf; - WBUFL(buf, 2) = sd->bl.id; -// WBUFL(buf,6)=target; - for (n = 0; n < 5; n++) - WBUFL(buf, 6 + 4 * n) = sd->dev.val2[n]; -// WBUFL(buf,10+4*n)=0; - WBUFB(buf, 26) = 8; - WBUFB(buf, 27) = 0; - - clif_send(buf, packet_len_table[0x1cf], &sd->bl, AREA); - return 0; -} - -/*========================================== - * 氣球 - *------------------------------------------ - */ -int clif_spiritball(struct map_session_data *sd) -{ - unsigned char buf[16]; - - nullpo_ret(sd); - - WBUFW(buf, 0) = 0x1d0; - WBUFL(buf, 2) = sd->bl.id; - WBUFW(buf, 6) = sd->spiritball; - clif_send(buf, packet_len_table[0x1d0], &sd->bl, AREA); - return 0; -} - -/*========================================== - * - *------------------------------------------ - */ -int clif_combo_delay(struct block_list *bl, int wait) -{ - unsigned char buf[32]; - - nullpo_ret(bl); - - WBUFW(buf, 0) = 0x1d2; - WBUFL(buf, 2) = bl->id; - WBUFL(buf, 6) = wait; - clif_send(buf, packet_len_table[0x1d2], bl, AREA); - - return 0; -} - -/*========================================== - *白刃取り - *------------------------------------------ - */ -int clif_bladestop(struct block_list *src, struct block_list *dst, int boolean) -{ - unsigned char buf[32]; - - nullpo_ret(src); - nullpo_ret(dst); - - WBUFW(buf, 0) = 0x1d1; - WBUFL(buf, 2) = src->id; - WBUFL(buf, 6) = dst->id; - WBUFL(buf, 10) = boolean; - - clif_send(buf, packet_len_table[0x1d1], src, AREA); - - return 0; -} - -/*========================================== - * - *------------------------------------------ - */ -int clif_changemapcell(int m, int x, int y, int cell_type, int type) -{ - struct block_list bl; - uint8_t buf[32]; - - bl.m = m; - bl.x = x; - bl.y = y; - WBUFW(buf, 0) = 0x192; - WBUFW(buf, 2) = x; - WBUFW(buf, 4) = y; - WBUFW(buf, 6) = cell_type; - memcpy(WBUFP(buf, 8), map[m].name, 16); - if (!type) - clif_send(buf, packet_len_table[0x192], &bl, AREA); - else - clif_send(buf, packet_len_table[0x192], &bl, ALL_SAMEMAP); - - return 0; -} - /*========================================== * MVPエフェクト *------------------------------------------ @@ -5062,43 +3832,6 @@ int clif_mvp_effect(struct map_session_data *sd) return 0; } -/*========================================== - * MVPアイテム所得 - *------------------------------------------ - */ -int clif_mvp_item(struct map_session_data *sd, int nameid) -{ - int view, fd; - - nullpo_ret(sd); - - fd = sd->fd; - WFIFOW(fd, 0) = 0x10a; - if ((view = itemdb_viewid(nameid)) > 0) - WFIFOW(fd, 2) = view; - else - WFIFOW(fd, 2) = nameid; - WFIFOSET(fd, packet_len_table[0x10a]); - return 0; -} - -/*========================================== - * MVP経験値所得 - *------------------------------------------ - */ -int clif_mvp_exp(struct map_session_data *sd, int exp) -{ - int fd; - - nullpo_ret(sd); - - fd = sd->fd; - WFIFOW(fd, 0) = 0x10b; - WFIFOL(fd, 2) = exp; - WFIFOSET(fd, packet_len_table[0x10b]); - return 0; -} - /*========================================== * エモーション *------------------------------------------ @@ -5137,37 +3870,6 @@ void clif_emotion_towards(struct block_list *bl, WFIFOSET(sd->fd, len); } -/*========================================== - * トーキーボックス - *------------------------------------------ - */ -void clif_talkiebox(struct block_list *bl, const char *talkie) -{ - unsigned char buf[86]; - - nullpo_retv(bl); - - WBUFW(buf, 0) = 0x191; - WBUFL(buf, 2) = bl->id; - memcpy(WBUFP(buf, 6), talkie, 80); - clif_send(buf, packet_len_table[0x191], bl, AREA); -} - -/*========================================== - * 結婚エフェクト - *------------------------------------------ - */ -void clif_wedding_effect(struct block_list *bl) -{ - unsigned char buf[6]; - - nullpo_retv(bl); - - WBUFW(buf, 0) = 0x1ea; - WBUFL(buf, 2) = bl->id; - clif_send(buf, packet_len_table[0x1ea], bl, AREA); -} - /*========================================== * 座る *------------------------------------------ @@ -5243,29 +3945,6 @@ int clif_GM_kick(struct map_session_data *sd, struct map_session_data *tsd, return 0; } -/*========================================== - * サウンドエフェクト - *------------------------------------------ - */ -void clif_soundeffect(struct map_session_data *sd, struct block_list *bl, - const char *name, int type) -{ - int fd; - - nullpo_retv(sd); - nullpo_retv(bl); - - fd = sd->fd; - WFIFOW(fd, 0) = 0x1d3; - memcpy(WFIFOP(fd, 2), name, 24); - WFIFOB(fd, 26) = type; - WFIFOL(fd, 27) = 0; - WFIFOL(fd, 31) = bl->id; - WFIFOSET(fd, packet_len_table[0x1d3]); - - return; -} - // displaying special effects (npcs, weather, etc) [Valaris] int clif_specialeffect(struct block_list *bl, int type, int flag) { @@ -5388,13 +4067,6 @@ void clif_parse_LoadEndAck(int, struct map_session_data *sd) // item clif_itemlist(sd); clif_equiplist(sd); - // cart - if (pc_iscarton(sd)) - { - clif_cart_itemlist(sd); - clif_cart_equiplist(sd); - clif_updatestatus(sd, SP_CARTINFO); - } // param all clif_initialstatus(sd); // party @@ -5428,7 +4100,6 @@ void clif_parse_LoadEndAck(int, struct map_session_data *sd) sd->pvp_lastusers = 0; sd->pvp_point = 5; } - clif_set0199(sd->fd, 1); } else { @@ -6968,56 +5639,6 @@ void clif_parse_GMHide(int fd, struct map_session_data *sd) } } -/*========================================== - * GMによるチャット禁止時間付与 - *------------------------------------------ - */ -static -void clif_parse_GMReqNoChat(int fd, struct map_session_data *sd) -{ - int tid = RFIFOL(fd, 2); - int type = RFIFOB(fd, 6); - int limit = RFIFOW(fd, 7); - struct block_list *bl = map_id2bl(tid); - struct map_session_data *dstsd; - int dstfd; - - nullpo_retv(sd); - - if (!battle_config.muting_players) - { - clif_displaymessage(fd, "Muting is disabled."); - return; - } - - if (type == 0) - limit = 0 - limit; - if (bl->type == BL_PC && (dstsd = (struct map_session_data *) bl)) - { - if ((tid == bl->id && type == 2 && !pc_isGM(sd)) - || (pc_isGM(sd) > pc_isGM(dstsd))) - { - dstfd = dstsd->fd; - WFIFOW(dstfd, 0) = 0x14b; - WFIFOB(dstfd, 2) = (type == 2) ? 1 : type; - memcpy(WFIFOP(dstfd, 3), sd->status.name, 24); - WFIFOSET(dstfd, packet_len_table[0x14b]); - dstsd->status.manner -= limit; - if (dstsd->status.manner < 0) - skill_status_change_start(bl, SC_NOCHAT, 0, 0, 0, 0, 0, 0); - else - { - dstsd->status.manner = 0; - skill_status_change_end(bl, SC_NOCHAT, -1); - } - printf("name:%s type:%d limit:%d manner:%d\n", - dstsd->status.name, type, limit, dstsd->status.manner); - } - } - - return; -} - // 4144 wants this, but I don't like it ... static void clif_parse_PMIgnoreAll(int fd, struct map_session_data *sd) @@ -7408,7 +6029,7 @@ func_table clif_parse_func_table[0x220] = { clif_parse_NpcCloseClicked, 300 }, // 146 { NULL, 0 }, // 147 { NULL, 0 }, // 148 - { clif_parse_GMReqNoChat, 0 }, // 149 + { NULL, 0 }, // 149 { NULL, 0 }, // 14a { NULL, 0 }, // 14b { NULL, 0 }, // 14c diff --git a/src/map/clif.hpp b/src/map/clif.hpp index 3952933..fd8c9b1 100644 --- a/src/map/clif.hpp +++ b/src/map/clif.hpp @@ -53,7 +53,6 @@ int clif_viewpoint(struct map_session_data *, int, int, int, int, int, int); // int clif_additem(struct map_session_data *, int, int, int); //self int clif_delitem(struct map_session_data *, int, int); //self int clif_updatestatus(struct map_session_data *, int); //self -int clif_changestatus(struct block_list *, int, int); //area int clif_damage(struct block_list *, struct block_list *, unsigned int, int, int, int, int, int, int); // area #define clif_takeitem(src,dst) clif_damage(src,dst,0,0,0,0,0,1,0) int clif_changelook(struct block_list *, int, int); // area @@ -67,18 +66,8 @@ int clif_misceffect(struct block_list *, int); // area int clif_changeoption(struct block_list *); // area int clif_useitemack(struct map_session_data *, int, int, int); // self -int clif_dispchat(struct chat_data *, int); // area or fd -int clif_changechatowner(struct chat_data *, struct map_session_data *); // chat -int clif_clearchat(struct chat_data *, int); // area or fd -int clif_leavechat(struct chat_data *, struct map_session_data *); // chat - void clif_emotion(struct block_list *bl, int type); -void clif_talkiebox(struct block_list *bl, const char *talkie); -void clif_wedding_effect(struct block_list *bl); void clif_sitting(int fd, struct map_session_data *sd); -//void clif_sitting(struct map_session_data *sd); -void clif_soundeffect(struct map_session_data *sd, struct block_list *bl, - const char *name, int type); // trade int clif_traderequest(struct map_session_data *sd, const char *name); @@ -109,50 +98,17 @@ void clif_pcoutsight(struct block_list *, struct map_session_data *); void clif_mobinsight(struct block_list *, struct mob_data *); void clif_moboutsight(struct block_list *, struct mob_data *); -int clif_npc_class_change(struct block_list *bl, int npc_class, int type); -int clif_mob_class_change(struct mob_data *md, int mob_class); -int clif_mob_equip(struct mob_data *md, int nameid); // [Valaris] - int clif_skillinfo(struct map_session_data *sd, SkillID skillid, int type, int range); int clif_skillinfoblock(struct map_session_data *sd); int clif_skillup(struct map_session_data *sd, SkillID skill_num); -int clif_skillcasting(struct block_list *bl, - int src_id, int dst_id, int dst_x, int dst_y, - SkillID skill_num, int casttime); int clif_skillcastcancel(struct block_list *bl); int clif_skill_fail(struct map_session_data *sd, SkillID skill_id, int type, int btype); int clif_skill_damage(struct block_list *src, struct block_list *dst, unsigned int tick, int sdelay, int ddelay, int damage, int div, SkillID skill_id, int skill_lv, int type); -int clif_skill_nodamage(struct block_list *src, struct block_list *dst, - SkillID skill_id, int heal, int fail); -int clif_skill_poseffect(struct block_list *src, SkillID skill_id, int val, - int x, int y, int tick); -int clif_skill_estimation(struct map_session_data *sd, - struct block_list *dst); -int clif_skill_warppoint(struct map_session_data *sd, SkillID skill_num, - const char *map1, const char *map2, - const char *map3, const char *map4); -int clif_skill_memo(struct map_session_data *sd, int flag); -int clif_skill_teleportmessage(struct map_session_data *sd, int flag); - -int clif_produceeffect(struct map_session_data *sd, int flag, int nameid); - -int clif_skill_setunit(struct skill_unit *unit); -int clif_skill_delunit(struct skill_unit *unit); - -int clif_01ac(struct block_list *bl); - -int clif_autospell(struct map_session_data *sd, int skilllv); -int clif_devotion(struct map_session_data *sd, int target); -int clif_spiritball(struct map_session_data *sd); -int clif_combo_delay(struct block_list *src, int wait); -int clif_bladestop(struct block_list *src, struct block_list *dst, - int boolean); -int clif_changemapcell(int m, int x, int y, int cell_type, int type); int clif_status_change(struct block_list *bl, StatusChange type, int flag); @@ -160,25 +116,10 @@ int clif_status_change(struct block_list *bl, int clif_wis_message(int fd, const char *nick, const char *mes, int mes_len); int clif_wis_end(int fd, int flag); -int clif_solved_charname(struct map_session_data *sd, int char_id); - int clif_itemlist(struct map_session_data *sd); int clif_equiplist(struct map_session_data *sd); -int clif_cart_additem(struct map_session_data *, int, int, int); -int clif_cart_delitem(struct map_session_data *, int, int); -int clif_cart_itemlist(struct map_session_data *sd); -int clif_cart_equiplist(struct map_session_data *sd); - -int clif_item_identify_list(struct map_session_data *sd); -int clif_item_repair_list(struct map_session_data *sd); - -int clif_item_skill(struct map_session_data *sd, SkillID skillid, int skilllv, - const char *name); - int clif_mvp_effect(struct map_session_data *sd); -int clif_mvp_item(struct map_session_data *sd, int nameid); -int clif_mvp_exp(struct map_session_data *sd, int exp); int clif_movetoattack(struct map_session_data *sd, struct block_list *bl); @@ -200,14 +141,7 @@ int clif_party_hp(struct party *p, struct map_session_data *sd); int clif_displaymessage(int fd, const char *mes); int clif_disp_onlyself(struct map_session_data *sd, const char *mes, int len); int clif_GMmessage(struct block_list *bl, const char *mes, int len, int flag); -int clif_heal(int fd, int type, int val); int clif_resurrection(struct block_list *bl, int type); -int clif_set0199(int fd, int type); -int clif_pvpset(struct map_session_data *sd, int pvprank, int pvpnum, - int type); -int clif_send0199(int map, int type); -int clif_refine(int fd, struct map_session_data *sd, int fail, int index, - int val); int clif_specialeffect(struct block_list *bl, int type, int flag); // special effects [Valaris] int clif_message(struct block_list *bl, const char *msg); // messages (from mobs/npcs) [Valaris] diff --git a/src/map/map.cpp b/src/map/map.cpp index 2d49739..d4a9289 100644 --- a/src/map/map.cpp +++ b/src/map/map.cpp @@ -994,16 +994,9 @@ void map_addchariddb(int charid, const char *name) else numdb_erase(charid_db, charid); - int req = p->req_id; memcpy(p->nick, name, 24); p->req_id = 0; numdb_insert(charid_db, charid, p); - if (req) - { // 返信待ちがあれば返信 - struct map_session_data *sd = map_id2sd(req); - if (sd != NULL) - clif_solved_charname(sd, charid); - } } /*========================================== diff --git a/src/map/map.hpp b/src/map/map.hpp index 1c9eb82..93032bb 100644 --- a/src/map/map.hpp +++ b/src/map/map.hpp @@ -639,7 +639,7 @@ struct flooritem_data enum { - SP_SPEED, SP_BASEEXP, SP_JOBEXP, SP_KARMA, SP_MANNER, SP_HP, SP_MAXHP, SP_SP, // 0-7 + SP_SPEED, SP_BASEEXP, SP_JOBEXP, SP_KARMA, _sp_manner, SP_HP, SP_MAXHP, SP_SP, // 0-7 SP_MAXSP, SP_STATUSPOINT, SP_0a, SP_BASELEVEL, SP_SKILLPOINT, SP_STR, SP_AGI, SP_VIT, // 8-15 SP_INT, SP_DEX, SP_LUK, SP_CLASS, SP_ZENY, SP_SEX, SP_NEXTBASEEXP, SP_NEXTJOBEXP, // 16-23 SP_WEIGHT, SP_MAXWEIGHT, SP_1a, SP_1b, SP_1c, SP_1d, SP_1e, SP_1f, // 24-31 @@ -648,7 +648,6 @@ enum SP_MDEF2, SP_HIT, SP_FLEE1, SP_FLEE2, SP_CRITICAL, SP_ASPD, SP_36, SP_JOBLEVEL, // 48-55 SP_UPPER, SP_PARTNER, SP_CART, SP_FAME, SP_UNBREAKABLE, //56-58 SP_DEAF = 70, - SP_CARTINFO = 99, // 99 SP_GM = 500, // original 1000- diff --git a/src/map/mob.cpp b/src/map/mob.cpp index db4e326..064fba4 100644 --- a/src/map/mob.cpp +++ b/src/map/mob.cpp @@ -2680,12 +2680,10 @@ int mob_damage(struct block_list *src, struct mob_data *md, int damage, /* ソウルドレイン */ if (sd && (skill = pc_checkskill(sd, HW_SOULDRAIN)) > 0) { - clif_skill_nodamage(src, &md->bl, HW_SOULDRAIN, skill, 1); sp = (battle_get_lv(&md->bl)) * (65 + 15 * skill) / 100; if (sd->status.sp + sp > sd->status.max_sp) sp = sd->status.max_sp - sd->status.sp; sd->status.sp += sp; - clif_heal(sd->fd, SP_SP, sp); } // map外に消えた人は計算から除くので @@ -2912,7 +2910,6 @@ int mob_damage(struct block_list *src, struct mob_data *md, int damage, if (mexp < 1) mexp = 1; clif_mvp_effect(mvp_sd); // エフェクト - clif_mvp_exp(mvp_sd, mexp); pc_gainexp(mvp_sd, mexp, 0); for (j = 0; j < 3; j++) { @@ -2931,7 +2928,6 @@ int mob_damage(struct block_list *src, struct mob_data *md, int damage, memset(&item, 0, sizeof(item)); item.nameid = mob_db[md->mob_class].mvpitem[i].nameid; item.identify = !itemdb_isequip3(item.nameid); - clif_mvp_item(mvp_sd, item.nameid); if (mvp_sd->weight * 2 > mvp_sd->max_weight) map_addflooritem(&item, 1, mvp_sd->bl.m, mvp_sd->bl.x, mvp_sd->bl.y, mvp_sd, second_sd, @@ -3017,7 +3013,6 @@ int mob_class_change(struct mob_data *md, int *value) max_hp = battle_get_max_hp(&md->bl); hp_rate = md->hp * 100 / max_hp; - clif_mob_class_change(md, mob_class); md->mob_class = mob_class; max_hp = battle_get_max_hp(&md->bl); if (battle_config.monster_class_change_full_recover == 1) @@ -3299,9 +3294,6 @@ int mob_summonslave(struct mob_data *md2, int *value, int amount, int flag) md->bl.type = BL_MOB; map_addiddb(&md->bl); mob_spawn(md->bl.id); - clif_skill_nodamage(&md->bl, &md->bl, - (flag) ? NPC_SUMMONSLAVE : NPC_SUMMONMONSTER, - a, 1); if (flag) md->master_id = md2->bl.id; @@ -3703,21 +3695,6 @@ int mobskill_use_id(struct mob_data *md, struct block_list *target, target->id, uint16_t(skill_id), skill_lv, casttime, md->mob_class); - if (casttime > 0 || forcecast) - { // 詠唱が必要 -// struct mob_data *md2; - clif_skillcasting(&md->bl, - md->bl.id, target->id, 0, 0, skill_id, casttime); - - // 詠唱反応モンスター -/* if ( target->type==BL_MOB && mob_db[(md2= (struct mob_data *)target)->mob_class].mode&0x10 && - md2->state.state!=MS_ATTACK){ - md2->target_id=md->bl.id; - md->state.targettype = ATTACKABLE; - md2->min_chase=13; - }*/ - } - if (casttime <= 0) // 詠唱の無いものはキャンセルされない md->state.skillcastcancel = 0; @@ -3805,11 +3782,6 @@ int mobskill_use_pos(struct mob_data *md, skill_x, skill_y, uint16_t(skill_id), skill_lv, casttime, md->mob_class); - if (casttime > 0) // A cast time is required. - clif_skillcasting(&md->bl, - md->bl.id, 0, skill_x, skill_y, skill_id, - casttime); - if (casttime <= 0) // A skill without a cast time wont be cancelled. md->state.skillcastcancel = 0; diff --git a/src/map/pc.cpp b/src/map/pc.cpp index 4aa87c9..7703b2f 100644 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -268,7 +268,6 @@ void pc_spiritball_timer(timer_id tid, tick_t, custom_id_t id, custom_data_t) sd->spiritball--; if (sd->spiritball < 0) sd->spiritball = 0; - clif_spiritball(sd); } int pc_addspiritball(struct map_session_data *sd, int interval, int max) @@ -300,12 +299,11 @@ int pc_addspiritball(struct map_session_data *sd, int interval, int max) sd->spirit_timer[sd->spiritball - 1] = add_timer(gettick() + interval, pc_spiritball_timer, sd->bl.id, 0); - clif_spiritball(sd); return 0; } -int pc_delspiritball(struct map_session_data *sd, int count, int type) +int pc_delspiritball(struct map_session_data *sd, int count, int) { int i; @@ -337,9 +335,6 @@ int pc_delspiritball(struct map_session_data *sd, int count, int type) sd->spirit_timer[i] = -1; } - if (!type) - clif_spiritball(sd); - return 0; } @@ -3656,7 +3651,6 @@ int pc_isUseitem(struct map_session_data *sd, int n) if (nameid == 601 && (map[sd->bl.m].flag.noteleport)) { - clif_skill_teleportmessage(sd, 0); return 0; } @@ -3708,7 +3702,7 @@ int pc_useitem(struct map_session_data *sd, int n) *------------------------------------------ */ static -int pc_cart_delitem(struct map_session_data *sd, int n, int amount, int type) +int pc_cart_delitem(struct map_session_data *sd, int n, int amount, int) { nullpo_retr(1, sd); @@ -3722,11 +3716,6 @@ int pc_cart_delitem(struct map_session_data *sd, int n, int amount, int type) memset(&sd->status.cart[n], 0, sizeof(sd->status.cart[0])); sd->cart_num--; } - if (!type) - { - clif_cart_delitem(sd, n, amount); - clif_updatestatus(sd, SP_CARTINFO); - } return 0; } @@ -6363,8 +6352,6 @@ int pc_jobchange(struct map_session_data *sd, int job, int upper) if (sd->status.clothes_color > 0) clif_changelook(&sd->bl, LOOK_CLOTHES_COLOR, sd->status.clothes_color); - if (battle_config.muting_players && sd->status.manner < 0) - clif_changestatus(&sd->bl, SP_MANNER, sd->status.manner); pc_calcstatus(sd, 0); pc_checkallowskill(sd); @@ -6474,9 +6461,6 @@ int pc_setcart(struct map_session_data *sd, int type) if (!pc_iscarton(sd)) { // カートを付けていない pc_setoption(sd, cart[type]); - clif_cart_itemlist(sd); - clif_cart_equiplist(sd); - clif_updatestatus(sd, SP_CARTINFO); clif_status_change(&sd->bl, StatusChange::CART, 0); } else @@ -7430,22 +7414,17 @@ void pc_calc_pvprank_sub(struct block_list *bl, struct map_session_data *sd2) */ int pc_calc_pvprank(struct map_session_data *sd) { - int old; struct map_data *m; nullpo_ret(sd); nullpo_ret(m = &map[sd->bl.m]); - old = sd->pvp_rank; - if (!(m->flag.pvp)) return 0; sd->pvp_rank = 1; map_foreachinarea(std::bind(pc_calc_pvprank_sub, ph::_1, sd), sd->bl.m, 0, 0, m->xs, m->ys, BL_PC); - if (old != sd->pvp_rank || sd->pvp_lastusers != m->users) - clif_pvpset(sd, sd->pvp_rank, sd->pvp_lastusers = m->users, 0); return sd->pvp_rank; } @@ -7690,7 +7669,6 @@ int pc_natural_heal_hp(struct map_session_data *sd) sd->status.hp = sd->status.max_hp; sd->hp_sub = sd->inchealhptick = 0; } - clif_heal(sd->fd, SP_HP, bonus); } } } @@ -7715,7 +7693,6 @@ int pc_natural_heal_hp(struct map_session_data *sd) sd->status.hp = sd->status.max_hp; sd->hp_sub = sd->inchealhptick = 0; } - clif_heal(sd->fd, SP_HP, bonus); } } } @@ -7795,7 +7772,6 @@ int pc_natural_heal_sp(struct map_session_data *sd) sd->status.sp = sd->status.max_sp; sd->sp_sub = sd->inchealsptick = 0; } - clif_heal(sd->fd, SP_SP, bonus); } } } @@ -7843,7 +7819,6 @@ int pc_spirit_heal_hp(struct map_session_data *sd, int) bonus_hp = sd->status.max_hp - sd->status.hp; sd->status.hp = sd->status.max_hp; } - clif_heal(sd->fd, SP_HP, bonus_hp); sd->inchealspirithptick = 0; } } @@ -7894,7 +7869,6 @@ int pc_spirit_heal_sp(struct map_session_data *sd, int) bonus_sp = sd->status.max_sp - sd->status.sp; sd->status.sp = sd->status.max_sp; } - clif_heal(sd->fd, SP_SP, bonus_sp); sd->inchealspiritsptick = 0; } } diff --git a/src/map/script.cpp b/src/map/script.cpp index 690e938..43451ef 100644 --- a/src/map/script.cpp +++ b/src/map/script.cpp @@ -3579,7 +3579,6 @@ void builtin_pvpon(ScriptState *st) if (m >= 0 && !map[m].flag.pvp && !map[m].flag.nopvp) { map[m].flag.pvp = 1; - clif_send0199(m, 1); if (battle_config.pk_mode) // disable ranking functions if pk_mode is on [Valaris] return; @@ -3615,7 +3614,6 @@ void builtin_pvpoff(ScriptState *st) if (m >= 0 && map[m].flag.pvp && map[m].flag.nopvp) { map[m].flag.pvp = 0; - clif_send0199(m, 0); if (battle_config.pk_mode) // disable ranking options if pk_mode is on [Valaris] return; @@ -3627,7 +3625,6 @@ void builtin_pvpoff(ScriptState *st) { if (m == pl_sd->bl.m) { - clif_pvpset(pl_sd, 0, 0, 2); if (pl_sd->pvp_timer != -1) { delete_timer(pl_sd->pvp_timer, diff --git a/src/map/skill.cpp b/src/map/skill.cpp index f45f73d..06351dc 100644 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -1394,7 +1394,7 @@ int skill_additional_effect(struct block_list *src, struct block_list *bl, pc_checkskill(sd, TF_STEAL)) * 10 > MRAND(1000)) { if (pc_steal_item(sd, bl)) - clif_skill_nodamage(src, bl, TF_STEAL, skill2, 1); + {} else clif_skill_fail(sd, skillid, 0, 0); } @@ -2010,10 +2010,8 @@ int skill_attack(int attack_type, struct block_list *src, } else //回復SP+現在のSPがMSPより小さい場合は回復SPを加算 ((struct map_session_data *) bl)->status.sp += sp; - clif_heal(((struct map_session_data *) bl)->fd, SP_SP, sp); //SP回復エフェクトの表示 ((struct map_session_data *) bl)->canact_tick = tick + skill_delayfix(bl, skill_get_delay(SA_MAGICROD, sc_data[SC_MAGICROD].val1)); // } - clif_skill_nodamage(bl, bl, SA_MAGICROD, sc_data[SC_MAGICROD].val1, 1); //マジックロッドエフェクトを表示 } //マジックロッド処理ここまで @@ -2055,7 +2053,6 @@ int skill_attack(int attack_type, struct block_list *src, 0, 0, delay, 0); //コンボ状態に } sd->attackabletime = sd->canmove_tick = tick + delay; - clif_combo_delay(src, delay); //コンボディレイパケットの送信 } //連打掌(MO_CHAINCOMBO)ここまで //猛龍拳(MO_COMBOFINISH)ここから @@ -2081,7 +2078,6 @@ int skill_attack(int attack_type, struct block_list *src, 0, 0, delay, 0); //コンボ状態に } sd->attackabletime = sd->canmove_tick = tick + delay; - clif_combo_delay(src, delay); //コンボディレイパケットの送信 } //猛龍拳(MO_COMBOFINISH)ここまで //伏虎拳(CH_TIGERFIST)ここから @@ -2099,7 +2095,6 @@ int skill_attack(int attack_type, struct block_list *src, 0, 0, delay, 0); //コンボ状態に } sd->attackabletime = sd->canmove_tick = tick + delay; - clif_combo_delay(src, delay); //コンボディレイパケットの送信 } //伏虎拳(CH_TIGERFIST)ここまで //連柱崩撃(CH_CHAINCRUSH)ここから @@ -2120,7 +2115,6 @@ int skill_attack(int attack_type, struct block_list *src, 0, 0, delay, 0); //コンボ状態に } sd->attackabletime = sd->canmove_tick = tick + delay; - clif_combo_delay(src, delay); //コンボディレイパケットの送信 } //連柱崩撃(CH_CHAINCRUSH)ここまで } @@ -2540,8 +2534,6 @@ void skill_timer(timer_id, tick_t tick, custom_id_t id, custom_data_t data) switch (skl->skill_id) { case TF_BACKSLIDING: - clif_skill_nodamage(src, src, skl->skill_id, skl->skill_lv, - 1); break; case RG_INTIMIDATE: if (sd && !map[src->m].flag.noteleport) @@ -2630,8 +2622,6 @@ void skill_timer(timer_id, tick_t tick, custom_id_t id, custom_data_t data) skill_unitsetting(src, skl->skill_id, skl->skill_lv, skl->type >> 16, skl->type & 0xFFFF, 0); - clif_skill_poseffect(src, skl->skill_id, skl->skill_lv, - skl->x, skl->y, tick); } else skill_unitsetting(src, skl->skill_id, skl->skill_lv, @@ -3231,7 +3221,6 @@ int skill_castend_damage_id(struct block_list *src, struct block_list *bl, break; case WZ_SIGHTRASHER: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_castend_pos2(src, bl->x, bl->y, skillid, skilllv, tick, 0); skill_status_change_end(src, SC_SIGHT, -1); break; @@ -3302,8 +3291,6 @@ int skill_castend_damage_id(struct block_list *src, struct block_list *bl, { skill_area_temp[1] = bl->id; skill_area_temp[2] = battle_get_hp(src); - clif_skill_nodamage(src, src, NPC_SELFDESTRUCTION, -1, - 1); map_foreachinarea(std::bind(skill_area_sub, ph::_1, src, skillid, skilllv, tick, flag | BCT_ENEMY | 1, skill_castend_damage_id), bl->m, bl->x - 5, bl->y - 5, bl->x + 5, bl->y + 5, 0); @@ -3322,15 +3309,7 @@ int skill_castend_damage_id(struct block_list *src, struct block_list *bl, NPC_BLOODDRAIN) ? BF_WEAPON : BF_MAGIC, src, src, bl, skillid, skilllv, tick, flag); if (heal > 0) - { - struct block_list tbl; - tbl.id = 0; - tbl.m = src->m; - tbl.x = src->x; - tbl.y = src->y; - clif_skill_nodamage(&tbl, src, AL_HEAL, heal, 1); battle_heal(NULL, src, heal, 0, 0); - } } break; case SkillID::ZERO: @@ -3446,7 +3425,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, heal = heal * 2; //スパノビの嫁が旦那にヒールすると2倍になる } - clif_skill_nodamage(src, bl, skillid, heal, 1); heal_get_jobexp = battle_heal(NULL, bl, heal, 0, 0); // JOB経験値獲得 @@ -3474,7 +3452,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, if (pc_isdead(tsd)) { /* 死亡判定 */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); switch (skilllv) { case 1: @@ -3548,7 +3525,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, (battle_get_lv(src) + battle_get_int(src) / 5) - sc_def_mdef)) { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, @@ -3577,7 +3553,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, else { int range = 15; - clif_skill_nodamage(src, bl, skillid, skilllv, 1); map_foreachinarea(std::bind(skill_area_sub, ph::_1, src, skillid, skilllv, tick, flag | BCT_ENEMY | 1, skill_castend_nodamage_id), src->m, src->x - range, src->y - range, src->x + range, src->y + range, 0); @@ -3587,7 +3562,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case PR_LEXDIVINA: /* レックスディビーナ */ { eptr sc_data = battle_get_sc_data(bl); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -3607,7 +3581,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case SA_ABRACADABRA: break; case SA_COMA: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -3623,7 +3596,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, dstmd->hp = 1; break; case SA_FULLRECOVERY: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -3634,51 +3606,42 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, dstmd->hp = battle_get_max_hp(&dstmd->bl); break; case SA_SUMMONMONSTER: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (sd) mob_once_spawn(sd, map[sd->bl.m].name, sd->bl.x, sd->bl.y, "--ja--", -1, 1, ""); break; case SA_LEVELUP: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (sd && pc_nextbaseexp(sd)) pc_gainexp(sd, pc_nextbaseexp(sd) * 10 / 100, 0); break; case SA_INSTANTDEATH: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (sd) pc_damage(NULL, sd, sd->status.max_hp); break; case SA_QUESTION: case SA_GRAVITY: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); break; case SA_CLASSCHANGE: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (dstmd) mob_class_change(dstmd, changeclass); break; case SA_MONOCELL: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (dstmd) mob_class_change(dstmd, poringclass); break; case SA_DEATH: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (dstsd) pc_damage(NULL, dstsd, dstsd->status.max_hp); if (dstmd) mob_damage(NULL, dstmd, dstmd->hp, 1); break; case SA_REVERSEORCISH: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (dstsd) pc_setoption(dstsd, dstsd->status.option | Option::ORC_HEAD); break; case SA_FORTUNE: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (sd) pc_getzeny(sd, battle_get_lv(bl) * 100); break; @@ -3695,7 +3658,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, && ((struct map_session_data *) bl)-> special_state.no_magic_damage) { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); } else { @@ -3704,7 +3666,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, skilllv, 0, 0, 0, skill_get_time(skillid, skilllv), 0); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); } break; @@ -3716,7 +3677,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, && ((struct map_session_data *) bl)-> special_state.no_magic_damage) { - clif_skill_nodamage(src, bl, skillid, skilllv, 0); break; } if (bl->type == BL_PC) @@ -3730,14 +3690,12 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, || sd2->sc_data[SC_ENCPOISON].timer != -1) { clif_skill_fail(sd, skillid, 0, 0); - clif_skill_nodamage(src, bl, skillid, skilllv, 0); break; } } if (MRAND(100) > (75 + skilllv * 1) && (skilllv != 5)) { clif_skill_fail(sd, skillid, 0, 0); - clif_skill_nodamage(src, bl, skillid, skilllv, 0); if (bl->type == BL_PC && battle_config.equipment_breaking) { struct map_session_data *sd2 = @@ -3756,12 +3714,10 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, skilllv, 0, 0, 0, skill_get_time(skillid, skilllv), 0); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); } break; case PR_ASPERSIO: /* アスペルシオ */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -3773,7 +3729,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, skill_get_time(skillid, skilllv), 0); break; case PR_KYRIE: /* キリエエレイソン */ - clif_skill_nodamage(bl, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -3805,7 +3760,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case ST_REJECTSWORD: /* リジェクトソード */ case HW_MAGICPOWER: /* 魔法力増幅 */ case PF_MEMORIZE: /* メモライズ */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, skill_get_time(skillid, skilllv), 0); @@ -3820,18 +3774,15 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, || sd2->sc_data[SC_SEISMICWEAPON].timer != -1 || sd2->sc_data[SC_ENCPOISON].timer != -1) { - clif_skill_nodamage(src, bl, skillid, skilllv, 0); clif_skill_fail(sd, skillid, 0, 0); break; } } - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, skill_get_time(skillid, skilllv), 0); break; case LK_TENSIONRELAX: /* テンションリラックス */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); pc_setsit(sd); clif_sitting(sd->fd, sd); skill_status_change_start(bl, SkillStatusChangeTable[skillid], @@ -3839,12 +3790,10 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, skill_get_time(skillid, skilllv), 0); break; case MC_CHANGECART: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); break; case AC_CONCENTRATION: /* 集中力向上 */ { int range = 1; - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, skill_get_time(skillid, skilllv), 0); @@ -3864,7 +3813,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, return 1; } - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, skill_get_time(skillid, skilllv), 0); @@ -3934,8 +3882,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, return 1; } } - clif_skill_nodamage(src, bl, skillid, skilllv, 1); - clif_devotion(sd, bl->id); skill_status_change_start(bl, SkillStatusChangeTable[skillid], src->id, 1, 0, 0, @@ -3947,7 +3893,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case MO_CALLSPIRITS: // 気功 if (sd) { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); pc_addspiritball(sd, skill_get_time(skillid, skilllv), skilllv); } @@ -3955,14 +3900,12 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case CH_SOULCOLLECT: // 狂気功 if (sd) { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); for (int i = 0; i < 5; i++) pc_addspiritball(sd, skill_get_time(skillid, skilllv), 5); } break; case MO_BLADESTOP: // 白刃取り - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(src, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, skill_get_time(skillid, skilllv), 0); @@ -3976,7 +3919,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, { if (dstsd->spiritball > 0) { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); i = dstsd->spiritball * 7; pc_delspiritball(dstsd, dstsd->spiritball, 0); if (i > 0x7FFF) @@ -3996,42 +3938,20 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, } } if (i) - { sd->status.sp += i; - clif_heal(sd->fd, SP_SP, i); - } - else - clif_skill_nodamage(src, bl, skillid, skilllv, 0); break; } case AC_MAKINGARROW: /* 矢作成 */ -/* if (sd) { - clif_arrow_create_list(sd); - clif_skill_nodamage(src,bl,skillid,skilllv,1); - }*/ break; case AM_PHARMACY: /* ポーション作成 */ -/* if (sd) { - clif_skill_produce_mix_list(sd,32); - clif_skill_nodamage(src,bl,skillid,skilllv,1); - }*/ break; case WS_CREATECOIN: /* クリエイトコイン */ -/* if (sd) { - clif_skill_produce_mix_list(sd,64); - clif_skill_nodamage(src,bl,skillid,skilllv,1); - }*/ break; case WS_CREATENUGGET: /* 塊製造 */ -/* if (sd) { - clif_skill_produce_mix_list(sd,128); - clif_skill_nodamage(src,bl,skillid,skilllv,1); - }*/ break; case BS_HAMMERFALL: /* ハンマーフォール */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_weapon_damage) @@ -4045,7 +3965,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, break; case RG_RAID: /* サプライズアタック */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); { int x = bl->x, y = bl->y; skill_area_temp[1] = bl->id; @@ -4122,8 +4041,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case SN_WINDWALK: /* ウインドウォーク */ if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) { - /* 個別の処理 */ - clif_skill_nodamage(bl, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -4146,8 +4063,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case BS_OVERTHRUST: /* オーバートラスト */ if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) { - /* 個別の処理 */ - clif_skill_nodamage(bl, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, (src == bl) ? 1 : 0, 0, 0, @@ -4170,7 +4085,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, { eptr tsc_data = battle_get_sc_data(bl); StatusChange sc = SkillStatusChangeTable[skillid]; - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (tsc_data) { if (tsc_data[sc].timer == -1) @@ -4189,7 +4103,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, { eptr tsc_data = battle_get_sc_data(bl); StatusChange sc = SkillStatusChangeTable[skillid]; - clif_skill_nodamage(src, bl, skillid, -1, 1); if (tsc_data) { if (tsc_data[sc].timer == -1) @@ -4208,7 +4121,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, { eptr tsc_data = battle_get_sc_data(bl); StatusChange sc = SkillStatusChangeTable[skillid]; - clif_skill_nodamage(src, bl, skillid, -1, 1); if (tsc_data) { if (tsc_data[sc].timer == -1) @@ -4229,7 +4141,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, { eptr tsc_data = battle_get_sc_data(bl); StatusChange sc = SkillStatusChangeTable[skillid]; - clif_skill_nodamage(src, bl, skillid, -1, 1); if (tsc_data) { if (tsc_data[sc].timer == -1) @@ -4264,14 +4175,12 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case DC_FORTUNEKISS: /* 幸運のキス */ case DC_SERVICEFORYOU: /* サービスフォーユー */ case CG_MOONLIT: /* 月明りの泉に落ちる花びら */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_unitsetting(src, skillid, skilllv, src->x, src->y, 0); break; case HP_BASILICA: /* バジリカ */ case PA_GOSPEL: /* ゴスペル */ skill_clear_unitgroup(src); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_unitsetting(src, skillid, skilllv, src->x, src->y, 0); break; @@ -4279,28 +4188,17 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, { eptr sc_data = battle_get_sc_data(src); if (sc_data && sc_data[SC_DANCING].timer != -1) - { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_stop_dancing(src, 0); - } } break; case BA_FROSTJOKE: /* 寒いジョーク */ case DC_SCREAM: /* スクリーム */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_addtimerskill(src, tick + 3000, bl->id, 0, 0, skillid, skilllv, 0, flag); break; case TF_STEAL: // スティール - if (sd) - { - if (pc_steal_item(sd, bl)) - clif_skill_nodamage(src, bl, skillid, skilllv, 1); - else - clif_skill_nodamage(src, bl, skillid, skilllv, 0); - } break; case RG_STEALCOIN: // スティールコイン @@ -4311,11 +4209,8 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, int range = skill_get_range(skillid, skilllv); if (range < 0) range = battle_get_range(src) - (range + 1); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); mob_target((struct mob_data *) bl, src, range); } - else - clif_skill_nodamage(src, bl, skillid, skilllv, 0); } break; @@ -4325,7 +4220,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, clif_skill_fail(sd, sd->skillid, 0, 0); break; } - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -4341,12 +4235,10 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, break; case NV_FIRSTAID: /* 応急手当 */ - clif_skill_nodamage(src, bl, skillid, 5, 1); battle_heal(NULL, bl, 5, 0, 0); break; case AL_CURE: /* キュアー */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -4362,13 +4254,11 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, break; case TF_DETOXIFY: /* 解毒 */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_end(bl, SC_POISON, -1); break; case PR_STRECOVERY: /* リカバリー */ { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -4404,43 +4294,16 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, break; case WZ_ESTIMATION: /* モンスター情報 */ - if (src->type == BL_PC) - { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); - clif_skill_estimation((struct map_session_data *) src, bl); - } break; case MC_IDENTIFY: /* アイテム鑑定 */ - if (sd) - clif_item_identify_list(sd); break; case BS_REPAIRWEAPON: /* 武器修理 */ - if (sd) -//動作しないのでとりあえずコメントアウト -// clif_item_repair_list(sd); - break; + break; case AL_TELEPORT: /* テレポート */ - if (sd) - { - if (map[sd->bl.m].flag.noteleport) - { /* テレポ禁止 */ - clif_skill_teleportmessage(sd, 0); - break; - } - clif_skill_nodamage(src, bl, skillid, skilllv, 1); - if (sd->skilllv == 1) - clif_skill_warppoint(sd, sd->skillid, "Random", "", "", - ""); - else - { - clif_skill_warppoint(sd, sd->skillid, "Random", - sd->status.save_point.map, "", ""); - } - } - else if (bl->type == BL_MOB) + if (bl->type == BL_MOB) mob_warp((struct mob_data *) bl, -1, -1, -1, 3); break; @@ -4449,7 +4312,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, { int eflag; struct item item_tmp; - clif_skill_nodamage(src, bl, skillid, skilllv, 1); memset(&item_tmp, 0, sizeof(item_tmp)); item_tmp.nameid = 523; item_tmp.identify = 1; @@ -4474,7 +4336,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, int eflag; struct item item_tmp; struct block_list tbl; - clif_skill_nodamage(src, bl, skillid, skilllv, 1); memset(&item_tmp, 0, sizeof(item_tmp)); memset(&tbl, 0, sizeof(tbl)); // [MouseJstr] item_tmp.nameid = 7049; @@ -4501,7 +4362,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, strip_time = skill_get_time(skillid, skilllv) + strip_fix / 2; if (MRAND(100) < strip_per) { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, strip_time, 0); @@ -4531,7 +4391,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, strip_time = skill_get_time(skillid, skilllv) + strip_fix / 2; if (MRAND(100) < strip_per) { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, strip_time, 0); @@ -4561,7 +4420,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, strip_time = skill_get_time(skillid, skilllv) + strip_fix / 2; if (MRAND(100) < strip_per) { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, strip_time, 0); @@ -4590,7 +4448,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, strip_time = skill_get_time(skillid, skilllv) + strip_fix / 2; if (MRAND(100) < strip_per) { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, strip_time, 0); @@ -4612,7 +4469,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, /* PotionPitcher */ case AM_POTIONPITCHER: /* ポーションピッチャー */ { - struct block_list tbl; int i, x, hp = 0, sp = 0; if (sd) { @@ -4706,22 +4562,12 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, hp = hp * (100 + pc_checkskill(dstsd, SM_RECOVERY) * 10) / 100; } - tbl.id = 0; - tbl.m = src->m; - tbl.x = src->x; - tbl.y = src->y; - clif_skill_nodamage(src, bl, skillid, skilllv, 1); - if (hp > 0 || (hp <= 0 && sp <= 0)) - clif_skill_nodamage(&tbl, bl, AL_HEAL, hp, 1); - if (sp > 0) - clif_skill_nodamage(&tbl, bl, MG_SRECOVERY, sp, 1); battle_heal(src, bl, hp, sp, 0); } break; case AM_CP_WEAPON: { eptr tsc_data = battle_get_sc_data(bl); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (tsc_data && tsc_data[SC_STRIPWEAPON].timer != -1) skill_status_change_end(bl, SC_STRIPWEAPON, -1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], @@ -4732,7 +4578,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case AM_CP_SHIELD: { eptr tsc_data = battle_get_sc_data(bl); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (tsc_data && tsc_data[SC_STRIPSHIELD].timer != -1) skill_status_change_end(bl, SC_STRIPSHIELD, -1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], @@ -4743,7 +4588,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case AM_CP_ARMOR: { eptr tsc_data = battle_get_sc_data(bl); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (tsc_data && tsc_data[SC_STRIPARMOR].timer != -1) skill_status_change_end(bl, SC_STRIPARMOR, -1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], @@ -4754,7 +4598,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case AM_CP_HELM: { eptr tsc_data = battle_get_sc_data(bl); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (tsc_data && tsc_data[SC_STRIPHELM].timer != -1) skill_status_change_end(bl, SC_STRIPHELM, -1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], @@ -4764,7 +4607,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, break; case SA_DISPELL: /* ディスペル */ { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -4797,7 +4639,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, break; case SA_CASTCANCEL: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_castcancel(src, 1); if (sd) { @@ -4829,10 +4670,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, } else dstsd->status.sp += sp; - clif_heal(dstsd->fd, SP_SP, sp); } - clif_skill_nodamage(bl, bl, SA_MAGICROD, - sc_data[SC_MAGICROD].val1, 1); if (sd) { sp = sd->status.max_sp / 5; @@ -4865,7 +4703,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, && bl_skillid != SkillID::NEGATIVE && skill_db[bl_skillid].skill_type == BF_MAGIC) { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_castcancel(bl, 0); sp = skill_get_sp(bl_skillid, bl_skilllv); if (dstsd) @@ -4886,7 +4723,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, } else sd->status.sp += sp; - clif_heal(sd->fd, SP_SP, sp); } } else if (sd) @@ -4904,9 +4740,8 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, skill_get_time(skillid, skilllv), 0); break; case SA_AUTOSPELL: /* オートスペル */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (sd) - clif_autospell(sd, skilllv); + {} else { int maxlv = 1; @@ -4962,7 +4797,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case NPC_CHANGETELEKINESIS: if (md) { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); md->def_ele = skill_get_pl(skillid); if (md->def_ele == 0) /* ランダム変化、ただし、 */ md->def_ele = MRAND(10); /* 不死属性は除く */ @@ -4971,7 +4805,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, break; case NPC_HALLUCINATION: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -4985,7 +4818,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case NPC_BARRIER: { int skill_time = skill_get_time(skillid, skilllv); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, skill_time, 0); mob_changestate((struct mob_data *) src, MS_DELAY, skill_time); @@ -4995,7 +4827,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case NPC_DARKBLESSING: { int sc_def = 100 - battle_get_mdef(bl); - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_magic_damage) @@ -5022,7 +4853,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, skill_get_time(skillid, skilllv), 0); break; case NPC_LICK: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (bl->type == BL_PC && ((struct map_session_data *) bl)-> special_state.no_weapon_damage) @@ -5037,10 +4867,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case NPC_SUICIDE: /* 自決 */ if (src && bl && md) - { - clif_skill_nodamage(src, bl, skillid, skilllv, 1); mob_damage(NULL, md, md->hp, 0); - } break; case NPC_SUMMONSLAVE: /* 手下召喚 */ @@ -5068,7 +4895,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, break; case NPC_DEFENDER: - clif_skill_nodamage(src, bl, skillid, skilllv, 1); break; case WE_MALE: /* 君だけは護るよ */ @@ -5078,7 +4904,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, (skilllv <= 0) ? 0 : skill_db[skillid].hp_rate[skilllv - 1]; int gain_hp = sd->status.max_hp * abs(hp_rate) / 100; // 15% - clif_skill_nodamage(src, bl, skillid, gain_hp, 1); battle_heal(NULL, bl, gain_hp, 0, 0); } break; @@ -5089,7 +4914,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, (skilllv <= 0) ? 0 : skill_db[skillid].sp_rate[skilllv - 1]; int gain_sp = sd->status.max_sp * abs(sp_rate) / 100; // 15% - clif_skill_nodamage(src, bl, skillid, gain_sp, 1); battle_heal(NULL, bl, 0, gain_sp, 0); } break; @@ -5099,7 +4923,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, { if (map[sd->bl.m].flag.nomemo) { - clif_skill_teleportmessage(sd, 1); return 0; } if ((dstsd = pc_get_partner(sd)) == NULL) @@ -5113,7 +4936,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, break; case PF_HPCONVERSION: /* ライフ置き換え */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (sd) { int conv_hp = 0, conv_sp = 0; @@ -5126,11 +4948,9 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, sd->status.sp : conv_sp; sd->status.sp += conv_sp; //SPを増やす pc_heal(sd, -conv_hp, conv_sp); - clif_heal(sd->fd, SP_SP, conv_sp); } break; case HT_REMOVETRAP: /* リムーブトラップ */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); { struct skill_unit *su = NULL; struct item item_tmp; @@ -5206,7 +5026,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, } break; case HT_SPRINGTRAP: /* スプリングトラップ */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); { struct skill_unit *su = NULL; if ((bl->type == BL_SKILL) && (su = (struct skill_unit *) bl) @@ -5235,7 +5054,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, } break; case BD_ENCORE: /* アンコール */ - clif_skill_nodamage(src, bl, skillid, skilllv, 1); if (sd) skill_use_id(sd, src->id, sd->skillid_dance, sd->skilllv_dance); @@ -5243,7 +5061,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, case AS_SPLASHER: /* ベナムスプラッシャー */ if ((double) battle_get_max_hp(bl) * 2 / 3 < battle_get_hp(bl)) //HPが2/3以上残っていたら失敗 return 1; - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, uint16_t(skillid), src->id, 0, skill_get_time(skillid, skilllv), 0); @@ -5259,7 +5076,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, return 1; } - clif_skill_nodamage(src, bl, skillid, skilllv, 1); skill_status_change_start(bl, SkillStatusChangeTable[skillid], skilllv, 0, 0, 0, skill_get_time(skillid, skilllv), 0); @@ -5294,7 +5110,6 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, break; case RG_CLEANER: //AppleGirl - clif_skill_nodamage(src, bl, skillid, skilllv, 1); { struct skill_unit *su = NULL; if ((bl->type == BL_SKILL) && @@ -5511,10 +5326,6 @@ int skill_castend_pos2(struct block_list *src, int x, int y, { nullpo_ret(sd = (struct map_session_data *) src); } - if (skillid != WZ_METEOR && - skillid != WZ_SIGHTRASHER && - skillid != AM_CANNIBALIZE && skillid != AM_SPHEREMINE) - clif_skill_poseffect(src, skillid, skilllv, x, y, tick); if (skillnotok(skillid, sd)) // [MouseJstr] return 0; @@ -5617,11 +5428,7 @@ int skill_castend_pos2(struct block_list *src, int x, int y, if (j >= 100) continue; if (flag_ == 0) - { - clif_skill_poseffect(src, skillid, skilllv, tmpx, tmpy, - tick); flag_ = 1; - } if (i > 0) skill_addtimerskill(src, tick + i * 1000, 0, tmpx, tmpy, skillid, skilllv, (x1 << 16) | y1, @@ -5635,20 +5442,6 @@ int skill_castend_pos2(struct block_list *src, int x, int y, break; case AL_WARP: /* ワープポータル */ - if (sd) - { - if (map[sd->bl.m].flag.noteleport) /* テレポ禁止 */ - break; - clif_skill_warppoint(sd, sd->skillid, - sd->status.save_point.map, - (sd->skilllv > - 1) ? sd->status.memo_point[0].map : "", - (sd->skilllv > - 2) ? sd->status.memo_point[1].map : "", - (sd->skilllv > - 3) ? sd->status. - memo_point[2].map : ""); - } break; case MO_BODYRELOCATION: if (sd) @@ -5678,7 +5471,6 @@ int skill_castend_pos2(struct block_list *src, int x, int y, skill_get_time(skillid, skilllv), mob_timer_delete, id, 0); } - clif_skill_poseffect(src, skillid, skilllv, x, y, tick); } break; case AM_SPHEREMINE: // スフィアーマイン @@ -5701,7 +5493,6 @@ int skill_castend_pos2(struct block_list *src, int x, int y, skill_get_time(skillid, skilllv), mob_timer_delete, id, 0); } - clif_skill_poseffect(src, skillid, skilllv, x, y, tick); } break; } @@ -6412,7 +6203,6 @@ struct skill_unit_group *skill_unitsetting(struct block_list *src, else { map_setcell(src->m, ux, uy, 5); - clif_changemapcell(src->m, ux, uy, 5, 0); } } @@ -6500,7 +6290,6 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, && ((struct map_session_data *) bl)-> special_state.no_magic_damage) heal = 0; /* 黄金蟲カード(ヒール量0) */ - clif_skill_nodamage(&src->bl, bl, AL_HEAL, heal, 1); battle_heal(NULL, bl, heal, 0, 0); } else @@ -6648,7 +6437,6 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, clif_fixmobpos((struct mob_data *) bl); else clif_fixpos(bl); - clif_01ac(&src->bl); sg->limit = DIFF_TICK(tick, sg->tick) + sec; sg->val2 = bl->id; } @@ -6820,7 +6608,6 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, break; if (sg->val2 == 0) { - clif_talkiebox(&src->bl, sg->valstr); sg->unit_id = 0x8c; clif_changelook(&src->bl, LOOK_BASE, sg->unit_id); sg->limit = DIFF_TICK(tick, sg->tick) + 5000; @@ -6851,7 +6638,6 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, clif_fixmobpos((struct mob_data *) bl); else clif_fixpos(bl); - clif_01ac(&src->bl); sg->limit = DIFF_TICK(tick, sg->tick) + skill_get_time2(sg->skill_id, @@ -7102,8 +6888,6 @@ int skill_unit_onlimit(struct skill_unit *src, unsigned int) case 0x8d: /* アイスウォール */ map_setcell(src->bl.m, src->bl.x, src->bl.y, src->val2); - clif_changemapcell(src->bl.m, src->bl.x, src->bl.y, src->val2, - 1); break; case 0xb2: /* あなたに会いたい */ { @@ -7471,7 +7255,6 @@ void skill_check_condition_use_sub(struct block_list *bl, struct block_list *src ) { ssd->sc_data[SC_DANCING].val4 = bl->id; - clif_skill_nodamage(bl, src, skillid, skilllv, 1); skill_status_change_start(bl, SC_DANCING, uint16_t(skillid), ssd->sc_data[SC_DANCING].val2, 0, src->id, skill_get_time(skillid, @@ -7631,10 +7414,7 @@ int skill_check_condition(struct map_session_data *sd, int type) case AL_TELEPORT: case AL_WARP: if (map[sd->bl.m].flag.noteleport) - { - clif_skill_teleportmessage(sd, 0); return 0; - } break; case MO_CALLSPIRITS: /* 気功 */ if (sd->spiritball >= lv) @@ -8379,8 +8159,6 @@ int skill_use_id(struct map_session_data *sd, int target_id, if (casttime > 0 || forcecast) { /* 詠唱が必要 */ struct mob_data *md; - clif_skillcasting(&sd->bl, - sd->bl.id, target_id, 0, 0, skill_num, casttime); /* 詠唱反応モンスター */ if (bl->type == BL_MOB && (md = (struct mob_data *) bl) @@ -8511,11 +8289,6 @@ int skill_use_pos(struct map_session_data *sd, skill_status_change_end(&sd->bl, SC_MEMORIZE, -1); } - if (casttime > 0) /* 詠唱が必要 */ - clif_skillcasting(&sd->bl, - sd->bl.id, 0, skill_x, skill_y, skill_num, - casttime); - if (casttime <= 0) /* 詠唱の無いものはキャンセルされない */ sd->state.skillcastcancel = 0; @@ -8829,7 +8602,6 @@ int skill_devotion3(struct block_list *bl, int target) for (n = 0; n < 5; n++) if (md->dev.val1[n] == target) md->dev.val2[n] = 0; // 離れた時は、糸を切るだけ - clif_devotion(md, sd->bl.id); return 1; } return 0; @@ -8849,7 +8621,6 @@ void skill_devotion_end(struct map_session_data *md, sd->sc_data[SC_DEVOTION].val1 = 0; sd->sc_data[SC_DEVOTION].val2 = 0; clif_status_change(&sd->bl, SC_DEVOTION, 0); - clif_devotion(md, sd->bl.id); } } @@ -9042,7 +8813,6 @@ void skill_idun_heal(struct block_list *bl, struct skill_unit *unit) if (bl->type == BL_PC || bl->type == BL_MOB) { - clif_skill_nodamage(&unit->bl, bl, AL_HEAL, heal, 1); battle_heal(NULL, bl, heal, 0, 0); } } @@ -9296,10 +9066,6 @@ int skill_status_change_end(struct block_list *bl, StatusChange type, int tid) sc_data[type].val4, SC_BLADESTOP, -1); - if (sc_data[type].val2 == 2) - clif_bladestop((struct block_list *) sc_data[type].val3, - (struct block_list *) sc_data[type].val4, - 0); } break; case SC_DANCING: @@ -9325,15 +9091,6 @@ int skill_status_change_end(struct block_list *bl, StatusChange type, int tid) } break; case SC_NOCHAT: //チャット禁止状態 - { - struct map_session_data *sd = NULL; - if (bl->type == BL_PC - && (sd = (struct map_session_data *) bl)) - { - sd->status.manner = 0; - clif_updatestatus(sd, SP_MANNER); - } - } break; case SC_SPLASHER: /* ベナムスプラッシャー */ { @@ -9940,7 +9697,6 @@ void skill_status_change_timer(timer_id tid, tick_t tick, custom_id_t id, custom && time(&timer) < ((sc_data[type].val2) + 60 * (0 - sd->status.manner))) { //開始からstatus.manner分経ってないので継続 - clif_updatestatus(sd, SP_MANNER); sc_data[type].timer = add_timer( /* タイマー再設定(60秒) */ 60000 + tick, skill_status_change_timer, @@ -10364,9 +10120,6 @@ int skill_status_effect(struct block_list *bl, StatusChange type, case SC_BLADESTOP_WAIT: /* 白刃取り(待ち) */ break; case SC_BLADESTOP: /* 白刃取り */ - if (val2 == 2) - clif_bladestop((struct block_list *) val3, - (struct block_list *) val4, 1); *opt3 |= Opt3::_bladestop; break; @@ -10499,12 +10252,10 @@ int skill_status_effect(struct block_list *bl, StatusChange type, tick = 60000; if (!val2) val2 = time(&timer); - updateflag = SP_MANNER; + // updateflag = SP_MANNER; } break; case SC_SELFDESTRUCTION: //自爆 - clif_skillcasting(bl, bl->id, bl->id, 0, 0, DC_FORTUNEKISS, - skill_get_time(SkillID(val2), val1)); val3 = tick / 1000; tick = 1000; break; @@ -11105,7 +10856,6 @@ struct skill_unit *skill_initunit(struct skill_unit_group *group, int idx, unit->alive = 1; map_addblock(&unit->bl); - clif_skill_setunit(unit); return unit; } @@ -11134,8 +10884,6 @@ int skill_delunit(struct skill_unit *unit) unit->bl.m, unit->bl.x - range, unit->bl.y - range, unit->bl.x + range, unit->bl.y + range, 0); - clif_skill_delunit(unit); - unit->group = NULL; unit->alive = 0; map_delobjectnofree(unit->bl.id, BL_SKILL); @@ -11701,7 +11449,6 @@ int skill_unit_move_unit_group(struct skill_unit_group *group, int m, int dx, unit->bl.x += dx; unit->bl.y += dy; map_addblock(&unit->bl); - clif_skill_setunit(unit); if (range > 0) { if (range < 7) @@ -11762,7 +11509,6 @@ int skill_unit_move_unit_group(struct skill_unit_group *group, int m, int dx, unit1->bl.x += dx; unit1->bl.y += dy; map_addblock(&unit1->bl); - clif_skill_setunit(unit1); if (range > 0) { if (range < 7) @@ -11789,7 +11535,6 @@ int skill_unit_move_unit_group(struct skill_unit_group *group, int m, int dx, unit2->bl.y = unit1->bl.y + dy; unit2->range = unit1->range; map_addblock(&unit2->bl); - clif_skill_setunit(unit2); if (range > 0) { if (range < 7) -- cgit v1.2.3-60-g2f50