Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
sejong25
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Tear of Sejong
sejong25
Commits
95b3b93e
Commit
95b3b93e
authored
Jul 17, 2019
by
18신대성
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
서버의 많은 부분을 뜯어고침
게임룸 클래스화
parent
61daf001
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
255 additions
and
185 deletions
+255
-185
GameServer.js
GameServer.js
+214
-148
Client.js
js/Client.js
+13
-3
ScenesData.js
js/ScenesData.js
+3
-8
WordSpace.js
js/WordSpace.js
+4
-3
main.js
js/main.js
+2
-2
server.js
server.js
+19
-21
No files found.
GameServer.js
View file @
95b3b93e
This diff is collapsed.
Click to expand it.
js/Client.js
View file @
95b3b93e
...
@@ -14,7 +14,7 @@ socket.on('alert', function(msg) // string errorcode
...
@@ -14,7 +14,7 @@ socket.on('alert', function(msg) // string errorcode
socket
.
on
(
'
setId
'
,
function
(
msg
)
// {str, num playerNum}
socket
.
on
(
'
setId
'
,
function
(
msg
)
// {str, num playerNum}
{
{
console
.
log
(
msg
.
str
);
console
.
log
(
msg
.
str
);
PlayerData
.
id
Num
=
msg
.
num
;
PlayerData
.
id
=
msg
.
num
;
});
});
socket
.
on
(
'
enterRoom
'
,
function
()
socket
.
on
(
'
enterRoom
'
,
function
()
{
{
...
@@ -26,15 +26,24 @@ socket.on('setCount', function(msg)
...
@@ -26,15 +26,24 @@ socket.on('setCount', function(msg)
{
{
ScenesData
.
roomScene
.
isCounting
=
msg
.
isEnable
;
ScenesData
.
roomScene
.
isCounting
=
msg
.
isEnable
;
ScenesData
.
roomScene
.
endTime
=
msg
.
endTime
;
ScenesData
.
roomScene
.
endTime
=
msg
.
endTime
;
ScenesData
.
roomScene
.
peopleCount
=
msg
.
playerCount
;
});
});
// init game
// init game
socket
.
on
(
'
syncRoomData
'
,
function
(
msg
)
// {num roomNum, [] players}
socket
.
on
(
'
syncRoomData
'
,
function
(
msg
)
// {num roomNum, [] players}
{
{
console
.
log
(
msg
);
//
console.log(msg);
RoomData
.
room
Num
=
msg
.
roomNum
;
RoomData
.
room
Id
=
msg
.
roomId
;
RoomData
.
players
=
msg
.
players
;
RoomData
.
players
=
msg
.
players
;
RoomData
.
aliveCount
=
msg
.
players
.
length
;
RoomData
.
aliveCount
=
msg
.
players
.
length
;
RoomData
.
players
.
forEach
(
function
(
element
)
{
if
(
element
.
id
===
PlayerData
.
id
)
{
RoomData
.
myself
=
element
;
return
;
}
});
});
});
socket
.
on
(
'
startGame
'
,
function
()
socket
.
on
(
'
startGame
'
,
function
()
{
{
...
@@ -55,6 +64,7 @@ socket.on('setPlayerTypingRate', function(msg) // number playerTypingRate
...
@@ -55,6 +64,7 @@ socket.on('setPlayerTypingRate', function(msg) // number playerTypingRate
});
});
socket
.
on
(
'
attacked
'
,
function
(
msg
)
// object attackData
socket
.
on
(
'
attacked
'
,
function
(
msg
)
// object attackData
{
{
//console.log('attacked by ' + msg.attacker.nickname);
setTimeout
(
function
()
setTimeout
(
function
()
{
{
WordSpace
.
generateWord
.
Attack
(
ScenesData
.
gameScene
,
msg
.
text
,
msg
.
grade
,
msg
.
attacker
,
msg
.
isStrong
);
WordSpace
.
generateWord
.
Attack
(
ScenesData
.
gameScene
,
msg
.
text
,
msg
.
grade
,
msg
.
attacker
,
msg
.
isStrong
);
...
...
js/ScenesData.js
View file @
95b3b93e
...
@@ -61,6 +61,7 @@ var roomScene = new Phaser.Class(
...
@@ -61,6 +61,7 @@ var roomScene = new Phaser.Class(
this
.
countText
.
setText
(((
this
.
endTime
-
Date
.
now
())
/
1000
).
toFixed
(
1
));
this
.
countText
.
setText
(((
this
.
endTime
-
Date
.
now
())
/
1000
).
toFixed
(
1
));
if
(
this
.
endTime
-
Date
.
now
()
<
0
)
if
(
this
.
endTime
-
Date
.
now
()
<
0
)
{
{
//console.log('end Count');
socket
.
emit
(
'
endCount
'
);
socket
.
emit
(
'
endCount
'
);
this
.
isCounting
=
false
;
this
.
isCounting
=
false
;
}
}
...
@@ -119,14 +120,8 @@ var gameScene = new Phaser.Class(
...
@@ -119,14 +120,8 @@ var gameScene = new Phaser.Class(
WordSpace
.
nameWordTextForTest
=
ScenesData
.
gameScene
.
add
.
text
(
50
,
400
,
'
현재 가진 호패들 : 없음
'
).
setDepth
(
10
).
setColor
(
'
#000000
'
);
WordSpace
.
nameWordTextForTest
=
ScenesData
.
gameScene
.
add
.
text
(
50
,
400
,
'
현재 가진 호패들 : 없음
'
).
setDepth
(
10
).
setColor
(
'
#000000
'
);
WordSpace
.
nameQueue
.
initiate
();
WordSpace
.
nameQueue
.
initiate
();
RoomData
.
players
.
forEach
(
function
(
element
)
{
// for test
if
(
element
.
nickname
==
PlayerData
.
nickname
)
{
RoomData
.
myself
=
element
;
return
;
}
});
WordSpace
.
attackGauge
.
add
(
11
);
WordSpace
.
attackGauge
.
add
(
11
);
},
},
...
...
js/WordSpace.js
View file @
95b3b93e
...
@@ -394,7 +394,7 @@ WordSpace.findWord = function(wordText)
...
@@ -394,7 +394,7 @@ WordSpace.findWord = function(wordText)
console
.
log
(
'
Attack word :
'
+
element
.
wordText
+
'
of
'
+
element
.
attacker
.
nickname
+
'
오타임
'
);
console
.
log
(
'
Attack word :
'
+
element
.
wordText
+
'
of
'
+
element
.
attacker
.
nickname
+
'
오타임
'
);
let
victimData
=
let
victimData
=
{
{
roomNum
:
RoomData
.
room
Num
,
roomNum
:
RoomData
.
room
Id
,
victim
:
RoomData
.
myself
,
victim
:
RoomData
.
myself
,
target
:
element
.
attacker
.
id
target
:
element
.
attacker
.
id
}
}
...
@@ -431,9 +431,10 @@ WordSpace.attack = function(wordText, grade)
...
@@ -431,9 +431,10 @@ WordSpace.attack = function(wordText, grade)
console
.
log
(
'
attack
'
+
wordText
+
'
, grade:
'
+
grade
);
console
.
log
(
'
attack
'
+
wordText
+
'
, grade:
'
+
grade
);
WordSpace
.
nameGroup
.
forEach
(
function
(
element
)
WordSpace
.
nameGroup
.
forEach
(
function
(
element
)
{
{
//console.log(RoomData.myself);
let
attackData
=
let
attackData
=
{
{
roomNum
:
RoomData
.
room
Num
,
roomNum
:
RoomData
.
room
Id
,
attacker
:
RoomData
.
myself
,
attacker
:
RoomData
.
myself
,
target
:
element
.
ownerId
,
target
:
element
.
ownerId
,
text
:
wordText
,
text
:
wordText
,
...
@@ -474,7 +475,7 @@ WordSpace.nameQueue =
...
@@ -474,7 +475,7 @@ WordSpace.nameQueue =
}
}
tempQueue
.
forEach
(
function
(
element
)
tempQueue
.
forEach
(
function
(
element
)
{
{
if
(
element
.
id
!=
PlayerData
.
id
Num
&&
element
.
isAlive
)
if
(
element
.
id
!=
PlayerData
.
id
&&
element
.
isAlive
)
WordSpace
.
nameQueue
.
queue
.
push
(
element
);
WordSpace
.
nameQueue
.
queue
.
push
(
element
);
});
});
},
},
...
...
js/main.js
View file @
95b3b93e
...
@@ -23,13 +23,13 @@ var game = new Phaser.Game(config)
...
@@ -23,13 +23,13 @@ var game = new Phaser.Game(config)
//테스트용이므로 차후 수정 요망
//테스트용이므로 차후 수정 요망
var
PlayerData
=
PlayerData
||
{};
var
PlayerData
=
PlayerData
||
{};
PlayerData
.
id
Num
=
-
1
;
//플레이어 아이디, 고유 번호
PlayerData
.
id
=
-
1
;
//플레이어 아이디, 고유 번호
PlayerData
.
nickname
=
'
홍길동
'
;
//플레이어 닉네임
PlayerData
.
nickname
=
'
홍길동
'
;
//플레이어 닉네임
// 현재 들어가있는 Game Room의 정보
// 현재 들어가있는 Game Room의 정보
var
RoomData
=
RoomData
||
{};
var
RoomData
=
RoomData
||
{};
RoomData
.
room
Num
=
-
1
;
RoomData
.
room
Id
=
-
1
;
RoomData
.
myself
=
null
;
RoomData
.
myself
=
null
;
RoomData
.
players
=
null
;
RoomData
.
players
=
null
;
RoomData
.
aliveCount
=
-
1
;
RoomData
.
aliveCount
=
-
1
;
\ No newline at end of file
server.js
View file @
95b3b93e
...
@@ -25,12 +25,11 @@ io.on('connection', function(socket)
...
@@ -25,12 +25,11 @@ io.on('connection', function(socket)
{
{
id
:
GameServer
.
getPlayerNumber
(),
id
:
GameServer
.
getPlayerNumber
(),
nickname
:
'
게스트
'
,
nickname
:
'
게스트
'
,
socketId
:
socket
,
currentRoom
:
null
,
currentRoom
:
null
,
playingData
:
null
,
playingData
:
null
,
isReceivable
:
false
isReceivable
:
false
};
};
GameServer
.
currentPlayer
.
push
(
socket
.
playerData
);
GameServer
.
currentPlayer
.
push
(
socket
);
console
.
log
(
'
[
'
+
socket
.
playerData
.
id
+
'
] client request
'
);
console
.
log
(
'
[
'
+
socket
.
playerData
.
id
+
'
] client request
'
);
socket
.
emit
(
'
setId
'
,
socket
.
emit
(
'
setId
'
,
{
{
...
@@ -44,14 +43,14 @@ io.on('connection', function(socket)
...
@@ -44,14 +43,14 @@ io.on('connection', function(socket)
let
isAlreadyHave
=
false
;
let
isAlreadyHave
=
false
;
GameServer
.
currentPlayer
.
forEach
(
function
(
element
)
GameServer
.
currentPlayer
.
forEach
(
function
(
element
)
{
{
if
(
element
.
nickname
===
msg
)
isAlreadyHave
=
true
;
if
(
element
.
playerData
.
nickname
===
msg
)
isAlreadyHave
=
true
;
});
});
if
(
isAlreadyHave
)
socket
.
emit
(
'
alert
'
,
'
errNicknameOverlaped
'
);
if
(
isAlreadyHave
)
socket
.
emit
(
'
alert
'
,
'
errNicknameOverlaped
'
);
else
else
{
{
socket
.
playerData
.
nickname
=
msg
;
socket
.
playerData
.
nickname
=
msg
;
console
.
log
(
'
[
'
+
socket
.
playerData
.
id
+
'
] nickname set to
'
+
msg
);
console
.
log
(
'
[
'
+
socket
.
playerData
.
id
+
'
] nickname set to
'
+
msg
);
GameServer
.
enterEmptyRoom
(
socket
.
playerData
);
GameServer
.
enterEmptyRoom
(
socket
);
}
}
});
});
...
@@ -76,15 +75,15 @@ io.on('connection', function(socket)
...
@@ -76,15 +75,15 @@ io.on('connection', function(socket)
socket
.
playerData
.
currentRoom
.
aliveCount
--
;
socket
.
playerData
.
currentRoom
.
aliveCount
--
;
if
(
socket
.
playerData
.
currentRoom
.
aliveCount
===
0
)
if
(
socket
.
playerData
.
currentRoom
.
aliveCount
===
0
)
{
{
GameServer
.
startRoom
(
GameServer
.
findRoomIndex
(
socket
.
playerData
.
currentRoom
.
roomNum
)
);
socket
.
playerData
.
currentRoom
.
startRoom
(
);
}
}
});
});
socket
.
on
(
'
attack
'
,
function
(
msg
)
socket
.
on
(
'
attack
'
,
function
(
msg
)
{
{
GameServer
.
announceToTarget
(
GameServer
.
findRoomIndex
(
msg
.
roomNum
),
msg
.
target
,
'
attacked
'
,
msg
);
socket
.
playerData
.
currentRoom
.
announceToTarget
(
msg
.
target
,
'
attacked
'
,
msg
);
//console.log('
find ' + msg.target + ' by ' + msg.attacker.idNum
+ ' with ' + msg.text);
//console.log('
attack ' + msg.target + ' by ' + msg.attacker.id
+ ' with ' + msg.text);
let
target
=
GameServer
.
findPlayer
(
msg
.
target
);
let
target
=
GameServer
.
findPlayer
Socket
(
msg
.
target
);
if
(
target
!=
null
)
if
(
target
!=
null
)
{
{
let
dataToPush
=
let
dataToPush
=
...
@@ -96,23 +95,23 @@ io.on('connection', function(socket)
...
@@ -96,23 +95,23 @@ io.on('connection', function(socket)
time
:
Date
.
now
()
time
:
Date
.
now
()
}
}
if
(
target
.
play
ingData
.
lastAttacks
.
length
<
5
)
target
.
playingData
.
lastAttacks
.
push
(
dataToPush
);
if
(
target
.
play
erData
.
playingData
.
lastAttacks
.
length
<
5
)
target
.
playerData
.
playingData
.
lastAttacks
.
push
(
dataToPush
);
else
else
{
{
target
.
playingData
.
lastAttacks
.
splice
(
0
,
1
);
target
.
play
erData
.
play
ingData
.
lastAttacks
.
splice
(
0
,
1
);
target
.
playingData
.
lastAttacks
.
push
(
dataToPush
);
target
.
play
erData
.
play
ingData
.
lastAttacks
.
push
(
dataToPush
);
}
}
}
}
});
});
socket
.
on
(
'
defeated
'
,
function
()
socket
.
on
(
'
defeated
'
,
function
()
{
{
GameServer
.
playerDefeat
(
socket
.
playerData
);
socket
.
playerData
.
playingData
.
defeat
(
);
});
});
socket
.
on
(
'
defenseFailed
'
,
function
(
msg
)
socket
.
on
(
'
defenseFailed
'
,
function
(
msg
)
{
{
GameServer
.
announceToTarget
(
GameServer
.
findRoomIndex
(
msg
.
roomNum
),
msg
.
target
,
'
attackSucceed
'
,
msg
);
socket
.
playerData
.
currentRoom
.
announceToTarget
(
msg
.
target
,
'
attackSucceed
'
,
msg
);
});
});
socket
.
on
(
'
disconnect
'
,
function
(
reason
)
socket
.
on
(
'
disconnect
'
,
function
(
reason
)
...
@@ -128,31 +127,30 @@ io.on('connection', function(socket)
...
@@ -128,31 +127,30 @@ io.on('connection', function(socket)
console
.
log
(
'
[
'
+
data
.
id
+
'
] client disconnected, reason:
'
+
reason
);
console
.
log
(
'
[
'
+
data
.
id
+
'
] client disconnected, reason:
'
+
reason
);
let
idxToDel
=
GameServer
.
currentPlayer
.
findIndex
(
function
(
element
)
let
idxToDel
=
GameServer
.
currentPlayer
.
findIndex
(
function
(
element
)
{
{
return
element
.
id
===
data
.
id
;
return
element
.
playerData
.
id
===
data
.
id
;
});
});
if
(
idxToDel
!=
-
1
)
if
(
idxToDel
!=
-
1
)
{
{
GameServer
.
currentPlayer
.
splice
(
idxToDel
,
1
);
// 룸에서도 제거
// 룸에서도 제거
if
(
data
.
currentRoom
!=
null
)
if
(
data
.
currentRoom
!=
null
)
{
{
if
(
data
.
currentRoom
.
currentPhase
===
GameServer
.
Phase
.
READY
||
data
.
currentRoom
.
currentPhase
===
GameServer
.
Phase
.
COUNT
)
if
(
data
.
currentRoom
.
currentPhase
===
GameServer
.
Phase
.
READY
||
data
.
currentRoom
.
currentPhase
===
GameServer
.
Phase
.
COUNT
)
{
{
data
.
currentRoom
.
currentPlayer
[
data
.
playingData
.
index
]
=
null
;
data
.
currentRoom
.
exitRoom
(
data
.
id
);
data
.
currentRoom
.
currentSocket
[
data
.
playingData
.
index
]
=
null
;
data
.
currentRoom
.
aliveCount
--
;
if
(
data
.
currentRoom
.
aliveCount
<
GameServer
.
startCount
)
if
(
data
.
currentRoom
.
aliveCount
<
GameServer
.
startCount
)
{
{
GameServer
.
announceToRoom
(
GameServer
.
findRoomIndex
(
data
.
currentRoom
.
roomNum
),
'
setCount
'
,
{
isEnable
:
false
,
endTime
:
0
});
data
.
currentRoom
.
announceToRoom
(
'
setCount
'
,
{
isEnable
:
false
,
endTime
:
0
,
playerCount
:
data
.
currentRoom
.
currentPlayer
.
length
});
data
.
currentRoom
.
currentPhase
=
GameServer
.
Phase
.
READY
;
data
.
currentRoom
.
currentPhase
=
GameServer
.
Phase
.
READY
;
}
}
else
data
.
currentRoom
.
announceToRoom
(
'
setCount
'
,
{
isEnable
:
true
,
endTime
:
data
.
currentRoom
.
endTime
,
playerCount
:
data
.
currentRoom
.
currentPlayer
.
length
});
}
}
else
if
(
data
.
playingData
.
isAlive
)
else
if
(
data
.
playingData
.
isAlive
)
{
{
GameServer
.
playerDefeat
(
socket
.
playerData
);
data
.
playingData
.
defeat
(
);
GameServer
.
announceToRoom
(
GameServer
.
findRoomIndex
(
data
.
currentRoom
.
roomNum
),
'
userDisconnect
'
,
data
.
playingData
);
data
.
currentRoom
.
announceToRoom
(
'
userDisconnect
'
,
data
.
playingData
);
}
}
}
}
GameServer
.
currentPlayer
.
splice
(
idxToDel
,
1
);
}
}
console
.
log
(
'
[
'
+
data
.
id
+
'
] disconnect complete
'
);
console
.
log
(
'
[
'
+
data
.
id
+
'
] disconnect complete
'
);
}
}
...
...
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