little cleanup

This commit is contained in:
Vladislav Khorev committed 2026-05-09 20:28:25 +03:00
1 parent 13ef92160d
commit 72e05cdc28
15 files changed
+323 -197

No files matched your search

+1 -1
View File
@@ -126,7 +126,7 @@
"interactive": true,
"item": {
"id": "journal",
"name": "Телефон",
"name": "Журнал",
"description": "Это мой журнал куда я вношу свои заметки.",
"icon": "resources/fire2.png",
"radius": 0.3
+43
View File
@@ -0,0 +1,43 @@
{
"npcs": [
{
"id": "npc_teacher01",
"name": "Аида Дженибекова",
"animationIdlePath": "resources/w/new_anims/teacher_stand_idle001.txt",
"animationWalkPath": "resources/w/new_anims/woman_walk4_001.txt",
"meshTextures": {
"Teacher_lowpoly": "resources/w/new_anims/UniV_Grid_2K.001_Base_color.png"
},
"positionX": -0.28594,
"positionY": 0,
"positionZ": 13.9641,
"walkSpeed": 1.3,
"rotationSpeed": 8.0,
"modelScale": 1.0,
"modelCorrectionRotX": -90.0,
"modelCorrectionRotY": 180.0,
"modelCorrectionRotZ": 0.0,
"interactionRadius": 1.0
},
{
"id": "npc_02_woman",
"name": "Бегимай",
"animationIdlePath": "resources/w/girl/girl_walk002.txt",
"animationWalkPath": "resources/w/girl/girl_walk002.txt",
"meshTextures": {
"polySurface1": "resources/w/girl/Chat_02_diff_1.png"
},
"positionX": 0.764049,
"positionY": 0.0,
"positionZ": -8.53475,
"facingAngle" : 3.141592,
"walkSpeed": 1.66,
"rotationSpeed": 8.0,
"modelScale": 0.016,
"modelCorrectionRotX": 0.0,
"modelCorrectionRotY": 180.0,
"modelCorrectionRotZ": 0.0,
"interactionRadius": 2.0
}
]
}
+1 -1
View File
@@ -7,7 +7,7 @@
"positionZ": -9.37259,
"radius": 1.5,
"active": true,
"destinationLocation": "location2",
"destinationLocation": "uni_exterior",
"destinationPositionX": 8.2,
"destinationPositionY": 0.0,
"destinationPositionZ": -9.9,
+1 -1
View File
@@ -7,7 +7,7 @@
"positionZ": -9.9,
"radius": 1.5,
"active": true,
"destinationLocation": "location1",
"destinationLocation": "uni_interior",
"destinationPositionX": 2.64621,
"destinationPositionY": 0.0,
"destinationPositionZ": -9.37259,
+1 -1
View File
@@ -7,7 +7,7 @@
"positionZ": -0.152264,
"radius": 1.5,
"active": true,
"destinationLocation": "location2",
"destinationLocation": "uni_exterior",
"destinationPositionX": -21.7327,
"destinationPositionY": 0.0,
"destinationPositionZ": -34.1036,
-4
View File
@@ -1,4 +0,0 @@
{
"trigger_zones": [
]
}
@@ -0,0 +1,22 @@
{
"trigger_zones": [
{
"id": "lection_hall_zone001",
"positionX": -0.141875,
"positionY": 0.0,
"positionZ": 9.75898,
"radius": 2.0,
"hysteresis": 0.1,
"enabled": true
},
{
"id": "knife_dialog_zone001",
"positionX":-0.0765023,
"positionY": 0.0,
"positionZ": -7.90549,
"radius": 1.0,
"hysteresis": 0.1,
"enabled": true
}
]
}
@@ -0,0 +1,187 @@
{
"dialogues": [
{
"id": "knife_dialog001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бермет",
"portrait": "resources/w/avatar_girlfriend.png",
"text": "Ты куда собрался, Бекзат?",
"next": "line_2"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Бермет",
"portrait": "resources/w/avatar_girlfriend.png",
"text": "Пока ты не заберешь нож из учительской, никуда я тебя не выпущу.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
}
],
"cutscenes": [
{
"id": "test_cutscene_01",
"background": "resources/first_cutscene.png",
"durationMs": 6800,
"cameraTrack": [
{
"durationMs": 2400,
"from": { "focusX": 0.50, "focusY": 0.55, "zoom": 1.00, "rotationDeg": 0.0 },
"to": { "focusX": 0.63, "focusY": 0.58, "zoom": 1.16, "rotationDeg": -1.0 },
"easing": "EaseInOutSine"
},
{
"durationMs": 2200,
"from": { "focusX": 0.63, "focusY": 0.58, "zoom": 1.16, "rotationDeg": -1.0 },
"to": { "focusX": 0.74, "focusY": 0.52, "zoom": 1.30, "rotationDeg": -2.4 },
"easing": "EaseInOutCubic"
},
{
"durationMs": 2200,
"from": { "focusX": 0.74, "focusY": 0.52, "zoom": 1.30, "rotationDeg": -2.4 },
"to": { "focusX": 0.58, "focusY": 0.46, "zoom": 1.10, "rotationDeg": -0.6 },
"easing": "EaseOutSine"
}
],
"lines": [
{
"speaker": "Narrator",
"portrait": "resources/hero.png",
"text": "The air in the room turned cold.",
"durationMs": 2200
},
{
"speaker": "Ghost",
"portrait": "resources/w/avatar_ghost.png",
"text": "Some memories never fade.",
"durationMs": 2600,
"background": "resources/loading.png"
}
]
},
{
"id": "test_cutscene_silent_01",
"background": "resources/first_cutscene.png",
"durationMs": 5200,
"cameraTrack": [
{
"durationMs": 2600,
"from": { "focusX": 0.40, "focusY": 0.54, "zoom": 1.00, "rotationDeg": 0.0 },
"to": { "focusX": 0.58, "focusY": 0.54, "zoom": 1.22, "rotationDeg": 0.8 },
"easing": "EaseInOutSine"
},
{
"durationMs": 2600,
"from": { "focusX": 0.58, "focusY": 0.54, "zoom": 1.22, "rotationDeg": 0.8 },
"to": { "focusX": 0.72, "focusY": 0.48, "zoom": 1.34, "rotationDeg": -0.5 },
"easing": "EaseOutCubic"
}
],
"lines": []
},
{
"id": "test_cutscene_pan_01",
"background": "resources/first_cutscene.png",
"durationMs": 12000,
"cameraTrack": [
{
"durationMs": 1200,
"from": { "anchor": "Center", "zoom": 1.00, "rotationDeg": 0.0 },
"to": { "anchor": "Center", "zoom": 1.00, "rotationDeg": 0.0 },
"easing": "Linear"
},
{
"durationMs": 2500,
"from": { "anchor": "Center", "zoom": 1.00, "rotationDeg": 0.0 },
"to": { "anchor": "TopLeft", "zoom": 1.55, "rotationDeg": 0.0 },
"easing": "EaseInOutSine"
},
{
"durationMs": 2600,
"from": { "anchor": "TopLeft", "zoom": 1.55, "rotationDeg": 0.0 },
"to": { "anchor": "TopRight", "zoom": 1.55, "rotationDeg": 0.0 },
"easing": "EaseInOutSine"
},
{
"durationMs": 1800,
"from": { "anchor": "TopRight", "zoom": 1.55, "rotationDeg": 0.0 },
"to": { "anchor": "BottomRight", "zoom": 1.72, "rotationDeg": 0.0 },
"easing": "EaseInCubic"
},
{
"durationMs": 3900,
"from": { "anchor": "BottomRight", "zoom": 1.72, "rotationDeg": 0.0 },
"to": { "anchor": "BottomLeft", "zoom": 1.55, "rotationDeg": 0.0 },
"easing": "EaseInOutSine"
}
],
"lines": [
{
"speaker": "Narrator",
"portrait": "resources/hero.png",
"text": "The memory begins in silence.",
"durationMs": 2200
},
{
"speaker": "Narrator",
"portrait": "resources/hero.png",
"text": "Something is drawing your eyes across the whole scene.",
"durationMs": 2800
},
{
"speaker": "Ghost",
"portrait": "resources/ghost_avatar.png",
"text": "Do not look away.",
"durationMs": 2400
}
]
},
{
"id": "test_cutscene_pan_02",
"background": "resources/first_cutscene.png",
"durationMs": 12000,
"cameraTrack": [
{
"durationMs": 1200,
"from": { "anchor": "Center", "zoom": 1.00, "rotationDeg": 0.0 },
"to": { "anchor": "Center", "zoom": 1.00, "rotationDeg": 0.0 },
"easing": "Linear"
},
{
"durationMs": 2500,
"from": { "anchor": "Center", "zoom": 1.00, "rotationDeg": 0.0 },
"to": { "anchor": "TopLeft", "zoom": 1.55, "rotationDeg": 0.0 },
"easing": "EaseInOutSine"
},
{
"durationMs": 2600,
"from": { "anchor": "TopLeft", "zoom": 1.55, "rotationDeg": 0.0 },
"to": { "anchor": "TopRight", "zoom": 1.55, "rotationDeg": 0.0 },
"easing": "EaseInOutSine"
},
{
"durationMs": 1800,
"from": { "anchor": "TopRight", "zoom": 1.55, "rotationDeg": 0.0 },
"to": { "anchor": "BottomRight", "zoom": 1.72, "rotationDeg": 0.0 },
"easing": "EaseInCubic"
},
{
"durationMs": 3900,
"from": { "anchor": "BottomRight", "zoom": 1.72, "rotationDeg": 0.0 },
"to": { "anchor": "BottomLeft", "zoom": 1.55, "rotationDeg": 0.0 },
"easing": "EaseInOutSine"
}
],
"lines": []
}
]
}
-52
View File
@@ -1,52 +0,0 @@
-- ============================================
-- NPC PATROL WAYPOINTS
-- ============================================
local function step3()
game_api.npc_walk_to(0, 0.0, 0.0, -30.0, step1)
end
local function step2()
game_api.npc_walk_to(0, -2.0, 0.0, -2.0, step3)
end
function step1()
game_api.npc_walk_to(0, 2.0, 0.0, -2.0, step2)
end
--step1()
local function step3x()
game_api.npc_walk_to(2, 2.0, 0.0, -27.0, step1x)
end
local function step2x()
game_api.npc_walk_to(2, -1.0, 0.0, -12.0, step3x)
end
function step1x()
game_api.npc_walk_to(2, 2.0, 0.0, -16.0, step2x)
end
--step1x()
-- ============================================
-- ITEM PICKUP HANDLER
-- ============================================
function on_health_pickup()
game_api.pickup_item("health_potion")
print("[Lua] Health potion picked up!")
end
-- ============================================
-- NPC INTERACTION HANDLER
-- ============================================
function on_npc_interact(npc_index)
print("[Lua] NPC interaction! Index: " .. tostring(npc_index))
game_api.start_dialogue("ghost_choice_dialogue")
end
print("Lua script loaded successfully!")
+33
View File
@@ -0,0 +1,33 @@
function lection_hall_zone001_enter_callback()
--game_api.start_dialogue("")
--Start cutscene
end
game_api.set_trigger_zone_callbacks("lection_hall_zone001",
lection_hall_zone001_enter_callback,
nil
)
function knife_dialog_zone001_enter_callback()
print("knife_dialog_zone001_enter_callback--!")
if (not phone_picked_up) or (not journal_picked_up) then
game_api.start_dialogue("knife_dialog001")
game_api.switch_navigation(0)
end
end
function knife_dialog_zone001_exit_callback()
print("knife_dialog_zone001_exit_callback--!")
game_api.switch_navigation(0)
end
game_api.set_trigger_zone_callbacks("knife_dialog_zone001",
knife_dialog_zone001_enter_callback,
knife_dialog_zone001_exit_callback
)
print("Lua script loaded successfully!")