int guild_send_memberinfoshort(struct map_session_data *sd,int online) { // cleaned up [LuzZza] struct guild *g; nullpo_ret(sd); if(sd->status.guild_id <= 0) return 0; if(!(g = guild_search(sd->status.guild_id))) return 0; intif_guild_memberinfoshort(g->guild_id, sd->status.account_id,sd->status.char_id,online,sd->status.base_level,sd->status.class_); if(!online){ int i=guild_getindex(g,sd->status.account_id,sd->status.char_id); if(i>=0) g->member[i].sd=NULL; else ShowError("guild_send_memberinfoshort: Failed to locate member %d:%d in guild %d!\n", sd->status.account_id, sd->status.char_id, g->guild_id); return 0; } if(sd->state.connect_new) { //Note that this works because it is invoked in parse_LoadEndAck before connect_new is cleared. clif_guild_belonginfo(sd,g); clif_guild_notice(sd,g); sd->guild_emblem_id = g->emblem_id; } return 0; }
int guild_send_memberinfoshort(struct map_session_data *sd,int online) { struct guild *g; int i; nullpo_retr(0, sd); if(sd->status.guild_id<=0) return 0; g=guild_search(sd->status.guild_id); if(g==NULL) return 0; intif_guild_memberinfoshort(g->guild_id, sd->status.account_id,sd->status.char_id,online,sd->status.base_level,sd->status.class_); if( !online ){ // ログアウトするならsdをクリアして終了 i=guild_getindex(g,sd->status.account_id,sd->status.char_id); if(i>=0) g->member[i].sd=NULL; return 0; } else if (sd->fd) { //Send XY dot updates. [Skotlex] for(i=0; i < MAX_GUILD; i++) { if (!g->member[i].sd || g->member[i].sd == sd || g->member[i].sd->bl.m != sd->bl.m) continue; clif_guild_xy_single(sd->fd, g->member[i].sd); } } if( sd->state.guild_sent!=0 ) // ギルド初期送信データは送信済み return 0; // 競合確認 guild_check_conflict(sd); // あるならギルド初期送信データ送信 guild_check_member(g); // 所属を確認する if(sd->status.guild_id==g->guild_id){ clif_guild_belonginfo(sd,g); clif_guild_notice(sd,g); sd->state.guild_sent=1; sd->guild_emblem_id=g->emblem_id; } return 0; }
int guild_send_memberinfoshort(struct map_session_data *sd,int online) { // cleaned up [LuzZza] struct guild *g; nullpo_retr(0, sd); if(!(g = guild_search(sd->status.guild_id))) return 0; //Moved to place before intif_guild_memberinfoshort because //If it's not a member, needn't send it's info to intif. [LuzZza] guild_check_member(g); if(sd->status.guild_id <= 0) return 0; intif_guild_memberinfoshort(g->guild_id, sd->status.account_id,sd->status.char_id,online,sd->status.base_level,sd->status.class_); if(!online){ int i=guild_getindex(g,sd->status.account_id,sd->status.char_id); if(i>=0) g->member[i].sd=NULL; return 0; } if(sd->state.guild_sent) return 0; clif_guild_belonginfo(sd,g); clif_guild_notice(sd,g); sd->state.guild_sent = 1; sd->guild_emblem_id = g->emblem_id; return 0; }