russian ROMhacking
[ Новые сообщения · Участники · Правила форума · Поиск ]
Проект "Casanova Jr.: Девушка с девушкой - Она и она"
TLTДата: Вторник, 04.10.2016, 18:04 | Сообщение # 46
Генералиссимус
Группа: Администраторы
Сообщений: 2367
Статус: Оффлайн
Передал мне, больше ничего не делай, чтобы не делать параллельные версии, обнуляя усилия друг друга. Жди.


Вот так.
 
ТомахомэДата: Вторник, 04.10.2016, 18:23 | Сообщение # 47
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Подожду.
 
TLTДата: Вторник, 04.10.2016, 19:01 | Сообщение # 48
Генералиссимус
Группа: Администраторы
Сообщений: 2367
Статус: Оффлайн
Всё оказалось проще некуда. Никакой мистики.

В чём твоя ошибка:

У тебя Action блоки стоят НЕ по прорядку:

Action 6, 8, 9, 10, 11, 12, 14

а затем уже 7.

Но в конце цикла обнуление drow.

Ты если Choice=0 Action=7 ставишь Action=12

всё срабатывает, то сразу же после того как Action=12 происходит drow=0 и начинается цикл заново. А если drow=0, то ничего не отрисовывается, поэтому тебе нужно нажать что-то, чтобы стало drow=1 и что-то отрисовалось.

Если блок Action=7 поставить выше блоки Action=12, то после событий 7 отрисуется блок 12 за один цикл, и лишь тогда drow обнулится.

Я переставил в Scena_2 эти 3 блока с чойсами выше, чтобы подряд экшенов был нормальным. Проблема решилась.

В других сценах ты уже сам сможешь это откорректировать.

Чтобы порядок блоков шёл Action=1,2,3,4,5,6,7 и т.д. а не так: Action=2,4,5,7

//Дополнительно добавил в сцену блок дебага трёх функций. Можешь скопировать в другие.



Вот так.
 
ТомахомэДата: Среда, 05.10.2016, 06:23 | Сообщение # 49
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Проверил - всё так и есть. Кстати, через несколько action`ов после того, как я в меню из 14-го Action`а -
Код
if Action=14 then
    locate 22,1: print "Я пытаюсь, но ничего не получается."
    locate 23,1: print "Нужно найти другую. Только где...?"
     if Choice=0 then
   ink 2
   locate 24,1: print "> ИДИ В КЛУБ."
   ink 1
   locate 25,1: print "  ИДИ В КАФЕ."
   locate 26,1: print "  ОСТАНЬСЯ В ПАРКЕ."
  endif
  if Choice=1 then
   locate 24,1: print "  ИДИ В КЛУБ."
   ink 2
   locate 25,1: print "> ИДИ В КАФЕ."
   ink 1
   locate 26,1: print "  ОСТАНЬСЯ В ПАРКЕ."
  endif
  if Choice=2 then
   locate 24,1: print "  ИДИ В КЛУБ."
   locate 25,1: print "  ИДИ В КАФЕ."
   ink 2
   locate 26,1: print "> ОСТАНЬСЯ В ПАРКЕ."
   ink 1
  endif
    endif


- выбираю нижний пункт, и уже приходит пора привести рыжую домой -

Код
'///////////
<...>
if Choice=2 then
    if Action=15 then
    Action=8
    Choice=0
    endif
    endif
'///////////

if Action=8 then
    ink 3
    locate 24,1: print "Она:"
    locate 25,1: print "Ну, если ты настаиваешь..."
    ink 1
    endif
    
    if Action=9 then
    locate 25,1: print "Девушке нравится, что я такой упрямый."
    endif
    
    if Action=10 then
    ink 3
    locate 24,1: print "Она:"
    locate 25,1: print "Честно говоря, я уже спала с подружками. Ну ладно, я пойду с тобой - будет весело!"
    ink 1
    endif
    
    if Action=11 then goto Home_1


- в Home_1 я почему-то после старового нажатия кнопки "А" сразу оказываюсь на тамошнем 12-м action`е:
Код
'///////////
    if Choice=0 then
<...>
if Action=12 then
    locate 25,1: print "Фотомодель включает радио."
    endif


Тут какая может быть причина?
 
TLTДата: Среда, 05.10.2016, 10:19 | Сообщение # 50
Генералиссимус
Группа: Администраторы
Сообщений: 2367
Статус: Оффлайн
Цитата Томахомэ ()
в Home_1 я почему-то после старового нажатия кнопки "А" сразу оказываюсь на тамошнем 12-м action`е:

А нужно в каком, в Action=1?

Тогда, вероятно, нужно в начале загрузки сцены обнулить переменную, прописав Action=0 где-то выше строчки locate 25,1: print "Press button *A*" в этой сцене, в начале.

Так попробуй.


В предыдущей сцене же у тебя было завершено на

Код
if Action=11 then goto Home_1


=> после одного нажатия *A* стало Action=12.

Поэтому можно сделать так:

Код
if Action=11 then
Action=0
goto Home_1
endif



Вот так.
 
ТомахомэДата: Среда, 05.10.2016, 12:21 | Сообщение # 51
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Цитата TLT ()
Поэтому можно сделать так:


Сделано. Теперь переносит точно куда надо. И другие баги с перенаправлением из парковых меню благодаря такому трюку тоже исправил.
Ещё одна важная задача - исправить "укуренность" палитры в начале Home_1, Lose`ов и после привода домой блондинки из клуба.


Сообщение отредактировал Томахомэ - Среда, 05.10.2016, 13:00
 
TLTДата: Среда, 05.10.2016, 20:18 | Сообщение # 52
Генералиссимус
Группа: Администраторы
Сообщений: 2367
Статус: Оффлайн
Цитата Томахомэ ()
исправить "укуренность" палитры в начале Home_1, Lose`ов и после привода домой блондинки из клуба.


Вероятно это связано с тем, что ты где-то неправильно использовал функцию ink 0, 1, 2, 3.

попробуй разкомментировать перед отрисовкой фоновой картинки в тех локациях.

Цитата
' ink 0
DRAWTILESINC 256,0,0,40,28



Вот так.
 
ТомахомэДата: Четверг, 06.10.2016, 04:44 | Сообщение # 53
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Цитата TLT ()
попробуй разкомментировать перед отрисовкой фоновой картинки в тех локациях.


Сработало! Правда, шрифт в Lose`ах и в сцене после приведения девушки из клуба домой теперь из голубого перекрасился в коричневый.
 
TLTДата: Четверг, 06.10.2016, 18:20 | Сообщение # 54
Генералиссимус
Группа: Администраторы
Сообщений: 2367
Статус: Оффлайн
Томахомэ, ну в чём проблема? Используй ink 0, 1, 2, 3.

Голубой это вторая палитра - ink 1

Прикрепления: 2650113.png (3.9 Kb)



Вот так.
 
ТомахомэДата: Пятница, 07.10.2016, 04:53 | Сообщение # 55
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Цитата TLT ()
Томахомэ, ну в чём проблема? Используй ink 0, 1, 2, 3.

Голубой это вторая палитра - ink 1


Ну вот я сразу и вскрыл корень проблемы - оказывается, в этих местах я предварительно удалил следующую после кода установки фона строчку с указанием нажать кнопку "А" (чтобы переход был менее резким и более незаметным для игрока, к тому же, он наверняка уже давно понял, что для продвижения по игре надо жать "А"), а вместе с ней по ошибке - и команду ink. Всё сходится. Теперь ink вернул. Текст снова такой, как надо.


Сообщение отредактировал Томахомэ - Пятница, 07.10.2016, 05:04
 
ТомахомэДата: Пятница, 07.10.2016, 15:16 | Сообщение # 56
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Хорошие новости - прогресс существенно ускорился.
Вот тут - новая версия, где исправлены все баги текста, палитры и переходов. Добавлено пара новых реплик, убран за ненадобностью индикатор переменных Action, Choice и drow в парке и клубе, добавлены парочка новых реплик, а также надписи "Нажмите А" в начале каждого (кроме Scena_0) label`а заменены соответственно на первые их реплики (естественно, с соответствующими изменениями расписания Action`ов).
Текстовая часть игры теперь полностью проходибельна.

Остальное дело, как мне кажется, в принципе за малым -


  • сменить шрифты на те, что использовались в оригинальной игре;
  • создать для текста реплик специальную рамочку, как в оригинальной игре (Выглядит она вот так. Сам текст при этом должен быть выровнен по центру (ширина) и нижней части экрана (высота), как в следующих далее скриншотах);
  • для ещё некоторой части внутриигорового текста, например, надписей You Win и Game Over должна быть отведена специальная полупрозрачная толстая полоска, как на ещё одном скриншоте, анимированно развигающаяся из середины экрана;
  • добавить аватарки персонажей, которые должны будут помещаться над левым верхним углом рамочек у некоторых реплик (Например, таких, или вот таких. К счастью, все аватарки из оригинальной игре хранятся в привычном для наших компов файле, прямо внутри архива - файл с ними всеми: вот он, прямиком из .jar`а.);
  • изменить структуру меню в соответствии с оригиналом (см. первый скриншот с аватаркой);
  • улучшить графику, приблизив к оригиналу, насколько это вообще возможно;
  • музончик тоже собственный нужен, разумеется;
  • Ну и конечно, же, ту самую мини-игру из оригинала тоже добавить надо.


То, что я перечислил - это лишь первоочерёдные на данный момент задачи. Кто знает, сколько ещё игре осталось до полной готовности.
 
TLTДата: Пятница, 07.10.2016, 16:20 | Сообщение # 57
Генералиссимус
Группа: Администраторы
Сообщений: 2367
Статус: Оффлайн
Цитата Томахомэ ()
Ну вот я сразу и вскрыл корень проблемы - оказывается, в этих местах я предварительно удалил следующую после кода установки фона строчку с указанием нажать кнопку "А" (чтобы переход был менее резким и более незаметным для игрока, к тому же, он наверняка уже давно понял, что для продвижения по игре надо жать "А"), а вместе с ней по ошибке - и команду ink. Всё сходится. Теперь ink вернул. Текст снова такой, как надо.


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

Цитата Томахомэ ()
Ну и конечно, же, ту самую мини-игру из оригинала тоже добавить надо.

Дай сценарий мне как до неё дойти в j2me игре. Чтобы я глянул, что она из себя представляет.



Вот так.
 
ТомахомэДата: Пятница, 07.10.2016, 16:51 | Сообщение # 58
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Цитата TLT ()
Дай сценарий мне как до неё дойти в j2me игре. Чтобы я глянул, что она из себя представляет.


Всё просто - сначала отправляемся в парк. В первом тамошнем меню выбираем убедить рыжую встретиться с моделью, а в следующем всё-таки остаться в парке. После этого рыжая таки согласится встретиться. Когда приведём домой, в меню выбираем пункт налить вина. В следующем меню выбираем сходить в магазин за вином. Купив, сразу же при повялении первого же меню бежим домой, не задерживаемся. А там-то нас как раз ждут девочки "на взлёте", жаждущие страстного и нежного массажа. Вот тут как раз та самая мини-игруха и начинается.
 
TLTДата: Пятница, 07.10.2016, 21:46 | Сообщение # 59
Генералиссимус
Группа: Администраторы
Сообщений: 2367
Статус: Оффлайн
Томахомэ, дошел. Но там - "слишком быстро" пишет. В чём суть мини-игры, в чём механика? Это же просто анимация...


Вот так.
 
ТомахомэДата: Суббота, 08.10.2016, 05:41 | Сообщение # 60
Генерал-лейтенант
Группа: Проверенные
Сообщений: 530
Статус: Оффлайн
Цитата TLT ()
Томахомэ, дошел. Но там - "слишком быстро" пишет. В чём суть мини-игры, в чём механика? Это же просто анимация...


Суть в том, чтобы точно попасть в нужную скорость - стараться массировать не слишком быстро, но и не слишком медленно. Это, конечно, непросто, но вполне осуществимо.

А вообще, по логике, наверняка механика мини-игры должна быть прописана в коде (спасибо DJ Java Decompiler`у, сегодня он доказал, что не просто так у меня место на жёстком диске занимает - мне удалось с его помощью декомпилировать все .class-файлы, а потом преобразовать в обыкновенные текстовые, так что знающие жабу люди могут помочь отыскать код мини-игры): все исходники в текстовом виде я собрал в этот архив, плюс туда добавлены ещё несколько файлов из jar`а, которые были текстовыми изначально - conf, lang, scenario, и т. д.
 
Поиск: