Jump to content
Korean Random
SkepticalFox

space.bin (CompiledSpace) - packer/unpacker

Recommended Posts

Значительно переписал код утилиты. Теперь она работает как с Python 3+, так и Python 2.7

Сейчас она использует не только модуль struct, но и ctypes, которого в WoT нет

Нужно будет попробовать ctypes из XFW...

Edited by SkepticalFox
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
5 часов назад, SkepticalFox сказал:

Нужно будет попробовать ctypes из XFW...

Если что-то работает некорректно - то сразу пиши.

Вообще, весь XFW не нужен, достаточно только com.modxvm.xfw.native_blabla.wotmod

https://bitbucket.org/XVM/xfw.native/downloads/

Edited by Mixaill
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
2 minutes ago, Mixaill said:

Если что-то работает некорреткно - то сразу пиши.

Все работает отлично

Только из-за неочевидного поведения GC пришлось повозиться)

Теперь утилита и в WoT прекрасно работает

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

У него ctypes используется. Вроде бы без модуля _ctypes, который является бинарным и реализован в XFW.Native, импорт фейлится.

Edited by Mixaill

Share this post


Link to post

Short link
Share on other sites
4 minutes ago, StranikS_Scan said:

Он длл-ки грузит?

Вот для чего я использую -  пример

Удобно читать структуры и писать их, раньше вообще кошмар был с этими функциями паковки

Edited by SkepticalFox
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
6 минут назад, SkepticalFox сказал:

Вот для чего я использую -  пример

Удобно читать структуры и писать их, раньше вообще кошмар был с этими функциями паковки

 

Про ctype от Миши, если в клиент закинуть, то функция подключения сторонних dll в ctype заработает? В клиент вырезано это место по дефолту вроде.

Share this post


Link to post

Short link
Share on other sites

Клиент и так отлично грузит библиотеки по imp.load_dynamic

 

В случае с xfw.native заработает работа с внешними библиотеками через ctypes. То есть можно будет делать так

 

import ctypes
ctypes.windll.user32.MessageBoxA(0, "Text", "Text", 0)

image.thumb.png.d0a497ee76efa40c27a4d50b9e14e7d3.png


 
Edited by Mixaill
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
1 минуту назад, Mixaill сказал:

Клиент и так отлично грузит библиотеки по imp.load_dynamic

 

Я же раньше проверял. Компилил dll  той же делфе, в большом питоне она нормально грузилась через ctype а в питоне клиента - косяк был, ошибку выбивала. Я знаю вы там особым образом пиды потом делали на си под клиент чтоб они работали. А я забил, мне это сложно.

Share this post


Link to post

Short link
Share on other sites
2 hours ago, Mixaill said:

Если что-то работает некорректно - то сразу пиши.

Вот с таким столкнулся

from ctypes import *

Pos = c_float * 3

s = Pos(1.0, 2.0, 3.0)
print tuple(s)

Крашит клиент без ошибки

Edited by SkepticalFox
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Добавил отключение интерфейса ангара по нажатию F11

shot_002.thumb.jpg.83559f81486b15ff11e3f55fbdb7a5ec.jpg

Теперь в приоритете разобраться с исчезновением некоторых примитивов при загрузке ангара.


Смог создать конвертер в BWSG и BSGD(хотя и смысла в нем не вижу пока)

shot_003.jpg

Edited by SkepticalFox
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites
24 minutes ago, Pavel3333 said:

Круто!

BWSG/BSGD были еще осенью готовы, но только сейчас в коде я нашел недостающий инкремент переменной

вот из-за этого они тогда и не работали)

 

Надо бы блок-схемку нарисовать по этому формату)

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites
On 15.09.2017 at 2:08 PM, SkepticalFox said:

Еще неплохо было бы сделать мод на загрузку ангара без логина, для тестов.

Сделал. Довольно удобно стало.

  • Upvote 4

Share this post


Link to post

Short link
Share on other sites
9 часов назад, SkepticalFox сказал:

@Tesh2016 кстати, какие инструменты хотелось бы видеть при создании ангара прямо внутри клиента?

 

Я человек, привыкший довольствоваться тем что есть :)

Уже есть возможность обновлять ангар без перезапуска клиента и это ОГРОМНЫЙ плюс, убрать интерфейс тоже. Хотя стоп, то что возможность собирать space.bin вообще появилась - это просто ЧУДО! :ok:

Сейчас я жду возможности интегрировать анимацию, т.к. есть сцена, которую мне давно хотелось реализовать, но исключительно статикой и частицами желаемого результата не добиться :)

 

Если немного помечтать, то, конечно, очень удобно иметь функционал, аналогичный редакторам BigWorld, чтобы можно было редактировать свойства источников света, моделей и частиц без постоянного пересохранения изменений в текстовых файлах вручную, работая напрямую со сценой (некая рабочая среда, сочетающая возможности и model editor и particle editor). Это такой вариант совсем для ленивых...

 

По минимуму, мне лично будет достаточно возможности прямо в клиенте менять multiplier-параметр у Omnilight и изменять координаты этих самых источников и particles-систем. В реальном времени это совсем необязательно, достаточно чтобы после обновления ангара(по кнопке) на сцене можно было увидеть результат. Небольшое удобство.

Вам огромное спасибо, что не бросаете ваше дело!)

Edited by Tesh2016
  • Upvote 2

Share this post


Link to post

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...