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

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


Halford

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

Кстати, о движках и не-движках, картинка.

 

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

Изменено пользователем Dennis_Chikin
  • Нравится 3

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


Ссылка на сообщение

А при чем здесь модификации, если при формировании динамического ltx идет ссылка на секцию, которой в этом ltx и рядом не стояло ? Просто либо монолитовцы реагируют на дэнжер/видят врага, и срываются в бой, игнорируя любую логику, либо получат хит, и радостно виснут.

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


Ссылка на сообщение

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

 

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

Изменено пользователем Dennis_Chikin
  • Согласен 2

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


Ссылка на сообщение

Я бы сказал: что мешает поправить сразу ?

 

Хотя, да, это было б смешно, если б не было так грустно, я 4 (!) года угробил на перелопачивание кучи кода только ради того, чтоб не трогать конфиги. Ну, то есть, мне в свое время как бы милостливо позволили трогать код, но вышел знатнейший скандал, когда я показал, что У СЕБЯ на компьютере,  ради того, чтоб хоть как-то проверить то, что делаю, не вслепую и без дивного секса с уворачиванием от пуль, монстров и аномалий, и сотен перезагрузок, когда увернуться не сумел -  тронул эти самые конфиги. Ага, ЧИТЕР и все такое. Со стороны, прости-господи, "тестеров".

 

А а ОП2 - вон - аж ЗАЩЩИТУ от изменений конфигов прикрутили, которая тормозит и глючит на каждом шагу, но, не дай бог кто вдруг покусится. Мдя...

 

А арты в солянке как проваливались под землю, так и продолжают проваливаться, хотя решение тоже найдено те же 4 года назад. Но... есть только один "лицензированный" правильщик конфигов артов, который из принципа не будет это делать. Аж тьфу.

Изменено пользователем Dennis_Chikin
  • Нравится 2

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


Ссылка на сообщение

Итак, тайна золотого ключика антиграва в рюкзаке. Вы, конечно, будете смеяться, но перед этим хочу сказать несколько слов. Если кто заметил, у меня добрались руки до артоконтейнеров. Раньше просто другим занимался. В общем, кто знает, что там исходно было внутри, тот знает. Кто не знает, может посмотреть. Ужас этот (по пять скриптов на каждый из 3-х контейнеров, с лютым бешеным апдейтом в каждом), естественно, был переписан. Разумеется, в процессе переписывания возникла мысль, что лютый, бешеный переспавн "балласта" - это не есть хорошо. При том, что существует стандартная вполне функция, меняющая вес предметов. Ну, некоторых. ;)

Дальше возник закономерный вопрос: действительно ли ПЫСы устраивали лютую и беспощадную "борьбу с читерами", как это нынче модно, или так, для виду пару проверок куда попало вставили ?

В общем, ларчик - ЛОМОМ открывался:

 

[antiballast]:identity_immunities ; не спавнить - будет вылет. Нужно для антиграва.
GroupControlSection    = spawn_group
discovery_dependency    =
cform = skeleton
visual = physics\box\box_lab_01.ogf
class  = AMMO
box_size    = 50000
inv_weight = -500

description    = ballast_you-should-not-see-this
inv_name    = ballast
inv_name_short    = ballast_s

inv_grid_width    = 0
inv_grid_height    = 0
inv_grid_x    = 4
inv_grid_y    = 18

k_dist        = 1
k_disp        = 3
k_hit        = 1
k_impulse    = 1
k_pierce    = 1
impair        = 1
buck_shot    = 1
tracer        = off
wm_size        = 0.05

[antigrav]:wpn_pm    ; нефиг заниматься переспавном, когда есть вес оружия с патронами
description    = ballast_you-should-not-see-this
inv_name    = ballast
inv_name_short    = ballast_s
inv_grid_width    = 0
inv_grid_height    = 0
inv_weight    = 0
quest_item    = true
default_to_ruck    = true
startup_ammo    = 0
ammo_limit    = 65000
ammo_current    = 0
ammo_elapsed    = 0
ammo_mag_size    = 5000
ammo_class    = antiballast

 

-- это антиграв на 50 кг, невидимый. Можно в пару к арту спавнить, можно картинку арта и слот другой. Или еще как - в меру буйства фантазии.

Изменено пользователем Dennis_Chikin
  • Нравится 3

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


Ссылка на сообщение

Если в этом антиграве закомментить

inv_grid_width = 0

inv_grid_height = 0

- будет выглядеть как пистолет, убирающий 50 кг веса. ;)

То есть, заспавнить в инвентарь, и наслаждаться. Или заспавнить на землю, подобрать, и наслаждаться.

 

Далее можно пойти разными путями:

1. Например, приделать к нему иконку и визуал не ПМ'а, а, например, арта, и более другой слот, чтоб даже при желании как оружие нельзя было выбрать.

2. Можно оставить невидимым и спавнить в инвентарь при подборе какого-то арта в пару к этому арту.

3. Заспавнить в инвентарь сразу, выставить 0 патронов, а при подборе/потере артов делать

local item = actor:object( "antigrav" )

if item then item:set_ammo_elapsed( сколько надо ) end

 

Я рекомендую третий вариант.

Изменено пользователем Dennis_Chikin
  • Спасибо 1

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


Ссылка на сообщение

Гм, по-моему, ты не понял. При чем здесь переносимый вес, если речь идет про инвентарный ? Совершенно разные вещи. И вот это - именно тот самый "артефакт, который снижает вес рюкзака".

Это во-первых. Во-вторых, это как раз иллюстрация, что ни что не мешало сделать еще в 2008, когда только-только начинали править конфиги, стоило лишь чуть-чуть подумать, а не вздыхать о том, что "это надо править движок".

 

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

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

Изменено пользователем Dennis_Chikin

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


Ссылка на сообщение

Гм, как я недавно с удивлением выяснил, гэйм-объект вообще не позволяет что-либо добавить или изменить, кроме того, что дано свыше. То есть, в смысле, self.что-то_там - пожалуйста, но это будет экземпляр, доступный только самому себе.

 

Впрочем, уже не больно-то и хотелось, ибо сама идея зарекомендовала себя как Чистое Зло. В смысле, не только по-этому, а по совокупности. Эрго, достаточно лишь вменяемой альтернативы нетпакетам для серверных, и вменяемого управления интерфейсами. А эти уродцы - ну их...

 

О, возможно, был бы небесполезен офлайновый инвентарь.

Изменено пользователем Dennis_Chikin

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


Ссылка на сообщение

Не community, a species, если монстр.

 

2 Verberes: слишком много неопределенности. Там много где чего прописывать надо, с пониманием, что и зачем. Короче, одна из самых запутанных вещей вообще.

 

 

Так, прошу помощи в снятии с ручника:

[logic@esc_bridge_post2]
active	= walker@esc_bridge_post2
combat_ignore = combat_ignore@esc_bridge
on_hit	= hit@soldier
on_death= death@soldier_kuzn

[walker@esc_bridge_post2]
path_walk = post2_walk
path_look = post2_look
meet = meet@sold_zoneguard
on_actor_dist_le_nvis = 35 | remark@esc_bridge_post2_1

[remark@esc_bridge_post2_1]
anim	= guard
target	= actor
on_actor_dist_le_nvis = 20 | remark@esc_bridge_post2
on_info	= {+esc_bridge_pass_fire} walker@esc_bridge_post2

[remark@esc_bridge_post2]
anim	= guard
target	= actor
snd	= esc_bridge_soldiers
on_signal = sound_end| walker@esc_bridge_post2

- кто и зачем здесь может хотеть walker2@esc_bridge_post2 ?

Или хотелка где-то в сэйвах сохраняется ?

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


Ссылка на сообщение

У меня написано ровно то, что я хотел. Ну или я так думаю, что то, что хотел.

Да, когда-то там было написано walker2, но двойка и вся секция убраны. Пошел вылет по несуществующей секции.

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

 

p.s. вообще, кстати, забавная нотация. Как бы подразумевает, что должен быть файл xr_walker2.script - если по аналогии ;).

Но зачем-то делаем аж целый вызов в util.script, занимающийся тем, что обрезает цифру.

Изменено пользователем Dennis_Chikin

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


Ссылка на сообщение

Еще следует добавить, что в разных модах поверх всего наворотили всяких странных настроек и проверок на присутствие актора, которые я лично в итоге оторвал (se_respawn, se_monster, se_stalker)  и заменил на более вменяемое (опять же, чтоб работало в одном отдельно взятом моде).

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


Ссылка на сообщение

w:SetStretchTexture( true ) - масштабирование, я так понимаю, независимое по осям ? А пропорционального нет ?

Изменено пользователем Dennis_Chikin

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


Ссылка на сообщение

Так простите, использование в инвентаре - это съедание. Что там можно запустить, если предмета УЖЕ нет ?

Использование "на земле" - это именно использование. Вызов соответствующего коллбэка. С самим предметом ничего не происходит.

2 большие разницы.

 

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

  • Спасибо 1

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


Ссылка на сообщение

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

  • Спасибо 1

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


Ссылка на сообщение

Вопрос телепатам:

 

Как можно спрятать окно диалога, где идет треп с неписем/торговцем ?

Ну, например, с Сидоровичем. Вот это вот, центральное, где "Привет-привет !" "Обнимемся-обнимемся !" и т.д.

Меня б в принципе устроило и черным закрасить, но где, опять же, черную текстурку взять (оригинал, амк, солянка) - чтоб не добавлять новую.

 

 

upd: нет, осознание - не то. Нужен именно фон. Ну вот как я с ремонтом картинки показывал, но там был готовый. Осталось только элементы между рамочками вписать. Хочется опять же готовый.

Изменено пользователем Dennis_Chikin

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


Ссылка на сообщение

мод на оживление НПС с помощью артефакта

А он вообще когда-нибудь работал ?

 

Впрочем, это в любом случае вопрос для телепатов: в оригинале в _g.script:1121 находится оператор end, на котором ни какой ошибки не может быть в принципе.

 

По самому же скрипту достаточно вот этого: heart = item - дальше может быть все, что угодно.


По поводу говорящего чайника, которые еще и поворачивается, то смотрим традиционно xr_meet.script:

if mgr.state ~= "nil" then
	if mgr.emerg_state then
		state_mgr.set_state( npc, mgr.state, nil, nil, { ["look_object"]
			= victim }, { ["animation"] = true }, synsound )
	else state_mgr.set_state( npc, mgr.state, nil, nil,
		{ ["look_object"] = victim }, nil, synsound )
end	end
-- ну или что-то типа того, и решаем, что с этим делать.

 

P.S. Да, в соседней теме есть приведенный в человекочитаемый вид.

Изменено пользователем Dennis_Chikin
  • Спасибо 1
  • Полезно 1

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


Ссылка на сообщение

id = obj:id()

if id == 0 then need_update = 0; return end

 

Как минимум.

Но вообще - переделывать все.

  • Спасибо 1

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


Ссылка на сообщение

Справедливости ради, по п3 есть изрядно способов сделать это ну очень небыстрым. Почти независимо от компа.

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


Ссылка на сообщение

Размеры: 256x256, 512x512, 1024x1024. Впрочем, 512x512 не нужны. Больше - тоже, реально, не нужны (нет таких объектов, где оно надо). 5645x111 - отказать однозначно.

Короткие, вменяемые имена и пути. Без kEE\/\/1-HucKeeЯsk..====+--,,,.|Ks извращений на 300 символов с путями в 100500 уровней вложенности.

Количество файлов на каталог надо на самом деле подбирать. Не совсем понятно, что хуже - 100500 подкаталогов по одному файлу в каждом, или 100500 файлов в одном каталоге, но оба варианта очевидно медленные и печальные.

 

По сжатию - а вот надо экспериментировать и подбирать. Ходили слухи, что это зависит от назначения конкретной текстуры. Но в общем я видел один и тот же "асфальт", который грузился мгновенно, и такой же, с загрузкой секунд десять, а непосредственно в игре дающий роскошное слайд-шоу. Как автор добивался таких эффектов - без понятия.

Изменено пользователем Dennis_Chikin
  • Спасибо 1

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


Ссылка на сообщение

А логику этому самому Круглову кто писал ? Вот его и спрашивать.

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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