Скриптование - Страница 449 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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

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

@Dennis_Chikin отбиндить соотв. кнопки и обрабатывать их своим скриптом?

1 час назад, dsh сказал:

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

Попробовал, повесил на сейв в биндере, но возвращается предыдущий файл, видимо не успевает записаться новый сейв, остается только таймеры велосипедить...

function test ()
local f = getFS()	
	local flist = f:file_list_open_ex("$game_saves$",bit_or(FS.FS_ListFiles,FS.FS_RootOnly),"*.sav")
	flist:Sort(FS.FS_sort_by_modif_down)
	local file = flist:GetAt(it)	
	file = file:NameFull() or 'none'
	get_console():execute(file)
end

Почему-то не вылетело, хотя it не объявлено...

Изменено пользователем Graff46
50 minutes ago, Graff46 said:

но возвращается предыдущий файл

Попробуй не прямо из save это делать, а запускать какой-либо таймер, который это сделает на следующем апдейте.

 

А, ну да, ты об этом и написал. Почему велосипедить. Вполне нормальное решение. Таймеры, конечно, нормальные нужно иметь. Но их по любому иметь нужно, как и менеджер событий. Я бы вот так сделал:

 

...
dsh.exec_on_update(
  function()
    -- тут что-нибудь, если нужно
    rename_last_save()
    -- тут еще что-нибудь
  end
)

или еще проще, если ничего лишнего не нужно

dsh.exec_on_update( my_script.rename_last_save )

 

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

Насчёт порчи артов... 

С помощью этой функции:

function degrad_art(obj)
    if obj:section() == "af_medusa" then
        obj:set_condition(0.5)
        -- alife():release(alife():object(obj:id()))
    end
end

баловался с состоянием арта - всё работает.

Но вот как это реализовать в игре? Денис говорил, что через net_packet можно не меняя движок это сделать. 

Скачал DSH, нашёл там полный скрипт порчи: dsh_art_degrad.script. Где он подключается?

Важнейшая задача цивилизации - научить человека мыслить.

Только что, alexsimm сказал:

какие файлы отвечают за поведение неписей в режиме боя?

отчасти xr_combat.script

Только что, alexsimm сказал:

что значит отчасти?

А что значит " какие файлы отвечают за поведение неписей в режиме боя? "? Поведене НПС в боёвке широкое понятие... хр_комбат отвечает за тип боя кемперский, монолитовский и еще какой то... Вот это почитайте... Ну или пишите конкретней чего хотите, часть параметров НПС типа меткости, глазастости и тд -  в конфигах записано.

Изменено пользователем Graff46
30 минут назад, Graff46 сказал:

Ну или пишите конкретней чего хотите,

интересует логика поведения в режиме боя: куда идти, что делать как воевать

Только что, alexsimm сказал:

куда идти, что делать как воевать

В основном это движковое всё, но посмотрите xr_combat и xr_danger...

  • Согласен 1
13 минут назад, Graff46 сказал:

В основном это движковое всё, но посмотрите xr_combat и xr_danger...

Реально через скрипты изменить поведение неписей в режиме боя, допустим, не двигаться на цель,а спрятаться  или обойти другим путём?

45 минут назад, alexsimm сказал:

изменить поведение неписей в режиме боя

Не утверждаю, но по-моему в огсе это сделано.

5 минут назад, buffy сказал:

Не утверждаю, но по-моему в огсе это сделано.

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

Это - вообще в первую очередь от локации зависит. Если укрытий нет - непись прятаться не будет. Второе - конфиги оружия.

17 минут назад, Dennis_Chikin сказал:

Это - вообще в первую очередь от локации зависит. Если укрытий нет - непись прятаться не будет. Второе - конфиги оружия.

укрытия есть, было бы желание

Однако...

 

делаем раз:

function amk_particle:stop()
    self.give_dmg = false
    if self.particle:playing() then self.particle:stop_deffered() end
    if self.snd and self.snd:playing() then self.snd:stop() end
end

 

делаем два:

function amk_particle:__finalize()
    log( "log", "finalize: %s ...", self.p_name )
    if self.particle.playing and self.particle:playing() then self.particle:stop() end
    t_particles[self.p_id] = nil
    log( "log", "finalize: %s, ok", self.p_name )
end

 

результат:

! ALife simulator has not been started yet
* Log file has been saved successfully!
stack trace:

0023:0583DAD0 xrGame.dll
0023:00E77041 xrLUA.dll, luabind::detail::get_class_name()
0023:00E7E918 xrLUA.dll, luabind::detail::class_rep::function_dispatcher()

 

Я думал, alife(), как и прочие партиклы, должны дестроиться ПОСЛЕ того, как отработали все "пседооопшные" дела...

 

Ну и авторы скрипта, видимо, тоже...

 

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

Возможноли как-то сохранить/загрузить название секции оружия находящегося в слоте ? Платформа x-ray extensions.

В 14.03.2018 в 20:49, dimka02 сказал:

Возможноли как-то сохранить/загрузить название секции оружия находящегося в слоте ?

Да, в псторе.

Если вы о сейвах.

Изменено пользователем Graff46
  • Спасибо 1

Давно практики не было, подкскажите, как более лаконично получить все артефакты на текущем уровне? Платформа cop.

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

Вы сможете оставлять комментарии после авторизации



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

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