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

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

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


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

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

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

 

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

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

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


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

МЭй би, пост прибьют, конеш, но попробую...

 

  Показать

 

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

Шаман - СисАдмин

Всяко-разно: для ЧН

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

@Romz,

if spawn_position:distance_to(cover_position) > distance_value then
  -- spawn
end
  • Полезно 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

@naxac, То есть, собираем в таблицу список укрытий, вида

{cover_name,cover_pos}

А потом перебором по этой таблице сравниваем позицию спавна с расстоянием до укрытия?

Шаман - СисАдмин

Всяко-разно: для ЧН

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

@Romz, куда лучше, сделать рестрикторы на локации (или использовать существующие), записать их в специальную секцию где-нибудь в конфиге, после чего, при спавне каждой аномалии проверять, находится ли позиция внутри этого рестриктора if restrictor_obj:inside(spawn_pos) then, если да, то генерим новую и так пока не попадем на валидное место.

А добавление новых шелтеров сведется к дополнению списка в конфиге, вместо ковыряний луа-таблиц каждый раз.

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

 

 

  Shadows писал(а):
сделать рестрикторы на локации

Хм...А по примеру АМК-мода никак на ЗП не сделать?

Со списочком запретных для аномалий зон...anoms.ltx. Координаты без вертексов и радиус запретной зоны. 

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

 

 

  Shadows писал(а):
Romz, куда лучше, сделать рестрикторы на локации
Это ты щас кому сказал?.. :blink:

Ещё циклом, да перебором, я смогу, наверное, сделать... Может быть... Наверное...

А это вот всё для меня лес тёмный... Я, вообще, хотел ЗП перепройти, только оригинал мало-мало надоел, а существующие сборки-моды не понравились... Вот и решил модиков накидать... Второй месяц пошёл...

 

  _Val_ писал(а):
Со списочком запретных для аномалий зон...anoms.ltx.
Есть в ЗП surge_manager.ltx, дык в нём перечислены все укрытия, поимённо. Но без координат. Его нельзя как-то применить? Только чтоб попроще...

Шаман - СисАдмин

Всяко-разно: для ЧН

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

@Nazgool,

Тепло, но я не совсем про это.

		if( l_tpIniFile->section_exist( type_name() ) )
			if (l_tpIniFile->r_string(type_name(),"script"))
				ai().script_engine().add_script_process(ScriptEngine::eScriptProcessorGame,xr_new<CScriptProcess>("game",l_tpIniFile->r_string(type_name(),"script")));
			else
				ai().script_engine().add_script_process(ScriptEngine::eScriptProcessorGame,xr_new<CScriptProcess>("game",""));

А про это... Вроде как это сломано, но я починил, выпилив JIT и обновив луа.

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

Я не понимаю других языков кроме Lua.
Но ты спрашивал про потоки и приостановку, а в lua сделать подобное можно только с помощью coroutine.

Как не крути, а lua однопоточен.

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

@Nazgool,

Там суть в создании новых Lua_State'ов, которые движок каждый апдейт пинает (resume), но только если они ещё не завершены.

 

Я собственно искал аналог Sleep (в луа это wait ) , чтоб приостановить луашный поток.

Те можно изобразить что-то вроде такого

function main()
local m_surge_manager = surge_manager.get_surge_manager()
m_surge_manager:initialize()
while true do
m_surge_manager:update()
wait(10000)
end
end

Причём таймер работает как надо, раньше времени поток не продолжится.

Вроде в ТЧ или ЧН ПЫС использовали это
 

  Цитата

 

[single]
    script = ;level_weathers  Теперь погода перенесена на биндер актера и апдейтится оттуда. Потоковый скрипт убран.

Изменено пользователем -StalkMen-
Ссылка на комментарий
Подскажите, плиз, ошибка:
  Цитата
Expression    : assertion failed
Function      : CUIWindow::SetParent
File          : E:\stalker\sources\trunk\xr_3da\xrGame\ui\UIWindow.cpp
Line          : 634
Description   : !(m_pParentWnd && m_pParentWnd->IsChild(this))

 

в каком из методов может возникать - в DetachChild или в AttachChild ?

Ссылка на комментарий
@UnLoaded, в AttachChild, когда у дочернего окна уже есть parent. Т.е., оно уже приаттачено к чему-нибудь. Изменено пользователем naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

@UnLoaded, правильно у тебя все происходит, дело в сборщике мусора, надо сохранять ссылку на парента. Вылет может происходить и там и там, зависит от действий, но каков вопрос - таков ответ.


 

 

  -StalkMen- писал(а):
Кто-нибудь сталкивался с Луа потоками, приостановкой потоков и тп.?

Сталкивались, если говорить о корутинах, то на скриптах кроме ЧСВ нифига выиграть нельзя, так как однопоточность. Я не вижу необходимости ими пользоваться ни в релизе, ни в дебаге.

 

 

 

  -StalkMen- писал(а):
Там суть в создании новых Lua_State'ов, которые движок каждый апдейт пинает (resume), но только если они ещё не завершены.

Я не понял что тебе надо, давай доходчиво, аналог wait на исходниках?

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

@Карлан,

Уже ничего не надо :)

Ответ на мой вопрос -

 

 

  -StalkMen- писал(а):
аналог Sleep (в луа это wait )

Просто интересно, пользовался ли кто таким. (Это не связано coroutine)

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

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

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

Камрады, обращаюсь с проблемой...В ОП-2  2.09+2  + правки Каравана "Антихардкор" столкнулся с таким вылетом 

 

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

@Maxwel

Исправь пока в 209-й строке

elseif info_id == "ui_car_body_hide" and used_box then

на

elseif carbody_addons and info_id == "ui_car_body_hide" and used_box then

И посмотри что будет

250 метров качать как-то не хочется, поэтому что за инфопорции, где и когда выдаются, и вообще систему не знаю.

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

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

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

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

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

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

Войти

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

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

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