Перейти к контенту

[SoC] Ковыряемся в файлах


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

Гм, а кто это должен читать ? Ремарк это не читает.

 

Кстати, только что заметил забавную ошибочку в xr_combat_ignore:

if obj:critically_wounded() then return true end

Ну, все поняли, да ? То же самое, что с xr_wounded и кучей разнообразнейшей копипасты отуда.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

 

 

Удалить косточки в Милке - это я могу, а вот добавить

Да ладно прибедняться. На закладке "Model" сперва выбираешь "Select" и выбираешь ту кость, от которой должна расти добавляемая. Затем там же выбираешь "Joint" и кликаешь на виде, добавляя сочленение в нужном месте. Затем идёшь на закладку "Joints", в списке выбираешь новую кость двойным кликом, вводишь новое имя и жмёшь "Rename", чтобы задать имя.

  • Спасибо 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

 

 

Гм, а кто это должен читать ? Ремарк это не читает.

Секция из логики Кузнецова под мостом на Свалке:

[remark@esc_bridge_wait]
anim = guard
target = actor
on_actor_dist_le_nvis = 5 | remark@esc_bridge_speek
meet = no_meet
combat_ignore_cond = {-esc_bridge_open_fire =fighting_actor =is_alive(032)}

получается последнюю строчку ПЫСы просто так намалевали, а от комбата на актера вояку жажда денег удерживает ?

Ссылка на комментарий

@UnLoaded, ты специально не смотришь в скрипты? Я же вроде понятно написал, погляди в xr_logic, затем в xr_combat_ignore, потом еще раз логику перечитай, и поймешь какая жажда его удерживает.

 

 

 

Ну, все поняли, да ?

"А что? А вдруг!"(с)

Ссылка на комментарий

Такой вопрос: есть моб, который под логикой и находится в состоянии комбат. Если в это время ему переключить секцию логики, то он сначала закончит комбат(не важно с каким результатом) и только потом перейдет в новую секцию ? А можно ли принудительно прервать комбат, чтоб он перешел в новую секцию, а потом уж пусть продолжает комбат, если условия сохранятся ? Если можно, то какие ф-ции движка\скриптов для этого использовать ?


Насчет ф-ций класса game_object critically_wounded() и wounded() - они для неписей или актера(ГГ)? И работают ли ?

Сделал простенький вывод в сообщении результата этих ф-ций и уровня здоровья для НПСа, при нанесении ему хита. Ну и шмаляю по нему из пистолета - в результате вижу, что здоровье уменьшается а результат обоих ф-ций false. Может какие нюансы с этими ф-циями ?

Ссылка на комментарий

Вчера ссылку на xr_wounded.script давал. Здесь, в этой теме. И на коллецию прочего AI.
Я правильно понял, что мне здесь что-либо писать не стоит, по тому что все равно ни кто читать не будет ?

Ну, нет - так нет.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

 

 

поставить в логику типа camper, и собственно ни каких костей ни куда добавлять не надо

Подход с трейдером имеет ряд преимуществ:

1. визуал может быть произвольным, что позволяет точно управлять формой объекта и кликабельной зоны. Как на сталкере реализовать переговорник на стене или радио на столе?

2. никакой логики вообще не надо, даже биндера нет.

3. как производное от п.2. Поскольку скриптовой части нет, расходы в игре будут меньше.

4. в случае чего не попытается убежать или обвалить игру из-за отсутствия путей и т.п.

  • Согласен 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Ну, в принципе, я тут проникся идеей рисования

w = CUIButton()
w:SetWindowName( "wnamet" )
w:SetAutoDelete( true )
w:SetText( "что попало" )
w:SetTextColor( 255, 255, 0, 0 )
w:SetFont( GetFontLetterica25() )
w:Init( 130, 60, 100, 30 )
self:AttachChild( w )

 

в сочетании с

f =  loadstring( тра-ля-ля )

self:AddCallback( w:WindowName(), ui_events.BUTTON_CLICKED, f, self )

 

Это в смысле как надежности, так и возможностей. Гораздо лучше, чем плодить мегабайтные xml с по десятку строк на каждый чих, прибитых гвоздями и зачем-то грузящихся в обязательном порядке, даже если нужны единственный раз в жизни.


Плюс можно вызывать в любом удобном месте по любому удобному и неудобному поводу.

 

Да, а если кто напряжется, и сделает такую универсальную рыбу, куда останется только нужный текст и нужные функции забить - вообще много кого осчастливит. dialog_manager можно забыть как кошмарный наркоманский бред.

 

 

А с невидимкой - это вариант совсем для, гм, не желающих напрягаться, зато усидчивых, пока нет универсальной рыбы.

Изменено пользователем Dennis_Chikin
  • Полезно 1
Ссылка на комментарий

Dennis_Chikin, если плодить кучу чайников, бочек и прочего говорящего железа - да, так будет проще. А если делать один-единственный предмет - сдается мне, что это неудобней. ИМХО, конечно. Но ваш подход мне по душе.

Сталкер - наше всё!

Ссылка на комментарий

Я на самом деле думаю в сторону "квестов" с "принеси мне медузу - получишь консервную банку", обмена водки на патроны и т.д.

 

Ну и вообще квесты. В смысле, чтобы это можно было в любое время и в любом месте.

То есть, как бы, например, можно подойти к чайнику, и получить кнопку "здравствуйте, глубокоуважаемый шкаф чайник". Ну и далее по тексту.

 

Человек-невидимка здесь подходит, если он такой один, с ограниченным набором фраз, и с кнопками ради него одного связываться неохота.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

@Dennis_Chikin, loadstring работает медленнее стандартного доступа к полю модуля. В мануале было написано, что его вообще следует избегать. И если уж loadstring, то loadstring(тра-ля-ля)().

 

А идею рисования вроде же мод DMX демонстрирует, там что-то такое было, получилось не очень на мой взгляд. Т.е. я тут поддержу вариант Маландринуса, это все-же как-то по человечески. Даже если делать аналог небезызвестного чебурашки, все равно не то.

Ссылка на комментарий

local f = loadstring( "arc_ui_container_menu.btn_take_art(" .. n .. ")" )

self:AddCallback( b:WindowName(), ui_events.BUTTON_CLICKED, f, self )

 

Вот прям щас под рукой было. Вполне себе годная демонстрация его использования, и на сколько он там медленный - ради 5 кнопок - совершенно не волнует.

Ссылка на комментарий

@Dennis_Chikin, в этом случае - да, мы передаем функцию. От этого куска кода я и плевался в свое время, у каждого свои взгляды.

Ссылка на комментарий

@Dennis_Chikin, какие? Очевидно полностью переписать. Не знаю как по твоему мнению, но вот по моему код контейнеров этих необычайно крив. Переписывается недолго, повышается читаемость кода, скорость работы, удобство с внесением правок.

Ссылка на комментарий

 

 

проникся идеей рисования

Я не очень тебя понял. Прозвучало как идея рисовать окна исключительно скриптами. Но при чём здесь тогда dialog_manager, который вроде как отвечает за диалоги?

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

2 Сталкер-Стрелок: вот именно сейчас именно это и делаю. Но loadstring() чем здесь помешал ?

 

2 Малаландринус:

 

local t = { { "af_medusa", "я принес тебе медузу" }, ... }

for i, v in ipairs( t ) do if actor:object( v[1] ) then create_button( v[2] ) и т.д.

...

function a_button( i )

remove_item( t[1] )

revard( tt )

end

 

ну и в таком вот духе.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

@Dennis_Chikin, в мануале написано, и я этому следую. Если говорить о контейнерах, то я вообще не использовал подобную подгрузку функций.

Ссылка на комментарий

2 Сталкер-Стрелок: вот именно сейчас именно это и делаю. Но loadstring() чем здесь помешал ?

 

2 Малаландринус:

 

local t = { { "af_medusa", "я принес тебе медузу" }, ... }

for i, v in ipairs( t ) do if actor:object( v[1] ) then create_button( v[2] ) и т.д.

...

function a_button( i )

remove_item( t[1] )

revard( tt )

end

 

ну и в таком вот духе.

А не reward случаем?

Сталкер - наше всё!

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...