Jump to content
  • 0

Question

Posted

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

  • 0
Posted
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?

  • 0
Posted

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;

 

  • 0
Posted (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));

 

rkPFMD.JPG

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

Edited by Emistry
Please use CODEBOX.
  • 0
Posted
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

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...