Reklama
Pokazuje wyniki od 1 do 7 z 7

Temat: Xenobot problem z .lua

  1. #1
    skubany20

    Domyślny Xenobot problem z .lua

    Witam, mam pewien problem.

    A mianowicie mam skrypta ,lua i jak juz jest na expie postać to po zrobieniu "pętelki"(wpt), majac dalej potiony i capa wraca ... Nie rozumiem o co chodzi.. Pomoże ktoś ?

    ---------------------------------
    --------Twoj Waypoint------------
    -------Created By Sanix----------
    ---------------------------------

    ----------- BP SETUP ------------
    --~ [BP 1] ~-- Main
    --~ [BP 2] ~-- Produkty
    --~ [BP 3] ~-- Gold

    ----------- DP SETUP ------------
    --~ [DP 1] ~-- Rare
    --~ [DP 2] ~-- Produkty

    ------------ Settings -----------

    -- Mana Potions --

    local ManasToLeave = 200 -- Z iloma manasami wracać
    local WantedManas = 600 -- Ile Manasow kupić
    local ManaPotID = 268 -- Mana Potion ID
    local ManaCost = 50 -- Mana Potion koszt

    -- Health Potions --

    local HealthToLeave = 20 -- Z iloma healtami wracać
    local WantedHealth = 0 -- Ile Healtow Kupić
    local HealthPotID = 7643 -- Health Potion ID
    local HealthCost = 310 -- Koszt HP Potka

    -- Other Options --

    local MainBP = 7342 -- ID plecaka glownego (Czerwony)
    local ItemBP = 9602 -- ID plecaka na itemy (Pomaranczowy)
    local GoldBP = 2871 -- ID plecaka na kase (Camouflage)
    local MinCap = 50 -- Od ilu Capa wracać
    local HideEquipment = true -- Zminimalizować EQ

    -- Floor Settings --

    local SecondFloor = true -- Tego nie zmieniajcie


    Targeting.Start()
    Looter.Start()

    --------------------------------------------------------------------
    --------------------------------------------------------------------
    --------------------------------------------------------------------
    --------------------------------------------------------------------
    --------------------------------------------------------------------

    registerEventListener(WALKER_SELECTLABEL, "onWalkerSelectLabel")

    local info = [[]]
    wait(5000)

    print([[
    --<Waypoint 100% Afk>--]])
    wait(5000)

    -----------------------------------------------------------------------------------------------------------------------------------------
    function onWalkerSelectLabel(labelName)

    if (labelName == "Checker") then
    if (Self.ItemCount(268) < ManasToLeave) or (Self.ItemCount(7643) < HealthToLeave) or (Self.Cap(50) < MinCap) then
    gotoLabel("Leave")
    else
    gotoLabel("Start Hunt")
    end
    elseif (labelName == "TravelGo") then
    setWalkerEnabled(false)
    delayWalker(5000)
    Self.Say("hi")
    sleep(math.random(700, 1400))
    Self.SayToNpc("mission") -- Tutaj wpisz wyspe na ktora sie udajesz.
    sleep(math.random(300, 1000))
    Self.SayToNpc("yes")
    setWalkerEnabled(true)

    elseif (labelName == "TravelBack") then
    setWalkerEnabled(false)
    delayWalker(5000)
    Self.Say("hi")
    sleep(math.random(700, 1400))
    Self.SayToNpc("Svargrond") -- Tutaj wpisz wyspe powrotna
    sleep(math.random(300, 1000))
    Self.SayToNpc("yes")
    setWalkerEnabled(true)

    elseif (labelName == "Deposit") then
    setWalkerEnabled(false)
    Self.ReachDepot()
    Self.DepositItems({8042, 0}, {8043, 0}, {823, 1}) -- Tutaj dodajesz ID itemkow ktore ma odkładać do Depo a po przecinku backpack w kolejności od lewej strony 0 oznacza miejsce pierwsze a 1 miejsce 2, 2 to miejsce trzecie i tak dalej
    Self.DepositItems({8083, 1}, {3029, 2}, {9666, 2}) -- tutaj to smao co wyĹĽej bo jak jest za duĹĽo itemek w jednej lini to siÄ™ zawiesza
    Self.DepositItems({237, 2}, {236, 2}, {238, 2})
    Self.DepositItems({8894, 2})
    wait(1500,1900)

    elseif (labelName == "Cash") then
    setWalkerEnabled(false)
    delayWalker(5000)
    Self.Say("hi")
    sleep(math.random(700, 1400))
    Self.SayToNpc("deposit all")
    sleep(math.random(300, 1000))
    Self.SayToNpc("yes")
    setWalkerEnabled(true)

    elseif (labelName == "Withdraw") then
    setWalkerEnabled(false)
    delayWalker(5000)
    Self.SayToNpc("hi")
    sleep(math.random(700, 1400))
    Self.WithdrawMoney((ManaCost*(WantedManas-Self.ItemCount(ManaPotID))))
    sleep(math.random(700, 1400))
    Self.WithdrawMoney((HealthCost*(WantedHealth-Self.ItemCount(HealthPotIDID))))
    sleep(math.random(700, 1400))
    Self.WithdrawMoney(100)
    sleep(math.random(700, 1400))
    Self.SayToNpc("yes")
    setWalkerEnabled(true)

    elseif (labelName == "Potions") then
    setWalkerEnabled(false)
    delayWalker(10000)
    Self.SayToNpc("hi") sleep(math.random(800, 1700))
    Self.SayToNpc("trade")
    sleep(math.random(2000, 2400))
    Self.ShopBuyItem(ManaPotID, (WantedManas-Self.ItemCount(ManaPotID)))
    sleep(math.random(2000, 2400))
    Self.ShopBuyItem(HealthPotID, (WantedHealth-Self.ItemCount(HealthPotID)))
    sleep(math.random(800, 1700))
    setWalkerEnabled(true)

    elseif (labelName == "FullCheck") then
    if (Self.ItemCount(ManaPotID) < WantedManas) or (Self.Cap() < MinCap) or (Self.ItemCount(HealthPotID) < WantedHealth) then
    gotoLabel("PreDeposit")
    else
    gotoLabel("LetsHunt")
    end

    elseif (labelName == "ResetBp") then
    Walker.Stop()

    Container.Close(ItemBP)
    wait(1000)
    Container.Close(GoldBP)
    wait(1000)
    Container.GetFirst():OpenChildren(ItemBP)
    wait(1000)
    Container.GetFirst():OpenChildren(GoldBP)
    wait(1000)
    Container.GetByName(ItemBP):Minimize()
    wait(1000)
    Container.GetByName(GoldBP):Minimize()
    wait(200)
    if (HideEquipment) then
    Client.HideEquipment()
    wait(1000)
    end
    Walker.Start()
    end
    end


    ----------------------- Functions ----------------------
    function SellItems(item) -- item = item ID
    wait(300, 1700)
    Self.ShopSellItem(item, Self.ShopGetItemSaleCount(item))
    wait(900, 1200)
    end

    function BuyItems(item, count) -- item = item id, count = how many you want to buy up to
    wait(900, 1200)
    if (Self.ItemCount(item) < count) then
    Self.ShopBuyItem(item, (count-Self.ItemCount(item)))
    wait(200, 500)
    end
    end

    Self.ReachDepot = function (tries)
    local tries = tries or 3
    Walker.Stop()
    local DepotIDs = {3497, 3498, 3499, 3500}
    local DepotPos = {}
    for i = 1, #DepotIDs do
    local dps = Map.GetUseItems(DepotIDs[i])
    for j = 1, #dps do
    table.insert(DepotPos, dps[j])
    end
    end

    local function gotoDepot()
    local pos = Self.Position()
    print("Ilosc znalezionych Depo: " .. tostring(#DepotPos))
    for i = 1, #DepotPos do
    location = DepotPos[i]
    Self.UseItemFromGround(location.x, location.y, location.z)
    wait(1000, 2000)
    if Self.DistanceFromPosition(pos.x, pos.y, pos.z) >= 1 then
    wait(5000, 6000)
    if Self.DistanceFromPosition(location.x, location.y, location.z) == 1 then
    Walker.Start()
    return true
    end
    else
    print("To depo jest zajete, szukam dalej.")
    end
    end
    return false
    end

    repeat
    reachedDP = gotoDepot()
    if reachedDP then
    return true
    end
    tries = tries - 1
    sleep(100)
    print("Nie udalo sie dotrzec do depo... " .. tries .. " szukam dalej.")
    until tries <= 0

    return false
    end

    Map.GetUseItems = function (id)
    if type(id) == "string" then
    id = Item.GetID(id)
    end
    local pos = Self.Position()
    local store = {}
    for x = -7, 7 do
    for y = -5, 5 do
    if Map.GetTopUseItem(pos.x + x, pos.y + y, pos.z).id == id then
    itemPos = {x = pos.x + x, y = pos.y + y, z = pos.z}
    table.insert(store, itemPos)
    end
    end
    end
    return store
    end

  2. #2
    Avatar esik
    Data rejestracji
    2005
    Posty
    795
    Siła reputacji
    19

    Domyślny

    "or (Self.Cap(50) < MinCap) "

    bez 50 w nawiasie ;)

    I tylko żeby nie było...

  3. Reklama
  4. #3
    skubany20

    Domyślny

    Zmieniłem, ale niestety to nie pomogło .. ;/ Więcej pomysłow ? :D

  5. #4
    Avatar solp
    Data rejestracji
    2012
    Posty
    2,036
    Siła reputacji
    14

    Domyślny

    załadowałeś w ogóle ten skrypt ?

  6. #5
    skubany20

    Domyślny

    No oczywiście, że tak . W końcu wszystko robi prócz sprawdzania na expie ile potów jeszcze ma i czy może dalej latać czy ma już wracać.. Hmm .. Nie mam pojęcia,co jest nie tak ...

  7. #6
    Avatar solp
    Data rejestracji
    2012
    Posty
    2,036
    Siła reputacji
    14

    Domyślny

    wszystko wygląda dobrze z tymi manasami

  8. #7
    skubany20

    Domyślny

    (Self.ItemCount(HealthPotID) < HealthToLeave)

    Coś w tej linijce najprawdopodobniej lub w tej :

    -- Health Potions --

    local HealthToLeave = 20 -- Z iloma healtami wracać
    local WantedHealth = 0 -- Ile Healtow Kupić
    local HealthPotID = 7643 -- Health Potion ID
    local HealthCost = 310 -- Koszt HP Potka


    Po usunięciu tych dwóch części skrypta , postać lata normalnie tak jak było zaplanowane , czyli po skończonej pętli sprawdza ile capa i potionów i leci expić,a nie wraca jak dotychczas do początku cavebota . Jakby ktoś znalazł błąd to proszę o poinformowanie. Z góry dziękuje za pomoc. :)

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. XenoBot problem z .lua
    Przez Sir Konrad w dziale Open Tibia Server
    Odpowiedzi: 2
    Ostatni post: 07-05-2020, 14:34
  2. xenobot problem z lua scripter
    Przez Piotrexo w dziale Strefa developerska
    Odpowiedzi: 2
    Ostatni post: 08-03-2018, 18:33
  3. [LUA] Krótsze odpowiedniki w lua - autorstwa Grimkka
    Przez Grimekk w dziale Artykuły developerskie
    Odpowiedzi: 2
    Ostatni post: 13-01-2014, 18:36
  4. [Lua] Od zera do skryptera, czyli LUA: Pętle i tablice*
    Przez Grim90 w dziale Artykuły developerskie
    Odpowiedzi: 9
    Ostatni post: 21-08-2010, 02:47
  5. [Lua] Od zera do skryptera, czyli LUA: PODSTAWY i Actions*
    Przez Grim90 w dziale Artykuły developerskie
    Odpowiedzi: 7
    Ostatni post: 02-08-2009, 01:05

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •