All pastes #410026 Raw Edit

uno bot

public text v1 · immutable
#410026 ·published 2007-03-26 01:45 UTC
rendered paste body
// PASTE IN VARIABLES VARIABLES
%uno.red 0[4,5 
%uno.blue 0[11,2 
%uno.green 0[9,3 
%uno.yellow 0[8,7 
%uno.wild 0[8,1W12I04L9D
%uno.wd4 0[8,1W12D044

// PASTE IN REMOTE 
on *:TEXT:*:#uno: {
  if ($nick == kUno) {
    if ($me isin $1-) {
      if (up isin $1-) { uno.cards current $3- }
      elseif (Choose a colour isin $1-) { uno.choosecolour }
    }
    if (skipped isin $1-) {
      unset %uno.drawn
    }
    if (The current game has been isin $1-) {
      unset %uno.currentcard
      unset %uno.cards
      %uno.dealcards = 1
    }
  }
}
on ^*:NOTICE:*:?: {
  if ($nick == kUno) {
    haltdef
    echo #uno $timestamp -kUno- $1-
    if (Next isin $1-) || (You're already playing isin $1-) || (It isnt your turn isin $1-) || (You may not isin $1-) || (Draw a card first! isin $1-) || (No active games! isin $1-) || (before you are removed isin $1-) || (Login or register. isin $1-) || (Your score will not be saved. isin $1-) { halt }
    if (You drew isin $1-) { uno.cards minedrawn $3- }
    else { uno.cards mine $1- }
  }
}
alias uno.cards {
  if ($$1 == mine) { %uno.cards = $replace($remove($2-, 0],  You must pass or play),%uno.blue,b,%uno.green,g,%uno.red,r,%uno.yellow,y,%uno.wild,$+(wi,$chr(32)),%uno.wd4,$+(wd,$chr(32)),DT,t) }
  elseif ($$1 == minedrawn) { %uno.cards = $+(%uno.cards,$chr(32),$replace($remove($2-, 0],  You must pass or play),%uno.blue,b,%uno.green,g,%uno.red,r,%uno.yellow,y,%uno.wild,$+(wi,$chr(32)),%uno.wd4,$+(wd,$chr(32)),DT,t)) }
  else { %uno.currentcard = $replace($remove($2-, 0],  You must pass or play),%uno.blue,b,%uno.green,g,%uno.red,r,%uno.yellow,y,%uno.wild,$+(wi,$chr(32)),%uno.wd4,$+(wd,$chr(32)),DT,t) }

  if ($$1 == mine) && (%uno.currentcard !== $null) { uno.findplaycard }
  elseif ($$1 == minedrawn) && (%uno.currentcard !== $null) && (%uno.drawn == 1) { uno.findplaycard }
}
alias uno.drawcard {
  %uno.drawn = 1
  msg #uno draw
}
alias uno.playcard {
  if ($1 == wd) { msg #uno play wd4 }
  elseif ($1 == wi) { msg #uno play wild }
  elseif ($right($1,1) == t) { msg #uno play $left($1,1) dt }
  else { msg #uno play $left($1,1) $right($1,1) }
}



//CHANGE THESE
alias uno.findplaycard {
  %uno.samenumber = $poscs(%uno.cards,$right(%uno.currentcard,1),0)
  if (%uno.samecolour == $null) { %uno.samenumber = 0 }   
  %uno.samecolour = $poscs(%uno.cards,$left(%uno.currentcard,1),0)
  if (%uno.samecolour == $null) { %uno.samecolour = 0 }  
  %uno.wilds = $count(%uno.cards,wi)
  %uno.wd4s = $count(%uno.cards,wd)
  %uno.blues = $count(%uno.cards,b)
  %uno.yellows = $count(%uno.cards,y)
  %uno.greens = $count(%uno.cards,g)
  %uno.reds = $count(%uno.cards,r)

  if (%uno.samenumber == 0) && (%uno.samecolour == 0) && (%uno.wilds == 0) && (%uno.wd4s == 0) {
    if (%uno.drawn == 1) { unset %uno.drawn | msg #uno pass }
    else { uno.drawcard }
  }
  elseif (%uno.samecolour == 0) && (%uno.samenumber !== 0) {
    uno.playcard $mid(%uno.cards,$calc($pos(%uno.cards,$right(%uno.currentcard,1),1) -1),3)
  }
  elseif (%uno.samenumber == 0) && (%uno.samecolour !== 0) {
    uno.playcard $mid(%uno.cards,$calc($pos(%uno.cards,$left(%uno.currentcard,1),1) -1),3)
  }
  elseif (%uno.samenumber == 0) && (%uno.samecolour == 0) {
    if (%uno.wd4s > 0) { uno.playcard wd }
    else { uno.playcard wi } 
  }
  elseif (%uno.samecolour > 0) {
    uno.playcard $mid(%uno.cards,$calc($pos(%uno.cards,$left(%uno.currentcard,1),1) -1),3)
  }
  elseif (%uno.samenumber > 0) {
    uno.playcard $mid(%uno.cards,$calc($pos(%uno.cards,$right(%uno.currentcard,1),1) -1),3)
  }
}
alias uno.choosecolour {
  if (%uno.blues >= %uno.yellows) && (%uno.blues >= %uno.reds) && (%uno.blues >= %uno.greens) { %uno.choosecolour = b }
  elseif (%uno.greens >= %uno.yellows) && (%uno.greens >= %uno.reds) && (%uno.greens >= %uno.blues) { %uno.choosecolour = g }
  elseif (%uno.reds >= %uno.yellows) && (%uno.reds >= %uno.greens) && (%uno.reds >= %uno.blues) { %uno.choosecolour = r }
  elseif (%uno.yellows >= %uno.greens) && (%uno.yellows >= %uno.reds) && (%uno.yellows >= %uno.blues) { %uno.choosecolour = y } 
  msg #uno colour %uno.choosecolour
}