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

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


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

MAV,

Понял, ещё раз проверю - хотя я переделал пути. Рендем...

 

Юра, может на время прикрыть ветку?

Легко. Раз, два - закрыто :)

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

люди какие файлы относятся к этому файлу ui_common.dds в народной солянке

 

 

Добавлено через 1 мин.:

люди какие файлы относятся к этому файлу ui_common.dds в народной солянке

 

1. Пиши грамотно, с использованием заглавных букв и знаков препинания.

2. Не дублируй строки.

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

Обращения "люди" иль "народ" используй в лесу иль на митингах.

4. Топик по 'ковырянию' файлов на основе оригинальной игры, а не неких модов.

5. Раздел все же носит название "Школа", а не "Справочное бюро".

На вопрос "Как мне сделать/изменить/... коды" - может кто и ответит, а вот "найдите мне"/"сделайте за меня" иль "спросил сам не знаю что" - в конечном счете наказуемы.

--/Artos

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

Пункт 3.

Ссылка на комментарий
S.T.A.L.K.E.R-DOLG,

S.T.A.L.K.E.R 1.004, Народная..Солянка от 19.04.10, дополнение 14.08.10, патч 3.09.10, DMX 1.3.5, Saruman addon 1.1

Vkontakte

Добавление нового транспорта в сталкер

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

Переношу локу из МП в сингл(чистый ТЧ), все норм, на локу смог перейти, источники света на ней есть, но не смог полазить по лестницам.. Посмотрел в СДК везде на лестницах есть вот эта фигня, как бы сказать размазня вытянутая желтая, разобрал спавн, секции с climable_object в алайфе есть, но почему то все равно лестницы не фурычат.. Гейм вертекс в секциях проставлял правильно..

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

[8631]
; cse_abstract properties
section_name = climable_object
name = clmbl#0
position = 8.51634120941162,-9.40130043029785,11.2302923202515
direction = -4.03527201342513e-006,-0.00103079213295132,1.57080805301666
version = 118
script_version = 6

; cse_alife_object properties
game_vertex_id = 2792
distance = 0
level_vertex_id = 1
object_flags = 0xffffffbf

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 2.4097273349762,0,0
shape0:axis_y = 0,9.5367431640625e-006,0
shape0:axis_z = 0,0,0.419309616088867
shape0:offset = 0,0,0

 

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

FANAT.gif

Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения'

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

Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации

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

Игра оригинал Тень Чернобыля, никакик надстроек, версия 1.0006.

 

1. Как увеличить время появления врагов, других сталкеров и монстров.... А то не успеваю одних "замочить", как прут и прут другие... То есть допустим, перебил всё АТП, там нет бандитов - задание выполнилось, пока я сдаю задание, выношу блок-пост... После пробегаю возле АТП - и там вновь вся шайка, опять... Пока выношу их, уже пруться новые бойцы на блок-пост... Как увеличить время их повторного появления?

 

Какие есть действенные варианты решения... Поскольку оговорюсь сразу, то что везде (ВСЕ ФОРУМЫ, ВСЕ СТАТЬИ, ВЕСЬ НЕТ КОРОЧЕ!!!) написано о респаун:

idle_time:setHMSms( 0, 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000)

и исправить на:

idl_time:setHMSms( math.random(Первое число, Второе число), 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000)

- НЕРАБОТАЕТ... да кроме этой фразы нигде ни слова о том, что за цифры?, ни примера? ни того как это работает? ( :mad: )... что только туда не вводил, эффект ноль...

 

Надоело, хочется начисто зачищать локацию...

Как это реализовывается?

 

2. Как сделать так, чтобы герой таскал канистру, не ложил в инвентарь, а именно таскал, как трупы...

Пишу балон - таскает, пишу канистру - никак не хочет брать...

 

Жду очень, очень, очень скорого ответа - хочется поиграться!

 

Не используй красный цвет в сообщениях, он используется модераторами. Для цитирования используй тег "Цитата".

И не нужно в который раз повторять о "скорости ответа" - как говориться:"Скоро только кошки родятся, а спешка нужна при ловле блох".

--/Artos

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

Weeko, насчет "НЕ РАБОТАЕТ":

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

2. Если ты не видишь что-то, то это не значит что это НЕ работает.

 

О цифирьках:

Формат времени указан и в названии метода (setHMSms): Н,M,S ms - т.е. час,минута,секунда,милисекунда. Уж это можно найти в ФАКах или самому догадаться.

Т.о. в строке кода респавнера, в которой задается пауза для респавна (idle_time) стоит исходная пауза:

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

Твой вопрос о "что за цифры?" - говорит о низком знании (если не о полном незнании) языка Lua, на котором написаны скрипты игры.

Код: math.random(self.idle_spawn_min, self.idle_spawn_max) читается как:

"получение случайного числа из диапазона заданного минимальным значением (1-м числом self.idle_spawn_min) и максимальным (2-м числом - self.idle_spawn_max)[/)".

Т.е. из параметров каждого респавнера считываются минимум и максимум и из них расчитывается пауза для следующего респавна объектов.

 

О том КАК это работает:

Если в исходном случае пауза задается милисекундами, то во втором случае вместо 0 часов применяется рандомный метод и для часов, которые и указываются как минимум и максимум: (Первое число, Второе число).

Т.о. вместо стандартной паузы (medium) примерно в 60*60*1000 милисекунд = 360 секунд = 60 минут = 1 час

в измененном варианте к этим секундам задаются и часы.

 

Но(!) огорчу тебя, показав как это "РАБОТАЕТ НЕ РАБОТАЯ":

1. Все эти параметры для пауз вступают в силу ПОСЛЕ события спавна, т.е. при старте игры каждый респавнер спавнит по определенным ему условиям объекты т.к. изначально пауза ОБНУЛЕНА и только после этого наступает пауза до следующего респавна.

2. Установленные паузы НЕ сохраняются в сэйвах и т.о. при КАЖДОМ перезапуске игры эти паузы вновь обнуляются и респавнеры спавнят объекты.

3. Даже если ты попробуешь играть без сохранений - все равно при переходе на другую локацию игра перезапускается и ... все респавнеры вновь обнуляют свои паузы и вновь спавнят объекты.

Т.о. чем больше перезапусков в игре - тем чаще респавнятся объекты ... если у них нет условий запрета на спавн.

 

Ну уж если так приспичило отключить респавнеры, то стОит попробовать изменить строку (267) в методе on_register():

  -- производим первичную инициализацию
  self.respawn_time = game.CTime() --/ время след.респавна приравнено к текущеу игровому времени

на типа:

local idle_time = game.CTime() --/ текущее игровое время
idle_time:setHMSms( 8, 0, 0, 0 ) --/ тайм-аут в 8 часов
self.respawn_time = game.get_game_time() + idle_time --/ задаем начальный тайм-аут

- где каждому респавнеру при старте игры назначается пауза в 8 часов.

Но, ИМХО, это уже не ... та игра. Респавн всего в зоне будет отложен каждый раз на 8 часов при каждом перезапуске игры!

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

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

 

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

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

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

Если ты, как говоришь не обладаешь ни "специфическими знаниями" ни, вероятно, "специфическими навыками редактирования скриптов", то ... предполагаю твоя похачушка останется без "помощи". Тут как говорится, немного перефразируя: "Похачушки игроков - дело рук самих игроков!".

 

По ранее данному варианту должно "помочь" обезлюдить Зону, но ... не раскатывай губы особенно. Если на Кордон с дальних локаций не особо подтягиваются сталкеры/монстры, то далее - если будет где-то спавнится сталкер/монстр - он запросто может пойти на любую локацию, которая ему по рангу.

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

 

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

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

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

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

везде кроме общих фраз и модов нет ничего... НИКАКОЙ КОНКРЕТИКИ!

Все тупо ставят сделанные кем-то тупые моды (бессмертие, скорость, голые бабы и т.д. и т.п.) не разбираясь, что там и как там - абсолютно неважно, лижбы поиграть (как раз именно им!) И видимо после таких улучшений игра становиться в кайф - очень интересно, да?

 

Короче как понимаю, никто не в состонии мне помочь, потому как получается никто не задавался таким вопросом...

 

Хорошо, если Ты более или менее разьбираешься, что делать с вторым вопросом: как сделать, чтобы Герой мог таскать (не брать в рюкзак!) канистру?

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

Weeko

'

достойную' инфу пишут те, кому не лень в том числе "сидеть и сравнивать" ...

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

Касательно меня - на сим я перестал напрягаться, далее тебе потребуется все же поднапрячься ...

Касательно конкретики - сами коды игры, коды многочисленных модов, комментарии к этим кодам, сотни топиков и постов на различных форумах - это ли не конкретика? Давай не будем хаить всех лентяем модмейкеров, не удосужившихся везде разложить на блюдечке все что потребно таким как ты. При желании и времени(!) можно найти почти любую конкретику или даже готовое.

Weeko: Короче как понимаю, никто не в состонии мне помочь ...
Понимай как хочешь, но и прими к сведению, что подобные слова обычно присущи троллям, которые пытаются играть на самолюбии тех, кого принижают и от которых пытаются получить ...

Однако реакция может быть и не ожидаемой тобою. Например, более тебе с моей стороны не будет дано ни одного совета.

 

По 2-му вопросу я уже тебе дал дважды совет - искать в ФАК'ах, иного ответа не будет от меня (потрудись сам немного).

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

(кстати, пока была поднята тема)

 

Некоторые размышления о доработке респавнеров для тех, кто понял о чем и может воспользоваться:

 

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

Для того, чтобы тайм-аут спавна запоминался достаточно чуть доработать методы чтения/записи серверного объекта респавнеров (см. se_respawn.script).

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

Итак правим читалку/запоминалку:

-- сохранение
function se_respawn:STATE_Write( packet )
  cse_alife_smart_zone.STATE_Write( self, packet )
  
  local table_size = table.getn(self.spawned_obj)
  if table_size > 255 then --/#+# проверка переполнения
     --printf("STATE_Write:=[%s/%s],Cnt=[%s]:<%s>", self:name(), self.id, table_size, "Warning!") --/#~#
    table_size = math.min(table_size,255) --/ усекаем до объема хранилища (или потребного)
  end
  packet:w_u8(table_size)
  for i=1,table_size do
    packet:w_u16(self.spawned_obj[i])
  end
  --/#+# запоминаем тайм-аут респавнера
  if self.last_spawn_time_present then --/ спавн уже был?
    packet:w_u8(1)
    utils.w_CTime(packet, self.respawn_time) --/ записываем время след.спавна
  else
    packet:w_u8(0)
  end
end
-- восстановление
function se_respawn:STATE_Read( packet, size )
  cse_alife_smart_zone.STATE_Read( self, packet, size )
  
  if editor() then
    return
  end
  
  local table_size = packet:r_u8()
  for i=1,table_size do
    table.insert(self.spawned_obj, packet:r_u16())
  end
  --/#+# считываем тайм-аут респавнера
  if not packet:r_eof() then --/ еще не конец пакета? (для совместимости со 'старыми' сэйвами)
    self.last_spawn_time_present = packet:r_bool()
    if self.last_spawn_time_present then
      self.respawn_time = utils.r_CTime(packet)
    end
  end
end

Для того, чтобы регистрация респавнеров в игре не затирала бы запомненные значения потребуется небольшая правка метода регистрации:

function se_respawn:on_register()
  --/ ... начальные коды
  --/ производим первичную инициализацию (если нет времени последнего спавна)
  if not (self.last_spawn_time_present and self.respawn_time) then
    self.respawn_time = game.CTime()
  end
  --/ ... заключительные коды
end

и в методе 'execute' добавим инициализацию флага спавна чтобы запоминать состоявшиеся спавны:

function se_respawn:execute()
  --/ ... начальные коды
  self.last_spawn_time_present = true --/#+# флаг
  if self.respawn_time < game.get_game_time() then
  --/ ... заключительные коды
end

 

2. Еще один недостаток респавнеров - отсутствие возможности задавать начальную паузу для спавна.

Т.е. если нам требуется чтобы некий респавнер респавнил бы объекты с периодом в 24 часа, то ... все одно он будет спавнить каждый раз при запуске игры, если актор не на текущей локации (при отсутствии спец.ограничителей). Ведь при запуске новой игры все респавнеры по сути свободны для спавна и ... требуется каждому прописывать некое услове для начала спавна (инфопоршни и т.п.)

Если ввести в параметры респавнеров дополнительный, например назовем : 'respawn_first_idle' в котором в секундах игрового времени задавать начальную паузу для спавна, то в купе с другими условиями, дает довольно простое средство задавать начальную паузу.

Таким образом доработанный вышеприведенный код в регистраторе респавнеров может быть таким:

function se_respawn:on_register()
  --/ ... начальные коды
  --/ производим первичную инициализацию времени спавна
  if not (self.last_spawn_time_present and self.respawn_time) then
    --/#+# читаем начальную паузу спавна объектов (при старте игры)
    local iPause = r_num(ini, "respawn", "respawn_first_idle", nil) --/ sec
    if iPause then --/ имеется пауза (в игр.секундах)
      local iShift = math.floor(iPause*0.2) --/ погрешность (sec)
      local idle_time = game.CTime() --/ текущее игровое время
      idle_time:setHMSms(0,0,iPause+math.random(-iShift,iShift),0) --/ тайм-аут
      self.respawn_time = game.get_game_time() + idle_time --/ устанавливаем начальный тайм-аут
      self.last_spawn_time_present = true --/#+# флаг
    else --/ ставим текущее игровое время
      self.respawn_time = game.CTime()
    end
  end
  --/ ... заключительные коды
end

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

 

Примечание: Собственно почти все вышеизложенное можно взлянуть в кодах Симбион-мода, на котором и был доведен до ума и проверен.

 

P.S. Подправил коды, а то при перенесении из рабочих кодов допустил пару неточностей/дублей.

 

Добавлено через 8 мин.:

===============================================================

Max_Plohih, ты хоть понял о чем спросил?

1. Звук противогаз НЕ издает, издавать звук может тот, кто в противогазе (озвучка дыхания).

2. Понятие "динамический худ" может относиться к чему угодно, та же шкала радиации, введенная во многе моды - динамический худ шкалы.

Если ты об "интерактивном худе" для противогазов/шлемов из АМК-мода, то там звук уже в наличии. Бери и смотри как 'добавлено', в чем вопрос-то?

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Что ни кто не знает почему по лестницам лазить нельзя..?

FANAT.gif

Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения'

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

Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации

Ссылка на комментарий
Что ни кто не знает почему по лестницам лазить нельзя..?

попробуй axis_z увеличить.

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

как сделать так чтобы при новой игре, ГГ вставал с земли и его немного мутило и еще чтобы при вставании издавал звук?

 

А в школе не учат начинать предложения с заглавной буквы?

Правила форума требуют соблюдать грамотность в своих постах ... --/Artos

 

К перечисленному добавлю: уж за три месяца, мог бы и разобраться с вопросом... Cyclone

Изменено пользователем Cyclone
777T15074.png
Ссылка на комментарий

Всем привет. Такой вопрос. Никто еще не научил неписей стрелять со стационарного пулемета?

Изменено пользователем Roman82
Ссылка на комментарий
Roman82, ПЫСы научили... взять хотя бы ЧН переход с Болот на Кордон, вспомни как этот "стационарный пулемет" поливает ГГ...
Ссылка на комментарий

Серый Волк - там турель+модель непися приделаная к геометрии-если пробовал в пулемётчика стрелять-замечал наверное что его незя убить ;) .

Люди - может кто подсказать что означает такой лог?

 

Expression : hFile>0

Function : FileDownload

File : E:\stalker\sources\trunk\xrCore\FS.cpp

Line : 106

Description : e:\games\stalker\gamedata\config\

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

Ещё раз...

Такой вопрос, как заставить Героя таскать канистру с бензином, так же как он таскает трупы?

 

Замечу, не брать! в рюкзак!, а именно таскать!!!

Нигде не могу найти... везде реализовано только то, что Он берёт в рюкзак - не то, надо чтобы Он её мог таскать "руками"...

 

Прописываю по аналогии с монстрами... Таскает всё, кроме канистры почему-то. Пишу ящики, вёдра, балоны и т.д. - тащит, канистру в упор не берёт.

Думаю, что отказывается брать всё взрывающееся, поскольку не получилось взять бочку с топливом (красную) тоже...

 

Как сделать?

 

оригинальная игра, версия 1.0006, Тень Чернообыля, модов нет...

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

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

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

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

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

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

Войти

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

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

×
×
  • Создать...