HLFX.Ru Forum
Показать все 4 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- XashXT (https://hlfx.ru/forum/forumdisplay.php?forumid=30)
-- Непонятное поведение параметра static (https://hlfx.ru/forum/showthread.php?threadid=6054)


Отправлено Crystallize 03-12-2023 в 12:57:

Непонятное поведение параметра static

У меня код начинается так:
(Это не новая функция, просто вставлено в конце CBasePlayer PreThink.)

code:
const unsigned int OFFRAIL=0, JUMPON=1, GRIND=2, JUMPOFF=3; int IDEA_END=1, IDEA_POSTEND=2; static int state; static float fPolarizedSpeed; if (pev->flags & FL_ONGROUND) { state = OFFRAIL; fPolarizedSpeed = 0; ALERT( at_console, "JUMP OFF: touched the ground\n" ); return; } pev->gravity = true; edict_t *pStartEdict = INDEXENT( 1 ); CBaseEntity *pEndTmp; unsigned int idStart, idEnd, idPostend, idPrestart; Vector NEAREST = g_vecZero; Vector up; UTIL_MakeVectorsPrivate( pev->angles, NULL, NULL, up ); Vector PLAYERFEET = pev->origin -(32+8)*up;


Прикол в том что если вторая строчка не static, то у игрока ломается прыжок с места и падение с обрыва(оно замедляется). Бегает нормально.

То же самое происходит если я свой код выделю в отдельную функцию и вызову её в самом конце этого PreThink.


Отправлено Дядя Миша 03-12-2023 в 14:03:

static это не параметр, а модификатор.

Превращает любую переменную в статичную и единственную, даже если она была объявлена внутри функции. Если вне функции, то особого смысла так делать нет, т.к. любая переменная, объявленная вне функции и не член класса, уже и так статик.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 03-12-2023 в 17:28:

Дядя Миша Дело в том что я эту переменную даже не читаю и не пишу. Но почему-то она ломает мне код просто тем что она есть.


Отправлено Дядя Миша 03-12-2023 в 18:09:

Наверное где-то порча памяти.

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 10:37.
Показать все 4 сообщений этой темы на одной странице

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