Объявления
Поздравляем
VDV_forever


Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru.
Я оторву свою задницу от всех дел и обязательно Вас активирую! :smile10:
Добро пожаловать на геройский форум! :smile25:

Обсудим?

Информация об играх и турнирах оffline и online типов. Прими и ты участие в этом поистине увлекательном занятии. Познай вкус победы и горечь поражения! Здесь сражаются плечо о плечо настоящие герои!
offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Обсудим?

Сообщение t800 » 25 май 2017, 09:40

Zelya писал(а):

Странно, я точно помню, что я писал пост тут про все опции сейвов, но не могу его найти. Вобщем, снова по-порядку:

Я использую em-Dosbox+BrowserFS, частично взяв подход Archive.org
Сам, em-Dosbox умеет работать только с образами дисков, что дает возможность сохранять сейвы, как Вы нагуглили, только в передалх жизни страницы.
BrowserFS позволяет "обернуть" файловую систему досбокса. И, например, сохранять файлы через indexeddb. Тогда, закрыв браузер, и даже бутнув компьютер, Вы не потеряете свойих сейвов.

Но все это не имеет смысла, так как обычный досбокс справляется с этой задачей лчуше.

Поэтому, я покапался в BrowserFS, чтобы прибить сохранение файлов. Увы, просто игнорировать сохранялку нельзя, так как Герои будут падать. Но есть несколько вариантов, как их обмануть. Я выбрал, пока, самый простой. Можете посмтореть в логах консоли :).


Так Вы получается что код игры вообще не трогали? Заблочили ввод цифры 1 и настроили виртуальную машину чтобы она удаляла содержимое из папки GAMES?
А отправку результатов у Вас кто делает?
Вернуться к началу

offlineZelya  
Мастер
Мастер
 
Сообщения: 390
Зарегистрирован: 04 янв 2011, 15:16
Пол: Не указан
Поблагодарили: 203 раз.

Re: Обсудим?

Сообщение Zelya » 25 май 2017, 09:53

1. Так Вы получается что код игры вообще не трогали?
Да, не трогал. Чтобы движок был доступен для любой модификации/версии героев
2. Заблочили ввод цифры 1
И нолика, на уровне досбокса. Но этот просто "быстрое решение". Альтернатива - модифицировать самих героев, но мне не хотелось. До "сложного решения", я, пока, не дозрел.
3. настроили виртуальную машину чтобы она удаляла содержимое из папки GAMES?
Нет. Там есть два хака. Во-первых, система теперь удаляет любой новосозданный файл при его закрытии. Но герои не всегда проверяют существует ли нужный файл перед перезаписью данных.
Поэтому, во-вторых, если провалилась попытка открыть в режиме read, он открывается в режиме read|create.
По-началу я хотел отделить все новосозданные файлы в самой файловой системе. Чтобы игра свободно в них писала и, иногда, читала. Но при просмотре директории они бы прятались. Этот подоход более адекватен, но и сложнее вышеописанного. Увы, эмуляция доступа к файловой системе не всегда дает четкое понятие зачем игра в данном случае доступется к файлу. Нужно еще немного "довести" BrowserFS, но это, разве что, на будущее.
4. А отправку результатов у Вас кто делает?
Там минимальный код по отправке обычного веб-риквеста по записи рекордов в файл. Опять же, только для теста. В идеале, это все должно хоть минимально быть закриптовано, а еще идеальнее добавить дополнительные реквесты/респонсы от сервака, с ГУИДами/хешами, интеграцию с учетой, куками и т.д. Но про это можно говорить, только когда будет понятно, с чем интегрировать.
Вернуться к началу

offlineZelya  
Мастер
Мастер
 
Сообщения: 390
Зарегистрирован: 04 янв 2011, 15:16
Пол: Не указан
Поблагодарили: 203 раз.

Re: Обсудим?

Сообщение Zelya » 25 май 2017, 11:15

Даня, это - некрасиво. Я открыл для пробы незащищенную версию, рассказал в деталях, что и как работает. Если Вы хотите поэксперементировать - задеплойте себе где-нибудь. Иначе, я нафиг все позакрываю.
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Обсудим?

Сообщение t800 » 25 май 2017, 11:31

Zelya писал(а):

Даня, это - некрасиво. Я открыл для пробы незащищенную версию, рассказал в деталях, что и как работает. Если Вы хотите поэксперементировать - задеплойте себе где-нибудь. Иначе, я нафиг все позакрываю.


Не знаю я просто сейчас смотрел код вашей странички и пытался понять где у Вас оправляются результ который как написали отправляется браузером.

Ну и нашел вызов этой функции что его оправляет

Код: Выделить всё

function processSave(filename, data){
   if (filename == "/c/DATA/STANDARD.HS" && data.length != 0){
      
      var oReq = new XMLHttpRequest();
      oReq.open("POST", "insertgame.php", true);
      oReq.onload = function (oEvent) {
         console.log("** Done");
      };
      oReq.onerror = function(e) {
         console.log("** An error occurred during the transaction " + e.target.status);
      };
      console.log(data);
      data = JSON.stringify(data);
      console.log(data);
      oReq.setRequestHeader("Content-Type", "application/json")
      oReq.send(data);
      
      
      
   }
   //_shadowFiles[p] = {};
}


И пробы открыл странику insertgame.php чтобы посмотреть что на ней, на ней оказалость ничего кроме надписи ваш результат принят.

ЗЫ А у Вас что от этого что-то поломалось? Извените, я честно не думал, что от того что я пройду по ссылке в вашем скрипте что-то может поломаться.
Вернуться к началу

offlineZelya  
Мастер
Мастер
 
Сообщения: 390
Зарегистрирован: 04 янв 2011, 15:16
Пол: Не указан
Поблагодарили: 203 раз.

Re: Обсудим?

Сообщение Zelya » 25 май 2017, 11:35

ОК, ладно, проехали :). Я думал Вы там хакаете что-то.

Страничку Вы нашли правильно. Туда методом POST передается тело файла с рекордами. На самой страничке он парсится, и результаты пишутся в БД. Если Вас интересуют детали, можем обусдить.


ПС Прошу модеров вынести технические сообщения куда-то.
Вернуться к началу

offlineZelya  
Мастер
Мастер
 
Сообщения: 390
Зарегистрирован: 04 янв 2011, 15:16
Пол: Не указан
Поблагодарили: 203 раз.

Re: Обсудим?

Сообщение Zelya » 25 май 2017, 11:37

t800 писал(а):

ЗЫ А у Вас что от этого что-то поломалось? Извените, я честно не думал, что от того что я пройду по ссылке в вашем скрипте что-то может поломаться.


Нет-нет, ничего не поломалось. Я просто подумал, что Вы пытаетесь "хакнуть систему", хотя я до жтого много раз писал, что она совсем еще "нежная" и "беззащитная" :). Но раз у Вас чисто исследовательсике побуждение - все ОК.
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Обсудим?

Сообщение t800 » 25 май 2017, 11:51

Zelya писал(а):

t800 писал(а):

ЗЫ А у Вас что от этого что-то поломалось? Извените, я честно не думал, что от того что я пройду по ссылке в вашем скрипте что-то может поломаться.


Нет-нет, ничего не поломалось. Я просто подумал, что Вы пытаетесь "хакнуть систему", хотя я до жтого много раз писал, что она совсем еще "нежная" и "беззащитная" :). Но раз у Вас чисто исследовательсике побуждение - все ОК.


OK. Хорошо :smile1:

А вот это похоже не код блокировки

Код: Выделить всё
document.onkeydown = function (e) {
   if (e.keyCode == 50)
        return false;
}


Только почему то странно что я погулил e.keyCode == 50 и нашел что 50 это код для клвиши 2 у вас блокинуется вроле 1 , а для 1 должно быть 49 , а для 0 должно быть 48.

Почему у 50 стоит?
Вернуться к началу

offlineZelya  
Мастер
Мастер
 
Сообщения: 390
Зарегистрирован: 04 янв 2011, 15:16
Пол: Не указан
Поблагодарили: 203 раз.

Re: Обсудим?

Сообщение Zelya » 25 май 2017, 11:56

t800 писал(а):

Только почему то странно что я погулил e.keyCode == 50 и нашел что 50 это код для клвиши 2 у вас блокинуется вроле 1 , а для 1 должно быть 49 , а для 0 должно быть 48.


Это просто тестовый код, который я до сих пор не потрудился убрать. Он ни на что не влияет, так как дизейблит клавиши только для браузера. Сам код отсеивания клавиш находится в dosbox.js
Кстати, Вы преспокойно можете запускать все это оффлайн. Конечно, конекшн с передачей результатов в таком случае не произойдет, но игра будет работать с файлов на локальном компе.
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Обсудим?

Сообщение t800 » 25 май 2017, 13:19

Zelya писал(а):

t800 писал(а):

Только почему то странно что я погулил e.keyCode == 50 и нашел что 50 это код для клвиши 2 у вас блокинуется вроле 1 , а для 1 должно быть 49 , а для 0 должно быть 48.


Это просто тестовый код, который я до сих пор не потрудился убрать. Он ни на что не влияет, так как дизейблит клавиши только для браузера. Сам код отсеивания клавиш находится в dosbox.js
Кстати, Вы преспокойно можете запускать все это оффлайн. Конечно, конекшн с передачей результатов в таком случае не произойдет, но игра будет работать с файлов на локальном компе.


В офлайн он не так интересно, точнее говоря в офлайн я лучше DosBox запущу.

ЗЫ Вот я сейчас сделал он-лайн Lost Vikings (давно мечтал их сделать так чтобы можно было в школе на уроках информатики поиграть) по примеру с Хабра http://wiki.kvkozyrev.org/dosbox/, вроде запутились только почему то звука нет, хотя их пример у меня со звуком шел.
Вернуться к началу

offlineZelya  
Мастер
Мастер
 
Сообщения: 390
Зарегистрирован: 04 янв 2011, 15:16
Пол: Не указан
Поблагодарили: 203 раз.

Re: Обсудим?

Сообщение Zelya » 25 май 2017, 13:40

Я про то, что тестировать сейвы и клавиши легче оффлайн.
Вернуться к началу

Пред.След.

Вернуться в Игры и Турниры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5