8 540 сообщений в этой теме

Такая проблема, работаю с окнами и ловлю вылет. Вылет происходит когда из первого окна открываю второе, потом закрываю его и сразу повторяю процедуру.

Скрытый текст

stack trace:

0023:054BAC1E luabind.beta7-devel.rc4.dll, luabind::detail::do_call_member_selection()
0023:0801EDBA xrGame.dll, CDialogHolder::OnFrame()

 

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


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

Привет, народ. Напомните, пожалуйста, как удалить все вещи из инвертаря ГГ, не трогая ПДА, Нож, Бинокль(в общем не трогая определенные item-ы).

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


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

@CRAZY_STALKER666 ,





  local can_leave = {

    wpn_knife = true,

    wpn_binoc = true,

    device_pda = true

  }

  local sim, obj = alife(), nil

  db.actor:iterate_inventory(

    function (dummy, item)

      obj = sim:object(item:id())

      if obj and can_leave[item:section()] == nil then

        sim:release(obj, true)

      end

    end,

  nil )


  • http://www.amk-team.ru/forum/uploads//ratings/bf.gif × 2

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


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

Приветствую всех.
Хочу сразу перейти к делу. Изучаю моддинг по сталкеру тч. Уже научился некоторым плюхам и пока чего-то изучаю и добавляю, постепенно выстраивается свой собственный мод. :)
Вот хочу добавить проигрывание звуков при использовании аптечки, колбасы, хлеба, консервы, бинта и антирада. Плохо понимая, я старался делать всё как указано на сталкер-вики. Естественно у меня ничего не получилось.
Кто может мне помочь советом, или же киньте готовый скрипт, буду благодарен.

P.S: Изучил эту ветку по поисковику. Решение своей проблемы не обнаружил.

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


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

хочу добавить проигрывание звуков при использовании

тут

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


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

Я именно по этому гайду и делал, но у меня ничего не вышло.

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


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

@Gomez Покажи лог вылета. 

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


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

@CRAZY_STALKER666 ,

 

  Показать

 

 

 

 

 

 

 

 


  local can_leave = {

    wpn_knife = true,

    wpn_binoc = true,

    device_pda = true

  }

  local sim, obj = alife(), nil

  db.actor:iterate_inventory(

    function (dummy, item)

      obj = sim:object(item:id())

      if obj and can_leave[item:section()] == nil then

        sim:release(obj, true)

      end

    end,

  nil )
 

 

куда это нужно приписывать что бы активировать?

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


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

@KURT2013 В диалог, например. А вообще - куда хочешь... Не забудь границы функции определить.


  • http://www.amk-team.ru/forum/uploads//ratings/thumb_up.png × 1

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


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

Я именно по этому гайду и делал, но у меня ничего не вышло.

Ну так покажи, что ты делал...

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


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

@naxac @CRAZY_STALKER666 А почему бы и не вот так?)

Скрытый текст

 local can_leave = {

    wpn_knife = true,

    wpn_binoc = true,

    device_pda = true

  }

  local sim, obj = alife(), nil

  db.actor:iterate_inventory(

    function (dummy, item)

      obj = sim:object(item:id())

      if obj and not can_leave[item:section()] then

        sim:release(obj, true)

      end

    end,

  nil )

 

 

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

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


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

почему бы и не вот так?)

Ну это как бы то же самое, только вид сбоку :) .


  • http://www.amk-team.ru/forum/uploads//ratings/bf.gif × 1

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


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

@=VENOM= Я согласен, но мне кажется лаконичней)

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


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

Братишки, помогите разобраться, что за (цензура).

Скрипты ли это не оптимизированные или движог УГ, не особо предназначен для такого.

В чём суть. Есть мод, в котором спавнятся мутанты (волны), последовательно. 

При этом каждая следующая волна садит FPS. 

В начале игры допустим 200, волна 8-9 уже 30.

Реализация:

1. При убийстве мутанта спавнится в инвертарь ГГ предмет (сделано через скрипт ogsm_mutants, думаю многие знают суть. Моб мёртв - даём предмет).

2. Считаем количество предметов, при определённом количестве даём инфо.

 

function item_2_volna()
local cnt = db.actor:object_count()
local ch=0
for i=0, cnt-1 do
local item = db.actor:object(i)
       if item:section() == "trofey_volna" then
          local sobj = alife():object(item:id())
             if sobj then
      
                    ch = ch+1
                 if ch == 20 then
                  
                    db.actor:give_info_portion("volna_2")

 

if has_alife_info("volna_2") and not has_alife_info("music_volna_2") then
        local snd = sound_object([[gameplay\next_volna]])
        snd:play_no_feedback(db.actor,sound_object.s2d, 0, vector():set(0, 0, 0), 1.0)
        db.actor:give_info_portion("music_volna_2")
zombie_timer.next_volna_timer()

if db.actor:object("double_points1") ~= nil then
         del_x2()
end
    
end


 end
end
end
end
end

3. Определили? Спавн следующей волны.

 


function sidor_volna_2()
if level.name() == "predbannik" and not has_alife_info("mob_l2")  and has_alife_info("volna_2") then
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
           db.actor:give_info_portion("mob_l2")
up_remove_corpses()

           save_volna_2()
    end
end

4. Ну и так далее, далее по аналогии.

Что только не пробовал... И переносил спавн волны с помощью кол-ва убитых мобов в xr_statistic (то бишь спавн предмета не причём), 

часть функций переносил в load, а не update (bind_stalker), и есть перерывы между спавном (10 сек... минута... разницы ноль).

И спавн мобов с помощью ogsm_packet, и так далее.

Ничего не помогает.

FPS падает и падает...

Вопрос: в чём проблема, как решить?

Изменено пользователем power-cat

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


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

Если каждая "волна" по 20 штук мутантов (*9=180 нехило так полигонов в кадре прибавилось) то, вполне возможно, что количество мобов и есть причина просадки FPS. Попробуй каждую "волну" заменить на всего одного моба и проверь, что получится. Кстати, проще сделать цикл спона мобов, чем городить кучу одинаковых строк кода:

 for a=1, 20 do
        alife():create("zombie_game2",vector():set(-475,-0.73,-170),288029,967)
end

А, только что заметил - вроде, уборщик трупов есть какой-то? Ну, тогда не знаю :) ...

Изменено пользователем =VENOM=
Поправка

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


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

Количество влияет, но не оч сильно. Когда мобов 60, FPS садится чуть быстрее.

Трупы удаляются, даже делал удаление при убийстве половины мобов.

Ничего не помогает. Мне кажется даже если 1 будет, всё тоже самое.

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


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

Интересно... А перезагрузка уровня (выход-вход обратно на локацию) после отстрела всей массы мутантов как-то влияет на FPS?

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


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

Насчёт перезагрузки не знаю, но save\load не помогает.

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

+ в сталкере не мало мест, где много мобов (чаэс) и т.д., но всё нормально. Мне кажется дело не в количестве.

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


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

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

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


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

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

У меня тут непонятка какая-то, при запаковке в архивы левелы, если запаковывать вот с таким конфигом:

Скрытый текст

local data_for_levels = [[
[header]
auto_load = true
level_name = single ; former level name, now can be mod name
level_ver = 1.0 ; former level version, now can be mod version
entry_point = $fs_root$\gamedata\ ; do not change !
creator = "Team EPIC" ; creator's name
link = "forum.epicstalker.com" ; creator's link

[options] ; exclude files from compression with such extension
exclude_exts = *.ncb,*.sln,*.vcproj,*.old,*.rc,*.scc,*.vssscc,*.bmp,*.exe,*.cmd,*.bat,*.db,*.xdb,*.bak*,*.bmp,*.smf,*.uvm,*.prj,*.tga,*.txt,*.rtf,*.doc,*.log,*.~*,*.rar,*.sfk,*.tmp,*.xr

[include_folders]
levels\%s\ = true   -- %s - это название левела(и папки)
]]
local data = strformat(data_for_levels, dir)

 

Игра крашится.
А если запаковывать вот с таким конфигом:

Скрытый текст

 


local data_for_levels = [[
[header]
auto_load = true
level_name = single ; former level name, now can be mod name
level_ver = 1.0 ; former level version, now can be mod version
entry_point = $fs_root$\gamedata\ ; do not change !
creator = "Team EPIC" ; creator's name
link = "forum.epicstalker.com" ; creator's link

[options] ; exclude files from compression with such extension
exclude_exts = *.ncb,*.sln,*.vcproj,*.old,*.rc,*.scc,*.vssscc,*.bmp,*.exe,*.cmd,*.bat,*.db,*.xdb,*.bak*,*.bmp,*.smf,*.uvm,*.prj,*.tga,*.txt,*.rtf,*.doc,*.log,*.~*,*.rar,*.sfk,*.tmp,*.xr

[include_folders]
.\ = true

[exclude_folders]
ai\ = true
anims\ = true
%s\ = true
;levels\ = true
meshes\ = true
scripts\ = true
shaders\ = true
sounds\ = true
spawns\ = true
textures\ = true
]]
local data = strformat(data_for_levels, type_dbs[ahkGetVar("UICoCDBToolDBToolListDbTypePack"..tab)])   -- под %s подставляется название папки с конфигами "configs"
   for k,v in pairs(level_directories) do   -- к data приписываются пути к каждому левелу, кроме того, который запаковываем, для исключения всех левелов, кроме пакуемого
    if (k ~= dir) then
     data = data .. "\nlevels\\" .. k .. "\\ = true"
    end
   end

То всё нормально, и не крашится.
Где косяк? В компрессоре или движке?

 


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


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

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

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

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

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


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

Войти

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


Войти

  • Пользователи, читающие эту тему   0 пользователей

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