RealmCrafter Wiki
Advertisement

Created by UUICEO.

Using "RC_Core.rcm" 
; Aftermath!
; Date/Time: 1:02:28 AM on 10/17/2009
; By RSQ on UUI
Dim SlotReel$(5,12)
Dim Items$(3)
Dim Line$(3)
Dim SlotCurrent(5)

Function Main()

    SlotNum = 2
    Player = Actor()
    NPC = ContextActor()
    PlayerMoney% = Money(Player)
    BetAmount% = 5
    NumSpots = 3
    If PlayerMoney% < BetAmount% Then
        Output(Player, "Sorry " + Name(Player) + " but you don't have " + BetAmount + " coins to play.")
        Return
    EndIf
    If FileSize("Slot" + SlotNum + ".SEM") > 0 Then
        Output(Player, "Sorry but this machine is already in use!")
        Return
    Else
        F = WriteFile("Slot" + SlotNum + ".SEM")
            WriteInt(F, Player)
        CloseFile(F)
        DoEvents(500)
        F = ReadFile("Slot" + SlotNum + ".SEM")
            CheckPlayer = ReadInt(F)
        CloseFile(F)
        If CheckPlayer <> Player Then
            Output(Player, "Sorry but someone beat you to this machine!")
            Return
        EndIf
    EndIf
    If FileSize("Slot" + SlotNum + "Config.dat") < 6 Then
        SlotCurrent(1) = Rand(0, 11) + 1
        SlotCurrent(2) = Rand(0, 11) + 1
        SlotCurrent(3) = Rand(0, 11) + 1
        SlotCurrent(4) = Rand(0, 11) + 1
        SlotCurrent(5) = Rand(0, 11) + 1
        F = WriteFile("Slot" + SlotNum + "Config.Dat")
            WriteInt(F, SlotCurrent(1))
            WriteInt(F, SlotCurrent(2))
            WriteInt(F, SlotCurrent(3))
            WriteInt(F, SlotCurrent(4))
            WriteInt(F, SlotCurrent(5))
        CloseFile(F)
    Else
        F = ReadFile("Slot" + SlotNum + "Config.Dat")
            SlotCurrent(1) = ReadInt(F)
            SlotCurrent(2) = ReadInt(F)
            SlotCurrent(3) = ReadInt(F)
            SlotCurrent(4) = ReadInt(F)
            SlotCurrent(5) = ReadInt(F)
        CloseFile(F)
    EndIf
    BuildReels(NumSpots)
    Repeat
        If PlayerMoney% < BetAmount% Then
            Output(Player, "Sorry " + Name(Player) + " but you don't have enough money to play again.")
            DeleteFile("Slot" + SlotNum + ".SEM")
            Return
        EndIf
        DW = OpenDialog(Player, NPC, BetAmount% + " Coin Slots")
        ShowReels(Player, DW)
        Result = DialogInput(Player, DW, "Play|View Payouts|Exit", "|")

        If Result = 1 Then
            ChangeMoney(Player, -BetAmount%)
            PlayerMoney% = Money(Player)
            SpinTimeReel1 = Rand(1, 5) * 1000
            SpinTimeReel2 = Rand(1, 5) * 1000
            SpinTimeReel3 = Rand(1, 5) * 1000
            SpinTimeReel4 = Rand(1, 5) * 1000
            SpinTimeReel5 = Rand(1, 5) * 1000
            Start = Millisecs()
            While Millisecs() < Start + SpinTimeReel1
                SpinReelOne(Player, DW)
                CloseDialog(Player, DW)
                DW = OpenDialog(Player, NPC, BetAmount% + " Coin Slots")
                ShowReels(Player, DW)
                DoEvents(300)
            Wend
            While Millisecs() < Start + SpinTimeReel1 + SpinTimeReel2
                SpinReelTwo(Player, DW)
                CloseDialog(Player, DW)
                DW = OpenDialog(Player, NPC, BetAmount% + " Coin Slots")
                ShowReels(Player, DW)
                DoEvents(300)
            Wend
            While Millisecs() < Start + SpinTimeReel1 + SpinTimeReel2 + SpinTimeReel3
                SpinReelThree(Player, DW)
                CloseDialog(Player, DW)
                DW = OpenDialog(Player, NPC, BetAmount% + " Coin Slots")
                ShowReels(Player, DW)
                DoEvents(300)
            Wend
            While Millisecs() < Start + SpinTimeReel1 + SpinTimeReel2 + SpinTimeReel3 + SpinTimeReel4
                SpinReelFour(Player, DW)
                CloseDialog(Player, DW)
                DW = OpenDialog(Player, NPC, BetAmount% + " Coin Slots")
                ShowReels(Player, DW)
                DoEvents(300)
            Wend
            While Millisecs() < Start + SpinTimeReel1 + SpinTimeReel2 + SpinTimeReel3 + SpinTimeReel4 + SpinTimeReel5
                SpinReelFive(Player, DW)
                CloseDialog(Player, DW)
                DW = OpenDialog(Player, NPC, BetAmount% + " Coin Slots")
                ShowReels(Player, DW)
                DoEvents(300)
            Wend
            Win% = CheckWinner%(NumSpots)
            If Win% > 0 Then
                DialogOutput(Player, DW, "")
                DialogOutput(Player, DW, "You won " + (Win% * BetAmount%))
                ChangeMoney(Player, Win% * BetAmount%)
                DialogInput(Player, DW, "Continue.", "|")
            Else
                DialogOutput(Player, DW, "")
                DialogOutput(Player, DW, "You lost. ")
                DialogInput(Player, DW, "Continue.", "|")
            EndIf

        ElseIf Result = 2

                CloseDialog(Player, DW)
                DW = OpenDialog(Player, NPC, BetAmount% + " Coin Slots")
                DialogOutput(Player, DW, "Payouts are the following")
                DialogOutput(Player, DW, "=========================")
                DialogOutput(Player, DW, Chr(198) + " " + Chr(198) + " " + Chr(198) + " = 50 x Bet")
                DialogOutput(Player, DW, Chr(230) + " " + Chr(230) + " " + Chr(230) + " = 50 x Bet")
                DialogOutput(Player, DW, "=========================")
                DialogInput(Player, DW, "Continue.", "|")
                CloseDialog(Player, DW)
        Else

            CloseDialog(Player, DW)
            F = WriteFile("Slot" + SlotNum + "Config.Dat")
                WriteInt(F, SlotCurrent(1))
                WriteInt(F, SlotCurrent(2))
                WriteInt(F, SlotCurrent(3))
                WriteInt(F, SlotCurrent(4))
                WriteInt(F, SlotCurrent(5))
            CloseFile(F)
            DeleteFile("Slot" + SlotNum + ".SEM")
            Return
        EndIf
        CloseDialog(Player, DW)
        F = WriteFile("Slot" + SlotNum + "Config.Dat")
            WriteInt(F, SlotCurrent(1))
            WriteInt(F, SlotCurrent(2))
            WriteInt(F, SlotCurrent(3))
            WriteInt(F, SlotCurrent(4))
            WriteInt(F, SlotCurrent(5))
        CloseFile(F)
    Forever
   
End Function

Function SpinReelFive(Player, DW)

    SlotCurrent(5) = SlotCurrent(5) + 1
        If SlotCurrent(5) > 12 Then
            SlotCurrent(5) = 1
        EndIf

End Function

Function SpinReelFour(Player, DW)

    SlotCurrent(4) = SlotCurrent(4) + 1
    SlotCurrent(5) = SlotCurrent(5) + 1
    For i = 4 to 5
        If SlotCurrent(i) > 12 Then
            SlotCurrent(i) = 1
        EndIf
    Next

End Function

Function SpinReelThree(Player, DW)

    SlotCurrent(3) = SlotCurrent(3) + 1
    SlotCurrent(4) = SlotCurrent(4) + 1
    SlotCurrent(5) = SlotCurrent(5) + 1
        For i = 3 to 5
            If SlotCurrent(i) > 12 Then
                SlotCurrent(i) = 1
            EndIf
        Next
   
End Function
Function SpinReelTwo(Player, DW)

    SlotCurrent(2) = SlotCurrent(2) + 1
    SlotCurrent(3) = SlotCurrent(3) + 1
    SlotCurrent(4) = SlotCurrent(4) + 1
    SlotCurrent(5) = SlotCurrent(5) + 1
        For i = 2 to 5
            If SlotCurrent(i) > 12 Then
                SlotCurrent(i) = 1
            EndIf
        Next
   
End Function

Function SpinReelOne(Player, DW)

    SlotCurrent(1) = SlotCurrent(1) + 1
    SlotCurrent(2) = SlotCurrent(2) + 1
    SlotCurrent(3) = SlotCurrent(3) + 1
    SlotCurrent(4) = SlotCurrent(4) + 1
    SlotCurrent(5) = SlotCurrent(5) + 1
        For i = 1 to 5
            If SlotCurrent(i) > 12 Then
                SlotCurrent(i) = 1
            EndIf
        Next
   
End Function

Function BuildReels(NumSpots)

    Items$(1) = Chr(32) ; NADA
    Items$(2) = Chr(198)
    Items$(3) = Chr(230)
    fh = ReadFile("BarBell_Setup.dat")
        While Not EoF(fh)
            Counter = Counter + 1
            MyData$ = ReadLine(fh)
            For h = 1 to 5
                SlotReel$(h, Counter) = Items$(Int(Split(MyData$, h, ",")))
            Next
        Wend
    CloseFile(fh)
    Return
   
End Function

Function ShowReels(Player, DW)

    Line$(1) = " " : Line$(2) = ">" : Line$(3) = " "
    For i = 1 To 5
        If SlotCurrent(i) = 1 Then
            Line$(1) = Line$(1) + " " + SlotReel$(i, 12)
        Else
            Line$(1) = Line$(1) + " " + SlotReel$(i, SlotCurrent(i) - 1)
        EndIf
        Line$(2) = Line$(2) + " " + SlotReel$(i, SlotCurrent(i))
        If SlotCurrent(i) = 12 Then
            Line$(3) = Line$(3) + " " + SlotReel$(i, 1)
        Else
            Line$(3) = Line$(3) + " " + SlotReel$(i, SlotCurrent(i) + 1)
        EndIf
    Next
    Line$(1) = Line$(1) + " "
    Line$(2) = Line$(2) + " <"
    Line$(3) = Line$(3) + " "
    For i = 1 To 3
        DialogOutput(Player, DW, Line$(i))
    Next
    Return
   
End Function

Function CheckWinner%(NumSpots)

    If SlotReel$(1, SlotCurrent(1)) <> Items$(1)
        If SlotReel$(1, SlotCurrent(1)) = SlotReel$(2, SlotCurrent(2)) Then
            If SlotReel$(2, SlotCurrent(2)) = SlotReel$(3, SlotCurrent(3)) Then
                Winner = 1
            EndIf
        EndIf
        If Winner = 1 Then
            If SlotReel$(1,SlotCurrent(1)) = Items$(2) Then
                Multiply = 15
            ElseIf SlotReel$(1,SlotCurrent(1)) = Items$(3) Then
                Multiply = 10
            EndIf
            Return(Multiply)
        EndIf
    EndIf
    Return(0)

End Function
Advertisement