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

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

 
 

Лютый Бюрер function check_used_item(obj)

on_item_take(obj)

local info=nil

local sect=obj:section()

if sect=="твой предмет" then db.actor:give_info_portion("твой инфопорш")

end

end

function on_item_take(item)

 if item:section() == separator then return end

 if (inventory_open == false) then

  if (separator_spawned == true) then

   db.actor:inventory_for_each(del_separator)

   separator_spawned = false

  end

  belt_need_update = true

 end

end

 

 

Функцию check_used_item(obj) надо прописать в binder_stalker.script в функции actor_binder:on_item_take (obj)

После if sect == .... можно с новой строки написать "elseif sect==..." и так много предметов, всё в одной функции.

 


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

Здесь кто-то знает, как НПС присвоить story id, которого спавнит через скрипт? all.spawn не при чём 

Изменено пользователем Сергей Андронов

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


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

Сергей Андронов 

Expression    : fatal error
Function      : CScriptStorage::namespace_loaded
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_storage.cpp
Line          : 445
Description   : <no expression>
Arguments     :  Error : the namespace name is already being used by the non-table object!


 

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


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

Лютый Бюрер в биндер сталкер нужно после всего названия функции с красной строки написать "файл, где расположен скрипт.check_used_item(obj)"

А вылет когда возникает?

Изменено пользователем Сергей Андронов

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


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

Сергей Андронов Типа так?
function actor_binder:on_item_take (obj)
    level_tasks.proceed(self.object)
    xr_effects.check_used_item(self.object)
end

А вызывать откуда? Из bind_sralker или из скрипта, где прописана функция?

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


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

Лютый Бюрер нет, где "(self.object)" замените на "(obj)". В биндер прописали и та функция сама будет проверять наличие предметов и выдавать инфо.

Изменено пользователем Сергей Андронов

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


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

Сергей Андронов Хорошо, я прописал, при старте новой игры получаю вылет
 

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...ow of chernobyl\gamedata\scripts\bind_stalker.script:194: attempt to call field 'check_used_item' (a nil value)

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


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

Лютый Бюрер в бинд сталкере нет твоей строчки теперь.

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


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

Hunter 
Вот функция из бинд сталкер
function actor_binder:on_item_take (obj)
    level_tasks.proceed(self.object)
    --game_stats.update_take_item (obj, self.object)
    xr_effects.check_used_item(obj)
end

Вот функция на проверку предмета 
function check_used_item(obj)
on_item_take(obj)
local info=nil
local sect=obj:section()
if sect=="z1" then db.actor:give_info_portion("have_a_pda")
end
end

function on_item_take(item)
 if item:section() == separator then return end
 if (inventory_open == false) then
  if (separator_spawned == true) then
   db.actor:inventory_for_each(del_separator)
   separator_spawned = false
  end
  belt_need_update = true
 end
end

Что, собственно, не так?

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


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

Лютый Бюрер может скинете пару этих файлов тогда уж 😁. Место скрипта и бинд сталкер.

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


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

Лютый Бюрер У меня на ТЧ 1.0006 даже твои файлы работают, только я прописал водку предмет и инфо о выключении выжигателя. Может в другом месте накосячил.

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


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

Сергей Андронов Да, всё заработало, видать я накосячл в другом файле 


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

И ещё такой вопрос, народ, как сделать, чтобы текст нормально переносился на другую строчку?image.thumb.png.8dab446e43547dd7cb2a183211929221.png

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


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

Лютый Бюрер "Как я сюда попал?\n бла бла бла". Вот эта штука "\n" делает с красной строки текст.

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


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

Сергей Андронов Уже пытался, это работает только для текста НПС


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

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

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


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

talk.xml  / talk_16.xml

    <question_item x="0" y="0" width="527" height="20" min_height="13">
        <content_text x="0" y="0" width="520" height="20">
<!-- здесь для complex_mode="..." выставить значение 1> -->
        <text font="letterica18" r="255" g="232" b="208" align="l" complex_mode="1"/>
        <text_color>
            <t r="231" g="168" b="12"/> <e r="255" g="232" b="208"/> <h r="255" g="255" b="255"/>
        </text_color>    
        </content_text>
    </question_item>

Плюс размеры самих фреймов

<questions_list ... />
<question_item ... />
<content_text ... />
Изменено пользователем Купер
  • Лайк 1
  • Спасибо 1

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


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

Есть ли где-нибудь нормальное, полноценное описание ТЧ параметров для погоды? Смотрю тут и в половине случаев идет какое-то гадание на чайных крошках, "кажется этот параметр делает вот это, но хз", "значение не в секундах (А В ЧЕМ???)", "про r1 говорить нет смысла"...

https://sdk.stalker-game.com/ru/index.php?title=Настройка_погоды_и_освещения

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

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


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

Mawrak 

 

[weather_name_00]
flares            = flares_default                    ; секция светила из flares.ltx (удалить, если не нужно)
sky_texture       = sky\sky_2_cube                    ; имя текстуры скайкуба
sky_rotation      = 0                                 ; его вращение
sky_color         = 0.41, 0.41, 0.41                  ; и цвет (яркость), на р2 влияет на освещение
clouds_texture    = sky\sky_oblaka                    ; имя текстуры облаков
clouds_color      = 0.81, 0.81, 0.81, 0.4, 1.0        ; их цвет, 4 параметр - прозрачность (0 - отключает облака), 5 параметр - множитель на цвет (max 2.5)
far_plane         = 350                               ; дальность видимости
fog_distance      = 300                               ; дистанция, с которой начинается туман (fog_distance < far_plane)
fog_color         = 0.12, 0.12, 0.12                  ; цвет тумана
fog_density       = 0.9                               ; его плотность
rain_density      = 0.0                               ; плотность дождя (0 - выключает его)
rain_color        = 0.3, 0.3, 0.3                     ; и его цвет
thunderbolt       = thunderbolt_collection_default    ; секция грозы из thunderbolt.ltx (удалить, если не нужно)
bolt_period       = 3.f                               ; таймаут между вспышками
bolt_duration     = 0.25f                             ; их продолжительность
wind_velocity     = 20                                ; сила ветра
wind_direction    = 0                                 ; и его направление (оба параметра влияют на дождь)
ambient           = 0.08, 0.08, 0.08                  ; цвет окружающего света (снаружи и в помещениях)
lmap_color        = 1.0, 1.0, 1.0                     ; цвет лайтмап
hemi_color        = 0.35, 0.35, 0.35, 1.0             ; цвет окружающего света на р1 (только снаружи), на р2 влияет на прозрачные объекты (вода, стекло)
sun_color         = 0.50, 0.47, 0.415                 ; цвет света от светила, на р2 при нулевых значениях - отключаются тени объектов от солнца
sun_dir           = -22, 292.0                        ; 1 параметр - высота светила над горизонтом (min/max: -0.01/-179, зенит: -90)
                                                      ; 2 параметр - и положение относительно его сторон: 0 - юг, 90 - восток, 180 - север, 270 - запад, 360 - юг
env_ambient       = ambient_env_day                   ; секция фоновых звуков из env_ambient.ltx (удалить, если не нужно)

#####################################################################
Соответствие параметров:

ТЧ                ЧН / ЗП

flares            -> sun
thunderbolt       -> thunderbolt_collection
bolt_period       -> thunderbolt_duration
bolt_duration     -> thunderbolt_period
ambient           -> ambient_color
hemi_color        -> hemisphere_color
sun_dir (y, x)    -> sun_longitude = y, sun_altitude = x
env_ambient       -> ambient

flares.ltx:

flare_opacity          - непрозрачность каждого отражения, в порядке от дальнего к ближнему
flare_position         - позиция каждого отражения на оси, порядок соотв. верхнему
flare_radius           - радиус каждого отражения, порядок соотв. верхнему
flare_textures         - имена текстур, использованных на каждое отражение, порядок аналогичен
flare_shader           - шейдер текстур
flares                 - параметр включает или выключает блики, например, для луны - они не уместны
gradient               - параметр, включающий / выключающий ореол вокруг светила, дающий эффект ослепления
gradient_opacity       - непрозрачность ореола
gradient_radius        - радиус ореола
gradient_texture       - имя текстуры ореола
gradient_shader        - шейдер текстуры ореола
source                 - параметр, включающий / выключающий отображение светила, то есть самого солнца или луны
source_radius          - радиус светила
source_texture         - имя используемой текстуры
source_shader          - шейдер текстуры
source_ignore_color    - игнорирование цвета светила (sun_color в конфиге погоды)
blend_time             - скорость перехода одной текстуры в другую, например из flares = flares_sun_rise во flares = flares_default10
blend_rise_time        - скорость появления, если в предыдущей погодной секции был пустой flares = 
blend_down_time        - скорость исчезновения, если в последующей погодной секции пустой flares = 

 

  • Мастер! 2
  • Сталкерский лайк 1
  • Аплодисменты 1

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


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

Yara Ты первый человек, который полностью описал все параметры погоды.

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


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

Yara вот да, серьзено, кратко и по делу. Лучше любого гайда, который я видел.

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


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

Привет сталкеры, помогите разобратья с проблемой, хочу чуть модифицировать один файл, но чёт навыка не хватает ) Мне надо чтоб по заданиям 'найти предмет', вещи удалялись, а не передавались заказчику. По этому в task_manager.script вставляю такую конструкцию:

--...
			--' Забираем у игрока квестовый предмет.
			local can_finish = true
			if task_desc.type == "artefact" then
				if db.actor:object(task_desc.target) == nil then
					can_finish = false
				else
					dialogs.relocate_item_section(npc, task_desc.target, "out")
				end
			elseif task_desc.type == "monster_part" then
				if db.actor:object(task_desc.target) == nil then
					can_finish = false
				else
					dialogs.relocate_item_section(npc, task_desc.target, "out")
				end
			elseif task_desc.type == "find_item" then
				if db.actor:object(task_desc.target) == nil then
					can_finish = false
				else
--					dialogs.relocate_item_section(npc, task_desc.target, "out")
	-->>
	local se_obj = alife():object(task_desc.target)
		if se_obj then
			alife():release(se_obj, true)
		end
	-->>
				end
			end
--...

Не работает, задание сдаю, получаю награду, но предмет остаётся у меня в инвентаре.

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

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


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

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

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

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

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

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

Войти

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

Войти

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

    Ни одного зарегистрированного пользователя не просматривает данную страницу