Size: a a a

2020 July 23

С

Сэр MSTR in Unreal Engine
а еще студия грозит мне что у меня осталось 2 дня триала 😭😭😭
источник

N

NoCodeBugsFree in Unreal Engine
Сэр MSTR
а еще студия грозит мне что у меня осталось 2 дня триала 😭😭😭
поставь комьюнити и залогинься в ней
источник

С

Сэр MSTR in Unreal Engine
В общем если я правильно понял.. В классе AController есть переменная указатель PlayerState. и объект по этому адресу будет идентичен объекту APawn::GetPlayerState
источник

С

Сэр MSTR in Unreal Engine
NoCodeBugsFree
поставь комьюнити и залогинься в ней
что значит поставить комьюнити? 🙈🙈🙈🙈 я не шарю
источник

N

NoCodeBugsFree in Unreal Engine
источник

С

Сэр MSTR in Unreal Engine
ааа, версию комьюнити
пасиба)
у меня вот эта версия автоматом скачалась, когда я с языковыми пакетами химичил
ну как автоматом.. я скорее всего тогда что-то нажал, а потом автоматом скачалось))))
источник

С

Сэр MSTR in Unreal Engine
пойду я спать в общем, я хакнул систему без делеев, на этом и остановимся сегодня 😂
источник

С

Сэр MSTR in Unreal Engine
спокойной ночи всем)
источник

N

NoCodeBugsFree in Unreal Engine
Сэр MSTR
ааа, версию комьюнити
пасиба)
у меня вот эта версия автоматом скачалась, когда я с языковыми пакетами химичил
ну как автоматом.. я скорее всего тогда что-то нажал, а потом автоматом скачалось))))
значит залогинься в ней.
источник

С

Сэр MSTR in Unreal Engine
NoCodeBugsFree
значит залогинься в ней.
принял)
источник

N

NoCodeBugsFree in Unreal Engine
Сэр MSTR
В общем если я правильно понял.. В классе AController есть переменная указатель PlayerState. и объект по этому адресу будет идентичен объекту APawn::GetPlayerState
если что-то надо из PS в пешке достать , то для этого есть две функции (в пешке).

/** server-side PlayerState setup */
virtual void PossessedBy(class AController* C) override;

/** client-side PlayerState setup */
virtual void OnRep_PlayerState() override;
источник

С

Сэр MSTR in Unreal Engine
NoCodeBugsFree
если что-то надо из PS в пешке достать , то для этого есть две функции (в пешке).

/** server-side PlayerState setup */
virtual void PossessedBy(class AController* C) override;

/** client-side PlayerState setup */
virtual void OnRep_PlayerState() override;
А я про это помню, ты мне предлагал эту функцию сделать, когда я еще в блупринтах работал 😂😂😂, но я тогда не умел)

Но мне это не подойдет в случае с установкой меша, данные в плеерстейте у меня не реплицируются и третий игрок не получит правильный меш для чужого игрока

Поэтому меш и фейс я решил сделать через две реплицируемых int в чарактере, сервер установит их, функции OnRep_MyInt сделают загрузку из дататейбла

Не знаю, может быть спорное решение 🤷‍♂
источник

С

Сэр MSTR in Unreal Engine
Можно, конечно сделать в плеерстейте отдельные две переменные и прореплицировать их, может быть так и имеет смысл сделать

Тем не менее когда я пытаюсь достать APawn::GetPlayerState на стороне сервера на бегин плей, то указатель в этот момент не валидный

Пришлось вот так через овнера заколхозить, но так может быть даже лучше, потому что APawn::GetPlayerState() нужно будет всегда кастить потом, а а так у меня уже есть указатели нужного типа для стейта и контроллера
источник

С

Сэр MSTR in Unreal Engine
В общем да, колхоз какой то, но вроде все логично
источник

N

NoCodeBugsFree in Unreal Engine
Сэр MSTR
А я про это помню, ты мне предлагал эту функцию сделать, когда я еще в блупринтах работал 😂😂😂, но я тогда не умел)

Но мне это не подойдет в случае с установкой меша, данные в плеерстейте у меня не реплицируются и третий игрок не получит правильный меш для чужого игрока

Поэтому меш и фейс я решил сделать через две реплицируемых int в чарактере, сервер установит их, функции OnRep_MyInt сделают загрузку из дататейбла

Не знаю, может быть спорное решение 🤷‍♂
"данные в плеерстейте у меня не реплицируются и третий игрок не получит правильный меш для чужого игрока" ну раз другие клиенты должны видеть, то нужно реплицировать
источник

N

NoCodeBugsFree in Unreal Engine
Сэр MSTR
Можно, конечно сделать в плеерстейте отдельные две переменные и прореплицировать их, может быть так и имеет смысл сделать

Тем не менее когда я пытаюсь достать APawn::GetPlayerState на стороне сервера на бегин плей, то указатель в этот момент не валидный

Пришлось вот так через овнера заколхозить, но так может быть даже лучше, потому что APawn::GetPlayerState() нужно будет всегда кастить потом, а а так у меня уже есть указатели нужного типа для стейта и контроллера
"APawn::GetPlayerState на стороне сервера на бегин плей, то указатель в этот момент не валидный" а ты не доставай там. а доставай чуть попозже. там . где я тебе скинул )
источник

С

Сэр MSTR in Unreal Engine
NoCodeBugsFree
"APawn::GetPlayerState на стороне сервера на бегин плей, то указатель в этот момент не валидный" а ты не доставай там. а доставай чуть попозже. там . где я тебе скинул )
А на PossessedBy GetPlayerState валидный уже будет?
источник

N

NoCodeBugsFree in Unreal Engine
Сэр MSTR
А на PossessedBy GetPlayerState валидный уже будет?
а ты попробуй )
источник

С

Сэр MSTR in Unreal Engine
NoCodeBugsFree
а ты попробуй )
Окей) ну чую валидный будет 😅
Да, я наверное завтра так и переделаю, пасиба

Визуальные данные все таки придется прореплицировать, а то их не получат те игроки, к которым игрок побежит за пару километров после спавна персонажа
источник

N

NoCodeBugsFree in Unreal Engine
Сэр MSTR
Окей) ну чую валидный будет 😅
Да, я наверное завтра так и переделаю, пасиба

Визуальные данные все таки придется прореплицировать, а то их не получат те игроки, к которым игрок побежит за пару километров после спавна персонажа
у тебя по диздоку должно быть видно, что реплицируется, а что нет, а что реплицируется с особым условием. Например, ты реплицируешь клиенту свой Health, и этот Health должен знать только owner(допустим, ты его  используешь для своего HUD.) Тогда ты используешь DOREPLIFETIME_CONDITION.
DOREPLIFETIME_CONDITION(AKermitCharacter, Health, COND_OwnerOnly);
источник