Skip to content

Commit 9e1b9ce

Browse files
committed
Merge branch '1.x' of https://github.com/kbengine/kbengine_ue4_demo into 1.x
2 parents 5b9baf7 + fff4615 commit 9e1b9ce

File tree

4 files changed

+22
-14
lines changed

4 files changed

+22
-14
lines changed

Plugins/kbengine_ue4_plugins/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ KBE-Plugin fire-out events(KBE => UE4):
209209

210210
Event-datas:
211211
uint16: retcode
212+
bytes: serverdatas
212213
http://kbengine.github.io/docs/configuration/server_errors.html
213214

214215
onLoginBaseappFailed

Plugins/kbengine_ue4_plugins/Source/KBEnginePlugins/Engine/KBEngine.cpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ KBEngineApp::KBEngineApp() :
3939
serverScriptVersion_(TEXT("")),
4040
clientScriptVersion_(TEXT("")),
4141
serverProtocolMD5_(TEXT("13AF19B0A958067AEB2BC4ED1CD3B46F")),
42-
serverEntitydefMD5_(TEXT("2B445B443EFC9427000733CD39EB2700")),
42+
serverEntitydefMD5_(TEXT("D9BE27DA40153A58EFB4835189190B5D")),
4343
entity_uuid_(0),
4444
entity_id_(0),
4545
entity_type_(TEXT("")),
@@ -81,7 +81,7 @@ KBEngineApp::KBEngineApp(KBEngineArgs* pArgs):
8181
serverScriptVersion_(TEXT("")),
8282
clientScriptVersion_(TEXT("")),
8383
serverProtocolMD5_(TEXT("13AF19B0A958067AEB2BC4ED1CD3B46F")),
84-
serverEntitydefMD5_(TEXT("2B445B443EFC9427000733CD39EB2700")),
84+
serverEntitydefMD5_(TEXT("D9BE27DA40153A58EFB4835189190B5D")),
8585
entity_uuid_(0),
8686
entity_id_(0),
8787
entity_type_(TEXT("")),
@@ -727,6 +727,7 @@ void KBEngineApp::Client_onLoginFailed(MemoryStream& stream)
727727
UKBEventData_onLoginFailed* pEventData = NewObject<UKBEventData_onLoginFailed>();
728728
pEventData->failedcode = failedcode;
729729
pEventData->errorStr = serverErr(failedcode);
730+
pEventData->serverdatas = serverdatas_;
730731
KBENGINE_EVENT_FIRE(KBEventTypes::onLoginFailed, pEventData);
731732
}
732733

@@ -2320,19 +2321,19 @@ void KBEngineApp::_updateVolatileData(ENTITY_ID entityID, float x, float y, floa
23202321
if (roll != KBE_FLT_MAX)
23212322
{
23222323
changeDirection = true;
2323-
entity.direction.X = int82angle((int8)roll, false);
2324+
entity.direction.X = isOptimized ? int82angle((int8)roll, false) : roll;
23242325
}
23252326

23262327
if (pitch != KBE_FLT_MAX)
23272328
{
23282329
changeDirection = true;
2329-
entity.direction.Y = int82angle((int8)pitch, false);
2330+
entity.direction.Y = isOptimized ? int82angle((int8)pitch, false) : pitch;
23302331
}
23312332

23322333
if (yaw != KBE_FLT_MAX)
23332334
{
23342335
changeDirection = true;
2335-
entity.direction.Z = int82angle((int8)yaw, false);
2336+
entity.direction.Z = isOptimized ? int82angle((int8)yaw, false) : yaw;
23362337
}
23372338

23382339
bool done = false;
@@ -2346,10 +2347,10 @@ void KBEngineApp::_updateVolatileData(ENTITY_ID entityID, float x, float y, floa
23462347
done = true;
23472348
}
23482349

2349-
bool positionChanged = x != KBE_FLT_MAX || y != KBE_FLT_MAX || z != KBE_FLT_MAX;
2350-
if (x == KBE_FLT_MAX) x = 0.0f;
2351-
if (y == KBE_FLT_MAX) y = 0.0f;
2352-
if (z == KBE_FLT_MAX) z = 0.0f;
2350+
bool positionChanged = x != KBE_FLT_MAX || y != KBE_FLT_MAX || z != KBE_FLT_MAX;
2351+
if (x == KBE_FLT_MAX) x = isOptimized ? 0.0f : entity.position.X;
2352+
if (y == KBE_FLT_MAX) y = isOptimized ? 0.0f : entity.position.Y;
2353+
if (z == KBE_FLT_MAX) z = isOptimized ? 0.0f : entity.position.Z;
23532354

23542355
if (positionChanged)
23552356
{

Plugins/kbengine_ue4_plugins/Source/KBEnginePlugins/Engine/KBEvent.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,9 @@ class KBENGINEPLUGINS_API UKBEventData_onLoginFailed : public UKBEventData
171171

172172
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = KBEngine)
173173
FString errorStr;
174+
175+
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = KBEngine)
176+
TArray<uint8> serverdatas;
174177
};
175178

176179
UCLASS(Blueprintable, BlueprintType)

Source/kbengine_ue4_demo/GameModeWorld.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Fill out your copyright notice in the Description page of Project Settings.
1+
// Fill out your copyright notice in the Description page of Project Settings.
22

33
#include "GameModeWorld.h"
44
#include "kbengine_ue4_demo.h"
@@ -19,7 +19,7 @@ void AGameModeWorld::installEvents()
1919
Super::installEvents();
2020

2121
// in world
22-
// 这个事件触发时我们需要切换地图到游戏世界地图
22+
// 这个事件触发时我们需要切换地图到游戏世界地图
2323
KBENGINE_REGISTER_EVENT(KBEngine::KBEventTypes::addSpaceGeometryMapping, addSpaceGeometryMapping);
2424
KBENGINE_REGISTER_EVENT(KBEngine::KBEventTypes::onEnterWorld, onEnterWorld);
2525
KBENGINE_REGISTER_EVENT(KBEngine::KBEventTypes::onLeaveWorld, onLeaveWorld);
@@ -57,8 +57,8 @@ void AGameModeWorld::BeginPlay()
5757

5858
check(KBEngine::KBEngineApp::getSingleton().isInitialized());
5959

60-
// 如果已经有被创建的实体,说明他们在上一个场景未来得及跳转之前已经通知创建了,但由于我们的world场景并没有来得及创建,这部分实体进入世界事件已经漏掉
61-
// 此时我们需要再次触发一次onEnterWorld,让表现层能够在游戏场景中创建出所有的实体
60+
// 如果已经有被创建的实体,说明他们在上一个场景未来得及跳转之前已经通知创建了,但由于我们的world场景并没有来得及创建,这部分实体进入世界事件已经漏掉
61+
// 此时我们需要再次触发一次onEnterWorld,让表现层能够在游戏场景中创建出所有的实体
6262
KBEngine::KBEngineApp::ENTITIES_MAP& entities = KBEngine::KBEngineApp::getSingleton().entities();
6363
for (auto& item : entities)
6464
{
@@ -80,7 +80,7 @@ void AGameModeWorld::BeginPlay()
8080

8181
void AGameModeWorld::reqRelive(int reliveType)
8282
{
83-
// 由于玩家的Avatar实体注册了该事件, 如果此时Avatar实体存在那么必然会执行到该事件
83+
// 由于玩家的Avatar实体注册了该事件, 如果此时Avatar实体存在那么必然会执行到该事件
8484
UKBEventData_reqRelive* pEventData = NewObject<UKBEventData_reqRelive>();
8585
pEventData->reliveType = reliveType;
8686
KBENGINE_EVENT_FIRE("relive", pEventData);
@@ -115,6 +115,7 @@ void AGameModeWorld::onEnterWorld_Implementation(const UKBEventData* pEventData)
115115
const UKBEventData_onEnterWorld* pData = Cast<UKBEventData_onEnterWorld>(pEventData);
116116

117117
FRotator Rot(0.f, 0.f, 0.f);
118+
KBDir2UE4Dir(Rot, pData->direction);
118119
FTransform SpawnTransform(Rot, pData->position);
119120

120121
if (pData->isPlayer)
@@ -157,6 +158,7 @@ void AGameModeWorld::onEnterSpace_Implementation(const UKBEventData* pEventData)
157158
const UKBEventData_onEnterSpace* pData = Cast<UKBEventData_onEnterSpace>(pEventData);
158159

159160
FRotator Rot(0.f, 0.f, 0.f);
161+
KBDir2UE4Dir(Rot, pData->direction);
160162
FTransform SpawnTransform(Rot, pData->position);
161163

162164
if (pData->isPlayer)
@@ -280,6 +282,7 @@ void AGameModeWorld::set_modelID_Implementation(const UKBEventData* pEventData)
280282
{
281283
const UKBEventData_set_modelID* pData = Cast<UKBEventData_set_modelID>(pEventData);
282284
AGameEntity* pAGameEntity = findGameEntity(pData->entityID);
285+
283286
if (pAGameEntity)
284287
pAGameEntity->setModelID(pData->modelID);
285288
}

0 commit comments

Comments
 (0)