Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
op_16
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
template admin
op_16
Commits
bbc33eb8
Commit
bbc33eb8
authored
Apr 02, 2022
by
范雪寒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 替换华为云联机服务
parent
a9f795ff
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
2267 additions
and
177 deletions
+2267
-177
op_16.meta
assets/op_16.meta
+15
-1
op_16.ts
assets/op_16/scene/op_16.ts
+14
-13
NetworkHelper.ts
assets/op_16/script/NetworkHelper.ts
+76
-161
gameobesdk-1.1.4.300.meta
assets/op_16/script/gameobesdk-1.1.4.300.meta
+12
-0
GOBE.d.ts
assets/op_16/script/gameobesdk-1.1.4.300/GOBE.d.ts
+895
-0
GOBE.d.ts.meta
assets/op_16/script/gameobesdk-1.1.4.300/GOBE.d.ts.meta
+5
-0
GOBE.js
assets/op_16/script/gameobesdk-1.1.4.300/GOBE.js
+1218
-0
GOBE.js.meta
assets/op_16/script/gameobesdk-1.1.4.300/GOBE.js.meta
+9
-0
package.json
assets/op_16/script/gameobesdk-1.1.4.300/package.json
+7
-0
package.json.meta
assets/op_16/script/gameobesdk-1.1.4.300/package.json.meta
+5
-0
sdk.js
assets/op_16/script/gameobesdk-1.1.4.300/sdk.js
+0
-0
sdk.js.meta
assets/op_16/script/gameobesdk-1.1.4.300/sdk.js.meta
+9
-0
util.ts
assets/op_16/script/util.ts
+2
-2
No files found.
assets/op_16.meta
View file @
bbc33eb8
{"ver":"1.1.2","uuid":"c35bb2f6-f24a-4850-ae44-643f2fdc7541","isBundle":false,"bundleName":"","priority":1,"compressionType":{},"optimizeHotUpdate":{},"inlineSpriteFrames":{},"isRemoteBundle":{"ios":false,"android":false},"subMetas":{}}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "c35bb2f6-f24a-4850-ae44-643f2fdc7541",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {
"ios": false,
"android": false
},
"subMetas": {}
}
\ No newline at end of file
assets/op_16/scene/op_16.ts
View file @
bbc33eb8
...
...
@@ -30,7 +30,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
this
.
_audioResList
.
push
({
url
:
this
.
data
.
waitingTurn
});
}
addPreloadAnima
()
{}
addPreloadAnima
()
{
}
onLoadEnd
()
{
// TODO 加载完成后的逻辑写在这里, 下面的代码仅供参考
...
...
@@ -54,17 +54,11 @@ export default class SceneComponent extends MyCocosSceneComponent {
async
initData
()
{
this
.
networkHelper
=
new
NetworkHelper
();
this
.
initNetworkListener
();
do
{
this
.
playerId
=
await
this
.
networkHelper
.
init
(
"
op_16
"
,
2
);
if
(
this
.
playerId
===
null
)
{
console
.
log
(
"
onDestroy
"
);
this
.
networkHelper
.
onDestroy
();
}
console
.
log
(
"
this.playerId =
"
+
this
.
playerId
);
}
while
(
this
.
playerId
===
null
);
this
.
playerId
=
await
this
.
networkHelper
.
init
(
"
op_16
"
,
2
);
const
room
=
this
.
networkHelper
.
room
;
if
(
this
.
playerId
==
room
.
roomInfo
.
owner
)
{
if
(
this
.
playerId
==
room
.
ownerId
)
{
console
.
log
(
"
房主
"
);
this
.
isRoomOwner
=
true
;
this
.
server
=
new
GameServer
(
2
,
this
.
networkHelper
);
...
...
@@ -642,9 +636,16 @@ export default class SceneComponent extends MyCocosSceneComponent {
this
.
networkHelper
.
leaveRoom
();
this
.
log
(
"
playerOffLine
"
+
JSON
.
stringify
(
event
));
});
this
.
networkHelper
.
on
(
"
gameStart
"
,
(
event
)
=>
{});
this
.
networkHelper
.
on
(
"
frameEvent
"
,
(
event
)
=>
{
event
.
data
.
frame
.
items
.
forEach
(
async
(
item
)
=>
{
this
.
networkHelper
.
on
(
"
gameStart
"
,
(
event
)
=>
{
});
this
.
networkHelper
.
on
(
"
frameEvent
"
,
(
frameData
)
=>
{
const
dataList
=
[];
if
(
frameData
instanceof
Array
)
{
dataList
.
push
(...
frameData
);
}
else
{
dataList
.
push
(
frameData
);
}
dataList
.
forEach
(
async
(
itemStr
)
=>
{
const
item
=
JSON
.
parse
(
itemStr
);
if
(
this
.
server
)
{
this
.
server
.
onFrameEvent
(
item
.
data
);
}
...
...
assets/op_16/script/NetworkHelper.ts
View file @
bbc33eb8
import
{
Base64
}
from
"
js-base64
"
;
export
class
NetworkHelper
{
_eventListeners
:
any
=
{};
ctor
()
{
}
...
...
@@ -10,10 +8,11 @@ export class NetworkHelper {
async
init
(
roomType
:
string
,
maxPlayers
:
number
)
{
try
{
this
.
initRoom
();
await
this
.
initListener
();
await
this
.
initRoom
();
//
await this.initListener();
return
await
this
.
joinRoom
(
roomType
,
maxPlayers
);
}
catch
(
e
)
{
console
.
log
(
e
);
// return null;
}
}
...
...
@@ -29,10 +28,6 @@ export class NetworkHelper {
await
this
.
leaveRoom
();
}
getRoomInfo
()
{
return
this
.
room
.
roomInfo
;
}
listenerInited
=
false
;
initListener
()
{
...
...
@@ -111,162 +106,94 @@ export class NetworkHelper {
});
}
room
:
MGOBE
.
Room
;
initRoom
()
{
this
.
room
=
new
MGOBE
.
Room
();
MGOBE
.
Listener
.
add
(
this
.
room
);
this
.
room
.
onJoinRoom
=
this
.
onJoinRoom
.
bind
(
this
);
this
.
room
.
onLeaveRoom
=
this
.
onLeaveRoom
.
bind
(
this
);
this
.
room
.
onRecvFromClient
=
this
.
onRecvFromClient
.
bind
(
this
);
this
.
room
.
onChangePlayerNetworkState
=
this
.
onChangePlayerNetworkState
.
bind
(
this
);
this
.
room
.
onRecvFrame
=
this
.
onRecvFrame
.
bind
(
this
);
this
.
room
.
onStartFrameSync
=
this
.
onStartFrameSync
.
bind
(
this
);
this
.
room
.
onStopFrameSync
=
this
.
onStopFrameSync
.
bind
(
this
);
this
.
room
.
onRecvFromGameSvr
=
this
.
onRecvFromGameSvr
.
bind
(
this
);
console
.
log
(
"
this.room =
"
+
JSON
.
stringify
(
this
.
room
.
roomInfo
));
room
:
GOBE
.
Room
;
client
:
GOBE
.
Client
;
async
initRoom
()
{
this
.
client
=
new
window
.
GOBE
.
Client
({
clientId
:
'
857970243220294656
'
,
// 客户端ID
clientSecret
:
'
489BFFB5D22BC39FDA0B1878F01F38C8049EBF68C856E25E63E7403A723A140D
'
,
// 客户端密钥
appId
:
'
243650030995634151
'
,
// 应用的ID
openId
:
'
op_16
'
+
Math
.
random
(),
// 玩家ID
});
console
.
log
(
this
.
client
);
console
.
log
(
'
喵喵喵1
'
);
let
playerId
;
this
.
client
.
init
().
then
(()
=>
{
// 初始化成功
playerId
=
this
.
client
.
playerId
;
}).
catch
((
e
)
=>
{
// 初始化失败
console
.
log
(
'
初始化失败
'
)
console
.
log
(
e
)
});
console
.
log
(
'
喵喵喵2
'
);
}
player
:
any
;
joinRoom
(
roomType
:
string
,
maxPlayers
:
number
,
customData
:
string
=
""
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
const
playerName
=
"
Tom
"
+
Math
.
random
();
const
playerInfo
=
{
name
:
playerName
,
customPlayerStatus
:
0
,
customProfile
:
customData
,
};
const
matchRoomPara
=
{
playerInfo
,
maxPlayers
:
maxPlayers
,
roomType
:
roomType
,
};
this
.
room
.
matchRoom
(
matchRoomPara
,
async
(
event
)
=>
{
// console.log(JSON.stringify(event))
if
(
event
.
code
!==
0
)
{
this
.
log
(
"
匹配失败
"
);
reject
(
event
);
return
;
}
this
.
log
(
"
匹配成功:
"
+
event
.
data
.
roomInfo
.
id
);
const
player
=
event
.
data
.
roomInfo
.
playerList
.
find
(
(
player
)
=>
player
.
name
==
playerName
);
this
.
player
=
player
;
if
(
this
.
checkRoomOwnerOffLine
())
{
if
(
this
.
_eventListeners
[
"
playerOffLine
"
])
{
this
.
_eventListeners
[
"
playerOffLine
"
](
event
);
}
this
.
log
(
"
房主掉线了
"
);
resolve
(
null
);
return
;
}
resolve
(
player
.
id
);
});
});
async
joinRoom
(
roomType
:
string
,
maxPlayers
:
number
)
{
const
matchRoomConfig
=
{
matchParams
:
{
matchRule
:
''
,
matchRule2
:
''
,
},
roomType
:
roomType
,
customRoomProperties
:
''
,
maxPlayers
:
maxPlayers
,
};
const
playerConfig
=
{
customPlayerStatus
:
0
,
customPlayerProperties
:
''
};
console
.
log
(
'
汪汪汪1
'
)
this
.
room
=
await
this
.
client
.
matchRoom
(
matchRoomConfig
,
playerConfig
);
this
.
player
=
this
.
room
.
player
;
this
.
room
.
onJoin
(
this
.
onJoinRoom
.
bind
(
this
));
this
.
room
.
onLeave
(
this
.
onLeaveRoom
.
bind
(
this
));
this
.
room
.
onStartFrameSync
(
this
.
onStartFrameSync
.
bind
(
this
));
this
.
room
.
onStopFrameSync
(
this
.
onStopFrameSync
.
bind
(
this
));
this
.
room
.
onRecvFrame
(
this
.
onRecvFrame
.
bind
(
this
));
this
.
room
.
onDisconnect
(
this
.
onDisconnect
.
bind
(
this
));
this
.
room
.
onDismiss
(
this
.
onDisconnect
.
bind
(
this
));
console
.
log
(
'
汪汪汪2
'
)
}
leaveRoom
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
room
.
leaveRoom
({},
(
event
)
=>
{
console
.
log
(
JSON
.
stringify
(
event
));
if
(
event
.
code
===
0
)
{
console
.
log
(
"
退房成功
"
+
this
.
room
.
roomInfo
.
id
);
// this.room.initRoom();
resolve
(
null
);
}
else
{
console
.
log
(
"
退房失败
"
);
}
});
});
async
leaveRoom
()
{
await
this
.
room
.
leave
();
console
.
log
(
"
退房成功
"
);
}
dismissRoom
()
{
const
roomInfo
=
this
.
room
.
roomInfo
;
const
player
=
roomInfo
.
playerList
.
find
(
(
player
)
=>
player
.
name
==
this
.
player
.
name
);
if
(
roomInfo
.
owner
==
player
.
id
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
room
.
dismissRoom
({},
(
res
)
=>
{
console
.
log
(
"
房间已解散
"
);
});
});
async
dismissRoom
()
{
if
(
this
.
room
.
ownerId
==
this
.
player
.
id
)
{
await
this
.
client
.
dismissRoom
();
console
.
log
(
"
房间已解散
"
);
}
}
closeRoom
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
room
.
changeRoom
({
isForbidJoin
:
true
},
(
event
)
=>
{
console
.
log
(
"
关门
"
);
// console.log(JSON.stringify(event))
resolve
(
null
);
});
});
}
sendMessage
()
{
const
sendToClientPara
=
{
recvType
:
MGOBE
.
ENUM
.
RecvType
.
ROOM_ALL
,
recvPlayerList
:
[],
msg
:
"
hello
"
+
Math
.
random
(),
};
this
.
room
.
sendToClient
(
sendToClientPara
,
(
event
)
=>
console
.
log
(
event
));
}
startFrameSync
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
room
.
startFrameSync
({},
(
event
)
=>
{
console
.
log
(
JSON
.
stringify
(
event
));
if
(
event
.
code
===
0
)
{
cc
.
log
(
"
开始帧同步成功,请到控制台查看具体帧同步信息
"
);
resolve
(
null
);
}
else
{
reject
();
}
});
});
return
;
// return new Promise((resolve, reject) => {
// this.room.changeRoom({ isForbidJoin: true }, (event) => {
// console.log("关门");
// // console.log(JSON.stringify(event))
// resolve(null);
// });
// });
}
stopFrameSync
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
!
this
.
room
)
{
resolve
(
null
);
return
;
}
this
.
room
.
stopFrameSync
({},
(
event
)
=>
{
console
.
log
(
JSON
.
stringify
(
event
));
if
(
event
.
code
===
0
)
{
console
.
log
(
"
停止帧同步成功
"
);
resolve
(
null
);
}
else
{
console
.
log
(
"
停止帧同步失败
"
);
reject
(
event
.
code
);
}
});
});
async
startFrameSync
()
{
await
this
.
room
.
startFrameSync
();
cc
.
log
(
"
开始帧同步成功,请到控制台查看具体帧同步信息
"
);
}
sendToServer
()
{
const
sendToGameServerPara
=
{
data
:
{
cmd
:
1
,
},
};
this
.
room
.
sendToGameSvr
(
sendToGameServerPara
,
(
event
)
=>
console
.
log
(
event
)
);
async
stopFrameSync
()
{
await
this
.
room
.
stopFrameSync
();
console
.
log
(
"
停止帧同步成功
"
);
}
sendFrame
(
data
:
any
)
{
console
.
log
(
'
sendFrame:
'
+
JSON
.
stringify
(
data
));
this
.
room
.
sendFrame
({
data
},
(
err
)
=>
{
if
(
err
.
code
!=
0
)
{
console
.
log
(
"
err
"
,
err
);
}
});
this
.
room
.
sendFrame
(
JSON
.
stringify
(
data
));
}
onJoinRoom
(
event
)
{
...
...
@@ -284,22 +211,10 @@ export class NetworkHelper {
}
onRecvFromClient
()
{
}
checkRoomOwnerOffLine
()
{
return
this
.
room
.
roomInfo
.
playerList
.
some
(
player
=>
{
return
(
player
.
commonNetworkState
==
MGOBE
.
types
.
NetworkState
.
COMMON_OFFLINE
||
player
.
relayNetworkState
==
MGOBE
.
types
.
NetworkState
.
RELAY_OFFLINE
);
})
}
onChangePlayerNetworkState
(
event
)
{
this
.
log
(
"
玩家网络变化:
"
+
JSON
.
stringify
(
event
));
if
(
this
.
checkRoomOwnerOffLine
())
{
if
(
this
.
_eventListeners
[
"
playerOffLine
"
])
{
this
.
_eventListeners
[
"
playerOffLine
"
](
event
);
}
this
.
log
(
"
房主掉线了
"
);
onDisconnect
(
event
)
{
this
.
log
(
"
玩家掉线了:
"
+
JSON
.
stringify
(
event
));
if
(
this
.
_eventListeners
[
"
playerOffLine
"
])
{
this
.
_eventListeners
[
"
playerOffLine
"
](
event
);
}
}
...
...
assets/op_16/script/gameobesdk-1.1.4.300.meta
0 → 100644
View file @
bbc33eb8
{
"ver": "1.1.2",
"uuid": "4e259305-46b1-43d9-8d93-25fea822e0d9",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
assets/op_16/script/gameobesdk-1.1.4.300/GOBE.d.ts
0 → 100644
View file @
bbc33eb8
/**
* 可匹配房间列表信息
* @param rooms - 单次请求的房间列表
* @param count - 所有房间的总数
* @param offset - 偏移量,作为下一次查询请求的入参
* @param hasNext - 是否有下一页 0:无 1:有
* @public
*/
export
declare
interface
AvailableRoomsInfo
{
rooms
:
RoomInfo
[];
count
:
number
;
offset
:
string
|
number
;
hasNext
:
0
|
1
;
}
declare
class
Base
{
protected
get
state
():
StateCode
;
protected
get
serverEventCode
():
ServerEventCode
;
protected
get
accessToken
():
string
;
protected
get
serviceToken
():
string
;
get
appId
():
string
;
get
clientId
():
string
;
get
clientSecret
():
string
;
get
roomId
():
string
;
get
groupId
():
string
;
get
openId
():
string
;
get
playerId
():
string
;
protected
constructor
();
protected
setState
(
state
:
StateCode
):
void
;
protected
setServerEvent
(
code
:
ServerEventCode
,
param
?:
string
):
void
;
protected
setAccessToken
(
token
:
string
):
void
;
protected
setServiceToken
(
token
:
string
):
void
;
protected
setAppId
(
id
:
string
):
void
;
protected
setOpenId
(
id
:
string
):
void
;
protected
setClientId
(
id
:
string
):
void
;
protected
setClientSecret
(
secret
:
string
):
void
;
protected
setRoomId
(
id
:
string
):
void
;
protected
setGroupId
(
id
:
string
):
void
;
protected
setPlayerId
(
id
:
string
):
void
;
protected
onStateChange
(
latter
:
StateCode
,
former
:
StateCode
):
void
;
protected
onServerEvent
(
latter
:
ServerEvent
,
former
:
ServerEvent
):
void
;
}
/**
* 客户端类
* @public
*/
export
declare
class
Client
extends
Base
{
private
_room
;
private
_group
;
private
_lastRoomId
;
private
_isMatching
;
private
_isCancelMatch
;
/**
* 获取对应房间实例
* @readonly
*/
get
room
():
Room
|
null
;
/**
* 获取对应队伍实例
* @readonly
*/
get
group
():
Group
|
null
;
/**
* 上次断线的房间 ID
* @readonly
*/
get
lastRoomId
():
string
;
/**
* 创建客户端
* @param config - 创建客户端参数
*/
constructor
(
config
:
ClientConfig
);
/**
* 初始化客户端
* @remarks 必须先初始化客户端,才能创建/加入/匹配房间
*/
init
():
Promise
<
void
>
;
/**
* 创建房间
* @remarks 创建成功也意味着加入了该房间
* @param roomConfig - 房间信息参数
* @param playerConfig - 玩家信息参数
*/
createRoom
(
roomConfig
:
CreateRoomConfig
,
playerConfig
?:
PlayerConfig
):
Promise
<
Room
>
;
/**
* 创建队伍
* @remarks 创建成功也意味着加入了该队伍
* @param groupConfig - 队伍信息参数
* @param playerConfig - 玩家信息参数
*/
createGroup
(
this
:
Client
,
groupConfig
:
CreateGroupConfig
,
playerConfig
?:
PlayerConfig
):
Promise
<
Group
>
;
/**
* 加入房间
* @param roomIdentity - 房间身份标识(房间Id或者房间Code)
* @param playerConfig - 玩家信息参数
*/
joinRoom
(
roomIdentity
:
string
,
playerConfig
?:
PlayerConfig
):
Promise
<
Room
>
;
/**
* 根据房间 ID 加入房间
* @param roomId - 房间 ID
* @param playerConfig - 玩家信息参数
*/
joinRoomById
(
roomId
:
string
,
playerConfig
?:
PlayerConfig
):
Promise
<
Room
>
;
/**
* 根据房间 roomCode 加入房间
* @param roomCode - 房间 code
* @param playerConfig - 玩家信息参数
*/
joinRoomByCode
(
roomCode
:
string
,
playerConfig
?:
PlayerConfig
):
Promise
<
Room
>
;
/**
* 重新加入房间
*/
reconnectRoom
(
playerConfig
?:
PlayerConfig
):
Promise
<
Room
>
;
/**
* 根据队伍ID加入队伍
* @param groupId - 队伍 ID
* @param playerConfig - 玩家信息参数
*/
joinGroup
(
groupId
:
string
,
playerConfig
?:
PlayerConfig
):
Promise
<
Group
>
;
/**
* 离开房间
*/
leaveRoom
():
Promise
<
Client
>
;
/**
* 解散房间
* @remarks 房主才能解散房间
*/
dismissRoom
():
Promise
<
Client
>
;
/**
* 离开队伍
*/
leaveGroup
():
Promise
<
Client
>
;
/**
* 解散队伍
* @remarks 队长才能解散队伍
*/
dismissGroup
():
Promise
<
Client
>
;
/**
* 删除队伍实例
* @remarks 队员收到队伍解散通知后清空本地队伍信息
*/
removeGroup
():
void
;
/**
* 获取可匹配房间列表
*/
getAvailableRooms
(
getAvailableRoomsConfig
:
GetAvailableRoomsConfig
):
Promise
<
AvailableRoomsInfo
>
;
/**
* 房间匹配
* @param matchRoomConfig -房间匹配参数
* @param playerConfig - 玩家信息参数
*/
matchRoom
(
matchRoomConfig
:
MatchRoomConfig
,
playerConfig
?:
PlayerConfig
):
Promise
<
Room
>
;
/**
* 在线匹配
* @param matchPlayerConfig -在线匹配参数
* @param playerConfig - 玩家信息参数
* @remark 轮询时间间隔2s
*/
matchPlayer
(
matchPlayerConfig
:
MatchPlayerConfig
,
playerConfig
?:
PlayerConfig
):
Promise
<
Room
>
;
/**
* 组队匹配
* @param matchGroupConfig -组队匹配参数
* @param playerConfig - 玩家信息参数
* @remark 轮询时间间隔2s
*/
matchGroup
(
matchGroupConfig
:
MatchGroupConfig
,
playerConfig
?:
PlayerConfig
):
Promise
<
Room
>
;
/**
* 取消匹配
* @remark 组队匹配模式中,当前只有队长可以取消匹配
* 该方法会修改_isCancelMatch状态 在matchPolling中请求真实的取消匹配接口并通过匹配接口返回取消结果
*/
cancelMatch
():
void
;
protected
onStateChange
(
state
:
StateCode
,
former
:
StateCode
):
void
;
private
checkInit
;
private
checkCreateOrJoin
;
private
checkGroupCreateOrJoin
;
private
checkLeaveOrdismiss
;
private
checkGroupLeaveOrdismiss
;
private
checkCreateRoomConfig
;
private
checkCreateGroupConfig
;
private
checkJoinRoomConfig
;
private
checkMatching
;
/**
* 请求匹配接口
*/
private
requestMatch
;
/**
* 请求取消匹配接口
*/
private
requestCancelMatch
;
/**
* @remark 匹配轮询方法 包含取消匹配
*/
private
matchPolling
;
}
/**
* 客户端类构造方法参数
* @param clientId - 客户端ID
* @param clientSecret - 客户端密钥
* @param appId - 应用ID
* @param openId - 玩家ID
* @public
*/
export
declare
interface
ClientConfig
{
clientId
:
string
;
clientSecret
:
string
;
appId
:
string
;
openId
:
string
;
}
/**
* 创建队伍方法参数
* @param maxPlayers - 队伍最大支持人数
* @param groupName - 队伍名称
* @param customGroupProperties - 队伍自定义属性
* @param isLock - 是否禁止加入 0:不禁止 1:禁止 默认0
* @param isPersistent - 是否持久化 0:不持久化 1:持久化 默认0
* @public
*/
export
declare
interface
CreateGroupConfig
{
maxPlayers
:
number
;
groupName
?:
string
;
customGroupProperties
?:
string
;
isLock
?:
number
;
isPersistent
?:
number
;
}
/**
* 创建房间方法参数
* @param maxPlayers - 房间最大支持人数
* @param isPrivate - 是否私有
* @param roomType - 房间类型
* @param roomName - 房间名称
* @param matchParams - 房间匹配属性
* @param customRoomProperties - 房间自定义属性
* @public
*/
export
declare
interface
CreateRoomConfig
{
maxPlayers
:
number
;
isPrivate
?:
number
;
roomType
?:
string
;
roomName
?:
string
;
matchParams
?:
Record
<
string
,
string
>
;
customRoomProperties
?:
string
;
}
/**
* 错误码
* @public
*/
export
declare
const
enum
ErrorCode
{
COMMON_OK
=
0
,
COMMON_ERR
=
-
1
,
COMMON_INVALID_TOKEN
=
2
,
COMMON_REQUEST_PARAM_ERR
=
1001
,
DATABASE_OPERATION_ERR
=
1002
,
DCS_OPERATION_ERR
=
1003
,
REPEAT_RUQUEST
=
4003
,
TOKEN_AUTH_FAILED
=
100003
,
SERVICE_NOT_ENABLED
=
100004
,
PLAYER_INFO_MIASSING
=
100005
,
PROJECT_NOT_EXIST
=
100008
,
IP_AREA_ERR
=
101001
,
PLAYER_AND_ROOM_MISMATCH
=
101004
,
ROOM_INFO_NOT_EXIST
=
101005
,
CANNOT_DESTORY_ROOM_IN_GAME
=
101006
,
PLAYER_NOT_IN_CURRENT_ROOM
=
101007
,
ENTERED_ROOM_OR_NOT_EXIST
=
101008
,
PLAYERS_EXCEEDS_ROOM_MAX
=
101009
,
PLAYER_INFO_NOT_EXIST
=
101010
,
OWNER_AND_ROOM_MISMATCH
=
101011
,
MAXPLAYER_TOO_LARGE
=
101015
,
ROOM_NOT_BEGIN_FRAME_SYNC
=
102003
,
PLAYER_NOT_IN_ROOM
=
102005
,
ROOM_NOT_EXIST
=
102008
,
PRASE_MESSAGE_FAILED
=
102009
,
UNSUPPORTED_MESSAGE_TYPE
=
102013
,
REQUEST_FRAME_NUMBER_OVERRUN
=
102014
,
LOGIN_BUSY
=
103001
,
LOGIN_AUTH_FAIL
=
103002
,
CLIENT_TRAFFIC_CONTROL
=
103003
,
NOT_LOGGED_IN
=
103004
,
EXCEED_MAX_CONNECTIONSS
=
103006
,
ROOM_MATCH_FAILED
=
104001
,
ROOM_MATCHING
=
104002
,
ROOM_MATCH_TIMEOUT
=
104003
,
PLAYER_MATCH_FAILED
=
306001
,
PLAYER_MATCHING
=
306002
,
PLAYER_MATCH_TIMEOUT
=
306003
,
PLAYER_MATCH_CANCEL_NO_PERMISSION
=
306004
,
PLAYER_ID_NOT_CONSISTENT
=
306005
,
PLAYER_MATCH_CANCEL_WHEN_SUCCESS
=
306006
,
PLAYER_MATCH_GET_RULE_FAIL
=
306007
,
PLAYER_MATCH_ROOM_IS_NULL
=
306008
,
PLAYER_MATCH_CANCELED
=
306009
,
SDK_NOT_IN_GROUP
=
80001
,
SDK_GROUP_NAME_TOO_LONG
=
80002
,
SDK_NO_PERMISSION_UPDATE_GROUP
=
80003
,
SDK_IN_GROUP
=
80004
,
SDK_UNINIT
=
90001
,
SDK_NOT_IN_ROOM
=
90002
,
SDK_IN_ROOM
=
90003
,
SDK_NOT_ROOM_OWNER
=
90004
,
SDK_NOT_IN_FRAME_SYNC
=
90005
,
SDK_IN_FRAME_SYNC
=
90006
,
SDK_INVALID_ROOM_IDENTITY
=
90007
,
SDK_IN_MATCHING
=
90008
,
SDK_ROOM_NAME_TOO_LONG
=
10001
}
declare
class
EventEmitter
<
T
extends
(...
args
:
any
[])
=>
any
>
{
handlers
:
Array
<
T
>
;
on
(
handler
:
T
):
this
;
emit
(...
args
:
FunctionParam
<
T
>
):
void
;
off
(
handler
:
T
):
void
;
clear
():
void
;
}
/**
* 附加信息
* @public
*/
export
declare
interface
FrameExtInfo
{
seed
:
number
;
}
/**
* 帧数据信息
* @public
*/
export
declare
interface
FrameInfo
extends
FramePlayerInfo
{
data
:
string
[];
timestamp
:
number
;
}
/**
* 帧数据玩家信息
* @public
*/
export
declare
interface
FramePlayerInfo
{
playerId
:
string
;
}
declare
type
FunctionParam
<
T
>
=
T
extends
(...
args
:
infer
P
)
=>
any
?
P
:
never
;
/**
* 获取可匹配房间列表参数
* @param roomType - 房间类型
* @param offset - 偏移量,使用房间的createTime作为每次请求的标记,第一次请求时为0
* @param limit - 单次请求获取的房间数量,不选时服务端默认为20
* @public
*/
export
declare
interface
GetAvailableRoomsConfig
{
roomType
?:
string
;
offset
?:
number
|
string
;
limit
?:
number
;
}
/**
* 队伍类
* @public
*/
export
declare
class
Group
extends
Base
{
onJoin
:
{
(
this
:
any
,
cb
:
(
serverEvent
:
ServerEvent
)
=>
void
):
EventEmitter
<
(
serverEvent
:
ServerEvent
)
=>
void
>
;
emit
(
serverEvent
:
ServerEvent
):
void
;
off
(
cb
:
(
serverEvent
:
ServerEvent
)
=>
void
):
void
;
clear
():
void
;
};
onLeave
:
{
(
this
:
any
,
cb
:
(
serverEvent
:
ServerEvent
)
=>
void
):
EventEmitter
<
(
serverEvent
:
ServerEvent
)
=>
void
>
;
emit
(
serverEvent
:
ServerEvent
):
void
;
off
(
cb
:
(
serverEvent
:
ServerEvent
)
=>
void
):
void
;
clear
():
void
;
};
onDismiss
:
{
(
this
:
any
,
cb
:
(
serverEvent
:
ServerEvent
)
=>
void
):
EventEmitter
<
(
serverEvent
:
ServerEvent
)
=>
void
>
;
emit
(
serverEvent
:
ServerEvent
):
void
;
off
(
cb
:
(
serverEvent
:
ServerEvent
)
=>
void
):
void
;
clear
():
void
;
};
onUpdate
:
{
(
this
:
any
,
cb
:
(
serverEvent
:
ServerEvent
)
=>
void
):
EventEmitter
<
(
serverEvent
:
ServerEvent
)
=>
void
>
;
emit
(
serverEvent
:
ServerEvent
):
void
;
off
(
cb
:
(
serverEvent
:
ServerEvent
)
=>
void
):
void
;
clear
():
void
;
};
onMatchStart
:
{
(
this
:
any
,
cb
:
(
serverEvent
:
ServerEvent
)
=>
void
):
EventEmitter
<
(
serverEvent
:
ServerEvent
)
=>
void
>
;
emit
(
serverEvent
:
ServerEvent
):
void
;
off
(
cb
:
(
serverEvent
:
ServerEvent
)
=>
void
):
void
;
clear
():
void
;
};
onMatchComplete
:
{
(
this
:
any
,
cb
:
(
serverEvent
:
ServerEvent
,
room
?:
Room
|
undefined
)
=>
void
):
EventEmitter
<
(
serverEvent
:
ServerEvent
,
room
?:
Room
|
undefined
)
=>
void
>
;
emit
(
serverEvent
:
ServerEvent
,
room
?:
Room
|
undefined
):
void
;
off
(
cb
:
(
serverEvent
:
ServerEvent
,
room
?:
Room
|
undefined
)
=>
void
):
void
;
clear
():
void
;
};
private
config
;
private
_player
;
private
_client
;
/**
* 队伍 ID
*/
get
id
():
string
;
/**
* 队伍名称
*/
get
groupName
():
string
;
/**
* 队伍最大人数
*/
get
maxPlayers
():
number
;
/**
* 队长 ID
*/
get
ownerId
():
string
;
/**
* 队伍自定义属性
*/
get
customGroupProperties
():
string
;
/**
* 是否禁止加入 0:不禁止 1:禁止 默认0
*/
get
isLock
():
number
;
/**
* 是否持久化 0:不持久化 1:持久化 默认0
*/
get
isPersistent
():
number
;
/**
* 队伍玩家列表
*/
get
players
():
PlayerInfo
[];
/**
* 玩家自己
*/
get
player
():
Player
;
/**
* 队伍
* @param config - 创建客户端参数
*/
constructor
(
client
:
Client
,
config
:
GroupInfo
,
playerConfig
?:
PlayerConfig
);
/**
* 队伍信息查询
*/
query
():
Promise
<
Group
>
;
/**
* 离开队伍
*/
leave
():
Promise
<
void
>
;
/**
* 解散队伍
* @remarks 队长才能解散队伍
*/
dismiss
():
Promise
<
void
>
;
/**
* 更新队伍信息
* @remarks 队长才能更新队伍信息
* @param config - 更新队伍信息参数
*/
updateGroup
(
config
:
UpdateGroupConfig
):
Promise
<
void
>
;
private
checkUpdatePermission
;
protected
onServerEvent
(
serverEvent
:
ServerEvent
):
Promise
<
void
>
;
}
/**
* 队伍信息
* @param groupId - 队伍id
* @param groupName - 队伍名称
* @param maxPlayers - 最大玩家数
* @param ownerId - 队长ID
* @param customGroupProperties - 队伍自定义属性
* @param isLock - 是否禁止加入 0:不禁止 1:禁止 默认0
* @param isPersistent - 是否持久化 0:不持久化 1:持久化 默认0
* @param players - 队伍内玩家列表
* @public
*/
export
declare
interface
GroupInfo
{
groupId
:
string
;
groupName
:
string
;
maxPlayers
:
number
;
ownerId
:
string
;
customGroupProperties
:
string
;
isLock
:
number
;
isPersistent
:
number
;
players
:
PlayerInfo
[];
}
/**
* 组队匹配参数
* @param playerInfos - 带匹配规则的玩家信息列表
* @param matchCode - 匹配规则编号
*/
declare
interface
MatchGroupConfig
{
playerInfos
:
MatchPlayerInfoParam
[];
matchCode
:
string
;
}
/**
* 在线匹配参数
* @param playerInfo - 带匹配规则的玩家信息
* @param matchCode - 匹配规则编号
*/
declare
interface
MatchPlayerConfig
{
playerInfo
:
MatchPlayerInfoParam
;
matchCode
:
string
;
}
/**
* 带匹配规则的玩家信息
* @param matchParams - 自定义匹配参数,JSON对象格式
*/
declare
interface
MatchPlayerInfoParam
{
playerId
:
string
;
matchParams
:
Record
<
string
,
string
>
;
}
/**
* 房间匹配参数
* @param matchParams - 自定义匹配参数,JSON对象格式,最多支持5条匹配规则
* @param maxPlayers - 房间最大支持人数
* @param roomType - 房间类型
* @param customRoomProperties - 自定义房间属性
* @remarks maxPlayers,roomType,customRoomProperties用于找不到匹配房间时创建房间
* @public
*/
export
declare
interface
MatchRoomConfig
{
matchParams
:
Record
<
string
,
string
>
;
maxPlayers
:
number
;
roomType
?:
string
;
customRoomProperties
?:
string
;
}
/**
* 玩家类
* @public
*/
export
declare
class
Player
extends
Base
{
private
_customStatus
?;
private
_customProperties
?;
constructor
(
customStatus
?:
number
,
customProperties
?:
string
);
get
customPlayerStatus
():
number
|
undefined
;
get
customPlayerProperties
():
string
|
undefined
;
/**
* 修改玩家自定义状态
*/
setCustomStatus
(
status
:
number
):
Promise
<
Player
>
;
}
/**
* 玩家自定义参数
* @param customPlayerStatus - 玩家自定义状态
* @param customPlayerProperties - 玩家自定义属性
* @public
*/
export
declare
interface
PlayerConfig
{
customPlayerStatus
?:
number
;
customPlayerProperties
?:
string
;
}
/**
* 玩家信息
* @param playerId - 玩家ID
* @param status - 玩家状态 0:空闲;1:房间中;2:帧同步中;3:离线
* @param customPlayerStatus - 自定义玩家状态
* @param customPlayerProperties - 自定义玩家属性
* @param teamId - 玩家teamId
* @public
*/
export
declare
interface
PlayerInfo
{
readonly
playerId
:
string
;
readonly
status
?:
number
;
readonly
customPlayerStatus
?:
number
;
readonly
customPlayerProperties
?:
string
;
readonly
teamId
?:
string
;
}
/**
* 房间内消息码
* @public
*/
export
declare
const
enum
Protocol
{
LOGIN
=
0
,
LOGIN_ACK
=
1
,
HEARTBEAT
=
2
,
HEARTBEAT_ACK
=
3
,
CLIENT_SEND_FRAMEDATA
=
4
,
CLIENT_SEND_FRAMEDATA_ACK
=
5
,
QUERY_FRAMEDATA
=
6
,
QUERY_FRAMEDATA_ACK
=
7
,
FRAMESYNC_STARTED
=
8
,
FRAMESYNC_STOPED
=
9
,
BROADCAST_FRAMEDATA
=
10
,
QUERY_FRAMEDATA_RESULT
=
17
,
JOIN_ROOM
=
12
,
LEAVE_ROOM
=
13
,
CONNECTED
=
14
,
DISCONNECTED
=
15
,
ROOM_DISMISS
=
16
}
/**
* 基于「线性同余」的伪随机数生成器
* @public
*/
export
declare
class
Random
{
private
mask
;
private
m
;
private
a
;
private
seed
;
constructor
(
seed
:
number
);
getNumber
():
number
;
}
/**
* 房间类
* @public
*/
export
declare
class
Room
extends
Base
{
onJoin
:
{
(
this
:
any
,
cb
:
(
player
:
FramePlayerInfo
)
=>
void
):
EventEmitter
<
(
player
:
FramePlayerInfo
)
=>
void
>
;
emit
(
player
:
FramePlayerInfo
):
void
;
off
(
cb
:
(
player
:
FramePlayerInfo
)
=>
void
):
void
;
clear
():
void
;
};
onLeave
:
{
(
this
:
any
,
cb
:
(
player
:
FramePlayerInfo
)
=>
void
):
EventEmitter
<
(
player
:
FramePlayerInfo
)
=>
void
>
;
emit
(
player
:
FramePlayerInfo
):
void
;
off
(
cb
:
(
player
:
FramePlayerInfo
)
=>
void
):
void
;
clear
():
void
;
};
onDismiss
:
{
(
this
:
any
,
cb
:
()
=>
void
):
EventEmitter
<
()
=>
void
>
;
emit
():
void
;
off
(
cb
:
()
=>
void
):
void
;
clear
():
void
;
};
onDisconnect
:
{
(
this
:
any
,
cb
:
(
player
:
FramePlayerInfo
)
=>
void
):
EventEmitter
<
(
player
:
FramePlayerInfo
)
=>
void
>
;
emit
(
player
:
FramePlayerInfo
):
void
;
off
(
cb
:
(
player
:
FramePlayerInfo
)
=>
void
):
void
;
clear
():
void
;
};
onStartFrameSync
:
{
(
this
:
any
,
cb
:
()
=>
void
):
EventEmitter
<
()
=>
void
>
;
emit
():
void
;
off
(
cb
:
()
=>
void
):
void
;
clear
():
void
;
};
onStopFrameSync
:
{
(
this
:
any
,
cb
:
()
=>
void
):
EventEmitter
<
()
=>
void
>
;
emit
():
void
;
off
(
cb
:
()
=>
void
):
void
;
clear
():
void
;
};
onRecvFrame
:
{
(
this
:
any
,
cb
:
(
msg
:
ServerFrameMessage
|
ServerFrameMessage
[])
=>
void
):
EventEmitter
<
(
msg
:
ServerFrameMessage
|
ServerFrameMessage
[])
=>
void
>
;
emit
(
msg
:
ServerFrameMessage
|
ServerFrameMessage
[]):
void
;
off
(
cb
:
(
msg
:
ServerFrameMessage
|
ServerFrameMessage
[])
=>
void
):
void
;
clear
():
void
;
};
private
connection
;
private
config
;
private
frameId
;
private
endpoint
;
private
heartbeatTimer
;
private
_isSyncing
;
private
_player
;
/**
* 房间 ID
*/
get
id
():
string
;
/**
* 房间类型
*/
get
roomType
():
string
;
/**
* 房间名称
*/
get
roomName
():
string
;
/**
* 房间的短码
*/
get
roomCode
():
string
;
/**
* 房间自定义属性
*/
get
customRoomProperties
():
string
;
/**
* 房主 ID
*/
get
ownerId
():
string
;
/**
* 房间最大人数
*/
get
maxPlayers
():
number
;
/**
* 房间玩家列表
*/
get
players
():
PlayerInfo
[];
/**
* 路由信息
*/
get
router
():
RouterInfo
;
/**
* 0:公开房间,1:私有房间
*/
get
isPrivate
():
number
;
/**
* 创建时间
*/
get
createTime
():
number
;
/**
* 玩家自己
*/
get
player
():
Player
;
/**
* 房间是否处于帧同步
*/
get
isSyncing
():
boolean
;
/**
* 房间
* @param config - 创建客户端参数
*/
constructor
(
config
:
RoomInfo
,
playerConfig
?:
PlayerConfig
);
/**
* websocket 建链
* @param endpoint - 接入地址
*/
connect
(
routerAddr
:
string
,
ticket
:
string
):
void
;
/**
* 重连
*/
reconnect
():
Promise
<
void
>
;
/**
* 开始帧同步
*/
startFrameSync
():
Promise
<
void
>
;
/**
* 结束帧同步
*/
stopFrameSync
():
Promise
<
void
>
;
/**
* 发送帧数据
* @param frameData - 帧数据
*/
sendFrame
(
frameData
:
string
|
string
[]):
void
;
/**
* 请求补帧
* @param beginFrameId - 起始帧号
* @param size - 请求帧号
*/
requestFrame
(
beginFrameId
:
number
,
size
:
number
):
void
;
/**
* 玩家房间信息查询
*/
update
():
Promise
<
Room
>
;
/**
* 离开房间
*/
leave
():
Promise
<
void
>
;
/**
* 解散房间
* @remarks 房主才能解散房间
*/
dismiss
():
Promise
<
void
>
;
/**
* 踢人
* @param playerId - 被踢出的玩家ID
* @remarks 房主才能踢人
* @remarks 房间在帧同步中,不能踢人
*/
kickPlayer
(
playerId
:
string
):
Promise
<
void
>
;
/**
* 移除所有事件监听
*/
removeAllListeners
():
void
;
private
onMessageCallback
;
private
startHeartbeat
;
private
doHeartbeat
;
private
stopHeartbeat
;
private
buildEndpoint
;
private
checkIsInSync
;
private
checkNotInSync
;
}
/**
* 房间信息
* @public
* @param appId - 游戏ID
* @param roomId - 房间ID
* @param roomType - 房间类型
* @param roomCode - 房间的短码
* @param roomName - 房间名称
* @param roomStatus - 房间状态 0:空闲,1:帧同步中,2:待回收
* @param customRoomProperties - 房间自定义属性
* @param ownerId - 房主ID
* @param maxPlayers - 房间最大支持人数
* @param players - 房间内玩家
* @param router - 路由信息
* @param isPrivate - 是否私有
* @param createTime - 创建时间
*/
export
declare
interface
RoomInfo
{
appId
:
string
;
roomId
:
string
;
roomType
:
string
;
roomCode
:
string
;
roomName
:
string
;
roomStatus
:
number
;
customRoomProperties
:
string
;
ownerId
:
string
;
maxPlayers
:
number
;
players
:
PlayerInfo
[];
router
:
RouterInfo
;
isPrivate
:
number
;
createTime
:
number
;
}
/**
* 路由信息
* @public
*/
export
declare
interface
RouterInfo
{
routerId
:
number
;
routerType
:
number
;
routerAddr
:
string
;
}
/**
* 上报接口返回服务端事件
* @param eventType - 事件类型 1:匹配开始;2:匹配成功;3:匹配失败;4:匹配取消;5:匹配超时;
* 6:加入小队;7:离开小队;8:解散小队;9:更新小队;
* @param eventParam - 事件相关信息
* @public
*/
export
declare
interface
ServerEvent
{
eventType
:
ServerEventCode
;
eventParam
?:
string
;
}
declare
const
enum
ServerEventCode
{
DEFAULT
=
0
,
MATCH_START
=
1
,
MATCH_SUCCESS
=
2
,
MATCH_FAILED
=
3
,
MATCH_CANCEL
=
4
,
MATCH_TIMEOUT
=
5
,
JOIN_GROUP
=
6
,
LEAVE_GROUP
=
7
,
DISMISS_GROUP
=
8
,
UPDATE_GROUP
=
9
}
/**
* 服务端推送消息
* @public
*/
export
declare
interface
ServerFrameMessage
{
currentRoomFrameId
:
number
;
frameInfo
:
FrameInfo
[];
ext
:
FrameExtInfo
;
}
declare
const
enum
StateCode
{
UNINITIALIZED
=
0
,
INITIALIZED
=
1
,
INROOM
=
2
,
SYNCING
=
3
,
ENTER_ROOM
=
4
,
LEAVE_ROOM
=
5
,
ENTER_SYNCING
=
6
,
EXIT_SYNCING
=
7
}
/**
* 更新队伍信息参数
* @param groupName - 队伍名称
* @param ownerId - 队长ID
* @param customGroupProperties - 队伍自定义属性
* @param isLock - 是否禁止加入 0:不禁止 1:禁止 默认0
* @public
*/
export
declare
interface
UpdateGroupConfig
{
groupName
?:
string
;
ownerId
?:
string
;
customGroupProperties
?:
string
;
isLock
?:
number
;
}
export
{
}
export
as
namespace
GOBE
assets/op_16/script/gameobesdk-1.1.4.300/GOBE.d.ts.meta
0 → 100644
View file @
bbc33eb8
{
"ver": "2.0.0",
"uuid": "de16aac1-0c28-4863-91c6-20105020daae",
"subMetas": {}
}
\ No newline at end of file
assets/op_16/script/gameobesdk-1.1.4.300/GOBE.js
0 → 100644
View file @
bbc33eb8
This source diff could not be displayed because it is too large. You can
view the blob
instead.
assets/op_16/script/gameobesdk-1.1.4.300/GOBE.js.meta
0 → 100644
View file @
bbc33eb8
{
"ver": "1.0.8",
"uuid": "291a4bb1-3d0d-41ce-9506-c5808b1d2081",
"isPlugin": true,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
assets/op_16/script/gameobesdk-1.1.4.300/package.json
0 → 100644
View file @
bbc33eb8
{
"type"
:
"software"
,
"scope"
:
"game"
,
"name"
:
"GameOBESDK"
,
"version"
:
"1.1.4.300"
,
"playbook"
:
""
}
\ No newline at end of file
assets/op_16/script/gameobesdk-1.1.4.300/package.json.meta
0 → 100644
View file @
bbc33eb8
{
"ver": "1.0.0",
"uuid": "f7dd520f-d3cf-4b95-b0c3-9f3a7ee3d7c6",
"subMetas": {}
}
\ No newline at end of file
assets/op_16/script/gameobesdk-1.1.4.300/sdk.js
0 → 100644
View file @
bbc33eb8
assets/op_16/script/gameobesdk-1.1.4.300/sdk.js.meta
0 → 100644
View file @
bbc33eb8
{
"ver": "1.0.8",
"uuid": "497a857a-a098-429a-97b0-c1a6ae0b2a16",
"isPlugin": true,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
assets/op_16/script/util.ts
View file @
bbc33eb8
...
...
@@ -345,12 +345,12 @@ export function showTrebleFirework(baseNode, rabbonList) {
showFireworks
(
right
);
}
export
function
onHomeworkFinish
()
{
export
function
onHomeworkFinish
(
data
:
any
=
null
)
{
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
);
if
(
middleLayer
)
{
const
middleLayerComponent
=
middleLayer
.
getComponent
(
'
middleLayer
'
);
if
(
middleLayerComponent
.
role
==
'
student
'
)
{
middleLayerComponent
.
onHomeworkFinish
(()
=>
{
});
middleLayerComponent
.
onHomeworkFinish
(()
=>
{
}
,
data
);
}
}
else
{
console
.
log
(
'
onHomeworkFinish
'
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment