void duel_accept(const unsigned int did, struct map_session_data *sd) { char output[256]; duel_list[did].members_count++; sd->duel_group = sd->duel_invite; duel_list[did].invites_count--; sd->duel_invite = 0; // " -> Player %s has accepted duel --" sprintf(output, msg_txt(376), sd->status.name); clif_disp_message(&sd->bl, output, strlen(output), DUEL_WOS); clif_map_property(sd, MAPPROPERTY_FREEPVPZONE); clif_maptypeproperty2(&sd->bl,SELF); }
void duel_leave(const unsigned int did, struct map_session_data* sd) { char output[256]; // " <- Player %s has left duel --" sprintf(output, msg_txt(sd,375), sd->status.name); clif_disp_message(&sd->bl, output, strlen(output), DUEL_WOS); duel_list[did].members_count--; if(duel_list[did].members_count == 0) { map_foreachpc(duel_leave_sub, did); duel_count--; } sd->duel_group = 0; duel_savetime(sd); clif_map_property(sd, MAPPROPERTY_NOTHING); clif_maptypeproperty2(&sd->bl,SELF); }
int duel_create(struct map_session_data *sd, const unsigned int maxpl) { int i=1; char output[256]; while(duel_list[i].members_count > 0 && i < MAX_DUEL) i++; if(i == MAX_DUEL) return 0; duel_count++; sd->duel_group = i; duel_list[i].members_count++; duel_list[i].invites_count = 0; duel_list[i].max_players_limit = maxpl; strcpy(output, msg_txt(372)); // " -- Duel has been created (@invite/@leave) --" clif_disp_onlyself(sd, output, strlen(output)); clif_map_property(sd, MAPPROPERTY_FREEPVPZONE); clif_maptypeproperty2(&sd->bl,SELF); return i; }