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

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


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

Приветствую всех! :)

Подскажите пожалуйста.

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

Явным примером может явиться старый граммофон: сунули в рюкзак, пошли на блокпост, выкинули его там и лежит на дороге, поёт да крутит пластинку, пока вы там разбирайтесь с военными :).

В общем модель не проблема, анимация тоже ну и звук понятно, а вот остальное? Вопрос: что прописать в конфиге или в скрипет или ещё где? Подскажите пожалуйста, заранее спасибо :) !

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

ЯДиск папка с крутым схроном!

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

starter

Попробуй через bind_stalker реализавать. в on_item_drop (при выкидывании предмета) и on_item_take (при взятии соответственно) пропиши то, что нужно будет (проигрывание музыки и её отключение).

Жизнью в России довольны две категории людей: те, кто не в курсе и те, кто в доле.
Ссылка на комментарий
Starter, анимацию делаем в 3d редакторе (кости анимируем). Далее Export Motion и называем idle (обязательно). Идем в SDK (AE), загружаем наш объект, в свитке Motions выбираем Append, находим нашу анимацию idle. Потом экспортируем в формат OGF. Должно работать. Про остальные настройки в SDK не забываем (кости и шейдеры). Изменено пользователем Desertir

ТЧ 1.0004. SAP и Trans mod

github

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

Насчёт моделирования, анимирования, костисоздания, шейдерправление, не нужно говорить, собаку на них уже съел :). Меня интересует где прописываются анимации? Попробую создать idle как говоришь.

---

Спасибо большое, всё получилось со звуком разберусь позже.

Спасибо KOKC и Desertir :) !

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

ЯДиск папка с крутым схроном!

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

Люди, подскажите какой конфиг и какая строчка отвечает за метки на радаре(миникарте)? Скажите пожалуста, весь инет облазил, не нашел.

 

Удали файл gamedata\config\ui\map_spots_relations.xml

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

Опять я со своими конфигами...

Вопрос такой: в каком файле находятся конфиги для настройки положения имени, иконки и информации ГГ / НПС ? Во всех файлах конфигов (торговля, диалог, обыск) просто вставляется такой код:

<left_character_icon x="14" y="530" width="200" height="218">       ---------  ГГ
        <texture>ui_charinfo_left</texture>
        <texture_offset x="-11" y="0"/>
    </left_character_icon>
    
    <right_character_icon x="816" y="530" width="200" height="218">     --------- НПС
        <texture>ui_charinfo_right</texture>
    </right_character_icon>

но этот код берет текстуру (подложку) и устанавливает положение всего окна в целом, а вот настройку отдельных элементов не могу найти...

4919019.th.jpg

 

Кто знает или уже сталкивался, помогите, пожалуйста.

 

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

Два вопроса:

1) Как сделать возможность использовать предмет( хочу, чтобы при использований флешек, актору выдавались деньги)

 

2) Как привязать к использованию функцию выдачи денег

Создаю глобальный мод с новыми локациямЭ

Ссылка на комментарий
strelok200, Вот тебе два в одном : смотри здесь. Это в ЗП делалось, но в ТЧ по-моему также должно быть. Изменено пользователем Серый Волк
Ссылка на комментарий

У предмета должен быть класс чего-нибудь съедаемого. Спальник в АМК, например, на классе антирада сделан - у него и надпись по ПКМ в инвентаре "использовать", а не всякое "съесть"/"выпить".

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

strelok200, по скрипту: можно сделать так

function use_flash(obj)

local obj_sect = obj:section()

if obj_sect == 'ваш предмет' then

db.actor:give_money(количество денег)

end

end

 

 

И всё это в use_object(obj). Про него читай.

  ▲

▲ ▲

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

Хочу труп спаунить через скрипт, но он активно не спаунится, вот что прописывал

[shapai_tryp]:stalker

$spawn = "respawn\shapai_tryp"

character_profile = shapai_tryp

spec_rank = regular

community = dolg

<!-- Shapai -->

<character id="shapai_tryp">

<class>shpai</class>

</character>

<!----************************** Shapai ********************************--->

<specific_character id="shapai_tryp" team_default = "1">

<name>Чапай</name>

<icon>ui_npc_u_stalker_bandit_3</icon>

<bio>esc_wolf_bio</bio>

 

<class>esc_otbrosi_1</class>

<community>dolg</community>

<terrain_sect>stalker_terrain</terrain_sect>

 

<rank>800</rank>

<reputation>-60</reputation>

<money min="600" max="2000" infinitive="1"/>

 

<snd_config>characters_voice\human_01\monolith\</snd_config>

<crouch_type>-1</crouch_type>

 

<visual>actors\bandit\stalker_bandit_3</visual>

<supplies>

[spawn] \n

wpn_groza \n

ammo_9x39_pab9 \n

</supplies>

#include "gameplay\character_criticals_3.xml"

#include "gameplay\character_food.xml"

</specific_character>

<action>dap_werit.spawn_shapai_tryp</action>

function spawn_shapai_tryp()

local obj=amk.spawn_item("shapai_tryp",vector():set(139.58,3.41,336.45),444960,232)

if (_g.IsStalker(obj)) then

local tbl = amk.read_stalker_params(obj)

tbl.sid = 48802

tbl.health = 0

tbl.updhealth = 0

amk.write_stalker_params(tbl, obj)

end

В чем проблема ?

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

FANAT.gif

Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения'

Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация

Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации

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

FANAT,

Поделюсь своими скромными знаниями:

В ТТ2 трупы спавнятся "на ура" и лежат там, где им положено, до конца игры.

function spawn_trupak()

local obj = alife():create("esc_trupak",vector():set(-168.462,0.055,17.821),1737,1392)

local tbl = amk.read_stalker_params(obj)

tbl.sid = 30117

tbl.health = 0

tbl.updhealth = 0

amk.write_stalker_params(tbl, obj)

end

 

Чтобы труп не убирался уборщиком трупов, надо его прописать в исключения в определённом файле.

В ТТ2 это файл: sak_off_corpses.script - ценное наследие от мастера Сяка (NLC 5).

 

function off_corpses()

for a=1,65535,1 do

local obj = alife():object(a)

if obj then

local posobj = obj.position

local actorpos = db.actor:position()

local npc_name = obj:name()

if ((IsStalker(obj) or IsMonster(obj)) and not obj:alive() and npc_name~="bloodsucker_strong_ucen" and npc_name~="electro_chimera_ucen" and npc_name~="friend_krovosos" and npc_name~="gigant_strong_ucen" and npc_name~="super_krovosos" and npc_name~="dolg_dead1" and npc_name~="dolg_dead2" and npc_name~="dolg_dead3" and npc_name~="spy_aes_dead1" and npc_name~="spy_aes_dead2" and npc_name~="esc_stalker_corpse" and npc_name~="esc_stalker_corps1" and npc_name~="esc_stalker_corps1_0000" and npc_name~="esc_stalker_corps1_0001" and npc_name~="esc_stalker" and npc_name~="esc_trup_bratka" and npc_name~="esc_stalker_0000" and npc_name~="esc_trup_scene" and npc_name~="aes_stalker_0000" and npc_name~="aes_stalker" and npc_name~="dar_stalker0001" and npc_name~="dar_stalker" and npc_name~="gar_stalker_0000" and npc_name~="gar_stalker_0001" and npc_name~="gar_stalker_0002" and npc_name~="gar_stalker_0003" and npc_name~="gar_stalker_0004" and npc_name~="gar_stalker_0005" and npc_name~="agr_stalker_0000" and npc_name~="agr_stalker_0001" and npc_name~="agr_stalker_0002" and npc_name~="agr_stalker_0003" and npc_name~="agr_stalker_0004" and npc_name~="agr_stalker_0005" and npc_name~="val_sos_dead1" and npc_name~="val_sos_dead2" and npc_name~="val_escort_bandit1_dead" and npc_name~="val_escort_bandit2_dead" and npc_name~="val_lager_bandit16_0000" and npc_name~="bar_stalker" and npc_name~="rostok_stalker" and npc_name~="rostok_dead_stalker_01" and npc_name~="rostok_dead_stalker_03" and npc_name~="rostok_dead_stalker_02" and npc_name~="bar_ecolog_crush_dead" and npc_name~="bar_ecolog_crush_dead_0000" and npc_name~="bar_ecolog_crush_dead_0001" and npc_name~="rostok_dead_stalker_0000" and npc_name~="bar_ecolog_crush_dead_0002" and npc_name~="bar_ecolog_crush_dead_0003" and npc_name~="yan_stalker" and npc_name~="mil_stalker_0004" and npc_name~="mil_stalker_0001" and npc_name~="mil_stalker_0002" and npc_name~="mil_stalker" and npc_name~="mil_stalker_0000" and npc_name~="rad_stalker_dead" and npc_name~="rad_stalker_0005_dead" and npc_name~="rad_stalker_0006_dead_scientist" and npc_name~="rad_stalker_0007_dead_scientist" and npc_name~="rad_stalker_0008_dead_scientist" and npc_name~="kat_bandit_0006" and npc_name~="esc_trupak" and npc_name~="esc_trupak1" and npc_name~="esc_trupak2" and npc_name~="esc_kuvalda" and npc_name~="esc_minitrup1" and npc_name~="esc_minitrup2" and npc_name~="esc_minitrup3" and npc_name~="esc_minitrup4" and npc_name~="esc_minitrup5" and npc_name~="esc_minitrup6" and npc_name~="fab_trup" and npc_name~="nebo_prov") then

if posobj:distance_to(actorpos) > dist_to_corpses then

if obj.m_story_id > 30210 then

table.insert(tabl_corpses, obj)

else

table.insert(tabl_corpses_9510, obj)

end

end

end

 

Данный скриптовый файл прописывается в бинд_сталкер.скрипт

Вот сюда:

local corspoff = true

function actor_binder:update(delta)

if corspoff then

sak_off_corpses.off_corpses()

corspoff = false

end

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

В народной солянке такой скрипт есть, но там нету этой фукции, не нашел эти исключения..

Это вот это штоли, по иду идет запрет?

function off_corpses()
--[[for id,obj in pairs(db.creatures) do
if IsStalker(obj) then
local sobj=alife():object(obj:id())
local cnt = sobj:object_count()

--local outfitMain = sobj:get_current_outfit()
end
end]]--

    meceniy_outfit.is_pleer = false
--    player_ogg.start_pleer_post_save()

    local actor_level = game_graph():vertex(db.actor:game_vertex_id()):level_id()
    local actorpos = db.actor:position()
    for a=1,65534,1 do
    local obj = alife():object(a)
        if obj then
        local obj_level = game_graph():vertex(obj.m_game_vertex_id):level_id()
            local posobj = obj.position
            local obj_name = obj:name()
            if IsStalker(obj) and obj_level~=actor_level then
                if not obj:alive() then 
                    if obj.m_story_id~=48800 and
                        obj.m_story_id~=48801 and
                        obj.m_story_id~=48802 and
                        obj.m_story_id~=9660 and
                        --проверка секции сталкера, если не в исключениях - в таблицу и бум удалять
--  obj_protected(obj_name,tabl_corps_keep,"exactly")==false and
                        protected_items.obj_is_protected(obj,"tabl_corps_keep","exactly")==false and
                        posobj:distance_to(actorpos) > dist_to_corpses then 
                            if obj.m_story_id > 9510 then 
                                table.insert(tabl_corpses, obj)
                            else
                                table.insert(tabl_corpses_9510, obj)
                            end

 

 

Добавлено через 33 мин.:

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

[1712]=[final_arhara]
[1713]=[borm_lima_freedom1]
[1714]=[borm_lima_freedom2]
[1715]=[borm_lima_freedom3]
[1716]=[borm_lima_freedom4]
[1717]=[borm_lima_freedom5]
[1718]=[borm_lima_freedom6]
[1719]=[borm_lima_freedom7]
[1720]=[sim_borm_lima_veteran]
[1721]=[sim_borm_lima_master]
[1722]=[x16_zombied_0004]
[1723]=[ekolog_zombied_zheltuy]
[1724]=[ekolog_zombi_zelen]
[1725]=[level_prefix_stalker_zombied]
[1726]=[chernomor_zombi1]
[1727]=[aem_military_1_1]
[1728]=[aem_military_2_1]
[1729]=[aem_military_2_2]
[1730]=[aem_military_3_1]
[1731]=[aem_military_3_2]
[1732]=[aem_military_3_3]
[1733]=[aem_killer_1_1]
[1734]=[aem_killer_2_1]
[1735]=[aem_killer_2_2]
[1736]=[aem_killer_3_1]
[1737]=[aem_killer_3_2]
[1738]=[aem_killer_3_3]
[1739]=[aem_freedom]
[1740]=[aem_freedom_1_1]
[1741]=[aem_freedom_2_1]
[1742]=[aem_freedom_2_2]
[1743]=[aem_freedom_3_1]
[1744]=[aem_freedom_3_2]
[1745]=[aem_freedom_3_3]
[1746]=[aem_dolg]
[1747]=[aem_dolg_1_1]
[1748]=[aem_dolg_2_1]
[1749]=[aem_dolg_2_2]
[1750]=[aem_dolg_3_1]
[1751]=[aem_dolg_3_2]
[1752]=[aem_dolg_3_3]
[1753]=[aem_neutral]
[1754]=[aem_neutral_1_1]
[1755]=[aem_neutral_2_1]
[1756]=[aem_neutral_2_2]
[1757]=[aem_neutral_3_1]
[1758]=[aem_neutral_3_2]
[1759]=[aem_neutral_3_3]
[1760]=[aem_bandit_1_1]
[1761]=[aem_bandit_2_1]
[1762]=[aem_bandit_2_2]
[1763]=[aem_bandit_3_1]
[1764]=[aem_bandit_3_2]
[1765]=[aem_bandit_3_3]
[1766]=[aem_admin]
[1767]=[aem_arny]

FATAL ERROR

[error]Expression    : no_assert
[error]Function      : CXML_IdToIndex<class CCharacterInfo>::GetById
[error]File          : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h
[error]Line          : 112
[error]Description   : item not found, id
[error]Arguments     : shapai_tryp


stack trace:

 

Блин, почему если прописать в amk_npc_profile.xml то вылетает, а если в npc_profile.xml то нет..?

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

FANAT.gif

Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения'

Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация

Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации

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

FANAT,

Возьми файл целиком. Почисть от ненужного тебе. Вставь в свою сборку, пропиши его вызов в бинд_сталкер.скрипт и используй (хочешь, переименуй его как тебе угодно):

http://ifolder.ru/24611691

У тебя этот файл: amk_npc_profile.xml зарегистрирован в system.ltx?

Изменено пользователем antreg
Ссылка на комментарий
antreg, В скриптах не силен, поэтому не знаю, что именно удалять.. а в той фукции которую привел, нельзя прописать исключение?? Изменено пользователем FANAT

FANAT.gif

Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения'

Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация

Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации

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

такой вылет из-за чего ?

[error]Expression    : !m_DefaultCharacters.empty()
[error]Function      : CSE_ALifeTraderAbstract::specific_character
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_Objects_ALife_Monsters.cpp
[error]Line          : 333
[error]Description   : no default specific character set for class
[error]Arguments     : shapai

stack trace:

 

FANAT.gif

Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения'

Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация

Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации

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

FANAT,

Ну тут всё просто:

У тебя в профиле нового НПС, в файле: character_desc_amk.xml

прописан класс: <class>esc_otbrosi_1</class>

А в файле: amk_npc_profile.xml

ты почему то пишешь:

<character id="shapai_tryp">

<class>shpai</class>

</character>

А должно совпадать.

Исправь где-нибудь (неважно где), но чтобы совпадало.

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

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

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

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

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

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

Войти

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

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

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