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

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

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

 
 

Stalkerin. Там есть много хороших статей касательно данной темы.
Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения.

 

Справочное руководство по языку Lua 5.1
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
Справочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

 

Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу.

 

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий
https://www.amk-team.ru/forum/topic/6185-skriptovanie/

кровоSTALKER, опять ты передаешь не элемент таблицы а всю таблицу целиком, либо пиши цикл если нужно удалить все объекты из таблици, либо выбирай 1 элемент таблици.

если в таблице записаны name неписей то удаляй по ним, id получать тогда не нужно.

Изменено пользователем 8push5
Возможно всё, ну или почти всё.

кровоSTALKER если дельного сказать нечего не можешь - промолчи, если бы мне нужны были эти псевдорандомные я бы так и сказал, а мне динамические нужны типа как в моде "Наёмники"

 

типа

phr2:GetPhraseScript():AddPrecondition("условие")

phr2=dlg:AddPhrase("диалог",фраза,фраза,-10000)

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

А как можно реализовать запись строки в отдельный файл через скрипт? И можно ли вообще это сделать?

bill_gates

В ТЧ не получится,а вот в ЧН\ЗП - да,получится.

function funcname()
local file = io.open("C:\\Test.ltx","w")
local text = "ТЕКСТ"
file:write(text)
file:close()
end

Не бойтесь совершенства. Вам его не достичь.
C. Дали

В ТЧ максимум что возможно это при открытой игре править\добавлять данные, и тут же перепроверять с обходом fatal error

Суть вопроса ты не пояснил. Сказал рандомные, а хз какие именно. Сори за офтоп.

Строгое предупреждение от модератора n6260
ХЗ - есть слово ругательное.

Редко, но бывает вылет, похожий на этот :

FATAL ERROR

[error]Expression    : e_entity
[error]Function      : xrServer::Process_event_reject
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_process_event_reject.cpp
[error]Line          : 12
[error]Description   : entity not found. id_parent=155 id_entity=161 frame=11654


stack trace:

Например, если использовать скрипт взрыва тел из BB мода, то 1 раз из 5 вылет при взрыве с таким логом.

Если кто сталкивался, то как боролся?

Помогите по следующим вопросам пожалуйста:

1 Какое содержание должно быть в строчке диалога чтобы после нажатия на ветку разговора,нпс давал гг по роже?

2 Как исправить вылет при переходе на новые локации если включены динамические аномалии после выброса только для старых локаций?

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

Struck,

 

Для перебора вещей есть функции iterate_inventory. Описание смотри в теме "справочник" в сообщении про game_object. Окно за тебя никто не сделает. Посмотри готовые примеры, самый популярный - это главное меню, и сделай по подобию.

 

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

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

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

 

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

Как перевести выпарсенный список вещей в окошко?

Создаёшь Лист-бокс и запихиваешь туда названия предметов.

self:AddToBox(game_translate(ObjName));

где ObjName - ключ inv_name из секции предмета. Прочитать ключ можно используя функции по работе с ини-файлами.

 

Только, это - метод AddToBox нужно написать самому :)

Изменено пользователем меченый(стрелок)
окно я сам сделаю, мне не понятно как сам список перевести в окно, или н-р в окнесоздать кнопку а на кнопку вешать вызов моего списка?

Самый простой вариант - создать статик с установкой complex_mode="1" и вывести в него текст с помощью метода SetText(). Для разделения строк надо вставлять в текст "\n"

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

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

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

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

 

Грубо говоря если так както делать в function class:InitControls()

self:Init(50,50,550,450)

pic:InitTexture([[blabla\blabla_tt]])

pic:SetText(и вот тут мне не ясно к примеру как прочитать мои данные)

pic:SetTextX(-10)

pic:SetTextY(-10)

 

а эм...переменнуб можно передать в окошко?, просто я в перменной определял имена :)

Struck,

неясно, как прочитать данные...

откуда прочитать?

 

 

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

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

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

 

Как заставить нпс игнорировать все, поставил в логике дэнжер игнор = 0

А они все равно при встречи с собаками их отстреливают.

Как называется функция в схеме "реакция надоедания нпс" которую надо писать как действие в активирующей строке скелета диалога?

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

Ирбис, посмотри логику охранников лукаша, наверняка есть чтото похожее, вот и вызывай аналогично

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

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

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

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

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

Войти

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

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

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