Commit 5a674dab authored by nanahira's avatar nanahira

dialogue test

parent 1838599b
......@@ -81,6 +81,9 @@ void Game::LoadBetaDB() {
}
#endif
}
wchar_t* Game::GetSysString(int code) {
return dataManager.GetSysString(code);
}
#else //YGOPRO_SERVER_MODE
bool Game::Initialize() {
srand(time(0));
......
......@@ -105,6 +105,7 @@ public:
void LoadExpansionDB();
void LoadBetaDB();
void AddDebugMsg(char* msgbuf);
wchar_t* GetSysString(int code);
#else
void MainLoop();
void BuildProjectionMatrix(irr::core::matrix4& mProjection, f32 left, f32 right, f32 bottom, f32 top, f32 znear, f32 zfar);
......
......@@ -1275,7 +1275,8 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
break;
}
case MSG_SUMMONING: {
pbuf += 8;
int summon_code = BufferIO::ReadInt32(pbuf);
pbuf += 4;
NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset);
NetServer::ReSendToPlayer(players[1]);
for(auto oit = observers.begin(); oit != observers.end(); ++oit)
......@@ -1283,6 +1284,8 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
#ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayers(cache_recorder, replay_recorder);
#endif
if(summon_code == 35595518)
SendDialogues(2002);
break;
}
case MSG_SUMMONED: {
......@@ -1300,7 +1303,8 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
break;
}
case MSG_SPSUMMONING: {
pbuf += 8;
int summon_code = BufferIO::ReadInt32(pbuf);
pbuf += 4;
NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset);
NetServer::ReSendToPlayer(players[1]);
for(auto oit = observers.begin(); oit != observers.end(); ++oit)
......@@ -1308,6 +1312,8 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
#ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayers(cache_recorder, replay_recorder);
#endif
if(summon_code == 35595518)
SendDialogues(2002);
break;
}
case MSG_SPSUMMONED: {
......@@ -1351,7 +1357,8 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
break;
}
case MSG_CHAINING: {
pbuf += 16;
int effect_code = BufferIO::ReadInt32(pbuf);
pbuf += 12;
NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset);
NetServer::ReSendToPlayer(players[1]);
for(auto oit = observers.begin(); oit != observers.end(); ++oit)
......@@ -1359,6 +1366,9 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
#ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayers(cache_recorder, replay_recorder);
#endif
//2pick dialogues - hanoi force
if(effect_code == 44095762)
SendDialogues(2001);
break;
}
case MSG_CHAINED: {
......@@ -2018,5 +2028,19 @@ void SingleDuel::SwapPickDeck() {
pick_deck_saved[0] = pick_deck_saved[1];
pick_deck_saved[1] = pick_deck_saved_temp;
}
void SingleDuel::SendDialogues(int words) {
STOC_Chat scc;
scc.player = 15;
wchar_t* msg = L"[Server]: " + mainGame->GetSysString(words);
int msglen = BufferIO::CopyWStr(msg, scc.msg, 256);
NetServer::SendBufferToPlayer(players[0], STOC_CHAT, &scc, 4 + msglen * 2);
NetServer::ReSendToPlayer(players[1]);
for(auto pit = observers.begin(); pit != observers.end(); ++pit)
NetServer::ReSendToPlayer(*pit);
#ifdef YGOPRO_SERVER_MODE
if(cache_recorder)
NetServer::ReSendToPlayer(cache_recorder);
#endif
}
}
......@@ -42,6 +42,7 @@ public:
static void SingleTimer(evutil_socket_t fd, short events, void* arg);
//2pick
void SwapPickDeck();
void SendDialogues(int words);
protected:
//2pick
......
......@@ -445,6 +445,9 @@
!system 1624 投掷骰子结果:
#tips
!system 1700 可以用鼠标右键%ls
#2pick
!system 2001 臣服在汉诺崇高的力量面前吧!
!system 2002 正义双刃,解离连接的锁链,破杀而出!
#victory reason
!victory 0x0 投降
!victory 0x1 LP变成0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment