Fixing dialogues and cutscenes, minor bug fixing

This commit is contained in:
Vladislav Khorev committed 2026-06-13 15:07:09 +03:00
1 parent 2b32fce5e0
commit fff5a9d4aa
18 files changed
+4010 -2208

No files matched your search

-65
View File
@@ -1,65 +0,0 @@
{
"cutscenes": [
{
"id": "test_cutscene_01",
"background": "resources/black.png",
"durationMs": 5000,
"fadeOutMs": 500,
"fadeInMs": 500,
"endFadeOutMs": 500,
"endFadeInMs": 500,
"imageSegments": [
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"startMs": 0,
"endMs": 8000,
"fadeInMs": 0,
"width": 1280,
"height": 720,
"from": {
"centerX": 0.3, "scale": 1.2
},
"to": {
"centerX": 0.7, "scale": 1.2
},
"easing": "Linear"
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida1_x.png",
"startMs": 0,
"endMs": 8000,
"width": 1280,
"height": 720,
"from": {
"centerX": 0.3,
"centerY": 0.5,
"scale": 1.0
},
"to": {
"centerX": 0.7,
"centerY": 0.5,
"scale": 1.0
}
}
],
"lines": [
{
"speaker": "Аида Дженибековна",
"text": "Здравствуйте, студенты.. Кого я вижу, где вы были весь семестр?",
"durationMs": 3000
},
{
"speaker": "Аида Дженибековна",
"text": "В эпизоде \"Семетей\" трилогии \"Манас\", изменники Канчоро и Кыяз захватывают власть над кыргызами.",
"durationMs": 3000
},
{
"speaker": "Аида Дженибековна",
"text": "На сегодня лекция завершена. Домашнее задание - к практическому занятию вы должны подготовить презентации, каждый по своей теме.",
"durationMs": 2000
}
]
}
]
}
-396
View File
@@ -1,396 +0,0 @@
{
"cutscenes": [
{
"id": "test_cutscene_01",
"background" : "resources/black.png",
"skippable": true,
"durationMs": 5000,
"fadeOutMs": 500,
"fadeInMs": 500,
"endFadeOutMs": 500,
"endFadeInMs": 500,
"onFadeInCallback": "",
"imageSegments": [
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 3133,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "EaseOutCubic",
"from": {
"centerX": 0.51,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.58,
"centerY": 0.5,
"scale": 1.15
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida1_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 3150,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "EaseOutCubic",
"from": {
"centerX": 0.52,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.575,
"centerY": 0.5,
"scale": 1.15
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 3150,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "EaseOutCubic",
"from": {
"centerX": 0.56,
"centerY": 0.64,
"scale": 1.3
},
"to": {
"centerX": 0.5,
"centerY": 0.63,
"scale": 1.4
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 3050,
"endMs": 12150,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.56,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida3_x.png",
"width": 1280,
"height": 720,
"startMs": 3050,
"endMs": 12166,
"fadeInMs": 1100,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.52,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 3033,
"endMs": 12050,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.7,
"scale": 1.3
},
"to": {
"centerX": 0.58,
"centerY": 0.7,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 11115,
"endMs": 18149,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.59,
"centerY": 0.5,
"scale": 1.3
},
"to": {
"centerX": 0.49,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida2_x.png",
"width": 1280,
"height": 720,
"startMs": 12032,
"endMs": 18165,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.53,
"centerY": 0.5,
"scale": 1.3
},
"to": {
"centerX": 0.49,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 11951,
"endMs": 18150,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.45,
"centerY": 0.8,
"scale": 1.3
},
"to": {
"centerX": 0.6,
"centerY": 0.8,
"scale": 1.26
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 23967,
"endMs": 30000,
"fadeInMs": 500,
"fadeOutMs": 500,
"easing": "Linear",
"from": {
"centerX": 0.64,
"centerY": 0.3,
"scale": 2
},
"to": {
"centerX": 0.5,
"centerY": 0.3,
"scale": 2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida3_x.png",
"width": 1280,
"height": 720,
"startMs": 24016,
"endMs": 30000,
"fadeInMs": 500,
"fadeOutMs": 500,
"easing": "Linear",
"from": {
"centerX": 0.63,
"centerY": 0.3,
"scale": 2
},
"to": {
"centerX": 0.51,
"centerY": 0.3,
"scale": 2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 18034,
"endMs": 24151,
"fadeInMs": 1000,
"fadeOutMs": 700,
"easing": "EaseOutSine",
"from": {
"centerX": 0.25,
"centerY": 0.2,
"scale": 2.3
},
"to": {
"centerX": 0.3,
"centerY": 0.2,
"scale": 2.3
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 30000,
"endMs": 33683,
"fadeInMs": 500,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.45,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida2_x.png",
"width": 1280,
"height": 720,
"startMs": 30333,
"endMs": 33466,
"fadeInMs": 500,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.43,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 30400,
"endMs": 33483,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.65,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.6,
"scale": 1.2
}
}
],
"lines": [
{
"speaker": "Аида Дженибековна",
"text": "Опаздывающие, заходите скорее и занимайте свои места! Лекция начинается!",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В эпизоде \"Семетей\" трилогии \"Манас\", изменники Канчоро и Кыяз захватывают власть над кыргызами.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Чтобы спасти раненого богатыря Семетея, фея Кёкмончок с помощью заклинания уводит его в иной мир.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Этот мир описан в эпосе Манас как Кайып или Аль-Гайб, но некоторые ученые называют его миром теней.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В этом мире обитают феи, духи и джинны. Простым смертным в этот мир дорога закрыта.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Время там течет по другому - за один день в теневом мире могут пройти годы жизни обычного мира.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Обычно, мир теней никак не пересекается с нашим миром живых людей.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Но в критические моменты для народа, обитатели теневого мира могут приходить в наш мир.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Совсем недавно закончилась пандемия, а сегодня мир захлестнули кровавые войны.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В такие кризисные моменты истории, грань между мирами становится особенно тонкой.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "На сегодня лекция завершена. Все свободны! Задания на этот модуль вы получите индивидуально!",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
}
]
}
]
}
-415
View File
@@ -1,415 +0,0 @@
{
"cutscenes": [
{
"id": "test_cutscene_01",
"skippable": true,
"durationMs": 34000,
"fadeOutMs": 500,
"fadeInMs": 500,
"endFadeOutMs": 0,
"endFadeInMs": 0,
"onFadeInCallback": "",
"imageSegments": [
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 34000,
"fadeInMs": 0,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 3133,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "EaseOutCubic",
"from": {
"centerX": 0.51,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.58,
"centerY": 0.5,
"scale": 1.15
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida1_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 3150,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "EaseOutCubic",
"from": {
"centerX": 0.52,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.575,
"centerY": 0.5,
"scale": 1.15
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 3150,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "EaseOutCubic",
"from": {
"centerX": 0.56,
"centerY": 0.36,
"scale": 1.3
},
"to": {
"centerX": 0.5,
"centerY": 0.37,
"scale": 1.4
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 3050,
"endMs": 12150,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.56,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida3_x.png",
"width": 1280,
"height": 720,
"startMs": 3050,
"endMs": 12166,
"fadeInMs": 1100,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.52,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 3033,
"endMs": 12050,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.3,
"scale": 1.3
},
"to": {
"centerX": 0.58,
"centerY": 0.3,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 11115,
"endMs": 18149,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.59,
"centerY": 0.5,
"scale": 1.3
},
"to": {
"centerX": 0.49,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida2_x.png",
"width": 1280,
"height": 720,
"startMs": 12032,
"endMs": 18165,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.53,
"centerY": 0.5,
"scale": 1.3
},
"to": {
"centerX": 0.49,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 11951,
"endMs": 18150,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.45,
"centerY": 0.2,
"scale": 1.3
},
"to": {
"centerX": 0.6,
"centerY": 0.2,
"scale": 1.26
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 23967,
"endMs": 30000,
"fadeInMs": 500,
"fadeOutMs": 500,
"easing": "Linear",
"from": {
"centerX": 0.64,
"centerY": 0.7,
"scale": 2
},
"to": {
"centerX": 0.5,
"centerY": 0.7,
"scale": 2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida3_x.png",
"width": 1280,
"height": 720,
"startMs": 24016,
"endMs": 30000,
"fadeInMs": 500,
"fadeOutMs": 500,
"easing": "Linear",
"from": {
"centerX": 0.63,
"centerY": 0.7,
"scale": 2
},
"to": {
"centerX": 0.51,
"centerY": 0.7,
"scale": 2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 18067,
"endMs": 24184,
"fadeInMs": 1000,
"fadeOutMs": 700,
"easing": "EaseOutSine",
"from": {
"centerX": 0.25,
"centerY": 0.8,
"scale": 2.3
},
"to": {
"centerX": 0.3,
"centerY": 0.8,
"scale": 2.3
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 30000,
"endMs": 33683,
"fadeInMs": 500,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.45,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida2_x.png",
"width": 1280,
"height": 720,
"startMs": 30333,
"endMs": 33466,
"fadeInMs": 500,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.43,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 30400,
"endMs": 33483,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.35,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.4,
"scale": 1.2
}
}
],
"lines": [
{
"speaker": "Аида Дженибековна",
"text": "Опаздывающие, заходите скорее и занимайте свои места! Лекция начинается!",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В эпизоде \"Семетей\" трилогии \"Манас\", изменники Канчоро и Кыяз захватывают власть над кыргызами.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Чтобы спасти раненого богатыря Семетея, фея Кёкмончок с помощью заклинания уводит его в иной мир.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Этот мир описан в эпосе Манас как Кайып или Аль-Гайб, но некоторые ученые называют его миром теней.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В этом мире обитают феи, духи и джинны. Простым смертным в этот мир дорога закрыта.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Время там течет по другому - за один день в теневом мире могут пройти годы жизни обычного мира.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Обычно, мир теней никак не пересекается с нашим миром живых людей.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Но в критические моменты для народа, обитатели теневого мира могут приходить в наш мир.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Совсем недавно закончилась пандемия, а сегодня мир захлестнули кровавые войны.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В такие кризисные моменты истории, грань между мирами становится особенно тонкой.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "На сегодня лекция завершена. Все свободны! Задания на этот модуль вы получите индивидуально!",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
}
]
}
]
}
-415
View File
@@ -1,415 +0,0 @@
{
"cutscenes": [
{
"id": "lection_cutscene001",
"skippable": true,
"durationMs": 37000,
"fadeOutMs": 500,
"fadeInMs": 500,
"endFadeOutMs": 0,
"endFadeInMs": 2000,
"onFadeInCallback": "",
"imageSegments": [
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 37052,
"fadeInMs": 0,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 6133,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "EaseOutCubic",
"from": {
"centerX": 0.51,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.58,
"centerY": 0.5,
"scale": 1.15
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida1_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 6150,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "EaseOutCubic",
"from": {
"centerX": 0.52,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.575,
"centerY": 0.5,
"scale": 1.15
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 6167,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "EaseOutCubic",
"from": {
"centerX": 0.56,
"centerY": 0.36,
"scale": 1.3
},
"to": {
"centerX": 0.5,
"centerY": 0.37,
"scale": 1.4
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 6000,
"endMs": 15100,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.56,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida3_x.png",
"width": 1280,
"height": 720,
"startMs": 6050,
"endMs": 15166,
"fadeInMs": 1100,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.52,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 6066,
"endMs": 15083,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.3,
"scale": 1.3
},
"to": {
"centerX": 0.58,
"centerY": 0.3,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 14436,
"endMs": 21470,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.59,
"centerY": 0.5,
"scale": 1.3
},
"to": {
"centerX": 0.49,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida2_x.png",
"width": 1280,
"height": 720,
"startMs": 15348,
"endMs": 21481,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.53,
"centerY": 0.5,
"scale": 1.3
},
"to": {
"centerX": 0.49,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 15388,
"endMs": 21587,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.45,
"centerY": 0.2,
"scale": 1.3
},
"to": {
"centerX": 0.6,
"centerY": 0.2,
"scale": 1.26
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 26588,
"endMs": 32621,
"fadeInMs": 500,
"fadeOutMs": 500,
"easing": "Linear",
"from": {
"centerX": 0.64,
"centerY": 0.7,
"scale": 2
},
"to": {
"centerX": 0.5,
"centerY": 0.7,
"scale": 2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida3_x.png",
"width": 1280,
"height": 720,
"startMs": 26637,
"endMs": 32621,
"fadeInMs": 500,
"fadeOutMs": 500,
"easing": "Linear",
"from": {
"centerX": 0.63,
"centerY": 0.7,
"scale": 2
},
"to": {
"centerX": 0.51,
"centerY": 0.7,
"scale": 2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 20744,
"endMs": 26861,
"fadeInMs": 1000,
"fadeOutMs": 700,
"easing": "EaseOutSine",
"from": {
"centerX": 0.25,
"centerY": 0.8,
"scale": 2.3
},
"to": {
"centerX": 0.3,
"centerY": 0.8,
"scale": 2.3
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 32546,
"endMs": 36229,
"fadeInMs": 500,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.45,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida2_x.png",
"width": 1280,
"height": 720,
"startMs": 32542,
"endMs": 35675,
"fadeInMs": 500,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.43,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 32497,
"endMs": 35580,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.35,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.4,
"scale": 1.2
}
}
],
"lines": [
{
"speaker": "Аида Дженибековна",
"text": "Опаздывающие, заходите скорее и занимайте свои места! Лекция начинается!",
"durationMs": 4000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В эпизоде \"Семетей\" трилогии \"Манас\", изменники Канчоро и Кыяз захватывают власть над кыргызами.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Чтобы спасти раненого богатыря Семетея, фея Кёкмончок с помощью заклинания уводит его в иной мир.",
"durationMs": 3201,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Этот мир описан в эпосе Манас как Кайып или Аль-Гайб, но некоторые ученые называют его миром теней.",
"durationMs": 3202,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В этом мире обитают феи, духи и джинны. Простым смертным в этот мир дорога закрыта.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Время там течет по другому - за один день в теневом мире могут пройти годы жизни обычного мира.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Обычно, мир теней никак не пересекается с нашим миром живых людей.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Но в критические моменты для народа, обитатели теневого мира могут приходить в наш мир.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Совсем недавно закончилась пандемия, а сегодня мир захлестнули кровавые войны.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В такие кризисные моменты истории, грань между мирами становится особенно тонкой.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "На сегодня лекция завершена. Все свободны! Задания на этот модуль вы получите индивидуально!",
"durationMs": 4000,
"waitForConfirm": false,
"luaCallback": ""
}
]
}
]
}
@@ -38,7 +38,7 @@
"endMs": 6133,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "EaseOutCubic",
"easing": "Linear",
"from": {
"centerX": 0.51,
"centerY": 0.5,
@@ -58,7 +58,7 @@
"endMs": 6150,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "EaseOutCubic",
"easing": "Linear",
"from": {
"centerX": 0.52,
"centerY": 0.5,
@@ -78,7 +78,7 @@
"endMs": 6167,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "EaseOutCubic",
"easing": "Linear",
"from": {
"centerX": 0.56,
"centerY": 0.36,
@@ -452,12 +452,12 @@
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"centerY": 0.55,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"centerY": 0.55,
"scale": 1.1
}
},
@@ -472,12 +472,12 @@
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.7,
"centerY": 0.6,
"scale": 1.3
},
"to": {
"centerX": 0.5,
"centerY": 0.7,
"centerY": 0.6,
"scale": 1.5
}
},
@@ -492,12 +492,12 @@
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"centerY": 0.35,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"centerY": 0.35,
"scale": 1
}
},
@@ -512,12 +512,12 @@
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"centerY": 0.6,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"centerY": 0.6,
"scale": 1
}
}
File diff suppressed because it is too large. Load diff
+182 -40
View File
@@ -214,52 +214,194 @@
"type": "End"
}
]
}
],
"cutscenes": [
},
{
"id": "darklands_exit001",
"background": "resources/test_cutscene001.png",
"durationMs": 5000,
"fadeOutMs": 500,
"fadeInMs": 500,
"endFadeOutMs": 500,
"endFadeInMs": 500,
"cameraTrack": [
"id": "dialog_chat_parents001",
"start": "line_1",
"nodes": [
{
"durationMs": 3000,
"from": { "focusX": 0.3, "focusY": 0.50, "zoom": 1.10, "rotationDeg": 0.0 },
"to": { "focusX": 0.7, "focusY": 0.50, "zoom": 1.00, "rotationDeg": 0.0 },
"easing": "EaseInOutSine"
},
{
"durationMs": 3000,
"from": { "focusX": 0.3, "focusY": 0.50, "zoom": 1.0, "rotationDeg": 0.0 },
"to": { "focusX": 0.7, "focusY": 0.50, "zoom": 1.1, "rotationDeg": 0.0 },
"easing": "EaseInOutCubic"
}
],
"lines": [
{
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Кажется, яркий свет луны разбудил меня от этого сна.",
"durationMs": 3000
},
{
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Жесть вообще, хочу спать.",
"durationMs": 3000
"id": "line_1",
"type": "Line",
"speaker": "Отец",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Бекзат, сынок, мы c мамой тебе отправили немного денег, постарайся прожить на эти деньги до конца недели!",
"next": "line_2",
"chatBubble": "in"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Бекзат",
"portrait": "rresources/dialogue/portrait_hero_neutral.png",
"text": "Который час?",
"durationMs": 2000,
"background": "resources/test_cutscene001.png"
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Спасибо!",
"next": "end_1",
"chatBubble": "out"
},
{
"id": "end_1",
"type": "End"
}
]
}
},
{
"id": "dialog_chat_news001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Отец",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Жители Бишкека все чаще жалуются на депрессию и апатию. Смотрите свежее видео об этом на нашем канале!",
"next": "end_1",
"chatBubble": "in"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_chat_aiperi001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Бекзат, помнишь мы скидывались на торт для Аиды Джаныбековой? Я тогда еще приносила скатерть, тарелки и нож для торта. И я до сих пор не получила назад ничего.",
"next": "line_2",
"chatBubble": "in"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Скатерть и тарелки вроде бы лежат в студзоне.",
"next": "line_3",
"chatBubble": "out"
},
{
"id": "line_3",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "А нож?",
"next": "line_4",
"chatBubble": "in"
},
{
"id": "line_4",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Нож, наверное, так и остался в учительской.",
"next": "line_5",
"chatBubble": "out"
},
{
"id": "line_5",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "А давай не \"наверное\"?",
"next": "line_6",
"chatBubble": "in"
},
{
"id": "line_6",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "А давай ты приедешь в универ, зайдешь в учительскую, заберешь нож и отдашь мне?",
"next": "line_7",
"chatBubble": "in"
},
{
"id": "line_7",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "У вас сегодня как раз Аида ведет лекцию. После лекции попросишь у нее ключи от учительской и заберешь нож.",
"next": "line_8",
"chatBubble": "in"
},
{
"id": "line_8",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Почему ты сама не можешь забрать?",
"next": "line_9",
"chatBubble": "out"
},
{
"id": "line_9",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Ты же знаешь, если я встречу Аиду, она 100% даст мне какое-нибудь сложное задание.",
"next": "line_10",
"chatBubble": "in"
},
{
"id": "line_10",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "И потом, это ты у меня брал нож, с чего я должна ходить искать его по всему универу?",
"next": "line_11",
"chatBubble": "in"
},
{
"id": "line_11",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Так что жду тебя в универе! Не вздумай прогулять!",
"next": "setflag_1",
"chatBubble": "in",
"questUnlock": "aiperi_knife"
},
{
"id": "setflag_1",
"type": "SetFlag",
"effects": [
{
"flag": "aiperi_knife_aware",
"value": 1
}
],
"next": "end_1"
},
{
"id": "end_1",
"luaCallback": "on_aiperi_dialog_over",
"type": "End"
}
]
},
{
"id": "dialog_chat_aiperi002",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Бекзат, ты где? Я жду тебя возле лестницы.",
"next": "end_1",
"chatBubble": "in"
},
{
"id": "end_1",
"type": "End"
}
]
}
]
}
@@ -1,6 +1,6 @@
{
"dialogues": [
{
{
"id": "darklands_day_dialog001",
"start": "line_1",
"nodes": [
@@ -2039,6 +2039,297 @@
"next": "line_17"
}
]
},
{
"id": "dialog_chat_parents001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Отец",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Бекзат, сынок, мы c мамой тебе отправили немного денег, постарайся прожить на эти деньги до конца недели!",
"next": "line_2",
"chatBubble": "in"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Спасибо!",
"next": "end_1",
"chatBubble": "out"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_chat_news001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Отец",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Жители Бишкека все чаще жалуются на депрессию и апатию. Смотрите свежее видео об этом на нашем канале!",
"next": "end_1",
"chatBubble": "in"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_chat_aiperi001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Бекзат, помнишь мы скидывались на торт для Аиды Джаныбековой? Я тогда еще приносила скатерть, тарелки и нож для торта. И я до сих пор не получила назад ничего.",
"next": "line_2",
"chatBubble": "in"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Скатерть и тарелки вроде бы лежат в студзоне.",
"next": "line_3",
"chatBubble": "out"
},
{
"id": "line_3",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "А нож?",
"next": "line_4",
"chatBubble": "in"
},
{
"id": "line_4",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Нож, наверное, так и остался в учительской.",
"next": "line_5",
"chatBubble": "out"
},
{
"id": "line_5",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "А давай не \"наверное\"?",
"next": "line_6",
"chatBubble": "in"
},
{
"id": "line_6",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "А давай ты приедешь в универ, зайдешь в учительскую, заберешь нож и отдашь мне?",
"next": "line_7",
"chatBubble": "in"
},
{
"id": "line_7",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "У вас сегодня как раз Аида ведет лекцию. После лекции попросишь у нее ключи от учительской и заберешь нож.",
"next": "line_8",
"chatBubble": "in"
},
{
"id": "line_8",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Почему ты сама не можешь забрать?",
"next": "line_9",
"chatBubble": "out"
},
{
"id": "line_9",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Ты же знаешь, если я встречу Аиду, она 100% даст мне какое-нибудь сложное задание.",
"next": "line_10",
"chatBubble": "in"
},
{
"id": "line_10",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "И потом, это ты у меня брал нож, с чего я должна ходить искать его по всему универу?",
"next": "line_11",
"chatBubble": "in"
},
{
"id": "line_11",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Так что жду тебя в универе! Не вздумай прогулять!",
"next": "setflag_1",
"chatBubble": "in",
"questUnlock": "aiperi_knife"
},
{
"id": "setflag_1",
"type": "SetFlag",
"effects": [
{
"flag": "aiperi_knife_aware",
"value": 1
}
],
"next": "end_1"
},
{
"id": "end_1",
"luaCallback": "on_aiperi_dialog_over",
"type": "End"
}
]
},
{
"id": "dialog_chat_aiperi002",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Бекзат, ты где? Я жду тебя возле лестницы.",
"next": "end_1",
"chatBubble": "in"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "cancel_phone_night_aiperi001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я не буду писать Айпери, она опять будет издеваться надо мной.",
"next": "line_2"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я лучше прочитаю заклинание, перейду в теневой мир и так выберусь наружу.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "cancel_phone_morning_aiperi001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я не буду беспокоить Айпери. Я могу выбраться из универа и без ее помощи.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_chat_aiperi003",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Айпери ты куда убежала?",
"next": "line_2"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_aiperi.png",
"text": "Ты достал уже, я не могу тебя ждать вечно! Возишься как сонная муха.",
"next": "line_3"
},
{
"id": "line_3",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_aiperi.png",
"text": "У меня нет времени ждать тебя, мне уже пора на курсы ехать.",
"next": "line_4"
},
{
"id": "line_4",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Так когда я тебе нож верну?",
"next": "line_5"
},
{
"id": "line_5",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_aiperi.png",
"text": "Приходи завтра в универ! Я каждый день в унике с раннего утра.",
"next": "line_6"
},
{
"id": "line_6",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Хорошо, встретимся завтра.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
}
]
],
"cutscenes": []
}
File diff suppressed because it is too large. Load diff
+29 -14
View File
@@ -107,7 +107,7 @@ function on_bed_sleep()
game_api.set_player_hp(200)
--game_api.set_day() - done in cutscene
local day = game_api.getIntValue("day")
game_api.setIntValue("day", day+1)
game_api.setIntValue("day", day + 1)
print("Setting to day 1----x")
end
end
@@ -204,34 +204,49 @@ game_api.set_enter_night_callback(
end
)
local chat0_opened = false
local chat1_opened = false
local chat2_opened = false
game_api.set_chat_callbacks(
function()
if not chat0_opened then
chat0_opened = true
game_api.start_dialogue("dialog_chat_aiperi001")
if (not game_api.is_night()) and (not game_api.is_dawn()) then
local aiperi_chat_opened = game_api.getIntValue("aiperi_chat_opened")
if aiperi_chat_opened == 0 then
game_api.setIntValue("aiperi_chat_opened", 1)
local aiperi_knife_aware = game_api.getIntValue("aiperi_knife_aware")
local aiperi_talked_after_knife = game_api.getIntValue("aiperi_talked_after_knife")
if (player_hold_knife) and (aiperi_talked_after_knife == 0) then
game_api.start_dialogue("dialog_chat_aiperi003")
game_api.setIntValue("aiperi_talked_after_knife", 1)
else
if aiperi_knife_aware == 0 then
local lection_is_over = game_api.getIntValue("lection_is_over")
if (lection_is_over == 1) then
game_api.start_dialogue("dialog_chat_aiperi002")
else
game_api.start_dialogue("dialog_chat_aiperi001")
end
end
end
end
end
end,
function()
if not chat1_opened then
chat1_opened = true
local parents_chat_opened = game_api.getIntValue("parents_chat_opened")
if parents_chat_opened == 0 then
game_api.setIntValue("parents_chat_opened", 1)
game_api.start_dialogue("dialog_chat_parents001")
end
end,
function()
if not chat2_opened then
chat2_opened = true
local news_chat_opened = game_api.getIntValue("news_chat_opened")
if news_chat_opened == 0 then
game_api.setIntValue("news_chat_opened", 1)
game_api.start_dialogue("dialog_chat_news001")
end
end
)
function on_aiperi_dialog_over()
print("on_aiperi_dialog_over called")
game_api.close_phone()
end
+44 -1
View File
@@ -26,7 +26,7 @@ function on_container_clicked()
game_api.start_dialogue("dialog_contaier003")
elseif player_container_aware == 1 then
game_api.start_dialogue("dialog_contaier002")
game_api.setIntValue("player_has_coursework", 1)
game_api.setIntValue("player_has_coursework", 1)
else
game_api.start_dialogue("dialog_contaier001")
end
@@ -55,6 +55,7 @@ game_api.set_darklands_callbacks(
print("Setting to day 1----")
game_api.setIntValue("day", 1)
game_api.set_dawn()
game_api.setIntValue("morning_player_can_leave", 1)
end
)
@@ -113,3 +114,45 @@ game_api.set_trigger_zone_callbacks("taxi_zone001",
taxi_zone001_enter_callback,
nil
)
game_api.set_chat_callbacks(
function()
if (not game_api.is_night()) and (not game_api.is_dawn()) then
local aiperi_chat_opened = game_api.getIntValue("aiperi_chat_opened")
if aiperi_chat_opened == 0 then
game_api.setIntValue("aiperi_chat_opened", 1)
local aiperi_knife_aware = game_api.getIntValue("aiperi_knife_aware")
local aiperi_talked_after_knife = game_api.getIntValue("aiperi_talked_after_knife")
if (player_hold_knife) and (aiperi_talked_after_knife == 0) then
game_api.start_dialogue("dialog_chat_aiperi003")
game_api.setIntValue("aiperi_talked_after_knife", 1)
else
if aiperi_knife_aware == 0 then
local lection_is_over = game_api.getIntValue("lection_is_over")
if (lection_is_over == 1) then
game_api.start_dialogue("dialog_chat_aiperi002")
else
game_api.start_dialogue("dialog_chat_aiperi001")
end
end
end
end
end
end,
function()
local parents_chat_opened = game_api.getIntValue("parents_chat_opened")
if parents_chat_opened == 0 then
game_api.setIntValue("parents_chat_opened", 1)
game_api.start_dialogue("dialog_chat_parents001")
end
end,
function()
local news_chat_opened = game_api.getIntValue("news_chat_opened")
if news_chat_opened == 0 then
game_api.setIntValue("news_chat_opened", 1)
game_api.start_dialogue("dialog_chat_news001")
end
end
)
+177 -105
View File
@@ -1,6 +1,6 @@
hall_door_opened = false
teacher_door_opened = false
lection_is_over = false
--lection_is_over = false
player_hold_book = false
player_hold_knife = false
@@ -35,13 +35,25 @@ function dialog_aiperi_give_key()
game_api.quest_unlock("aiperi_knife")
game_api.quest_set_objective_completed("aiperi_knife", "aiperi_knife_keys")
player_hold_key = true
print("dialog_aiperi_give_key, player_hold_key set to")
print(player_hold_key)
local aiperi_chat_opened = game_api.getIntValue("aiperi_chat_opened")
if (aiperi_chat_opened == 0) then
game_api.set_chat_unread(0, false, "(пусто)")
end
end
end
function lection_hall_zone001_enter_callback()
--game_api.start_dialogue("")
--Start cutscene
if (lection_is_over == false) then
local lection_is_over = game_api.getIntValue("lection_is_over")
if (lection_is_over == 0) then
game_api.player_stop()
game_api.start_cutscene("lection_cutscene001")
game_api.quest_set_objective_completed("study_beginning", "study_beginning_lecture")
@@ -59,7 +71,8 @@ function knife_dialog_zone001_enter_callback()
if (day == 0) then
if (player_hold_knife == false) then
if lection_is_over then
local lection_is_over = game_api.getIntValue("lection_is_over")
if lection_is_over == 1 then
if (player_hold_key) then
game_api.start_dialogue("knife_dialog002")
else
@@ -69,7 +82,10 @@ function knife_dialog_zone001_enter_callback()
end
else
if (game_api.is_night() == false) then
game_api.start_dialogue("knife_dialog_second001")
local aiperi_talked_after_knife = game_api.getIntValue("aiperi_talked_after_knife")
if (aiperi_talked_after_knife == 0) then
game_api.start_dialogue("knife_dialog_second001")
end
game_api.set_trigger_zone_enabled(1, false)
end
end
@@ -81,7 +97,8 @@ function knife_dialog_zone001_exit_callback()
if (day == 0) then
print("knife_dialog_zone001_exit_callback--!")
if (lection_is_over) then
local lection_is_over = game_api.getIntValue("lection_is_over")
if (lection_is_over == 1) then
if (teacher_door_opened) then
game_api.switch_navigation(3)
else
@@ -137,17 +154,6 @@ function on_book_pickup()
end
function on_bookshelf_clicked()
--[[if not player_hold_book then
game_api.pickup_item("book")
game_api.deactivate_interactive_object("Book001")
player_hold_book = true
game_api.set_trigger_zone_enabled(3, true)
else
game_api.remove_item("book")
game_api.activate_interactive_object("Book001")
player_hold_book = false
game_api.set_trigger_zone_enabled(3, false)
end]]
on_book_pickup()
end
@@ -157,6 +163,16 @@ function on_npc_interact(npc_index)
if npc_index == 1 then
local day = game_api.getIntValue("day")
if (game_api.is_dawn()) or (day > 0) then
game_api.start_dialogue("dialog_aiperi_morning001")
else
if (player_hold_key) then
game_api.start_dialogue("knife_dialog002")
else
game_api.start_dialogue("knife_dialog001")
end
end
--[[
if (day == 0) then
if (player_hold_key) then
game_api.start_dialogue("knife_dialog002")
@@ -165,7 +181,7 @@ function on_npc_interact(npc_index)
end
else
game_api.start_dialogue("dialog_aiperi_morning001")
end
end]]
end
if npc_index == 0 then
if (player_ghost_aware == 1) then
@@ -210,13 +226,6 @@ function on_quest_over()
game_api.start_cutscene("game_complete_cutscene001")
end
--[[
function on_first_ghost_dialog_over()
print("on_first_ghost_dialog_over")
player_ghost_aware = true
game_api.quest_unlock("ghost_lore")
end]]
function on_darklands_over()
game_api.set_player_hp(10)
game_api.resetPlayerAfterDeath()
@@ -232,12 +241,15 @@ end
function on_library_door_click()
print("on_library_door_click---")
local day = game_api.getIntValue("day")
local lection_is_over = game_api.getIntValue("lection_is_over")
if (day == 0) then
if (game_api.is_night()) then
if game_api.is_dawn() then
game_api.start_dialogue("door_dialog001")
elseif game_api.is_night() then
game_api.start_dialogue("door_night_dialog001")
else
if (not lection_is_over) then
if (lection_is_over == 0) then
game_api.start_dialogue("door_dialog001")
end
end
@@ -404,25 +416,6 @@ function on_s1_door_click()
else
game_api.start_dialogue("door_dialog001")
end
--[[
if (morning_can_open_door_index == 1) then
if (morning_did_open_door_index == 0) then
morning_did_open_door_index = 1
game_api.start_dialogue("door_unlock_dialog001")
game_api.rotate_object("Room_S_0_Leaf001", 90, 0.5, nil)
game_api.fade_object("Room_Cover_Corridor_001", 0, 0.5, function()
game_api.deactivate_interactive_object("Room_Cover_Corridor_001")
end)
game_api.switch_navigation(8)
end
else
game_api.start_dialogue("door_dialog001")
end
]]
--else
-- game_api.start_dialogue("door_dialog001")
--end
end
function on_s2_door_click()
@@ -435,28 +428,9 @@ function on_s2_door_click()
else
game_api.start_dialogue("door_dialog001")
end
--[[
if (morning_can_open_door_index == 2) then
if (morning_did_open_door_index == 0) then
morning_did_open_door_index = 2
game_api.start_dialogue("door_unlock_dialog001")
game_api.rotate_object("Room_S_1_Leaf001", 90, 0.5, nil)
game_api.fade_object("Room_Cover_Corridor_001", 0, 0.5, function()
game_api.deactivate_interactive_object("Room_Cover_Corridor_001")
end)
game_api.switch_navigation(9)
end
else
game_api.start_dialogue("door_dialog001")
end
]]
end
function on_n2_door_click()
--print("player_left_darklands")
--print(player_left_darklands)
print("morning_can_open_door_index")
print(morning_can_open_door_index)
print("morning_did_open_door_index")
@@ -505,33 +479,33 @@ end
function on_computer_clicked()
print("on_computer_clicked--")
local day = game_api.getIntValue("day")
if game_api.is_darklands() then
game_api.start_dialogue("computer_dialog004")
game_api.start_dialogue("computer_dialog004")
elseif (day >= 1) or game_api.is_dawn() then
print("on_computer_clicked--1")
game_api.start_dialogue("computer_dialog003")
else
if teacher_told_about_book then
print("on_computer_clicked--2")
if (game_api.is_night() == false) then
print("on_computer_clicked--3")
if (player_hold_book) then
print("on_computer_clicked--4")
game_api.quest_set_objective_completed("study_project", "study_project_write")
game_api.start_cutscene("computer_cutscene001")
else
print("on_computer_clicked--5")
game_api.start_dialogue("book_dialog002")
end
if teacher_told_about_book then
print("on_computer_clicked--2")
if (game_api.is_night() == false) then
print("on_computer_clicked--3")
if (player_hold_book) then
print("on_computer_clicked--4")
game_api.quest_set_objective_completed("study_project", "study_project_write")
game_api.start_cutscene("computer_cutscene001")
else
print("on_computer_clicked--6")
game_api.start_dialogue("computer_dialog002")
print("on_computer_clicked--5")
game_api.start_dialogue("book_dialog002")
end
else
print("on_computer_clicked--7")
game_api.start_dialogue("computer_dialog001")
print("on_computer_clicked--6")
game_api.start_dialogue("computer_dialog002")
end
else
print("on_computer_clicked--7")
game_api.start_dialogue("computer_dialog001")
end
end
end
@@ -558,7 +532,6 @@ function on_sleep_cutscene()
game_api.set_object_alpha("Room_Cover_North_1_001", 1)
game_api.set_object_alpha("Room_Cover_Main_Hall_001", 1)
game_api.activate_interactive_object("Note001")
teacher_door_opened = false
end
@@ -574,9 +547,16 @@ end
game_api.set_cutscene_callback("lection_cutscene001", function()
print("Cutscene done!")
lection_is_over = true
game_api.setIntValue("lection_is_over", 1)
game_api.set_npc_enabled(1, true)
game_api.npc_walk_to(0, 0.758123, 0, 6.50063, on_teacher_arrived_intermediate)
local aiperi_knife_aware = game_api.getIntValue("aiperi_knife_aware")
if (aiperi_knife_aware == 0) then
game_api.set_chat_unread(0, true, "Бекзат, ты где? Я жду...")
end
end)
@@ -590,7 +570,7 @@ function on_report_card_pickup()
local player_ghost_aware = game_api.getIntValue("ghost_aware")
if player_ghost_aware == 1 then
local player_has_report_card = game_api.getIntValue("player_has_report_card")
local report_card_signed = game_api.getIntValue("report_card_signed")
--local report_card_signed = game_api.getIntValue("report_card_signed")
if (player_has_report_card == 1) then
game_api.start_dialogue("dialog_report_card003") -- Еще рано возвращать зачетку обратно в шкаф
@@ -612,8 +592,6 @@ end
first_time_darklands = true
game_api.set_darklands_callbacks(
function()
if (first_time_darklands) then
@@ -706,12 +684,12 @@ game_api.set_darklands_callbacks(
if (morning_can_open_door_index == 0) or (morning_can_open_door_index == 3) then
game_api.setIntValue("morning_player_can_leave", 1)
game_api.getIntValue("morning_aiperi_save_again", 0)
game_api.setIntValue("morning_aiperi_save_again", 0)
else
game_api.setIntValue("morning_player_can_leave", 0)
local morning_aiperi_talked = game_api.getIntValue("morning_aiperi_talked")
if (morning_aiperi_talked == 1) then
game_api.getIntValue("morning_aiperi_save_again", 1)
game_api.setIntValue("morning_aiperi_save_again", 1)
end
end
end
@@ -883,7 +861,6 @@ function setDay1MorningSetup()
end
function setDay1NightSetup()
teacher_door_opened = false
print("setDay1NightSetup")
@@ -971,7 +948,7 @@ game_api.set_enter_night_callback(
end
)
--[[
game_api.set_chat_callbacks(
function()
if (game_api.is_night()) then
@@ -992,10 +969,107 @@ game_api.set_chat_callbacks(
nil,
nil
)
]]
game_api.set_chat_callbacks(
function()
if (game_api.is_night()) then
if (game_api.is_dawn()) then
local morning_player_can_leave = game_api.getIntValue("morning_player_can_leave")
if morning_player_can_leave == 0 then
game_api.start_dialogue("phone_morning_aiperi001")
else
game_api.start_dialogue("cancel_phone_morning_aiperi001")
end
else
local day = game_api.getIntValue("day")
local asked_help_locked = game_api.getIntValue("asked_help_locked")
if (day == 0) then
if (asked_help_locked == 0) then
game_api.start_dialogue("phone_night_aiperi001")
end
else
game_api.start_dialogue("cancel_phone_night_aiperi001")
end
end
game_api.setIntValue("aiperi_talked_after_knife", 1)
game_api.setIntValue("aiperi_chat_opened", 1)
else
local aiperi_chat_opened = game_api.getIntValue("aiperi_chat_opened")
local aiperi_knife_aware = game_api.getIntValue("aiperi_knife_aware")
local aiperi_talked_after_knife = game_api.getIntValue("aiperi_talked_after_knife")
local lection_is_over = game_api.getIntValue("lection_is_over")
print("dialogx step 1")
if (player_hold_knife) and (aiperi_talked_after_knife == 0) then
game_api.start_dialogue("dialog_chat_aiperi003")
game_api.setIntValue("aiperi_talked_after_knife", 1)
else
print("dialogx step 2")
if aiperi_chat_opened == 0 then
print("dialogx step 3")
game_api.setIntValue("aiperi_chat_opened", 1)
if aiperi_knife_aware == 0 then
print("dialogx step 4")
if (lection_is_over == 1) then
print("dialogx step 5")
print("player_hold_key")
print(player_hold_key)
if (player_hold_key == false) then
print("dialogx step 6")
game_api.start_dialogue("dialog_chat_aiperi002")
end
else
game_api.start_dialogue("dialog_chat_aiperi001")
end
end
end
end
--[[
if aiperi_chat_opened == 0 then
game_api.setIntValue("aiperi_chat_opened", 1)
if (player_hold_knife) and (aiperi_talked_after_knife == 0) then
game_api.start_dialogue("dialog_chat_aiperi003")
game_api.setIntValue("aiperi_talked_after_knife", 1)
else
if aiperi_knife_aware == 0 then
local lection_is_over = game_api.getIntValue("lection_is_over")
if (lection_is_over == 1) then
game_api.start_dialogue("dialog_chat_aiperi002")
else
game_api.start_dialogue("dialog_chat_aiperi001")
end
end
end
end]]
end
end,
function()
local parents_chat_opened = game_api.getIntValue("parents_chat_opened")
if parents_chat_opened == 0 then
game_api.setIntValue("parents_chat_opened", 1)
game_api.start_dialogue("dialog_chat_parents001")
end
end,
function()
local news_chat_opened = game_api.getIntValue("news_chat_opened")
if news_chat_opened == 0 then
game_api.setIntValue("news_chat_opened", 1)
game_api.start_dialogue("dialog_chat_news001")
end
end
)
--[[function on_aiperi_give_keys()
game_api.pickup_item("all_keys")
end]]
function on_aiperi_opens_door()
print("on_aiperi_opens_door")
@@ -1148,7 +1222,7 @@ game_api.set_location_callbacks(
print("day is:")
print(day)
local resetState = false
if not (day == was_day_when_player_left) then
resetState = true
@@ -1161,9 +1235,8 @@ game_api.set_location_callbacks(
elseif (was_state_when_player_left == 4) and (game_api.is_night() or game_api.is_darklands()) then
resetState = true
end
if (day > 0) and resetState then
if (game_api.is_darklands()) then
--Currently not possible
print("Entered darklands setup")
@@ -1180,8 +1253,8 @@ game_api.set_location_callbacks(
game_api.switch_navigation(3)
end
end
--[[
local day = game_api.getIntValue("day")
if (day == 0)then
@@ -1207,7 +1280,7 @@ game_api.set_location_callbacks(
arrive in night
]]
if (day > 0) and (game_api.is_night() == false) then
@@ -1223,15 +1296,14 @@ game_api.set_location_callbacks(
print("setDay1MorningSetup entered-")
setDay1MorningSetup()
end
end,
function()
print("Exit location uni interior")
--player_left_darklands = false
local hp = game_api.get_player_hp()
game_api.setFloatValue("player_hp", hp)
--[[
0 - day0
1 - darklands
@@ -1242,9 +1314,9 @@ game_api.set_location_callbacks(
]]
local day = game_api.getIntValue("day")
was_day_when_player_left = day
if (day == 0)then
if (day == 0) then
was_state_when_player_left = 0
elseif game_api.is_darklands() then
was_state_when_player_left = 1