/Client/Release
/Client/Debug
/client/resourse.aps
-/client/bin/resources/textures
/client/buildversion.hpp
/client/get_auto_ver_client.vbs
/server/get_auto_ver_server.vbs
/server/buildversion.hpp
/server/Release
-/client/bin/resources/models
-/client/bin/resources/motions
-/client/bin/resources/fonts
+/ServerLauncher
+/client/bin/profile.log
+/client/bin/server
+/client/bin/tool
+/client/bin/wigets
+/client/bin/models
+/client/bin/motions
+/client/bin/screenshot
+/client/bin/log
+/client/bin/Log.txt
+/client/bin/user
+/client/bin/system/fonts/*.ttf
\r
\r
char Card::STORAGE_DIR[] = "storage";\r
-char Card::SCRIPT_PATH[] = "resources/js";\r
+char Card::SCRIPT_PATH[] = "system/js";\r
int Card::max_local_storage_size;\r
std::set<Card*> Card::ptr_set;\r
\r
\r
using namespace v8;\r
// icon_handle_ = ResourceManager::LoadCachedGraph((source_folder_ + "/" + icon_).c_str());\r
- icon_base_handle_ = ResourceManager::LoadCachedGraph(_T("resources/images/gui/gui_icon_base.png"));\r
- icon_base_close_handle_ = ResourceManager::LoadCachedGraph(_T("resources/images/gui/gui_icon_base_close.png"));\r
+ icon_base_handle_ = ResourceManager::LoadCachedGraph(_T("system/images/gui/gui_icon_base.png"));\r
+ icon_base_close_handle_ = ResourceManager::LoadCachedGraph(_T("system/images/gui/gui_icon_base_close.png"));\r
\r
// 入力ウィンドウのセットアップ\r
inputbox.enable_ = true;\r
class CardManager : public std::enable_shared_from_this<CardManager> {
public:
CardManager(const ManagerAccessorPtr& manager_accessor = ManagerAccessorPtr());
- void Load();
+ void Load(const std::string& dir);
void ProcessInput(InputManager* input);
void Update();
#include "resource.h"
const TCHAR* Core::CONFIG_PATH = _T("config.json");
-const TCHAR* Core::FONT_FILE_PATH = _T("resources/fonts/umeplus-p-gothic.ttf");
+const TCHAR* Core::FONT_FILE_PATH = _T("system/fonts/umeplus-p-gothic.ttf");
#ifdef _DEBUG
#define EXCEPTION_LOG(e) (e)
// \83f\83B\83\8c\83N\83g\83\8a\96¼\82Ì\95Û\91¶\81i\8fI\92[\82É'\'\82ª\82È\82¢\82È\82ç\95t\82¯\82é\81j\r
TCHAR szDirectoryPathName[_MAX_PATH];\r
_tcsncpy_s( szDirectoryPathName, _MAX_PATH, lpPathName, _TRUNCATE );\r
- if( '\\' != szDirectoryPathName[_tcslen(szDirectoryPathName) - 1] )\r
+ if( '/' != szDirectoryPathName[_tcslen(szDirectoryPathName) - 1] )\r
{ // \88ê\94Ô\8dÅ\8cã\82É'\'\82ª\82È\82¢\82È\82ç\95t\89Á\82·\82é\81B\r
- _tcsncat_s( szDirectoryPathName, _MAX_PATH, _T("\\"), _TRUNCATE );\r
+ _tcsncat_s( szDirectoryPathName, _MAX_PATH, _T("/"), _TRUNCATE );\r
}\r
\r
// \83f\83B\83\8c\83N\83g\83\8a\93à\82Ì\83t\83@\83C\83\8b\91\96\8d¸\97p\82Ì\83t\83@\83C\83\8b\96¼\8dì\90¬\r
FILE *json_file = 0;\r
\r
// resources/models/\93à\8c\9f\8dõ\81@\97ñ\8b\93\r
- hFind = FindFirstFile(_T(".\\resources\\models\\?*"), &win32fd_dir);\r
+ hFind = FindFirstFile(_T("./models/?*"), &win32fd_dir);\r
\r
if (hFind == INVALID_HANDLE_VALUE) {\r
return;\r
_tcscmp(win32fd_dir.cFileName,_T("."))!=0 &&\r
_tcscmp(win32fd_dir.cFileName,_T(".."))!=0 &&\r
_tcscmp(win32fd_dir.cFileName,_T(".svn"))!=0) {\r
- _tcscpy_s(tcsTmpDir,_T(".\\resources\\models\\"));\r
+ _tcscpy_s(tcsTmpDir,_T("./models/"));\r
_tcscat_s(tcsTmpDir,win32fd_dir.cFileName);\r
- _tcscat_s(tcsTmpDir,_T("\\"));\r
+ _tcscat_s(tcsTmpDir,_T("/"));\r
\r
ZeroMemory(tcsTmpPath,MAX_PATH);\r
_tcscpy_s(tcsTmpPath,tcsTmpDir);\r
bool flag = false;\r
/*for(int k = MAX_PATH - 1;k != 0;--k)\r
{\r
- if( cur_dir[k] == _T('\\') )\r
+ if( cur_dir[k] == _T('/') )\r
{\r
cur_dir[k] = 0;\r
break;\r
}*/\r
do {\r
std::wstring tmp_path = cur_dir;\r
- tmp_path += _T("\\resources\\models\\");\r
+ tmp_path += _T("/models/");\r
tmp_path += win32fd_dir.cFileName;\r
- tmp_path += _T("\\");\r
+ tmp_path += _T("/");\r
tmp_path += win32fd_pmd.cFileName;\r
pmd_paths.push_back(tmp_path);\r
} while (FindNextFile(hPmdFind, &win32fd_pmd));\r
prejson += tmp_f;\r
prejson += _T(",\n\t\t\t\"motions\":\n\t\t\t\t{\n\t\t\t\t\t\"stand\":\"basic_stand.vmd\",\n\t\t\t\t\t\"walk\": \t\"basic_walk.vmd\",\n\t\t\t\t\t\"run\":\t\"basic_run.vmd\"\n\t\t\t\t}\n\t\t}\n}");\r
TCHAR tmp_dir[MAX_PATH];\r
- _tcscpy_s(tmp_dir,_T(".\\resources\\models\\"));\r
+ _tcscpy_s(tmp_dir,_T("./models/"));\r
_tcscat_s(tmp_dir,pmd_author_name_);\r
_tcscat_s(tmp_dir,_T("\8e®"));\r
_tcscat_s(tmp_dir,tmp_w_m);\r
- _tcscat_s(tmp_dir,_T("\\"));\r
+ _tcscat_s(tmp_dir,_T("/"));\r
_wmkdir(tmp_dir);\r
delete [] tmp_w_m;\r
//delete [] tmp_w_a;\r
font_handle_(ResourceManager::default_font_handle())
{
base_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(
- _T("resources/images/gui/gui_board_bg.png"), 2, 2, 24, 24);
+ _T("system/images/gui/gui_board_bg.png"), 2, 2, 24, 24);
}
void MiniMap::UpdateDrag(InputManager* input, bool resizeable)
music_paths_.clear();
- path p("./resources/music");
+ path p("./system/music");
try{
if (exists(p) && is_directory(p)) {
se_paths_.clear();
- p = "./resources/se";
+ p = "./system/se";
try{
if (exists(p) && is_directory(p)) {
revision_(0)\r
{\r
name_tip_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(\r
- _T("resources/images/gui/gui_name_tip_base.png"), 2, 2, 12, 12);\r
+ _T("system/images/gui/gui_name_tip_base.png"), 2, 2, 12, 12);\r
\r
balloon_base_image_handle_ = ResourceManager::LoadCachedDivGraph<9>(\r
- _T("resources/images/gui/gui_balloon_base.png"), 3, 3, 24, 24);\r
+ _T("system/images/gui/gui_balloon_base.png"), 3, 3, 24, 24);\r
\r
}\r
\r
manager_accessor_(manager_accessor)
{
close_button_image_handle_ =
- ResourceManager::LoadCachedGraph(_T("resources/images/gui/gui_close_button.png"));
+ ResourceManager::LoadCachedGraph(_T("system/images/gui/gui_close_button.png"));
icon_base_image_handle_ =
- ResourceManager::LoadCachedGraph(_T("resources/images/gui/gui_icon_base.png"));
+ ResourceManager::LoadCachedGraph(_T("system/images/gui/gui_icon_base.png"));
}
void WindowManager::Init()
-\r
-/***MetaData***\r
-\r
-{\r
- "name": "\83\82\83f\83\8b\83\8a\83X\83g",\r
- "icon": "icon.png",\r
- "api_version": 1\r
-}\r
-\r
-***MetaData***/\r
-\r
-var list;\r
-list = new UI.List({\r
- docking: UI.DOCKING_TOP | UI.DOCKING_LEFT | UI.DOCKING_RIGHT | UI.DOCKING_BOTTOM\r
-});\r
-Model.onReload = function() {\r
- list.clearItems();\r
- var even_line = false;\r
- var model_names = Model.all();\r
- for (var i = 0; i < model_names.length; i++) {\r
- if ((/char:/).test(model_names[i])) {\r
- (function(model_name){\r
- list.addItem(\r
- new UI.Label({\r
- docking: UI.DOCKING_TOP | UI.DOCKING_LEFT | UI.DOCKING_RIGHT,\r
- text: model_name.substring(5),\r
- bgcolor: ((even_line = !even_line) ? "#EEAFEECC" : "#FFFFFFCC"),\r
- onclick: function() {\r
- Player.stopMotion();\r
- Account.updateModelName(model_name)\r
- }\r
- })\r
- );\r
- })(model_names[i])\r
- }\r
- }\r
-}\r
-\r
-Model.onReload();\r
-\r
-Card.board.width = 240;\r
-Card.board.height = 120;\r
-Card.board.docking = UI.DOCKING_BOTTOM | UI.DOCKING_RIGHT\r
+
+/***MetaData***
+
+{
+ "name": "\83\82\83f\83\8b\83\8a\83X\83g",
+ "icon": "icon.png",
+ "api_version": 1
+}
+
+***MetaData***/
+
+var list;
+list = new UI.List({
+ docking: UI.DOCKING_TOP | UI.DOCKING_LEFT | UI.DOCKING_RIGHT | UI.DOCKING_BOTTOM
+});
+Model.onReload = function() {
+ list.clearItems();
+ var even_line = false;
+ var model_names = Model.all();
+ for (var i = 0; i < model_names.length; i++) {
+ if ((/char:/).test(model_names[i])) {
+ (function(model_name){
+ list.addItem(
+ new UI.Label({
+ docking: UI.DOCKING_TOP | UI.DOCKING_LEFT | UI.DOCKING_RIGHT,
+ text: model_name.substring(5),
+ bgcolor: ((even_line = !even_line) ? "#EEAFEECC" : "#FFFFFFCC"),
+ onclick: function() {
+ Player.stopMotion();
+ Account.updateModelName(model_name)
+ }
+ })
+ );
+ })(model_names[i])
+ }
+ }
+}
+
+Model.onReload();
+
+Card.board.width = 240;
+Card.board.height = 120;
+Card.board.docking = UI.DOCKING_BOTTOM | UI.DOCKING_RIGHT
Card.board.addChild(list);
\ No newline at end of file
manager_accessor_->set_account_manager(account_manager_);
base_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(
- _T("resources/images/gui/gui_option_base.png"), 2, 2, 96, 96);
+ _T("system/images/gui/gui_option_base.png"), 2, 2, 96, 96);
tab_base_image_handle_ = ResourceManager::LoadCachedDivGraph<3>(
- _T("resources/images/gui/gui_option_tab_base.png"), 1, 3, 128, 32);
+ _T("system/images/gui/gui_option_tab_base.png"), 1, 3, 128, 32);
}
inputbox_->ReloadTabs();
inputbox_->Activate();
inputbox_->set_icon_image_handle(
- ResourceManager::LoadCachedGraph(_T("resources/images/gui/gui_icon_input.png")));
+ ResourceManager::LoadCachedGraph(_T("system/images/gui/gui_icon_input.png")));
window_manager_->AddWindow(inputbox_);
minimap_->UIPlacement(config_manager_->screen_width() - MINIMAP_MINSIZE - 12, 12);
minimap_->set_icon_image_handle(
- ResourceManager::LoadCachedGraph(_T("resources/images/gui/gui_icon_map.png")));
+ ResourceManager::LoadCachedGraph(_T("system/images/gui/gui_icon_map.png")));
window_manager_->AddWindow(minimap_);
player_manager_->Init();
MainLoop::~MainLoop()
{
- account_manager_->Save("account.xml");
+ account_manager_->Save("./user/account.xml");
}
void MainLoop::Begin()
manager_accessor_->set_account_manager(account_manager_);
base_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(
- _T("resources/images/gui/gui_option_base.png"), 2, 2, 96, 96);
+ _T("system/images/gui/gui_option_base.png"), 2, 2, 96, 96);
tab_base_image_handle_ = ResourceManager::LoadCachedDivGraph<3>(
- _T("resources/images/gui/gui_option_tab_base.png"), 1, 3, 128, 32);
+ _T("system/images/gui/gui_option_tab_base.png"), 1, 3, 128, 32);
}
selecting_index_(0)
{
selecting_bg_image_handle_ = ResourceManager::LoadCachedDivGraph<3>(
- _T("resources/images/gui/gui_option_selecting_bg.png"), 3, 1, 16, 20);
+ _T("system/images/gui/gui_option_selecting_bg.png"), 3, 1, 16, 20);
ptree item_array;
read_json(std::stringstream(unicode::ToString(items)), item_array);
reverse_color_(false)
{
input_bg_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(
- _T("resources/images/gui/gui_inputbox_input_bg.png"), 2, 2, 12, 12);
+ _T("system/images/gui/gui_inputbox_input_bg.png"), 2, 2, 12, 12);
ime_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(
- _T("resources/images/gui/gui_inputbox_ime_bg.png"), 2, 2, 12, 12);
+ _T("system/images/gui/gui_inputbox_ime_bg.png"), 2, 2, 12, 12);
input_handle_ = MakeKeyInput(400, FALSE, FALSE, FALSE);
font_handle_ = ResourceManager::default_font_handle();
font_handle_ = ResourceManager::default_font_handle();
bg_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(
- _T("resources/images/gui/gui_inputbox_bg.png"), 2, 2, 24, 24);
+ _T("system/images/gui/gui_inputbox_bg.png"), 2, 2, 24, 24);
tab_bg_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(
- _T("resources/images/gui/gui_inputbox_tab_bg.png"), 2, 2, 12, 12);
+ _T("system/images/gui/gui_inputbox_tab_bg.png"), 2, 2, 12, 12);
tab_bg_inactive_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(
- _T("resources/images/gui/gui_inputbox_tab_inactive_bg.png"), 2, 2, 12, 12);
+ _T("system/images/gui/gui_inputbox_tab_inactive_bg.png"), 2, 2, 12, 12);
ime_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(
- _T("resources/images/gui/gui_inputbox_ime_bg.png"), 2, 2, 12, 12);
+ _T("system/images/gui/gui_inputbox_ime_bg.png"), 2, 2, 12, 12);
- script_icon_image_handle_ = ResourceManager::LoadCachedGraph(_T("resources/images/gui/gui_inputbox_tab_script_icon.png"));
+ script_icon_image_handle_ = ResourceManager::LoadCachedGraph(_T("system/images/gui/gui_inputbox_tab_script_icon.png"));
int screen_width, screen_height;
GetScreenState(&screen_width, &screen_height, nullptr);
drag_resize_offset_rect_(-1, -1, -1, -1)
{
base_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(
- _T("resources/images/gui/gui_board_bg.png"), 2, 2, 24, 24);
+ _T("system/images/gui/gui_board_bg.png"), 2, 2, 24, 24);
}
Handle<Value> UIBoard::Property_max_width(Local<String> property, const AccessorInfo &info)
UIButton::UIButton()
{
base_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(
- _T("resources/images/gui/gui_button_base.png"), 2, 2, 12, 12);
+ _T("system/images/gui/gui_button_base.png"), 2, 2, 12, 12);
}
UIButton::~UIButton()
drag_offset_y_(-1)
{
scrollbar_base_image_handle_ = ResourceManager::LoadCachedDivGraph<4>(
- _T("resources/images/gui/gui_button_base.png"), 2, 2, 12, 12);
+ _T("system/images/gui/gui_button_base.png"), 2, 2, 12, 12);
}
UIList::~UIList()
#define MMO_VERSION_TOSTRING(val) MMO_VERSION_TOSTRING_(val)
#define MMO_VERSION_MAJOR 0
-#define MMO_VERSION_MINOR 3
-#define MMO_VERSION_REVISION 11
+#define MMO_VERSION_MINOR 4
+#define MMO_VERSION_REVISION 0
#define MMO_PROTOCOL_VERSION 2
--- /dev/null
+MikuMikuOnline server 0.1.7
+
+◆サーバーの起動方法
+
+Server.exeを実行します。
+外部からの接続を受け付けるにはポートの開放が必要になります。
+
+◆ポートについて
+
+TCPポート39390, UDPポート39390を使用します。
+
+
+◆サーバーの設定
+
+config.jsonをテキストエディタで編集することで、サーバーの設定を変更することができます。
+
+[port]
+ 待ち受けポートの番号です。通常は39390のままにしてください。
+
+[server_name]
+ サーバーの名前です。自由に設定できます。
+
+[stage]
+ サーバーが使用するステージ名です。
+ 指定したステージを持っていないクライアントは接続を拒否されます。
+
+[capacity]
+ サーバーの最大同時接続数です。
+
+
+[receive_limit_1]
+ 平均受信量制限です。単位は byte/sです。
+ クライアントからの平均受信量がこの数値を超えている間、
+ そのクライアントからの受信を無視します。
+
+[receive_limit_2]
+ 平均受信量制限です。単位は byte/sです。
+ クライアントからの平均受信量がこの数値を超えた瞬間に、
+ そのクライアントとのセッションを強制的に切断します。
+
+
+[blocking_address_patterns]
+ 接続を拒否するIPアドレスのリストです。ワイルドカードを使用できます。
+
+
+--
+
+mmo@h2so5.net
+http://mmo.h2so5.net/
\ No newline at end of file