I started making blackjack but couldn't be bothered to finish it.
Feel free to try and make it work lol
on *:text:!unset*:#: {
if ($address($nick, 2) == %owner) {
/remove bj.ini
unset %bet %1player %bjtop %splitp %hand
msg $chan Unset!
}
}
on *:text:!bjchan*:#: {
if ($address($nick, 2) == %owner) {
set %bjchan $2
}
}
on *:text:!play*:%bjchan: {
if (%bj != on) {
msg $chan Blackjack is now on!
set %bj on
}
}
on *:text:!join*:%bjchan: {
if (%bj != on) { msg $chan The game isn't on | halt }
if (%1player == on || %bjgame == on) { msg $chan There is already a game in progress | halt }
if (!%bjtop) { set %bjtop 0 }
if (%bjtop < 6) {
var %bjcount = 1
while (%bjcount <= %bjtop) {
if ($readini(bj.ini, players, player $+ %bjcount) == $nick) {
var %playing = on
}
%bjcount = $calc(%bjcount + 1)
}
if (%playing != on) {
set %bjtop $calc(%bjtop + 1)
writeini bj.ini players player $+ %bjtop $nick
writeini bj.ini money player $+ %bjtop 100000
msg $chan $nick has joined the game
}
else { msg $chan You are already in the game }
}
else { msg $chan 6 people have already joined }
}
on *:text:!bet*:%bjchan: {
var %bjcount = 1
while (%bjcount <= %bjtop) {
if ($readini(bj.ini, players, player $+ %bjcount) == $nick) {
var %playing = on
}
%bjcount = $calc(%bjcount + 1)
}
if (%playing != on) { msg $chan $nick your not playing | halt }
if (%bet == on) { msg $chan $nick you have already bet | halt }
if (%bj != on) { msg $chan The game isn't on | halt }
if (%bjtop == 1) { /1player | set %1player on | set %bet on }
else { /bjgame | set %bjgame on | set %bet on }
}
alias 1player {
var %d1 = $rand(1,13)
var %d2 = $rand(1,13)
if (%d1 == 1) { writeini bj.ini dealer card1 A }
if (%d1 == 11) { writeini bj.ini dealer card1 J }
if (%d1 == 12) { writeini bj.ini dealer card1 Q }
if (%d1 == 13) { writeini bj.ini dealer card1 K }
if (%d1 >= 2 && %d1 <= 10) { writeini bj.ini dealer card1 %d1 }
if (%d2 == 1) { writeini bj.ini dealer card2 A }
if (%d2 == 11) { writeini bj.ini dealer card2 J }
if (%d2 == 12) { writeini bj.ini dealer card2 Q }
if (%d2 == 13) { writeini bj.ini dealer card2 K }
if (%d2 >= 2 && %d2 <= 10) { writeini bj.ini dealer card2 %d2 }
var %d1 = $readini(bj.ini, dealer, card1)
var %d2 = $readini(bj.ini, dealer, card2)
if (%d1 == A && %d2 != A ) && (%d2 == K || %d2 == Q || %d2 == J || %d2 == 10) {
msg $chan Dealer got Blackjack :(
unset %bet
unset %1player
/remini bj.ini player1
/remini bj.ini dealer
}
else if (%d1 != A && %d2 == A ) && (%d1 == K || %d1 == Q || %d1 == J || %d1 == 10) {
msg $chan Dealer got Blackjack :(
unset %bet
unset %1player
/remini bj.ini player1
/remini bj.ini dealer
}
else { /cplayer1 }
}
alias cplayer1 {
var %c1 = $rand(1,13)
var %c2 = $rand(1,13)
if (%c1 == %c2) { set %splitting on }
set %double on
writeini bj.ini player1 cards 2
if (%c1 == 1) { writeini bj.ini player1 card1 A }
if (%c1 == 11) { writeini bj.ini player1 card1 J }
if (%c1 == 12) { writeini bj.ini player1 card1 Q }
if (%c1 == 13) { writeini bj.ini player1 card1 K }
if (%c1 >= 2 && %c1 <= 10) { writeini bj.ini player1 card1 %c1 }
if (%c2 == 1) { writeini bj.ini player1 card2 A }
if (%c2 == 11) { writeini bj.ini player1 card2 J }
if (%c2 == 12) { writeini bj.ini player1 card2 Q }
if (%c2 == 13) { writeini bj.ini player1 card2 K }
if (%c2 >= 2 && %c2 <= 10) { writeini bj.ini player1 card2 %c2 }
var %c1 = $readini(bj.ini, player1, card1)
var %c2 = $readini(bj.ini, player1, card2)
if (%c1 == A && %c2 == A ) { msg $chan $nick has: A+A = 2/12 - I sugest splitting | writeini bj.ini player1 total 12 }
else if (%c1 == A && %c2 != A ) && (%c2 == K || %c2 == Q || %c2 == J || %c2 == 10) {
msg $chan Blackjack!
unset %bet
unset %1player
/remini bj.ini player1
/remini bj.ini dealer
}
else if (%c1 != A && %c2 == A ) && (%c1 == K || %c1 == Q || %c1 == J || %c1 == 10) {
msg $chan Blackjack!
unset %bet
unset %1player
/remini bj.ini player1
/remini bj.ini dealer
}
else if (%c1 != A && %c2 == A ) { msg $chan $nick has: %c1 $+ +A = $calc(1 + %c1) / $calc(11 + %c1) | writeini bj.ini player1 total $calc(11 + %c1) }
else if (%c1 == A && %c2 != A ) { msg $chan $nick has: %c2 $+ +A = $calc(1 + %c2) / $calc(11 + %c2) | writeini bj.ini player1 total $calc(11 + %c2) }
else if (%c1 != A && %c1 != Q && %c1 != K && %c1 != J) && (%c2 == K || %c2 == Q || %c2 == J) { msg $chan $nick has: %c1 $+ + $+ %c2 = $calc(%c1 + 10) | writeini bj.ini player1 total $calc(%c1 + 10) }
else if (%c2 != A && %c2 != Q && %c2 != K && %c2 != J) && (%c1 == K || %c1 == Q || %c1 == J) { msg $chan $nick has: %c1 $+ + $+ %c2 = $calc(%c2 + 10) | writeini bj.ini player1 total $calc(%c2 + 10) }
else if (%c2 == Q || %c2 == K || %c2 == J) && (%c1 == K || %c1 == Q || %c1 == J) { msg $chan $nick has: %c1 $+ + $+ %c2 = 20 | writeini bj.ini player1 total 20 }
else { msg $chan $nick has: %c1 $+ + $+ %c2 = $calc(%c2 + %c1) | writeini bj.ini player1 total $calc(%c2 + %c1) }
if (%bet == on) {
var %d1 = $readini(bj.ini, dealer, card1)
msg $chan Dealer has: %d1 $+ +?
}
if (%splitting == on) { msg $chan $nick you can split }
}
on *:text:!hit*:%bjchan: {
var %bjcount = 1
while (%bjcount <= %bjtop) {
if ($readini(bj.ini, players, player $+ %bjcount) == $nick) {
var %playing = on
}
%bjcount = $calc(%bjcount + 1)
}
if (%playing != on) { msg $chan $nick your not playing | halt }
if (%bet != on) { msg $chan $nick you havn't made your bet yet | halt }
if (%bj != on) { msg $chan The game isn't on | halt }
if (%splitp == on) {
if (%hand == 1) { unset %double | /hand1 }
else { unset %double | /hand2 }
}
else if (%1player == on) { /phit }
}
alias phit {
unset %splitting
unset %double
var %cunter = 1
while (%cunter <= $readini(bj.ini, player1, cards)) {
var %ptot = $readini(bj.ini, player1, card $+ %cunter)
if (%ptot == A) { var %a = $calc(%a + 1) }
if (%ptot == K || %ptot == Q || %ptot == J) { %ptot = 10 }
var %ctotal = $calc(%ctotal + %ptot)
%cunter = $calc(%cunter + 1)
}
if (%a) {
if (%a = 1 && %ctotal <= 10) { %ctotal = $calc(%total + 11) }
else if (%a > 1 && %a < 3 && %ctotal == 0) { %ctotal = 12 }
else if (%a > 1 && %a < 3 && %ctotal <= 9) { %ctotal = $calc(%total + 12) }
else if (%a > 2) && ($calc(11 + (%a - 1) * 1)) + %ctotal) <= 21) { %ctotal = $calc(11 + (%a - 1) * 1)) + %ctotal) }
else { %ctotal = $calc((%a * 1) + %ctotal) }
}
var %ncard = $rand(1,13)
if (%ncard == 1) { %ptot = 11 }
if (%ncard == 13 || %ncard == 12 || %ncard == 11) { %ptot = 10 }
if (%ncard == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
if (%ncard >= 2 && %ncard <= 10) { %ptot = %ncard }
%ctotal = $calc(%ptot + %ctotal)
if (%ctotal <= 21) {
writeini bj.ini player1 cards $calc($readini(bj.ini, player1, cards) + 1)
if (%ncard == 1) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) A }
if (%ncard == 11) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) J }
if (%ncard == 12) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) Q }
if (%ncard == 13) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) K }
if (%ncard >= 2 && %ncard <= 10) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) %ncard }
/write -c temp.txt $readini(bj.ini, player1, card1)
%cunter = 2
while (%cunter <= $readini(bj.ini, player1, cards)) {
/write -al1 temp.txt + $+ $readini(bj.ini, player1, card $+ %cunter)
%cunter = $calc(%cunter + 1)
}
var %cards = $read(temp.txt, 1)
/remove temp.txt
msg $chan $nick has: %cards = %ctotal
msg $chan Dealer has: $readini(bj.ini, dealer, card1) + ?
writeini bj.ini player1 total %ctotal
}
else { msg $chan Sorry you went bust with %ctotal
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
}
on *:text:!stand*:%bjchan: {
var %bjcount = 1
while (%bjcount <= %bjtop) {
if ($readini(bj.ini, players, player $+ %bjcount) == $nick) {
var %playing = on
}
%bjcount = $calc(%bjcount + 1)
}
if (%playing != on) { msg $chan $nick your not playing | halt }
if (%bet != on) { msg $chan $nick you havn't made your bet yet | halt }
if (%bj != on) { msg $chan The game isn't on | halt }
if (%splitp == on) {
if (%hand == 1) { set %hand 2 | msg $chan Continue to hand 2, type !hit or !double }
else { /stand }
}
else if (%1player == on) { /standp }
}
alias standp {
unset %splitting
unset %double
var %pcards = $readini(bj.ini, player1, total))
var %cunter = 1
var %ncards = 2
while (%cunter <= %ncards) {
var %ptot = $readini(bj.ini, dealer, card $+ %cunter)
if (%ptot == A) { var %a = $calc(%a + 1) }
if (%ptot == K || %ptot == Q || %ptot == J) { %ptot = 10 }
var %ctotal = $calc(%ctotal + %ptot)
%cunter = $calc(%cunter + 1)
}
if (%a) {
if (%a = 1 && %ctotal <= 10) { %ctotal = $calc(%total + 11) }
else if (%a > 1 && %a < 3 && %ctotal == 0) { %ctotal = 12 }
else if (%a > 1 && %a < 3 && %ctotal <= 9) { %ctotal = $calc(%total + 12) }
else if (%a > 2) && ($calc(11 + (%a - 1) * 1)) + %ctotal) <= 21) { %ctotal = $calc(11 + (%a - 1) * 1)) + %ctotal) }
else { %ctotal = $calc((%a * 1) + %ctotal) }
}
if (%ctotal = 17) {
:equal
if (%pcards == 17) {
msg $chan It's a draw, $readini(bj.ini, players, player1) gets their money back.
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
else if (%pcards < 17) {
msg $chan Dealer stands at 17 and wins
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
else {
msg $chan Dealer stands at 17
msg $chan $readini(bj.ini, players, player1) wins with %pcards
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
}
else if (%ctotal < 17) {
while (%ctotal <= 17) {
var %new = $rand(1,13)
if (%new == 1) { %ptot = 11 }
if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
if (%new >= 2 && %new <= 10) { %ptot = %new }
%ctotal = $calc(%ctotal + %ptot)
}
if (%ctotal != 17) && (%ctotal < %pcards || %ctotal != %pcards) {
while (%ctotal <= %pcards) {
var %new = $rand(1,13)
if (%new == 1) { %ptot = 11 }
if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
if (%new >= 2 && %new <= 10) { %ptot = %new }
%ctotal = $calc(%ctotal + %ptot)
}
}
if (%ctotal > 21) {
msg $chan Dealer busts
msg $chan $readini(bj.ini, players, player1) wins with %pcards
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
else if (%ctotal == 17 && %ctotal > %pcards) {
msg $chan Dealer stands and wins with %ctotal
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
else if (%ctotal > %pcards && %ctotal <= 21) {
msg $chan Dealer wins with %ctotal
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
}
else if (%ctotal < %pcards) {
while (%ctotal <= 17) {
var %new = $rand(1,13)
if (%new == 1) { %ptot = 11 }
if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
if (%new >= 2 && %new <= 10) { %ptot = %new }
%ctotal = $calc(%ctotal + %ptot)
}
if (%ctotal != 17) && (%ctotal < %pcards || %ctotal != %pcards) {
while (%ctotal <= %pcards) {
var %new = $rand(1,13)
if (%new == 1) { %ptot = 11 }
if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
if (%new >= 2 && %new <= 10) { %ptot = %new }
%ctotal = $calc(%ctotal + %ptot)
}
}
if (%ctotal > 21) {
msg $chan Dealer busts
msg $chan $readini(bj.ini, players, player1) wins with %pcards
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
else if (%ctotal == 17 && %ctotal > %pcards) {
msg $chan Dealer stands and wins with %ctotal
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
else if (%ctotal == 17 && %ctotal < %pcards) {
msg $chan Dealer stands with 17
msg $chan $readini(bj.ini, players, player1) wins with %pcards
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
else if (%ctotal > %pcards && %ctotal <= 21) {
msg $chan Dealer wins with %ctotal
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
else {
msg $chan It's a draw, $readini(bj.ini, players, player1) gets their money back.
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
}
else {
msg $chan Dealer stands and wins with %ctotal
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
}
on *:text:!double*:%bjchan: {
var %bjcount = 1
while (%bjcount <= %bjtop) {
if ($readini(bj.ini, players, player $+ %bjcount) == $nick) {
var %playing = on
}
%bjcount = $calc(%bjcount + 1)
}
if (%playing != on) { msg $chan $nick your not playing | halt }
if (%bet != on) { msg $chan $nick you havn't made your bet yet | halt }
if (%bj != on) { msg $chan The game isn't on | halt }
if (%double != on) { msg $chan You can't double now | halt }
if (%splitp == on) {
if (%hand == 1) { /hand1 }
else { /hand2 }
}
else if (%1player == on) { /doublep }
}
alias doublep {
unset %splitting
var %cunter = 1
while (%cunter <= $readini(bj.ini, player1, cards)) {
var %ptot = $readini(bj.ini, player1, card $+ %cunter)
if (%ptot == A) { var %a = $calc(%a + 1) }
if (%ptot == K || %ptot == Q || %ptot == J) { %ptot = 10 }
var %ctotal = $calc(%ctotal + %ptot)
%cunter = $calc(%cunter + 1)
}
if (%a) {
if (%a = 1 && %ctotal <= 10) { %ctotal = $calc(%total + 11) }
else if (%a > 1 && %a < 3 && %ctotal == 0) { %ctotal = 12 }
else if (%a > 1 && %a < 3 && %ctotal <= 9) { %ctotal = $calc(%total + 12) }
else if (%a > 2) && ($calc(11 + (%a - 1) * 1)) + %ctotal) <= 21) { %ctotal = $calc(11 + (%a - 1) * 1)) + %ctotal) }
else { %ctotal = $calc((%a * 1) + %ctotal) }
}
var %ncard = $rand(1,13)
if (%ncard == 1) { %ptot = 11 }
if (%ncard == 13 || %ncard == 12 || %ncard == 11) { %ptot = 10 }
if (%ncard == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
if (%ncard >= 2 && %ncard <= 10) { %ptot = %ncard }
%ctotal = $calc(%ptot + %ctotal)
if (%ctotal <= 21) {
writeini bj.ini player1 cards $calc($readini(bj.ini, player1, cards) + 1)
if (%ncard == 1) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) A }
if (%ncard == 11) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) J }
if (%ncard == 12) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) Q }
if (%ncard == 13) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) K }
if (%ncard >= 2 && %ncard <= 10) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) %ncard }
/write -c temp.txt $readini(bj.ini, player1, card1)
%cunter = 2
while (%cunter <= $readini(bj.ini, player1, cards)) {
/write -al1 temp.txt + $+ $readini(bj.ini, player1, card $+ %cunter)
%cunter = $calc(%cunter + 1)
}
var %cards = $read(temp.txt, 1)
/remove temp.txt
msg $chan $nick has: %cards = %ctotal
writeini bj.ini player1 total %ctotal
/standp
}
else { msg $chan Sorry you went bust
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player
}
}
on *:text:!split*:%bjchan: {
var %bjcount = 1
while (%bjcount <= %bjtop) {
if ($readini(bj.ini, players, player $+ %bjcount) == $nick) {
var %playing = on
}
%bjcount = $calc(%bjcount + 1)
}
if (%playing != on) { msg $chan $nick your not playing | halt }
if (%bet != on) { msg $chan $nick you havn't made your bet yet | halt }
if (%bj != on) { msg $chan The game isn't on | halt }
if (%splitting != on) { msg $chan $nick you can't split | halt }
if (%1player == on) { /splitp }
}
alias splitp {
unset %splitting
set %splitp on
set %hand 1
writeini bj.ini player1 cards 4
var %c1 = $readini(bj.ini, player1, card1)
var %c2 = $readini(bj.ini, player1, card2)
var %c3 = $rand(1,13)
if (%c3 == 1) { writeini bj.ini player1 card3 A }
if (%c3 == 11) { writeini bj.ini player1 card3 J }
if (%c3 == 12) { writeini bj.ini player1 card3 Q }
if (%c3 == 13) { writeini bj.ini player1 card3 K }
if (%c3 >= 2 && %c3 <= 10) { writeini bj.ini player1 card3 %c3 }
var %c4 = $rand(1,13)
if (%c4 == 1) { writeini bj.ini player1 card4 A }
if (%c4 == 11) { writeini bj.ini player1 card4 J }
if (%c4 == 12) { writeini bj.ini player1 card4 Q }
if (%c4 == 13) { writeini bj.ini player1 card4 K }
if (%c4 >= 2 && %c4 <= 10) { writeini bj.ini player1 card4 %c4 }
var %c3 = $readini(bj.ini, player1, card3)
var %c4 = $readini(bj.ini, player1, card4)
if (%c1 == A && %c3 == A ) { msg $chan $nick has: A+A = 2/12 - I sugest splitting | writeini bj.ini player1 total1 12 }
else if (%c1 == A && %c3 != A ) && (%c3 == K || %c3 == Q || %c3 == J || %c3 == 10) {
msg $chan Blackjack!
writeini bj.ini player1 total1 21
set %hand 2
}
else if (%c1 != A && %c3 == A ) && (%c1 == K || %c1 == Q || %c1 == J || %c1 == 10) {
msg $chan Blackjack!
writeini bj.ini player1 total1 21
set %hand 2
}
else if (%c1 != A && %c3 == A ) { msg $chan $nick has: %c1 $+ +A = $calc(1 + %c1) / $calc(11 + %c1) | writeini bj.ini player1 total1 $calc(11 + %c1) }
else if (%c1 == A && %c3 != A ) { msg $chan $nick has: %c3 $+ +A = $calc(1 + %c3) / $calc(11 + %c3) | writeini bj.ini player1 total1 $calc(11 + %c3) }
else if (%c1 != A && %c1 != Q && %c1 != K && %c1 != J) && (%c3 == K || %c3 == Q || %c3 == J) { msg $chan $nick has: %c1 $+ + $+ %c3 = $calc(%c1 + 10) | writeini bj.ini player1 total1 $calc(%c1 + 10) }
else if (%c3 != A && %c3 != Q && %c3 != K && %c3 != J) && (%c1 == K || %c1 == Q || %c1 == J) { msg $chan $nick has: %c1 $+ + $+ %c3 = $calc(%c3 + 10) | writeini bj.ini player1 total1 $calc(%c3 + 10) }
else if (%c3 == Q || %c3 == K || %c3 == J) && (%c1 == K || %c1 == Q || %c1 == J) { msg $chan $nick has: %c1 $+ + $+ %c3 = 20 | writeini bj.ini player1 total1 20 }
else { msg $chan $nick has: %c1 $+ + $+ %c3 = $calc(%c3 + %c1) | writeini bj.ini player1 total1 $calc(%c3 + %c1) }
if (%c2 == A && %c4 == A ) { msg $chan $nick has: A+A = 2/12 - I sugest splitting | writeini bj.ini player1 total2 12 }
else if (%c2 == A && %c4 != A ) && (%c4 == K || %c4 == Q || %c4 == J || %c4 == 10) {
msg $chan Blackjack!
writeini bj.ini player1 total2 21
if (%hand == 2) { set %hand 3 }
}
else if (%c2 != A && %c4 == A ) && (%c2 == K || %c2 == Q || %c2 == J || %c2 == 10) {
msg $chan Blackjack!
writeini bj.ini player1 total2 21
if (%hand == 2) { set %hand 3 }
}
else if (%c2 != A && %c4 == A ) { msg $chan $nick has: %c2 $+ +A = $calc(1 + %c2) / $calc(11 + %c2) | writeini bj.ini player1 total2 $calc(11 + %c2) }
else if (%c2 == A && %c4 != A ) { msg $chan $nick has: %c4 $+ +A = $calc(1 + %c4) / $calc(11 + %c4) | writeini bj.ini player1 total2 $calc(11 + %c4) }
else if (%c2 != A && %c2 != Q && %c2 != K && %c2 != J) && (%c4 == K || %c4 == Q || %c4 == J) { msg $chan $nick has: %c2 $+ + $+ %c4 = $calc(%c2 + 10) | writeini bj.ini player1 total2 $calc(%c2 + 10) }
else if (%c4 != A && %c4 != Q && %c4 != K && %c4 != J) && (%c2 == K || %c2 == Q || %c2 == J) { msg $chan $nick has: %c2 $+ + $+ %c4 = $calc(%c4 + 10) | writeini bj.ini player1 total2 $calc(%c4 + 10) }
else if (%c4 == Q || %c4 == K || %c4 == J) && (%c2 == K || %c2 == Q || %c2 == J) { msg $chan $nick has: %c2 $+ + $+ %c4 = 20 | writeini bj.ini player1 total2 20 }
else { msg $chan $nick has: %c2 $+ + $+ %c4 = $calc(%c4 + %c2) | writeini bj.ini player1 total2 $calc(%c4 + %c2) }
if (%hand == 3) {
msg $chan you got Blackjack on both hands
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %hand %double %splitp
}
else {
var %d1 = $readini(bj.ini, dealer, card1)
msg $chan Dealer has: %d1 $+ +?
}
}
alias hand1 {
unset %splitting
var %cunter = 1
while (%cunter <= $readini(bj.ini, player1, cards)) {
var %ptot = $readini(bj.ini, player1, card $+ %cunter)
if (%ptot == A) { var %a = $calc(%a + 1) }
if (%ptot == K || %ptot == Q || %ptot == J) { %ptot = 10 }
var %ctotal = $calc(%ctotal + %ptot)
%cunter = $calc(%cunter + 1)
if (%cunter == 2 || %cunter == 4) { %cunter = $calc(%cunter + 1) }
}
if (%a) {
if (%a = 1 && %ctotal <= 10) { %ctotal = $calc(%total + 11) }
else if (%a > 1 && %a < 3 && %ctotal == 0) { %ctotal = 12 }
else if (%a > 1 && %a < 3 && %ctotal <= 9) { %ctotal = $calc(%total + 12) }
else if (%a > 2) && ($calc(11 + (%a - 1) * 1)) + %ctotal) <= 21) { %ctotal = $calc(11 + (%a - 1) * 1)) + %ctotal) }
else { %ctotal = $calc((%a * 1) + %ctotal) }
}
var %ncard = $rand(1,13)
if (%ncard == 1) { %ptot = 11 }
if (%ncard == 13 || %ncard == 12 || %ncard == 11) { %ptot = 10 }
if (%ncard == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
if (%ncard >= 2 && %ncard <= 10) { %ptot = %ncard }
%ctotal = $calc(%ptot + %ctotal)
writeini bj.ini player1 cards $calc($readini(bj.ini, player1, cards) + 1)
writeini bj.ini player1 hand1cards $readini(bj.ini, player1, cards)
if (%ncard == 1) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) A }
if (%ncard == 11) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) J }
if (%ncard == 12) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) Q }
if (%ncard == 13) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) K }
if (%ncard >= 2 && %ncard <= 10) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) %ncard }
if (%ctotal <= 21) {
/write -c temp.txt $readini(bj.ini, player1, card1)
%cunter = 3
while (%cunter <= $readini(bj.ini, player1, cards)) {
/write -al1 temp.txt + $+ $readini(bj.ini, player1, card $+ %cunter)
%cunter = $calc(%cunter + 1)
if (%cunter == 4) { %cunter = $calc(%cunter + 1) }
}
var %cards = $read(temp.txt, 1)
/remove temp.txt
msg $chan Hand 1 - $nick has: %cards = %ctotal
writeini bj.ini player1 total1 %ctotal
if (%double == on) {
set %hand 2
msg $chan Continue to hand 2, type !hit or !double
}
}
else { msg $chan Sorry you went bust with hand 1: %ctotal
msg $chan Continue to hand 2, type !hit or !double
writeini bj.ini player1 total1 %ctotal
set %hand 2
set %double on
}
}
alias hand2 {
var %cunter = 2
while (%cunter <= $readini(bj.ini, player1, cards)) {
var %ptot = $readini(bj.ini, player1, card $+ %cunter)
if (%ptot == A) { var %a = $calc(%a + 1) }
if (%ptot == K || %ptot == Q || %ptot == J) { %ptot = 10 }
var %ctotal = $calc(%ctotal + %ptot)
%cunter = $calc(%cunter + 1)
if (%cunter == 3) { %cunter = $calc(%cunter + 1) }
if (%cunter > 4 && %cunter == $readini(bj.ini, player1, hand1cards)) { %cunter = $calc($readini(bj.ini, player1, hand1cards) + 1) }
}
if (%a) {
if (%a = 1 && %ctotal <= 10) { %ctotal = $calc(%total + 11) }
else if (%a > 1 && %a < 3 && %ctotal == 0) { %ctotal = 12 }
else if (%a > 1 && %a < 3 && %ctotal <= 9) { %ctotal = $calc(%total + 12) }
else if (%a > 2) && ($calc(11 + (%a - 1) * 1)) + %ctotal) <= 21) { %ctotal = $calc(11 + (%a - 1) * 1)) + %ctotal) }
else { %ctotal = $calc((%a * 1) + %ctotal) }
}
var %ncard = $rand(1,13)
if (%ncard == 1) { %ptot = 11 }
if (%ncard == 13 || %ncard == 12 || %ncard == 11) { %ptot = 10 }
if (%ncard == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
if (%ncard >= 2 && %ncard <= 10) { %ptot = %ncard }
%ctotal = $calc(%ptot + %ctotal)
writeini bj.ini player1 cards $calc($readini(bj.ini, player1, cards) + 1)
if (%ncard == 1) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) A }
if (%ncard == 11) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) J }
if (%ncard == 12) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) Q }
if (%ncard == 13) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) K }
if (%ncard >= 2 && %ncard <= 10) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) %ncard }
if (%ctotal <= 21) {
/write -c temp.txt $readini(bj.ini, player1, card2)
%cunter = 4
while (%cunter <= $readini(bj.ini, player1, cards)) {
/write -al1 temp.txt + $+ $readini(bj.ini, player1, card $+ %cunter)
%cunter = $calc(%cunter + 1)
if (%cunter > 4 && %cunter == $readini(bj.ini, player1, hand1cards)) { %cunter = $calc($readini(bj.ini, player1, hand1cards) + 1) }
}
var %cards = $read(temp.txt, 1)
/remove temp.txt
msg $chan Hand 2 - $nick has: %cards = %ctotal
writeini bj.ini player1 total2 %ctotal
if (%double == on) {
/stand
}
}
else { msg $chan Sorry you went bust with hand 2: %ctotal
writeini bj.ini player1 total2 %ctotal
/stand
}
}
alias stand {
unset %splitting
unset %double
var %hand1 = $readini(bj.ini, player1, total1)
var %hand2 = $readini(bj.ini, player1, total2)
if (%hand1 > 21 && %hand2 > 21) {
msg $chan $readini(bj.ini, players, player1) bust with both hands so dealer wins!
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %hand %splitp
}
else {
if (%hand1 >= %hand2 && %hand1 <= 21) { var %pcards = %hand1 }
else { var %pcards = %hand2 }
var %cunter = 1
var %ncards = 2
while (%cunter <= %ncards) {
var %ptot = $readini(bj.ini, dealer, card $+ %cunter)
if (%ptot == A) { var %a = $calc(%a + 1) }
if (%ptot == K || %ptot == Q || %ptot == J) { %ptot = 10 }
var %ctotal = $calc(%ctotal + %ptot)
%cunter = $calc(%cunter + 1)
}
if (%a) {
if (%a = 1 && %ctotal <= 10) { %ctotal = $calc(%total + 11) }
else if (%a > 1 && %a < 3 && %ctotal == 0) { %ctotal = 12 }
else if (%a > 1 && %a < 3 && %ctotal <= 9) { %ctotal = $calc(%total + 12) }
else if (%a > 2) && ($calc(11 + (%a - 1) * 1)) + %ctotal) <= 21) { %ctotal = $calc(11 + (%a - 1) * 1)) + %ctotal) }
else { %ctotal = $calc((%a * 1) + %ctotal) }
}
if (%ctotal = 17) {
if (%pcards == 17) {
if (%hand1 == %hand2) {
msg $chan It's a draw on both hands, $readini(bj.ini, players, player1) gets their money back.
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
else {
msg $chan $readini(bj.ini, players, player1) it's a draw on 1 hand but a loss on the other, hand1: %hand1 , hand2: %hand2
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
}
else if (%pcards < 17) {
msg $chan Dealer stands at 17 and wins on both hands
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
else if (%ctotal < %ptotal) {
if (%hand1 > %ctotal && %hand1 <= 21 && %hand2 > %ctotal && %hand2 <= 21) {
msg $chan Dealer stands at 17
msg $chan $readini(bj.ini, players, player1) wins on both hand1: %hand1 hand2: %hand2
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
else {
msg $chan Dealer stands at 17
msg $chan $readini(bj.ini, players, player1) wins with one hand but not the other hand1: %hand1 hand2: %hand2
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
}
}
else if (%ctotal < 17) && (%hand1 < 22 || %hand2 < 22) {
while (%ctotal <= 17) {
var %new = $rand(1,13)
if (%new == 1) { %ptot = 11 }
if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
if (%new >= 2 && %new <= 10) { %ptot = %new }
%ctotal = $calc(%ctotal + %ptot)
}
if (%ctotal != 17) && (%ctotal < %pcards || %ctotal != %pcards) {
while (%ctotal <= %pcards) {
var %new = $rand(1,13)
if (%new == 1) { %ptot = 11 }
if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
if (%new >= 2 && %new <= 10) { %ptot = %new }
%ctotal = $calc(%ctotal + %ptot)
}
}
if (%ctotal > 21) {
if (%hand1 < 22 && %hand2 < 22) {
msg $chan Dealer busts
msg $chan $readini(bj.ini, players, player1) wins with both hands - hand1: %hand1 hand2: %hand2
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
else {
msg $chan Dealer busts
msg $chan $readini(bj.ini, players, player1) wins with one hand and loses with the other - hand1: %hand1 hand2: %hand2
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
}
else if (%ctotal == 17 && %ctotal > %pcards) {
msg $chan Dealer stands and wins over both hands with %ctotal
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
else if (%ctotal == 17 && %ctotal < %pcards) {
if (%hand1 > %ctotal && %hand1 < 22 && %hand2 > %ctotal && %hand2 < 22) {
msg $chan Dealer stands at 17
msg $chan $readini(bj.ini, players, player1) wins hand1: %hand1 hand2: %hand2
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
else {
msg $chan Dealer stands at 17
msg $chan $readini(bj.ini, players, player1) wins with one hand but not the other hand1: %hand1 hand2: %hand2
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
}
else if (%ctotal > %pcards && %ctotal <= 21) {
msg $chan Dealer wins over both hands with %ctotal
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
}
else if (%ctotal < %pcards) {
while (%ctotal <= 17) {
var %new = $rand(1,13)
if (%new == 1) { %ptot = 11 }
if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
if (%new >= 2 && %new <= 10) { %ptot = %new }
%ctotal = $calc(%ctotal + %ptot)
}
if (%ctotal != 17) && (%ctotal < %pcards || %ctotal != %pcards) {
while (%ctotal <= %pcards) {
var %new = $rand(1,13)
if (%new == 1) { %ptot = 11 }
if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
if (%new >= 2 && %new <= 10) { %ptot = %new }
%ctotal = $calc(%ctotal + %ptot)
}
}
if (%ctotal > 21) {
if (%hand1 < 22 && %hand2 < 22) {
msg $chan Dealer busts
msg $chan $readini(bj.ini, players, player1) wins with both hands - hand1: %hand1 hand2: %hand2
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
else {
msg $chan Dealer busts
msg $chan $readini(bj.ini, players, player1) wins with one hand and loses with the other - hand1: %hand1 hand2: %hand2
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
}
else if (%ctotal == 17 && %ctotal > %pcards) {
msg $chan Dealer stands and wins over both hands with %ctotal
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
else if (%ctotal == 17 && %ctotal < %pcards) {
if (%hand1 > %ctotal && %hand1 < 22 && %hand2 > %ctotal && %hand2 < 22) {
msg $chan Dealer stands at 17
msg $chan $readini(bj.ini, players, player1) wins with both hands - hand1: %hand1 hand2: %hand2
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
else {
msg $chan Dealer stands at 17
msg $chan $readini(bj.ini, players, player1) wins with one hand but not the other hand1: %hand1 hand2: %hand2
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
}
else if (%ctotal > %pcards && %ctotal <= 21) {
msg $chan Dealer wins over both hands with %ctotal
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
else {
if (%hand1 == %ctotal && %hand2 == %ctotal) {
msg $chan Dealer stands at %ctotal
msg $chan It's a draw, $readini(bj.ini, players, player1) gets their money back. on both hands!
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
else {
msg $chan Dealer stands at %ctotal
msg $chan It's a draw on one hand but a loss on the other, hand1: %hand1 hand2: %hand2
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
}
}
else {
msg $chan Dealer stands and wins over both hands with %ctotal
/remini bj.ini player1
/remini bj.ini dealer
unset %bet %1player %splitp
}
}
unset %hand
}
Your snippet will be deleted if you break any of the following rules:
* Snippet needs to be tested and functional.
* Introduction must describe what the snippet does and how it is used.
* At least 25% of the code must be written by you.
* If you used somebody else's snippet you must include a URL to the original.
* You may not post an updated snippet separately, you need to edit your first post.
o.. dats what you see before posting a snippet
I give it a 2 because it's incomplete, but I like it overall. the option to double up is one thing that few people can be bothered to script in... yourself included through giving up. LOL
but the double up option is something that really should be in all blackjack scripts, I'll look forward to seeing someone complete this one (not myself, I have my own project)
win for the attempt.
fail for the quit.