Jump to content
chain

Trivia

Recommended Posts

  • Administrators

Trivia game(for bots) I made a few months ago u will need trivia questions(search google) put in a .txt called trivia.txt

PS: i know theres some parts that could be made more simple but idc cuase it works for the most part but there is a common bug where it adds ppl 2 times and screws up the scoring.

plz post feedback on problems u might have or suggestions.

;;;Trivia by SlipknoT aka StonedStoner;;;
;;;Commands;;;
;!trivia - Start Trivia game
;!strivia - Stop current game
;!top5 - see the top 5 of weekor month
;example: !top5 week or !top5 month
;!reset - resets score specified
;example: !reset week or !reset month
:*****DO NOT FORGET TO PUT YOUR NICK WHERE MasterNick IS!*****;
on *:TEXT:*:#Trivia: {
  set %triv.text $strip($1-,c)
  if (%triv.text == !trivia) {
    trivia 0
  } 
  if (%trivia == on) {
    if ($1 == !top5) {
      top5 $2
    }
    if (%triv.text == !strivia) {
      set %trivia off
    }
    if (%triv.text == %trivia.a) {
      if (%answered == yes) {
        halt
      }
      set %answered yes
      .timer 1 5 trivia.next
      trivia.answered $nick
      unset %trivia.a
      set %trivia.qn $calc(%trivia.qn + 1)
    } 
  }
  if ($nick == MasterNick) {
    if ($1 == !reset) {
      reset $2
    }
  } 
} 
alias trivia.answered { 
  if ($1 == $null) { halt } 
  else {  
    set %trivia.week.add %trivia.week. [ $+ [ $1 ] ]
    set %trivia.month.add %trivia.month. [ $+ [ $1 ] ]
    set %trivia.week. [ $+ [ $1 ] ] $calc(%trivia.p + %trivia.week.add) 
    set %trivia.month. [ $+ [ $1 ] ] $calc(%trivia.p + %trivia.month.add)
    msg #Trivia $trivtalk(CORRECT!) $+ 4 $1 $trivtalk(got the answer:) $+ 4 %trivia.a $trivtalk(In:) $+ 4 $duration($calc($ctime - %trivia.el)) $+ 14!4 $1 $trivtalk(is awarded:) $+ 4 %trivia.p 14. $trivtalk(Total Points This Week:) $+ 4 %trivia.week. [ $+ [ $1 ] ] $trivtalk(Total Points This Month:) $+ 4 %trivia.month. [ $+ [ $1 ] ]
    if (%trivia.week. [ $+ [ $1 ] ] > %trivia.week.1) {
      if ($readini(trivia.ini, week, 1) == $1) {
        set %trivia.week.1 %trivia.week. [ $+ [ $1 ] ]
        goto month
      }
      if ($readini(trivia.ini, week, 1) !== $1) { 
        set %trivia.week.2 %trivia.week.1 
        set %trivia.week.1 %trivia.week. [ $+ [ $1 ] ]
        writeini -s trivia.ini week 2 $readini(trivia.ini, week, 1)
        writeini -s trivia.ini week 1 $1
        msg #Trivia $trivtalk(Congrats!) $+ 4 $1 $trivtalk(is now this weeks) $+ 4 #1 P14layer! 
        top5 week 
        goto month 
      }
    }
    if (%trivia.week. [ $+ [ $1 ] ] > %trivia.week.2) {
      if ($readini(trivia.ini, week, 2) == $1) {
        set %trivia.week.2 %trivia.week. [ $+ [ $1 ] ]
        goto month
      }
      if ($readini(trivia.ini, week, 1) !== $1) && ($readini(trivia.ini, week, 2) !== $1) { 
        set %trivia.week.3 %trivia.week.2 
        set %trivia.week.2 %trivia.week. [ $+ [ $1 ] ]
        writeini -s trivia.ini week 3 $readini(trivia.ini, week, 2)
        writeini -s trivia.ini week 2 $1
        msg #Trivia $trivtalk(Congrats!) $+ 4 $1 $trivtalk(is now this weeks) $+ 4 #2 P14layer! 
        top5 week 
        goto month
      }
    }
    if (%trivia.week. [ $+ [ $1 ] ] > %trivia.week.3) {
      if ($readini(trivia.ini, week, 3) == $1) {
        set %trivia.week.3 %trivia.week. [ $+ [ $1 ] ]
        goto month
      }
      if ($readini(trivia.ini, week, 1) !== $1) && ($readini(trivia.ini, week, 2) !== $1) && ($readini(trivia.ini, week, 3) !== $1) { 
        set %trivia.week.4 %trivia.week.3 
        set %trivia.week.3 %trivia.week. [ $+ [ $1 ] ]
        writeini -s trivia.ini week 4 $readini(trivia.ini, week, 3)
        writeini -s trivia.ini week 3 $1
        msg #Trivia $trivtalk(Congrats!) $+ 4 $1 $trivtalk(is now this weeks) $+ 4 #3 P14layer! 
        top5 week 
        goto month
      }
    }
    if (%trivia.week. [ $+ [ $1 ] ] > %trivia.week.4) {
      if ($readini(trivia.ini, week, 4) == $1) {
        set %trivia.week.4 %trivia.week. [ $+ [ $1 ] ]
        goto month
      }
      if ($readini(trivia.ini, week, 1) !== $1) && ($readini(trivia.ini, week, 2) !== $1) && ($readini(trivia.ini, week, 3) !== $1) && ($readini(trivia.ini, week, 4) !== $1) {  
        set %trivia.week.5 %trivia.week.4 
        set %trivia.week.4 %trivia.week. [ $+ [ $1 ] ]
        writeini -s trivia.ini week 5 $readini(trivia.ini, week, 4)
        writeini -s trivia.ini week 4 $1
        msg #Trivia $trivtalk(Congrats!) $+ 4 $1 $trivtalk(is now this weeks) $+ 4 #4 P14layer! 
        top5 week 
        goto month
      }
    }
    if (%trivia.week. [ $+ [ $1 ] ] > %trivia.week.5) {
      if ($readini(trivia.ini, week, 5) == $1) {
        set %trivia.week.5 %trivia.week. [ $+ [ $1 ] ]
        goto month
      }
      if ($readini(trivia.ini, week, 1) !== $1) && ($readini(trivia.ini, week, 2) !== $1) && ($readini(trivia.ini, week, 3) !== $1) && ($readini(trivia.ini, week, 4) !== $1) && ($readini(trivia.ini, week, 5) !== $1) {
        set %trivia.week.6 %trivia.week.5  
        set %trivia.week.5 %trivia.week. [ $+ [ $1 ] ]
        writeini -s trivia.ini week 5 $1
        msg #Trivia $trivtalk(Congrats!) $+ 4 $1 $trivtalk(is now this weeks) $+ 4 #5 P14layer! 
        top5 week 
        goto month
      }
    }
    if (%trivia.week. [ $+ [ $1 ] ] > %trivia.week.6) {
      if ($readini(trivia.ini, week, 6) !== $1) { 
        set %trivia.week.6 %trivia.week. [ $+ [ $1 ] ]
        goto month
      }
      if ($readini(trivia.ini, week, 1) !== $1) && ($readini(trivia.ini, week, 2) !== $1) && ($readini(trivia.ini, week, 3) !== $1) && ($readini(trivia.ini, week, 4) !== $1) && ($readini(trivia.ini, week, 5) !== $1) && ($readini(trivia.ini, week, 6) !== $1) { 
        set %trivia.week.6 %trivia.week. [ $+ [ $1 ] ]
        writeini -s trivia.ini week 6 $1 
        goto month 
      }
    }
    :month 
    if (%trivia.month. [ $+ [ $1 ] ] > %trivia.month.1) {
      if ($readini(trivia.ini, month, 1) == $1) {
        set %trivia.month.1 %trivia.month. [ $+ [ $1 ] ]
        halt
      }
      if ($readini(trivia.ini, month, 1) !== $1) { 
        set %trivia.month.2 %trivia.month.1 
        set %trivia.month.1 %trivia.month. [ $+ [ $1 ] ]
        writeini -s trivia.ini month 2 $readini(trivia.ini, month, 1)
        writeini -s trivia.ini month 1 $1
        msg #Trivia $trivtalk(Congrats!) $+ 4 $1 $trivtalk(is now this months) $+ 4 #1 P14layer! 
        top5 month 
        halt 
      }
    }
    if (%trivia.month. [ $+ [ $1 ] ] > %trivia.month.2) {
      if ($readini(trivia.ini, month, 2) == $1) {
        set %trivia.month.2 %trivia.month. [ $+ [ $1 ] ]
        halt
      }
      if ($readini(trivia.ini, month, 1) !== $1) && ($readini(trivia.ini, month, 2) !== $1) { 
        set %trivia.month.3 %trivia.month.2 
        set %trivia.month.2 %trivia.month. [ $+ [ $1 ] ]
        writeini -s trivia.ini month 3 $readini(trivia.ini, month, 2)
        writeini -s trivia.ini month 2 $1
        msg #Trivia $trivtalk(Congrats!) $+ 4 $1 $trivtalk(is now this months) $+ 4 #2 P14layer! 
        top5 month 
        halt 
      }
    }
    if (%trivia.month. [ $+ [ $1 ] ] > %trivia.month.3) {
      if ($readini(trivia.ini, month, 3) == $1) {
        set %trivia.month.3 %trivia.month. [ $+ [ $1 ] ]
        halt
      }
      if ($readini(trivia.ini, month, 1) !== $1) && ($readini(trivia.ini, month, 2) !== $1) && ($readini(trivia.ini, month, 3) !== $1) { 
        set %trivia.month.4 %trivia.month.3 
        set %trivia.month.3 %trivia.month. [ $+ [ $1 ] ]
        writeini -s trivia.ini month 4 $readini(trivia.ini, month, 3)
        writeini -s trivia.ini month 3 $1
        msg #Trivia $trivtalk(Congrats!) $+ 4 $1 $trivtalk(is now this months) $+ 4 #3 P14layer! 
        top5 month 
        halt 
      }
    }
    if (%trivia.month. [ $+ [ $1 ] ] > %trivia.month.4) {
      if ($readini(trivia.ini, month, 4) == $1) {
        set %trivia.month.4 %trivia.month. [ $+ [ $1 ] ]
        halt
      }
      if ($readini(trivia.ini, month, 1) !== $1) && ($readini(trivia.ini, month, 2) !== $1) && ($readini(trivia.ini, month, 3) !== $1) && ($readini(trivia.ini, month, 4) !== $1) {  
        set %trivia.month.5 %trivia.month.4 
        set %trivia.month.4 %trivia.month. [ $+ [ $1 ] ]
        writeini -s trivia.ini month 5 $readini(trivia.ini, month, 4)
        writeini -s trivia.ini month 4 $1
        msg #Trivia $trivtalk(Congrats!) $+ 4 $1 $trivtalk(is now this months) $+ 4 #4 P14layer! 
        top5 month 
        halt 
      }
    }
    if (%trivia.month. [ $+ [ $1 ] ] > %trivia.month.5) {
      if ($readini(trivia.ini, month, 5) == $1) {
        set %trivia.month.5 %trivia.month. [ $+ [ $1 ] ]
        halt
      }
      if ($readini(trivia.ini, month, 1) !== $1) && ($readini(trivia.ini, month, 2) !== $1) && ($readini(trivia.ini, month, 3) !== $1) && ($readini(trivia.ini, month, 4) !== $1) && ($readini(trivia.ini, month, 5) !== $1) {
        set %trivia.month.6 %trivia.month.5  
        set %trivia.month.5 %trivia.month. [ $+ [ $1 ] ]
        writeini -s trivia.ini month 5 $1
        msg #Trivia $trivtalk(Congrats!) $+ 4 $1 $trivtalk(is now this months) $+ 4 #5 P14layer! 
        top5 month 
        halt 
      }
    }
    if (%trivia.month. [ $+ [ $1 ] ] > %trivia.month.6) {
      if ($readini(trivia.ini, month, 6) !== $1) { 
        set %trivia.month.6 %trivia.month. [ $+ [ $1 ] ]
        halt
      }
      if ($readini(trivia.ini, month, 1) !== $1) && ($readini(trivia.ini, month, 2) !== $1) && ($readini(trivia.ini, month, 3) !== $1) && ($readini(trivia.ini, month, 4) !== $1) && ($readini(trivia.ini, month, 5) !== $1) && ($readini(trivia.ini, month, 6) !== $1) { 
        set %trivia.month.6 %trivia.month. [ $+ [ $1 ] ]
        writeini -s trivia.ini month 6 $1 
        halt 
      } 
    } 
  }
}
alias trivia { 
  if (%trivia == on) { HALT } 
  else { 
    if ($1 == 0) { 
      set %trivia.max un 
      set %trivia on 
      set %trivia.qn 1 
      msg #Trivia $trivtalk(Trivia is now on! Get ready!)    
      .timer 1 5 trivia.next 
    } 
  } 
} 
alias trivia.next { 
  if (%trivia = off) { 
    msg #Trivia $trivtalk(End of Round! Stopping Trivia.) 
    halt 
  } 
  else { 
    set %trivia.rand $rand(1,$lines(trivia.txt)) 
    set %trivia.n $read(trivia.txt,%trivia.rand) 
    set %trivia.q $gettok($read(trivia.txt,%trivia.rand),1,42) 
    set %trivia.a $gettok($read(trivia.txt,%trivia.rand),2,42) 
    set %trivia.h1 $trivhint(%trivia.a,2,*) 
    set %trivia.h2 $trivhint(%trivia.a,3,*)
    set %trivia.h3 $trivhint(%trivia.a,4,*) 
    set %trivia.p $rand(15,20)
    unset %trivia.n
    msg #Trivia 4[15 $+ %trivia.qn $+ 4]15 4[ $+ %trivia.rand 15/4 $lines(trivia.txt) $+ 4] [15 $+ %trivia.q $+ 4] 4[ $+ $trivtalk(Worth) $+ 4 %trivia.p 4P14oints4] 
    set %trivia.el $ctime
    unset %answered
    .timerhint1 1 10 hint1
    .timerhint2 1 20 hint2
    .timerhint3 1 30 hint3
    .timerq 1 40 trivia.unanswered
  } 
}
alias trivia.unanswered {
  if (%answered == yes) {
    halt
  }
  msg #trivia $trivtalk(Question unanswered Answer was:) $+ 4 %trivia.a
  unset %trivia.a
  set %trivia.qn $calc(%trivia.qn + 1)
  .timer 1 5 trivia.next
}
alias top5 {
  if ($1 == week) {
    msg #trivia $trivtalk(Top 5 players of the week are 1st:) $+ 4 $readini(trivia.ini, week, 1) %trivia.week. [ $+ [ $readini(trivia.ini, week, 1) ] ] $+ , $trivtalk(2nd:) $+ 4 $readini(trivia.ini, week, 2) %trivia.week. [ $+ [ $readini(trivia.ini, week, 2) ] ]  $+ , $trivtalk(3rd:) $+ 4 $readini(trivia.ini, week, 3) %trivia.week. [ $+ [ $readini(trivia.ini, week, 3) ] ]  $+ , $trivtalk(4th:) $+ 4 $readini(trivia.ini, week, 4) %trivia.week. [ $+ [ $readini(trivia.ini, week, 4) ] ]  $+ , $trivtalk(5th:) $+ 4 $readini(trivia.ini, week, 5) %trivia.week. [ $+ [ $readini(trivia.ini, week, 5) ] ] 
  }
  if ($1 == month) {
    msg #trivia $trivtalk(Top 5 players of the month are 1st:) $+ 4 $readini(trivia.ini, month, 1) %trivia.month. [ $+ [ $readini(trivia.ini, month, 1) ] ] $+ , $trivtalk(2nd:) $+ 4 $readini(trivia.ini, month, 2) %trivia.month. [ $+ [ $readini(trivia.ini, month, 2) ] ] $+ , $trivtalk(3rd:) $+ 4 $readini(trivia.ini, month, 3) %trivia.month. [ $+ [ $readini(trivia.ini, month, 3) ] ] $+ , $trivtalk(4th:) $+ 4 $readini(trivia.ini, month, 4) %trivia.month. [ $+ [ $readini(trivia.ini, month, 4) ] ] $+ , $trivtalk(5th:) $+ 4 $readini(trivia.ini, month, 5) %trivia.month. [ $+ [ $readini(trivia.ini, month, 5) ] ]
  }
}
;Made by FiberOptics
alias trivhint { 
  var %a, %b = $regsub($1,/(?<=\S{ $+ $2})\S/g,$replace($$3,\,\\,$,\$),%a) 
  return %a 
}
;
alias hint1 {
  if (%answered == yes) {
    halt
  }
  else {
    msg #Trivia 4[15 $+ %trivia.qn $+ 4] $trivtalk(Hint One:) $+ 4 %trivia.h1
  }
}
alias hint2 {
  if (%answered == yes) {
    halt
  }
  else {
    msg #Trivia 4[15 $+ %trivia.qn $+ 4] $trivtalk(Hint Two:) $+ 4 %trivia.h2
  }
}
alias hint3 {
  if (%answered == yes) {
    halt
  }
  else {
    msg #Trivia 4[15 $+ %trivia.qn $+ 4] $trivtalk(Hint Three:) $+ 4 %trivia.h3
  }
}
;did not make this talker;
alias trivtalk {
  var %c1 4
  var %c2 14
  tokenize 32 $1-
  var %i $0,%t,%b = $iif(%b,$chr(2)),%u = $iif(%u,$chr(31))
  while %i {
    var %w $ [ $+ [ %i ] ],%t = $+($chr(3),$base(%c1,10,10,2),$replace($left(%w,1),a, A,b, B,c, C,d, D,e, E,f, F,g, G,h, H,i, I,j, J,k, K,l, L,m, M,n, N,o, O,p, P,q, Q,r, R,s, S,t, T,u, U,v, V,w, W,x, X,y, Y,z, Z,[, 4[,], 4]),$chr(3),$base(%c2,10,10,2),%u,%b,$replace($mid(%w,2),:, 15:,!, 15!),$chr(15)) %t 
    dec %i
  }
  return %t
}
;not sure where i got it but if someone knows tell me and i will give credit;
alias reset {
  if ($1 == week) {
    .timerresetweek -o 0 604800 reset week
    unset %trivia.week.*
    set %trivia.week.1 0
    set %trivia.week.2 0
    set %trivia.week.3 0
    set %trivia.week.4 0
    set %trivia.week.5 0
    set %trivia.week.6 0
    writeini trivia.ini week 1 none
    writeini trivia.ini week 2 none
    writeini trivia.ini week 3 none
    writeini trivia.ini week 4 none
    writeini trivia.ini week 5 none
    writeini trivia.ini week 6 none
  }
  if ($1 == month) {
    unset %trivia.month.*
    set %trivia.month.1 0
    set %trivia.month.2 0
    set %trivia.month.3 0
    set %trivia.month.4 0
    set %trivia.month.5 0
    set %trivia.month.6 0
    writeini trivia.ini month 1 none
    writeini trivia.ini month 2 none
    writeini trivia.ini month 3 none
    writeini trivia.ini month 4 none
    writeini trivia.ini month 5 none
    writeini trivia.ini month 6 none
  }
}
on *:JOIN:#trivia: {
  if (%trivia.month. [ $+ [ $nick ] ] <= 1) {
    notice $nick $trivtalk(welcome to $chan $nick $+ . it's time for you to start gettin points so get to it!)
  }
  elseif (%trivia.month. [ $+ [ $nick ] ] > 0) {
    notice $nick $trivtalk(welcome back $nick $+ . you have) $+ 4 %trivia.week. [ $+ [ $nick ] ] $trivtalk(points this week. and) $+ 4 %trivia.month. [ $+ [ $nick ] ] $trivtalk(points this month.)
    if ($readini(trivia.ini, week, 1) == $nick) {
      mode # +o $nick
    }
    if ($readini(trivia.ini, week, 2) == $nick) {
      mode # +v $nick
    }
    if ($readini(trivia.ini, week, 3) == $nick) {
      mode # +v $nick
    }
    if ($readini(trivia.ini, week, 4) == $nick) {
      mode # +v $nick
    }
    if ($readini(trivia.ini, week, 5) == $nick) {
      mode # +v $nick
    }
  }
}
on *:disconnect: {
   set %trivia off
}
on *:exit: {
  set %trivia off
}

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...


×
×
  • Create New...