Редактирование движка X-Ray - Страница 117 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

Редактирование движка X-Ray


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

@HellRatz, попробуйте сами тогда - берёте IDA и пройдитесь поиском - не думаю что текстовые функции будет сложно найти

Да ладно вам. Тут и hex'oм занопить можно. Тем более, строку нужную вы знаете.
  • Спасибо 1
  • Согласен 1
  • Полезно 2

Что возвращает в ЗП функция класса CInventoryItem BaseSlot()?

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

@Kondr48, эээ, разве не слот который прописан в конфиге итема? А вообще глянь где эта ф-ия используется, я чего-то давно не открывал сорцы и не помню уже что она делает.

Ну судя по всему нет, потому что slot_id возвращает другая функция. А эта вызывается при перемещении в слот\рюкзак и т. п., потому мне и не понятно. Мб слот в котором предмет в данный момент находится. Но хотелось бы знать точно.

@Kondr48, не нет а да - это реально базовый слот из конфига, потому что вот он :

​u16 BaseSlot ()  const {return m_ItemCurrPlace.base_slot_id;}

а вот как раз "текущий" слот итема:

u16 CurrSlot ()  const {return m_ItemCurrPlace.slot_id;} 

ну и само место ( рюкзак\пояс\всё остальное):

u16 CurrPlace ()  const {return m_ItemCurrPlace.type;}

Или вот ещё выжимка кода из Inventory.cpp:

if(pIItem->CurrPlace()==eItemPlaceUndefined)
{
if( !pIItem->RuckDefault() )
{
if( CanPutInSlot(pIItem, pIItem->BaseSlot()) )
{
result = Slot(pIItem->BaseSlot(), pIItem, bNotActivate,strict_placement); VERIFY(result);
}else
if (CanPutInBelt(pIItem))
{
result = Belt(pIItem,strict_placement); VERIFY(result);
}else
{
result = Ruck(pIItem,strict_placement); VERIFY(result);
}
}else
{
result = Ruck(pIItem,strict_placement); VERIFY(result);
}
}

это вот так работает подбор с земли или с трупа

 

Изменено пользователем mortan
  • Спасибо 1
  • Полезно 2

Еще есть баг что итем с трупа перемещается не в тот слот который ты его тянешь а в тот который прописан в конфиге - это связано с тем что запрос на перенос итема в слот не выполняется - вместо него выполняется "подбор" предмета с земли) Если решите делать систему с рюкзаками или разгрузами то придётся править этот баг)
P.S. я по-моему уже писал про него? :huh:

  • Полезно 1

Привет. Кто-нибудь работал с мультиплеером в ЧН-ЗП? Не могу разобраться как добавить rpoints для своего режима. Я так понимаю, что даже не обязательно редактировать исходники ЛевелЭдитора, надо лишь в секции объекта в spawn.part указать нужный game_type

 

 

[object_3]
        clsid                            = 6
        co_flags                         = 3
        game_type                        = 24 //вот это вот
        name                             = ah_cta_green_0001
        position                         = 11.912968, 1.000000, -10.582791
        rotation                         = -0.000000, -0.209984, -0.000000
        rp_profile                       =
        rp_type                          = 0
        scale                            = 1.000000, 1.000000, 1.000000
        team_id                          = 1
        type                             = 0
        version                          = 23 

 

 

Но я понятия не имею какой game_type присваивается моему режиму и где это можно посмотреть.

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

@drksnc, А что если поставить какой нибудь объект соответствующий твоему режиму и посмотреть какой game_type у него, а потом вставить это значение в нужный тебе объект.

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

Всё таки пришлось дописывать свой режим в исходниках Эдитора. Если кому-то нужно будет добавить только rpoint'ы, то нужно всего лишь добавить чекбокс для своего режима в xrEProps по аналогии со стандартными, там буквально 4 файла. Сам level_editor трогать не надо.

  • Полезно 1

@HESH, Так они и так там работают.Тебе видимо погоду править надо.

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

Никто не делал фикс вылета звука на ТЧ? Ну чтобы как с текстурами было, путь до отсутствующего звука в лог, а вместо звука какая-нибудь пустышка типа no_sound грузилась. Если кто делал, поделитесь, или если кто сделает, думаю многим будет полезно  :)

  • Согласен 1

Делал, но не проверял.

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

 

krop, ну собственно проверить-то не проблема, можете например сюда запостить, если есть возможность \ желание, ну или мне в ЛС, я проверю.

 

xrSound\SoundRender_Source_loader.cpp


 

void CSoundRender_Source::load(LPCSTR name)
{
 string_path   fn,N;
 strcpy    (N,name);
 strlwr    (N);
 if(strext(N))  *strext(N) = 0;

 fname    = N;

 strconcat   (sizeof(fn),fn,N,".ogg");
 if(!FS.exist("$level$",fn)) FS.update_path (fn,"$game_sounds$",fn);

 if (!FS.exist(fn))

 {
   Msg("! Can't find sound '%s.ogg'",N);
   FS.update_path (fn,"$game_sounds$","$no_sound.ogg");
 }

   LoadWave   (fn);
   SoundRender->cache.cat_create (CAT, dwBytesTotal);
}

 


 

Изменено пользователем Zagolski
  • Спасибо 1
  • Полезно 1

xrSound\SoundRender_Source_loader.cpp

Так же делал. :)

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

Кто-нибудь знает, alSourcePlay(source) да и вообще другие методы от openal32 работают в Сталкере? Или надо юзать надстройки XRAY? Просто вроде всё по документации делаю, но не получается. Вот и думаю - у меня руки кривые или оно так и должно быть.

Можно сделать так как я сделал в видео? Чтобы переход между локациями был без подтверждения и плавный, а также чтоб перс пару шагов сделал после того, как пришел на новую локацию (типо кат сцена). Это создало бы ощущение, что он тока пришел.

 

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

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

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

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

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

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

Войти

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

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

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