HLFX.Ru Forum Страницы (264): « Первая ... « 136 137 138 139 [140] 141 142 143 144 » ... Последняя »
Показать все 3960 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)


Отправлено Ku2zoff 15-02-2020 в 14:42:

FreeSlave самый лучший вариант - модифицировать пушабли кодом из моего тутора, и грузить отдельными bsp. Растягивать транзишен на всю карту плохое решение. Либо, просто не заводи глобалнейм. Не дай игроку возможности утащить пушаблю на первую карту, вот и всё.

Добавлено 15-02-2020 в 21:42:

Попробуй расположить пушаблю подальше от чейнджлевела, чтобы она не попадала в его PVS, кстати.


Отправлено FreeSlave 15-02-2020 в 15:21:

Ku2zoff, так она вроде ж и не переходит как раз потому, что не попадает.

Попробовал грузить отдельным bsp - вроде нормально работает.

__________________
I'm on github
I'm on opendesktop.org


Отправлено Дядя Миша 15-02-2020 в 15:43:

Цитата:
Ku2zoff писал:
Растягивать транзишен на всю карту плохое решение

в таком случае транзишен вообще не надо ставить.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Flash 15-02-2020 в 16:55:

Либо костылём, через маппинг, дабы нельзя было бы перетащить объект. Вряд ли сеттинг предполагает поле конфискации народного имущества.

__________________
Tiger! Tiger! burning bright
In the forests of the night,
What immortal hand or eye
Could frame thy fearful symmetry?


Отправлено Crystallize 18-02-2020 в 10:57:

C++ Source Code:
1
//-----------------------------------------------------------------------------
2
// Unserialize static prop model dictionary
3
//-----------------------------------------------------------------------------
4
void CVradStaticPropMgr::UnserializeModelDict( CUtlBuffer& buf )
5
{
6
  int count = buf.GetInt();
7
 
8
  while ( --count >= 0 )
9
  {
10
    StaticPropDictLump_t lump;//this was in loop
11
    buf.Get( &lump, sizeof(StaticPropDictLump_t) );
12
    CreateCollisionModel( lump.m_Name );
13
    propDict[count][128] = lump.m_Name ;
14
 
15
    printf( "UMD inloop dict %i %i %s\n", count, *propDict[count][128], propDict[count][128] );
16
  }
17
 
18
  printf( "loop over\n" );
19
  int i=0;
20
  while ( propDict[i][128] )
21
  {
22
    printf( "UMD dict %i %i %s\n",		 i,		 *propDict[i][128], propDict[i][128] );
23
    i++;
24
  }
25
 
26
}

Count меняется, но указатель на propDict[count][128] не меняется, я вообще хз. В первом цикле значения propDict разные, во втором-одинаковые. propDict объявлен глобально, но когда я из другого cpp пытаюсь его читать, там как минимум половина строк повреждены.


Отправлено nemyax 18-02-2020 в 11:32:

Цитата:
Crystallize писал:
propDict[count][128]

Это чего за массив массивов такой?


Отправлено Дядя Миша 18-02-2020 в 13:50:

Цитата:
Crystallize писал:
указатель на propDict[count][128] не меняется

а как ты берёшь указатель?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено nemyax 18-02-2020 в 14:07:

Тут 129-му элементу (count+1)-ного по счёту массива присваивается указатель на чяр, судя по коду. Какой длины эти массивы, если у тебя повреждаются строки?
Может, имелось в виду strcpy(propDict[count], lump.m_Name);?


Отправлено Дядя Миша 18-02-2020 в 15:33:

nemyax это стрингтабля

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 18-02-2020 в 15:46:

Цитата:
Дядя Миша писал:
а как ты берёшь указатель?

ну вон видишь в printf просто * приписываю к стрингтабле. Сейчас попробовал вывести без звездочки, как %x. Теперь больше похоже на пойнтер (12f64c) но он всё равно всегда одинаковый.

Цитата:
nemyax писал:
Тут 129-му элементу (count+1)-ного по счёту массива присваивается указатель на чяр, судя по коду. Какой длины эти массивы, если у тебя повреждаются строки?
Может, имелось в виду strcpy(propDict[count], lump.m_Name);?

Нет никакого 129-го элемента. 128 символов на строку, а count это счётчик более старшего порядка, он перечисляет строки.

Я пробовал всякие strcpy, Q_strcpy, memcpy, Q_memcpy, все приводят к тому что он валится с ошибкой. Только присваивание работает.


Отправлено nemyax 18-02-2020 в 15:59:

Дядя Миша
То есть char propDict[numStrings][128];?

Цитата:
Crystallize писал:
Нет никакого 129-го элемента. 128 символов на строку

Ну так а зачем ты в него пишешь тогда? Ещё и не тот тип.
Цитата:
propDict[count][128] = lump.m_Name ;

Вот тут ты присваиваешь нечто сразу за границей массива propDict[count]. Зачем там вообще индекс 128? Понятно, что строки у тебя будут битые.


Отправлено Crystallize 18-02-2020 в 16:07:

А, я пишу в 128 элемент строки и тут же попадаю в следущую строку?


Отправлено nemyax 18-02-2020 в 16:09:

Цитата:
Crystallize писал:
Я не понимаю почему ты считаешь что я выхожу за границы массива

[128] — это у тебя что? При длине массива в 128.


Отправлено Crystallize 18-02-2020 в 16:14:

Спасибо. Я просто решил что ему нужно каждый раз указывать полную размерность.


Отправлено nemyax 18-02-2020 в 16:16:

Цитата:
Crystallize писал:
Только присваивание работает.

Присваивание не работает. Ты записываешь указатель на память, которая протухает и идёт по рукам, как только ты ретурнулся из записывающей функции. Если ты хочешь записать в глобальную табличку строку, чтобы она там осталась, тебе нужен какой-нибудь эквивалент стркпю.


Временная зона GMT. Текущее время 04:33. Страницы (264): « Первая ... « 136 137 138 139 [140] 141 142 143 144 » ... Последняя »
Показать все 3960 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024