Jump to content
  • 0

About  Emergency Call Skill


saovarott159

Question


  • Group:  Members
  • Topic Count:  23
  • Topics Per Day:  0.01
  • Content Count:  53
  • Reputation:   1
  • Joined:  10/06/16
  • Last Seen:  

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.......

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 1

  • Group:  Developer
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  141
  • Reputation:   45
  • Joined:  08/14/12
  • Last Seen:  

		if (dstsd->bl.m != sd->bl.m) // If member outside castle will be skiped
                        continue;

Try that

  • Upvote 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  20
  • Topics Per Day:  0.01
  • Content Count:  191
  • Reputation:   24
  • Joined:  07/19/14
  • Last Seen:  

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?

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  20
  • Reputation:   0
  • Joined:  10/21/13
  • Last Seen:  

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;

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  23
  • Topics Per Day:  0.01
  • Content Count:  53
  • Reputation:   1
  • Joined:  10/06/16
  • Last Seen:  

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));

 

rkPFMD.JPG

-----------------------------------------------------------------------------------------------------------------------------------------------------

Edited by Emistry
Please use CODEBOX.
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  23
  • Topics Per Day:  0.01
  • Content Count:  53
  • Reputation:   1
  • Joined:  10/06/16
  • Last Seen:  

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

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  20
  • Reputation:   0
  • Joined:  10/21/13
  • Last Seen:  

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...