Случайная подборка модов
Новый Арсенал 5.0
3.6
История снайпера: Ловушка Судьбы
2.9
AVS "Закон Меченого" 2 части
3.4
We Are Not Alone
4.0
Soc Style Addon 2.0
4.1
Darkest Time
3.5
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  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
Российская Федерация  KomeR
Среда, 28.09.2016, 12:49 | Сообщение # 4036
Статус:
Отмычка:
Сообщений: 115
Награды: 1
Регистрация: 26.03.2016

Всем здравия!
Раз нет других вопросов, задам свои нубские.... biggrin
Вопросы касаются всех 3х платформ (ТЧ, ЧН и ЗП)
Вот эти пара вопросов:
1. Какие существуют все возможные способы выдачи квестов через функции? (нужны конкретные строки(функции) с вызовом "мой_квест")
2. Если я в файлах поршня удалю поршень, который присутствует в логике в "all.spawn", какие будут последствия? (вылет игры, не срабатывание логики и т.д.)

Сообщение отредактировал KomeR - Среда, 28.09.2016, 12:50
  Злобная реклама
Среда, 28.09.2016, 12:49
Статус:
Сообщений: 666
Регистрация: 26.03.2016
Российская Федерация  Mr_KpuBoPyK
Среда, 28.09.2016, 18:55 | Сообщение # 4037
Статус:
Неопытный:
Сообщений: 544
Награды: 3
Регистрация: 24.03.2014

Решил я значит поставить LWO....а то играть не во что совсем. Но при запуске вот че!

Первый раз с таким сталкиваюсь!
Как это можно исправить?
Прикрепления: 5066080.png (388.0 Kb)
  Злобная реклама
Среда, 28.09.2016, 18:55
Статус:
Сообщений: 666
Регистрация: 24.03.2014
Российская Федерация  Overfirst
Среда, 28.09.2016, 18:57 | Сообщение # 4038
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

PRO100_STALKER, наверняка криво накатил bin.
  Злобная реклама
Среда, 28.09.2016, 18:57
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Российская Федерация  Mr_KpuBoPyK
Среда, 28.09.2016, 19:08 | Сообщение # 4039
Статус:
Неопытный:
Сообщений: 544
Награды: 3
Регистрация: 24.03.2014

BoBaH_671, А че там накатывать то! добавил с заменой...переустановка игры не помогла.

Добавлено (28.09.2016, 19:08)
---------------------------------------------
А у меня в архиве LWO нету файла xrCore...А игра на него и ругается..может какой то архив битый?

  Злобная реклама
Среда, 28.09.2016, 19:08
Статус:
Сообщений: 666
Регистрация: 24.03.2014
Российская Федерация  denis2000
Среда, 28.09.2016, 19:30 | Сообщение # 4040
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата KomeR ()
Если я в файлах поршня удалю поршень, который присутствует в логике в "all.spawn", какие будут последствия?

Если в ТЧ, то вылет. Если в ЧН, ЗП то ничего не случиться.


PRO100_STALKER, Скорее всего XR_3DA.exe поврежден поскольку ссылается на функцию из библиотеки с не читаемым именем.
Сообщение отредактировал denis2000 - Среда, 28.09.2016, 19:31
  Злобная реклама
Среда, 28.09.2016, 19:30
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  _S_k_i_F_
Среда, 28.09.2016, 19:33 | Сообщение # 4041
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

Такой вопрос: написал функцию, которая ставит метку на НПС.
Код
function show_spot_on_quest_npc(actor, npc, p)
local npc = p[1]
local spot = "npc"
local npc_name = get_story_object(npc)
local text = npc_name:character_name()
local npc_id = get_story_object_id(npc)
local npc_pos = alife() <img src="/.s/sm/23/surprised.gif" border="0" align="absmiddle" alt="surprised" /> bject(npc_id)
local text = npc_pos:character_name()
level.map_add_object_spot_ser(npc_pos.id, spot, text)
end

Она прекрасно работает, но когда НПС в оффлайне - вылетает с логом attemp to index local "npc_name". Можно ли каким-то другим способом проверить НПС в оффлайне? Зараннее спасибо!
  Злобная реклама
Среда, 28.09.2016, 19:33
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  denis2000
Среда, 28.09.2016, 19:36 | Сообщение # 4042
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата KomeR ()
Какие существуют все возможные способы выдачи квестов через функции?

К сожалению не унифицировано, анпример в ЗП:
task_manager.get_task_manager():give_task("Мойквест")
agr_additional_quest_5b_reward(first_speaker, second_speaker)
и тд. и тп.


_S_k_i_F_, Ну так если npc_name == nil то НПС в офлайне или не существует.
Сообщение отредактировал denis2000 - Среда, 28.09.2016, 19:36
  Злобная реклама
Среда, 28.09.2016, 19:36
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  _S_k_i_F_
Среда, 28.09.2016, 19:41 | Сообщение # 4043
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

denis2000, эт я знаю. Пробовал проверять вот так
Код
if npc_name ~= nil then
text = npc_name:character_name()
else
text = "Квестовый НПС"
end

Но вылетает attempt to call method 'character_name' (a nil value)
  Злобная реклама
Среда, 28.09.2016, 19:41
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  denis2000
Среда, 28.09.2016, 19:45 | Сообщение # 4044
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

_S_k_i_F_, Это потому что вы применяете серверный движковый метод character_name к клиентскому типу объекта.
  Злобная реклама
Среда, 28.09.2016, 19:45
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  _S_k_i_F_
Среда, 28.09.2016, 19:58 | Сообщение # 4045
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

denis2000, а можно клиентский тип перевести в серверный?
  Злобная реклама
Среда, 28.09.2016, 19:58
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  denis2000
Четверг, 29.09.2016, 12:31 | Сообщение # 4046
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

_S_k_i_F_, Зная id можно получить серверный, а преобразовать один объект в другой - это не совсем идеология объектно-ориентированного программирования.
  Злобная реклама
Четверг, 29.09.2016, 12:31
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Украина  _S_k_i_F_
Четверг, 29.09.2016, 12:48 | Сообщение # 4047
Золотой Обоз
Статус:
Опытный:
Сообщений: 1311
Награды: 9
Регистрация: 09.08.2015

denis2000, немного переформулирую вопрос: вот функция, как сделать так чтобы она работала и для онлайн, и для оффлайн объекта?
Код
function show_spot_on_quest_npc(actor, npc, p)
local text
local npc = p[1]
local spot = "npc"
local npc_name = get_story_object(npc)
if npc_name ~= nil then
text = npc_name:character_name()
else
text = "Квестовый НПС"
end
local npc_id = get_story_object_id(npc)
local npc_pos = alife() <img src="/.s/sm/23/surprised.gif" border="0" align="absmiddle" alt="surprised" /> bject(npc_id)
local text = npc_pos:character_name()
level.map_add_object_spot_ser(npc_pos.id, spot, text)
end
  Злобная реклама
Четверг, 29.09.2016, 12:48
Статус:
Сообщений: 666
Регистрация: 09.08.2015
Российская Федерация  makdm
Четверг, 29.09.2016, 13:26 | Сообщение # 4048
Время Альянса
Статус:
Опытный:
Сообщений: 1787
Награды: 19
Регистрация: 22.11.2012

Цитата _S_k_i_F_ ()
как сделать так чтобы она работала и для онлайн, и для оффлайн объекта?

Никак не сделать.
В секцию НПС введите дополнительный параметр, например

name = st_jup_a12_stalker_assaulter_name

Из секции прочитаете этот параметр и вставите в свой скрипт для вывода text.
  Злобная реклама
Четверг, 29.09.2016, 13:26
Статус:
Сообщений: 666
Регистрация: 22.11.2012
Российская Федерация  Mr_KpuBoPyK
Четверг, 29.09.2016, 19:10 | Сообщение # 4049
Статус:
Неопытный:
Сообщений: 544
Награды: 3
Регистрация: 24.03.2014

Здравствуйте. Взял я значит такую функцию:
Код
function money_gg(first_speaker, second_speaker)
dialogs.relocate_money_to_actor(first_speaker, second_speaker, 1000)
end

И хочу поставить в диалог. Вот вопрос: Нужно использовать <action></action> ?? Или совсем другое?
P.S. Начал осваивать скрипты))
-------------------------------------------------------------------------
И могу ли я в одном диалоге или нескольких использовать одну и ту же функцию?
Сообщение отредактировал PRO100_STALKER - Четверг, 29.09.2016, 19:13
  Злобная реклама
Четверг, 29.09.2016, 19:10
Статус:
Сообщений: 666
Регистрация: 24.03.2014
Российская Федерация  Suhar_
Четверг, 29.09.2016, 19:16 | Сообщение # 4050
Статус:
Новичок:
Сообщений: 283
Награды: 3
Регистрация: 11.03.2016

Уважаемые скриптеры, вопрос такого характера.
Имеется довольно большая таблица строковых и числовых данных примерно следующего вида.
table = {}
table[npc_id] = {}
table[npc_id]["param_1"] = "lol"
table[npc_id]["param_2"] = 100500
Почти для кадого НПС в соответствии с айди задается ряд параметров, которые хранятся в этой таблице.
Таблица должна сохраняться на всем протяжении игры.
Собственно возник вопрос о сохранении этой таблицы.
Использовать для этих целей конструкцию db.storage[npc_id] невозможно, т.к. существует множество (как много - неизвестно) функций, которые постоянно обращаются к этой конструкции, и если конструкция ~= nil, то пытаются из нее получить какие-то свои значения, что естественно приводит к вылету.
Есть мысль насильно создать в db.storage ячейку [65537] и записать таблицу туда. Другой вариант - записывать все это безобразие в db.storage[db.actor:id()].pstor["table"]. Хотел бы узнать, не повлечет ли за собой негативных последствий запись таких больших таблиц в db.storage?
Или быть может есть какие-то другие нюансы, которые я не учел? Есть ли другие методы сохранения переменных?

Добавлено (29.09.2016, 19:16)
---------------------------------------------
PRO100_STALKER, в диалоге прописывается так: <action>script_name.function_name</action> script_name - имя файла, содержащего функцию
function_name - имя функции

  Злобная реклама
Четверг, 29.09.2016, 19:16
Статус:
Сообщений: 666
Регистрация: 11.03.2016
Поиск: