REN'PY HELP💻
Відкрити в Telegram
НАШЕ ЭК 💻🌟 | Прислать тейк: @renpyhelp_bot . 15.11.23 - __.__.__
Показати більше3 320
Підписники
Немає даних24 години
+47 днів
+930 день
Архів дописів
3 325
Здравствуйте, ребятки. Если вы хотите, чтобы ваша игра умела отправлять сообщения, как на пк, так и на андроиде, то вы по адресу. Руководство будет очень подробное, все справятся 🙏🏼
Если будут какие-то ошибки или проблемы, можете обратиться ко мне, неанон Рулер Лунае😘
Пояснение: В уведомлениях на ПК мы используем таймер, он нам позволяет отправить сообщение через столько времени, сколько захотите вы. На андроиде так нельзя, там, чтобы такое замутить, нужно лезть в аларм менеджер... Если получится, я дополню этот код)
Доп: уведомления на пк работают только в свёрнутом состоянии, к сожалению так работает сама винда. Если у вас есть идеи, как обмануть ренпай - буду рад послушать.
🕊: скрины в комах
#крутотейк ← @renpyhelp_bot
@renpyhelp
3 325
notification_intent = Intent(activity, activity.getClass())
notification_intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)FLAG_IMMUTABLE = 0x04000000
pending_intent = PendingIntent.getActivity(activity, 0, notification_intent, FLAG_IMMUTABLE)
service = cast(NotificationManager,
activity.getSystemService(Context.NOTIFICATION_SERVICE))
channel_id = "renpy_notify"
if Build_VERSION.SDK_INT >= 26:
channel_name = "Game Notifications"
importance = NotificationManager.IMPORTANCE_DEFAULT
channel = NotificationChannel(channel_id, channel_name, importance)
service.createNotificationChannel(channel)
builder = NotificationBuilder(activity, channel_id)
else:
builder = NotificationBuilder(activity)
builder.setContentTitle(title)
builder.setContentText(message)
builder.setSmallIcon(app_info.icon)
builder.setContentIntent(pending_intent)
builder.setAutoCancel(True)
unique_id = random.randint(1000, 9999)
service.notify(unique_id, builder.build())
except Exception as e:
renpy.notify(f"_android_notify {e}")
Мы через джава бридж лезем прямо в каналы уведомлений, создаем уникальный айди для каждого уведомления, что позволяет их кидать бесконечное количество!
Но проблемка пока что в том, что уведомления, если кидать их в первый раз, могут отправиться с задержкой... Из-за того, что каналы инициализируются прямо в процессе вызова функции... Можно переместить их на старт игры, что сделает загрузку долгой... Либо попытаться где-то отдельно это сделать...
Но повторная загрузка решает эту проблему!
Шаг 5: А теперь самое страшное, лезем в файлы игры. Чтобы кидать уведомления на телефоне нам нужно получить разрешение от пользователя. От, вроде, 12 андроида нужно это делать всегда.
Заходите в папку с ренпаем, и идите по пути:
rapt/templates и ищите файл app-AndroidManifest.
Открываете в блокнотике и вставляйте между двумя uses permission свой:
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
Сохраняете.
Шаг 6: спрашиваем у игрока разрешения
Вставьте где-то вот эту функцию, в инит кусочке:
def request_notification_permission():
from jnius import autoclass
from android import activity
Build_VERSION = autoclass('android.os.Build$VERSION')
if Build_VERSION.SDK_INT >= 33: # Android 13+
ActivityCompat = autoclass('androidx.core.app.ActivityCompat')
Manifest_permission = autoclass('android.Manifest$permission')
permission = Manifest_permission.POST_NOTIFICATIONS
ActivityCompat.requestPermissions(activity, [permission], 1)
И в сааамом начале игры вызывайте:
init python:
if is_android():
request_notification_permission()
Если будете позже, может возникнуть ошибка, проверено мною.
ПОСТОЙ:
ещё пример вызова:
$ notify_call(2, "Dispersona1", "Го в роблокс")
$ notify_call(2, "Dispersona2", "Го в роблокс")
$ notify_call(2, "Dispersona3", "Го в роблокс")
$ notify_call(2, "Dispersona4", "Го в роблокс")
$ notify_call(2, "Dispersona5", "Го в роблокс")
`
🕊: в комах скрины.........
#крутотейк ← @renpyhelp_bot
@renpyhelp3 325
Здравствуйте, ребятки. Если вы хотите, чтобы ваша игра умела отправлять сообщения, как на пк, так и на андроиде, то вы по адресу. Руководство будет очень подробное, все справятся 🙏🏼
Если будут какие-то ошибки или проблемы, можете обратиться ко мне, неанон Рулер Лунае😘
Пояснение: В уведомлениях на ПК мы используем таймер, он нам позволяет отправить сообщение через столько времени, сколько захотите вы. На андроиде так нельзя, там, чтобы такое замутить, нужно лезть в аларм менеджер... Если получится, я дополню этот код)
Доп: уведомления на пк работают только в свёрнутом состоянии, к сожалению так работает сама винда. Если у вас есть идеи, как обмануть ренпай - буду рад послушать.
Начинаем!
`
Шаг 1: скачайте библиотеку plyer. Она поможет нам отправлять сообщения на ПК. Вы просто скачайте файл со странным разрешением, меняйте разрешение на .zip, распакуйте, и папку plyer кидайте в созданную в директории игры python-packages
Шаг 2: Дальше делаем все нужные импорты(все рабочее, у меня все ок, мб я какой-то импорт потерял, проверьте):
import os
import platform
import subprocess
import tempfile
import threading
if renpy.android:
packages_path = os.path.join(config.basedir, "game", "python-packages")
else:
packages_path = os.path.join(config.basedir, "game", "python-packages")
if packages_path not in sys.path:
sys.path.insert(0, packages_path)
Просто киньте этот кусочек себе в инит вначале игры.
Шаг 3: создаём .py файл, благодаря которому мы можем отправлять бесконечное количество сообщений на ПК
Пример кода:
import os
import sys
import time
packages_path = os.path.abspath(os.path.join(os.path.dirname(file), "..", "python-packages"))
if packages_path not in sys.path:
sys.path.insert(0, packages_path)
from plyer import notification
delay = int(sys.argv[1]) if len(sys.argv) > 1 else 0
title = sys.argv[2] if len(sys.argv) > 2 else "Пися"
message = sys.argv[3] if len(sys.argv) > 3 else "Попав чилеен"
if delay > 0:
time.sleep(delay)
notification.notify(
title=title,
message=message,
timeout=5
)
Вс код будет говорить, что что-то не так, но вы не обращайте внимания.
Шаг 4: вставляем эту функцию, она сразу для андроид и для пк:
import random
def notify_call(delay, title, message):
try:
if is_android():
import threading
threading.Thread(
target=_android_notify,
args=(delay, title, message)
).start()
elif platform.system() == "Windows":
import subprocess
renpy_python = sys.executable
notify_path = os.path.join(config.basedir, "game", "mechanics", "notify.py")
subprocess.Popen([renpy_python, notify_path, str(delay), title, message])
else:
renpy.notify(f"notify_call: {platform.system()}")
except Exception as e:
renpy.notify(f"notify_call {e}")
def _android_notify(delay, title, message):
try:
import time
from jnius import autoclass, cast
from android import activity
if delay > 0:
time.sleep(delay)
Context = autoclass('android.content.Context')
NotificationBuilder = autoclass('android.app.Notification$Builder')
NotificationManager = autoclass('android.app.NotificationManager')
NotificationChannel = autoclass('android.app.NotificationChannel')
PendingIntent = autoclass('android.app.PendingIntent')
Intent = autoclass('android.content.Intent')
Build_VERSION = autoclass('android.os.Build$VERSION')
package_name = activity.getPackageName()
pm = activity.getPackageManager()
app_info = pm.getApplicationInfo(package_name, 0)3 325
FLAG_IMMUTABLE = 0x04000000
pending_intent = PendingIntent.getActivity(activity, 0, notification_intent, FLAG_IMMUTABLE)
service = cast(NotificationManager,
activity.getSystemService(Context.NOTIFICATION_SERVICE))
channel_id = "renpy_notify"
if Build_VERSION.SDK_INT >= 26:
channel_name = "Game Notifications"
importance = NotificationManager.IMPORTANCE_DEFAULT
channel = NotificationChannel(channel_id, channel_name, importance)
service.createNotificationChannel(channel)
builder = NotificationBuilder(activity, channel_id)
else:
builder = NotificationBuilder(activity)
builder.setContentTitle(title)
builder.setContentText(message)
builder.setSmallIcon(app_info.icon)
builder.setContentIntent(pending_intent)
builder.setAutoCancel(True)
unique_id = random.randint(1000, 9999)
service.notify(unique_id, builder.build())
except Exception as e:
renpy.notify(f"_android_notify {e}")
Мы через джава бридж лезем прямо в каналы уведомлений, создаем уникальный айди для каждого уведомления, что позволяет их кидать бесконечное количество!
Но проблемка пока что в том, что уведомления, если кидать их в первый раз, могут отправиться с задержкой... Из-за того, что каналы инициализируются прямо в процессе вызова функции... Можно переместить их на старт игры, что сделает загрузку долгой... Либо попытаться где-то отдельно это сделать...
Но повторная загрузка решает эту проблему!
Шаг 5: А теперь самое страшное, лезем в файлы игры. Чтобы кидать уведомления на телефоне нам нужно получить разрешение от пользователя. От, вроде, 12 андроида нужно это делать всегда.
Заходите в папку с ренпаем, и идите по пути:
rapt/templates и ищите файл app-AndroidManifest.
Открываете в блокнотике и вставляйте между двумя uses permission свой:
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
Сохраняете.
Шаг 6: спрашиваем у игрока разрешения
Вставьте где-то вот эту функцию, в инит кусочке:
def request_notification_permission():
from jnius import autoclass
from android import activity
Build_VERSION = autoclass('android.os.Build$VERSION')
if Build_VERSION.SDK_INT >= 33: # Android 13+
ActivityCompat = autoclass('androidx.core.app.ActivityCompat')
Manifest_permission = autoclass('android.Manifest$permission')
permission = Manifest_permission.POST_NOTIFICATIONS
ActivityCompat.requestPermissions(activity, [permission], 1)
И в сааамом начале игры вызывайте:
init python:
if is_android():
request_notification_permission()
Если будете позже, может возникнуть ошибка, проверено мною.
ПОСТОЙ:
ещё пример вызова:
$ notify_call(2, "Dispersona1", "Го в роблокс")
$ notify_call(2, "Dispersona2", "Го в роблокс")
$ notify_call(2, "Dispersona3", "Го в роблокс")
$ notify_call(2, "Dispersona4", "Го в роблокс")
$ notify_call(2, "Dispersona5", "Го в роблокс")
`
🕊: в комах скрины.........
#крутотейк ← @renpyhelp_bot
@renpyhelp3 325
Здравствуйте, ребятки. Если вы хотите, чтобы ваша игра умела отправлять сообщения, как на пк, так и на андроиде, то вы по адресу. Руководство будет очень подробное, все справятся 🙏🏼
Если будут какие-то ошибки или проблемы, можете обратиться ко мне, неанон Рулер Лунае😘
Пояснение: В уведомлениях на ПК мы используем таймер, он нам позволяет отправить сообщение через столько времени, сколько захотите вы. На андроиде так нельзя, там, чтобы такое замутить, нужно лезть в аларм менеджер... Если получится, я дополню этот код)
Доп: уведомления на пк работают только в свёрнутом состоянии, к сожалению так работает сама винда. Если у вас есть идеи, как обмануть ренпай - буду рад послушать.
Начинаем!
`
Шаг 1: скачайте библиотеку plyer. Она поможет нам отправлять сообщения на ПК. Вы просто скачайте файл со странным разрешением, меняйте разрешение на .zip, распакуйте, и папку plyer кидайте в созданную в директории игры python-packages
Шаг 2: Дальше делаем все нужные импорты(все рабочее, у меня все ок, мб я какой-то импорт потерял, проверьте):
import os
import platform
import subprocess
import tempfile
import threading
if renpy.android:
packages_path = os.path.join(config.basedir, "game", "python-packages")
else:
packages_path = os.path.join(config.basedir, "game", "python-packages")
if packages_path not in sys.path:
sys.path.insert(0, packages_path)
Просто киньте этот кусочек себе в инит вначале игры.
Шаг 3: создаём .py файл, благодаря которому мы можем отправлять бесконечное количество сообщений на ПК
Пример кода:
import os
import sys
import time
packages_path = os.path.abspath(os.path.join(os.path.dirname(file), "..", "python-packages"))
if packages_path not in sys.path:
sys.path.insert(0, packages_path)
from plyer import notification
delay = int(sys.argv[1]) if len(sys.argv) > 1 else 0
title = sys.argv[2] if len(sys.argv) > 2 else "Пися"
message = sys.argv[3] if len(sys.argv) > 3 else "Попав чилеен"
if delay > 0:
time.sleep(delay)
notification.notify(
title=title,
message=message,
timeout=5
)
Вс код будет говорить, что что-то не так, но вы не обращайте внимания.
Шаг 4: вставляем эту функцию, она сразу для андроид и для пк:
import random
def notify_call(delay, title, message):
try:
if is_android():
import threading
threading.Thread(
target=_android_notify,
args=(delay, title, message)
).start()
elif platform.system() == "Windows":
import subprocess
renpy_python = sys.executable
notify_path = os.path.join(config.basedir, "game", "mechanics", "notify.py")
subprocess.Popen([renpy_python, notify_path, str(delay), title, message])
else:
renpy.notify(f"notify_call: {platform.system()}")
except Exception as e:
renpy.notify(f"notify_call {e}")
def _android_notify(delay, title, message):
try:
import time
from jnius import autoclass, cast
from android import activity
if delay > 0:
time.sleep(delay)
Context = autoclass('android.content.Context')
NotificationBuilder = autoclass('android.app.Notification$Builder')
NotificationManager = autoclass('android.app.NotificationManager')
NotificationChannel = autoclass('android.app.NotificationChannel')
PendingIntent = autoclass('android.app.PendingIntent')
Intent = autoclass('android.content.Intent')
Build_VERSION = autoclass('android.os.Build$VERSION')
package_name = activity.getPackageName()
pm = activity.getPackageManager()
app_info = pm.getApplicationInfo(package_name, 0)
notification_intent = Intent(activity, activity.getClass())
notification_intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)3 325
+2
Hi guys, не могу понять, в чем проблемааа... У меня не отображается главное меню, и я ничего не могу сделать! Советы из инета не работают, всё сто раз перепроверял, но всё равно ничего не работает.
Может, вы что скажете, поможете?
#крутотейк ← @renpyhelp_bot
@renpyhelp
3 325
Repost from [Набор в адм]@.Alight Motion Confession / 📱🎬!!
↳ welcome to . .
🌟🌟🌟🌟🌟🌟 🌟🌟🌟🌟🌟🌟
confession . .─────────────────────────────────────
🌟🎐 Ты хочешь поделится своими впечатлениями о alight motion? Тебе срочно нужна ссылка на лучший шейк из тик тока? А может ты хочешь поделится своим творчеством с другими или же дать кому нибудь совет?💬 Тогда ты точно по адресу! Что-ж, добро пожаловать в our cf, посвящённый этой теме❗ ────────────────────────────────
↳ 🤍 ⋮ Navigation ⇄ @AlightMotion_confession🌟⇉ tw cw post ﹠ bot ﹠ boost ﹠ tags ﹠ mp post. ﹠ praise.🎈 DNI : : база ; зоофилы ; наркотики ; алкоголь ; не принимаем кф с педо, инцест ; даркшиппы ; рейдеры
3 325
Repost from Фандом Геологии|💎🔍
Ааааа камушки-камушки🌟🌟🌟🌟🌟🌟🌟🌟
Собираю колекцию и хочу похвастаться
Буду поступать на геолога, но хочу обсудить это тут
Строю свою личность на камняхТогда собирай вещи, и иди к нам в 💍😏🅰️⛏️🅰️⛏️🅰️🅰️🅰️👍 🌂🅰️🅰️〰️🅰️🅰️🅰️🅰️🅰️🚼 Или ТГК 👍Фандом Геологии👍 Что такое геология?🤔
Геология — это наука о строении, составе, происхождении и развитии Земли, а также о процессах, происходящих в её недрах и на поверхности. Основные направления геологии: 1. Минералогия — изучает минералы, их свойства, происхождение и условия образования. 2. Петрография — исследует горные породы, их состав и формирование. 3. Палеонтология — изучает ископаемые остатки организмов и их значение для геологической истории Земли. 4. Структурная геология — исследует деформации и тектонические структуры земной коры. 5. Геохимия — изучает химический состав Земли и процессы, влияющие на его изменение. 6. Геофизика — исследует физические свойства Земли (магнитное поле, гравитация, сейсмичность).Мы также хотим зафорсить геологию, возможно ты нам поможешь.
🅰️🅰️🅰️🅰️🅰️🅰️⬇️ Король: @Asriel_Dreemurr_35 🌟🌟 Дворяне: @yanvar228 🌟 @Yoicho 🌟 @Algebrophile000nogtygryz 🌟 @LordPaskuda 🌟 @Dio_pidoras4444 🌟 @whxiw193 🌟 @tg_somer 🌟 @ZivoassaTHEGodkin💎 @Al_parsley🌟 @klyden_gem🌟 @chertilatsirkulem💎 @eshceria1488💎 @y0maru💰 @vld17💎 @Trictikoti🌟Навигация🤖 #минералы #геология #камни
3 325
Repost from ПЕРЕЕЗД!! daily pink characters 🎀
〰️ 𝘭𝘪𝘷𝘪𝘯𝘨 𝘵𝘩𝘳𝘰𝘶𝘨𝘩 𝘳𝘰𝘴𝘦-𝘤𝘰𝘭𝘰𝘳𝘦𝘥 𝘨𝘭𝘢𝘴𝘴𝘦𝘴 𝘪𝘴 𝘴𝘰𝘰 𝘥𝘦𝘭𝘪𝘨𝘩𝘵𝘧𝘶𝘭 ☁️
welcome to . . . ♡♡♡🍡 🌟🌟🌟🌟🌟🌟🌟🌟💓 где каждый день выходит контент с персонажами в розовой палитре !
🌟 DNI: база 🌟 правила: не разводить конфликты, не комментировать негативно вп и посты, не мисгендерить/миспронаунсить, не спамить, нсфв под блюр, шок контент запрещëн
🟥 бот | вп пост | навигация 🟥 набор в админы!! 🌟 m-m-cream on tmblr
3 325
Repost from [ПЕРЕХОДНИК] age gap confession
゜・。。・゜★
ДОБРО ПОЖАЛОВАТЬ В
🤩🤩🤩 🤩🤩🤩
🤩🤩🤩🤩🤩🤩🤩🤩🤩🤩🦋
☁️ Нравится троп «разница в возрасте»? Хочется найти творчество с ним или поделиться своими артами/историями на эту тему? Вам сюда!
☁️ Ссылки на важное @agegapconf_bot — бот для тейков Do Not Interact — не взаимодействовать ВП пост — для взаимного пиара Админы — список админче ТВ/КВ пост — что ставить под блюрМЫ ПРОКОМ-ФРЭНДЛИ КФ ☁️ (ссылка) #тейцк • #адмтейцк • #вп • #щп
3 325
Repost from Вдохновение ᴄᴏnfᴇssiᴏn
👀👀👀👀🤍☁️🤍
👀🌟🌟🌟🌟🌟🌟🌟〽️🌟🌟
〽️Ꭷuiᴇᴛ ᴀʙᴏdᴇ ᴄᴏnfᴇssiᴏn
👀👀👀〽️〽️ 〽️ 〽️〽️
✨нарисовали чудесный рисунок и хотите показать его всему интернету?
✨
нуждаетесь в
дельном совете
по
рисованию
?
✨
а может просто хотите
поднять
аудиторию?👀👀👀〽️〽️ 〽️ 〽️〽️ 🤍ʙ ᴛᴀᴋᴏʍ ᴄᴧучᴀᴇ ᴩᴀды ʙᴀᴄ ʙидᴇᴛь, дᴩᴀᴦᴏцᴇнныᴇ! нᴏ дᴧя нᴀчᴀᴧᴀ ᴏɜнᴀᴋᴏʍьᴛᴇᴄь ᴄ 👀 🤍 𐋏АВИ𐌲АЦИЕЙ 🤍 🤍ᴄ ᴩᴀᴄᴨᴩᴏᴄᴛᴇᴩᴛыʍи ᴏбъяᴛияʍи ждёʍ иʍᴇннᴏ ʙᴀᴄ
3 325
Repost from N/a
😀😀 « 🔠не так нравятся
😀😀😀😀 Айшансы... »
😀😀😀😀. « 🔠от бы больше
😀😀😀😀😀 контента по ним! »
😀😀😀😀😀
😀😀😀😀😀😀 🔠огда добро пожаловать в..
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
Айшансы. Подписаться.cr:
cherlockwho on Tumblr3 325
Repost from Star lovers /️✨💥/
👖👖👖👖👖👖👖👖 👖👖
👖👖👖👖 👖👖👖👖👖👖👖
⭐️Мы поменяли название, но не суть! Эта конфа посвящена форме разноконечных звёзд
⭐️Здесь вы можете поделиться разным всяким по теме, начиная от фоточек красивых серёжек, текста с рассказом о персонаже или же скрином из игры
⭐️навигация
⭐️DNI: база
3 325
Repost from HiWaifu confession | 💜📱
❌welcome to...
🔤🔤🔤❌🔤🔤🔤🔤🔤❌🔤🔤
➖➖➖➖➖➖➖➖➖➖➖➖➖
❤️HiWaifu – это чатбот, полюбившийся пользователям за красочные посты, удобную платформу и... отсутствие цензуры ➖➖➖➖➖➖➖➖➖➖➖➖➖
❤️ в кф приветствуются любые тейки, связанные с hiwaifu, будь то технические вопросы или скриншоты забавных переписок.➖➖➖➖➖➖➖➖➖➖➖➖➖
❤️ навигация
бот для тейков @hiwaiifuconf_bot анонимный бот: @HiWaifu_anon_bot
emoji combo 💜📱
пост для вп
пост запросов
список хештегов
маскот
флаг хвфагов
обмен реферальными кодами
буст➖➖➖➖➖➖➖➖➖➖➖➖➖
❤️ прежде чем написать тейк или комметарий, ознакомьтесь с FAQ и правилами❌❌❌❌🔤🔤🔤🔤🔤🔤 🐈: Риочи, он/его, влд 🍼: эйви, они>он + на вы, вп
скачать hiwaifu на андроид
на айфонcr eguchi_saan on twitter
3 325
Доброго времени суток, пишу сюда в надежде найти сценариста 🥀
Нашлись пж🙏🙏🙏
@AhaProstokvaha
#крутотейк ← @renpyhelp_bot
@renpyhelp
3 325
прив кф. как вы вставляете катсцены в вашу новеллу? какие бы способы я не пробовала, видео дико лагает, помогите пж
#крутотейк ← @renpyhelp_bot
@renpyhelp
3 325
всем прр. подскажите что делать в этом плагине чтоб переписка от лица гг отображалась на андроиде?
#крутотейк ← @renpyhelp_bot
@renpyhelp
3 325
Привет всем! Хотел бы узнать, имеется ли возможность возле выбранной кнопки отображать заранее подготовленную анимацию?
#крутотейк ← @renpyhelp_bot
@renpyhelp
