Jump to content
Halford

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

Recommended Posts

amik    241

Большие буквы убери Arguments : Can't open section 'wpn_Walther_WA_2000' проверь правильно все ли поставил...

И если что редактируй свое предедущее сообщение а то на твой вопрос 5 страниц надо будет ;)

Edited by and_modern

Мой архив

Сталкером не занимаюсь.

Share this post


Link to post
Share on other sites
Malandrinus    596
Наносить скриптом хит, подобрав силу и тип. Вроде после chemical_burn появляется только кровотечение

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


 

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

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

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

 

Share this post


Link to post
Share on other sites
antreg    154

Elliond,

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

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

Вот так надо:

#include "w_w2000.ltx"

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

 

Добавлено:

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

Edited by antreg

Share this post


Link to post
Share on other sites
Elliond    0

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

 

Elliond,

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

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

Вот так надо:

#include "w_w2000.ltx"

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

 

Имя файла w_walther_wa_2000.ltx

Edited by Elliond

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

Share this post


Link to post
Share on other sites
Kirag    37

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

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

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


Мои работы:

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

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

Soul Cube

 

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

Share this post


Link to post
Share on other sites
vader92    0

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

Share this post


Link to post
Share on other sites
Malandrinus    596

Kirag,

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

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

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

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

 

vader92,

 

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

Edited by malandrinus

 

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

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

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

 

Share this post


Link to post
Share on other sites
Crazyman    0

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

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

 

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

xr3da2010052011333284.jpg

 

 

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

Edited by Crazyman

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

Share this post


Link to post
Share on other sites
Guest max_max_08   
Guest max_max_08

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

Share this post


Link to post
Share on other sites
AK-103    15

Да, можно. Можно аптечке задать коэффициент "повреждения", например 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

Share this post


Link to post
Share on other sites
Kirag    37

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

 

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

Share this post


Link to post
Share on other sites
Malandrinus    596

Kirag,

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


 

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

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

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

 

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
elfog    0

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

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

Edited by elfog

morda. cod4 player

Share this post


Link to post
Share on other sites
vader92    0

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

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

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()

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

Share this post


Link to post
Share on other sites
Darien    0

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 секунды с гаком. :)

Share this post


Link to post
Share on other sites
Guest max_max_08   
Guest max_max_08

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

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

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

Edited by max_max_08

Share this post


Link to post
Share on other sites
 DimOriN    34

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

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

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

Share this post


Link to post
Share on other sites
elfog    0

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

 

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

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

Edited by elfog

morda. cod4 player

Share this post


Link to post
Share on other sites
Malandrinus    596
однако когда он переходит в онлайн - он оказывается не в сотне метров в воздухе, а гдето в полуметре от асфальта, как победить глюк?

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

 

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

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

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

 

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

Edited by malandrinus

 

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

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

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

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


AMK-Team.ru

×
×
  • Create New...