Jump to content
  • 0

Emergency call with @at player


XenaNyx

Question


  • Group:  Members
  • Topic Count:  37
  • Topics Per Day:  0.01
  • Content Count:  131
  • Reputation:   8
  • Joined:  02/08/12
  • Last Seen:  

in my server have guild recall npc at savepoint but if guild member use @at or @afk when recall guild to savepoint character is hold and then if you login to this character it's can't login

i must use @kick player name

i want to edit emergency call if guild member use @at don't call to guild master

Link to comment
Share on other sites

6 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  2223
  • Reputation:   593
  • Joined:  10/26/11
  • Last Seen:  

GD_EMERGENCYCALL should already skip @autotrade players.

If you look at /trunk/src/map/skill.c (line 7020)

	case GD_EMERGENCYCALL:
	{
		int dx[9]={-1, 1, 0, 0,-1, 1,-1, 1, 0};
		int dy[9]={ 0, 0, 1,-1, 1,-1,-1, 1, 0};
		int j = 0;
		struct guild *g = NULL;
		// i don't know if it actually summons in a circle, but oh well. ;P
		g = sd?sd->state.gmaster_flag:guild_search(status_get_guild_id(src));
		if (!g)
			break;
		clif_skill_nodamage(src,bl,skillid,skilllv,1);
		for(i = 0; i <g->max_member; 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_getcell(src->m,src->x+dx[j],src->y+dy[j],CELL_CHKNOREACH))
					dx[j] = dy[j] = 0;
				pc_setpos(dstsd, map_id2index(src->m), src->x+dx[j], src->y+dy[j], CLR_RESPAWN);
			}
		}
		if (sd)
			guild_block_skill(sd,skill_get_time2(skillid,skilllv));
	}
	break;

Does your @afk set some flag?

(like @autotrade sets state.autotrade)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  37
  • Topics Per Day:  0.01
  • Content Count:  131
  • Reputation:   8
  • Joined:  02/08/12
  • Last Seen:  

realy? i don't know before i remember in eathena not skip autotrade , i don't know rathena already skip it

thanks for anwser

and @afk is same flag ^^

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  2223
  • Reputation:   593
  • Joined:  10/26/11
  • Last Seen:  

and @afk is same flag ^^

Then it should also skip @afk players. :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  37
  • Topics Per Day:  0.01
  • Content Count:  131
  • Reputation:   8
  • Joined:  02/08/12
  • Last Seen:  

how about @partyrecall ?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  2223
  • Reputation:   593
  • Joined:  10/26/11
  • Last Seen:  

/src/map/atcommand.c (after line 3798)

Add this:

			if (pl_sd->state.autotrade || pc_isdead(pl_sd))
			continue; // skip players who are @autotrade or dead

so the whole block looks like:

	iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) )
{
	if (sd->status.account_id != pl_sd->status.account_id && pl_sd->status.party_id == p->party.party_id)
	{
		if (pl_sd->state.autotrade || pc_isdead(pl_sd))
			continue; // skip players who are @autotrade or dead
		if (pc_get_group_level(pl_sd) > pc_get_group_level(sd))
			continue; //Skip GMs greater than you.
		if (pl_sd->bl.m >= 0 && map[pl_sd->bl.m].flag.nowarp && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE))
			count++;
		else
			pc_setpos(pl_sd, sd->mapindex, sd->bl.x, sd->bl.y, CLR_RESPAWN);
	}
}
mapit_free(iter);

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  37
  • Topics Per Day:  0.01
  • Content Count:  131
  • Reputation:   8
  • Joined:  02/08/12
  • Last Seen:  

Wow it's work

thanks for your help :)

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