Jump to content


Photo

[1.7.10] ComputerCraft [1.74]


  • Please log in to reply
2863 replies to this topic

#2141 Ukrainian

Ukrainian

    Странник

  • Пользователи
  • Active Posts83

Posted 23.06.2013 - 12:07

идеально, только вот ты повторил функцию.

ИМХО, идеальный вариант:
function move(dir)    while moves[dir]() do      sleep(1)      end   end


#2142 Apokalypsys

Apokalypsys

    Добытчик дерева

  • Пользователи
  • Active Posts183

Posted 23.06.2013 - 12:24

Ага, "пока двигается спать(1)"...
function move(dir)   while not moves[dir]() do --пока НЕ сдвинется      sleep(1)      end   end
Если хочешь, я тебе в личку дам кусок кода движения из своего карьера. Да, она идеальна.

#2143 Ukrainian

Ukrainian

    Странник

  • Пользователи
  • Active Posts83

Posted 23.06.2013 - 12:53

Ага, "пока двигается спать(1)"...

function move(dir)   while not moves[dir]() do --пока НЕ сдвинется      sleep(1)      end   end
Если хочешь, я тебе в личку дам кусок кода движения из своего карьера. Да, она идеальна.

Именно так и хотел, просто писал с головы, у меня было "while moves[dir]() == false do"
Будет интересно посмотреть что у тебя.

#2144 Apokalypsys

Apokalypsys

    Добытчик дерева

  • Пользователи
  • Active Posts183

Posted 23.06.2013 - 13:12

Проверь личку

#2145 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 23.06.2013 - 13:16

Жадина, я тоже хотел посмотреть =(

#2146 Apokalypsys

Apokalypsys

    Добытчик дерева

  • Пользователи
  • Active Posts183

Posted 23.06.2013 - 13:24

Ну так я думал только ему надо
Скрытый текст

В общем, мой карьер за 1 раз сносит 3 блока, сначала сверху, потом снизу, а затем пытается пройти вперед. Если перед ним блок - ломаем, если моб - убиваем, если игрок - убиваем, если игрок и режим nopvp - ждем пока съебётся отойдет в сторону, если коренная порода возвращает false, если в инвентаре забился последний (16-й) слот возвращаемя на базу и оставляем 1 стак топлива. Там еще есть проверка на топливо и запись координат (там сложная система, но 100% отказоустойчивая), но я их вырезал, ибо не надо сейчас.

#2147 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 23.06.2013 - 14:18

А координаты на gps? Или ты вырезал отслеживание координат из функции?

#2148 Apokalypsys

Apokalypsys

    Добытчик дерева

  • Пользователи
  • Active Posts183

Posted 23.06.2013 - 14:25

Координаты используют и gps и запись в файл. Вырезал, ибо без 100 грамм основного кода не понять, да и не нужно.

#2149 RP2Crafter

RP2Crafter

    Добытчик камня

  • Пользователи
  • Active Posts217

Posted 23.06.2013 - 20:22

блок - ломаем, если моб - убиваем, если игрок - убиваем

Как игрока/моба от блока отличаешь?

Изображение


#2150 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 23.06.2013 - 20:26

существо можно ударить, но нельзя выкопать

#2151 RP2Crafter

RP2Crafter

    Добытчик камня

  • Пользователи
  • Active Posts217

Posted 23.06.2013 - 20:27

Тоесть если turtle.attack() возвращает false пробовать turtle.dig()...?

Изображение


#2152 Apokalypsys

Apokalypsys

    Добытчик дерева

  • Пользователи
  • Active Posts183

Posted 23.06.2013 - 20:45

Наоборот

#2153 RP2Crafter

RP2Crafter

    Добытчик камня

  • Пользователи
  • Active Posts217

Posted 24.06.2013 - 10:12

А бедрок от капаемого блока как отличаешь?

Изображение


#2154 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 24.06.2013 - 10:16

он детектится как блок, но не копается

#2155 RP2Crafter

RP2Crafter

    Добытчик камня

  • Пользователи
  • Active Posts217

Posted 24.06.2013 - 10:17

if turtle[paste][/paste]detect() and (not turtle[paste][/paste]dig()) then [paste][/paste][paste][/paste][paste][/paste] end
Типа того?

Изображение


#2156 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 24.06.2013 - 10:21

типа того: viewtopic.php?p=281901#p281901while not turtle.forward() do - начиная отсюда, там комментарии есть

#2157 RP2Crafter

RP2Crafter

    Добытчик камня

  • Пользователи
  • Active Posts217

Posted 24.06.2013 - 10:23

if turtle[paste][/paste]detect() then --блок if turtle[paste][/paste]dig() then  [paste][/paste][paste][/paste][paste][/paste] end else --коренная порода  return false end
Помоему я то-же самое написал только в одном условии.

Изображение


#2158 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 24.06.2013 - 10:34

И ты хочешь кучу условий писать вот так вот, как у тебя? Тут всё компактно

#2159 RP2Crafter

RP2Crafter

    Добытчик камня

  • Пользователи
  • Active Posts217

Posted 24.06.2013 - 10:38

И ты хочешь кучу условий писать вот так вот, как у тебя? Тут всё компактно

Я пока не знаю как писать хочу, сначала филлер допилю потом на карьер перейду.

Изображение


#2160 Apokalypsys

Apokalypsys

    Добытчик дерева

  • Пользователи
  • Active Posts183

Posted 24.06.2013 - 11:19

Всё норм
while not turtle[paste][/paste]forward() do	if turtle[paste][/paste]detect() and not turtle[paste][/paste]dig() then		return false	elseif not turtle[paste][/paste]attack() then		sleep(0[paste][/paste]5)	elseif not haveSpace() then		go2base()	endend
Только turtle.dig будет выполнятся независимо от результата turtle.detect, это серьёзное падение скорости, так как в работая в холостую turtle.dig ничем не отличается от копающего блоки (по времени). Для этого и придумали turtle.detect.


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users