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

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

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

character_profile     = zat_a2_stalker_nimble
spec_rank = novice
community = stalker

Аватарка

Ранг - Новичок

Группировка - Сталкер

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


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

Видимо, в движке включение партиклов на загрузке не зависит от стейта.

А, то есть этого не должно быть? Тогда напишу авторам движка

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


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

Вопрос - как это реализовано?

Насколько я помню это сделано в движке, вам конкретный код нужен?


sosiska23 В скрипте sim_board.script в строке 222 переменная spawn_smart равна nil вместо осмысленного значения. Открываете файл смотрите, анализируете или выкладываете фрагмент кода с указание нумерации строк.

 

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

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
--' Создание нового отряда
function sim_board:create_squad(spawn_smart, sq_id)
	printf("create squad called")
	local squad_id = tostring(sq_id)

	local squad = alife():create(squad_id,spawn_smart.position,
							spawn_smart.m_level_vertex_id,
							spawn_smart.m_game_vertex_id)
	--local squad = squad_class(self, squad_id, faction_name, settings_id)
	--squad:init_squad(spawn_smart)
	printf("Creating squad[%s] in smart[%s]", squad_id, spawn_smart:name())
	--' Определяем в каком смарте создать новый отряд
	squad:create_npc(spawn_smart)
	squad:set_squad_relation()
	self:assign_squad_to_smart(squad, spawn_smart.id)

	--' Пересчитываем Team, Squad, Group
	for k in squad:squad_members() do
		local obj = k.object
		squad.board:setup_squad_and_group(obj)
	end
	return squad
end

только я думаю что не в этом дело, ведь этот файл я не трогал, а просто заселял локу болванчиками, скорее всего не зарегистрировал где-то, только не знаю где

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


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

sosiska23 Скорее попытка спавна на несуществующем смарте.


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

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


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

denis2000 

что то пошаманил, вылет есть но лог поменялся

Спойлер

FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ...k.e.r. call of pripyat\gamedata\scripts\utils.script:469: bad argument #1 to 'gsub' (string expected, got nil)
 

stack trace:

0023:69737365 nvwgf2um.dll

 

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

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


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

вам конкретный код нужен?

Должно быть уже нашёл, если что напишу, спасибо.

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


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

вылет есть но лог поменялся

Вылет, скорее всего, из-за неправильной логики переменная section равна nil. Очень странно, по идее, должен был сработать abort. Я подразумеваю что отключено логирование и сама функция abort

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


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

sosiska23 Неверное имя работы или имя секции в логике.


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

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


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

 

2 часа назад, denis2000 сказал:

 Неверное имя работы или имя секции в логике.

 

2 часа назад, Mass сказал:

Вылет, скорее всего, из-за неправильной логики переменная section равна nil. Очень странно, по идее, должен был сработать abort. Я подразумеваю что отключено логирование и сама функция abort

неверная логика смарт-террейна?

Спойлер

[smart_terrain]

squad_id = 5
max_population = 3

 

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

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


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

Приветствую. В тч,  в xr_effects.script есть такая функция:

Спойлер

-- играть звук от указанного объекта
function play_snd_from_obj(actor, npc, p)
    if p[1] and p[2] then
        local snd_obj = xr_sound.get_safe_sound_object(p[2])
        local obj     = level_object_by_sid(p[1])
        if obj ~= nil then
           printf("can't find object with story id %s", tostring(p[1]))
        
--        snd_obj:play_at_pos(obj, obj:position(), sound_object.s3d)
        snd_obj:play_no_feedback(obj, sound_object.s3d, 0, obj:position(), 1.0)
        end
    end
end

Которую можно вызывать в логике, например %=play_snd_from_obj(10902:characters_voice\scenario\zhar)%

Но, в зп, почему то данной функции нет, можно ее как то "вернуть" ?

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

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


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

@BeeRseK, а в чём сложности копипаст сделать? Вообще, вместо этого проигрывания чаще используют script sounds, пример — запись Ноя с КПК или сообщение о выбросе. 

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


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

неверная логика смарт-террейна?

А почему вы решили, что ошибка здесь? Ничего криминального не вижу.


BeeRseK В ЗП play_sound_by_story используют. Или просто play_sound если звук проигрывается из логики НПС.

Изменено пользователем denis2000
  • Жму руку 1
  • Спасибо 1

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

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


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

N42 воц
 

Спойлер

 

-------------------------------
-- WEAPONS
-------------------------------
function try_spawn_ammo(npc)
    local ammo_class,sec,number
    local function itr(npc,itm)
        if (IsWeapon(nil,itm:clsid()) and not npc:marked_dropped(itm)) then
            ammo_class = parse_list(ini_sys,itm:section(),"ammo_class")
            
            -- randomly spawn only 1 ammo type per found weapon
            if (#ammo_class > 0) then
                sec = string.match(ini_sys:r_string(itm:section(), "ammo_class"), "[^,]+") 
                if (sec) then 
                    if (item_count[sec]) then
                        number = math.random(item_count[sec][1], item_count[sec][2])
                    else 
                        number = 0
                    end
                    if (number > 0 and ini_sys:section_exist(sec)) then
                        alife_create_item(sec, npc, {ammo = number})
                    end
                end
            end
            
            -- spawn grenade ammo if there is launcher attached
            if (ini_sys:r_float_ex(itm:section(),"grenade_launcher_status") > 0) then
                ammo_class = parse_list(ini_sys,itm:section(),"grenade_class")
                for i=1,#ammo_class do
                    sec = ammo_class
                    if (sec) then
                        if (item_count[sec]) then
                            number = math.random(item_count[sec][1], item_count[sec][2])
                        else 
                            number = math.random(0,2)
                        end
                        if (number > 0 and ini_sys:section_exist(sec)) then 
                            alife_create_item(sec, npc, {ammo = number})
                        end
                    end
                end
            end
        end
    end
    npc:iterate_inventory(itr,npc)
    
    CreateTimeEvent(npc:id(), "npc_ammo_aggregation", 0, item_weapon.ammo_aggregation_full, npc:id())
end

function set_weapon_drop_condition(npc,itm)

    local rank = ranks.get_obj_rank_name(npc)
    local condition = 10
    if npc:character_community() ~= "zombied" then
        condition = math.random( weapon_drop_condition[rank][1] , weapon_drop_condition[rank][2] )
    else
        condition = math.random( weapon_drop_condition["novice"][1] , weapon_drop_condition["novice"][2] )
    end
    
    condition = clamp(condition,5,100)
    condition = condition / 100
    
    itm:set_condition(condition)
    
    -- avoid creating ammo on reload
    local death_dropped = se_load_var(npc:id(), npc:name(), "death_dropped")
    if (death_dropped) then
        return
    end
    
    if (IsWeapon(nil,itm:clsid()) and not npc:marked_dropped(itm)) then
        --
        local sec,number
        local ammo_class = parse_list(ini_sys,itm:section(),"ammo_class")
        
        -- randomly spawn only 1 ammo type per found weapon
        if (#ammo_class > 0) then
            sec = string.match(ini_sys:r_string(itm:section(), "ammo_class"), "[^,]+") 
            if (sec and item_count[sec]) then 
                number = math.random(item_count[sec][1], item_count[sec][2])
                if (number > 0 and ini_sys:section_exist(sec)) then
                    alife_create_item(sec, npc, {ammo = number})
                end
            end
        end
        -- spawn grenade ammo if there is launcher attached
        if (ini_sys:r_float_ex(itm:section(),"grenade_launcher_status") > 0) then
            ammo_class = parse_list(ini_sys,itm:section(),"grenade_class")
            for i=1,#ammo_class do
                sec = ammo_class
                if (sec and item_count[sec]) then 
                    number = math.random(item_count[sec][1], item_count[sec][2])
                    if (number > 0 and ini_sys:section_exist(sec)) then 
                        alife_create_item(sec, npc, {ammo = number})
                    end
                end
            end
        end
        --
        
        local ammo = itm:get_ammo_in_magazine()
        
        --printf("--Weapon: "..itm:section())
        
        --printf("--Ammo before edit: "..itm:get_ammo_in_magazine())
        
        if (ammo > 10) then
        
            local chance = math.random(0,100)
            if chance > 15 then
                itm:set_ammo_elapsed(math.random(5,10))
            end
        end
        
        --printf("--Ammo after edit: "..itm:get_ammo_in_magazine())
        
    end
end

 

 

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


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

Hrust сложность в том,что копипаст не работает.

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

А почему вы решили, что ошибка здесь? Ничего криминального не вижу.


BeeRseK В ЗП play_sound_by_story используют. Или просто play_sound если звук проигрывается из логики НПС.

ок, понял, спасибо. Play sound это ведь "звук в голове игрока",а мне нужен звук от конкретного объекта.

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


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

мне нужен звук от конкретного объекта

Так задайте в конфиге саунда сам звук с типом 3d или looped


Дополнено 5 минуты спустя
2 часа назад, sosiska23 сказал:

неверная логика смарт-террейна?

Вполне возможно, неправильная ссылка на конфигурационный файл

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


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

Так задайте в конфиге саунда сам звук с типом 3d или looped

ну задам тип, а дальше что? Не работает оно, вон Денис написал функцию, попробую

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


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

ну задам тип, а дальше что?

Это был ответ на вопрос! Чтобы играть звук его нужно подключить корректно в файл script_sound.ltx, где и задать тип звука.

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


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

Приветствую! Столкнулся с проблемой во время конвертации в формат СДК локации Мёртвого Города из OGSE, причем что с другими локациями подобного не было.

Спойлер

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

В интернете была информация о том что могут быть проблемы с софтом но до этой и после неё такого не было. Иные локации без проблем конвертируются и дальше, а вот с данной локацией как-то не срослось.

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


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

Это был ответ на вопрос! Чтобы играть звук его нужно подключить корректно в файл script_sound.ltx, где и задать тип звука.

Я в курсе что его там нужно регистрировать. Зарегистрировал ты его, как ты потом вызовешь воспроизведение от определенного объекта - от спейсрестриктора?


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

Mass прописан так:
[ds_heliscene_sound_zhar]
type = 3d
path = sozgsp\zhar
shuffle = seq
idle = 0,0,100

Прописал через функцию %=play_sound_by_story(ds_helifire_snd:ds_heliscene_sound_zhar)%

Звука нет. До этого был вылет, но там я накосячил


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

Если прописать как %=play_sound(ds_heliscene_sound_zhar)% тобишь "звук в голове", то работает. Значит звук подключен верно. Видимо проблема с дальностью до объекта. Надо попробовать ближе его подвинуть...

 

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

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


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

Зарегистрировал ты его, как ты потом вызовешь

Не понимаю в чем суть проблемы? Был задан вопрос, на него был дан ответ, затем последовало уточнение, и был задан другой вопрос в том же посте. Я на него ответил, специально процитировав сообщение чтобы не было недопонимания!

 

43 минуты назад, BeeRseK сказал:

Звука нет

Нужно проверить всё-ли правильно, нигде ли ничего не забыто!? Если что можно переписать функцию в эфектах

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


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

Вполне возможно, неправильная ссылка на конфигурационный файл

cfg = scripts\escape\smart\esc_killer_base_st_01.ltx

путь правильный

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


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

Всем привет, можно ли отключить спавн отрядов на локации? и как это сделать?


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

или как заменить одиночек долговцев и свободовцев на зомби, именно тех кто со временем спавнятся

 

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

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


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

ishps а из стандартного дропа убрал секции патронов?

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


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

Ловлю такой графический артефакт на скомпилированной локации. На сколько знаю, это проблема с группами сглаживания. Подскажите, как исправить?

P/S за группы сглаживания в ЗП и X-Ray вообще не разбираюсь.

Спойлер

ss-wizzygun-11-01-24-00-37-10-zaton.jpg ss-wizzygun-11-01-24-00-37-14-zaton.jpg ss-wizzygun-11-01-24-00-37-15-zaton.jpg ss-wizzygun-11-01-24-00-37-17-zaton.jpg ss-wizzygun-11-01-24-00-37-18-zaton.jpg ss-wizzygun-11-01-24-00-38-42-zaton.jpg ss-wizzygun-11-01-24-00-39-01-zaton.jpg ss-wizzygun-11-01-24-00-39-24-zaton.jpg

На скринах ЗП (стилизация под ТЧ).  

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

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


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

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

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

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

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

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

Войти

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

Войти

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