+
+ int type, lamep = 1;
+ char *tstr;
+
+ tstr = conf_get_data("server/type", RECDB_QSTRING);
+ if(tstr) {
+ type = atoi(tstr);
+ if (type > 6)
+ lamep = 0;
+ }
+
+ int wheel = 1 + rand() % 12;
+
+ send_target_message(1, channel->name, chanserv, "CSMSG_SPIN_WHEEL1", user->nick);
+ send_target_message(1, channel->name, chanserv, "CSMSG_SPIN_WHEEL2");
+ send_target_message(1, channel->name, chanserv, "CSMSG_SPIN_WHEEL3");
+
+ if (wheel == 1) {
+ send_target_message(1, channel->name, chanserv, "CSMSG_SPIN_1");
+ if (type < 7)
+ irc_kill(chanserv, user, "Connection reset by peer");
+ else
+ sputsock("%s SQ %s :Connection reset by peer", self->numeric, user->numeric);
+ }
+ if (wheel == 2) {
+ send_target_message(1, channel->name, chanserv, "CSMSG_SPIN_2");
+ if (lamep)
+ lamepart(user);
+ else
+ sputsock("%s SJ %s 0 "FMT_TIME_T, self->numeric, user->numeric, now);
+ }
+ if (wheel == 3) {
+ send_target_message(1, channel->name, chanserv, "CSMSG_SPIN_3");
+ if (lamep)
+ lamepart(user);
+ else
+ sputsock("%s SJ %s 0 "FMT_TIME_T, self->numeric, user->numeric, now);
+ }
+ if (wheel == 4) {
+ char target[IRC_NTOP_MAX_SIZE + 3] = { '*', '@', '\0' };
+ int wtime = 120 + rand() % 600;
+
+ strcpy(target + 2, user->hostname);
+ send_target_message(1, channel->name, chanserv, "CSMSG_SPIN_4");
+
+ gline_add(chanserv->nick, target, wtime, "Reward for spinning the wheel of misfortune!", now, 1, 0);
+ irc_kill(chanserv, user, "Reward for spinning the wheel of misfortune!");
+ }
+ if (wheel == 5) {
+ char target[IRC_NTOP_MAX_SIZE + 3] = { '*', '@', '\0' };
+ int wtime = 120 + rand() % 600;
+
+ strcpy(target + 2, user->hostname);
+ send_target_message(1, channel->name, chanserv, "CSMSG_SPIN_5");
+
+ shun_add(chanserv->nick, target, wtime, "Reward for spinning the wheel of misfortune!", now, 1);
+ }
+ if (wheel == 6) {
+ send_target_message(1, channel->name, chanserv, "CSMSG_SPIN_6");
+ }
+ if (wheel == 7) {
+ int complete = 0;
+ int rndchans = 0;
+ int chango = 0;
+ int roundz0r = 0;
+
+ send_target_message(1, channel->name, chanserv, "CSMSG_SPIN_7");
+ while(complete != 1) {
+ if (rndchans != 15) {
+ chango = 120 + rand() % 600;
+ sputsock("%s SJ %s #%d %ld", self->numeric, user->numeric, chango, now);
+ rndchans++;
+ } else {
+ if (roundz0r != 1) {
+ if (lamep)
+ lamepart(user);
+ else
+ sputsock("%s SJ %s 0 "FMT_TIME_T, self->numeric, user->numeric, now);
+ roundz0r = 1;
+ rndchans = 0;
+ } else {
+ if (lamep)
+ lamepart(user);
+ else
+ sputsock("%s SJ %s 0 "FMT_TIME_T, self->numeric, user->numeric, now);
+ complete = 1;
+ }
+ }
+ }