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

laki

Проверенные
  • Число публикаций

    161
  • Регистрация

  • Последнее посещение

  • Дней в топе

    2
  • AMKoin

    2,896 [Подарить AMKoin]

Сообщения опубликованы laki

  1. Всем приветик!

    Решение по ошибке:

    ! [LUA] 0 : [C] [C](-1) :
    ! [LUA] 1 : [Lua] gamedata\scripts\se_zones.script(6) : is_single_player_game
    ! [LUA] 2 : [Lua] gamedata\scripts\se_zones.script(51) :
    * trying to access variable alife, which doesn't exist, or to load script alife.script, which doesn't exist too

    Сама по себе ошибка никак не влияет на игру, но тем кому не нравится что такая ошибка существует в сборке - нужно просто немного поправить скрипт-файл: se_zones.script

    Берём скрипт из gamedata SDK и комментируем некоторые строчки (выделил полужирным).

    Скрипт из оригинала Сталкер ТЧ.
     

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

     

    --[[
    local not_spawn_levels = {
        l05_bar = true
    }

    function is_single_player_game    ()
        if (_G.alife == nil) then
            return    (true)
        end
        
        if (alife() ~= nil) then
            return    (true)
        end
        
        if (_G.IsGameTypeSingle == nil) then
            return    (true)
        end

        if (IsGameTypeSingle() == true) then
            return    (true)
        end

        return        (false)
    end
    ]]--

    class "se_zone_anom" (cse_anomalous_zone)
    function se_zone_anom:__init (section) super (section)    
    end
    function se_zone_anom:on_register()
        cse_anomalous_zone.on_register(self)
        
        self.artefact_spawn_idle = 60*60*1000*utils.cfg_get_number(system_ini(), self:section_name(), "artefact_spawn_idle", self, false, 24)
        self.artefact_spawn_rnd = utils.cfg_get_number(system_ini(), self:section_name(), "artefact_spawn_rnd", self, false, 100)    
    end
    function se_zone_anom:update()
        cse_anomalous_zone.update(self)

        if self.last_spawn_time == nil then
            self.last_spawn_time = game.get_game_time()
        end

        if game.get_game_time():diffSec(self.last_spawn_time) >= self.artefact_spawn_idle then
            self.last_spawn_time = game.get_game_time()
            if math.random(100) <= self.artefact_spawn_rnd then
                self:spawn_artefacts()
            end
        end    
    end
    function se_zone_anom:STATE_Write(packet)
        cse_anomalous_zone.STATE_Write(self, packet)
    --[[
        if (is_single_player_game() == false) then
            return
        end
    ]]--

        if self.last_spawn_time == nil then
            packet:w_u8(0)
        else
            packet:w_u8(1)
            utils.w_CTime(packet, self.last_spawn_time)
        end    
    end
    -- восстановление
    function se_zone_anom:STATE_Read( packet, size )
        cse_anomalous_zone.STATE_Read( self, packet, size )
    --[[
        if editor() then
            return
        end
        
        if (is_single_player_game() == false) then
            return
        end
    ]]--

        local flag = packet:r_u8()
        if flag == 1 then
            self.last_spawn_time = utils.r_CTime(packet)
        end
    end


    class "se_zone_visual" (cse_zone_visual)
    function se_zone_visual:__init (section) super (section)
    end
    function se_zone_visual:on_register()
        cse_zone_visual.on_register(self)
        
        self.artefact_spawn_idle = 60*60*1000*utils.cfg_get_number(system_ini(), self:section_name(), "artefact_spawn_idle", self, false, 24)
        self.artefact_spawn_rnd = utils.cfg_get_number(system_ini(), self:section_name(), "artefact_spawn_rnd", self, false, 100)    
    end
    function se_zone_visual:update()
        cse_zone_visual.update(self)

        if self.last_spawn_time == nil then
            self.last_spawn_time = game.get_game_time()
        end

        if game.get_game_time():diffSec(self.last_spawn_time) >= self.artefact_spawn_idle then
            self.last_spawn_time = game.get_game_time()
            if math.random(100) <= self.artefact_spawn_rnd then
                self:spawn_artefacts()
            end
        end    
    end

    function se_zone_visual:STATE_Write(packet)
        cse_zone_visual.STATE_Write(self, packet)
    --[[
        if (is_single_player_game() == false) then
            return
        end
    ]]--

        if self.last_spawn_time == nil then
            packet:w_u8(0)
        else
            packet:w_u8(1)
            utils.w_CTime(packet, self.last_spawn_time)
        end    
    end
    -- восстановление
    function se_zone_visual:STATE_Read( packet, size )
        cse_zone_visual.STATE_Read( self, packet, size )
    --[[
        if editor() then
            return
        end
        
        if (is_single_player_game() == false) then
            return
        end
    ]]--

        local flag = packet:r_u8()
        if flag == 1 then
            self.last_spawn_time = utils.r_CTime(packet)
        end
    end

     

    --' Рестрикторы
    class "se_restrictor" (cse_alife_space_restrictor)
    function se_restrictor:__init (section) super (section)
    end
    function se_restrictor:keep_saved_data_anyway()
        return true
    end

     

    Правленный скрипт можно вставить в gamedata игры (мода), или не вставлять...

    Это никаким образом не повлияет на игру.

    Так что решайте сами - вставлять правленный файл в игру (в мод) или не вставлять.

    Удачи в модостроении!!!

    • Спасибо 1
  2. Всем приветик!

    Если при декомпиляции all.spawn - Universal ACDC выдаёт вот такую ошибку: Function: cse_alife_inventory_item::update_read Line: 4293 Description: unexpected size

    Полный лог:
     

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

     

    Universal ACDC v.1.38
    checking version of all.spawn...
        This is a spawn of S.T.A.L.K.E.R. Shadow Of Chernobyl (1.0001 or higher)
    scanning configs...
    problems occured while scanning configs. Try again...
    done!
    opening all.spawn...
    reading header...
    reading alife objects...

    FATAL ERROR!
    Function: cse_alife_inventory_item::update_read
    Line: 4293
    Description: unexpected size

     

    То нужно искать объект у которого есть вот такие строчки (выделил жирным шрифтом).

    Пример:
     

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

     

    [1273]

    ; cse_abstract properties
    section_name = key
    name = key_01
    position = 245.39338684082, -2.20150017738342, 43.9378089904785
    direction = 0, 0, 0
    id = 65535
    version = 118
    script_version = 6
    spawn_id = 1273

    ; cse_alife_object properties
    game_vertex_id = 2136
    level_vertex_id = 169917
    object_flags = 0xffffff3f

    ; cse_visual properties
    visual_name = equipments\key

    ; cse_alife_inventory_item properties
    condition = 1
    upd:num_items = 0xe0
    upd:position = 245.39338684082, -2.20150017738342, 43.9378089904785
    upd:quaternion = -1, -1, 1, -1
    upd:angular_velocity = -1, -1, -1
    upd:linear_velocity = 0.00392156862745097, 0.00392156862745097, 0.00392156862745097

     

    И либо заменить строчку:

    upd:num_items = 0xe0

    На такую:

    upd:num_items = 0х78

    Либо просто удалить все строчки (выделенные жирным шрифтом).

    После этих манипуляций ошибка больше не появится и all.spawn будет нормально компилироваться и декомпилироваться.

     

    P.S. Лично я при таких вылетах - выбираю удалить строчки.

    Но как поступать вам - решайте сами.

     

    Удачи в модостроении!!!

    • Полезно 2
  3. Всем приветик!

    Хочу разъяснить, что является причиной вылета: square_magnitude() > std::numeric_limits<T>::min()

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

    FATAL ERROR
    [error]Expression    : square_magnitude() > std::numeric_limits<T>::min()
    [error]Function      : ../../xrCore/_vector3d.h
    [error]File          : ../../xrCore/_vector3d.h
    [error]Line          : 189
    [error]Description   : assertion failed

    Этот вылет происходит из-за неправильно расставленных точек в пути следования НПС.

    Конкретно - нельзя ставить две точки (в одном пути) на одних и тех же координатах.

    То есть, если скажем в пути стоит 5 точек и к примеру точка 4, и точка 5 поставлены на одинаковых координатах, то вы получите вылет.

    Нужно расставить точку 4 и точку 5 хотя бы на сантиметр друг от друга и тогда вылета не будет.

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

  4. Всем привет!

    Ребята, очень нужна ваша профессиональная помощь! Движок ЗП. Нужно изменить цвет текста 100 советов. Или воткнуть возможность изменения цвета текста, но только для 100 советов, чтобы не затронуть другие надписи. Заранее спасибо!

  5. @Ozzzman,  переходи на нормальную версию мода. А то так и будешь собирать вылеты.

    Версия 1.0004, на которой ты играешь, не стабильна, запаришься играть.

    Скачай из шапки темы стабильную версию 1.0006, там нет таких проблем.

    Так, а это лечение твоего вылета:

     

     

  6. @Ozzzman, привет. На сколько я помню, такой вылет был на версии мода 1.0004.

    Установи вот эту правочку и вылет должен исчезнуть.

     

     

    Но лучше перейти на версию 1.0006, она стабильная.

    Удачи в прохождении.

  7. @irbis787, привет. Чем распаковывал архив? Нужно распаковывать 7zip-ом.

     

     

     

    Нет!!! Винрар больше ошибок допускает при распаковке. Попробуй найти в архиве этот файл (gamedata\textures\grnd\grnd_dry_gr_bump.dds) и вытащить его на раб. стол, а за тем, закинуть в папку gamedata - textures - grnd.

    • Нравится 2
    • Согласен 1
    • Полезно 1
  8. @Пришелец, привет. Лукаш, должен появиться у прохода, где плиты и шлагбаум. У могилы его не будет. (Плиты и шлагбаум, те которые, недалёко от перехода, на локацию Бар.)
    • Согласен 4
  9. @Ronaldoz, привет. Вот в этом сообщении решение твоей проблемы.

    http://www.amk-team.ru/forum/topic/13276-put-cheloveka-vozvraschenie/page-60#entry1014128

    Сделай всё в точности как там написано и не забудь вернуть всё как было, после прохождения этого участка. (В твоём случае, после того, как сдашь мешки повару.)

    • Спасибо 1
    • Согласен 1
  10. @Val0418, @Edver, привет. Нива только для того, что бы тяжёлые ящики на своём горбу не тащить. На квест, не отразится, как ГГ, придёт пешком, или приедет на машине, главное, что бы доставил и отдал.
    • Нравится 1
    • Согласен 1

AMK-Team.ru

×
×
  • Создать...