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

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


Halford

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

Vergas

Например так: db.actor:item_in_slot(1)-возвращает ссылку на объект лежащий в 1 слоте, ну а дальше делай с ней что хочешь, получай секцию, ID и т.д.

Возможно всё, ну или почти всё.

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


Ссылка на сообщение

XMK

db.actor:disable_info_portion("vzal_dolg")

Отшель[НИК]

Попробуй эту функцию: ссылка_на_толика:who_hit_section_name()-возвращает секцию того ко нанес повреждение

Возможно всё, ну или почти всё.

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


Ссылка на сообщение

Vergas

Скрипт bind_stalker.script функции actor_binder:save(packet) и actor_binder:load(reader)

 

Для сохранения переменной в actor_binder:save(packet) пишешь примерно это (писать лучше в самый конец, чтобы ошибок меньше было):

имя_файла_скрипта_в_котором_нужная_ тебе_переменная. save(packet)

 

Для загруски переменной в actor_binder: load (packet) пишешь примерно это (писать лучше в тоже место что и в actor_binder:save(packet)):

имя_файла_скрипта_в_котором_нужная_ тебе_переменная.load (reader)

 

в файле с переменной создаешь функции:

function save (packet)

packet:w_u8(имя_переменной)

end

и

function load (reader)

имя_переменной = reader:r_u8()

end

 

w_u8 и r_u8 надо поменять если используешь другой тип переменной

вот несколько примеров(здесь я могу ошибаться так что поправьте если что):

строковая переменная w_stringZ и r_stringZ

с плавающей точкой w_float и r_float

целое число w_u8 и r_u8

там еще их много, смотри в файле lua_help.script - class net_packet.

Изменено пользователем 8push5
Возможно всё, ну или почти всё.

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


Ссылка на сообщение
1. а как спавнятся патроны? Пачкой? Но тогда как существует неполная пачка. Или каждый патрон в отдельности?

Патроны спауняться пачками, а не полные пачки функцией:

alife():create_ammo(section, position, lvi, gvi, pid, num)

Но при ее использовании num не должен быть больше патронов в пачке.

Гораздо удобнее пользоваться функцией сделаной разрабами:

se_respawn.create_ammo(section, npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id(), number)

number - общее количество патронов, если больше патронов в пачке то спауниться полная пачка и из остатков неполная.

но это только в инвентарь, чтобы в мир заспаунить попробуй вместо npc:id() поставить nil

Возможно всё, ну или почти всё.

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


Ссылка на сообщение

Vergas, можно и без таблиц, вот код

    local ltx = system_ini()
    local ammo_list    = ltx:r_string(section,"ammo_class")

Но после этого мы получим ammo_list как строку, например:

ammo_list =ammo_5.45x39_ap, ammo_5.45x39_fmj

А чтобы переменную ammo_list превратить в таблицу, например:

ammo_list = {ammo_5.45x39_ap,

ammo_5.45x39_fmj}

надо писать следующее:

local ammo_tab = str_explode(",", ammo_list, true)--вызов функции разбивающей строку на отдельные элементы по какому-нибудь символу, здесь по ","

Вот функция разбивающая строку на отдельные элементы , я не помню откуда взял ее,по-моему из AMK мода.

function str_explode(div,str,clear)
    local t={}
    local cpt = string.find (str, div, 1, true)
    if cpt then
        repeat
            if clear then
                table.insert( t, trim(string.sub(str, 1, cpt-1)) )
            else
                table.insert( t, string.sub(str, 1, cpt-1) )
            end
            str = string.sub( str, cpt+string.len(div) )
            cpt = string.find (str, div, 1, true)
        until cpt==nil
    end
    if clear then
        table.insert(t, trim(str))
    else
        table.insert(t, str)
    end
    return t
end

function trim (s)
    return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
end

 

Изменено пользователем Pxan
Спрятал под спойлер. Pxan
Возможно всё, ну или почти всё.

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


Ссылка на сообщение

Vergas

Так просто, в этой же функции, вместо цифр пиши переменную, которой присвоено числовое значение.

Возможно всё, ну или почти всё.

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


Ссылка на сообщение

Monnoroch, если тебе надо получить "1" Если у ГГ есть предмет "a", ну и так далее, то все правильно, но кавычки в таблице не нужны, по-моему, у меня без кавычек работает такая фишка:

local tbl = {
    a = 1,
    b = 2,
    c = 3
    }

Изменено пользователем 8push5
Возможно всё, ну или почти всё.

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


Ссылка на сообщение
Monnoroch, функция вернет последнее обработанное и удовлетворяющее условиям, то есть если есть "a" и "b" то скорее всего (если "b"=2) вернет 2, но сначала завершиться обработка таблицы.
Возможно всё, ну или почти всё.

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


Ссылка на сообщение

XMK, апдейт актора падает из-за не критичной ошибки в скрипте или из-за большой нагрузки, покажи скрипт, гляну

Изменено пользователем 8push5
Возможно всё, ну или почти всё.

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


Ссылка на сообщение
Monnoroch, попробуй obj:health(), может оно, не проверял, и похоже работает только для онлайновых объектов, в игре функция не используется но в lua_help.script есть.
Возможно всё, ну или почти всё.

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


Ссылка на сообщение
2. Как изменить визуал непися npc? Изменятся ли при этом его защитные свойства?

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

Возможно всё, ну или почти всё.

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


Ссылка на сообщение

Kolmogor, тогда зачем по вашему нужен файл, damages.ltx, и почему когда я его редактирую то защита неписей меняется. странно, может это я такой везучий?

Существует связка (если бы вы делали новые модели сталкеров, вы бы об этом знали) в модели сталкера указывается секция повреждений для каждой кости модели, секции эти хранятся в выше указанном файле, в этой секции расписаны кости и параметры повреждения.

Возможно всё, ну или почти всё.

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


Ссылка на сообщение
damages.ltx нужен только для ГГ, в нем хранится защита костюмов от повреждений

защита сталкеров хранится в m_stalker.ltx секция [stalker_damage]

Здесь вы глубоко заблуждаетесь, этот файл используется не толко ГГ но и неписями, в нем прописано защищенность НПЦ, а в m _stalker.ltx секции [stalker_damage] прописаны зональные повреждения и анимация, это абсолютно разные вещи.

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

Отдельную модель лень, вот содержимое damages.ltx, попробуйте с ним ввязаться в перестрелку, будет очень весело, никто никого не может убить, я выпустил обойму в голову новичка и ему ходьбы хны.

;***************************************************************

; BODY SECTIONS

;***************************************************************

[body_kurtka_damage]

bip01_pelvis = 1.0, 1

bip01_spine = 1.0, 1

bip01_spine1 = 1.0, 1

bip01_spine2 = 1.0, 1

 

bip01_l_clavicle = 1.0, 1

bip01_l_upperarm = 1.0, 1

bip01_l_forearm = 1.0, 1

bip01_l_hand = 1.0, 1

 

bip01_r_clavicle = 1.0, 1

bip01_r_upperarm = 1.0, 1

bip01_r_forearm = 1.0, 1

bip01_r_hand = 1.0, 1

 

bip01_l_thigh = 1.0, 1

bip01_l_calf = 1.0, 1

bip01_l_foot = 1.0, 1

bip01_r_thigh = 1.0, 1

bip01_r_calf = 1.0, 1

bip01_r_foot = 1.0, 1

 

 

[body_plasch_damage]

bip01_pelvis = 1.0, 1

bip01_spine = 1.0, 1

bip01_spine1 = 1.0, 1

bip01_spine2 = 1.0, 1

 

bip01_l_clavicle = 1.0, 1

bip01_l_upperarm = 1.0, 1

bip01_l_forearm = 1.0, 1

bip01_l_hand = 1.0, 1

 

bip01_r_clavicle = 1.0, 1

bip01_r_upperarm = 1.0, 1

bip01_r_forearm = 1.0, 1

bip01_r_hand = 1.0, 1

 

bip01_l_thigh = 1.0, 1

bip01_l_calf = 1.0, 1

bip01_l_foot = 1.0, 1

bip01_r_thigh = 1.0, 1

bip01_r_calf = 1.0, 1

bip01_r_foot = 1.0, 1

 

 

[body_gilet_damage]

bip01_pelvis = 1.0, 1

bip01_spine = 1.0, 1

bip01_spine1 = 1.0, 1

bip01_spine2 = 1.0, 1

 

bip01_l_clavicle = 1.0, 1

bip01_l_upperarm = 1.0, 1

bip01_l_forearm = 1.0, 1

bip01_l_hand = 1.0, 1

 

bip01_r_clavicle = 1.0, 1

bip01_r_upperarm = 1.0, 1

bip01_r_forearm = 1.0, 1

bip01_r_hand = 1.0, 1

 

bip01_l_thigh = 1.0, 1

bip01_l_calf = 1.0, 1

bip01_l_foot = 1.0, 1

bip01_r_thigh = 1.0, 1

bip01_r_calf = 1.0, 1

bip01_r_foot = 1.0, 1

 

 

[body_kombez_damage]

bip01_pelvis = 1.0, 1

bip01_spine = 1.0, 1

bip01_spine1 = 1.0, 1

bip01_spine2 = 1.0, 1

 

bip01_l_clavicle = 1.0, 1

bip01_l_upperarm = 1.0, 1

bip01_l_forearm = 1.0, 1

bip01_l_hand = 1.0, 1

 

bip01_r_clavicle = 1.0, 1

bip01_r_upperarm = 1.0, 1

bip01_r_forearm = 1.0, 1

bip01_r_hand = 1.0, 1

 

bip01_l_thigh = 1.0, 1

bip01_l_calf = 1.0, 1

bip01_l_foot = 1.0, 1

bip01_r_thigh = 1.0, 1

bip01_r_calf = 1.0, 1

bip01_r_foot = 1.0, 1

 

 

[body_armor_damage]

bip01_pelvis = 1.0, 1

bip01_spine = 1.0, 1

bip01_spine1 = 1.0, 1

bip01_spine2 = 1.0, 1

 

bip01_l_clavicle = 1.0, 1

bip01_l_upperarm = 1.0, 1

bip01_l_forearm = 1.0, 1

bip01_l_hand = 1.0, 1

 

bip01_r_clavicle = 1.0, 1

bip01_r_upperarm = 1.0, 1

bip01_r_forearm = 1.0, 1

bip01_r_hand = 1.0, 1

 

bip01_l_thigh = 1.0, 1

bip01_l_calf = 1.0, 1

bip01_l_foot = 1.0, 1

bip01_r_thigh = 1.0, 1

bip01_r_calf = 1.0, 1

bip01_r_foot = 1.0, 1

 

 

[body_exo_damage]

bip01_pelvis = 1.0, 1

bip01_spine = 1.0, 1

bip01_spine1 = 1.0, 1

bip01_spine2 = 1.0, 1

 

bip01_l_clavicle = 1.0, 1

bip01_l_upperarm = 1.0, 1

bip01_l_forearm = 1.0, 1

bip01_l_hand = 1.0, 1

 

bip01_r_clavicle = 1.0, 1

bip01_r_upperarm = 1.0, 1

bip01_r_forearm = 1.0, 1

bip01_r_hand = 1.0, 1

 

bip01_l_thigh = 1.0, 1

bip01_l_calf = 1.0, 1

bip01_l_foot = 1.0, 1

bip01_r_thigh = 1.0, 1

bip01_r_calf = 1.0, 1

bip01_r_foot = 1.0, 1

 

 

 

;***************************************************************

; HEAD SECTIONS

;***************************************************************

[head_mask_damage]

bip01_neck = 1.0, 1

bip01_head = 1.0, 1

eyelid_1 = 1.0, 1

eye_left = 1.0, 1

eye_right = 1.0, 1

jaw_1 = 1.0, 1

 

[head_antigas_damage]

bip01_neck = 1.0, 1

bip01_head = 1.0, 1

eyelid_1 = 1.0, 1

eye_left = 1.0, 1

eye_right = 1.0, 1

jaw_1 = 1.0, 1

 

[head_kupol_damage]

bip01_neck = 1.0, 1

bip01_head = 1.0, 1

eyelid_1 = 1.0, 1

eye_left = 1.0, 1

eye_right = 1.0, 1

jaw_1 = 1.0, 1

 

[head_helmet_damage]

bip01_neck = 1.0, 1

bip01_head = 1.0, 1

eyelid_1 = 1.0, 1

eye_left = 1.0, 1

eye_right = 1.0, 1

jaw_1 = 1.0, 1

 

 

;***************************************************************

; FULL SECTIONS

;***************************************************************

[kurtka_mask_damage]:body_kurtka_damage,head_mask_damage

hit_fraction = 0

 

[plasch_mask_damage]:body_plasch_damage,head_mask_damage

hit_fraction = 0

 

[plasch_antigas_damage]:body_plasch_damage,head_antigas_damage

hit_fraction = 0

 

[kurtka_antigas_damage]:body_kurtka_damage,head_antigas_damage

hit_fraction = 0

 

[kurtka_kupol_damage]:body_kurtka_damage,head_kupol_damage

hit_fraction = 0

 

[gilet_mask_damage]:body_gilet_damage,head_mask_damage

hit_fraction = 0

 

[kombez_mask_damage]:body_kombez_damage,head_mask_damage

hit_fraction = 0

 

[gilet_antigas_damage]:body_gilet_damage,head_antigas_damage

hit_fraction = 0

 

[kombez_antigas_damage]:body_kombez_damage,head_antigas_damage

hit_fraction = 0

 

[kombez_kupol_damage]:body_kombez_damage,head_kupol_damage

hit_fraction = 0

 

[kombez_helmet_damage]:body_kombez_damage,head_helmet_damage

hit_fraction = 0

 

[armor_helmet_damage]:body_armor_damage,head_helmet_damage

hit_fraction = 0

 

[exo_helmet_damage]:body_exo_damage,head_helmet_damage

hit_fraction = 0

 

[zombied_damage]

hit_fraction = 0.1

 

bip01_pelvis = 1.0, 0.5

bip01_spine = 1.0, 0.5

bip01_spine1 = 1.0, 0.5

bip01_spine2 = 1.0, 0.5

bip01_neck = 1.0, 0.2

bip01_head = 1.0, 0.2

eyelid_1 = 1.0, 0.2

eye_left = 1.0, 0.2

eye_right = 1.0, 0.2

jaw_1 = 1.0, 0.2

 

bip01_l_clavicle = 1.0, 0.5

bip01_l_upperarm = 1.0, 0.5

bip01_l_forearm = 1.0, 0.5

bip01_l_hand = 1.0, 0.5

 

bip01_r_clavicle = 1.0, 0.5

bip01_r_upperarm = 1.0, 0.5

bip01_r_forearm = 1.0, 0.5

bip01_r_hand = 1.0, 0.5

 

bip01_l_thigh = 1.0, 0.5

bip01_l_calf = 1.0, 0.5

bip01_l_foot = 1.0, 0.5

bip01_l_toe0 = 1.0, 0.5

bip01_r_thigh = 1.0, 0.5

bip01_r_calf = 1.0, 0.5

bip01_r_foot = 1.0, 0.5

bip01_r_toe0 = 1.0, 0.5

 

 

 

;***************************************************************

; TEST SECTIONS

;***************************************************************

 

[test_damage]

default = 1.0, 0

hit_fraction = 0.2

 

bip01_pelvis = 1.0, 2

bip01_spine = 1.0, 2

bip01_spine1 = 1.0, 2

bip01_spine2 = 1.0, 2

bip01_neck = 1.0, 2

bip01_head = 1.0, 2

eyelid_1 = 1.0, 2

eye_left = 1.0, 2

eye_right = 1.0, 2

jaw_1 = 1.0, 2

 

bip01_l_clavicle = 1.0, 2

bip01_l_upperarm = 1.0, 2

bip01_l_forearm = 1.0, 2

bip01_l_hand = 1.0, 2

 

bip01_r_clavicle = 1.0, 2

bip01_r_upperarm = 1.0, 2

bip01_r_forearm = 1.0, 2

bip01_r_hand = 1.0, 2

 

bip01_l_thigh = 1.0, 2

bip01_l_calf = 1.0, 2

bip01_l_foot = 1.0, 2

bip01_l_toe0 = 1.0, 2

bip01_r_thigh = 1.0, 2

bip01_r_calf = 1.0, 2

bip01_r_foot = 1.0, 2

bip01_r_toe0 = 1.0, 2

 

 

Возможно всё, ну или почти всё.

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


Ссылка на сообщение

TREWKO, ты хинт хочешь нанести obj, а наносишь npc, 12 строка должна быть такой:

obj:hit (h)

внимательней, товарищ.

Возможно всё, ну или почти всё.

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


Ссылка на сообщение
StreJloK, я Notepad++ прекрасно менял, все работало, не вылетало, по-моему, можно утилитами bardaka перегнать в формат понятный SDK и там изменить путь.
Возможно всё, ну или почти всё.

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


Ссылка на сообщение

Gonarh, можно перебрать все гейм вертексы на локации и найти ближайший, вот так можно получить положение гейм вертекса:

game_graph():vertex(a):game_point()

А вообще посмотри скрипт динамических аномалий из AMK мода, там они как-рас определяли гейм вертекс из левел вертекса

Изменено пользователем 8push5
Возможно всё, ну или почти всё.

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


Ссылка на сообщение

biskot, молодец, аж в трех темах спросил.

Что значит:

искажённое отображение иконок

и что ты хочешь поправить?

Возможно всё, ну или почти всё.

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


Ссылка на сообщение
biskot, теперь картина прояснилась, можно конечно поджать все иконки, но вряд-ли они влезут, скинь мне ui_icon_equipment.dds, я посмотрю, и скажу диагноз.
Возможно всё, ну или почти всё.

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


Ссылка на сообщение

biskot, залить на какое-нибудь хранилище картинок типа радикал и вставить привью.

 

Вариант номер рас: перегнать в жпг, ну как прошлый раз,

вариант номер два: залить на файл-обменник.

Изменено пользователем 8push5
Возможно всё, ну или почти всё.

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


Ссылка на сообщение
biskot, да 8 мегабайт много, dds разрешением 2048*1024 весит 2. Либо ты сказал нам неправильное разрешение, либо файл косячный.
Возможно всё, ну или почти всё.

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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