Jump to content
Korean Random

Браузер. CEF. Flash


Go to solution Solved by SoprachevAK,

Recommended Posts

Я знаю, что уже 2 страницы тем посвященных браузеру есть, но большинство устарели. 

Как я понял, открывать свои страницы через танковый браузер нельзя нинкак, тк вайтлист доменов спрятан глубоко в си.
Танки юзают CEF – хром который обёрнут в библиотеку почти для всех языков

Насколько плохая идея притащить модом ещё один CEF и стримить из него картинку во флешку (60 раз в секунду передавать массив пикселей). 
А если со вторым питоном CEF подружить не выйдет, то можно процесс отдельный запускать и сокетами

Хочу виджеты как у стримеров для OBS но прямо в клиенте. Пинг там не страшен, 14 фпс браузера хватит, но может и 60 потянет

Link to comment
Short link
Share on other sites

51 минуту назад, SoprachevAK сказал:

Хочу виджеты как у стримеров для OBS но прямо в клиенте.

А в чём проблема просто сделать нужную флешку? Там из полей-то понадобится картинка да текст, или как? Для этого с головой флеша без костылей хватит.

Link to comment
Short link
Share on other sites

Posted (edited)
15 минут назад, yepev сказал:

А в чём проблема просто сделать нужную флешку? Там из полей-то понадобится картинка да текст, или как? Для этого с головой флеша без костылей хватит.

Ну потому что во первых виджетов может быть много, во вторых виджеты хочется обновлять, в третьих html стек примерно в миллион раз проще чем flash

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

Edited by SoprachevAK
Link to comment
Short link
Share on other sites

1 минуту назад, SoprachevAK сказал:

Ну потому что во первых виджетов может быть много, во вторых виджеты хочется обновлять, в третьих html стак примерно в миллион раз проще чем flash

А что там так сильно нужно нужно кроме <img> и <font>? HTML круто и всё такое, но стоит ли геморроя?

 

Такие виджеты же примитивные очень, их мало кто сильно настраивает, максимум текст, шрифт, и картинку меняют)

 

3 минуты назад, SoprachevAK сказал:

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

Не обязательно в ссылке держать HTML для CEF. Можно json для Python+Flash.

 

1 час назад, SoprachevAK сказал:

Насколько плохая идея притащить модом ещё один CEF и стримить из него картинку во флешку (60 раз в секунду передавать массив пикселей). 

Звучит плохо, но на тесты я бы посмотрел :smile:

Link to comment
Short link
Share on other sites

Posted (edited)
24 минуты назад, yepev сказал:

Такие виджеты же примитивные очень, их мало кто сильно настраивает, максимум текст, шрифт, и картинку меняют)

Я настраиваю!!!11!
 

24 минуты назад, yepev сказал:

Можно json для Python+Flash

Ну вот это конечно звучит, да, рендер для реакта прикрутить, но нет)

Вообще много чего нельзя во флеш: кейфреймовые анимации, канвасы, реиспользуемость, хитрая послойность (один виджет и для обс и для игры)


У меня вот мой виджет пускает конфетти при новом месте. Да в жизни бы я такое не сделал на флеше, чтоб json + python 

image.thumb.png.94effbd9d34560fd261c584440f8b708.png
 

24 минуты назад, yepev сказал:

Звучит плохо, но на тесты я бы посмотрел :smile:

Вот хочется попробовать, на уровень прототипа выглядит не сложно, но меня пока что порог входа в танковый флеш пугает. Хотя по сути надо просто взять и пойти декомпильнуть battle.swf, и потом компильнуть helloWorld

и забить когда ничего не получится)

Edited by SoprachevAK
  • Upvote 1
Link to comment
Short link
Share on other sites

15 часов назад, SoprachevAK сказал:

Вообще много чего нельзя во флеш: кейфреймовые анимации...

 

Белены объелся? А это что?

 

image.png.930c5b136440ab164f38b1bcd4d2ed5e.png

Link to comment
Short link
Share on other sites

3 часа назад, Valberton сказал:

Белены объелся? А это что?

 

image.png.930c5b136440ab164f38b1bcd4d2ed5e.png

Я имел ввиду анимации при подходе, когда с сервера качается json, и потом питоном динамически строится виджет из текстов и картинок

Вот там анимацию будет а) запарно перелать б) запарно экспортировать 

 

То что любой виджет технически можно написать на флеше отдельный захардкоженным модом я не спорю, но хочется не новый мод на каждый виджет

Link to comment
Short link
Share on other sites

  • Solution
Posted (edited)

Немного о прогрессе
Самое сложное позади. Смог настроить vscode чтоб синтаксис подсказывался и компилятор флеша, чтоб игра его кушала
Добавил стриминг картинки через сокет, пока из отдельного процесса. По машинкам на фоне видно, что фризов нет

Осталось заменить картинку на браузер, благо это можно делать вне танков)

А ещё оказывается, что моды с флешем достаточно неплохо декомпилируются, и ничего сложного в них нет

 

Edited by SoprachevAK
  • Upvote 1
Link to comment
Short link
Share on other sites

Браузер есть, фризов нет, комп слабый (вообще виртуалка без видяхи). Версия хрома пока старая, библиотека CEF для питона уже года 4 как заброшена, но там есть PR c новым хромом, так что фиксится

Сервер запущен на питоне 2.7, но вне игры. Пока не знаю как в танковые моды затащить библиотеки из pip, наверное их можно просто как файлы положить рядом, но пока не разбирался

А ещё надо как то побеждать масштабирование и мониторы с высоким dpi, пока что мылит

 

  • Upvote 1
Link to comment
Short link
Share on other sites

6 часов назад, nosenkoan сказал:

https://webbrg.tanki.su/ru/promoscreens/ 

 

Нашел такую штуку, может в эту сторону смотреть, тоже с браузером этим бьюсь, пока безуспешно

Ну многие интерфейсы сделаны через веб, но у них там вайтлист на домены на уровне движка, и через стандартный браузер как будто бы ничего не сделать

Link to comment
Short link
Share on other sites

Posted (edited)
16 часов назад, SkepticalFox сказал:

Спасибо
Выглядит как наиболее оптимальный способ решения задачи, но к сожалению, уже выходит за рамки моего энтузиазма

 

Запустить CEF из танков несколько сложнее. Он юзает pyd, которые до версии 1.18 было не импортнуть, а после 1.18 что то изменилось, и всё равно не импортнуть 

Эту тему видел, как ей воспользоваться не понял



xfw-native тоже видел и тоже не вник

 

 

Edited by SoprachevAK
  • Upvote 1
Link to comment
Short link
Share on other sites

Как и хотел, скомпилил в exe и запускаю как подпроцесс. Работает. Одним файлом wotmod без каких либо внешних зависимостей завёлся свой браузер в игре. 
В ближайшие несколько дней хотя бы немного прилично оформлю и поделюсь. 

 

  • Upvote 1
Link to comment
Short link
Share on other sites

Сделал динамическое добавление страниц и неограниченное их количество на экране, а ещё прозрачность, вроде бы не лагает
Ещё догадался положить в вотмод CEF в сжатом зип формате, и при старте игры один раз распаковывать, теперь мод весит в 2 раза меньше)

 

 

 

 

 

  • Upvote 4
Link to comment
Short link
Share on other sites

Posted (edited)

Спустя 8 рабочих часов мучений с виндой, скомпилил хромиум 123 (вместо 66 который был в либе) 
Гугл теперь выглядит красивше, да и наконец то мой wotstat открывается)
image.thumb.png.155b00c67cb6c52344ec0754e7d3f93d.png
image.thumb.png.c7051af12babbae59af17965193ac99d.pngimage.thumb.png.58b907576c5114d31c469d0e585376e5.png

Edited by SoprachevAK
  • Upvote 3
Link to comment
Short link
Share on other sites

На неделю выпадал, но продолжаю прогрессировать
Узнал вот, что нужно делать Loader.unload(), чтоб оперативка не утекала
А перетаскивание это вообще оказывается нативная фича флеша, честно говоря не понял, зачем Полироид её вручную пишет

  • Upvote 2
Link to comment
Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...