Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-2pick
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
ygopro-2pick
Commits
d556d024
Commit
d556d024
authored
Jul 14, 2019
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'server' of github.com:moecube/ygopro into server
parents
d300b4b0
47935247
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
29 additions
and
73 deletions
+29
-73
gframe/config.h
gframe/config.h
+1
-1
gframe/duelclient.cpp
gframe/duelclient.cpp
+5
-6
gframe/duelclient.h
gframe/duelclient.h
+3
-3
gframe/event_handler.cpp
gframe/event_handler.cpp
+2
-3
gframe/game.cpp
gframe/game.cpp
+3
-15
gframe/mythread.h
gframe/mythread.h
+0
-31
gframe/netserver.cpp
gframe/netserver.cpp
+2
-2
gframe/netserver.h
gframe/netserver.h
+1
-1
gframe/replay_mode.cpp
gframe/replay_mode.cpp
+2
-2
gframe/replay_mode.h
gframe/replay_mode.h
+1
-1
gframe/single_mode.cpp
gframe/single_mode.cpp
+3
-2
gframe/single_mode.h
gframe/single_mode.h
+1
-1
strings.conf
strings.conf
+5
-5
No files found.
gframe/config.h
View file @
d556d024
...
...
@@ -72,11 +72,11 @@ inline int myswprintf(wchar_t(&buf)[N], const wchar_t* fmt, TR... args) {
#include <stdlib.h>
#include <memory.h>
#include <time.h>
#include <thread>
#include "bufferio.h"
#include "myfilesystem.h"
#include "mymutex.h"
#include "mysignal.h"
#include "mythread.h"
#include "../ocgcore/ocgapi.h"
#include "../ocgcore/common.h"
...
...
gframe/duelclient.cpp
View file @
d556d024
...
...
@@ -27,7 +27,7 @@ bool DuelClient::is_swapping = false;
int
DuelClient
::
select_hint
=
0
;
int
DuelClient
::
select_unselect_hint
=
0
;
int
DuelClient
::
last_select_hint
=
0
;
char
DuelClient
::
last_successful_msg
[
2048
];
char
DuelClient
::
last_successful_msg
[
0x2000
];
unsigned
int
DuelClient
::
last_successful_msg_length
=
0
;
wchar_t
DuelClient
::
event_string
[
256
];
mtrandom
DuelClient
::
rnd
;
...
...
@@ -74,7 +74,7 @@ bool DuelClient::StartClient(unsigned int ip, unsigned short port, bool create_g
event
*
resp_event
=
event_new
(
client_base
,
0
,
EV_TIMEOUT
,
ConnectTimeout
,
0
);
event_add
(
resp_event
,
&
timeout
);
}
Thread
::
NewThread
(
ClientThread
,
0
);
std
::
thread
(
ClientThread
).
detach
(
);
return
true
;
}
void
DuelClient
::
ConnectTimeout
(
evutil_socket_t
fd
,
short
events
,
void
*
arg
)
{
...
...
@@ -241,7 +241,7 @@ void DuelClient::ClientEvent(bufferevent *bev, short events, void *ctx) {
mainGame
->
device
->
closeDevice
();
}
}
int
DuelClient
::
ClientThread
(
void
*
param
)
{
int
DuelClient
::
ClientThread
()
{
event_base_dispatch
(
client_base
);
bufferevent_free
(
client_bev
);
event_base_free
(
client_base
);
...
...
@@ -4069,7 +4069,7 @@ void DuelClient::BeginRefreshHost() {
timeval
timeout
=
{
3
,
0
};
resp_event
=
event_new
(
broadev
,
reply
,
EV_TIMEOUT
|
EV_READ
|
EV_PERSIST
,
BroadcastReply
,
broadev
);
event_add
(
resp_event
,
&
timeout
);
Thread
::
NewThread
(
RefreshThread
,
broadev
);
std
::
thread
(
RefreshThread
,
broadev
).
detach
(
);
//send request
SOCKADDR_IN
local
;
local
.
sin_family
=
AF_INET
;
...
...
@@ -4098,8 +4098,7 @@ void DuelClient::BeginRefreshHost() {
closesocket
(
sSend
);
}
}
int
DuelClient
::
RefreshThread
(
void
*
arg
)
{
event_base
*
broadev
=
(
event_base
*
)
arg
;
int
DuelClient
::
RefreshThread
(
event_base
*
broadev
)
{
event_base_dispatch
(
broadev
);
evutil_socket_t
fd
;
event_get_assignment
(
resp_event
,
0
,
&
fd
,
0
,
0
,
0
);
...
...
gframe/duelclient.h
View file @
d556d024
...
...
@@ -33,7 +33,7 @@ private:
static
int
select_hint
;
static
int
select_unselect_hint
;
static
int
last_select_hint
;
static
char
last_successful_msg
[
2048
];
static
char
last_successful_msg
[
0x2000
];
static
unsigned
int
last_successful_msg_length
;
static
wchar_t
event_string
[
256
];
static
mtrandom
rnd
;
...
...
@@ -48,7 +48,7 @@ public:
static
void
StopClient
(
bool
is_exiting
=
false
);
static
void
ClientRead
(
bufferevent
*
bev
,
void
*
ctx
);
static
void
ClientEvent
(
bufferevent
*
bev
,
short
events
,
void
*
ctx
);
static
int
ClientThread
(
void
*
param
);
static
int
ClientThread
();
static
void
HandleSTOCPacketLan
(
char
*
data
,
unsigned
int
len
);
static
int
ClientAnalyze
(
char
*
msg
,
unsigned
int
len
);
static
void
SwapField
();
...
...
@@ -87,7 +87,7 @@ public:
static
std
::
vector
<
std
::
wstring
>
hosts_srvpro
;
static
bool
is_srvpro
;
static
void
BeginRefreshHost
();
static
int
RefreshThread
(
void
*
arg
);
static
int
RefreshThread
(
event_base
*
broadev
);
static
void
BroadcastReply
(
evutil_socket_t
fd
,
short
events
,
void
*
arg
);
};
...
...
gframe/event_handler.cpp
View file @
d556d024
...
...
@@ -1539,8 +1539,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
myswprintf
(
formatBuffer
,
L"%ls"
,
dataManager
.
GetName
(
mcard
->
code
));
str
.
append
(
formatBuffer
);
if
(
mcard
->
type
&
TYPE_MONSTER
)
{
if
(
mcard
->
alias
&&
(
mcard
->
alias
<
mcard
->
code
-
10
||
mcard
->
alias
>
mcard
->
code
+
10
)
&&
wcscmp
(
dataManager
.
GetName
(
mcard
->
code
),
dataManager
.
GetName
(
mcard
->
alias
)))
{
if
(
mcard
->
alias
&&
wcscmp
(
dataManager
.
GetName
(
mcard
->
code
),
dataManager
.
GetName
(
mcard
->
alias
)))
{
myswprintf
(
formatBuffer
,
L"
\n
(%ls)"
,
dataManager
.
GetName
(
mcard
->
alias
));
str
.
append
(
formatBuffer
);
}
...
...
@@ -1562,7 +1561,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
str
.
append
(
formatBuffer
);
}
}
else
{
if
(
mcard
->
alias
&&
(
mcard
->
alias
<
mcard
->
code
-
10
||
mcard
->
alias
>
mcard
->
code
+
10
))
{
if
(
mcard
->
alias
&&
wcscmp
(
dataManager
.
GetName
(
mcard
->
code
),
dataManager
.
GetName
(
mcard
->
alias
)
))
{
myswprintf
(
formatBuffer
,
L"
\n
(%ls)"
,
dataManager
.
GetName
(
mcard
->
alias
));
str
.
append
(
formatBuffer
);
}
...
...
gframe/game.cpp
View file @
d556d024
...
...
@@ -41,11 +41,7 @@ void Game::MainServerLoop() {
fflush
(
stdout
);
while
(
NetServer
::
net_evbase
)
{
#ifdef WIN32
Sleep
(
200
);
#else
usleep
(
200000
);
#endif
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
milliseconds
(
200
));
}
}
void
Game
::
MainTestLoop
(
int
code
)
{
...
...
@@ -967,11 +963,7 @@ void Game::MainLoop() {
fps
++
;
cur_time
=
timer
->
getTime
();
if
(
cur_time
<
fps
*
17
-
20
)
#ifdef _WIN32
Sleep
(
20
);
#else
usleep
(
20000
);
#endif
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
milliseconds
(
20
));
if
(
cur_time
>=
1000
)
{
myswprintf
(
cap
,
L"KoishiPro FPS: %d"
,
fps
);
device
->
setWindowCaption
(
cap
);
...
...
@@ -992,11 +984,7 @@ void Game::MainLoop() {
DuelClient
::
StopClient
(
true
);
if
(
dInfo
.
isSingleMode
)
SingleMode
::
StopPlay
(
true
);
#ifdef _WIN32
Sleep
(
500
);
#else
usleep
(
500000
);
#endif
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
milliseconds
(
500
));
SaveConfig
();
// device->drop();
}
...
...
gframe/mythread.h
deleted
100644 → 0
View file @
d300b4b0
#ifndef THREAD_H
#define THREAD_H
#ifdef _WIN32
#include <windows.h>
class
Thread
{
public:
static
void
NewThread
(
int
(
*
thread_func
)(
void
*
),
void
*
param
)
{
CreateThread
(
0
,
0
,
(
LPTHREAD_START_ROUTINE
)
thread_func
,
param
,
0
,
0
);
}
};
#else // _WIN32
#include <pthread.h>
class
Thread
{
public:
static
void
NewThread
(
int
(
*
thread_func
)(
void
*
),
void
*
param
)
{
pthread_t
thread
;
pthread_attr_t
attr
;
pthread_attr_init
(
&
attr
);
pthread_create
(
&
thread
,
&
attr
,
(
void
*
(
*
)(
void
*
))
thread_func
,
param
);
}
};
#endif // _WIN32
#endif // THREAD_H
gframe/netserver.cpp
View file @
d556d024
...
...
@@ -82,7 +82,7 @@ bool NetServer::StartServer(unsigned short port) {
return
false
;
}
evconnlistener_set_error_cb
(
listener
,
ServerAcceptError
);
Thread
::
NewThread
(
ServerThread
,
net_evbase
);
std
::
thread
(
ServerThread
).
detach
(
);
#ifdef YGOPRO_SERVER_MODE
evutil_socket_t
fd
=
evconnlistener_get_fd
(
listener
);
socklen_t
addrlen
=
sizeof
(
sockaddr
);
...
...
@@ -198,7 +198,7 @@ void NetServer::ServerEchoEvent(bufferevent* bev, short events, void* ctx) {
else
DisconnectPlayer
(
dp
);
}
}
int
NetServer
::
ServerThread
(
void
*
param
)
{
int
NetServer
::
ServerThread
()
{
event_base_dispatch
(
net_evbase
);
for
(
auto
bit
=
users
.
begin
();
bit
!=
users
.
end
();
++
bit
)
{
bufferevent_disable
(
bit
->
first
,
EV_READ
);
...
...
gframe/netserver.h
View file @
d556d024
...
...
@@ -42,7 +42,7 @@ public:
static
void
ServerAcceptError
(
evconnlistener
*
listener
,
void
*
ctx
);
static
void
ServerEchoRead
(
bufferevent
*
bev
,
void
*
ctx
);
static
void
ServerEchoEvent
(
bufferevent
*
bev
,
short
events
,
void
*
ctx
);
static
int
ServerThread
(
void
*
param
);
static
int
ServerThread
();
static
void
DisconnectPlayer
(
DuelPlayer
*
dp
);
static
void
HandleCTOSPacket
(
DuelPlayer
*
dp
,
char
*
data
,
unsigned
int
len
);
static
void
SendPacketToPlayer
(
DuelPlayer
*
dp
,
unsigned
char
proto
)
{
...
...
gframe/replay_mode.cpp
View file @
d556d024
...
...
@@ -24,7 +24,7 @@ bool ReplayMode::StartReplay(int skipturn) {
skip_turn
=
skipturn
;
if
(
skip_turn
<
0
)
skip_turn
=
0
;
Thread
::
NewThread
(
ReplayThread
,
0
);
std
::
thread
(
ReplayThread
).
detach
(
);
return
true
;
}
void
ReplayMode
::
StopReplay
(
bool
is_exiting
)
{
...
...
@@ -56,7 +56,7 @@ bool ReplayMode::ReadReplayResponse() {
set_responseb
(
pduel
,
resp
);
return
result
;
}
int
ReplayMode
::
ReplayThread
(
void
*
param
)
{
int
ReplayMode
::
ReplayThread
()
{
const
ReplayHeader
&
rh
=
cur_replay
.
pheader
;
mainGame
->
dInfo
.
isFirst
=
true
;
mainGame
->
dInfo
.
isTag
=
!!
(
rh
.
flag
&
REPLAY_TAG
);
...
...
gframe/replay_mode.h
View file @
d556d024
...
...
@@ -32,7 +32,7 @@ public:
static
void
SwapField
();
static
void
Pause
(
bool
is_pause
,
bool
is_step
);
static
bool
ReadReplayResponse
();
static
int
ReplayThread
(
void
*
param
);
static
int
ReplayThread
();
static
bool
StartDuel
();
static
void
EndDuel
();
static
void
Restart
(
bool
refresh
);
...
...
gframe/single_mode.cpp
View file @
d556d024
...
...
@@ -12,7 +12,7 @@ bool SingleMode::is_continuing = false;
Replay
SingleMode
::
last_replay
;
bool
SingleMode
::
StartPlay
()
{
Thread
::
NewThread
(
SinglePlayThread
,
0
);
std
::
thread
(
SinglePlayThread
).
detach
(
);
return
true
;
}
void
SingleMode
::
StopPlay
(
bool
is_exiting
)
{
...
...
@@ -28,7 +28,7 @@ void SingleMode::SetResponse(unsigned char* resp, unsigned int len) {
last_replay
.
WriteData
(
resp
,
len
);
set_responseb
(
pduel
,
resp
);
}
int
SingleMode
::
SinglePlayThread
(
void
*
param
)
{
int
SingleMode
::
SinglePlayThread
()
{
const
int
start_lp
=
8000
;
const
int
start_hand
=
5
;
const
int
draw_count
=
1
;
...
...
@@ -129,6 +129,7 @@ int SingleMode::SinglePlayThread(void* param) {
}
}
last_replay
.
EndRecord
();
mainGame
->
gMutex
.
Lock
();
time_t
nowtime
=
time
(
NULL
);
tm
*
localedtime
=
localtime
(
&
nowtime
);
wchar_t
timetext
[
40
];
...
...
gframe/single_mode.h
View file @
d556d024
...
...
@@ -15,7 +15,7 @@ public:
static
bool
StartPlay
();
static
void
StopPlay
(
bool
is_exiting
=
false
);
static
void
SetResponse
(
unsigned
char
*
resp
,
unsigned
int
len
);
static
int
SinglePlayThread
(
void
*
param
);
static
int
SinglePlayThread
();
static
bool
SinglePlayAnalyze
(
char
*
msg
,
unsigned
int
len
);
static
void
SinglePlayRefresh
(
int
flag
=
0xf81fff
);
...
...
strings.conf
View file @
d556d024
...
...
@@ -9,9 +9,9 @@
!
system
5
特殊召唤成功
!
system
6
反转召唤成功
!
system
7
发动
!
system
10
移
除指示物
!
system
10
取
除指示物
!
system
11
支付基本分
!
system
12
移
除本身的素材
!
system
12
取
除本身的素材
!
system
20
抽卡阶段中
!
system
21
准备阶段中
!
system
22
主要阶段中
...
...
@@ -57,7 +57,7 @@
!
system
201
此时没有可以发动的效果
!
system
202
是否要确认场上的情况?
!
system
203
是否要进行连锁?
!
system
204
请
移
除%
d
个[%
ls
]
!
system
204
请
取
除%
d
个[%
ls
]
!
system
205
请选择排列顺序
!
system
206
请选择连锁顺序
!
system
207
翻开卡组上方%
d
张卡:
...
...
@@ -338,7 +338,7 @@
!
system
1294
可用时点
!
system
1295
取消操作
!
system
1296
完成选择
!
system
1297
切洗
手卡
!
system
1297
洗切
手卡
!
system
1298
辅助功能
!
system
1299
加快动画效果
!
system
1300
卡组分类:
...
...
@@ -504,7 +504,7 @@
!
system
1615
我方回复%
d
基本分
!
system
1616
对方回复%
d
基本分
!
system
1617
[%
ls
]放置了%
d
个[%
ls
]
!
system
1618
[%
ls
]
移
除了%
d
个[%
ls
]
!
system
1618
[%
ls
]
取
除了%
d
个[%
ls
]
!
system
1619
[%
ls
]攻击[%
ls
]
!
system
1620
[%
ls
]直接攻击
!
system
1621
攻击被无效
...
...
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