Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- From the Mad Scientist slp13at420 of EmuDevs.com
- print("+-+-+-+-+-+-+")
- LOCAL npcid = 390001 -- creature_template id for vendor
- LOCAL currency = 44209 -- item_template id for currency
- LOCAL bet = 1 -- how much each hit costs.
- -- DO NOT EDIT BELOW this line unless you know what your doing. --
- LOCAL Suit = {};
- LOCAL Card = {};
- LOCAL Hand = {};
- LOCAL FUNCTION GetItemNameById(id)
- LOCAL err = "ERROR GetItemById() name value is nil(Item "..id.." May not exist in database)"
- LOCAL SEARCH = WorldDBQuery("SELECT `name` FROM `item_template` WHERE `entry` = '"..id.."';");
- IF(SEARCH)THEN
- LOCAL itemname = SEARCH:GetString(0)
- RETURN(itemname)
- ELSE
- error(err)
- END
- END
- LOCAL currency_name = GetItemNameById(currency)
- LOCAL FUNCTION ShuffleHand(player, unit, guid)
- Hand[guid] = {player = 0, dealer = 0, FIRST = 0, turns = 0, creature = unit};
- END
- LOCAL FUNCTION ShuffleCards(player, guid)
- math.randomseed(tonumber(os.TIME()*os.TIME()))
- Card[guid] = {
- [1] = {{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{10},{10},{10}},
- [2] = {{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{10},{10},{10}},
- [3] = {{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{10},{10},{10}},
- [4] = {{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{10},{10},{10}}
- }
- END
- LOCAL FUNCTION BlackJackInstructions(event, player, unit, guid)
- player:GossipClearMenu()
- player:GossipMenuAddItem(0,"First to reach 21", 0, 8)
- player:GossipMenuAddItem(0,"without going over wins.", 0, 8)
- player:GossipMenuAddItem(10,"back", 0, 7)
- player:GossipMenuAddItem(10,"good bye.", 0, 10)
- player:GossipSendMenu(1, Hand[guid].creature)
- END
- LOCAL FUNCTION BlackJackOnHello(event, player, unit)
- LOCAL guid = player:GetGUIDLow()
- ShuffleCards(player, guid)
- ShuffleHand(player, unit, guid)
- player:GossipClearMenu()
- player:GossipMenuAddItem(10,"costs "..bet.." "..currency_name.." per card.", 0, 7)
- player:GossipMenuAddItem(10,"Play 21.", 0, 11)
- player:GossipMenuAddItem(10,"Instructions.", 0, 8)
- player:GossipMenuAddItem(5, "never mind.", 0, 10)
- player:GossipSendMenu(1, Hand[guid].creature)
- END
- LOCAL FUNCTION BlackJackOnPlayerWin(event, player, unit, guid)
- player:GossipClearMenu()
- player:GossipMenuAddItem(10,"You:"..Hand[guid].player.." :: Dealer:"..Hand[guid].dealer.."", 0, 14)
- player:GossipMenuAddItem(10,"You win. Dealer went over 21.", 0, 14)
- player:GossipMenuAddItem(10,"again.", 0, 11)
- player:GossipMenuAddItem(10,"good bye.", 0, 10)
- player:GossipSendMenu(1, Hand[guid].creature)
- END
- LOCAL FUNCTION BlackJackOnPlayerTO(event, player, unit, guid)
- player:GossipClearMenu()
- player:GossipMenuAddItem(10,"You:"..Hand[guid].player.." :: Dealer:"..Hand[guid].dealer.."", 0, 14)
- player:GossipMenuAddItem(10,"21. You win.", 0, 13)
- player:GossipMenuAddItem(10,"again.", 0, 11)
- player:GossipMenuAddItem(10,"good bye.", 0, 10)
- player:GossipSendMenu(1, Hand[guid].creature)
- END
- LOCAL FUNCTION BlackJackOnDealerTO(event, player, unit, guid)
- player:GossipClearMenu()
- player:GossipMenuAddItem(10,"You:"..Hand[guid].player.." :: Dealer:"..Hand[guid].dealer.."", 0, 14)
- player:GossipMenuAddItem(10,"Dealer hit 21. You loose.", 0, 16)
- player:GossipMenuAddItem(10,"again.", 0, 11)
- player:GossipMenuAddItem(10,"good bye.", 0, 10)
- player:GossipSendMenu(1, Hand[guid].creature)
- END
- LOCAL FUNCTION BlackJackOnDealerWin(event, player, unit, guid)
- player:GossipClearMenu()
- player:GossipMenuAddItem(10,"You:"..Hand[guid].player.." :: Dealer:"..Hand[guid].dealer.."", 0, 15)
- player:GossipMenuAddItem(10,"Dealer wins. You went over 21.", 0, 15)
- player:GossipMenuAddItem(10,"again.", 0, 11)
- player:GossipMenuAddItem(10,"good bye.", 0, 10)
- player:GossipSendMenu(1, Hand[guid].creature)
- END
- LOCAL FUNCTION BlackJackOnDraw(event, player, unit, guid)
- player:GossipClearMenu()
- player:GossipMenuAddItem(10,"You:"..Hand[guid].player.." :: Dealer:"..Hand[guid].dealer.."", 0, 17)
- player:GossipMenuAddItem(10,"You Both hit 21.", 0, 17)
- player:GossipMenuAddItem(10,"again.", 0, 11)
- player:GossipMenuAddItem(10,"good bye.", 0, 10)
- player:GossipSendMenu(1, Hand[guid].creature)
- END
- LOCAL FUNCTION BlackJackOnNoWinner(event, player, unit, guid)
- player:GossipClearMenu()
- player:GossipMenuAddItem(10,"You:"..Hand[guid].player.." :: Dealer:"..Hand[guid].dealer.."", 0, 9)
- player:GossipMenuAddItem(10,"You Both went over 21.", 0, 19)
- player:GossipMenuAddItem(10,"again.", 0, 11)
- player:GossipMenuAddItem(10,"good bye.", 0, 10)
- player:GossipSendMenu(1, Hand[guid].creature)
- END
- LOCAL FUNCTION BlackJackOnPlay(event, player, unit, guid)
- player:GossipClearMenu()
- player:GossipMenuAddItem(10,"You:"..Hand[guid].player.." :: Dealer:"..Hand[guid].dealer.."", 0, 9)
- player:GossipMenuAddItem(10,"hit me.", 0, 12)
- player:GossipMenuAddItem(10,"good bye.", 0, 10)
- player:GossipSendMenu(1, Hand[guid].creature)
- END
- LOCAL FUNCTION DealCard(event, player, guid)
- LOCAL suit = math.random(1,4)
- LOCAL VALUE = math.random(1,14)
- IF(Card[guid][suit][VALUE][1] > 0)THEN
- LOCAL card = (Card[guid][suit][VALUE][1])
- RETURN(card)
- ELSE
- DealCard(event, timer, cycle, player)
- END
- Card[guid][suit][VALUE][1] = 0
- END
- -- ******************************* --
- LOCAL FUNCTION BlackJackOnSelect(event, player, unit, sender, intid, code)
- LOCAL guid = player:GetGUIDLow()
- IF(player:GetItemCount(currency)>=bet)THEN
- IF(intid<=7)THEN
- BlackJackOnHello(1, player, unit)
- END
- IF(intid==8)THEN -- goto/return instructions
- BlackJackInstructions(event, player, unit, guid)
- END
- IF(intid==9)THEN -- return game screen
- BlackJackOnPlay(event, player, unit, guid)
- END
- IF(intid==10)THEN
- player:GossipComplete()
- END
- -- ++++++++++++++++++++++++++++++++++++ --
- IF(intid==11)THEN -- start game first deal
- ShuffleCards(player, guid)
- ShuffleHand(player, unit, guid)
- BlackJackOnSelect(event, player, unit, sender, 12, code)
- END
- IF(intid==12)THEN -- hit me
- player:RemoveItem(currency, bet)
- LOCAL pcard = DealCard(event, player, guid)
- LOCAL dcard = DealCard(event, player, guid)
- LOCAL win = (bet * Hand[guid].turns)*2
- Hand[guid].player = (Hand[guid].player + pcard)
- Hand[guid].dealer = (Hand[guid].dealer + dcard)
- Hand[guid].turns =(Hand[guid].turns + 1)
- IF((Hand[guid].player < 21)AND(Hand[guid].dealer < 21))THEN
- BlackJackOnPlay(1, player, Hand[guid].creature, guid)
- END
- IF((Hand[guid].player==21)AND(Hand[guid].dealer==21))THEN
- BlackJackOnDraw(event, player, Hand[guid].creature, guid)
- END
- IF((Hand[guid].player==21)AND((Hand[guid].dealer < 21)OR(Hand[guid].dealer > 21)))THEN
- player:AddItem(currency, win)
- BlackJackOnPlayerTO(event, player, Hand[guid].creature, guid)
- END
- IF(((Hand[guid].player < 21)OR(Hand[guid].player > 21))AND(Hand[guid].dealer==21))THEN
- BlackJackOnDealerTO(event, player, Hand[guid].creature, guid)
- END
- IF((Hand[guid].player < 21)AND(Hand[guid].dealer > 21))THEN
- player:AddItem(currency, win)
- BlackJackOnPlayerWin(event, player, Hand[guid].creature, guid)
- END
- IF((Hand[guid].player > 21)AND(Hand[guid].dealer < 21))THEN
- BlackJackOnDealerWin(event, player, Hand[guid].creature, guid)
- END
- IF((Hand[guid].player > 21)AND(Hand[guid].dealer > 21))THEN
- BlackJackOnNoWinner(event, player, Hand[guid].creature, guid)
- END
- END
- IF(intid==13)THEN
- BlackJackOnPlayerTO(1, player, unit, guid)
- END
- IF(intid==14)THEN
- BlackJackOnPlayerWin(1, player, unit, guid)
- END
- IF(intid==15)THEN
- BlackJackOnDealerWin(1, player, unit, guid)
- END
- IF(intid==16)THEN
- BlackJackOnDealerTO(1, player, unit, guid)
- END
- IF(intid==17)THEN
- BlackJackOnDraw(event, player, unit, guid)
- END
- IF(intid==18)THEN
- BlackJackOnNewPlay(event, player, guid)
- END
- IF(intid==19)THEN
- BlackJackOnNoWinner(1, player, unit, guid)
- END
- ELSE
- player:SendBroadcastMessage("|cffFF0000move along now. you creeping me out .|r we only deal to players with "..currency_name.."'s.")
- player:GossipComplete()
- END
- END
- RegisterCreatureGossipEvent(npcid, 1, BlackJackOnHello)
- RegisterCreatureGossipEvent(npcid, 2, BlackJackOnSelect)
- print("+Grumbo'z 21+")
- print("+-+-+-+-+-+-+")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement