void af5z_descriptive_roundtime(struct char_data *ch, struct char_data *vict) { struct affected_type5z *af5z2; af5z2 = vict->affected5z; if (af5z2->duration > 1) { if (af5z2->duration >= 86400) // 1 day or more? { int days; days = ((af5z2->duration / 60) / 60) / 24; int hours, hours_2; hours = ((af5z2->duration / 60) / 60) - (days * 24); hours_2 = ((af5z2->duration / 60) / 60); int minutes; minutes = (af5z2->duration / 60) - (hours_2 * 60); int seconds; seconds = af5z2->duration - (((hours_2 * 60) * 60) + (minutes * 60)); if (hours == 0 && minutes == 0 && seconds == 0) send_to_char(ch, "%d day%s.", days, days > 1 ? "s":""); else if (hours == 0 && minutes == 0 && seconds > 0) send_to_char(ch, "%d day%s, %d second%s.", days, days > 1 ? "s":"", seconds, seconds > 1 ? "s":""); else if (hours == 0 && minutes > 0 && seconds == 0) send_to_char(ch, "%d day%s, %d minute%s.", days, days > 1 ? "s":"", minutes, minutes > 1 ? "s":""); else if (hours == 0 && minutes > 0 && seconds > 0) send_to_char(ch, "%d day%s, %d minute%s, %d second%s.", days, days > 1 ? "s":"", minutes, minutes > 1 ? "s":"", seconds, seconds > 1 ? "s":""); else if (hours > 0 && minutes == 0 && seconds == 0) send_to_char(ch, "%d day%s, %d hour%s.", days, days > 1 ? "s":"", hours, hours > 1 ? "s":""); else if (hours > 0 && minutes == 0 && seconds > 0) send_to_char(ch, "%d day%s, %d hour%s, %d second%s.", days, days > 1 ? "s":"", hours, hours > 1 ? "s":"", seconds, seconds > 1 ? "s":""); else if (hours > 0 && minutes > 0 && seconds == 0) send_to_char(ch, "%d day%s, %d hour%s, %d minute%s.", days, days > 1 ? "s":"", hours, hours > 1 ? "s":"", minutes, minutes > 1 ? "s":""); else send_to_char(ch, "%d day%s, %d hour%s, %d minute%s, %d second%s.", days, days > 1 ? "s":"", hours, hours > 1 ? "s":"", minutes, minutes > 1 ? "s":"", seconds, seconds > 1 ? "s":""); return; } else if (af5z2->duration >= 3600 && af5z2->duration < 86400) // 1 hour or more? { int hours; hours = (af5z2->duration / 60) / 60; int minutes; minutes = (af5z2->duration / 60) - (hours * 60); int seconds; seconds = af5z2->duration - (((hours * 60) * 60) + (minutes * 60)); if (minutes == 0 && seconds == 0) send_to_char(ch, "%d hour%s.", hours, hours > 1 ? "s":""); else if (minutes == 0 && seconds > 0) send_to_char(ch, "%d hour%s, %d second%s.", hours, hours > 1 ? "s":"", seconds, seconds > 1 ? "s":""); else if (minutes > 0 && seconds == 0) send_to_char(ch, "%d hour%s, %d minute%s.", hours, hours > 1 ? "s":"", minutes, minutes > 1 ? "s":""); else send_to_char(ch, "%d hour%s, %d minute%s, %d second%s.", hours, hours > 1 ? "s":"", minutes, minutes > 1 ? "s":"", seconds, seconds > 1 ? "s":""); return; } else if (af5z2->duration > 60 && af5z2->duration < 3600) // 1 minute or more { int minutes; minutes = af5z2->duration / 60; int seconds; seconds = af5z2->duration - (minutes * 60); if (minutes > 1 && seconds > 1) send_to_char(ch, "%d minutes, %d seconds.", minutes, seconds); else if (minutes > 1 && seconds == 1) send_to_char(ch, "%d minutes, %d second.", minutes, seconds); else if (minutes > 1 && seconds == 0) send_to_char(ch, "%d minutes.", minutes); else send_to_char(ch, "%d minute, %d seconds.", minutes, seconds); return; } else { if (af5z2->duration > 1) send_to_char(ch, "%d seconds.", af5z2->duration); else send_to_char(ch, "1 second."); return; } } }