Альтернативный способ связки локаций — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Эээ... (обсуждение | вклад) |
(заслуженно трешовая стотья) |
||
(не показаны 19 промежуточные версии 4 участников) | |||
Строка 4: | Строка 4: | ||
У вас есть собственный уровень, годный для сингла? Есть level_changer на билдовые локации и вы хотите объеденить его с ними? | У вас есть собственный уровень, годный для сингла? Есть level_changer на билдовые локации и вы хотите объеденить его с ними? | ||
Итак, мой метод основан на том, что | Итак, мой метод основан на том, что | ||
− | + | # нужно разобрать одну из билдовых локаций(ту, куда вы хотите вставить переход). | |
− | + | # Вставить секцию с уровнем в файлы конфигов. | |
− | + | # Вставить туда нужные граф поинты и левел чейнджер. | |
− | + | # Собрать локацию и скомпилировать. | |
− | + | # Собрать графы уровней и графы игры, собрать алл.спавн и вставить всё это в игру. | |
Преимущества данного метода: | Преимущества данного метода: | ||
*Сравнительно прост для среднего мододела. | *Сравнительно прост для среднего мододела. | ||
+ | *При отсутствии нужного граф поинта или левел ченжера его можно легко добавить. | ||
*Позволяет создать нормальный, продуманный переход между уровнями | *Позволяет создать нормальный, продуманный переход между уровнями | ||
− | *Не требуется | + | *Не требуется ЛВИД_ГВИД скрипта. |
− | + | ||
Недостатки: | Недостатки: | ||
*Требуется замена файлов уровня. | *Требуется замена файлов уровня. | ||
− | * | + | *Игра иногда вылетает, но работает при загрузке последнего сейва (авто сейв при переходе с локации на локацию) |
+ | |||
+ | == Практика == | ||
+ | |||
+ | === Радар === | ||
+ | Итак, я разобрал локацию "радар" - что же мне делать дальше? | ||
+ | Первым делом, я поставлю переход на мою локацию, скажем на росток из мультиплеера. | ||
+ | Создаю 2 graph point. | ||
+ | *1-й обзываю exit_radar_25(ну я не думаю, что на радаре 24 перехода, но все же лучше перестраховаться)и в его опциях выбераем location - "Радар" и в Conection в level to change выбираем наш уромень и в poin to change пишем точку,exit_sp_rostok_01 | ||
+ | *2-й - start_actor_25. | ||
+ | * создаю level_changer для смены локаций. Туда вписываю уровень для смены(не забывайте перед началом работ править конфиги!!!), и точку для появления игрока на локации: start_actor_01. | ||
+ | *Затем идем в кастом дату лвл чейнжера и пишем ему | ||
+ | [pt_move_if_reject] | ||
+ | path = sp_rostok_way_if_reject - это вей поинт в случае отказа игрока от перехода | ||
+ | *затем создаем собственно этот вей поинт - sp_rostok_way_if_reject (он должен состоять из двух точек, связанных стрелкой(линком)). Так, на радаре вроде всё, в настройках уровня выбираю драфт-качество, сохраняю и строю. | ||
+ | |||
+ | === Росток === | ||
+ | Далее загружаю росток(из мультиплеера), и создаю поинты start_actor_01, exit_sp_rostok_01 (в нем выбираем локэйшн - "наш уровень", в конекшн левел то чейнж - радар и поинт то чейнж exit_radar_25. Тем самым мы создали аи связь между локациями) | ||
+ | *затем создаем лвл чейнжер, в нем пишем | ||
+ | *Кастом дата -[pt_move_if_reject] | ||
+ | path = sp_rostok_if_reject_way | ||
+ | *создаем путь sp_rostok_if_reject_way | ||
+ | *level to change - радар | ||
+ | *point to change - start_actor_25 | ||
+ | Все, ставим качество на драфт и билдим, затем проходим все стадии в аи враппере и копируем алл спавн в АСДС. | ||
+ | |||
+ | === АСДС === | ||
+ | Теперь требуется подправить конфиги в АСДС (лвл эдитор не просчитывает некоторые параметры, поэтому раньше имелся вылет при переходе.) | ||
+ | Распаковываем Алл спавн и ищем ваш лвл ченжер 1, в его секцие ищем такие строки | ||
+ | |||
+ | *position = -183.81120300293,2.23819088935852,-289.468292236328 | ||
+ | *direction = 0,-0.69812798500061,0 | ||
+ | и | ||
+ | *game_vertex_id = 0 | ||
+ | *level_vertex_id = 436 | ||
+ | копируем эти значения. Затем ищем лвл чеинжер 2 с которым связанн чейнжер 1 и вставляем скопированное по соответсвующим позициям | ||
+ | *dest_game_vertex_id = 0 <== сдюда копируем значения game_vertex_id | ||
+ | *dest_level_vertex_id = 436 <== сдюда копируем значения level_vertex_id | ||
+ | *dest_position = 0,0,0 <== сдюда копируем значения position | ||
+ | *dest_direction = 0,0,0 <== сдюда копируем значения direction (по желанию) | ||
+ | |||
+ | затем повторяем все эти действия только наоборот (значения чейнжера 1 заменяем значениями чейинжера 2) | ||
+ | *Примечание. dest_position это точка позиция для спавна игрока на новом уровне. Желательно записать координаты не из лвл чейнжера а свои, что игрок спавнился не в лвл чейнжере а рядом с ним. (это можно сделать по желанию и не обязательно) | ||
+ | |||
+ | === Подправил статью - Sine === | ||
+ | |||
+ | [[Категория:Trash]] |
Текущая версия на 19:28, 19 августа 2011
Итак, порассскинув мозгами и ниасилив последний урок лохотрона, мне пришла в голову следующая мысль.
Теория
У вас есть собственный уровень, годный для сингла? Есть level_changer на билдовые локации и вы хотите объеденить его с ними? Итак, мой метод основан на том, что
- нужно разобрать одну из билдовых локаций(ту, куда вы хотите вставить переход).
- Вставить секцию с уровнем в файлы конфигов.
- Вставить туда нужные граф поинты и левел чейнджер.
- Собрать локацию и скомпилировать.
- Собрать графы уровней и графы игры, собрать алл.спавн и вставить всё это в игру.
Преимущества данного метода:
- Сравнительно прост для среднего мододела.
- При отсутствии нужного граф поинта или левел ченжера его можно легко добавить.
- Позволяет создать нормальный, продуманный переход между уровнями
- Не требуется ЛВИД_ГВИД скрипта.
Недостатки:
- Требуется замена файлов уровня.
- Игра иногда вылетает, но работает при загрузке последнего сейва (авто сейв при переходе с локации на локацию)
Практика
Радар
Итак, я разобрал локацию "радар" - что же мне делать дальше? Первым делом, я поставлю переход на мою локацию, скажем на росток из мультиплеера. Создаю 2 graph point.
- 1-й обзываю exit_radar_25(ну я не думаю, что на радаре 24 перехода, но все же лучше перестраховаться)и в его опциях выбераем location - "Радар" и в Conection в level to change выбираем наш уромень и в poin to change пишем точку,exit_sp_rostok_01
- 2-й - start_actor_25.
- создаю level_changer для смены локаций. Туда вписываю уровень для смены(не забывайте перед началом работ править конфиги!!!), и точку для появления игрока на локации: start_actor_01.
- Затем идем в кастом дату лвл чейнжера и пишем ему
[pt_move_if_reject] path = sp_rostok_way_if_reject - это вей поинт в случае отказа игрока от перехода
- затем создаем собственно этот вей поинт - sp_rostok_way_if_reject (он должен состоять из двух точек, связанных стрелкой(линком)). Так, на радаре вроде всё, в настройках уровня выбираю драфт-качество, сохраняю и строю.
Росток
Далее загружаю росток(из мультиплеера), и создаю поинты start_actor_01, exit_sp_rostok_01 (в нем выбираем локэйшн - "наш уровень", в конекшн левел то чейнж - радар и поинт то чейнж exit_radar_25. Тем самым мы создали аи связь между локациями)
- затем создаем лвл чейнжер, в нем пишем
- Кастом дата -[pt_move_if_reject]
path = sp_rostok_if_reject_way
- создаем путь sp_rostok_if_reject_way
- level to change - радар
- point to change - start_actor_25
Все, ставим качество на драфт и билдим, затем проходим все стадии в аи враппере и копируем алл спавн в АСДС.
АСДС
Теперь требуется подправить конфиги в АСДС (лвл эдитор не просчитывает некоторые параметры, поэтому раньше имелся вылет при переходе.) Распаковываем Алл спавн и ищем ваш лвл ченжер 1, в его секцие ищем такие строки
- position = -183.81120300293,2.23819088935852,-289.468292236328
- direction = 0,-0.69812798500061,0
и
- game_vertex_id = 0
- level_vertex_id = 436
копируем эти значения. Затем ищем лвл чеинжер 2 с которым связанн чейнжер 1 и вставляем скопированное по соответсвующим позициям
- dest_game_vertex_id = 0 <== сдюда копируем значения game_vertex_id
- dest_level_vertex_id = 436 <== сдюда копируем значения level_vertex_id
- dest_position = 0,0,0 <== сдюда копируем значения position
- dest_direction = 0,0,0 <== сдюда копируем значения direction (по желанию)
затем повторяем все эти действия только наоборот (значения чейнжера 1 заменяем значениями чейинжера 2)
- Примечание. dest_position это точка позиция для спавна игрока на новом уровне. Желательно записать координаты не из лвл чейнжера а свои, что игрок спавнился не в лвл чейнжере а рядом с ним. (это можно сделать по желанию и не обязательно)