saovarott159 Posted December 18, 2016 Posted December 18, 2016 Hello... help me please About Emergency Call [Guild Skill] (Skill ID# 10013) All guild members will be teleported next to the Guild Maste specifically guild member in CASTLES only.... Thank you....... Quote
1 nitrous Posted December 19, 2016 Posted December 19, 2016 if (dstsd->bl.m != sd->bl.m) // If member outside castle will be skiped continue; Try that 1 Quote
0 HappyMan Posted December 18, 2016 Posted December 18, 2016 7 hours ago, saovarott159 said: Hello... help me please About Emergency Call [Guild Skill] (Skill ID# 10013) All guild members will be teleported next to the Guild Maste specifically guild member in CASTLES only.... Thank you....... can you elaborate more sir? Quote
0 Nikky Posted December 19, 2016 Posted December 19, 2016 Guild Master only Call Member on the same Castle as Guild Master? Untested find on: src/map/skill.c clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < g->max_member && (!calls || (calls && called < calls)); i++, j++) { if (j > 8) j = 0; if ((dstsd = g->member[i].sd) != NULL && sd != dstsd && !dstsd->state.autotrade && !pc_isdead(dstsd)) { if (map[dstsd->bl.m].flag.nowarp && !map_flag_gvg2(dstsd->bl.m)) continue; if (!pc_job_can_entermap((enum e_job)dstsd->status.class_, src->m, dstsd->group_level)) continue; And change to this clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < g->max_member && (!calls || (calls && called < calls)); i++, j++) { if (j > 8) j = 0; if ((dstsd = g->member[i].sd) != NULL && sd != dstsd && !dstsd->state.autotrade && !pc_isdead(dstsd)) { if (map[dstsd->bl.m].flag.nowarp && !map_flag_gvg2(dstsd->bl.m)) continue; if (map[dstsd->bl.m].index != sd->mapindex) // If member outside castle will be skiped continue; if (!pc_job_can_entermap((enum e_job)dstsd->status.class_, src->m, dstsd->group_level)) continue; Quote
0 saovarott159 Posted December 19, 2016 Author Posted December 19, 2016 (edited) 3 hours ago, Nikky said: Guild Master only Call Member on the same Castle as Guild Master? Untested find on: src/map/skill.c clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < g->max_member && (!calls || (calls && called < calls)); i++, j++) { if (j > 8) j = 0; if ((dstsd = g->member[i].sd) != NULL && sd != dstsd && !dstsd->state.autotrade && !pc_isdead(dstsd)) { if (map[dstsd->bl.m].flag.nowarp && !map_flag_gvg2(dstsd->bl.m)) continue; if (!pc_job_can_entermap((enum e_job)dstsd->status.class_, src->m, dstsd->group_level)) continue; And change to this clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < g->max_member && (!calls || (calls && called < calls)); i++, j++) { if (j > 8) j = 0; if ((dstsd = g->member[i].sd) != NULL && sd != dstsd && !dstsd->state.autotrade && !pc_isdead(dstsd)) { if (map[dstsd->bl.m].flag.nowarp && !map_flag_gvg2(dstsd->bl.m)) continue; if (map[dstsd->bl.m].index != sd->mapindex) // If member outside castle will be skiped continue; if (!pc_job_can_entermap((enum e_job)dstsd->status.class_, src->m, dstsd->group_level)) continue; thank.... But not work case GD_EMERGENCYCALL: case GD_ITEMEMERGENCYCALL: { int8 dx[9] = {-1, 1, 0, 0,-1, 1,-1, 1, 0}; int8 dy[9] = { 0, 0, 1,-1, 1,-1,-1, 1, 0}; uint8 j = 0, calls = 0, called = 0; struct guild *g; // i don't know if it actually summons in a circle, but oh well. ;P g = sd?sd->guild:guild_search(status_get_guild_id(src)); if (!g) break; if (skill_id == GD_ITEMEMERGENCYCALL) switch (skill_lv) { case 1: calls = 7; break; case 2: calls = 12; break; case 3: calls = 20; break; default: calls = 0; break; } clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < g->max_member && (!calls || (calls && called < calls)); i++, j++) { if (j > 8) j = 0; if ((dstsd = g->member.sd) != NULL && sd != dstsd && !dstsd->state.autotrade && !pc_isdead(dstsd)) { if (map[dstsd->bl.m].flag.nowarp && !map_flag_gvg2(dstsd->bl.m)) continue; if(map_getcell(src->m,src->x+dx[j],src->y+dy[j],CELL_CHKNOREACH)) dx[j] = dy[j] = 0; if (!pc_setpos(dstsd, map_id2index(src->m), src->x+dx[j], src->y+dy[j], CLR_RESPAWN)) called++; } } if (sd) guild_block_skill(sd,skill_get_time2(skill_id,skill_lv)); } break; chang to (Build succeeded but not use skill) clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < g->max_member && (!calls || (calls && called < calls)); i++, j++) { if (j > 8) j = 0; if ((dstsd = g->member.sd) != NULL && sd != dstsd && !dstsd->state.autotrade && !pc_isdead(dstsd)) { if (map[dstsd->bl.m].flag.nowarp && !map_flag_gvg2(dstsd->bl.m)) continue; if (map[dstsd->bl.m].index != sd->mapindex) // If member outside castle will be skiped continue; if (!pc_setpos(dstsd, map_id2index(src->m), src->x+dx[j], src->y+dy[j], CLR_RESPAWN)) called++; } } if (sd) guild_block_skill(sd,skill_get_time2(skill_id,skill_lv)); } break; if chang to (Build FAILED) clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < g->max_member && (!calls || (calls && called < calls)); i++, j++) { if (j > 8) j = 0; if ((dstsd = g->member.sd) != NULL && sd != dstsd && !dstsd->state.autotrade && !pc_isdead(dstsd)) { if (map[dstsd->bl.m].flag.nowarp && !map_flag_gvg2(dstsd->bl.m)) continue; if (map[dstsd->bl.m].index != sd->mapindex) // If member outside castle will be skiped continue; if (!pc_job_can_entermap((enum e_job)dstsd->status.class_, src->m, dstsd->group_level)) continue; } } if (sd) guild_block_skill(sd,skill_get_time2(skill_id,skill_lv)); ----------------------------------------------------------------------------------------------------------------------------------------------------- Edited December 19, 2016 by Emistry Please use CODEBOX. Quote
0 saovarott159 Posted December 20, 2016 Author Posted December 20, 2016 6 hours ago, Nitrous said: if (dstsd->bl.m != sd->bl.m) // If member outside castle will be skiped continue; Try that it's work... thank you so much Quote
0 Nikky Posted January 3, 2017 Posted January 3, 2017 On 12/20/2016 at 9:23 AM, saovarott159 said: it's work... thank you so much Sorry unable to test, something reject me with rathena server, with unknown packet Quote
Question
saovarott159
Hello... help me please
About Emergency Call [Guild Skill] (Skill ID# 10013)
All guild members will be teleported next to the Guild Maste
specifically guild member in CASTLES only....
Thank you.......
6 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.