Перейти к содержанию

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

 
 

У меня проблема. Я нацепил прицел на ТОЗ-34 и сделал отдельную секцию с этим оружием. Но игра вылетает если выкинуть оружие. Хоть путь прописан правильно, оружие названо правильно, перепроверял 10 раз, каждую букву.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Misery сделал новый ствол - прописывай в mp_ranks.ltx.

Или правь движок...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

xr_Sanya Файл smart_terrain.script функция se_smart_terrain:try_respawn()

local curr_time = game.get_game_time()
	if self.last_respawn_update == nil or self.respawn_idle == nil or curr_time:diffSec(self.last_respawn_update) > self.respawn_idle then
		self.last_respawn_update = curr_time
		self.respawn_idle = 1000 + math.random(1000)

		if self.sim_avail ~= nil and xr_logic.pick_section_from_condlist(db.actor or alife():actor(), self, self.sim_avail) ~= "true" then return end

		local squad_count = smart_terrain_squad_count(self.board.smarts[self.id].squads)
		if self.max_population <= squad_count then printf("%s cannot respawn due to squad_count %s of %s", self:name(), self.max_population, squad_count) return end

		local dist_to_actor = alife():actor().position:distance_to_sqr(self.position)
		if dist_to_actor < RESPAWN_RADIUS^2 then printf("%s cannot respawn due to distance", self:name()) return end

		self:call_respawn()
	end

 

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

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
   
2 часа назад, denis2000 сказал:

xr_Sanya Файл smart_terrain.script функция se_smart_terrain:try_respawn()


local curr_time = game.get_game_time()
	if self.last_respawn_update == nil or self.respawn_idle == nil or curr_time:diffSec(self.last_respawn_update) > self.respawn_idle then
		self.last_respawn_update = curr_time
		self.respawn_idle = 1000 + math.random(1000)

		if self.sim_avail ~= nil and xr_logic.pick_section_from_condlist(db.actor or alife():actor(), self, self.sim_avail) ~= "true" then return end

		local squad_count = smart_terrain_squad_count(self.board.smarts[self.id].squads)
		if self.max_population <= squad_count then printf("%s cannot respawn due to squad_count %s of %s", self:name(), self.max_population, squad_count) return end

		local dist_to_actor = alife():actor().position:distance_to_sqr(self.position)
		if dist_to_actor < RESPAWN_RADIUS^2 then printf("%s cannot respawn due to distance", self:name()) return end

		self:call_respawn()
	end

 

game.get_game_time() это userdata, как я понимаю diffsec это миллисекунды?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как выдать инфопоршень при использовании предмета? (зп)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

xr_Sanya, вы путаетесь в том, что хотите реализовать.

game.get_game_time()  - это реальное время с начала игры. Оно отсчитывает часы, минуты и секунды.

diffsec - это разница в секундах между каким-то значением времени и настоящим временем.

Чтобы понять как это работает, советую вам посмотреть файл bind_stalker.scriot

Конкретно функции 

function actor_binder:check_detective_achievement()

function actor_binder:check_mutant_hunter_achievement()

И посмотреть как все эти значения сохраняются в методах

function actor_binder:save(packet)

И загружаются из сохранения

function actor_binder:load(reader)

 


Дополнено 18 минуты спустя

 

39 минут назад, o4kostr3l сказал:

Как выдать инфопоршень при использовании предмета? (зп)

Я уже 100500 раз объяснял как сделать что-то при использовании какого-то предмета ( бустера ).

http://sigerous.ru/forum/322-208-1348629-16-1425756707

Урок № 75

Изменено пользователем makdm
  • Мастер! 1

Терпение... И все получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Подскажите как скриптом на физическом объекте вызвать анимацию?


И создание фанатских модов — это не следствие популярности S.T.A.L.K.E.R., это причина по которой когда-нибудь появится на свет S.T.A.L.K.E.R. 2
© С. Григорович.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Здравствуйте. Пара вопросов:

1) Как можно скриптово оформить проверку наличия артефакта на поясе у ГГ без правок движка?

2) При нанесении хита по нпс, всем окружающим неписям, независимо от группировки, тоже наносится хит от имени актора. Как отключить это?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
7 часов назад, Graff46 сказал:

Подскажите как скриптом на физическом объекте вызвать анимацию?

object:run_anim_forward()


1 час назад, Little Frenchman сказал:

Как можно скриптово оформить проверку наличия артефакта на поясе у ГГ без правок движка?

В моде Связь Времён уважаемый makdm делал подобный инструмент, скрипт называется belt_items.script

Изменено пользователем denis2000
  • Лайк 2
  • Спасибо 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
14 часов назад, makdm сказал:

xr_Sanya, вы путаетесь в том, что хотите реализовать.

game.get_game_time()  - это реальное время с начала игры. Оно отсчитывает часы, минуты и секунды.

diffsec - это разница в секундах между каким-то значением времени и настоящим временем.

Чтобы понять как это работает, советую вам посмотреть файл bind_stalker.scriot

Конкретно функции 

function actor_binder:check_detective_achievement()

function actor_binder:check_mutant_hunter_achievement()

И посмотреть как все эти значения сохраняются в методах

function actor_binder:save(packet)

И загружаются из сохранения

function actor_binder:load(reader)

 


Дополнено 18 минуты спустя

 

Я уже 100500 раз объяснял как сделать что-то при использовании какого-то предмета ( бустера ).

http://sigerous.ru/forum/322-208-1348629-16-1425756707

Урок № 75

Я посмотрел твой урок, подумал и понял, что можно сделать по другому(как я сделал)

Спойлер

в оригинальную функцию function actor_binder:use_inventory_item(obj) можно написать:

    if(obj) then
             if obj:section() == "gasis" and not
               has_alife_info("use_gasis") then
               give_info("use_gasis")
end 

ПЫС так анабиотик делали

 


Дополнено 0 минут спустя
Только что, o4kostr3l сказал:

Я посмотрел твой урок, подумал и понял, что можно сделать по другому(как я сделал)

  код (Скрыть контент)

в оригинальную функцию function actor_binder:use_inventory_item(obj) можно написать:

    if(obj) then
             if obj:section() == "gasis" and not
               has_alife_info("use_gasis") then
               give_info("use_gasis")
end 

ПЫС так анабиотик делали

 

айдишник gasis мой , можно использовать любой, только в items.ltx нужно зарегистрировать

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Зачем нужен hit_probability_gd_уровень сложности, когда в hit_power прописывают урон оружия для всех сложностей игры?


Дополнено 1 минуту спустя

hit_power_critical используется только когда use_aim_bullet равен true?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
7 минут назад, Winzor сказал:

hit_power_critical

он вроде бы вообще нигде не используется


Boomsticks & Sharpsticks: https://discord.gg/vThnFWrbaA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 часа назад, o4kostr3l сказал:

Я посмотрел твой урок, подумал и понял, что можно сделать по другому(как я сделал)

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

В вашем варианте проверка будет осуществляться всегда, даже когда в ней нет необходимости.

Правда, начинающие модостроители так и делают как вы - напихают кучу одноразовых проверок в апдейт актора, а потом жалуются на тормоза в игре.

Вам решать.

  • Лайк 1

Терпение... И все получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
22 часа назад, makdm сказал:

xr_Sanya, вы путаетесь в том, что хотите реализовать.

game.get_game_time()  - это реальное время с начала игры. Оно отсчитывает часы, минуты и секунды.

diffsec - это разница в секундах между каким-то значением времени и настоящим временем.

А что возращает game.time()?

get_game_time() как я понял просто обрабатывает данные из game.time()

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Добро. Обнаружил, что заряды от РПГ "ammo_og-7b" не спавнятся в ящик посредством функции =spawn_object_in. Вообще проблема решаема?


Дополнено 27 минуты спустя

Также не спавнятся гранаты "ammo_vog-25". Проблема, очевидно, в том, что функция не читает знака "-", который есть в названиях обеих гранат. Но в ящик ещё есть возможность положить эти гранаты, если в самой секции ящика прописать [spawn]

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
5 часов назад, Neptun сказал:

Проблема, очевидно, в том, что функция не читает знака "-"

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

Решения два:
1. Переименовать секции этих предметов, исключив зарезервированный символ
2. Подменять имя секции на валидное в кондлисте и возвращать оригинал в функции:
 

Спойлер

В кондлисте:
=spawn_object_in(ammo_og_7b:zat_a2_actor_treasure)

В функции:
local spawn_sect = p[1]
if spawn_sect == "ammo_og_7b" then spawn_sect = "ammo_og-7b" end

 

 

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

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как решить данный вылет?

Expression    : fatal error
Function      : CBlender_default::Compile
File          : .\BlenderDefault.cpp
Line          : 63
Description   : <no expression>
Arguments     : Not enought textures for shader, base tex: act\act_arm_1_exo

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Winzor На указанной текстуре установлены несовместимые шейдеры.

  • Спасибо 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Приветствую, вопросы следующие:

1) Модил ли кто-то на xr oxygen и если да, то нужны ли какие патчи сдк 0.7?

2) Думаю, многие замечали, особенно на экзоскелетах, что костюмы, что желе и если на лёгких куртках ещё понятно, то можно ли как-то добавить... как бы выразится, монолитности броне, что должна быть цельной.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 часа назад, ScarletFox сказал:

можно ли как-то добавить... как бы выразится, монолитности броне, что должна быть цельной

Конечно можно: добавляете в скелет сталкера специальные суставы для более жесткой привязки брони и переделываете ВСЕ анимации с учетом этого. Можно ли обойтись без новых суставов и соответственно новых анимаций? Скорее всего - нет, модели сталкеров в экзоскелетах от GSC - это как раз и есть компромисс.

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

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
15 часов назад, Winzor сказал:

Arguments     : Not enought textures for shader, base tex: act\act_arm_1_exo

https://www.youtube.com/watch?v=fFmCQMhsnl0

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
46 минут назад, denis2000 сказал:

Конечно можно: добавляете в скелет сталкера специальные суставы для более жесткой привязки брони и переделываете ВСЕ анимации с учетом этого. Можно ли обойтись без новых суставов и соответственно новых анимаций? Скорее всего - нет, модели сталкеров в экзоскелетах от GSC - это как раз и есть компромисс.

Я так понимаю, это надо самому через MilkShape 3D собирать?

И что по xr oxygen, неужели никто не модит на нём?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
5 часов назад, ScarletFox сказал:

Я так понимаю, это надо самому через MilkShape 3D собирать?

Через любой удобный 3D редактор с соответствующими плагинами.

5 часов назад, ScarletFox сказал:

И что по xr oxygen, неужели никто не модит на нём?

Терпение! Если заглянут люди знающие, то вам ответят. Или задавайте вопрос непосредственно в ветках разработки движка.

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

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 15.12.2020 в 09:03, ScarletFox сказал:

И что по xr oxygen, неужели никто не модит на нём?

Есть похожий проект - OpenX-Ray, он больше совместим с другими модами, разрабатывать мод на нем можно и в SDK 0.7.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   2 пользователя онлайн