Commit ac3baf79 authored by nanahira's avatar nanahira

mg_custom

parents 6a15c97a 14a10e97
## YGOPro(Server) ## YGOPro-222DIY
OCG server data for 222/7210 The server of YGOPRO 222DIY group
[![Build Status](https://travis-ci.org/purerosefallen/ygopro-7210srv.svg?branch=master)](https://travis-ci.org/purerosefallen/ygopro-7210srv) [![Build Status](https://travis-ci.org/purerosefallen/ygopro-222DIY.svg?branch=master)](https://travis-ci.org/purerosefallen/ygopro-222DIY)
\ No newline at end of file \ No newline at end of file
...@@ -26,6 +26,9 @@ install: ...@@ -26,6 +26,9 @@ install:
# let premake happy # let premake happy
- xcopy /E premake\* . - xcopy /E premake\* .
# patch lua
# - patch -p0 < lua\lua.patch
# premake # premake
- premake5 vs2015 - premake5 vs2015
...@@ -37,6 +40,7 @@ build: ...@@ -37,6 +40,7 @@ build:
after_build: after_build:
- ps: move bin\release\ygopro.exe . - ps: move bin\release\ygopro.exe .
- git clone https://github.com/Smile-DK/ygopro-svrelease
- bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/purerosefallen/ygopro-server/archive/master.zip ; exit 0" - bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/purerosefallen/ygopro-server/archive/master.zip ; exit 0"
- 7z x ygopro-server-master.zip - 7z x ygopro-server-master.zip
...@@ -124,3 +128,4 @@ cache: ...@@ -124,3 +128,4 @@ cache:
- irrKlang-32bit-1.5.0.zip - irrKlang-32bit-1.5.0.zip
- premake-5.0.0-alpha10-windows.zip - premake-5.0.0-alpha10-windows.zip
- Redis-x64-3.2.100.zip - Redis-x64-3.2.100.zip
...@@ -33,9 +33,9 @@ HostInfo game_info; ...@@ -33,9 +33,9 @@ HostInfo game_info;
void Game::MainServerLoop() { void Game::MainServerLoop() {
deckManager.LoadLFList(); deckManager.LoadLFList();
LoadBetaDB();
LoadExpansionDB(); LoadExpansionDB();
dataManager.LoadDB("cards.cdb"); dataManager.LoadDB("cards.cdb");
aServerPort = NetServer::StartServer(aServerPort); aServerPort = NetServer::StartServer(aServerPort);
NetServer::InitDuel(); NetServer::InitDuel();
printf("%u\n", aServerPort); printf("%u\n", aServerPort);
...@@ -49,6 +49,38 @@ void Game::MainServerLoop() { ...@@ -49,6 +49,38 @@ void Game::MainServerLoop() {
#endif #endif
} }
} }
void Game::LoadBetaDB() {
#ifdef _WIN32
char fpath[1000];
WIN32_FIND_DATAW fdataw;
HANDLE fh = FindFirstFileW(L"./beta/*.cdb", &fdataw);
if(fh != INVALID_HANDLE_VALUE) {
do {
if(!(fdataw.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
char fname[780];
BufferIO::EncodeUTF8(fdataw.cFileName, fname);
sprintf(fpath, "./beta/%s", fname);
dataManager.LoadDB(fpath);
}
} while(FindNextFileW(fh, &fdataw));
FindClose(fh);
}
#else
DIR * dir;
struct dirent * dirp;
if((dir = opendir("./beta/")) != NULL) {
while((dirp = readdir(dir)) != NULL) {
size_t len = strlen(dirp->d_name);
if(len < 5 || strcasecmp(dirp->d_name + len - 4, ".cdb") != 0)
continue;
char filepath[1000];
sprintf(filepath, "./beta/%s", dirp->d_name);
dataManager.LoadDB(filepath);
}
closedir(dir);
}
#endif
}
#else //YGOPRO_SERVER_MODE #else //YGOPRO_SERVER_MODE
bool Game::Initialize() { bool Game::Initialize() {
srand(time(0)); srand(time(0));
......
...@@ -102,6 +102,7 @@ public: ...@@ -102,6 +102,7 @@ public:
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
void MainServerLoop(); void MainServerLoop();
void LoadExpansionDB(); void LoadExpansionDB();
void LoadBetaDB();
void AddDebugMsg(char* msgbuf); void AddDebugMsg(char* msgbuf);
#else #else
void MainLoop(); void MainLoop();
......
...@@ -741,7 +741,12 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -741,7 +741,12 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
//modded //modded
case 10: case 10:
case 11: case 11:
<<<<<<< HEAD
case 12: { case 12: {
=======
case 12:
case 13: {
>>>>>>> 14a10e9739978823dada7a651464807daa69d5a3
NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset);
NetServer::SendBufferToPlayer(players[1], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[1], STOC_GAME_MSG, offset, pbuf - offset);
for(auto oit = observers.begin(); oit != observers.end(); ++oit) for(auto oit = observers.begin(); oit != observers.end(); ++oit)
......
...@@ -667,7 +667,12 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -667,7 +667,12 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
} }
//modded //modded
case 11: case 11:
<<<<<<< HEAD
case 12: { case 12: {
=======
case 12:
case 13: {
>>>>>>> 14a10e9739978823dada7a651464807daa69d5a3
for(int i = 0; i < 4; ++i) for(int i = 0; i < 4; ++i)
NetServer::SendBufferToPlayer(players[i], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[i], STOC_GAME_MSG, offset, pbuf - offset);
for(auto oit = observers.begin(); oit != observers.end(); ++oit) for(auto oit = observers.begin(); oit != observers.end(); ++oit)
......
...@@ -783,6 +783,10 @@ public: ...@@ -783,6 +783,10 @@ public:
#define HINT_CODE 8 #define HINT_CODE 8
#define HINT_NUMBER 9 #define HINT_NUMBER 9
#define HINT_CARD 10 #define HINT_CARD 10
//custom hints in KoishiPro for custom sound
#define HINT_MUSIC 11
#define HINT_SOUND 12
#define HINT_MUSIC_OGG 13
// //
#define CHINT_TURN 1 #define CHINT_TURN 1
#define CHINT_CARD 2 #define CHINT_CARD 2
......
...@@ -655,10 +655,16 @@ interpreter::interpreter(duel* pd): coroutines(256) { ...@@ -655,10 +655,16 @@ interpreter::interpreter(duel* pd): coroutines(256) {
lua_setglobal(lua_state, "EFFECT_REMOVE_LINK_MARKER_KOISHI"); lua_setglobal(lua_state, "EFFECT_REMOVE_LINK_MARKER_KOISHI");
lua_pushinteger(lua_state, EFFECT_CANNOT_LOSE_KOISHI); lua_pushinteger(lua_state, EFFECT_CANNOT_LOSE_KOISHI);
lua_setglobal(lua_state, "EFFECT_CANNOT_LOSE_KOISHI"); lua_setglobal(lua_state, "EFFECT_CANNOT_LOSE_KOISHI");
//2pick rule lua_pushinteger(lua_state, HINT_MUSIC);
load_script((char*) "./2pick/pick.lua"); lua_setglobal(lua_state, "HINT_MUSIC");
lua_pushinteger(lua_state, HINT_SOUND);
lua_setglobal(lua_state, "HINT_SOUND");
lua_pushinteger(lua_state, HINT_MUSIC_OGG);
lua_setglobal(lua_state, "HINT_MUSIC_OGG");
//load init.lua by MLD //load init.lua by MLD
load_script((char*) "./expansions/script/init.lua"); load_script((char*) "./expansions/script/init.lua");
//2pick rule
load_script((char*) "./2pick/pick.lua");
} }
interpreter::~interpreter() { interpreter::~interpreter() {
lua_close(lua_state); lua_close(lua_state);
......
...@@ -3379,7 +3379,7 @@ int32 field::process_battle_command(uint16 step) { ...@@ -3379,7 +3379,7 @@ int32 field::process_battle_command(uint16 step) {
pduel->write_buffer32(indestructable_effect->owner->data.code); pduel->write_buffer32(indestructable_effect->owner->data.code);
if(indestructable_effect->description) { if(indestructable_effect->description) {
pduel->write_buffer8(MSG_HINT); pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(12); pduel->write_buffer8(HINT_SOUND);
pduel->write_buffer8(0); pduel->write_buffer8(0);
pduel->write_buffer32(indestructable_effect->description); pduel->write_buffer32(indestructable_effect->description);
} }
...@@ -3396,7 +3396,7 @@ int32 field::process_battle_command(uint16 step) { ...@@ -3396,7 +3396,7 @@ int32 field::process_battle_command(uint16 step) {
pduel->write_buffer32(indestructable_effect->owner->data.code); pduel->write_buffer32(indestructable_effect->owner->data.code);
if(indestructable_effect->description) { if(indestructable_effect->description) {
pduel->write_buffer8(MSG_HINT); pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(12); pduel->write_buffer8(HINT_SOUND);
pduel->write_buffer8(0); pduel->write_buffer8(0);
pduel->write_buffer32(indestructable_effect->description); pduel->write_buffer32(indestructable_effect->description);
} }
......
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