Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Commands:
- !ff number
- -------------
- Starts the game
- "!ff 1" starts a 1 round game, "!ff unlimited or !ff" starts an unlimited game
- -------------
- !ffstop
- -------------
- Stops the game
- -------------
- !ffscore
- -------------
- Notices a user his/her score
- -------------
- !ffscores
- -------------
- Messages the scores to the channel (Also messaged at the end of each round)
- */
- ;Reads from a text file and grabs a random line's Question and answers in the format: Question*Answer1-Answer2-Answer3-Answer4-Answer5-Answer6-Answer7-Answer8
- on *:LOAD:/FFsetchan $?="Type the name of the channel you would like Family Feud to be active in (Including #)"
- menu nicklist,channel,status,menubar,query {
- Family Feud
- .$iif(%FF.on != 2,Start):/FFStart $me $chan $?="How many rounds? For unlimited rounds say unlimited."
- .$iif(%FF.on == 2,Stop):/FFStop $me $chan
- .Set Family Feud Channel:/FFsetchan $?="Type the name of the channel you would like Family Feud to be active in (Including #)"
- }
- alias FFsetchan { set %chanFF $1 }
- alias question {
- set %FF.line $read(FamFeud.txt)
- set %FF.num $pos(%FF.line, *, 1)
- set %FF.length $len(%FF.line)
- set %FF.numA %FF.length - %FF.num
- set %FF.numQ %FF.num - 1
- set %FF.dashes $count(%FF.line, -)
- set %FF.answers $right(%FF.line, %FF.numA)
- set %FF.question $left(%FF.line, %FF.numQ)
- set %FF.numcom $pos(%FF.answers, -, 1) - 1
- set %FF.numcom2 $len(%FF.answers) - $pos(%FF.answers, -, 1)
- set %FF.a1 $left(%FF.answers, %FF.numcom)
- set %FF.answers $right(%FF.answers, %FF.numcom2)
- if ( %FF.dashes > 0 ) {
- set %FF.numcom $pos(%FF.answers, -, 1) - 1
- set %FF.numcom2 $len(%FF.answers) - $pos(%FF.answers, -, 1)
- set %FF.a2 $left(%FF.answers, %FF.numcom)
- set %FF.answers $right(%FF.answers, %FF.numcom2)
- }
- if ( %FF.dashes > 1 ) {
- set %FF.numcom $pos(%FF.answers, -, 1) - 1
- set %FF.numcom2 $len(%FF.answers) - $pos(%FF.answers, -, 1)
- set %FF.a3 $left(%FF.answers, %FF.numcom)
- set %FF.answers $right(%FF.answers, %FF.numcom2)
- }
- if ( %FF.dashes > 2 ) {
- set %FF.numcom $pos(%FF.answers, -, 1) - 1
- set %FF.numcom2 $len(%FF.answers) - $pos(%FF.answers, -, 1)
- set %FF.a4 $left(%FF.answers, %FF.numcom)
- set %FF.answers $right(%FF.answers, %FF.numcom2)
- }
- if ( %FF.dashes > 3 ) {
- set %FF.numcom $pos(%FF.answers, -, 1) - 1
- set %FF.numcom2 $len(%FF.answers) - $pos(%FF.answers, -, 1)
- set %FF.a5 $left(%FF.answers, %FF.numcom)
- set %FF.answers $right(%FF.answers, %FF.numcom2)
- }
- if ( %FF.dashes > 4 ) {
- set %FF.numcom $pos(%FF.answers, -, 1) - 1
- set %FF.numcom2 $len(%FF.answers) - $pos(%FF.answers, -, 1)
- set %FF.a6 $left(%FF.answers, %FF.numcom)
- set %FF.answers $right(%FF.answers, %FF.numcom2)
- }
- if ( %FF.dashes > 5 ) {
- set %FF.numcom $pos(%FF.answers, -, 1) - 1
- set %FF.numcom2 $len(%FF.answers) - $pos(%FF.answers, -, 1)
- set %FF.a7 $left(%FF.answers, %FF.numcom)
- set %FF.answers $right(%FF.answers, %FF.numcom2)
- }
- if ( %FF.dashes == 0 ) { set %FF.a1 %FF.answers }
- if ( %FF.dashes == 1 ) { set %FF.a2 %FF.answers }
- if ( %FF.dashes == 2 ) { set %FF.a3 %FF.answers }
- if ( %FF.dashes == 3 ) { set %FF.a4 %FF.answers }
- if ( %FF.dashes == 4 ) { set %FF.a5 %FF.answers }
- if ( %FF.dashes == 5 ) { set %FF.a6 %FF.answers }
- if ( %FF.dashes == 6 ) { set %FF.a7 %FF.answers }
- if ( %FF.dashes == 7 ) { set %FF.a8 %FF.answers }
- if ( %FF.dashes > 7 ) {
- set %FF.numcom $pos(%FF.answers, -, 1) - 1
- set %FF.numcom2 $len(%FF.answers) - $pos(%FF.answers, -, 1)
- set %FF.a8 $left(%FF.answers, %FF.numcom)
- set %FF.answers $right(%FF.answers, %FF.numcom2)
- }
- inc %FF.dashes
- ;I was having issues with my other answer variables and timers so I just made a second set for the check alias.
- set %FF.answerz 0
- set %FF.a12 %FF.a1
- set %FF.a22 %FF.a2
- set %FF.a32 %FF.a3
- set %FF.a42 %FF.a4
- set %FF.a52 %FF.a5
- set %FF.a62 %FF.a6
- set %FF.a72 %FF.a7
- set %FF.a82 %FF.a8
- if (%FF.roundsplayed != $null) { msg %chanFF Round %FF.roundsplayed / %FF.rounds $+ $chr(124) $+ $chr(124) Question ( $+ $readn $+ / $+ $lines(FamFeud.txt) $+ ): %FF.question }
- else { msg %chanFF Question ( $+ $readn $+ / $+ $lines(FamFeud.txt) $+ ): %FF.question }
- msg %chanFF There are %FF.dashes answers!
- }
- alias game {
- if (%FF.roundsplayed == $null || %FF.roundsplayed <= %FF.rounds) {
- question
- .timer1 1 60 game2
- .timer3 1 40 remaining
- }
- else { FFstop }
- }
- alias game2 {
- if ( %FF.dashes == 1 ) { msg %chanFF That's it! The answer was: %FF.a12 }
- if ( %FF.dashes == 2 ) { msg %chanFF That's it! The answers were (in order): %FF.a12 and %FF.a22 }
- if ( %FF.dashes == 3 ) { msg %chanFF That's it! The answers were (in order): %FF.a12 $+ , %FF.a22 $+ , and %FF.a32 }
- if ( %FF.dashes == 4 ) { msg %chanFF That's it! The answers were (in order): %FF.a12 $+ , %FF.a22 $+ , %FF.a32 $+ , and %FF.a42 }
- if ( %FF.dashes == 5 ) { msg %chanFF That's it! The answers were (in order): %FF.a12 $+ , %FF.a22 $+ , %FF.a32 $+ , %FF.a42 $+ , and %FF.a52 }
- if ( %FF.dashes == 6 ) { msg %chanFF That's it! The answers were (in order): %FF.a12 $+ , %FF.a22 $+ , %FF.a32 $+ , %FF.a42 $+ , %FF.a52 $+ , and %FF.a62 }
- if ( %FF.dashes == 7 ) { msg %chanFF That's it! The answers were (in order): %FF.a12 $+ , %FF.a22 $+ , %FF.a32 $+ , %FF.a42 $+ , %FF.a52 $+ , %FF.a62 $+ , and %FF.a72 }
- if ( %FF.dashes == 8 ) { msg %chanFF That's it! The answers were (in order): %FF.a12 $+ , %FF.a22 $+ , %FF.a32 $+ , %FF.a42 $+ , %FF.a52 $+ , %FF.a62 $+ , %FF.a72 $+ , and %FF.a82 }
- buildscores
- if (%FF.roundsplayed != $null) { inc %FF.roundsplayed }
- unset %FF.a*
- if (%FF.roundsplayed > %FF.rounds) { FFstop }
- if (%FF.on == 2) { msg %chanFF %FF.scoreoutput }
- if (%FF.on == 2) { .timer2 1 10 game }
- ;7 second delay between questions.
- }
- alias remaining {
- set %FF.remain The remaining answers are:
- if ( %FF.a1 != $null ) { set %FF.remain %FF.remain #1 }
- if ( %FF.a2 != $null ) { set %FF.remain %FF.remain #2 }
- if ( %FF.a3 != $null ) { set %FF.remain %FF.remain #3 }
- if ( %FF.a4 != $null ) { set %FF.remain %FF.remain #4 }
- if ( %FF.a5 != $null ) { set %FF.remain %FF.remain #5 }
- if ( %FF.a6 != $null ) { set %FF.remain %FF.remain #6 }
- if ( %FF.a7 != $null ) { set %FF.remain %FF.remain #7 }
- if ( %FF.a8 != $null ) { set %FF.remain %FF.remain #8 }
- msg %chanFF %FF.remain
- }
- on *:TEXT:!ff*:%chanFF:{
- if ($nick isop $chan) {
- if ($2 != $null) { FFstart $nick $chan $2 }
- else { FFstart $nick $chan 1 }
- }
- else {
- msg $chan Sorry $nick $+ , you need to be an op to start Family Feud.
- }
- }
- alias FFstart {
- if ( %FF.on != 2 ) {
- msg %chanFF A game has been started by $1
- set %FF.answerz 0
- set %FF.on 2
- set %FF.roundsplayed 1
- if ($3 == unlimited) { unset %FF.roundsplayed }
- else { set %FF.rounds $3 }
- game
- }
- else { .msg $1 The game's already going, maybe you should try answering some questions now. }
- }
- on *:TEXT:!ffstop:%chanFF:{
- if ($nick isop $chan) {
- FFstop $nick $chan
- }
- else {
- msg $chan Sorry $nick $+ , you need to be an op to start Family Feud.
- }
- }
- alias FFstop {
- if ( %FF.on == 2 ) {
- if ($1 != $null) msg %chanFF Game stopped by $1 $+ .
- else msg %chanFF Game over!
- buildscores
- msg %chanFF %FF.scoreoutput
- .timer1 off
- .timer2 off
- .timer3 off
- unset %FF.*
- }
- else { .msg $1 The game is not on. }
- }
- on *:TEXT:!ffscore:%chanFF:{
- if ( %FF.on == 2 && %chanFF == $chan ) {
- if ( %FF.score. [ $+ [ $nick ] ] != $null ) {
- .msg $nick Your score is %FF.score. [ $+ [ $nick ] ] $+ .
- }
- else {
- .msg $nick Your score is 0.
- }
- }
- else {
- .msg $nick There's no game going on, dumbass.
- }
- }
- ;Text events for all 8 answers
- on *:TEXT:%FF.a1:%chanFF:{
- msg %chanFF Survey says, 50 points! $nick got the #1 answer, %FF.a1 $+ !
- inc %FF.score. [ $+ [ $nick ] ] 50
- unset %FF.a1
- set %FF.answerz %FF.answerz + 1
- check %FF.answerz
- }
- on *:TEXT:%FF.a2:%chanFF:{
- msg %chanFF Survey says, 35 points! $nick got the #2 answer, %FF.a2 $+ !
- inc %FF.score. [ $+ [ $nick ] ] 35
- unset %FF.a2
- set %FF.answerz %FF.answerz + 1
- check %FF.answerz
- }
- on *:TEXT:%FF.a3:%chanFF:{
- msg %chanFF Survey says, 28 points! $nick got the #3 answer, %FF.a3 $+ !
- inc %FF.score. [ $+ [ $nick ] ] 28
- unset %FF.a3
- set %FF.answerz %FF.answerz + 1
- check %FF.answerz
- }
- on *:TEXT:%FF.a4:%chanFF:{
- msg %chanFF Survey says, 20 points! $nick got the #4 answer, %FF.a4 $+ !
- inc %FF.score. [ $+ [ $nick ] ] 20
- unset %FF.a4
- set %FF.answerz %FF.answerz + 1
- check %FF.answerz
- }
- on *:TEXT:%FF.a5:%chanFF:{
- msg %chanFF Survey says, 15 points! $nick got the #5 answer, %FF.a5 $+ !
- inc %FF.score. [ $+ [ $nick ] ] 15
- /unset %FF.a5
- set %FF.answerz %FF.answerz + 1
- check %FF.answerz
- }
- on *:TEXT:%FF.a6:%chanFF:{
- msg %chanFF Survey says, 10 points! $nick got the #6 answer, %FF.a6 $+ !
- inc %FF.score. [ $+ [ $nick ] ] 10
- unset %FF.a6
- set %FF.answerz %FF.answerz + 1
- check %FF.answerz
- }
- on *:TEXT:%FF.a7:%chanFF:{
- msg %chanFF Survey says, 8 points! $nick got the #7 answer, %FF.a7 $+ !
- inc %FF.score. [ $+ [ $nick ] ] 8
- unset %FF.a7
- set %FF.answerz %FF.answerz + 1
- check %FF.answerz
- }
- on *:TEXT:%FF.a8:%chanFF:{
- msg %chanFF Survey says, 5 points! $nick got the #8 answer, %FF.a8 $+ !
- inc %FF.score. [ $+ [ $nick ] ] 5
- unset %FF.a8
- set %FF.answerz %FF.answerz + 1
- check %FF.answerz
- }
- alias buildscores {
- set %FF.count 0
- set %FF.added 0
- set %FF.totalnicks $nick(%chanFF,0,a)
- set %FF.highest 0
- set %FF.highestnick $me
- set %FF.x $var(%FF.score.*, 0)
- set %FF.scoreoutput Scores:
- while (%FF.added < %FF.x) {
- while (%FF.count <= %FF.totalnicks) {
- set %FF.testnick $nick(%chanFF,%FF.count,a)
- if (%FF.score. [ $+ [ %FF.testnick ] ] != $null) && (%FF.score. [ $+ [ %FF.testnick ] ] >= %FF.highest) && (%FF.testnick !isin %FF.scoreoutput) {
- set %FF.highest %FF.score. [ $+ [ %FF.testnick ] ]
- set %FF.highestnick %FF.testnick
- }
- inc %FF.count
- }
- if (%FF.highest != 0) { set %FF.scoreoutput %FF.scoreoutput $+ %FF.highestnick $+ : %FF.highest $+ $chr(124) }
- set %FF.highest 0
- set %FF.highesttnick $me
- inc %FF.added
- set %FF.count 0
- }
- set %FF.chop $calc($len(%FF.scoreoutput) - 1)
- set %FF.scoreoutput $left(%FF.scoreoutput,%FF.chop)
- if (%FF.scoreoutput == Scores:) set %FF.scoreoutput Nobody has any points!
- }
- ;Checks to see if all answers have been said before time limit is up
- alias check {
- if ( $1 == %FF.dashes ) {
- .timer1 off
- .timer3 off
- game2
- }
- }
- ;Accounts for nickname changes mid-game.
- on *:NICK:{
- if ( %FF.score. [ $+ [ $nick ] ] != $null ) {
- set %FF.score. [ $+ [ $newnick ] ] %FF.score. [ $+ [ $nick ] ]
- unset %FF.score. [ $+ [ $nick ] ]
- }
- }
- ;msgs the scores of players in the channel in order to the person that said !scores
- on *:TEXT:!ffscores:%chanFF:{
- buildscores
- .msg $nick %FF.scoreoutput
- }
- ;If you have another feature you would like to see, let me know and I'll add it if possible!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement