Случайная подборка модов
Call of Chernobyl
4.5
Контракт на плохую жизнь: Эффект бабочки
3.7
Смерти Вопреки 2. Одним днем живу
3.4
Dead City Breakthrough
3.7
Sleep Of Reason - Zulus Story 0.5
2.4
Sleep Of Reason - История Журналиста
2.1
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  Wolfstalker
Среда, 24.02.2016, 00:25 | Сообщение # 1
Статус:
Легенда:
Сообщений: 2258
Награды: 15
Регистрация: 05.04.2010

В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга


• Не флудить
• Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там
• В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти




F.A.Q

  Злобная реклама
Среда, 24.02.2016, 00:25
Статус:
Сообщений: 666
Регистрация: 05.04.2010
Российская Федерация  [Qvt]
Пятница, 25.03.2016, 10:57 | Сообщение # 616
Статус:
Отмычка:
Сообщений: 154
Награды: 3
Регистрация: 19.02.2016

mmihaill, смотри тут и посты дальше
http://ap-pro.ru/forum/1-9999-665#843634
  Злобная реклама
Пятница, 25.03.2016, 10:57
Статус:
Сообщений: 666
Регистрация: 19.02.2016
Российская Федерация  Neptun
Пятница, 25.03.2016, 13:54 | Сообщение # 617
Связной
Статус:
Бывалый:
Сообщений: 672
Награды: 9
Регистрация: 25.03.2012

[Qvt], спасибо, а чем компилить/декомпилить движковый файл?
  Злобная реклама
Пятница, 25.03.2016, 13:54
Статус:
Сообщений: 666
Регистрация: 25.03.2012
Российская Федерация  denis2000
Пятница, 25.03.2016, 14:27 | Сообщение # 618
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Mopa, Сожалею, что вы настолько заняты, что не можете прочитать всю переписку.


_S_k_i_F_, Что-то типа такого:
Код
function generic_object_binder:save(packet)
    set_save_marker(packet, "save", false, "generic_object_binder")
    object_binder.save(self, packet)
    xr_logic.save_obj(self.object, packet)
    if self.use then
  packet:w_bool(self.use)
  packet:w_stringZ(self.item)
  packet:w_u16(self.item_count)
    else
  packet:w_bool(false)
    end
    set_save_marker(packet, "save", true, "generic_object_binder")
end

function generic_object_binder:load(reader)
    self.loaded = true
    set_save_marker(reader, "load", false, "generic_object_binder")
    object_binder.load(self, reader)
    xr_logic.load_obj(self.object, reader)
    self.use = reader:r_bool()
    if self.use then
  self.item = reader:r_stringZ()
  self.item_count = reader:r_u16()
  self.object:set_callback(callback.use_object, self.on_use, self)
    end
    set_save_marker(reader, "load", true, "generic_object_binder")
end
Сообщение отредактировал denis2000 - Пятница, 25.03.2016, 14:29
  Злобная реклама
Пятница, 25.03.2016, 14:27
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  _S_k_i_F_
Пятница, 25.03.2016, 15:07 | Сообщение # 619
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

denis2000, большущее человеческое спасибо! Все как надо! Правда пришлось функцию загрузки немного изменить
Код

function generic_object_binder:load(reader)
    self.loaded = true
    set_save_marker(reader, "load", false, "generic_object_binder")
    object_binder.load(self, reader)
    xr_logic.load_obj(self.object, reader)
    self.use = reader:r_bool()
    if self.use then
  self.item = reader:r_stringZ()
  self.item_count = reader:r_u16()
local character_use = "mutant_character_use"
  self.object:set_tip_text(character_use)
  self.object:set_callback(callback.use_object, self.on_use, self)
  self.sound_use = sound_object("material\\dead-body\\collide\\hithard0"..tostring(math.random(1,
6)).."hl")
    end
    set_save_marker(reader, "load", true, "generic_object_binder")
end
  Злобная реклама
Пятница, 25.03.2016, 15:07
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  Advisor890
Пятница, 25.03.2016, 16:58 | Сообщение # 620
Статус:
Отмычка:
Сообщений: 115
Награды: 1
Регистрация: 07.07.2012

Какой функцией в ЧН можно перевести НПС в оффлайн или просто "удалить"?
Пробовал вот эту функцию:

function name()
local npc = alife():story_object(sid)
if npc then
alife():set_switch_offline (npc.id, true)
alife():set_switch_online (npc.id, false)
alife():set_interactive (npc.id, false)
end
end

Если её вызывать из диалога, то НПС не пропадает.
Пробовал ещё вот такую функцию:

function name()
local npc = level_object_by_sid(sid)
if obj then
alife():release(obj, true)
end
end

Но она тоже не работает.
  Злобная реклама
Пятница, 25.03.2016, 16:58
Статус:
Сообщений: 666
Регистрация: 07.07.2012
Российская Федерация  [Qvt]
Пятница, 25.03.2016, 17:06 | Сообщение # 621
Статус:
Отмычка:
Сообщений: 154
Награды: 3
Регистрация: 19.02.2016

mmihaill, ничем, скачивай слитые исходники.
  Злобная реклама
Пятница, 25.03.2016, 17:06
Статус:
Сообщений: 666
Регистрация: 19.02.2016
Украина  _S_k_i_F_
Пятница, 25.03.2016, 17:08 | Сообщение # 622
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

Advisor890, для удаление НПС вот функция
Код
function del_npc()
local npc_id = get_story_object_id("стори_айди_НПС")
if npc_id ~= nil then
alife():release(alife():object(npc_id), true)
end
end
  Злобная реклама
Пятница, 25.03.2016, 17:08
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  Advisor890
Пятница, 25.03.2016, 17:30 | Сообщение # 623
Статус:
Отмычка:
Сообщений: 115
Награды: 1
Регистрация: 07.07.2012

_S_k_i_F_, Вызываю через диалог с НПС и вылетает вот с таким логом:
Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp
Line : 180
Description : <no expression>
Arguments : LUA error: ... - Чистое Небо\gamedata\scripts\marsh_scripts.script:32: attempt to call global 'get_story_object_id' (a nil value)
  Злобная реклама
Пятница, 25.03.2016, 17:30
Статус:
Сообщений: 666
Регистрация: 07.07.2012
Украина  _S_k_i_F_
Пятница, 25.03.2016, 17:52 | Сообщение # 624
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

Advisor890, удалять НПС через диалог с ним некорректно. Перемести функцию в xr_effects, по окончанию диалога выдай поршень и вызови функцию через рестриктор
Код
[logic]
active = sr_idle

[sr_idle]
on_info = {+info} sr_idle@1

[sr_idle@1]
on_game_timer = 30 | sr_idle@nil %=del_npc%

[sr_idle@nil]

Добавлено (25.03.2016, 17:52)
---------------------------------------------
Advisor890, если в _g.script нет функции

Код
function get_object_story_id(obj_id)
    return story_objects.get_story_objects_registry():get_story_id(obj_id)
end

то добавь её и вылета не должно быть.
Сообщение отредактировал _S_k_i_F_ - Пятница, 25.03.2016, 17:50
  Злобная реклама
Пятница, 25.03.2016, 17:52
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  ins33
Пятница, 25.03.2016, 18:02 | Сообщение # 625
Dream Reader Mod
Статус:
Опытный:
Сообщений: 2269
Награды: 1
Регистрация: 17.01.2012

_S_k_i_F_, Зачем ставить рестриктор? НПС сам в состоянии себя удалить логикой. И теоретически можно и из диалога, но поршнем. Сам не проверял.

Advisor890, Проще добавить универсальную ф-ию в xr_effects
Код
---------------------------------------------------------------------
-- =release_sid(number)
---------------------------------------------------------------------

function release_sid(actor, npc, p)
local sim = alife()
local se_obj = sim:story_object(p[1])
if se_obj then
sim:release(se_obj, true)
end
end

И вызывать
Код
on_info = {+,-,=,!} nil %=release_sid(4)%

Опять Волку досталось.
Сообщение отредактировал ins33 - Пятница, 25.03.2016, 18:05
  Злобная реклама
Пятница, 25.03.2016, 18:02
Статус:
Сообщений: 666
Регистрация: 17.01.2012
Российская Федерация  Advisor890
Пятница, 25.03.2016, 18:24 | Сообщение # 626
Статус:
Отмычка:
Сообщений: 115
Награды: 1
Регистрация: 07.07.2012

ins33, Твоя функция работает. Спасибо.
  Злобная реклама
Пятница, 25.03.2016, 18:24
Статус:
Сообщений: 666
Регистрация: 07.07.2012
Украина  alex1197
Пятница, 25.03.2016, 20:31 | Сообщение # 627
Статус:
Отмычка:
Сообщений: 160
Награды: 8
Регистрация: 09.03.2014

Кто сталкивался с таким вылетом? biggrin
Код

stack trace:

0023:061FAA92 xrGame.dll, xrFactory_Create()

[error][     183]    : Невозможно создать файл, так как он уже существует.
  Злобная реклама
Пятница, 25.03.2016, 20:31
Статус:
Сообщений: 666
Регистрация: 09.03.2014
Российская Федерация  AzzzA
Пятница, 25.03.2016, 21:45 | Сообщение # 628
Clear sky: Время перемен
Статус:
Опытный:
Сообщений: 3933
Награды: 11
Регистрация: 14.08.2012

Есть ли где тутор по реализации рандомных тайников в ЗП?
Скрипт АМК слишком трешевый для меня.
  Злобная реклама
Пятница, 25.03.2016, 21:45
Статус:
Сообщений: 666
Регистрация: 14.08.2012
Российская Федерация  denis2000
Пятница, 25.03.2016, 21:54 | Сообщение # 629
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

AzzzA,
Создание тайника в ЗП затронуто здесь. Выдача рандомного тайника осуществляется сриптом:
Код
treasure_manager.get_treasure_manager():give_random()
Сообщение отредактировал denis2000 - Пятница, 25.03.2016, 21:55
  Злобная реклама
Пятница, 25.03.2016, 21:54
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  c0nvercE
Пятница, 25.03.2016, 23:10 | Сообщение # 630
Статус:
Зевака:
Сообщений: 11
Награды: 1
Регистрация: 16.12.2015

Кто-нибудь работал с имитацией голоса под противогаз? Можно ли прописать эту заглушку под противогаз в конфигах или нет? С помощью какой программы отредактировать исходник, если нельзя через конфиг?
  Злобная реклама
Пятница, 25.03.2016, 23:10
Статус:
Сообщений: 666
Регистрация: 16.12.2015
Поиск: