TapSwapBot
TapSwapBot copied to clipboard
Up town
Реализовать прокачку городов
Yes, Sir!
Было бы весьма неплохо реализовать город. Спасибо!
+1 c клаймом видосиков (мб тех кто без кода, но можно и потжерживать key=>value кодов базу из открытых источников наполнив), без этого город заглохнет. Если у кого есть что, можете пожелится, моё пока не рабочее.
Никидал за 10 минут:
async def upgrade_building(self, http_client: aiohttp.ClientSession, building_id: str) -> bool:
response_text = ''
try:
response = await http_client.post(url='https://api.tapswap.club/api/town/upgrade_building',
json={'building_id': building_id})
response_text = await response.text()
response.raise_for_status()
return True
except Exception as error:
logger.error(f"{self.session_name} | Unknown error when Upgrade Building: {escape_html(error)} | "
f"Response text: {escape_html(response_text)[:128]}...")
await asyncio.sleep(delay=3)
return False
account = profile_data['player']
town = account['town']
buildings = town['buildings']
confTown = profile_data['conf']['town']
confBuildings = confTown['buildings']
confBuildingsMapById = {data['id']: data for data in confBuildings}
for building in buildings:
current_level = building['level']
id = building['id']
upgrade_building = await self.upgrade_building(http_client=http_client,
building_id=id)
if upgrade_building is True:
logger.success(f"{self.session_name} | "
f"Building <m>{id}</m> upgraded to <m>{current_level + 1}</m>!")
# current_conf = confBuildingsMapById[id]
# if current_conf['levels'][current_level + 1] is not None:
# required_building = current_conf['levels'][current_level + 1]['required']
# logger.debug(f"{self.session_name} | required_building: {required_building}")
# if required_building is not None:
# required_id = required_building['id']
# required_level = required_building['level']
# if required_id in buildings and buildings[required_id]['level'] >= required_level:
# upgrade_building = await self.upgrade_building(http_client=http_client,
# building_id=id)
# if upgrade_building is True:
# logger.success(f"{self.session_name} | "
# f"Building <m>{id}</m> upgraded to <m>{current_level + 1}</m>!")
В комментариях не рабочая логика, по пониманию какой лвл можно строить или нет, с верху просто пробежатся по всем зданиям и строить, работает, ддос наше всё. Если кто осилит их json и логику , велком, + нужно сравнивать по времени сколько рабочих сейчас свободно.
Мой код проработал день, да он работает, но
- косяк нужно поменять на confBuildings, а он только достраивает от того что уже есть в данный момент, а новые не начинает строить
- ддос это ужас, нужно хоть базовые проверки что строители загружены, и что здание нельзя строить.
Мой код проработал день, да он работает, но
- косяк нужно поменять на confBuildings, а он только достраивает от того что уже есть в данный момент, а новые не начинает строить
- ддос это ужас, нужно хоть базовые проверки что строители загружены, и что здание нельзя строить.
Как вообще отснифать запросы игры в тг!? Как это делают?
Как вообще отснифать запросы игры в тг!? Как это делают?
Вот: https://core.telegram.org/bots/webapps#debug-mode-for-mini-apps P.S. Если у вас нет андроида, эмулятор + Chrome тоже работает.