 |
Zombot (Клиент для игры Зомби ферма) [Обсуждение] - Свободное обсуждение - Ваши идеи, вопросы и ответы на тему браузерных игр и социальных сетей |
09.11.2014, 19:06
|
#3556
|
|
|
|
Разведчик
|
 Регистрация: 09.11.2013
 Сообщений: 2
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
________________
znest.ru
|
|
|
09.11.2014, 22:41
|
#3557
|
|
|
|
Разведчик
|
 Регистрация: 25.02.2013
 Сообщений: 1
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
09.11.2014, 23:17
|
#3558
|
|
|
|
Разведчик
|
 Регистрация: 22.03.2014
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 5 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
ребят ! в чем трабла? бот не работает(
PHP код:
#name "Бригада Элвисов"
// Author: Vint
// Version: 2.6 (16.04.2013)
// добавлены новые растения, Малина, Арбуз, Рамбутан
// меню бригады может выпадать в любую сторону, а не только вправо-вниз
//===== ОПЦИИ ==========================//
//////////////////////////////////////////
LOGCLEAR
//LOGSHOW (1,$_xmax-335,28) //=====отображение окна лога
// коррекция под ВКонтакте
$VKontakte=1
// задержка между проверками бригады когда работают, сек
$elvis_wait1=3
// задержка между проверками бригады когда растёт, сек
$elvis_wait2=60
// задержка после отправки бригады собирать/копать, сек
$elvis_wait3=15
// задержка после отправки бригады сажать, сек
$elvis_wait4=360
// Оконный режим (0 - выключено, 1 - включено)
$window = 0
// Полноэкранный режим (0 - выключено, 1 - включено)
$full_screen = 0
//посадка (0 - выключено, 1 - 40 семена)
$semena = 19
//== ОПЦИИ посадки (что сажаем) ==========
// 0 - Не сажаем
// 1 - Яблочный мак 12
// 2 - Клевер 1
// 3 - Черника 4
// 4 - Тыквахелл 2
// 5 - Мак 6
// 6 - Гипносолнух 24
// 7 - Рожь 12
// 8 - Баклажан 8
// 9 - Кукуруза 4
// 10 - Росянка дикая 24
// 11 - Бамбук 16
// 12 - Смородина 10
// 13 - Пожсолнух 4
// 14 - Горох 8
// 15 - Перец чили 12
// 16 - Костируза 32
// 17 - Лилия 24
// 18 - Кактус 10
// 19 - Малина 12
// 20 - Чеснок 8
// 21 - Алые розы 8
// 22 - Мухомор 12
// 23 - Арбуз 16
// 24 - Лук 6
// 25 - Помидоры 8
// 26 - Глазной горох 32
// 27 - Тыква 16
// 28 - Волчья ягода 24
// 29 - Сон-трава
// 30 - Клубника
// 31 - Чёрная рука
// 32 - Капуста
// 33 - Костяная нога
// 34 - Ананас
// 35 - Белая рука
// 36 - Картошка
// 37 - Виноград
// 38 - Мозговница
// 39 - Тростник
// 40 - Рамбутан
//////////////////////////////////////////
//===== ПРОГРАММА ==============================================================
WAITMS(500)
$opred = 0
$vX = 0
$vY = 0
$ini_posadka=1
$zoom = 0
$sound = 1
$sboi = 0
IF(($window = 1) & ($full_screen = 1))
$sboi = 0
$full_screen = 0
HINTPOPUP("Полноэкранный режим невозможен!")
LOGWRITE("Полноэкранный режим невозможен!")
WAIT(1)
HINTPOPUP("Включен оконный режим.")
END_IF
IF(($semena > 0) & ($semena < 41)) // главная проверка сажаем или нет
//GOSUB(инициализация_семян)
ELSE
$semena = 0
HINTPOPUP("Ничего не сажаем!")
LOGWRITE("Ничего не сажаем!")
HALT
END_IF
IF($opred = 0)
GOSUB(Опр_полож_экрана)
WAITMS(500)
END_IF
//==============================================================================
// элвисы
MOVE($park_x, $park_y) //паркуемся
WAITMS(100)
GETSCREEN
IF_PICTURE_IN ($xres1,$yres1,$xres2,$yres2, "textures\elvisi_car.bmp",-1,95)
$elvis_x=$_return1
$elvis_y=$_return2
LOGWRITE("elvis_x=",$elvis_x," elvis_y=",$elvis_y)
IF(($elvis_x+70>$xres2) | ($elvis_x-60<$xres1) | ($elvis_y+59>$yres2) | ($elvis_y-19<$yres1))
LOGWRITE ("Бригада Элвисов близко к краю экрана")
HALT
END_IF
ELSE
LOGWRITE ("Бригаду Элвисов не нашёл")
HALT
END_IF
elvis_start:
//LOGWRITE ("переход на elvis_start")
MOVE($park_X,$park_Y) //паркуемся
WAITMS(100)
GETSCREEN
IF_PICTURE_IN ($vX+197,$vY+328+$sdvigY,$vX+213,$vY+336+$sdvigY, "textures\elvisi_soobshenie.bmp")
LDOWN($vX+700,$vY+400) // убираем предупреждение коллекция
WAITMS(100)
LUP($vX+700,$vY+400)
WAITMS(500)
MOVE($park_X,$park_Y) //паркуемся
WAITMS(500)
GETSCREEN
END_IF
IF_PICTURE_IN ($elvis_x-17,$elvis_y+39,$elvis_x-6,$elvis_y+48, "textures\elvisi_handle.bmp",-1,95)
ELSE
IF_PIXEL_IN ($elvis_x-20,$elvis_y+44, $elvis_x-6,$elvis_y+59, 721153)
LOGWRITE ("вижу 1")
IF_PIXEL_IN ($elvis_x-60,$elvis_y+22, $elvis_x-44,$elvis_y+38, 721153)
LOGWRITE ("вижу 2")
IF_PIXEL_IN ($elvis_x+20,$elvis_y-19, $elvis_x+32,$elvis_y-7, 721153)
LOGWRITE ("вижу 3")
IF_PIXEL_IN ($elvis_x+58,$elvis_y-2, $elvis_x+70,$elvis_y+13, 721153)
LOGWRITE ("вижу 4")
MOVE($elvis_x,$elvis_y)
WAITMS(150)
LDOWN($elvis_x,$elvis_y) // открываем меню бригады
WAITMS(100)
LUP($elvis_x,$elvis_y)
WAITMS(300)
MOVE($park_X,$park_Y) //паркуемся
WAITMS(400)
GETSCREEN
IF_PICTURE_IN ($xres1,$yres1,$xres2,$yres2, "textures\domoy.bmp")
MOVE($_return1+8,$_return2+6)
WAITMS(150)
LDOWN($_return1+8,$_return2+6) // кликаем домой
WAITMS(100)
LUP($_return1+8,$_return2+6)
WAIT(2)
ELSE
WAIT($elvis_wait1)
GOTO(elvis_start)
END_IF
ELSE
WAIT($elvis_wait1)
GOTO(elvis_start)
END_IF
ELSE
WAIT($elvis_wait1)
GOTO(elvis_start)
END_IF
ELSE
WAIT($elvis_wait1)
GOTO(elvis_start)
END_IF
ELSE
WAIT($elvis_wait1)
GOTO(elvis_start)
END_IF
END_IF
// собираем
MOVE($elvis_x,$elvis_y)
WAITMS(150)
LDOWN($elvis_x,$elvis_y) // открываем меню бригады
WAITMS(100)
LUP($elvis_x,$elvis_y)
WAITMS(300)
MOVE($park_X,$park_Y) //паркуемся
WAITMS(400)
GETSCREEN
IF_PICTURE_IN ($xres1,$yres1,$xres2,$yres2, "textures\elvisi_meshok.bmp")
$meshok_x=$_return1
$meshok_y=$_return2
ELSE
LOGWRITE ("Сбой! Не вижу меню бригады.")
GOTO(elvis_start)
END_IF
MOVE($meshok_x,$meshok_y)
WAITMS(150)
LDOWN($meshok_x,$meshok_y) // кликаем собрать
WAITMS(100)
LUP($meshok_x,$meshok_y)
WAIT(2)
GETSCREEN
IF_PICTURE_IN ($vX+197,$vY+328+$sdvigY,$vX+213,$vY+336+$sdvigY, "textures\elvisi_soobshenie.bmp")
LDOWN($_return1+168,$_return2+128) // убираем предупреждение
WAITMS(100)
LUP($_return1+168,$_return2+128)
WAIT(1)
ELSE
WAIT($elvis_wait3)
GOTO(elvis_start)
END_IF
// вскапываем
MOVE($elvis_x,$elvis_y)
WAITMS(150)
LDOWN($elvis_x,$elvis_y) // открываем меню бригады
WAITMS(100)
LUP($elvis_x,$elvis_y)
WAITMS(300)
MOVE($park_X,$park_Y) //паркуемся
WAITMS(400)
MOVE($meshok_x,$meshok_y+32)
WAITMS(150)
LDOWN($meshok_x,$meshok_y+32) // кликаем вскопать
WAITMS(100)
LUP($meshok_x,$meshok_y+32)
WAIT(2)
GETSCREEN
IF_PICTURE_IN ($vX+197,$vY+328+$sdvigY,$vX+213,$vY+336+$sdvigY, "textures\elvisi_soobshenie.bmp")
LDOWN($_return1+168,$_return2+128) // убираем предупреждение
WAITMS(100)
LUP($_return1+168,$_return2+128)
WAIT(1)
ELSE
WAIT($elvis_wait3)
GOTO(elvis_start)
END_IF
// сажаем
MOVE($elvis_x,$elvis_y)
WAITMS(150)
LDOWN($elvis_x,$elvis_y) // открываем меню бригады
WAITMS(100)
LUP($elvis_x,$elvis_y)
WAITMS(300)
MOVE($park_X,$park_Y) //паркуемся
WAITMS(400)
MOVE($meshok_x,$meshok_y+96)
WAITMS(150)
LDOWN($meshok_x,$meshok_y+96) // кликаем посадить все
WAITMS(100)
LUP($meshok_x,$meshok_y+96)
WAITMS(2000)
GOSUB(инициализация_посадки) // выбираем что сажать
WAIT(2)
GETSCREEN
IF_PICTURE_IN ($vX+197,$vY+328+$sdvigY,$vX+213,$vY+336+$sdvigY, "textures\elvisi_soobshenie.bmp")
LDOWN($_return1+168,$_return2+128) // убираем предупреждение
WAITMS(100)
LUP($_return1+168,$_return2+128)
WAIT($elvis_wait2)
ELSE
WAIT($elvis_wait4)
END_IF
GOTO(elvis_start)
//==============================================================================
SUB(Опр_полож_экрана) //== ОПРЕДЕЛЯЮ ПОЛОЖЕНИЕ ЭКРАНА ==========================
pol_screen:
MOVE($_xmax,$_ymax) //паркуемся
WAITMS(100)
GETSCREEN
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "textures\ZF_BOT_Screen2.bmp")
$vX = $_return1-19 // координаты начальные (основные)
$vY = $_return2-13
LOGWRITE("монета x:",$_return1," монета y:",$_return2)
LOGWRITE("vX: ",$vX," vY: ",$vY)
$hwnd = hget($vX+380,$vY+365)
IF ($full_screen = 0)
$hwndbr = hget($vX+380,$vY-60)
END_IF
$opred = 1
ELSE
// IF(($sboi > 0) & ($reload = 1))
// GOSUB(перезагрузка)
// ELSE
LOGWRITE("Игра не найдена!")
HINTPOPUP("Игра не найдена!")
HALT
// END_IF
END_IF
IF_PICTURE_IN ($vX,$vY, $_xmax, $_ymax, "textures\sklad.bmp")
$skladX=$_return1-36 // координаты склада
$skladY=$_return2+2
$krayY=$_return2+37 // нижний край абсолютный
$rinokX=$_return1-33 // координаты рынка
$rinokY=$_return2-48
$park_X=$vX+12 // задаём основную парковку
$park_Y=$krayY-100
$friendsMAXleft_X=$_return1-693 // друзья влево максимум
$friendsMAXleft_Y=$_return2+14
$friendsright_X=$_return1-207 // друзья вправо на 1
$friendsright_Y=$_return2-40
$panelupravl_X=$_return1-57 // панель управления
$panelupravl_Y=$_return2-102
ELSE
HINTPOPUP("Не нашел иконку склада! Не откалибровал высоту.")
HALT
END_IF
IF_PICTURE_IN (0,$vY,$vX+60,$krayY, "textures\gift_out.bmp")
$kray_lX=$_return1-38 // левый край абсолютный
$kray_rX=(($vX+380)-$kray_lX)*2+$kray_lX // правый край абсолютный
ELSE
HINTPOPUP("Не нашел иконку подарить! Не откалибровал ширину.")
HALT
END_IF
$keyzoomX=$kray_rX-150 // координаты режима экрана
$keyzoomY=$vY+158
$doppanel_off_X=$kray_rX-216 // коорд. свернуть доп. панель
$doppanel_off_Y=$vY+158
$doppanel_on_X=$kray_rX-55 // коорд. развернуть доп. панель
$doppanel_on_Y=$vY+158
IF($VKontakte=1)
$keyzoomX=$keyzoomX-33
$doppanel_off_X=$doppanel_off_X-33
END_IF
IF((PXL($doppanel_off_X,$doppanel_off_Y) = 3160910) | (PXL($doppanel_off_X+5,$doppanel_off_Y) = 3160910)) // проверка панели управления
ELSE
LDOWN($doppanel_on_X,$doppanel_on_Y) // разворачиваем если нет
WAITMS(100)
LUP($doppanel_on_X,$doppanel_on_Y)
WAITMS(800)
GETSCREEN
END_IF
IF($full_screen = 0) //==проверяем правильность НЕ полноэкранного режима
IF (PXL($keyzoomX,$keyzoomY) = 6213887)
LDOWN($keyzoomX,$keyzoomY)
WAITMS(100)
LUP($keyzoomX,$keyzoomY)
WAITMS(2000)
GOTO(pol_screen:)
ELSE
$xres1 = $kray_lX+90 // задаём рабочее окно для поиска,сборов и т.д.
$yres1 = $vY+99
$xres2 = $kray_rX // -74
$yres2 = $krayY-170
$sdvigX = 0 // сдвиг для НЕ полноэкранного режима
$sdvigY = INT(($krayY-$vY-729)/2)
END_IF
END_IF
IF($full_screen = 1) //==проверяем правильность полноэкранного режима
IF (PXL($keyzoomX,$keyzoomY) ! 6213887)
LDOWN($keyzoomX,$keyzoomY)
WAITMS(100)
LUP($keyzoomX,$keyzoomY)
WAITMS(2000)
GOTO(pol_screen:)
ELSE
$kray_rX = $_xmax
$krayY = $_ymax
$xres1 = 1+90 // задаём рабочее окно для поиска,сборов и т.д.
$yres1 = 1+99
$xres2 = $_xmax // -74
$yres2 = $_ymax-170
$sdvigX = 0 // сдвиг для полноэкранного режима
$sdvigY = INT(($_ymax-729)/2)
END_IF
END_IF
LOGWRITE("kray_lX=",$kray_lX)
LOGWRITE("kray_rX=",$kray_rX)
LOGWRITE("krayY=",$krayY)
LOGWRITE("sdvigY=",$sdvigY)
LOGWRITE("park_X=",$park_X,", park_Y=",$park_Y)
LOGWRITE("xres1=",$xres1,", yres1=",$yres1)
LOGWRITE("xres2=",$xres2,", yres2=",$yres2)
LOGWRITE(" ")
// $zoom_max=0
// FOR($zoom_max, $zoom_max<4) // масштаб на самый крупный
// LCLICK($keyzoomX+33,$keyzoomY)
// WAITMS(100)
// END_CYC
//
// IF($zoom = 0) // масштаб 0
// $setka = 32
// $size = 30
// END_IF
//
// IF($zoom = 1) // масштаб -1
// $setka = 26
// $size = 24
// WAITMS(100)
// LCLICK($keyzoomX+66,$keyzoomY)
// WAITMS(500)
// END_IF
//
// IF($zoom = 2) // масштаб -2
// $setka = 19
// $size = 18
// WAITMS(100)
// LCLICK($keyzoomX+66,$keyzoomY)
// WAITMS(500)
// LCLICK($keyzoomX+66,$keyzoomY)
// WAITMS(500)
// END_IF
//
// IF($zoom = 3) // масштаб -3
// $setka = 13
// $size = 12
// WAITMS(100)
// LCLICK($keyzoomX+66,$keyzoomY)
// WAITMS(500)
// LCLICK($keyzoomX+66,$keyzoomY)
// WAITMS(500)
// LCLICK($keyzoomX+66,$keyzoomY)
// WAITMS(500)
// END_IF
LDOWN($doppanel_off_X,$doppanel_off_Y) // свернули доп. панель
WAITMS(100)
LUP($doppanel_off_X,$doppanel_off_Y)
WAITMS(300)
// IF($reload = 1)
// WAIT(5)
// // Перезагрузка: Этап 3 ожидание загрузки друзей
// $wait_screen = 1
// WHILE($wait_screen = 1)
// GOSUB(любые_диалоги)
// GETSCREEN
// IF_PICTURE_IN(1,1,$_xmax,$_ymax, "Textures\ZF_BOT_Screen3.bmp")
// WAITMS (1000)
// HINTPOPUP("Ожидание загрузки друзей", "Сообщение")
// GOSUB(проверка)
// ELSE
// $wait_screen = 0
// $wait_time = 0
// HINTPOPUP("Друзья загружены", "Сообщение")
// WAIT (3)
// END_IF
// END_CYC
//
// GOSUB(проверка)
// GOSUB(любые_диалоги)
// GOSUB(обновление)
// GOSUB(проверка)
// LCLICK($vX+700,$vY+400) // убираем рекламу
// WAITMS(600)
// MOVE($park_X,$park_Y) //паркуемся
// WAITMS(300)
// GETSCREEN
// IF((PXL($doppanel_off_X,$doppanel_off_Y) = 3160910) | (PXL($doppanel_off_X+5,$doppanel_off_Y) = 3160910)) // проверка панели управления
// ELSE
// LCLICK($doppanel_on_X,$doppanel_on_Y) // разворачиваем если нет
// WAITMS(400)
// END_IF
//
// // Домашний остров
// IF(($sboi = 1) & ($reload = 1))
// WAITMS(600)
// LDOWN($vX+638,$vY+419)
// WAITMS(200)
// MOVE($vX+567,$vY+373)
// WAITMS(200)
// LUP($vX+567,$vY+373)
// $reload = 0
// END_IF
// // остров любви или остров X
// IF(($sboi = 2) & ($reload = 1))
// LDOWN($vX+695,$vY+386)
// WAITMS(200)
// MOVE($vX+218,$vY+359)
// WAITMS(200)
// LUP($vX+218,$vY+359)
// $reload = 0
// END_IF
// // остров майя или альфа или омега
// IF(($sboi = 3) & ($reload = 1))
// LDOWN($vX+632,$vY+335)
// WAITMS(200)
// MOVE($vX+400,$vY+334)
// WAITMS(200)
// LUP($vX+400,$vY+334)
// $reload = 0
// END_IF
// // остров Веры
// IF(($sboi = 4) & ($reload = 1))
// LDOWN($vX+696,$vY+404)
// WAITMS(200)
// MOVE($vX+209,$vY+327)
// WAITMS(200)
// LUP($vX+209,$vY+327)
// $reload = 0
// END_IF
// // остров Надежды или Страшный остров
// IF(($sboi = 5) & ($reload = 1))
// LDOWN($vX+673,$vY+519)
// WAITMS(200)
// MOVE($vX+327,$vY+466)
// WAITMS(200)
// LUP($vX+327,$vY+466)
// $reload = 0
// END_IF
// // Секретный остров
// IF(($sboi = 6) & ($reload = 1))
// LDOWN($vX+676,$vY+348)
// WAITMS(200)
// MOVE($vX+455,$vY+329)
// WAITMS(200)
// LUP($vX+455,$vY+329)
// $reload = 0
// END_IF
// // мобильный
// IF(($sboi = 7) & ($reload = 1))
// LDOWN($vX+512,$vY+379)
// WAITMS(200)
// MOVE($vX+483,$vY+526)
// WAITMS(200)
// LUP($vX+483,$vY+526)
// $reload = 0
// END_IF
//
// WAITMS(1000)
// $reload = 0
// $check_human = 0
// $check_human2 = 0
// LOGWRITE("Игра перезагружена")
// END_IF
// IF(($mozg1 = 0) & ($mozg2 = 0) & ($mozg3 = 0) & ($mozg4 = 0))
// $mozgokop = 0
// LOGWRITE("Мозги не закапываем")
// ELSE
// GOSUB(ini_mozgokop)
// END_IF
MOVE($park_X,$park_Y) //паркуемся
END_SUB
//==============================================================================
SUB(инициализация_посадки) //======== инициализация_посадки ====================
$sempage=1
$semline=1
$sempoz=$semena
WHILE($sempoz > 8)
$sempage=$sempage+1
$sempoz=$sempoz-8
END_CYC
IF ($sempoz > 4)
$semline=2
$sempoz=$sempoz-4
END_IF
ini_posadka:
MOVE($park_X,$park_Y) //паркуемся
WAITMS(300)
GETSCREEN
IF((PXL($vX+100,$vY+86+$sdvigY)!3094591) & (PXL($vX+120,$vY+86+$sdvigY)!3094591)) // переключаемся на вкладку семена
LCLICK($vX+105,$vY+95+$sdvigY)
WAITMS(300)
END_IF
MOVE($park_X,$park_Y) //паркуемся
WAITMS(100)
GETSCREEN
IF((PXL($vX+100,$vY+86+$sdvigY)=3094591) & (PXL($vX+120,$vY+86+$sdvigY)=3094591)) // найдена вкладка семена
LCLICK($vX+287+(36*($sempage-1)),$vY+697+$sdvigY) // выбор страницы
WAITMS(500)
LCLICK($vX+118+(174*($sempoz-1)),$vY+390+$sdvigY+(260*($semline-1))) // купить семена
WAITMS(500)
ELSE // не находит семян ни вкл ни выкл
//GOSUB(проверка)
LOGWRITE ("ждём семена")
GOTO(ini_posadka)
END_IF
$ini_posadka=0
END_SUB
//==============================================================================
|
|
|
10.11.2014, 00:20
|
#3559
|
|
|
|
Разведчик
|
 Регистрация: 25.02.2013
 Сообщений: 1
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
10.11.2014, 00:55
|
#3560
|
|
|
|
Разведчик
|
 Регистрация: 04.02.2013
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
ребят ! в чем трабла? бот не работает(
[/PHP]
|
|
 |
|
 |
|
Винт придет, порядок в боте наведёт 
А вобщем я пришел с таким вопросом.
Очень нужна фишка для крафта яиц в Гнезде
Есть вот такое
PHP код:
# coding=utf-8
import logging
from game_state.game_types import GameWoodGrave, GameWoodGraveDouble, GamePickItem, GameWoodTree, GameStone, GameGainItem, GamePickup, GameState
from game_state.game_event import dict2obj, obj2dict
from game_actors_and_handlers.base import BaseActor
logger = logging.getLogger(__name__)
class EggTermo(BaseActor):
def perform_action(self):
if self._get_game_state().get_state().gameMoney < 1900000000:
current_loc = self._get_game_state().get_location_id()
location_id = "isle_dream"
if current_loc == location_id:
craft = "4"
exchange = self._get_item_reader().get("B_TREE_HOUSE").crafts
for one_item in exchange:
if one_item.id == craft:
rose = one_item.materials[0].item
rose_count = one_item.materials[0].count
lily = one_item.materials[1].item
lily_count = one_item.materials[1].count
result = one_item.resultCount
storage = self._get_game_state().get_state().storageItems
for item in storage:
if hasattr(item, "item"):
if item.item == rose:
storage_rose = item.count
elif item.item == lily:
storage_lily = item.count
for item in self._get_game_state().get_state().gameObjects:
if item.item == "@B_TREE_HOUSE":
o_id = item.id
for _ in range(200000):
event = {"itemId":craft,"objId":o_id,"action":"craft","type":"item"}
logger.info(u"Создаём Термо-яйцо")
self._get_events_sender().send_game_events([event])
self._get_game_state().remove_from_storage(rose, rose_count)
storage_rose -= rose_count
logger.info(u"Осталось %d волчий штык", storage_rose)
Но оно работает медленно и когда кончаются рессы вылетает.
Ни у кого нет с проверкой колличества на складе?
|
|
|
10.11.2014, 17:06
|
#3561
|
|
|
|
Разведчик
|
 Регистрация: 17.02.2014
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
10.11.2014, 20:26
|
#3562
|
|
|
|
Разведчик
|
 Регистрация: 17.02.2014
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Последний раз редактировалось GirlKris; 11.11.2014 в 11:19.
|
|
|
10.11.2014, 20:31
|
#3563
|
|
|
|
Разведчик
|
 Регистрация: 25.07.2014
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Писал и ранее никто не откликнулся и не пофиксили так что надеюсь на лучшее)
|
|
|
10.11.2014, 23:32
|
#3564
|
|
|
|
Разведчик
|
 Регистрация: 09.07.2011
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
в чем проблема почему он не хочет вырубать ресурсы в кристальном гроте?
PHP код:
# coding=utf-8
import logging
from game_state.game_types import GameWoodGrave, GameWoodGraveDouble,\
GamePickItem, GameWoodTree, GameStone, GameGainItem, GamePickup
from game_state.game_event import dict2obj, obj2dict
from game_actors_and_handlers.base import BaseActor
logger = logging.getLogger(__name__)
class PirateTreeCut(BaseActor):
def get_object_type(self):
return "chop"
def perform_action(self):
options = [
u'вскрытие сокровищ'
]
resources = self._get_game_location().get_all_objects_by_type(
self.get_object_type()
)
enemies = self._get_game_location().get_all_objects_by_type("pirateEnemy")
# пиратские острова : Остров сокровищ , Таинственный , Жуткий , Северный полюс , Остров сокровищ , Древний
pirate_locs_id = ["exploration_isle1_random","exploration_isle2_random","exploration_isle3_random","exploration_snow1","exploration_isle1_1","exploration_isle4_random","exploration_helloween"]
instruments = [] # переменная для инструментов
_loc = self._get_game_state().get_game_loc().get_location_id() # текущая локация
if resources:
if _loc not in pirate_locs_id:
st_items = self._get_game_state().get_state().storageItems # Предметы на складе
for item in list(st_items):
if hasattr(item, "item"):
if item.item == ('@CHOP_MACHETE'): #мачете
instruments.append(dict2obj({"item":"@CHOP_MACHETE", "count": item.count}))
if item.item == ('@CHOP_AXE'): #топор
instruments.append(dict2obj({"item":"@CHOP_AXE", "count": item.count}))
if item.item == ('@CHOP_HAMMER'): #кирка
instruments.append(dict2obj({"item":"@CHOP_HAMMER", "count": item.count}))
if item.item == ('@CHOP_TRIDENT'): #Трезубец
instruments.append(dict2obj({"item":"@CHOP_TRIDENT", "count": item.count}))
else: instruments = self._get_game_state().get_state().pirate.instruments
resources_dict = {resource : resource.x for resource in resources}
resources_order = resources_dict.items() # ресурсы отсортированные по X
resources_order.sort(key=lambda x: x[::-1], reverse=True)
#print resources_order
for resource in resources_order:
resource = resource[0]
#print 'resource ', resource,' ', resource.x
#print obj2dict(resource)
tool_needed = resource.chopCount
type_of_res = resource.item
type_of_instrument = self._get_item_reader().get(type_of_res).chopInstrumentType
for tool in instruments:
#print "self._get_item_reader().get(tool.item).chopInstrumentType", self._get_item_reader().get(tool.item).chopInstrumentType
#print "type_of_instrument", type_of_instrument
if self._get_item_reader().get(tool.item).chopInstrumentType == type_of_instrument and tool.count >= tool_needed:
enemy_here = 0
if enemies:
for enemy in enemies:
if(((enemy.x - resource.x)**2+(enemy.y - resource.y)**2)**0.5 < 16):
enemy_here = 1
break
if(enemy_here == 1):
self._get_game_location().remove_object_by_id(resource.id)
logger.info("Сильвер мешает вырубке "+str(resource.id))
break
#print 'tool.count ', tool.count, ', tool_needed ', tool_needed
if tool_needed == 100:
tool_needed = 50
print 'tool_needed Set 50'
#print "resource ", str(obj2dict(resource))
gain_event = {"type":"chop","objId":resource.id,"instruments":{self._get_item_reader().get(tool.item).id:tool_needed},"action":"chop"}
logger.info(u"Рубим " + str(type_of_instrument)+u' instruments:'+str(self._get_item_reader().get(tool.item).id)+', '+str(tool_needed)+u'L, id '+str(gain_event['objId']))
self._get_events_sender().send_game_events( [gain_event] )
if resource.chopCount == tool_needed:
self._get_game_location().remove_object_by_id(resource.id)
else:
resource.chopCount -= tool_needed
tool.count -= tool_needed
break
else:
logger.info("Не осталось ресурсов для добычи")
if u'вскрытие сокровищ' in options:
resources = self._get_game_location().get_all_objects_by_type("pirateCaptureObject")
if resources:
for resource in resources:
enemy_here = 0
if enemies:
for enemy in enemies:
if(((enemy.x - resource.x)**2+(enemy.y - resource.y)**2)**0.5 < 15):
enemy_here = 1
break
if(enemy_here == 1):
self._get_game_location().remove_object_by_id(resource.id)
logger.info("Сильвер мешает взять "+str(resource.id))
continue
gain_event = {"type":"pirateCapture","objId":resource.id,"action":"capture"}
print gain_event
logger.info("Открываем " + str(resource.id))
self._get_events_sender().send_game_events( [gain_event] )
self._get_game_location().remove_object_by_id(resource.id)
else:
logger.info("Нет неоткрытых сокровищ")
if not enemies:
open('.\counts\\SilverHit.txt','w').write('')
for object in self._get_game_location().get_game_objects():
if object.type == 'pirateEnemy':
hitsilver = open('.\counts\\SilverHit.txt','r').read()
if not str(object.id) in hitsilver:
gain_event = {"action":"hit","objId":object.id,"type":"pirateEnemy"}
open('.\counts\\SilverHit.txt','a').write(str(object.id)+',')
self._get_events_sender().send_game_events( [gain_event] )
counthealt = object.health-1
self.cprint(u'5БЬЮ СИЛЬВЕРА^7_id:%s^2_осталось добить^6_%d^2_раза'%(str(object.id),counthealt))
|
|
|
11.11.2014, 00:56
|
#3565
|
|
|
|
Разведчик
|
 Регистрация: 19.05.2013
 Сообщений: 1
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
в чем проблема почему он не хочет вырубать ресурсы в кристальном гроте?
PHP код:
# coding=utf-8
import logging
from game_state.game_types import GameWoodGrave, GameWoodGraveDouble,\
GamePickItem, GameWoodTree, GameStone, GameGainItem, GamePickup
from game_state.game_event import dict2obj, obj2dict
from game_actors_and_handlers.base import BaseActor
logger = logging.getLogger(__name__)
class PirateTreeCut(BaseActor):
def get_object_type(self):
return "chop"
def perform_action(self):
options = [
u'вскрытие сокровищ'
]
resources = self._get_game_location().get_all_objects_by_type(
self.get_object_type()
)
enemies = self._get_game_location().get_all_objects_by_type("pirateEnemy")
# пиратские острова : Остров сокровищ , Таинственный , Жуткий , Северный полюс , Остров сокровищ , Древний
pirate_locs_id = ["exploration_isle1_random","exploration_isle2_random","exploration_isle3_random","exploration_snow1","exploration_isle1_1","exploration_isle4_random","exploration_helloween"]
instruments = [] # переменная для инструментов
_loc = self._get_game_state().get_game_loc().get_location_id() # текущая локация
if resources:
if _loc not in pirate_locs_id:
st_items = self._get_game_state().get_state().storageItems # Предметы на складе
for item in list(st_items):
if hasattr(item, "item"):
if item.item == ('@CHOP_MACHETE'): #мачете
instruments.append(dict2obj({"item":"@CHOP_MACHETE", "count": item.count}))
if item.item == ('@CHOP_AXE'): #топор
instruments.append(dict2obj({"item":"@CHOP_AXE", "count": item.count}))
if item.item == ('@CHOP_HAMMER'): #кирка
instruments.append(dict2obj({"item":"@CHOP_HAMMER", "count": item.count}))
if item.item == ('@CHOP_TRIDENT'): #Трезубец
instruments.append(dict2obj({"item":"@CHOP_TRIDENT", "count": item.count}))
else: instruments = self._get_game_state().get_state().pirate.instruments
resources_dict = {resource : resource.x for resource in resources}
resources_order = resources_dict.items() # ресурсы отсортированные по X
resources_order.sort(key=lambda x: x[::-1], reverse=True)
#print resources_order
for resource in resources_order:
resource = resource[0]
#print 'resource ', resource,' ', resource.x
#print obj2dict(resource)
tool_needed = resource.chopCount
type_of_res = resource.item
type_of_instrument = self._get_item_reader().get(type_of_res).chopInstrumentType
for tool in instruments:
#print "self._get_item_reader().get(tool.item).chopInstrumentType", self._get_item_reader().get(tool.item).chopInstrumentType
#print "type_of_instrument", type_of_instrument
if self._get_item_reader().get(tool.item).chopInstrumentType == type_of_instrument and tool.count >= tool_needed:
enemy_here = 0
if enemies:
for enemy in enemies:
if(((enemy.x - resource.x)**2+(enemy.y - resource.y)**2)**0.5 < 16):
enemy_here = 1
break
if(enemy_here == 1):
self._get_game_location().remove_object_by_id(resource.id)
logger.info("Сильвер мешает вырубке "+str(resource.id))
break
#print 'tool.count ', tool.count, ', tool_needed ', tool_needed
if tool_needed == 100:
tool_needed = 50
print 'tool_needed Set 50'
#print "resource ", str(obj2dict(resource))
gain_event = {"type":"chop","objId":resource.id,"instruments":{self._get_item_reader().get(tool.item).id:tool_needed},"action":"chop"}
logger.info(u"Рубим " + str(type_of_instrument)+u' instruments:'+str(self._get_item_reader().get(tool.item).id)+', '+str(tool_needed)+u'L, id '+str(gain_event['objId']))
self._get_events_sender().send_game_events( [gain_event] )
if resource.chopCount == tool_needed:
self._get_game_location().remove_object_by_id(resource.id)
else:
resource.chopCount -= tool_needed
tool.count -= tool_needed
break
else:
logger.info("Не осталось ресурсов для добычи")
if u'вскрытие сокровищ' in options:
resources = self._get_game_location().get_all_objects_by_type("pirateCaptureObject")
if resources:
for resource in resources:
enemy_here = 0
if enemies:
for enemy in enemies:
if(((enemy.x - resource.x)**2+(enemy.y - resource.y)**2)**0.5 < 15):
enemy_here = 1
break
if(enemy_here == 1):
self._get_game_location().remove_object_by_id(resource.id)
logger.info("Сильвер мешает взять "+str(resource.id))
continue
gain_event = {"type":"pirateCapture","objId":resource.id,"action":"capture"}
print gain_event
logger.info("Открываем " + str(resource.id))
self._get_events_sender().send_game_events( [gain_event] )
self._get_game_location().remove_object_by_id(resource.id)
else:
logger.info("Нет неоткрытых сокровищ")
if not enemies:
open('.\counts\\SilverHit.txt','w').write('')
for object in self._get_game_location().get_game_objects():
if object.type == 'pirateEnemy':
hitsilver = open('.\counts\\SilverHit.txt','r').read()
if not str(object.id) in hitsilver:
gain_event = {"action":"hit","objId":object.id,"type":"pirateEnemy"}
open('.\counts\\SilverHit.txt','a').write(str(object.id)+',')
self._get_events_sender().send_game_events( [gain_event] )
counthealt = object.health-1
self.cprint(u'5БЬЮ СИЛЬВЕРА^7_id:%s^2_осталось добить^6_%d^2_раза'%(str(object.id),counthealt))
|
|
 |
|
 |
|
ошибка есть какая то?
|
|
|
11.11.2014, 04:18
|
#3566
|
|
|
|
Разведчик
|
 Регистрация: 23.08.2013
 Сообщений: 1
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
11.11.2014, 09:15
|
#3567
|
|
|
|
Разведчик
|
 Регистрация: 09.07.2011
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Последний раз редактировалось Miha88; 11.11.2014 в 09:35.
Причина: Добавлено сообщение
|
|
|
11.11.2014, 09:40
|
#3568
|
|
|
|
Пехотинец
|
 Регистрация: 01.08.2012
 Сообщений: 95
 Популярность: 255
 Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось vintets; 11.11.2014 в 09:49.
Причина: Добавлено сообщение
|
|
|
11.11.2014, 15:05
|
#3569
|
|
|
|
Разведчик
|
 Регистрация: 23.08.2013
 Сообщений: 1
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
11.11.2014, 15:29
|
#3570
|
|
|
|
Разведчик
|
 Регистрация: 17.02.2014
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
в чем проблема почему он не хочет вырубать ресурсы в кристальном гроте?
|
|
 |
|
 |
|
Убрать "exploration_helloween" из списка pirate_locs_id
Код:
else: instruments = self._get_game_state().get_state().pirate.instruments
сдвинуть влево на 2 пробела
Последний раз редактировалось GirlKris; 11.11.2014 в 15:35.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 02:37.
|
 |