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

[SoC] Ковыряемся в файлах


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

@riddik121,  Причем тут пробел? Можете хоть всю функцию написать одной строкой. И она будет рабочей при условии, что в ней нет ошибок.

Ищите ошибку или в файле (необязательно в ф-ии), либо проверяйте, существует ли вообще ваша секция предмета "chemodan". Если существует, правильно ли написана.

Либо пробуйте другую ф-ию. Например такую:

function rrrrrr()
 return db.actor:object("chemodan") ~= nil
end

Если и эта вылетит, ошибка точно в файле.

Ссылка на комментарий

Создал смарт как бы, креплю НПС туда и НПС креплю к нему, ловлю разные с подряд вылеты, а самый частый вылет вот:

Expression : fatal error

Function : CScriptEngine::lua_error

File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp

Line : 73

Description :

Arguments : LUA error: ...e\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:271: C stack overflow

 

[11130]

; cse_abstract properties

section_name = smart_terrain

name = marsh_smart_01

position = 29.882111,3.088252,-234.395569

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 3433

distance = 4.19999980926514

level_vertex_id = 154528

object_flags = 0xffffffbe

custom_data = <<END

[smart_terrain]

type = marsh_smart

capacity = 15

squad = 1

groups = 2

END

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 4.5480751991272

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

; se_smart_terrain properties



local t = {}

--загрузка РАБОТ
function load_job(sj, gname, type, squad, groups)    
   if type == "marsh_smart" then  -- Имя нашего смарта
        t = { section = "logic@marsh_smart_sleeper1",  --секция логики
        idle = 0,
        prior = 5, state = {0},
        in_rest = "", out_rest = "",
        }
        table.insert(sj, t)

        t = { section = "logic@marsh_smart_sleeper2",
            idle = 0,
            prior = 5, state = {1},
            in_rest = "", out_rest = "",
            predicate = function(obj_info)
                        return obj_info.profile_name == "mar_stalker_01"
            end
        }
        table.insert(sj, t)
    end            
end

--Загрузка состояний
function load_states(gname, type)
    if type == "marsh_smart" then --имя смарта
          return function(gulag)
               local actor = db.actor
               if not actor then
                    return gulag.state
               end
               if level.get_time_hours() >= 5 and level.get_time_hours() <= 21 then
                    return 0  -- функция возвращает 0 если день
               else
                    return 1  -- функция возвращает 1 если ночь
               end
          end
     end
end

function load_ltx(gname, type)
    return nil
end

--Проверка на community для людей.
function checkStalker(npc_community, gulag_type, npc_rank, se_obj)
    if gulag_type == "marsh_smart" then  --наш смарт
        return npc_community == "rassvet" --какие группировки присущи
    end
         return false
end

-- Проверка на community у монстров
function checkMonster(npc_community, gulag_type)
    return false
end

[11131]

; cse_abstract properties

section_name = stalker

name = mar_stalker_01

position = 29.882111,3.088252,-234.395569

direction = 0,0,0

 

; cse_alife_trader_abstract properties

money = 5000

character_profile = mar_stalker_01

 

; cse_alife_object properties

game_vertex_id = 3433

distance = 0

level_vertex_id = 154528

object_flags = 0xffffffbf

custom_data = <<END

[smart_terrains]

marsh_smart = true

END

 

; cse_visual properties

visual_name = actors\npc\neytral_hood_uzor

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 1

g_group = 2

health = 1

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0

upd:creature_flags = 0

upd:position = 29.882111,3.088252,-234.395569

upd:o_model = 0

upd:o_torso = 0,0,0

upd:g_team = 0

upd:g_squad = 1

upd:g_group = 2

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_alife_human_abstract properties

predicate5 = 1,2,2,1,2

predicate4 = 0,1,1,1

 

; cse_ph_skeleton properties

 

upd:start_dialog =

 

; se_stalker properties

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[logic@marsh_smart_sleeper1]

active = sleeper@marsh_smart_sleeper1

 

[sleeper@marsh_smart_sleeper1]

path_main = sleep_1

wakeable = false

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[logic@marsh_smart_sleeper2]

active = sleeper@marsh_smart_sleeper2

 

[sleeper@marsh_smart_sleeper2]

path_main = sleep_1

wakeable = false

 

 

Изменено пользователем ColR_iT
Ссылка на комментарий

Ребята подскажите? Хочу изменить квесты по заданиям зачистить логово, отряд, местность от мутантов и подобные им. Где искать начинку и как разобраться. Хочу следующее: изменить численность, награду(возможно колличество/ассортимент) и добавить изюминку(на ваш вкус, что по-советуете).

 

и ещё. Как сделать регулируемую оптику(кратность) для снайперской винтовки?

Спуск! Выстрел! И воздух рассекая

Судьба моя устремлена вперед Свинцом одарит, душу отнимая.

Сквозь дырку в каске жизнь твоя уйдет.

Ссылка на комментарий

И сного здравствуйте!

Если ни кто не может (или не хочет :) ) ответить на мой вопрос с предыдущей странице,

то может хотя бы подскажите форум или тему хорошую по созданию оружия.

За рание пасиб.

 

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

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

Всем привет.
Захотел подключить локацию к ЛВ_ТоДу, (не спрашивайте "зачем", "почему" и т.п. :) ), однако столкнулся с проблемой - для сбора глобального game.graph нужны level.graph каждого уровня. Однако в уровнях Болото, Затон, Юпитер, (наверное еще в каких-то, только в этих увидел) этих файлов нет. Хм, как же тогда в игре эти уровни работают?? Или эти файлы перепрятаны? Или - есть способ gamr.graph разбить на level.graph'ы?

Изменено пользователем stalkerok007
Ссылка на комментарий

ОМГ, лучше бы я не лез в спавн ТоДа... Актор на Затоне что-то делает, половина моделей из ЗП (на них ЛЕ ругается), спавн пока распакуешь - седым станешь, и прочее-прочее... Ирбис просто маг :)

 

Не Ирбис - Lagos, он локации собирал.
А теперь вопрос - к чему этот пост?

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

 Вопрос тем, кто ковырял настройки пда. Вообще хочу перенести мини-карту с худа в пда ==> в раздел контакты, примерно так как на скрине.

f030976893bbt.jpg

 

Где копать? И это вообще реально сделать или закопано это закопано в движок?

Сам ковырял файлы начиная от pda.xml и до zone_map.xml. Особым успехом это не закончилось, потому прошу помощи у знающих.

Ссылка на комментарий

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

 

Где нибудь в сталкере вообще имеет смысл логика вида условие|<пусто> ?

Спрашиваю, по тому что нашел в одном месте такую вот красоту: на полном серьезе части разбираются, проверяются, сохраняются, а потом по выполнению условия вызывается xr_logic.switch_to_section( obj, st, xr_logic.pick_section_from_condlist( actor, obj, nil ) )

 

Понятно, что в данном случае будет вылет/висяк, и в той логике, которая скармливается этой конкретной схеме, такого нет. Но может где-то для чего-то и вправду используется ?

 

Конкретно см. sr_timer.script, хотя не факт, что это у меня сейчас под руками оригинальный.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий
@Dennis_Chikin, нет, таковое смысла не имеет. Перед разделителем пишется условие для параметра, после можно прописать дополнительные, скажем "общие" условия в фигурных скобках, эффекты, внутри знаков процента, и схема на которую нужно перейти, при этом, если ни дополнительных условий, ни эффектов, ни схемы не будет - ничего не произойдёт. И в приведённом тобой примере:
xr_logic.switch_to_section( obj, st, xr_logic.pick_section_from_condlist( actor, obj, nil ) )
Вылета не будет, т.к. в функции switch_to_section стоит проверка на nil, в качестве секции на которую переходить.
Ссылка на комментарий
Ссылка на комментарий

@Dennis_Chikin, не обратил внимание... А где ты таковую запись нашёл?

Хотя я кажется понял, что это пример того, что произойдёт в случае записи: условие|<пусто>.
Здесь, да - данное на совести модмейкера. Но если честно, лично мне и в голову не придёт НЕ писать что-то в кондлист, ведь для чего-то мне потребовалось использовать данный параметр...

Да, и кстати при отсутствии кондлиста, вылет будет ещё на этапе парсинга всей строки с параметром,  в той функции, которая там прописана, как правило это одна из функций cfg_get_трямтрям_condlist.

Ссылка на комментарий

Всем привет.
Для чего в секцию вертолета пишется aaa.anm? Какую роль он играет?

Просто я сделал новый вертолет, на мною с нуля сделанных костях, написанном конфиге, мною сделанных анимках... Однако, в секцию прописал этот ааа.anm, но в игре вращаются оба винта, все вышло отлично.
Заранее спасибо.

Изменено пользователем ColR_iT
Ссылка на комментарий

Да, и кстати при отсутствии кондлиста, вылет будет ещё на этапе парсинга всей строки с параметром,  в той функции, которая там прописана, как правило это одна из функций cfg_get_трямтрям_condlist.

А вот это как раз предварительно обходится. Если есть условие, но нет акции, то и разбор кондлиста не вызывается, а поле в таблице { условие, кондлист } заботливо "инициализируется" nil'ом.

То есть, когда делали - наверное, что-то хотели, возможно.

Ссылка на комментарий

Всем привед! Пришёл за советом: как в ТЧ уменьшить время респауна артов в аномалиях (например чтобы артефакт появлялся каждый игровой день). И вообще респятся ли они в ТЧ? (в ЗП знаю - после выброса а вТЧ? Мне кажется что их как разрабы заспавнили так их соберёшь и их больше не будет).

Ссылка на комментарий

Ку) подскажите пожалуйста!
Как сделать регулируемую кратность оптики на снайперской винтовке? И как добавить прицел к оружию (добавлял к валу сусат, помимо псо1, в итоге вылет со ссылкой на сусат)?
Еще один вопрос. Хочется реализовать бродячего торговца. Чтобы был бессмертным, продавал уники пушки и броники и патроны, абсолюты, аптечки, обвесы. Бродячий. Чтобы как электричка из точки А в точку Б и обратно. Бродил по всем локам, останавливался на каждой на 3 игровых часа. Кто нибуть??.

 

Не нужно писать посты в виде стихотворений.

ColR_iT

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

Спуск! Выстрел! И воздух рассекая

Судьба моя устремлена вперед Свинцом одарит, душу отнимая.

Сквозь дырку в каске жизнь твоя уйдет.

Ссылка на комментарий

 

 


Еще один вопрос.

Вопрос из разряда: "Сделайте всё за меня".

Почти всё, что ты просишь, можно найти тут. Изучай

Wo1fRam.gif
Мой канал на YouTube

Бессмысленно осмысливать смысл неосмысленными мыслями.

Ссылка на комментарий

Ого! Вольфрам, ты конечно молодец, что посоветовал такой ресурс... Для меня не понятно практически ни йоты. Беспонятия с чего начать?! Я же не бу-бу в этом! Как? Что? Куда и откуда? Потому и прошу помочь.

Спуск! Выстрел! И воздух рассекая

Судьба моя устремлена вперед Свинцом одарит, душу отнимая.

Сквозь дырку в каске жизнь твоя уйдет.

Ссылка на комментарий

@JohnWaine, там всё прекрасно расписано, что-как-куда-откуда.

Wo1fRam.gif
Мой канал на YouTube

Бессмысленно осмысливать смысл неосмысленными мыслями.

Ссылка на комментарий

@JohnWaine, начиная отсюда и заканчивая этим учи всё. Тогда не будет вопросов наподобие

 

Хочется реализовать бродячего торговца
Изменено пользователем stalkerok007
Ссылка на комментарий

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

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

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

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

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

Войти

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

Войти
  • Недавно просматривали   0 пользователей

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