Перейти к содержанию

Рекомендуемые сообщения

 
 

Boomer забыл. Сделай переход в пустую секцию, иначе спам будет бесконечный.
on_info = {=actor_in_zone(название_рестриктора)} sr_idle@nil %=send_tip(название_сообщения_text)% 

[ sr_idle@nil]

  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

stalker032 Вообще без разницы в какой .xml файл записывать по пути configs\text, ведь игра найдёт стринг сама. Но всё же, порядок лучше соблюдать, и лучше в данном случае создать строку в st_screen.xml.


Дополнено 4 минуты спустя
В 22.02.2022 в 04:33, Seraph сказал:

Проверил, есть remove_npc. Ну комон, разве это сложно найти?)

Для новичков в моддинге простительно. Нужно научиться Notepad++ и гуглом например, а не лениться потратить своё время. У меня на то, чтобы научить себя моддингу ушло около трёх лет.  И не зря.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Ребят, нужна помощь. Как сделать так, чтобы сквад мутантов спавнился в определённом террейне, а в случае смерти этого сквада он респавнился? Ну, как в оригинале, мутанты спавнятся на определённых смартах, а после убийства, через некоторое время респавнятся. Симуляция, типа. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

stalker032 Вот пример из оригинала:

[smart_terrain]
squad_id = 43
max_population = 1
respawn_only_smart = true
respawn_params = respawn@simulation_snork 

[respawn@simulation_snork]
spawn_snork

[spawn_snork]
spawn_squads =  simulation_snork
spawn_num = 1 

 

Изменено пользователем denis2000
  • Лайк 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Что нужно прописать в кастом дате определённого ковера, чтобы нпс не садился на этот ковер?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

У всех НПС в определенном смарт-террейне все поломалось к херам. То есть, практически все попросту стоят на месте и ничего не делают, не выполняют логику. Просто впервые с подобным сталкиваюсь. Пожалуйста, подскажите, в чем проблема? Умоляю.

Изменено пользователем Крим

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Крим А после чего это произошло? Раньше работало ведь?


Дополнено 2 минуты спустя

stalker032 А у каверов есть кастом-дата, в которой можно что-то прописать? Интересно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
23 минуты назад, Seraph сказал:

А после чего это произошло? Раньше работало ведь?

По мелочи - добавил новые рестрикторы для квестов, вейпоинты и все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Крим Так. Неписи именно стоят или садятся на графпойнтах, как будто работ в смарте в принципе нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Seraph я же написал - стоят. Большинство просто стоит на месте, лишь малая часть действительно выполняют логику, стоят, где надо, делает, что нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Крим откатись назад, если делал копии gamedata и вноси правки постепенно, и найдёшь ошибки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Крим Если они стоят - значит они выполняют какую-то другую логику, либо что-то мешает им из неё переключиться. Что за рестрикторы и вэйпойнты ты ставил? Могли они повлиять?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Крим слухай, если ещё не исправил ошибку. У меня подобная тема была с коверами. Я их называл как хотел, и нпс ничего не делали. Потом я взял название смарт террейна и добавил через нижнее подчеркивание что хотел - всё заработало. По типу: название_смарт_терейна_animpoint_11. Если не то ответил, или ляпнул чушь, то извиняюсь. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как сделать функцию, чтобы у актера забрали все имеющиеся деньги? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Boomer function ??? ()
db.actor:give_money(-db.actor:money())
end

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Игре не будет плохо если не забрать инфопорцию от квеста? То есть я выдаю поршень, который активирует квест, и по его окончанию не заберу поршень, и он будет так висеть с игроком всегда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Добрый вечер.  Добавил в игру вертолет.

Спойлер

 

[170]

; cse_abstract properties
section_name = helicopter
name = mar_a4_heli_1
position = 710.799987792969, 120, -960.900024414063
direction = 0, 0.785398185253143, 0
id = 65535
version = 128
script_version = 12
spawn_id = 167

; cse_alife_object properties
game_vertex_id = 0
level_vertex_id = 115941
object_flags = 0xffffffb2
custom_data = <<END
[story_object]
story_id = mar_a4_heli_1

[logic]
cfg = scripts\marsh\mar_a4_heli_1.ltx
END

; cse_visual properties
visual_name = dynamics\vehicles\mi24\veh_mi24_u_02

; cse_motion properties

; cse_ph_skeleton properties
skeleton_name = idle

; cse_alife_helicopter properties
cse_alife_helicopter__unk1_sz = idle
engine_sound = vehicles\helicopter\helicopter

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

[mar_a4_heli_1_start]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = 700,120,-940.099975585938
p0:game_vertex_id = 10320
p0:level_vertex_id = 4294967295


[mar_a4_heli_1_task]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = 349.630004882813,122,-137.449996948242
p0:game_vertex_id = 7
p0:level_vertex_id = 363400


[mar_a4_heli_1_way_1]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = 650,120,-900
p0:game_vertex_id = 10320
p0:level_vertex_id = 4294967295


[mar_a4_heli_1_way_2]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = 334.690002441406,122,-96.9800033569336
p0:game_vertex_id = 7
p0:level_vertex_id = 352390

 

Спойлер

 

[logic]
active = heli_move

[heli_move]
path_move = mar_a4_heli_1_start
path_look = mar_a4_heli_1_way_1
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
engine_sound = false
on_info = {+mar_a4_heli_1_start_task} heli_move@1


[heli_move@1]
path_move = mar_a4_heli_1_task
path_look = mar_a4_heli_1_way_2
max_velocity = 100
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true

 

При заходе на локацию с вертолетом имею жука

stack trace:
[error][      87]    : Параметр задан неверно.

 

В чем может быть причина?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Сергей Шубин Привет. Для начала неплохо бы проверить, спавнится ли вертолёт, а потом уже подключать к нему логику. Если спавнится - будет хотя бы ясно, что проблема в логике. Если нет... Ну, могу посоветовать не заниматься некрофилией и установить СДК)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Добро. А можно скриптом поставить игру на паузу? А также выйти из паузы скриптом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Neptun 
if not device():is_paused() then
device():pause(true) --true - поставить игру на паузу, false - выйти из паузы
end

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
8 часов назад, Seraph сказал:

Ну, могу посоветовать не заниматься некрофилией и установить СДК

У меня установлен SDK. Но я не спавню вертушку через него. Зачем? Чтобы сидел где-то под локацией и "жрал" ресурсы на обработку его логики?

Все делается скриптом.

В логике рестриктора в нужный момент вызываем спавн вертушки.

function spawn_esc_heli( actor, npc )
    spawn_net_objects.spawn_helicopter("esc_a5_heli_dawn", "[logic]\ncfg = scripts\\escape\\esc_helicopter_1.ltx")
end

В файле spawn_net_objects. script пишем функцию спавна

Спойлер

 

function spawn_helicopter( path, logic )
        if not level.patrol_path_exists( path ) then
            return
        end
        local logic_helicopter = logic
        local ptr = patrol( path )
        local position = ptr:point( 0 )
        local lv_id = ptr:level_vertex_id( 0 )
        local gv_id = ptr:game_vertex_id( 0 )
        local section = "helicopter"
        local s_obj = alife():create( section, position, lv_id, gv_id )

    local packet = net_packet()
    packet:w_begin( 0 )
    s_obj:STATE_Write( packet )
    packet:r_seek( 2 )
    local game_vertex_id = packet:r_u16()
    local distance = packet:r_float()
    local direct_control = packet:r_s32()
    local level_vertex_id = packet:r_s32()
    local object_flags = packet:r_s32()
    local custom_data = packet:r_stringZ()
    local story_id = packet:r_s32()
    local spawn_story_id = packet:r_s32()
    local visual_name = packet:r_stringZ()
    local visual_flags = packet:r_u8()
    local motion_name = packet:r_stringZ()
    local skeleton_name = packet:r_stringZ()
    local skeleton_flags = packet:r_u8()
    local source_id = packet:r_u16()
    local startup_animation = packet:r_stringZ()
    local engine_sound = packet:r_stringZ()
    custom_data = logic_helicopter
    motion_name = "idle"
    skeleton_name = "idle"
    startup_animation = "idle"
    visual_name = "dynamics\\vehicles\\mi24\\veh_mi24_u_01"
    engine_sound = "vehicles\\helicopter\\helicopter"
    packet:w_begin( 0 )
    packet:w_u16( game_vertex_id )
    packet:w_float( distance )
    packet:w_s32( direct_control )
    packet:w_s32( level_vertex_id )
    packet:w_s32( object_flags )
    packet:w_stringZ( custom_data )
    packet:w_s32( story_id )
    packet:w_s32( spawn_story_id )
    packet:w_stringZ( visual_name )
    packet:w_u8( visual_flags )
    packet:w_stringZ( motion_name )
    packet:w_stringZ( skeleton_name )
    packet:w_u8( skeleton_flags )
    packet:w_u16( source_id )
    packet:w_stringZ( startup_animation )
    packet:w_stringZ( engine_sound )
    packet:r_seek( 2 )
    s_obj:STATE_Read( packet, packet:w_tell() )
end

 

Ну и логика вертушки , как видно из вызова функции,  в файле scripts\escape\esc_helicopter_1.ltx


Терпение... И все получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

С вертушкой разобрался.  Сначала взял не ту модель.  Теперь она красиво гудит и летает.  Встала задача - НПС должен завалить её из РПГ.  Выдал НПС РПГ.  Вертушка у него над головой висит.  И НПС палит не по вертушке, а куда то вдаль.

Спойлер

 

[logic]
active = remark

[remark]
anim    = threat_fire
target = story | mar_a4_heli_1
invulnerable = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_info = {=dist_to_actor_ge(90)} nil %=destroy_object%
on_info2 = {!actor_friend} %=actor_friend%

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

В ЗП для этого нужно использовать схему в файле  xr_heli_hunter.script

  • Лайк 1

Терпение... И все получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

makdm Ну так скриптом спавнить - это уже не препарировать спавн. Тут я только поддержать могу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
17 часов назад, liner сказал:

Neptun 
if not device():is_paused() then
device():pause(true) --true - поставить игру на паузу, false - выйти из паузы
end

Чтобы принудительно выйти из паузы, надо функцию вызвать из скрипта, который работает онлайн даже во время паузы. Какой же это скрипт и метод?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   1 пользователь онлайн