// ギルドへの勧誘 int guild_invite(struct map_session_data *sd,struct map_session_data *tsd) { struct guild *g; int i; nullpo_ret(sd); g=guild_search(sd->status.guild_id); if(tsd==NULL || g==NULL) return 0; if( (i=guild_getposition(g,sd))<0 || !(g->position[i].mode&0x0001) ) return 0; //Invite permission. if(!battle_config.invite_request_check) { if (tsd->party_invite>0 || tsd->trade_partner || tsd->adopt_invite ) { // 相手が取引中かどうか clif_guild_inviteack(sd,0); return 0; } } if (!tsd->fd) { //You can't invite someone who has already disconnected. clif_guild_inviteack(sd,1); return 0; } if(tsd->status.guild_id>0 || tsd->guild_invite>0 || ((agit_flag || agit2_flag || agit3_flag) && map[tsd->bl.m].flag.gvg_castle)) { //Can't invite people inside castles. [Skotlex] clif_guild_inviteack(sd,0); return 0; } // 定員確認 ARR_FIND( 0, g->max_member, i, g->member[i].account_id == 0 ); if(i==g->max_member){ clif_guild_inviteack(sd,3); return 0; } tsd->guild_invite=sd->status.guild_id; tsd->guild_invite_account=sd->status.account_id; clif_guild_invite(tsd,g); return 0; }
// ギルドへの勧誘 int guild_invite(struct map_session_data *sd,struct map_session_data *tsd) { struct guild *g; int i; nullpo_retr(0, sd); g=guild_search(sd->status.guild_id); if(tsd==NULL || g==NULL) return 0; if( (i=guild_getposition(sd,g))<0 || !(g->position[i].mode&0x0001) ) return 0; //Invite permission. if(!battle_config.invite_request_check) { if (tsd->party_invite>0 || tsd->trade_partner) { // 相手が取引中かどうか clif_guild_inviteack(sd,0); return 0; } } if(tsd->status.guild_id>0 || tsd->guild_invite>0 || map[tsd->bl.m].flag.gvg_castle) { //Can't invite people inside castles. [Skotlex] clif_guild_inviteack(sd,0); return 0; } // 定員確認 for(i=0;i<g->max_member;i++) if(g->member[i].account_id==0) break; if(i==g->max_member){ clif_guild_inviteack(sd,3); return 0; } tsd->guild_invite=sd->status.guild_id; tsd->guild_invite_account=sd->status.account_id; clif_guild_invite(tsd,g); return 0; }