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

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

Тема для обсуждения скриптов всего и всех в серии игр 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
Ссылка на комментарий

Скриптовый, имеешь ввиду нет-пакеты?

Тоесть если я заспавню непися и пропишу ему ссылку на файл с логикой. Я в дальнеишем смогу менять логику у уже заспавненного непися или нет?

А вообще не совсем понимаю причину записывать логику объекта в сейв. Это ж приличный кусок информации, да и данные там статичны вроде как ...

Разве что если логика динамически меняется, и в ней удаляются "ненужные" секции но я что то сомневаюсь по этому поводу.

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

*Shoker*, что-то ты задаешь пустые вопросы.

Как еще можно что-либо прописать в 'custom_data' объекта, заспавненного скриптом кроме как через нет-пакеты?

Если спавнишь по секции спавна с прописанным в секции кастом-датой - это вариант 3, который расписал ...

Ну а о причинах - в очередной раз советую обратииться к авторам игры, что и почему именно так им захотелось сделать. Они дали тебе аж 4 варианта, и не вижу повода сетовать на их предпочтения писать всю логику в юзер-дату. Не нравится - делай иначе.

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий
Artos, причём здесь способ указать логику персонажу (что я у тебя не спрашивал) и то, что она ему в сейв записывается и не меняется без респавна этого непися?

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

*Shoker*

Хм, ну если ты не понял, что возможность менять логику (конфиг-файл) для уже заспавненного объекта зависит именно от способа ее задания для объекта - то, сорри, считаем мой ответ не в тему ...

(Чтобы понять/менять следствие - следует разобраться с причиной и менять ее)

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Вопрос по level.client_spawn_manager

Создал физический объект. Вешаю на него каллбек на переход в оффлайн:

level.client_spawn_manager():add(soTestObj.id, 0, set_object_fix)

function set_object_fix(id,obj)
    st("set_object_fix called")
    level.client_spawn_manager():remove(id, 0)
    st("set_object_fix end")
end
где st - вывод в лог

 

Функция set_object_fix отрабатывает, каллбек снимается, но происходит вылет без лога. Можете подсказать где я налажал?

Изменено пользователем _Призрак_

Freedom

Ссылка на комментарий

_Призрак_

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

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

При моих ковыряниях в эту сторону, я сделал вывод, что движек снимая данный тип коллбэков, дальнейшие 'ручные' попытки снять этот же коллбэк (во время или после срабатывания) вылетает без сообщения в лог.

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Спасибо.

Еще один вопрос - как и можно ли вообще получить список всех возможных анимаций для объекта? Или может есть какая нибудь анимация которая есть у всех объектов/объектов какой-то группы? У многих объектов нет анимации $editor которая устанавливается по дефолту при спавне. Поэтому можно ли как нибудь получить список, или вообще получить какую либо аимацию для данного объекта, чтобы обойти этот вылет:

FATAL ERROR

 

[error]Expression : motion_ID.valid()

[error]Function : CKinematicsAnimated::ID_Cycle

[error]File : E:\stalker\sources\trunk\xr_3da\SkeletonAnimated.cpp

[error]Line : 136

[error]Description : ! MODEL: can't find cycle:

[error]Arguments : $editor

 

 

Freedom

Ссылка на комментарий
_Призрак_, анимации задаются для модели при ее изготовлении. Почему они должны быть общими? Если нужен полный список, смотри в самой модели, лучше способа не придумаешь.
Ссылка на комментарий

_Призрак_, как уже пояснил KD87, каждая модель имеет 'свои' анимации, прописанные ее создателем и названия этих анимаций могут быть самыми различными ...

Из практики, можно сделать заключение, что наиболее вероятной общей анимацией для большинства моделей в игре является "idle" (из названия понятно ее назначение). Однако и имеются некоторые модели без этой анимации и новые модели могут быть привнесены в игру позже ...

Если уж хочешь наверняка, то есть только два варианта:

1. Создать массив всех (или 'нестандартных') моделей и для каждой прописать некую 'общую' анимацию, которую и прописывать по необходимости.

2. Динамически сканировать бинарный файл модели и вытаскивать оттуда ... (но это уже на мазохизм смахивает ;-) ).

 

Примечание: При спавне об'ектов можно нарваться не только на отсутствие анимации, но и на отсутствие других обязательных параметров.

Т.о. стОит для спавна заранее заиметь некие таблички для каждого класса/типа/... об'ектов, в которых хранить и оттуда брать потребные параметры. Один раз сделать и далее использовать - это не сложно.

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Всем здарова!Хотел спросить как мне заставить свой созданный сквад делать то что и другие сквады(сталкеры,бандиты,долговцы,свободовци и монолитовцы)я добавил свой сквад в simulation.ltx и теперь сквад как и все возвращается на скадовск вечером и утром уходит гулять,но у меня такой вопрос.Как мне заставить свой сквад проигрывать все те анимации,что проигрывают все выше перечисленные мною сквады на базах и в точке своей остановки

 

Я очень прошу помогите и если не сложно хоть какой нибудь пример,а то я уже неделю пытаюсь добиться этого эфекта.

 

Зарание спасибо.

Ссылка на комментарий

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

Как можно сделать многострочный текст на статике, не используя complex_mode="1"?

 

Как правильно заметил Desertir - вопрос не по теме.

--/ Artos

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

Freedom

Ссылка на комментарий

Кто хорошо работал со скриптами ЧН, не в курсе где там стоит затычка, чтобы сквады не сражались друг с другом, если они не в схеме комбат?

Сейчас ситуация такова, что если два враждебных сквада вдруг окажутся рядом каким то образом, то они не будут реагировать друг на друга (это касается и сталкеров, и монстров). Помнится bak вроде делал мини-мод который это исправляет, но и название мода, и сам мод я найти не смог.

Буду благодарен если кто нибудь подскажет.

 

_Призрак_

Например в ОГСМ ЧН, в энциклопедии для этого используется list box. Грубо говоря текст разбивается на строчки, которые в этот лист заносятся. Это конечно не прямая работа с текстом статика, но как вариант думаю тоже можно рассмотреть. Сам list box можно будет разместить поверх статика.

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

_Призрак_, так же как вариант: создать статик и к нему приаттачивать статики с установленным текстом, причем увеличивать Y-координату приаттаченных статиков на N (высота шрифта + отступ).

PS: вопрос то для темы Худа.

ТЧ 1.0004. SAP и Trans mod

github

Ссылка на комментарий

Это нормально, что в ЧН колбек на взятие предмета в инвентарь при каждой загрузке игры вызывается для всех предметов инвенторя?

Не пойму толи так надо, толи я накосячил где то.

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

*Shoker*, странно, что ты это только сейчас и только в ЧН заметил.

И не только при запуске 'on_take' срабатывает, при выходе еще и 'on_drop' порой некоторые моды валит.

 

Объект актора регистрируетсявгре первым. Он тут же и биндится - а значит и коллбэки взводятся. Далее начинают в игре появляться клиентские объекты (в том числе и шмотки актора) - и нечему удивляться, что они у него 'появляются', коллбэк по сути не на 'взятие', а на 'появление предмета у актора'.

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Понятно... спасибо. Да вот не знал, небыло как то в этом необходимости, вот и не сталкивался. А тут случайно заметил. Да и название колбека тоже в заблуждение вводит. Из за таких вот "подводных камней" потом и вываливаются самые разные глюки...

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

У меня еще вопрос появился - есть статик, на него вешается каллбек ui_events.STATIC_FOCUS_RECEIVED (наведение мышкой). Все отлично работает, но если мы добавим этот статик в ScrollView, то каллбек перестает работать. Как можно это обойти? Подойдут даже самые мазохистские способы

Freedom

Ссылка на комментарий

Да спасибо вчера разобрался и ещё один вопрос вот профиль непися новой группировки которую я деала

<specific_character id="grom_spez_1" team_default = "1">

<name>GENERATE_NAME_stalker</name>

<icon>ui_inGame2_merc_4</icon>

<map_icon x="1" y="0"></map_icon>

<bio>Опытный сталкер. Детальная информация отсутствует.</bio>

 

<class>grom_specnaz</class>

<community>grom</community> <terrain_sect>stalker_terrain</terrain_sect>

<snd_config>characters_voice\human_01\bandit\</snd_config>

 

<rank>60</rank>

<money min="5000" max="10000" infinitive="0"/>

<reputation>0</reputation>

 

<visual>actors\stalker_bandit\stalker_bandit_3_1.ogf</visual>

<supplies>

[spawn] \n

 

wpn_toz34 \n

ammo_12x70_buck \n

wpn_usp \n

ammo_11.43x23_hydro = 1 \n

grenade_f1 = 4 \n

 

#include "gameplay\character_items.xml"

#include "gameplay\character_food.xml"

#include "gameplay\character_drugs_2.xml"

</supplies>

#include "gameplay\character_criticals_4.xml"

 

 

#include "gameplay\character_dialogs.xml"

</specific_character>

 

всё работает кроме диалогов когда я хочу поговорить с Грешником игра вылетает с таким логом:

 

Expression : !phrase_dialog->m_PhraseVector.empty()

Function : CPhraseDialog::SayPhrase

File : D:\prog_repository\sources\trunk\xrGame\PhraseDialog.cpp

Line : 146

Description : No available phrase to say, dialog[hello_dialog]

я так понял,что приветственный диолог отсутствует,но с неписями других группировок (старых)всё норм помогите плизз

 

Просьба соблюдать тематику! Для подобных вопросов -> топики "Ковыряемся в файлах" для соотв.версии игры.

--/ Artos

[x]

Изменено пользователем Artos
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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