Skocz do zawartości

Auto krzakowanie w XenoBocie


-Askry-

Rekomendowane odpowiedzi

Siemanko. Pytanie i prośba do Was.

 

Więc tak, stoje sobie na Roshamull i potrzebuje aby w dwa miejsca po lewej odrazu i lewo dół rzucał krzaka.

 

Jak to ustawić w xenobocie?

Można to ustawić?

Jak da rade to czy potrzeba skrypt czy można to w ustawieniach zrobić?

 

Jeśli skrypt to prosiłbym o podanie takowego i wytłumaczenie co i jak.

 

Za pomoc będą jak zwykle +++++ :D

 

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

local pos = {x = 00000, y = 00000, z = 00}

while (true) do
if (Map.IsTileWalkable(pos.x, pos.y, pos.z)) then
Targeting.Stop()
Self.UseItemWithGround(3156, pos.x, pos.y, pos.z)
wait(200)
else
Targeting.Start()
end
end

30sekund szukania na google.

 

Sprawdz czy wild growth ma na pewno id 3156

66j32w.jpg
 
Sprawdź mój tutorial na temat demonbuddy!

Nie odpowiadam na wiadomości prywatne.

Odnośnik do komentarza
Udostępnij na innych stronach

local pos = {x = 00000, y = 00000, z = 00}

while (true) do
if (Map.IsTileWalkable(pos.x, pos.y, pos.z)) then
Targeting.Stop()
Self.UseItemWithGround(3156, pos.x, pos.y, pos.z)
wait(200)
else
Targeting.Start()
end
end

Albo możesz przerobić ten skrypt tak, że nie musisz wpisać współrzędnych kratki, myślę że jest wtedy łatwiej. Wystarczy użyć Self.Position() i od pozycji x odjąć 2. Czyli po przerobieniu skrypt wygląda tak:

while (true) do
local pos = Self.Position()

if (Map.IsTileWalkable(pos.x, pos.y, pos.z)) then
	Targeting.Stop()
		Self.UseItemWithGround(3156, pos.x-2, pos.y, pos.z)
		wait(1000)
else
	Targeting.Start()
end
end

Działa to tak (ofc do pokazania użyłem m walli, bo nie miałem krzaków):

G4mIgeL.gif

No i na przyszłość zapraszam tutaj - http://www.mpcforum.pl/topic/1259260-pro%C5%9Bba-o-skryptywaypointycaveboty/

 

Odnośnik do komentarza
Udostępnij na innych stronach

A jak chce w 2,3,4,5 pozycje żeby rzucał krzaka to pod local pos = {x = 00000, y = 00000, z = 00}

 

Dodaje kolejne : local pos = {x = 00000, y = 00000, z = 00} i wpisuje X Y Z ??

 

Potem kolejne local pos = {x = 00000, y = 00000, z = 00} itd ?

 

Ma ktoś jeszcze skrypt na Auto Follow do Xeno żeby biegał po schodach itp za daną postacią ?

Odnośnik do komentarza
Udostępnij na innych stronach

A jak chce w 2,3,4,5 pozycje żeby rzucał krzaka to pod local pos = {x = 00000, y = 00000, z = 00}

Dodaje kolejne : local pos = {x = 00000, y = 00000, z = 00} i wpisuje X Y Z ??

Potem kolejne local pos = {x = 00000, y = 00000, z = 00} itd ?

Nie może być dwóch local  z taką samą nazwą pos. Dodanie tylko tego nie wystarczy.

Ma ktoś jeszcze skrypt na Auto Follow do Xeno żeby biegał po schodach itp za daną postacią ?

Ostatnio ktoś prosił, więc pozwolę sobie zacytować swój post z odpowiedzią:

 

FollowThisPerson = "name" -- Character name to follow.

FloorChangers = {
    Ladders   = {Up   = {1948,},
                 Down = {432, 412, 469, 369, 7478, 7182, 482, 8658}},
    
    Holes     = {Up   = {},
                 Down = {293, 294, 595, 385, 594}},
    
    RopeSpots = {Up   = {386},
                 Down = {}},
    
    Stairs    = {Up   = {1958, 7548, 7544, 1952, 1950, 1947, 7542, 1978, 8657, 1977, 1956, 1957, 1954},
                 Down = {414, 413, 437, 7731, 469, 413, 434, 469, 438, 600, 4826, 8932, 6129}},
    Sewers    = {Up   = {},
                 Down = {435, }},
}

---------------------------------------------
-------------- END OF CONFIG ----------------
---------------------------------------------

local target = FollowThisPerson
local lastKnownPosition

local function goLastKnown()
    while Self.DistanceFromPosition(lastKnownPosition.x, lastKnownPosition.y, lastKnownPosition.z) > 1 do
        Self.UseItemFromGround(lastKnownPosition.x, lastKnownPosition.y, lastKnownPosition.z)
        wait(200, 700)
    end
end

local function handleUse(pos)
    goLastKnown()
    local lastZ = Self.Position().z
    while Self.Position().z == lastZ do
        Self.UseItemFromGround(pos.x, pos.y, pos.z)
        wait(400, 800)
    end
end

local function handleStep(pos)
    goLastKnown()
    local lastZ = Self.Position().z
    while Self.Position().z == lastZ do
        Self.Step(Map.GetDirectionTo(Self.Position(), pos))
        wait(400, 800)
    end
end

local function getRope()
    local ropes = {"rope", "elvenhair rope"}
    for _, rope in ipairs(ropes) do
        if Self.ItemCount(rope) > 0 then return Item.GetID(rope) end
    end
end

local function handleRope(pos)
    goLastKnown()
    local lastZ = Self.Position().z
    while Self.Position().z == lastZ do
        Self.UseItemWithGround(getRope(), pos.x, pos.y, pos.z)
        wait(400, 800)
    end
end

local floorChangeSelector = {
    Ladders = {Up=handleUse, Down=handleStep},
    Holes = {Up=handleStep, Down=handleStep},
    RopeSpots = {Up=handleRope, Down=handleRope},
    Stairs = {Up=handleStep, Down=handleStep},
    Sewers = {Up=handleUse, Down=handleUse},
}


Module("Follow-Renew", function(f)
    local c = Creature(target)
    if c and not c:isFollowed() then
        c:Follow()
    end
end)

local function checkTargetPos()
    local c = Creature(target)
    if c:Position().z == Self.Position().z then
        lastKnownPosition = c:Position()
    end
end

local function distance(pos1, pos2)
    local pos2 = pos2 or lastKnownPosition or Self.Position()
    return math.abs(pos1.x-pos2.x) + math.abs(pos1.y-pos2.y)
end

local function executeClosest(possibilities)
    local closest
    local closestDistance = 99999
    for _, data in ipairs(possibilities) do
        local dist = distance(data.pos)
        if dist < closestDistance then
            closest = data
            closestDistance = dist
        end
    end
    if closest then closest.changer(closest.pos) end
end

local function handleFloorChange()
    local c = Creature(target)
    local range = 2
    local p = Self.Position()
    local possibleChangers = {}
    for _, dir in ipairs({"Down", "Up"}) do
        for changer, data in pairs(FloorChangers) do
            for x = -range, range do
                for y = -range, range do
                    if table.find(data[dir], Map.GetTopUseItem(p.x+x, p.y+y, p.z).id) then
                        table.insert(possibleChangers, {changer=floorChangeSelector[changer][dir], pos={x=p.x+x, y=p.y+y, z=p.z}})
                    end
                end
            end
        end
    end
    executeClosest(possibleChangers)
end

local function targetMissing()
    for name, c in Creature.iPlayers() do
        if name == target then
            return c:Position().z ~= Self.Position().z
        end
    end
    return true
end

Module("Handle floor change", function(f)
    checkTargetPos()
    if targetMissing() and lastKnownPosition then
        handleFloorChange()
    end
end)
szjF1O2.gif

 

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jest tez cos takiego

 

local shootPosx = posx
local shootPosy = posy
 
if toptileitem(shootPosx, shootPosy, posz) ~= 123123 then 
	useitemon("Wild Growth Rune", shootPosx, shootPosy, posz)
	wait(300)
end
Rzuca krzak np. kratke na north jak dasz posy-1

 

 

 

@up

Ktos tu wrzuca mojego skrypta :D

 

 

Jak chcesz, zeby rzucal na lewo to

local shootPosx = posx-1
local shootPosy = posy
A lewo dol to bodajze

local shootPosx = posx-1
local shootPosy = posy+1

66j32w.jpg
 
Sprawdź mój tutorial na temat demonbuddy!

Nie odpowiadam na wiadomości prywatne.

Odnośnik do komentarza
Udostępnij na innych stronach

 

@up

Ktos tu wrzuca mojego skrypta :D

Skrypt na follow nie jest ani, mój ani twój - z forum XB ;)

 

Nie o to mi chodzilo :D Ale i tak bylem w bledzie.

 

Jezeli chodzi o local. To jezeli chcesz, zeby rzucal na dwie kratki to musisz miec dwa skrypt i odpalic dwa skrypty najlepiej. Widze, ze zielony jestes tak samo jak wiec nie napiszesz w jednym skrypcie, zeby rzucal na 2 sqmy.

66j32w.jpg
 
Sprawdź mój tutorial na temat demonbuddy!

Nie odpowiadam na wiadomości prywatne.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający forum Auto krzakowanie w XenoBocie   0 użytkowników
    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...