Pavel3333 1,148 #399702 Posted August 2, 2017 говорят, они в клиенте были. Спасиб. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #399703 Posted August 2, 2017 говорят, они в клиенте были. Спасиб.Были карты проходимости вроде... Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #399704 Posted August 2, 2017 прошло три года, а я так и не увидел эту красивую физику разрушения домов. Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #400999 Posted August 17, 2017 Ну и чё робит? Или грязь отвалилась, палки раскатились? Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #401008 Posted August 17, 2017 (edited) Ну и чё робит?Если бы я продолжил заниматься, то всё бы работало. Там с геометрией и с террейном сложновато было... Edited August 17, 2017 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #401012 Posted August 17, 2017 (edited) Если бы я продолжил заниматься, то всё бы работало. Там с геометрией и с террейном сложновато было... хрен с ним с террейном, ннада бы геометрию дампить уметь. мне, если честно, уже лень этим заниматься. Edited August 17, 2017 by Pavel3333 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #401472 Posted August 23, 2017 (edited) . Edited March 21, 2018 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #402962 Posted September 3, 2017 (edited) Ооооочень полезная штука! (очень странно, что раньше не видел) https://github.com/mikeoverbay/Terra Там и со space.bin есть работа, надо бы посмотреть: https://github.com/mikeoverbay/Terra/blob/master/Terra/Modules/Mod_space_bin.vb Жаль, что на Visual Basic))) BWT2 там есть! Edited September 3, 2017 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #402978 Posted September 3, 2017 (edited) @SkepticalFox, интересненько. а мы лопатили и реверсировали... кстати, с днём мучёбы! Edited September 3, 2017 by Pavel3333 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #402979 Posted September 3, 2017 (edited) @SkepticalFox, интересненько. а мы лопатили и реверсировали...Ну мы лопатили и долопатились, что теперь нам известно на порядок больше, чем в его проекте) У него лишь есть минимально необходимое для работы его программы. кстати, с днём мучёбы!Это да, надо сессию закрывать наконец)) Edited September 3, 2017 by SkepticalFox 1 Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #402988 Posted September 3, 2017 Это да, надо сессию закрывать наконец)) Я уже в 10-м. А ты на каком курсе хоть, если не секрет?) Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #403032 Posted September 4, 2017 (edited) Сейчас секцию BWT2 нужно разобрать! http://monstrofil.xyz/docs/doc/html/client_programming_guide/ch04.html http://monstrofil.xyz/docs/doc/html/client_programming_guide/ch06.html Public Sub get_BWT2_data(ByVal t_cnt As Integer) 'terrain 2 data Dim ms As New MemoryStream(space_table_rows(t_cnt).data) Dim br As New BinaryReader(ms) ms.Position = 0 'There is some data at the start that makes no sense. Dim d_size As UInt32 = br.ReadUInt32 BWT2.grid_Meter_size = br.ReadSingle For k = 0 To 3 br.ReadUInt32() ' no idea what these 4 uint32s are for Next ms.Position = &H24 BWT2.t_1_start = ms.Position BWT2.t_1_d_Length = br.ReadUInt32 BWT2.t_1_entry_count = br.ReadUInt32 Dim size As Integer = Sqrt(BWT2.t_1_entry_count) ReDim BWT2.location_table_1(BWT2.t_1_entry_count) ReDim maplist(BWT2.t_1_entry_count + 1) For k = 0 To BWT2.t_1_entry_count - 1 BWT2.location_table_1(k).key = br.ReadUInt32 BWT2.location_table_1(k).location = br.ReadUInt32 BWT2.location_table_1(k).loc_str = BWT2.location_table_1(k).location.ToString("x8") maplist(k).name = BWT2.location_table_1(k).loc_str BWT2.location_table_1(k).cdata_str = BWT2.location_table_1(k).loc_str + "o.cdata" Next BWT2.t_2_start = ms.Position BWT2.t_2_d_Length = br.ReadUInt32 BWT2.t_2_entry_count = br.ReadUInt32 ReDim BWT2.index_list_2(BWT2.t_2_entry_count) ReDim BWT2.sorted_table(BWT2.t_2_entry_count) For k = 0 To BWT2.t_2_entry_count - 1 BWT2.index_list_2(k).index = br.ReadUInt32 Next Dim sb As New StringBuilder sb.Length = 0 For c = 0 To size - 1 'sb.Append(":") For r = 0 To size - 1 'sb.Append(maplist((c * size) + r).name) If maplist((c * size) + r).location.x > 0 Then sb.Append("( " + maplist((c * size) + r).location.x.ToString("000.0")) Else sb.Append("(" + maplist((c * size) + r).location.x.ToString("000.0")) End If sb.Append(":") If maplist((c * size) + r).location.y > 0 Then sb.Append(" " + maplist((c * size) + r).location.y.ToString("000.0") + ")" + " ") Else sb.Append(maplist((c * size) + r).location.y.ToString("000.0") + ")" + " ") End If Next sb.Append(vbCrLf) Next 'Console.WriteLine(sb.ToString) For k = 0 To 6 br.ReadUInt32() '7 : no idea what these are Next BWT2.t_3_start = ms.Position BWT2.t_3_d_Length = br.ReadUInt32 BWT2.t_3_entry_count = br.ReadUInt32 ReDim BWT2.location_table_3(BWT2.t_3_entry_count) For k = 0 To BWT2.t_3_entry_count - 1 BWT2.location_table_3(k).LX = br.ReadSingle BWT2.location_table_3(k).min = br.ReadSingle BWT2.location_table_3(k).LY = br.ReadSingle BWT2.location_table_3(k).UX = br.ReadSingle BWT2.location_table_3(k).max = br.ReadSingle BWT2.location_table_3(k).UY = br.ReadSingle Next Dim index As UInt32 = 0 For k = 0 To BWT2.t_2_entry_count - 1 index = BWT2.index_list_2(k).index BWT2.sorted_table(k).LX = BWT2.location_table_3(index).LX BWT2.sorted_table(k).min = BWT2.location_table_3(index).min BWT2.sorted_table(k).LY = BWT2.location_table_3(index).LY BWT2.sorted_table(k).UX = BWT2.location_table_3(index).UX BWT2.sorted_table(k).max = BWT2.location_table_3(index).max BWT2.sorted_table(k).UY = BWT2.location_table_3(index).UY Console.Write("UX: " + BWT2.location_table_3(k).LX.ToString("0000.0") + vbTab) Console.Write("UY: " + BWT2.location_table_3(k).LY.ToString("0000.0") + vbTab) Console.Write("LX: " + BWT2.location_table_3(k).UX.ToString("0000.0") + vbTab) Console.Write("LY: " + BWT2.location_table_3(k).UY.ToString("0000.0") + vbCrLf) Next br.Close() ms.Dispose() End Sub Edited January 31, 2018 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #403066 Posted September 4, 2017 Сейчас секцию BWT2 нужно разобрать! с вечера ничего не ел, плюс надо выполнить овердохрена заданий на лето... потом, как время будет, присоединюсь. Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #403069 Posted September 4, 2017 с вечера ничего не ел, плюс надо выполнить овердохрена заданий на лето... потом, как время будет, присоединюсь.Да я уже сам разобрал многое. BWT2 также содержит в себе блок space.settings/terrain, вот его я сейчас и выискиваю в бинаре 1 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #403220 Posted September 5, 2017 (edited) Расковырял BWT2 немного, BWfr тоже поковырял) Уже неплохой прогресс... BWT2 в space.bin из WoT 0.9.12 не содержит space.settings/terrain, а вот из 0.9.17.1(скорее всего и раньше) уже содержит его. Нужно писать тесты, чтобы не напутать ничего. Распаковать все .chunk и сравнивать с unknown-секциями в BWT2.json) Edited September 5, 2017 by SkepticalFox 1 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #403303 Posted September 6, 2017 WTCP расковырял от 0.9.12 1 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #403311 Posted September 6, 2017 (edited) WTCP расковырял от 0.9.12 0.9.12 говоришь. Ну еще 10 000 вёдер и золотой ключ у тебя в кармане. Edited September 6, 2017 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #403333 Posted September 6, 2017 (edited) 0.9.12 говоришь.А смысл с новыми версиями работать? Они релизят слишком часто обновы, а у меня интернет плохой. Кстати, отличие WTCP в 0.9.12 от актуального клиента только в добавлении visibilityMask, которая в 0.9.12 была в BWSV Ну еще 10 000 вёдер и золотой ключ у тебя в кармане.Ну смотря что понимать под ключом) На данный момент уже можно многое редактировать внутри space.bin) декали/частицы/освещение/деревья/звуки/респауны/водоемы/эффекты линзы Не сделано на данный момент - объекты на картах(самая весомая часть space.bin) и террейн(там совсем немного осталось) Остальные секции вообще можно не трогать и оставлять как есть) Ангары можно вообще без секций террейна и моделей - загружать модели через питон. То есть используя питон и этот проект уже год как можно делать ангары, но что-то не видно особо их(мануал придется писать, наверное). Там же ничего сложного - освещение добавить через BigWorld.PyChunkLight(), а модели через BigWorld.Model() и BigWorld.addModel() Edited September 6, 2017 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #403515 Posted September 8, 2017 (edited) террейн(там совсем немного осталось)Прогресс идет... Общая структура полностью стала видна. Осталось распознать все unknown_* блоки Edited September 8, 2017 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #403525 Posted September 8, 2017 Прогресс идет... Общая структура полностью стала видна. Осталось распознать все unknown_* блоки поздравляю! у меня появилось время, я его проведу очень насыщенно. BWSG все еще нужно разобрать? Quote Share this post Link to post Short link Share on other sites