Jump to content
chain

Trivia

Recommended Posts

  • Administrators
Posted

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
}

 

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...