Перейти к содержимому



Фотография

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


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2325

#2321   krop

krop
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 18.10.2014
  • Пользователь: 37436

Отправлено 24 03 2017 - 18:36

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

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

#2322   Kondr48

Kondr48
  • Группа: Кураторы тем
  • Сообщений: 1 101
  • Регистрация: 28.08.2011
  • Пользователь: 23500
  

Отправлено 26 03 2017 - 00:56

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


Сообщение отредактировал Kondr48: 26 03 2017 - 00:56


#2323   mortan

mortan
  • Группа: Проверенные
  • Сообщений: 109
  • Регистрация: 10.07.2016
  • Пользователь: 42072

Отправлено 26 03 2017 - 13:44

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



#2324   Kondr48

Kondr48
  • Группа: Кураторы тем
  • Сообщений: 1 101
  • Регистрация: 28.08.2011
  • Пользователь: 23500
  

Отправлено 26 03 2017 - 15:16

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



#2325   mortan

mortan
  • Группа: Проверенные
  • Сообщений: 109
  • Регистрация: 10.07.2016
  • Пользователь: 42072

Отправлено 26 03 2017 - 15:34

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: 26 03 2017 - 15:55


#2326   mortan

mortan
  • Группа: Проверенные
  • Сообщений: 109
  • Регистрация: 10.07.2016
  • Пользователь: 42072

Отправлено Вчера, 00:58

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




Количество пользователей, читающих эту тему: 1

1 пользователей, 0 гостей


    SoP
2007-2017 © AMK TEAM