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

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

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


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

  Информация (Показать)

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

 

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

  Читать рекомендуется. (Показать)

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


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий

Добрый день.

У меня такой вопрос:

Как в зове припяти заставить нпц исчезнуть на глазах? В тенях чернобыля так срабатывал [spawner]. Но в зове он почемуто не сработал. Заранее спасибо.

  ReWrite (Показать)
Ссылка на комментарий

Приветствую всех.

Такой вопрос:

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

Если можно, то как?

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

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

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

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

korshyn-3, укажи в логике, в конкретной секции NPC (walker или кто он у тебя) параметр meet = no_meet.

strelok200, в диалоге получай инфопоршн, который будет условием переключения логики NPC на другую секцию, например:

on_info = {+infoportion} walker@go_to_new_location.

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

Desertir,

  Цитата
Такой вопрос, а как работает функция start_stop_menu класса CDialogHolder, т.е. прошу объяснить ее точное назначение. Как я понимаю она нужна для закрытия и открытия окон, но по конкретней пожалуйста. Да и вообще класс CDialogHolder для чего он нужен, для чего используется.

Не полное описание, но минимальный набор приёмов использования есть в этом посте справочника.

  Полезный утиль (Показать)
Ссылка на комментарий

Несколько вопросов накопилось :)

1. Где-то видел, что можно на последней точке пути НПС выдать поршень или что-то другое? Может кто сказать, как примеру поршень выдать?

2. Немного нубский вопрос, но как изменить поворот камеры в начале игры? direction меняю и ничего вообще не происходит (менял все 3 значения). :(

 

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

Disord, сам инфопоршн на "последней" точке пути NPC выдать не сможет. Но. В путях на последней точке можно установить так называемый сигнал:

[walk]
points = p0
p0:name = wp01|a=walk|sig=arrif
...

а в логической схеме NPC прописать реакцию на этот сигнал, в том числе и получение инфопоршна, примерно так:

[walker@tra_la_la]
...
on_signal = arrif | walker@tro_lo_lo %+infoportion%
...

По второму вопросу - менять нужно у ГГ не только direction, но и параметр upd:o_torso.

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

Народ, всем привет.

Как удалить предмет из инвентаря у ГГ - (название - val_zapis_n)

Черкните функцию, а я её через экшон вставлю в диалог.

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

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

Можно воспользоваться функцией amk.remove_item_from_inventory_by_name("val_zapis_n",db.actor)

Но ты сначала проверь, есть она у тебя или нет

Freedom

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

В АМК главная функция тянет за собой сервисную. Вот готовая, удаляет предмет из инвентаря ГГ по имени. Только не пытайтесь удалять болт ;):

function del_from_player_inventory(item_name)
local obj = db.actor:object(item_name)
  if obj then
   alife():release(alife():object(obj:id()), true)
  end
end

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

=VENOM= Я в скриптах не соображаю. Так ?

function del_from_player_inventory(item_val_zapis_n)
local obj = db.actor:object(item_val_zapis_n)
  if obj then
   alife():release(alife():object(obj:id()), true)
  end
end

А кавычки не надо "..." в скобках ?

А в диалог такой экшон ставить ?

<action>valerich_dialog.del_from_player_inventory(item_val_zapis_n)</action>

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

нет, не правильно

Нужно сделать функцию:

Если функция, которую кинул тебе =VENOM= лежит допустим в скрипте test1 то

function my_megatest()

test1.del_from_player_inventory("item_val_zapis_n")

end

 

<action>valerich_dialog.my_megatest</action>

Freedom

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

Valerich, не, не так :) Данную функцию суёшь в любой скрипт (чтобы потом вызвать):

function del_from_player_inventory(item_name)
local obj = db.actor:object(item_name)
  if obj then
   alife():release(alife():object(obj:id()), true)
  end
end

Затем создавай ещё одну функцию, вот такую:

function del_val_zapis()
   название_скрипта.del_from_player_inventory("val_zapis_n")
end

А в диалоге вызывай так:

<action>файл_с_функцией.del_val_zapis</action>

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

 

Какая функция заставляет НПСа ударить ГГ по лицу?

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

Disord

Хотелось бы дополнить твой пост предостережением об ограничении использования такого варианта набора функций 'однократным' применением.

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

 

Обоснование: Проверка происходит по по клиентскому объекту актора, а удаление - у серверного объекта. Уже удаленный(!) предмет будет обнаружен и при следующей 'проверке наличия', если делается в одном и том же цикле, т.к. на синхронизацию серверного и клиентских объектов требуется время (несколько циклов апдейта актора).

Т.о. упрощенные функции имеют область ограничений на применение.

 

Более безопасный вариант может выглядеть так:

function del_from_player_inventory(item_name)
  local obj = db.actor:object(item_name)
  if obj then
    local se_obj = alife():object(obj:id() --/ получаем серверный объект искомого предмета
    if se_obj then --/ проверка наличия объекта в игре
      alife():release(se_obj, true)
    end
  end
end

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

 

Или же можно использовать методы выставления флагов 'исключения' для предметов, типа:

function del_from_player_inventory(item_name)
  local obj = db.actor:object(item_name)
  if obj and not db.actor:marked_dropped(obj) then --/ и отсутствует метка 'исключения'
    db.actor:mark_item_dropped(obj) --/ ставим метку 'исключения'
    alife():release(alife():object(obj:id()), true)
  end
end

Более надежный способ 'множественного удаления' все же предполагает итерацию по инвентарю с запоминанием требуемых идентификаторои с последующим удалением по запомненным идентификаторам.

 

---

Готовых функций 'удара по лицу' не существует, вероятно ты имеешь ввиду схему 'abuse'. Требуется вызывать соответствующие состояния/анимации (или использовать подходящее из схемы 'abuse' или самописное). Есть моды, в которых имеется схема 'мордобоя'.

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

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

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

Ситуация такая , скриптер аддона "Коллекционер" Charsi (для него это дело плевое) - пока отсутствует, а люди спросили , как запустить аддон ещё раз , но он уже установлен. Я в скриптах - "нуб" .

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

Этот экшен я повешу всего ОДИН раз в диалоге, который больше не появиться.

 

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

П.С. Может этим спутал народ val_zapis_n , а n - это конкретный номер записки (просто я его забыл когда писал тот пост, толи 18 или 17)

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

Я прописал НПСу логику и при диалоге вылет

  логика (Показать)

Создаю глобальный мод с новыми локациямЭ

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

А сам инфопоршн зарегистрировал в каком-нибудь файле с инфопоршнами? Если нет, то вот это и причина для вылета. Вторая возможная причина - отсутствие path_look в секции [walker@walker1].

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

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

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

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

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

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

Войти

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

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

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