Code: Select all
# -*- coding: mbcs -*-
print("---------- LOADING ----------")
from hungry import Hungry
from checksave import CheckSave
from checkdead import CheckDead
from datetime import timedelta, datetime as dt
from time import sleep
print("========== RUNNING ==========")
tFryPan = 0x097f
tRawSteak = 0x097a
tCookSteak = 0x097b
raw_pickup = 350
totalDone = 0
hungryTimer = dt.now()
def FoodStack(obj_type,x=0,y=0,color=-1):
if not x:
x = GetX(Self())
if not y:
y = GetY(Self())
if not FindTypeEx(obj_type,color,Backpack(),False):
return 0
item_to_drop = FindItem()
amt = FindQuantity()
if amt == 60000:
Drop(item_to_drop,amt,x,y,0)
CheckLag(100000)
FoodStack(obj_type,x,y,color)
return 1
else:
while 1:
if FindTypeEx(obj_type,color,Ground(),False):
if FindQuantity() == 60000:
Ignore(FindItem())
elif GetX(FindItem()) != x or GetY(FindItem()) != y:
Ignore(FindItem())
else:
if amt <= (60000-FindQuantity()):
ts = dt.now()
MoveItem(item_to_drop,0,FindItem(),0,0,0)
sleep(0.2)
CheckLag(100000)
if InJournalBetweenTimes('not add item', ts, dt.now()) > 0:
Ignore(FindItem())
FoodStack(obj_type,x,y,color)
return 1
else:
diff = 60000 - FindQuantity()
MoveItem(item_to_drop,diff,FindItem(),0,0,0)
sleep(0.2)
CheckLag(100000)
if InJournalBetweenTimes('not add item', ts, dt.now()) > 0:
Ignore(FindItem())
FoodStack(obj_type,x,y,color)
return 1
else:
Drop(item_to_drop,amt,x,y,0)
sleep(0.2)
CheckLag(100000)
FoodStack(obj_type,x,y,color)
return 1
return 1
def CheckTools():
if not FindType(tFryPan,Backpack()):
if not FindType(tFryPan,-1):
print ("Сковородочка куда-то закатилась... Не могу жарить!")
exit
else:
myFryPan = FindItem()
CheckSave()
Grab(myFryPan,1)
sleep(0.2)
CheckLag(60000)
print ("О! Сковородочка нашлась :)")
return 1
def CheckSteaks():
if not FindType(tRawSteak,Backpack()):
if not FindType(tRawSteak,Ground()):
print ("No raw steaks left")
exit
else:
if (FindQuantity() >= raw_pickup):
CheckSave()
Grab(FindItem(),raw_pickup)
sleep(0.2)
CheckLag(60000)
else:
CheckSave()
Grab(FindItem(),FindQuantity())
sleep(0.2)
CheckLag(60000)
CheckSteaks()
return 1
else:
amt = FindFullQuantity()
diff = raw_pickup - amt
if FindCount() > 1:
from_to = FindCount()
for i in range(1,from_to):
CheckSave()
Grab(FindType(tRawSteak,Backpack()),0)
CheckLag(60000)
if amt > 25: # если в сумке чо-то есть, то продолжаем готовить, ничо не дергая
return 1
while amt < raw_pickup:
CheckDead()
CheckSave()
if not FindType(tRawSteak,Ground()):
print ("No raw steaks left")
if amt > 25:
return 1
else:
exit
else:
if (FindQuantity() >= diff):
CheckSave()
Grab(FindItem(),diff)
sleep(0.2)
CheckLag(60000)
break
else:
CheckSave()
Grab(FindItem(),FindQuantity())
diff -= FindQuantity()
amt += FindQuantity()
sleep(0.2)
CheckLag(60000)
return 1
def InBetween(valueAmt,valueFrom,valueTo):
if valueAmt >= valueFrom and valueAmt < valueTo:
return True
else:
return False
def Cook():
cookingSkill = GetSkillValue('Cooking')
lvl = 'cooked fishsteak'
if InBetween(cookingSkill,20,35): # skill 30
lvl += ''
if InBetween(cookingSkill,35,55): # skill 50
lvl += ' (3)'
elif InBetween(cookingSkill,55,75): # skill 70
lvl += ' (4)'
elif InBetween(cookingSkill,75,95): # skill 90
lvl += ' (6)'
elif InBetween(cookingSkill,95,115): # skill 115
lvl += ' (9)'
elif InBetween(cookingSkill,115,125):
lvl += ' (12)'
elif InBetween(cookingSkill,125,500):
lvl += ' (15)'
WaitMenu('What do you want to make?', lvl)
CheckSave()
CheckDead()
global hungryTimer
if (hungryTimer + timedelta(seconds=120)) < dt.now():
Hungry(0)
hungryTimer = dt.now()
CheckTools()
CheckSteaks()
ts = dt.now()
UseType(tRawSteak,0)
sleep(1)
FoodStack(tCookSteak)
WaitJournalLine(ts,'burn|already doing|cancelled|put the goods',30000)
if FindType(tCookSteak,Backpack()):
return FindFullQuantity()
return 0
def CookingInit():
IgnoreReset()
SetFindDistance(2)
SetARStatus(True)
CheckTools()
CheckSteaks()
Hungry()
return 1
CookingInit()
while True:
totalDone += Cook()
print ("Всего сделано: " + str(totalDone) + " шт. стейков")
checksave
checkdead
hungry
Готовим возле печки.
Сковородка в сумке или на полу, сырая рыба на полу в радиусе 2х клеток.
Раскладывает всю готовую рыбу в пачки по 60к, стак сырой рыбы добивает до конца и приступает к новому.
В теории скрипт из серии: запустил и забыл, только порченую рыбу выносить не забывать.
Если не обленюсь, сделаю в hungry проверку на гнилую рыбу. Тогда точно можно будет запускать и забывать до 150