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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

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


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

Expression : fatal error
Function : CBlender_default::Compile
File : E:\stalker\patch_1_0004\xr_3da\xrRender_R1\BlenderDefault.cpp
Line : 50
Description : <no expression>
Arguments : Not enought textures for shader, base tex: prop\prop_socket1

Ммм, как лечить?

Сообщение от администратора n6260
Переведи в переводчике Not enought textures for shader и тебе откроется страшная тайна ;)

Мод "Жесть"

В команду Two Team ("Жесть") требуется моделлер.

Ищу функции:

1. Возвращает вес инвентаря ГГ. (Перебор объектов инвентаря

actorMass=actorMass+db.actor:object(i):mass()

результатов не даёт, т.к. mass() почему-то возвращает всегда 0.

2. Возвращает максимальный вес инвентаря ГГ (могу и через .ltx, но может есть способ быстрее?)

3. Возвращает true, если актор перегружен (или 3, или 1, т.к. эти функции в условиях моей задачи взаимозаменяемые), иначе false.

4. Получить массу по секции объекта (без вылетов в случае отсутствия параметров, т.е. возвращения nil)

IQDDD,

1. Почитай последние страницы этой темы, если не ошибаюсь, то об этом что-то говорилось.

2. А чем способ через чтения из конфига не быстр?

3. В _g есть ф-ия on_actor_cant_walk_weight. Можно с ней покопаться...

4.

if system_ini():line_exist(obj_section, "inv_weight") then return system_ini():r_float(obj_section, "inv_weight") end

Изменено пользователем Министр
есть ли возможность определить момент попадания болта в спейсрестриктор?

Если кому интересно, проблему решил навешиванием на болт своего биндера

в файле config\weapons\w_bolt.ltx добавляем строку

script_binding = xr_bolt.bind

создаем скрипт xr_bolt.script примерно такого содержания

function bind(obj)
  local new_binder = bolt_binder(obj)
  obj:bind_object(new_binder)
end

class "bolt_binder" ( object_binder )
function bolt_binder:__init(obj) super(obj)
  self.obj = obj
  self.timer_update = game.time()
  self.worked = false
  self.trigger = false
end

function bolt_binder:update(delta)
  if self.timer_update<=game.time() then self.timer_update=game.time()+1500 else return end
  --здесь делаем необходимые нам дела ))))
  --в моем случае необходимо было из подготовленной заранее таблицы спейсрестрикторов
  --выбрать ту в которую текущий болт попал
  if not self.trigger then
    for i, tp in pairs(g_teleports.array_space_rest) do
      local obj = alife():object(tp.id)
      if obj then 
        if self.obj:position():distance_to(obj.position)<=2.5 then
          if not self.worked then
        self.worked = true
        self.trigger = true
        break
          end
        end
      end
    end
  end
  if self.worked then 
    --выполняем нужные нам действия )))
    self.worked = false
  end  
end

 

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Столкнулся с такой проблемой.

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

Доброй ночи!

 

В каком файле можно изменить процент выпадания патронов с трупа в зависимости от сложности игры?

 

Сообщение от администратора n6260
death_items_count.лтх

"Зло перестало быть слепой хаотичной силой. Сегодня Зло действует по праву закона - ибо у него теперь есть права. Оно действует в соответствии с заключенными мирными договорами, ибо о Зле подумали, заключая эти договоры. Геральт из Ривии, ведьмак."

Где можно посмотреть список доступных в игре шрифтов стиля letterica ?

Замедляю полураспад души стержнями музыки

Ирбис, в файле fonts.ltx, что в папке config. Просто распакуй архивы Сталкера (не солянки).

Неважно – сколько у тебя друзей. Важно - сколько из них помогут тебе в трудную минуту и сколько вспомнят о тебе когда им хорошо.

"Худ" и "Умное выпадание частей монстров" для Народной солянки

Совершенно не получается дать обьекту стори_ид при спавне.Делал так:

local obj = alife():create("esc_npc",vector():set(x1,y1,z1),lvid, gvid)
local t = amk.read_stalker_params(obj)
t.story_id = 30139
amk.write_stalker_params(t,obj)

Так же менял визуал неписю - все работает, а вот стори_ид не назначается, я пробовал определить НПС по этому новому стори_иду:

local obj =  alife():story_object( 30139 )

сдесь даже проверка на существование не проходит.Новый стори_ид прописывал в game_story_ids.ltx.

Может кто-нибудь подсобить другим, более надежным вариантом назначения стори_ида?Или я ошибку где-то допустил?

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

А ты вообще откуда взял, что надо так стори_ид устанавливать?

t.story_id = 30139

 

В amk.script read_stalker_params и функцтях, которые она вызывает, такой параметр не читается. И соответственно потом и не пишется

Есть параметр sid, то есть надо так:

t.sid = 30139

 

Названия параметров по-хорошему надо смотреть в amk.script.

Stalk15, Kolmogor,

с изменением story id через нетпакеты есть ещё одна неприятность. Для объекта то он меняется, а вот в разных внутренних структурах не прописывается. Т.е. скажем искать по свежеизменённому story id получится не раньше, чем после перезагрузки.

 

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

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

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

 

Извините, если задаю вопрос не туда куда нужно.

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

Expression : fatal error

Function : CScriptEngine::lua_error

File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

Line : 73

Description : <no expression>

Arguments : LUA error: ....l.k.e.r\gamedata\scripts\smart_monster_parts.script:300: attempt to index global 'arc' (a nil value)

Конечно в моей gamedata много модов и моих исправлений, но ни одно из них не касалось монстров. Правда мог повлиять "Фотореалистичная зона: Живность " но мне он важен.Скажите пожалуйста как это исправить?Можно конечно пройти мимо, но потом аукнется?

Дурак знает как затеять драку, умный знает как победить в драке, мудрец знает как избежать драки.

Arguments : LUA error: ....l.k.e.r\gamedata\scripts\smart_monster_parts.script:300: attempt to index global 'arc' (a nil value)

Собственно все ясно или отсутствует скрипт arc.script или в нем ошибка. Вылеты будут при каждом убийстве монстра :)

 

Эти скрипты из русиного мода Smart Monster Parts(Умное выпадение частей монстров). Попробуй найти его и переставить. ну и конкретно arc.script используется и в других модах от Руси и Ко: биорадар, контейнеры и радиация от артов в инвентаре

Ребята, подскажите где поправить бинокль? http://ipicture.ru/uploads/101020/6SlxHTT4UT.jpg

Сообщение от администратора n6260
Иконку что ли (которая в правом нижнем углу)? Просто указать правильные координаты. Как определять координаты и т.д. Читай в теме "редактора иконок" (раздел модинга) или в моем туторе по добавлению оружия в теме Арсенала.

Так у меня в файле S.T.A.L.K.E.R\gamedata\config\weapons\w_binoc.ltx прописан путь именно к биноклю, а отображается пм.

Сообщение от администратора n6260
Тебе не путь к модели надо править. А иконку предмета :) Это гораздо проще и легче.

 

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

n6260 Тоесть надо вместо икони пм поставить иконку бинокля? Но у ни по сетке размеры разные.

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

inv_grid_width
inv_grid_height
inv_grid_x
inv_grid_y
вот их значение и нужно править

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

ЯДиск папка с крутым схроном!

У меня в файле бинокля эти значения указывают путь к биноклю - в файле иконок, а в ХУДе ПМ

В общем вот:

http://ipicture.ru/uploads/101022/TqnrjS4XYj.png

http://ipicture.ru/uploads/101022/ND92Rf3GtZ.png

http://ipicture.ru/uploads/101020/6SlxHTT4UT.jpg

Тогда есть следующие варианты:

Сообщение от администратора n6260
У тебя остальные иконки отображаются нормально?

Если нет - тогда у тебя проблема с отображением иконок видеокартой.

 

С иконками всё впорядке. Одна проблема-бинокль. Машинка конечно слабенькая :( P-4 RADEON 9600, но на низких настройках игра идёт почти без проблем.

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

Скажите пожалуйста как сделать спаун артов после выброса скриптом??

У меня спаун артов в аномалиях по какой то причине не работает, так что артов в игровом мире уже почти нет.

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

И еще: что делает <precondition>escape_dialog.trader_alredy_give_job</precondition>??

Просто в уроке создания квестов прописана эта функция. С этой функцией у меня диалог не работал. Пришлось убрать.Но все таки что эта функция делает?

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

Дурак знает как затеять драку, умный знает как победить в драке, мудрец знает как избежать драки.

Kolmogor, malandrinus

Спасибо, теперь разобрался.

--------------------------------------------------------------

local Obj = alife():create("esc_k",vector():set(x1,y1,z1),lvid, gvid)
Obj:set_character_community("freedom", 0, 0)

Получаю вылет:attemt to call method 'set_character_community'(a nil value)

Подскажите, что не так?

--------------------------------------------------------------

Kolmogor

Понятно, спасибо.

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

Stalk15,

научись отличать клиентские(онлайновые) объекты от серверных(оффлайновых). Без этого в скриптовании сталкера никуда.

 

Почитай Справочник по функциям и классам.

На офф форуме есть хорошая тема - она правда большая уже, но прочитать ее стоит

 

local Obj = alife():create("esc_k",vector():set(x1,y1,z1),lvid, gvid)
--[[
  Obj сейчас - серверный объект. alife():create возвращает серверные объекты. Это классы с префиксом cse_ из help.script и из файлов se_*.script. Соответственно и методы можно вызывать только те, что есть у этих классов. Метода set_character_community у этих классов нет
  ]]

Obj:set_character_community("freedom", 0, 0)
--[[
    Метод set_character_community есть у класса game_object - это онлайновый объект. Получить его можно, например, через level.object_by_id
  ]]

 

Ну и кстати я не уверен, что этот метод сработает для НПЦ. В оригнальных скриптах он применяется только для ГГ. Посмотри справочник Маландринуса, может там подробней написано.

 

Возможно проще спавнить двух разных НПЦ с разными группировками, но одинаково выглядящими. То есть сначала один, потом его убиваешь и спавнишь нового.

 

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

 

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

Скажите пожалуйста как сделать спаун артов после выброса скриптом??

У меня спаун артов в аномалиях по какой то причине не работает, так что артов в игровом мире уже почти нет.

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

С каким модом ты играешь? :) В чистой ТЧ выброса нет. Просто, например, в НЛЦ5 уже сделано, как ты хочешь - артефакты спавнятся после выброса и количество зависит от локации и качества артефакта.

 

И еще: что делает <precondition>escape_dialog.trader_alredy_give_job</precondition>??

Просто в уроке создания квестов прописана эта функция. С этой функцией у меня диалог не работал. Пришлось убрать.Но все таки что эта функция делает?

В теге precondition прописывается условие появление фразы - если условие выполняется, показывается эта фраза

Условие escape_dialog.trader_alredy_give_job - скорее всего проверяет, что Сидор тебе выдал квест(может быть на поиск арта?). Использовать ее в своих диалогах бессмыслено.

подскажите можно ли прописать свои итем в спавн лута из ящиков.При попытке - вылет с руганью на 112 строку ящик скрипта(xr_box).И еще при попытке убрать из спавна оружие в разы возрастает спавн артов -там какая то зависимость?

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

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

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

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

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

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

Войти

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

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

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