Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem z mc


dookie598

Rekomendowane odpowiedzi

Opublikowano

Witam jak stawiam bota i do tego chce dac drugiego na mc z combo leaderem itp. to wszystko ladnie i pieknie ale jak zrobic zeby mc wchodzil za liderem po schodach do gory? Bot xenobot 

Z góry dziękuje

Opublikowano

Dzięki @Cinu. za pomoc :lenny:

Ten skrypt działa:


FollowThisPerson = "NICKNAME" -- 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)

Wystarczy w pierwszej linijce wpisać nick postaci, za którą chcesz żeby bot chodził.

 

 

source.gif

 

  • 1 rok później...
Opublikowano
Dnia 1.01.2018 o 13:27, bohun3 napisał:

Czy istnieje scrypt na follow z distance, żeby trzymał odpowiedni dystans  albo i żeby można było ustawiać dystans ?

 

Taki, który chodzi po jednym piętrze? Da radę zrobić :)

 

Opublikowano
Dnia 3.01.2018 o 22:28, Marchwj napisał:

Taki, który chodzi po jednym piętrze? Da radę zrobić :)

Nie wiem czy dobrze się zrozumieliśmy chodziło mi o scrypt na follow w którym 1 gracz chodzi za 2 trzymając odpowiedni odstęp od niego i żeby można było ustawiać ten odstęp ? i żeby chodził po drabinach, schodach itd..

  • 2 miesiące temu...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...