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

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


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

Наносить скриптом хит, подобрав силу и тип. Вроде после chemical_burn появляется только кровотечение

Добавлю. Хит можно наносить и отрицательный и таким образом "лечить". В качестве альтернативы можно перехать на движок ЗП. Там вместо этой функции появилось нормальное свойство bleeding на чтение и запись.

 

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

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

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

 

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

Elliond,

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

Лишняя буква "а":

Вот так надо:

#include "w_w2000.ltx"

И вообще это не в той теме вопрос.

 

Добавлено:

Имя файла w_walther_wa_2000.ltx --такое длинное имя (со столькими "нижними подчёркиваниями") ни один мододел и грамотный создатель оружия не мог задать (то же самое относится и к скриптам, где есть ограничение на длинну имени), поэтому причину проблемы ищи там, где ты этот ствол взял - либо сам переименовал файл. Такого .ltx не должно быть. Измени и проверь на более коротком имени.

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

То ли лыжи не едут, то ли я е... Проверил, всё стоит на месте, всё прописано, однако вылет... Ладно, значит не судьба именно с этой винтовкой. Всем спасибо, кто уделил свое время моей проблеме.

 

Elliond,

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

Лишняя буква "а":

Вот так надо:

#include "w_w2000.ltx"

И вообще это не в той теме вопрос.

 

Имя файла w_walther_wa_2000.ltx

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

Защити зону от Долга! вступай в www.shoc-role.ucoz.ru !!!

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

Подскажите, пожалуйста, такой момент:

Создаю alife():create-ом оружие в полуметре от актора, сразу при спавне меняю нет-пакет. На следующем же апдейте проверяю существование серверного объекта - все в порядке, существует сразу же. Но в онлайн оружие переходит только через несколько апдейтов, а иногда (очень редко, но все-таки) не хочет переходить в онлайн вообще. Если переиграть, то тот же ствол в тех же условиях с теми же изменениями в нет-пакете прекрасно переходит в онлайн, после чего спокойно переносится в инвентарь актора. От чего это зависит - непонятно :(

Можно ли как-то насильно перевести серверный объект свежесозданного оружия в онлайн (id известен) сразу же после создания и как это сделать? Функцией switch_online из _g.script пробовал, толку не видно...

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

Доброй ночи. Подскажите, что мне нужно, что бы вывести на экран время, которое прошло с начала запуска игры. т.е. сколько часов/минут запущена игра. Знаю, что есть функция game.time(). Смог вывести худ игровое время. А что поменять в скрипте, что бы вместо игрового, показывалось время с начала запуска не пойму.

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

Kirag,

Можно ли как-то насильно перевести серверный объект свежесозданного оружия в онлайн (id известен) сразу же после создания и как это сделать?

1. Смутно уже помню, но переход в онлайн предваряется вызовом метода серверного объекта (вроде как can_switch_online), который позволяет/не позволяет объекту перейти в онлайн. Я это к тому, что эти вызовы идут периодически с частотой вроде как одна секунда (но точно уже не помню). Это значит, что количество апдейтов до перехода в онлайн в целом величина переменная. Это если объект своим ходом переходит (от попадания в зону вокруг актора). Если пытаешься форсировать с помощью set_switch_online/offline, то см. ниже (п.3).

2. Почему не переходит в онлайн вообще да ещё иногда - тут ничего сказать не могу без эксперимента. Может с нетпакетом накосячил. Оружие вообще не столь к этому чувствительно, как другие объекты.

3. Сразу не перевести никак, просто потому, что это технически невозможно. Создаёшь ты на сервере, а в онлайне объект появляется на клиенте. Хоть это и одна машина, но сетевая архитектура всё равно остаётся. Передача по сети (а перевод объекта в онлайн связан с передачей нетпакета) происходит асинхронно, т.е. ты инициировал передачу (и только) и управление возвращается к тебе в скрипт. Ясно, что как минимум раньше следующего апдейта результата не дождёшься.

 

vader92,

 

используй time_global()

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

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

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

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

 

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

Как ускорить/увеличить время накопления силы перед броском гранаты/болта на ПКМ(Правая Кнопка Мыши)?

А то у меня тяяяянется сила, тяянется, а тут раз и нету меня! ;)

 

И да, вот что ещё, где редактировать вот такие ящички?

xr3da2010052011333284.jpg

 

 

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

Изменено пользователем Crazyman
S.T.A.L.K.E.R. - Зов Припяти 1.6.00 + повелитель Зоны + мои всякие наработки = какая-то глобалка размером в 1,04 ГБ (1 117 802 496 байт) которая содержит 5580 файлов в 467 папках.

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

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

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

Да, можно. Можно аптечке задать коэффициент "повреждения", например 0.25 процентов.

Intel Centrino Mobile (Dual-core) T2700 2,328 GHz, Intel GMA 945GM, 2x1024 MB DDR2-667, WD Scorpio 1200BEVS

Microsoft Windows 7 Professional N + Novell Linux 11.2 (OpenSUSE) Dual boot

S.T.A.L.K.E.R. SHOC 1.0004 + AMK 1.4.1 + NS3 + NLC3 + Arsenal + Arsenal beta +New weapons

 

Опытный американский дробовик XM1014 =O

Хозяйке на заметку: Не спешите выбрасывать чеку от использованной гранаты Ф-1 или РГД-5 - с её помощью можно легко и удобно прикрепить игрушечного пингвинчика к своему рюкзаку. © not me

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

malandrinus

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

 

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

 

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

...

server object 28416 exists: true

can_switch_online: true

can_switch_offline :false

...

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

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

alife():set_switch_online (id, true)

alife():set_switch_offline (id, false)

толку с того ноль. Все равно переходит только "своим ходом" через N апдейтов...

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

Kirag,

В качестве предположения. Там есть флажки object_flags. Эти флажки, насколько я помню на запись работают, а вот при чтении почему-то не читались. Т.е. при записи их надо было явно выставлять независимо от того, что там прочиталось до этого. Среди прочих там имеются use_swiches (как-то так по памяти). Может быть невключённость этих флажков влияет?

 

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

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

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

 

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

кстати true false, в роли второго параметра являются принудительностью перевода объекта..

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

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

Спавн я всё таки победил спасибо Kirag'у, Вопрос таков, как вызвать преждевременный выброс?

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

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

morda. cod4 player

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

Прошу прощения за тупизм. Ранее я задавал вопрос, как вывести на экран время, которое прошло с начала запуска игры.

Смог с помощью одного из уроков по модмейкерству вывести на худ игровое время:

function show_time()

local hud = get_hud()

local cs = hud:GetCustomStatic("hud_show_time")

if cs == nil then

hud:AddCustomStatic("hud_time_static", true)

hud:AddCustomStatic("hud_show_time", true)

cs = hud:GetCustomStatic("hud_show_time")

end

 

local time_h = level.get_time_hours()

local time_m = level.get_time_minutes()

local msg

if time_m >= 10 then

msg = string.format(" %02d:%02d\n", time_h, time_m)

else

msg = string.format(" %02d:%02d\n", time_h, time_m)

end

 

if cs ~= nil then cs:wnd():SetText(msg) end

end

 

 

Так же я знаю, что за вывод реального времени с момента запуска игры отвечает функция time_global()

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

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

vader92

Попробуй в нет спавне определять переменную как time_global(), например tim = time_global(). Это будет постоянное число, которое будет определено при каждой загрузке\старте игры. А затем вычитай из настоящего времени эту переменную - получишь время с момента загрузки. Вот пример:

tim = 0
function actor_binder:net_spawn(data) -- Это в bind_stalker
...
  tim = time_global()
...
end

А вот это я уже вызываю функцию из другого файла:

function method()
  start_time = time_global() - bind_stalker.tim
  news_manager.send_tip(db.actor, start_time, 0)
end

Приходит смс с четырёхзначным числом, например 4334, т.е. 4 секунды с гаком. :)

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

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

amk.g_start_timer("blowout",0,0,0) игровое время

amk.start_timer("blowout",1) реальное время.

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

спавню непися в воздухе, киляю его, и меняю ему ник

local obj = alife():create("bar_dolg_respawn_2", vector():set(14, 155, 673), 292018, 206)
repack_npc(obj, "Генерал Таченко")

function repack_npc(obj, name)
  local data     = xr_packet.read_stalker_params(obj)
  data.charname  = name
  data.health    = 0
  data.updhealth = 0
  xr_packet.write_stalker_params(data, obj)
end

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

Untitled-1.png

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

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

 

ЗЫ. Вопрос по тем же аномалиям, почему созданную мной аномалию все, без исключения, НПС не видят в упор, как будто для них ее нету? Аномалия срабатывает ... хрусь и трупы. :mellow:

Ещё один вопрос, аномалия после выбросов исчезать будет?

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

morda. cod4 player

Ссылка на комментарий
однако когда он переходит в онлайн - он оказывается не в сотне метров в воздухе, а гдето в полуметре от асфальта, как победить глюк?

Для неживых объектов помогает снять флажок used_ai_location в поле object_flags. Флажок имеет маску 64. Не уверен однако, что для тушки это поможет. Живые объекты передвигаются по сетке. Может так статься, что независимо от "живости" привязка будет в любом случае.

 

почему созданную мной аномалию все, без исключения, НПС не видят в упор, как будто для них ее нету?

Ещё один вопрос, аномалия после выбросов исчезать будет?

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

 

Аномалия исходно - статический объект. Появляться и исчезать её заставили хитрые модостроители =) Т.е. опять же смотри, как это сделано в АМК.

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

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

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

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

 

Ссылка на комментарий
Для неживых объектов помогает снять флажок used_ai_location в поле object_flags. Флажок имеет маску 64

Как снять скриптом, я так понимаю, это делается при помощи математических действий?

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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