jmr Posted March 29, 2015 Share Posted March 29, 2015 Доброго времени суток, уважаемые форумчане. Возможно, вопрос не по адресу, но кое-кто знакомый сказал, что шанс получить ответ тут, в принципе, есть. Так что... Собственно, вопрос вот в чем. Ковыряюсь в содержимом реплея, и добрался до необходимости узнать, в каком направлении сделан результативный выстрел. Те, кто работают с данными, которые "видят" от клиента моды, вполне могут узнать "свои" цифры. Вот что я наковырял. Преамбула. Автор реплея (tankid 216,185,225,1) делает несколько выстрелов в противника (tankid 217,185,225,1).138,18,226,1 - кажется, тоже id автора реплея, только из другого описания. Привожу время пакета, его тип, и значимое содержимое. выстрел1:40,2. Type: 0x8, ptype: 0x13. val: {138,18,226,1, 216,185,225,1,161,105,198,14,0,6,19,53,231,193,54,118,58,65,39,127,82,195,97,53,234,195,84,234,133,64,143,88,20,68,168,232,200,64,0,0,52,68,0,}1:40,2. Type: 0x8, ptype: 0x9. val: {138,18,226,1, 26,24,0,0,26,0,0,0,0,0,} - боекомплект1:40,2. Type: 0x8, ptype: 0xb. val: {138,18,226,1, 216,185,225,1,37,115,104,64,37,115,104,64,0,}1:40,2. Type: 0x8, ptype: 0x0. val: {216,185,225,1, 0,} - ? выстрелпопадание на 128 урона1:40,6. Type: 0x8, ptype: 0xd. val: {138,18,226,1, 161,105,198,14,62,254,131,195,174,108,79,65,172,156,174,66,0,}1:40,6. Type: 0x8, ptype: 0x1e. val: {138,18,226,1, 1,0,0,0, 217,185,225,1, 80,0,8,0,0,} - в кого попали, урон1:40,6. Type: 0x8, ptype: 0x22. val: {138,18,226,1, 0,0,0,0,0,0,0,0,0,}1:40,6. Type: 0x8, ptype: 0x7. val: {217,185,225,1, 216,185,225,1,1,0,0,0,4,1,255,165,112,212,158,110,6,0,}1:40,6. Type: 0x8, ptype: 0x1. val: {217,185,225,1, 60,2, 216,185,225,1, 0,0,} !!!! В кого попали, ?какая-то херь?, кто стрелял повернул корпус, орудие смотрит примерно туда же, выстрел1:50,3. Type: 0x8, ptype: 0x13. val: {138,18,226,1, 216,185,225,1,161,145,198,14,0,6,83,31,231,193,92,123,58,65,23,253,81,195,60,221,233,195,10,238,124,64,102,123,20,68,168,232,200,64,0,0,52,68,0,}1:50,3. Type: 0x8, ptype: 0x9. val: {138,18,226,1, 26,24,0,0,25,0,0,0,0,0,} - боекомплект1:50,3. Type: 0x8, ptype: 0xb. val: {138,18,226,1, 216,185,225,1,37,115,104,64,37,115,104,64,0,}1:50,3. Type: 0x8, ptype: 0x0. val: {216,185,225,1, 0,} - ? выстрелпопадание на 129 урона1:50,7. Type: 0x8, ptype: 0xd. val: {138,18,226,1, 161,145,198,14,31,186,131,195,122,145,77,65,62,186,175,66,0,}1:50,7. Type: 0x8, ptype: 0x1e. val: {138,18,226,1, 1,0,0,0, 217,185,225,1, 16,0,8,0,0,} - в кого попали, урон1:50,7. Type: 0x8, ptype: 0x7. val: {217,185,225,1, 216,185,225,1,1,0,0,0,4,1,255,135,142,198,125,140,6,0,}1:50,7. Type: 0x8, ptype: 0x1. val: {217,185,225,1, 187,1, 216,185,225,1, 0,0,} !!!! проехал сколько-то метров, выстрел2:4,3. Type: 0x8, ptype: 0x13. val: {138,18,226,1, 216,185,225,1,161,201,198,14,0,6,24,130,151,194,18,9,66,65,146,65,117,195,99,220,185,195,28,191,81,64,165,146,36,68,168,232,200,64,0,0,52,68,0,}2:4,3. Type: 0x8, ptype: 0x9. val: {38,18,226,1, 26,24,0,0,24,0,0,0,0,0,} - боекомплект2:4,3. Type: 0x8, ptype: 0xb. val: {138,18,226,1, 216,185,225,1,37,115,104,64,37,115,104,64,0,}2:4,3. Type: 0x8, ptype: 0x0. val: {216,185,225,1, 0,} - ? выстрелпопадание на 130 урона2:4,7. Type: 0x8, ptype: 0xd. val: {138,18,226,1, 161,201,198,14,112,223,131,195,9,189,79,65,86,83,175,66,0,}2:4,7. Type: 0x8, ptype: 0x1e. val: {138,18,226,1, 1,0,0,0, 217,185,225,1, 16,1,8,0,0,} - в кого попали, урон2:4,7. Type: 0x8, ptype: 0x7. val: {217,185,225,1, 216,185,225,1,1,0,0,0,4,1,255,168,127,198,157,129,6,0,}2:4,7. Type: 0x8, ptype: 0x1. val: {217,185,225,1, 57,1, 216,185,225,1, 0,0,} !!!! Это, понятно, не все данные, а только ближайшие пакеты к моментам выстрелов и попаданий, которые с большой вероятностью могут содержать полезную мне информацию. Буду благодарен, если сможете сказать, где тут что еще узнаваемое. И, чтобы два раза не вставать: как (по всей вероятности 3-мя четырехбайтовыми float-ами) в wot передаётся направление? @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted March 29, 2015 Share Posted March 29, 2015 (edited) Тебе на таком низком уровне сложно будет разобраться. Надо подниматься на уровень питона после de-pickle, там ты сможешь работать уже со строгими структурами данных, и по исходникам понять их значение. Поиск по словам BattleReplay и g_replayCtrl в исходниках питона. И, чтобы два раза не вставать: как (по всей вероятности 3-мя четырехбайтовыми float-ами) в wot передаётся направление? Math.Vector3 Edited March 29, 2015 by sirmax @ Quote Link to comment Short link Share on other sites More sharing options...
jmr Posted March 29, 2015 Author Share Posted March 29, 2015 Тебе на таком низком уровне сложно будет разобраться. Надо подниматься на уровень питона после de-pickle, там ты сможешь работать уже со строгими структурами данных, и по исходникам понять их значение. Поиск по словам BattleReplay и g_replayCtrl в исходниках питона. Если я правильно понял, pickle обособляется 0x80 и ".". В этих пакетах такого обособления нет, поэтому так и смотрю на них. @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted March 29, 2015 Share Posted March 29, 2015 да, там действительно это не в питоне, а в WoT.exe: if self.__replayCtrl.startPlayback(fileName): Тут я не помогу, я так глубоко не копал, да и нет желания туда лезть. Может кто-то еще поможет. @ Quote Link to comment Short link Share on other sites More sharing options...
jmr Posted March 29, 2015 Author Share Posted March 29, 2015 Часть пакетов там действительно упакована в pickle. Но интересующие меня в данном случае, очевидно, нет. Собственно, корень волнения вот в этих циферках: 1:40,6. Type: 0x8, ptype: 0x1. val: {217,185,225,1, 60,2, 216,185,225,1, 0,0,} !!!! В кого попали, ?какая-то херь?, кто стрелял1:50,7. Type: 0x8, ptype: 0x1. val: {217,185,225,1, 187,1, 216,185,225,1, 0,0,} !!!!2:04,7. Type: 0x8, ptype: 0x1. val: {217,185,225,1, 57,1, 216,185,225,1, 0,0,} !!!! @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
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.