Показать сообщение отдельно
Старый 25.02.2009, 20:04   #31
Опытный игрок
 
Аватар для Jesh
 
Регистрация: 19.08.2007
Сообщений: 1,050
Репутация: 145 [+/-]
На одном из старых форумов нарыл статью Rider, по возможностям билда:
Intro

Добавление вороны

Изначально в system.ltx у меня уже было прописано следующее:

[m_crow]
cform = skeleton
class = AI_CROW
direction = 0, 0, 1
eye_fov = 130
eye_range = 10
jump_speed = 7
normal = 0, 1, 0
position = 0, 0, 0
run_coef = 2
min_speed = 1.6
max_speed = 3.0
health = 3
;
actor_change = 3.0
opt_radius = 20.0
radius_deviation = 5.0
x_deviation = 5.0
y_deviation = 5.0
z_deviation = 5.0
opt_height = 15.0
change_interval = 5000
;
visual = monsters\crow\crow.ogf
walk_accel = 20
ph_box0_center = 0.0, 0.9, 0.0
ph_box0_size = 0.6, 0.9, 0.6
ph_box1_center = 0.0, 0.6, 0.0
ph_box1_size = 0.45, 0.6, 0.45
ph_foot_center = 0.0, 0.11, 0.0
ph_foot_size = 0.26, 0.21, 0.26
ph_crash_speed_min = 16
ph_crash_speed_max = 30
ph_mass = 120
ph_friction_air = 0.01
ph_friction_ground = 7.0
ph_friction_wall = 4.0 ; ???
bone_torso = bip01_spine
bone_head = bip01_head
weapon_usage = 0

Я скопировал с заменой два файла crow.ltx и crow.ogf из папки data\meshes\monsters.old\crow\ в папку data\meshes\monsters\crow\
Затем для уровня lest (на нем и проводились эксперименты) я изменил respawn point'ы:
rpoint_01 = 45.0, 10.0, 25.0, 0, 10.0
rpoint_02 = 50.0, 7.0, 30.0, 0, 10.0
rpoint_03 = 55.0, 10.0, 25.0, 0, 10.0

Формат respawn point'a я определил так:
x, z, y, ?, r
где x - смещение '-'влево/'+'вправо, z - '+'выше/'-'ниже, y - движение '+'вперед/'-'назад, ? - не знаю что это (оставил в 0), r - вращение по/против часовой стрелки.
Расшифровав формат respawn'a, попробовал 'родиться' внутри здания (в видеоролике видел его изнутри, захотелось там побегать), т.к. ворота закрыты. Ничего не получилось, игра не запускалась. Отсюда сделал вывод о том, что внутри здание не полое. На тот момент еще не сделали. И все же, вернемся к нашим попугаям
Прописав в user.ltx g_god 1 (придется падать), загрузил уровень lest и в консоли набрал пару раз:
g_spawn m_crow
В небе появились две птички, машущие крылышками! К сожалению, заставить из летать по небу я не смог К тому же, если их убить, они распластаются мертвыми тушками на той же высоте. Но, как бы там ни было, две вороны в воздухе уже парЯт



Хотелось, чтобы она просто появилась и стояла как истукан. Запустил уровень и набрал g_spawn m_barby. Вывалилось окошко отладки X-Ray, в котором сообщалось, что текстура SoldierGOS_female не найдена. Хм. Копирую текстуру солдата Jeffry.dds в SoldierGOS_female.dds, запускаю, пытаюсь добавить девчушку и понимаю, что сделать этого ну никак нельзя
Сообщение в engine.log 'Shader 'heli_glass' not found in library'. Для нее просто нету шейдеров в библиотеке shaders.xr, а как их добавить из Oblivion Lost я не знаю

Добавление робота

Эта модель также используется в Oblivion Lost. Причем она уже была прописана в файле system.ltx в качестве врага и союзника. Разницы я не почуствовал - ни тот ни другой ни в кого не стреляли. Отличие только с шкурках.
[m_hen_e]
cform = skeleton
class = AI_HEN
direction = 0, 0, 1
eye_fov = 130
eye_range = 200
jump_speed = 7
normal = 0, 1, 0
position = 0, 0, 0
run_coef = 2
health = 100
;
fSearchRange, fEnemySurround, fTotalCover, fTravelWeight, fLightWeight, fLaziness, fTotalViewVectorWeight, fCoverFromLeaderWeight, fOptLeaderDista nce, fOptLeaderDistanceWeight, fMinLeaderDistance, fMinLeaderDistanceWeight, fMaxLeaderDistance, fMaxLeaderDistanceWeight, fLeaderViewDeviationWei ght,fMaxLeaderHeightDistance, fMaxLeaderHeightDistanceWeight, fCoverFromMemberWeight,fOptMemberDistance, fOptMemberDistanceWeight, fMinMemberDis tance, fMinMemberDistanceWeight, fMaxMemberDistance, fMaxMemberDistanceWeight, fMemberViewDeviationWeight, fCoverFromEnemyWeight, fOptEnemyDistanc e, fOptEnemyDistanceWeight, fMinEnemyDistance, fMinEnemyDistanceWeight, fMaxEnemyDistance, fMaxEnemyDistanceWeight, fEnemyViewDeviationWeight selector_attack = 20.0, 300.0, 50.0, 0.0, 10.0, 0.0, 100.0, 100.0, 15.0, 100.0, 3.0, 300.0, 100.0, 300.0, 100.0, 2.0, 1000.0, 40.0, 40.0, 10.0, 2.0, 450.0, 80.0, 150.0, 1000.0, 300.0, 20.0, 100.0, 10.0, 100.0, 120.0, 100.0, 2000.0 selector_follow = 20.0, 0.0, 100.0, 0.0, 10.0, 15.0, 100.0, 300.0, 15.0, 100.0, 3.0, 300.0, 100.0, 300.0, 100.0, 2.0, 1000.0, 40.0, 40.0, 10.0, 2.0, 450.0, 150.0, 100.0, 1000.0, 100.0, 30.0, 100.0, 0.0, 100.0, 120.0, 100.0, 2000.0 selector_free_hunting = 20.0, 0.0, 100.0, 0.0, 10.0, 15.0, 100.0, 500.0, 15.0, 100.0, 3.0, 300.0, 100.0, 300.0, 100.0, 2.0, 1000.0, 40.0, 40.0, 10.0, 2.0, 450.0, 80.0, 150.0, 1000.0, 100.0, 30.0, 100.0, 0.0, 100.0, 120.0, 100.0, 2000.0 selector_pursuit = 20.0, 200.0, 100.0, 0.0, 10.0, 1.0, 100.0, 200.0, 30.0, 100.0, 3.0, 300.0, 100.0, 100.0, 100.0, 2.0, 1000.0, 100.0, 80.0, 100.0, 2.0, 100.0, 120.0, 100.0, 1000.0, 100.0, 0.1, 100.0, 0.0, 1000.0, 150.0, 300.0, 2000.0 selector_under_fire = 20.0, 0.0, 100.0, 0.0, 10.0, 1.0, 100.0, 200.0, 30.0, 100.0, 3.0, 300.0, 100.0, 100.0, 100.0, 2.0, 1000.0, 100.0, 80.0, 100.0, 2.0, 100.0, 120.0, 100.0, 1000.0, 100.0, 30.0, 100.0, 0.0, 100.0, 120.0, 100.0, 2000.0 min_speed = 2.0
max_speed = 5.0
visual = monsters\hen\robot_enemy.ogf
walk_accel = 20
ph_box0_center = 0.0, 0.9, 0.0
ph_box0_size = 0.6, 0.9, 0.6
ph_box1_center = 0.0, 0.6, 0.0
ph_box1_size = 0.45, 0.6, 0.45
ph_foot_center = 0.0, 0.11, 0.0
ph_foot_size = 0.26, 0.21, 0.26
ph_crash_speed_min = 16
ph_crash_speed_max = 30
ph_mass = 120
ph_friction_air = 0.01
ph_friction_ground = 7.0
ph_friction_wall = 4.0 ; ???
;bones
bone_torso = torso1
bone_head = head
weapon_usage = 1
; bones
bone_torso_weapon = torso2
bone_head_weapon = head

Для союзника все то же самое, только называется он [m_hen_f] и текстура: visual = monsters\hen\robot_friend.ogf
Изменил точку респауна на:
rpoint_01 = 45.0, 1.0, 25.0, 0, 10.0
И вызвал Hen'a:
g_spawn m_hen_e
или
g_spawn m_hen_f
Тут же возникла проблема - в папке data\textures не существует текстур Robot_Enemy.dds и Robot_Friend.dds соответственно! В качестве их я использовал текстуру солдатика Jeffry.dds (копировать с именами Robot_Enemy.dds и Robot_Friend.dds).
[url=http://smages.com/95/4b/954b588faf20a369a334cc99f4a9a40f.jpg.htm]
Получается, конечно, коряво, поэтому можно поэкспериментировать с другими текстурками (благо их хватает). Ну а в идеале, конечно, взять оригинальные текстуры (враг , друг) из Oblivion Lost.


Их можно расстреливать пачками - сдачи не дадут. Поигравшись с модельками существ, принялся за оружие...

Groza и Protecta вместо FN2000

Почему именно вместо FN2000 ? Пробовал вместо AK74 - получилась такая вот загогулина

Никаких изменений в *.ltx файлах делать не пришлось. Я заменил файл wpn_fn2000.ogf в папке data\meshes\weapon\fn2000\ на файл из папки data\meshes\weapon\groza\wpn_goza.ogf и добавил туда же два файла из папки groza:
wpn_groza_hud#0.ogf
wpn_groza_hud#1.ogf
Теперь в папку data\textures нужно добавить текстуру groza.dds. Можно использовать текстурку любого оружия, хотя бы той же FN2000:

Но лучше взять из Oblivion Lost оригинальную шкурку !


Стрелять из этих двух стволов не получается. При попытке нажать на курок игра зависает, а в engine.log пишется сообщение 'Unknown Function'.

Бой на карте Escape

На большой карте можно добавлять врагов командой g_spawn где в качестве параметров следует использовать имена вргов из файла system.ltx Кстати на ней солдаты и роботы ведут себя намного умнее, чем на уровне lest !


При использовании команды g_spawn, существа появляются как союзники. Чтобы добавились враги, надо скопировать файл level.spawn из папки уровня lest в папку уровня escape_koanyvrot. Я использовал файл именно из уровня lest, а не lest_zakat, т.к. в последнем случае игра не запускалась, сообщая в engine.log об ошибке (что-то там с objects). Однако, и с файлом уровня lest не все гладко - с ним игра начинала СИЛЬНО тормозить. Видимо, из-за большого количества врагов, производится много вычислений, полностью загружающих процессор.

Избавление от мусора

От листьев и гаек под ногами можно избавиться, удалив в папке уровня файл level.details. Земля под ногами будет чистая (останутся лишь небольшие объекты типа труб, шифера ...). Этот прием позволит владельцам слабых машин ускорить игру.

Видеоэффекты на максимум

Выжмем из движка все, на что он был способен в тот момент. В итоге получим повышенную плотность травы, гвоздей, листьев, кустов, веточек и т.д. И все это сгладим. Изменения будут производиться в файле user.ltx:
rs_occlusion on - включить растительность
rs_occ_reject 0.003000 - колиичество растительности ставится от 0.00051 до 0.003. Чем число меньше, тем больше плотность.
rs_anisotropic on - сглаживание
rs_antialias on - сглаживание
rs_antialias_tv on - сглаживание
rs_triplebuffer on
rs_wireframe on
__________________
"Чем больше нас, тем меньше их..."

Последний раз редактировалось Jesh; 16.09.2009 в 10:57.
Jesh вне форума  
Ответить с цитированием