Ir para conteúdo
  • Cadastre-se

AJUDA ARRUMA SCRIPT DICE HOUSE


Posts Recomendados

-- { H/L-Player } --

PlayerName = Self.Name()    -- Ignore this, it's just a defualt value that will change


Settings =
{
    Ping = 200,                -- Change this to higher if your latency is high (ms)
    Backpacks = 1            -- Amount of backpacks inside depot
}


Bet =
{
    Maximum = 300000,        -- Maximum bet
    Minimum = 5000,            -- Minimum bet
    Payoutarrow-10x10.png = 1.8            -- Payoutarrow-10x10.png percent
}


Conversation =
{
    Welcome =                -- What to say to new players
    {
        "Welcome "..PlayerName.."! Feeling lucky today, aren't we?",
        "Hello "..PlayerName..". Welcome to the casino.",
        "Greetings "..PlayerName..", how are you today?"
    },
    Win =                    -- What to say if player wins
    {
        "Winner, winner, chicken dinner! Or wait.. that's blackjack.",
        "Congratulations!",
        "Well played, "..PlayerName.."!"
    },
    Loss =                    -- What to say if player loose
    {
        "I guess your luck just ran out.",
        "Next time maybe, sorry.",
        "Argh, how about another game?"
    },
    Payout =                -- What to say if player asks about payout
    {
        "My payout is your bet back + "..((Bet.Payout-1)*100).."%. How does that sound?",
        ""..((Bet.Payout-1)*100).."%"
    },
    Maximum =                -- What to say if player asks about max bet
    {
        "My maximum bet is "..(Bet.Maximum/1000).." K.",
        ""..(Bet.Maximum/1000).." K."
    },
    Minimum =                -- What to say if player asks about min bet
    {
        "My minimum bet is "..(Bet.Minimum/1000).." K.",
        ""..(Bet.Minimum/1000).." K."
    }
}


Advertisement =
{
    Yell = true,            -- Advertise your casino through yelling
    Say = true,                -- Advertise your casino through speaking (only people to people on screen)
    Interval = 1,            -- Interval betwen advertising messages (minutes)
    Text =
    {
        Yell =                -- What to yell out in public
        {
            "Best payout you can get. Astonishing "..((Bet.Payout-1)*100).."%!",
            "Minimum bet is "..(Bet.Minimum/1000).." K.",
            "Maximum bet is "..(Bet.Maximum/1000).." K."
        },
        Say =                -- What to say in public
        {
            "Best payout you can get. Astonishing "..((Bet.Payout-1)*100).."%!",
            "Minimum bet is "..(Bet.Minimum/1000).." K.",
            "Maximum bet is "..(Bet.Maximum/1000).." K."
        }
    }
}


Keywords =
{
    High = {"h", "high"},    -- Keyword for high
    Low = {"l", "low"}        -- Keyword for low
}


----------


pos, dPos, cPos, pPos, Gamble, Initialized = nil, nil, nil, nil, nil, nil
AntiSpamTimer = os.time()


function AntiSpam(message, type)
    if os.difftime(os.time(), AntiSpamTimer) > 2 then
        print("antispam")
        Self.Speak(message, type)
        AntiSpamTimer = os.time()
    end
end


Module.New("LetXenoBotDoTheWork", function(mod)
    if not Initialized then -- setups the depot automatically, no need for defining backpacks
        while not Initialized do
            while not (dPos and cPos and pPos) do
                print("Instructions: Walk to any depot.")
                wait(5000)
                local depot = {3497, 3498, 3499, 3500}
                local counter = {2321, 2318, 17385, 17378}
                pos = Self.Position()
                for x = -1, 1 do
                    for y = -1, 1 do
                        if not dPos then
                            if table.contains(depot, Map.GetTopUseItem(pos.x + x, pos.y + y, pos.z).id) then
                                print("Depot found.")
                                dPos = { x = pos.x + x, y = pos.y + y }
                            end
                        end
                        if not cPos then
                            if table.contains(counter, Map.GetTopUseItem(pos.x + x, pos.y + y, pos.z).id) then
                                print("Counter found.")
                                cPos = { x = pos.x + x, y = pos.y + y }
                            end
                        end
                        if dPos and cPos and not pPos then
                            if (pos.x + 1 == dPos.x or pos.x - 1 == dPos.x) and pos.y + 1 == cPos.y then
                            -- Depot: East/West - Counter: South of Depot - Player: 2 South --
                                pPos = { x = pos.x, y = pos.y + 2, turn = SOUTH }
                                print("Player tile found.")
                            elseif (pos.x + 1 == dPos.x or pos.x - 1 == dPos.x) and pos.y - 1 == cPos.y then
                            -- Depot: East/West - Counter: North of Depot - Player: 2 North --
                                pPos = { x = pos.x, y = pos.y - 2, turn = NORTH }
                                print("Player tile found.")
                            elseif (pos.y + 1 == dPos.y or pos.y - 1 == dPos.y) and pos.x + 1 == cPos.x then
                            -- Depot: North/South - Counter: East of Depot - Player: 2 East --
                                pPos = { x = pos.x + 2, y = pos.y, turn = EAST }
                                print("Player tile found.")
                            elseif (pos.y + 1 == dPos.y or pos.y - 1 == dPos.y) and pos.x - 1 == cPos.x then
                                -- Depot: North/South - Counter: West of Depot - Player: 2 West --
                                pPos = { x = pos.x - 2, y = pos.y, turn = WEST }
                                print("Player tile found.")
                            end
                        end
                    end
                end
            end
            Self.CloseContainers()
            Self.BrowseField(cPos.x, cPos.y, pos.z)
            wait(500 + Settings.Ping, 1000 + Settings.Ping)
            Container(0):Minimize()
            wait(500 + Settings.Ping)
            Self.BrowseField(dPos.x, dPos.y, pos.z)
            wait(500 + Settings.Ping)
            Container(1):Minimize()
            wait(500 + Settings.Ping, 1000 + Settings.Ping)
            Container(1):UseItem(0, false)
            wait(500 + Settings.Ping, 1000 + Settings.Ping)
            Container(2):UseItem(0, true)
            wait(500 + Settings.Ping, 1000 + Settings.Ping)
            Container(2):Minimize()
            wait(500 + Settings.Ping)
            if Container("Depot Chest"):isOpen() then
                while #Container.GetAll() < Settings.Backpacks + 3 do
                    for slot, item in Container.GetLast():iItems() do
                        if Item.isContainer(item.id) then
                            Container.GetLast():UseItem(slot, false)
                            wait(500 + Settings.Ping)
                            Container.GetLast():Minimize()
                            wait(500 + Settings.Ping, 1000 + Settings.Ping)
                        end
                    end
                end
            end
            if #Container.GetAll() == Settings.Backpacks + 3 then
                print("Setup done.")
                Initialized = true
                Idle = true
                break
            end
        end
    elseif Gamble then -- Gamble stuff, handling bets etc
        print("gambling")
        while DoingShit do
            local PlayerBet = nil
            BetType = nil
            local PlayerBet = Container(0):CountItemsOfID(3035)*100+Container(0):CountItemsOfID(3043)*10000
            while PlayerBet do -- player placed betarrow-10x10.png
                if PlayerBet >= Settings.Minimum and PlayerBet <= Settings.Maximum then -- make sure the bet is in range
                    for i = 3, #Container.GetAll() do
                        for spot in Container(0):iItems() do
                            if Container(0):GetItemData(spot).id == 3035 or Container(0):GetItemData(spot).id == 3043 then
                                Container(0):MoveItemToContainer(spot, Container(i):Index(), Container(i):ItemCapacity()-1, 100) -- move to bp with index +3, need to verify amount (if player removes any gold meanwhile)
                                wait(200 + Settings.Ping)
                            end
                        end
                    end
                    while not BetType do -- player have not decided l/h
                        wait(200)
                    end


                    -- use dice here and shit


                    if Result == BetType then -- player has won
                        -- play instrument
                        PlayerReward = PlayerBet*Bet.Payout
                        AntiSpam(Conversation.Win[math.random(1, #Conversation.Win)], SPEAK_SAY)
                        while Container(3):CountItemsOfID(3035)*100+Container(3):CountItemsOfID(3043)*10000 ~= PlayerReward do
                            for i = 3, #Container.GetAll() do
                                for spot in Container(i):iItems() do
                                    if PlayerReward >= 10000 and Self.ItemCount(3043) > 0 then
                                        PlayerCrystal = math.floor(PlayerReward/10000)
                                        Container(i):MoveItemToContainer(spot, Container(3):Index(), Container(3):ItemCapacity()-1, PlayerCrystal)
                                        PlayerReward = PlayerReward - PlayerCrystal*10000
                                    end
                                    if PlayerReward < 10000 and Self.ItemCount(3035) > 0 then
                                        PlayerPlatinum = math.floor(PlayerReward/100)
                                        Container(i):MoveItemToContainer(spot, Container(3):Index(), Container(3):ItemCapacity()-1, PlayerCrystal)
                                        PlayerReward = PlayerReward - PlayerCrystal*100
                                    end
                                    if Container(3):CountItemsOfID(3035)*100+Container(3):CountItemsOfID(3043)*10000 > PlayerReward then
                                        Container(3):MoveItemToContainer(spot, Container(i):Index(), Container(i):ItemCapacity()-1, PlayerCrystal)
                                    end
                                end
                            end
                            Self.DropItem(cPos.x, cPos.y, pos.z, 3043, PlayerReward) -- loop not correct, needs to get fixed
                        end
                    elseif Result ~= BetType then -- player lost
                        -- use package (yellow hit)
                        AntiSpam(Conversation.Loss[math.random(1, #Conversation.Loss)], SPEAK_SAY)
                    end
                else
                    if PlayerBet > Settings.Maximum then
                        AntiSpam(Conversation.Maximum[math.random(1, #Conversation.Maximum)], SPEAK_SAY)
                    elseif PlayerBet < Settings.Minimum then
                        AntiSpam(Conversation.Minimum[math.random(1, #Conversation.Minimum)], SPEAK_SAY)
                    end
                    Map.MoveItem(cPos.x, cPos.y, cPos.x, cPos.y, 100)
                end
            end
            if Creature(PlayerName):Position().x ~= pPos.x and Creature(PlayerName):Position().y ~= pPos.y then -- player left
                Gamble = false -- turn off customer loop
                DoingShit = false -- turn off customer loop
                Idle = true -- turn on idle loop
                break
            end
        end
        
    elseif Idle then -- Checks if position remains the same, if so then advertise/look the opposite way of depot, else start searching for a new depot
        if Self.Position().x ~= pos.x or Self.Position().y ~= pos.y or Self.Position().z ~= pos.z then -- we moved ??????? haow?
            pos, dPos, cPos, pPos, Gamble, Initialized = nil, nil, nil, nil, nil, nil
        else
            while not Gamble do
                local creature = Self.GetSpectators()
                if dPos.y == pos.y - 1 and not Self.LookDirection() ~= "south" then
                    Self.Turn(SOUTH)
                elseif dPos.y == pos.y + 1 and not Self.LookDirection() ~= "north" then
                    Self.Turn(NORTH)
                elseif dPos.x == pos.x + 1 and not Self.LookDirection() ~= "west" then
                    Self.Turn(WEST)
                elseif dPos.x == pos.x - 1 and not Self.LookDirection() ~= "east" then
                    Self.Turn(EAST)
                end
                for i = 1, #creature do
                    if creature:Position().x == pPos.x and creature:Position().y == pPos.y and not Self.LookDirection() ~= pPos.turn then -- sets new PlayerName if player is on tile +2
                        Self.Turn(pPos.turn)
                        PlayerName = creature:Name()
                        print("say hi")
                        AntiSpam(Conversation.Welcome[math.random(1, #Conversation.Welcome)], SPEAK_SAY)
                        print("hi has been said")
                        Gamble = true -- start handling bets
                        Idle = false
                        break
                    end
                end
                -- use party hat, yey
                if os.difftime(os.time(), timer) > Advertisement.Interval*60 then
                    if Advertisement.Yell and not Advertisement.Say then
                        AntiSpam(Advertisement.Text.Yell[math.random(1, #Advertisement.Text.Yell)], SPEAK_YELL)
                    elseif Advertisement.Say and not Advertisement.Yell then
                        AntiSpam(Advertisement.Text.Say[math.random(1, #Advertisement.Text.Say)], SPEAK_SAY)
                    end
                    timer = os.time()
                end
                if os.date("%H") == 10 and os.date("%M") >= 50 then
                    -- pickupItems
                    assert(false, "Server save bishess")
                end
            end
        end
    end
end)


-- { Signals } -- (not 100% sure if right, should be changed, go to line #180 and below)


Signal.OnReceive("Bet", function(signal, data)
    if data[1] == PlayerName then
        if BetType == "high" or BetType == "low" then
            BetType = data[2]
        elseif BetType == "payout" then
            AntiSpam(message, type)
            Self.Speak(Conversation.Payout[math.random(1, #Conversation.Payout)], SPEAK_SAY)
        end
    end
end)


Signal.OnReceive("Dice", function(signal, data)
    if data == "high" then
        Result = "high"
    elseif data "low" then
        Result = "low"
    end
end)


se alguem puder ajudar ... o script xenobot era para o depot gostaria que voces me ajuda-se  a transformar ele para house igual a imagem acima ... essa house e minha mais nao consigo configurar ele se alguem solber e puder me ajudar ... muito obrigado

post-118790-0-35427800-1409157504_thumb.

Link para o post
Compartilhar em outros sites
  • 3 weeks later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo