Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
mycard
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
List
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
syntax_j
mycard
Commits
83adc22c
Commit
83adc22c
authored
Mar 28, 2014
by
神楽坂玲奈
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
0.0.1 released
parent
c4d05080
Changes
12
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
261 additions
and
46 deletions
+261
-46
README.md
README.md
+1
-1
app/css/app.css
app/css/app.css
+13
-0
app/css/app.styl
app/css/app.styl
+17
-1
app/index.html
app/index.html
+1
-3
app/js/controllers.coffee
app/js/controllers.coffee
+65
-6
app/js/controllers.js
app/js/controllers.js
+127
-22
app/js/controllers.map
app/js/controllers.map
+1
-1
app/js/tunnel.coffee
app/js/tunnel.coffee
+2
-1
app/js/tunnel.js
app/js/tunnel.js
+3
-2
app/js/tunnel.map
app/js/tunnel.map
+1
-1
app/partials/app_show.html
app/partials/app_show.html
+14
-8
使用说明.txt
使用说明.txt
+16
-0
No files found.
README.md
View file @
83adc22c
...
...
@@ -147,7 +147,7 @@
*
XMPP聊天室 conference.my-card.in
*
以下全都为临时,开发用
*
用户认证 https://my-card.in/users/me.json?name=用户名&password=密码
*
反重力场 ws://1
22.0.65.69
:10800/
*
反重力场 ws://1
15.29.191.63
:10800/
*
应用列表 (本地app目录) apps.json
*
应用元文件 (本地app目录) meta
...
...
app/css/app.css
View file @
83adc22c
...
...
@@ -71,6 +71,9 @@ iframe,
.navbar
>
.container
{
padding-right
:
85px
;
}
.nav-sidebar
>
.active
>
a
:hover
{
background-color
:
#4169e1
;
}
.main_wrapper
{
float
:
left
;
width
:
100%
;
...
...
@@ -96,6 +99,13 @@ iframe,
width
:
72px
;
margin-right
:
12px
;
}
.achievement
{
margin-right
:
4px
;
margin-bottom
:
8px
;
}
.achievement.locked
{
-webkit-filter
:
grayscale
(
100%
);
}
#candy
{
height
:
207px
;
width
:
100%
;
...
...
@@ -159,3 +169,6 @@ iframe,
#roster_title
.btn
{
border-right
:
none
;
}
.modal
{
overflow-y
:
auto
;
}
app/css/app.styl
View file @
83adc22c
...
...
@@ -50,6 +50,12 @@ a, button, input, span, p, li, td, th, h1, h2, h3, h4, h5, h6, iframe, .bootstra
.navbar > .container
padding-right: 85px;
//应用列表
.nav-sidebar > .active > a:hover {
background-color: royalblue;
}
//游戏内容区域
.main_wrapper
//background linear-gradient(to right, rgba(255,255,255,0.9), rgba(255,255,255,0.2), rgba(255,255,255,0.2), rgba(255,255,255,0.2), rgba(255,255,255,0.9)), url(../apps/th135/readme/images/th13.5_XQL_OP.jpg)
...
...
@@ -76,6 +82,12 @@ a, button, input, span, p, li, td, th, h1, h2, h3, h4, h5, h6, iframe, .bootstra
width: 72px;
margin-right 12px
.achievement
margin-right:4px;
margin-bottom:8px;
.achievement.locked
-webkit-filter:grayscale(100%)
//聊天室
#candy {
height: 207px;
...
...
@@ -160,3 +172,7 @@ a, button, input, span, p, li, td, th, h1, h2, h3, h4, h5, h6, iframe, .bootstra
#roster_title .btn {
border-right: none;
}
//modal
.modal
overflow-y: auto;
\ No newline at end of file
app/index.html
View file @
83adc22c
...
...
@@ -61,7 +61,7 @@
<div
id=
"wrapper"
>
<div
class=
"col-sm-3 col-md-2 sidebar"
ng-controller=
"AppsListController"
>
<ul
class=
"nav nav-sidebar"
>
<li
ng-repeat=
"app in apps"
>
<li
ng-repeat=
"app in apps"
ng-class=
"active(app.id)"
>
<a
href=
"#/apps/{{app.id}}"
>
{{app.name}}
</a>
</li>
</ul>
...
...
@@ -94,8 +94,6 @@
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
...
...
app/js/controllers.coffee
View file @
83adc22c
...
...
@@ -7,23 +7,39 @@ mkdirp = require 'mkdirp'
rmdir
=
require
'rmdir'
gui
=
require
'nw.gui'
Datastore
=
require
'nw_nedb'
db
=
apps
:
new
Datastore
({
filename
:
path
.
join
(
gui
.
App
.
dataPath
,
'apps.db'
),
autoload
:
true
})
local
:
new
Datastore
({
filename
:
path
.
join
(
gui
.
App
.
dataPath
,
'local.db'
),
autoload
:
true
})
profile
:
new
Datastore
({
filename
:
path
.
join
(
gui
.
App
.
dataPath
,
'profile.db'
),
autoload
:
true
})
angular
.
module
(
'maotama.controllers'
,
[])
.
controller
'AppsListController'
,
(
$scope
,
$http
)
->
.
controller
'AppsListController'
,
[
'$scope'
,
'$routeParams'
,
'$http'
,
'$location'
,
(
$scope
,
$routeParams
,
$http
,
$location
)
->
$scope
.
orderProp
=
'id'
;
$http
.
get
(
'apps.json'
).
success
(
data
)
->
console
.
log
data
db
.
apps
.
remove
{},
{
multi
:
true
},
(
err
,
numRemoved
)
->
throw
err
if
err
db
.
apps
.
insert
data
,
(
err
,
newDocs
)
->
throw
err
if
err
$scope
.
apps
=
data
if
!
$routeParams
.
app_id
$location
.
path
(
"/apps/
#{
data
[
0
].
id
}
"
);
$scope
.
$apply
()
else
$scope
.
$digest
()
$scope
.
active
=
(
app_id
)
->
"active"
if
$routeParams
.
app_id
==
app_id
$scope
.
category_active
=
(
category
)
->
if
$scope
.
apps
app
=
null
for
a
in
$scope
.
apps
if
a
.
id
==
$routeParams
.
app_id
app
=
a
if
app
if
app
.
category
==
category
"active"
]
.
controller
'AppsShowController'
,
[
'$scope'
,
'$routeParams'
,
(
$scope
,
$routeParams
)
->
db
.
apps
.
findOne
{
id
:
$routeParams
.
app_id
},
(
err
,
doc
)
->
throw
err
if
err
...
...
@@ -35,6 +51,16 @@ angular.module('maotama.controllers', [])
db
.
local
.
findOne
{
id
:
$routeParams
.
app_id
},
(
err
,
doc
)
->
$scope
.
local
=
doc
?
{}
db
.
profile
.
findOne
{
id
:
$routeParams
.
app_id
},
(
err
,
doc
)
->
if
doc
#and doc.achievements.length == $scope.app.achievements.length
$scope
.
profile
=
doc
$scope
.
$digest
();
else
$scope
.
profile
=
id
:
$routeParams
.
app_id
achievements
:
([]
for
achievement
in
$scope
.
app
.
achievements
)
if
$scope
.
app
.
achievements
db
.
profile
.
insert
$scope
.
profile
,
(
err
,
newDoc
)
->
throw
err
if
err
$scope
.
$digest
();
$scope
.
add
=
(
installation
)
->
...
...
@@ -51,7 +77,6 @@ angular.module('maotama.controllers', [])
throw
err
if
err
$scope
.
$digest
();
$scope
.
install
=
()
->
$scope
.
runtime
.
installing
[
$scope
.
app
.
id
]
=
process
:
0
label
:
'正在连接'
...
...
@@ -143,11 +168,45 @@ angular.module('maotama.controllers', [])
when
'ACHIEVEMENT'
achievement
=
$scope
.
app
.
achievements
[
$
(
command
).
attr
(
'type'
)]
achievement_item
=
achievement
.
items
[
$
(
command
).
attr
(
'id'
)]
$scope
.
profile
.
achievements
[
$
(
command
).
attr
(
'type'
)]
?=
{}
return
if
$scope
.
profile
.
achievements
[
$
(
command
).
attr
(
'type'
)][
$
(
command
).
attr
(
'id'
)]
window
.
LOCAL_NW
.
desktopNotifications
.
notify
achievement_item
.
icon
,
"获得
#{
achievement
.
name
}
:
#{
achievement_item
.
name
}
"
,
achievement_item
.
description
$scope
.
profile
.
achievements
[
$
(
command
).
attr
(
'type'
)][
$
(
command
).
attr
(
'id'
)]
=
created_at
:
new
Date
()
updated_at
:
new
Date
()
count
:
1
db
.
profile
.
update
{
id
:
$scope
.
app
.
id
},
$scope
.
profile
,
(
err
,
numReplaced
,
newDoc
)
->
throw
err
if
err
$scope
.
$digest
();
else
window
.
LOCAL_NW
.
desktopNotifications
.
notify
$scope
.
app
.
icon
,
"unknown command"
,
matches
[
1
]
game
.
on
'close'
,
(
code
)
->
$scope
.
runtime
.
running
=
false
$scope
.
$digest
();
$scope
.
achievement_unlocked_count
=
(
category
)
->
$scope
.
profile
.
achievements
[
category
].
length
$scope
.
achievement_total_count
=
(
category
)
->
$scope
.
app
.
achievements
[
category
].
items
.
length
$scope
.
achievement_last_unlocked
=
(
category
)
->
last
=
null
last_index
=
null
for
index
,
achievement
of
$scope
.
profile
.
achievements
[
category
]
if
!
last
or
result
.
created_at
<
last
.
created_at
last
=
achievement
last_index
=
index
$scope
.
app
.
achievements
[
category
].
items
[
index
]
$scope
.
achievement_locked
=
(
category
,
index
)
->
if
$scope
.
profile
.
achievements
[
category
][
index
]
''
else
'locked'
]
app/js/controllers.js
View file @
83adc22c
...
...
@@ -26,13 +26,17 @@
local
:
new
Datastore
({
filename
:
path
.
join
(
gui
.
App
.
dataPath
,
'
local.db
'
),
autoload
:
true
}),
profile
:
new
Datastore
({
filename
:
path
.
join
(
gui
.
App
.
dataPath
,
'
profile.db
'
),
autoload
:
true
})
};
angular
.
module
(
'
maotama.controllers
'
,
[]).
controller
(
'
AppsListController
'
,
function
(
$scope
,
$http
)
{
angular
.
module
(
'
maotama.controllers
'
,
[]).
controller
(
'
AppsListController
'
,
[
'
$scope
'
,
'
$routeParams
'
,
'
$http
'
,
'
$location
'
,
function
(
$scope
,
$routeParams
,
$http
,
$location
)
{
$scope
.
orderProp
=
'
id
'
;
return
$http
.
get
(
'
apps.json
'
).
success
(
function
(
data
)
{
console
.
log
(
data
);
$http
.
get
(
'
apps.json
'
).
success
(
function
(
data
)
{
return
db
.
apps
.
remove
({},
{
multi
:
true
},
function
(
err
,
numRemoved
)
{
...
...
@@ -44,11 +48,40 @@
throw
err
;
}
$scope
.
apps
=
data
;
if
(
!
$routeParams
.
app_id
)
{
$location
.
path
(
"
/apps/
"
+
data
[
0
].
id
);
return
$scope
.
$apply
();
}
else
{
return
$scope
.
$digest
();
}
});
});
});
}).
controller
(
'
AppsShowController
'
,
[
$scope
.
active
=
function
(
app_id
)
{
if
(
$routeParams
.
app_id
===
app_id
)
{
return
"
active
"
;
}
};
return
$scope
.
category_active
=
function
(
category
)
{
var
a
,
app
,
_i
,
_len
,
_ref
;
if
(
$scope
.
apps
)
{
app
=
null
;
_ref
=
$scope
.
apps
;
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
a
=
_ref
[
_i
];
if
(
a
.
id
===
$routeParams
.
app_id
)
{
app
=
a
;
}
}
if
(
app
)
{
if
(
app
.
category
===
category
)
{
return
"
active
"
;
}
}
}
};
}
]).
controller
(
'
AppsShowController
'
,
[
'
$scope
'
,
'
$routeParams
'
,
function
(
$scope
,
$routeParams
)
{
db
.
apps
.
findOne
({
id
:
$routeParams
.
app_id
...
...
@@ -66,7 +99,35 @@
id
:
$routeParams
.
app_id
},
function
(
err
,
doc
)
{
$scope
.
local
=
doc
!=
null
?
doc
:
{};
return
db
.
profile
.
findOne
({
id
:
$routeParams
.
app_id
},
function
(
err
,
doc
)
{
var
achievement
;
if
(
doc
)
{
$scope
.
profile
=
doc
;
return
$scope
.
$digest
();
}
else
{
$scope
.
profile
=
{
id
:
$routeParams
.
app_id
,
achievements
:
$scope
.
app
.
achievements
?
(
function
()
{
var
_i
,
_len
,
_ref
,
_results
;
_ref
=
$scope
.
app
.
achievements
;
_results
=
[];
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
achievement
=
_ref
[
_i
];
_results
.
push
([]);
}
return
_results
;
})()
:
void
0
};
return
db
.
profile
.
insert
(
$scope
.
profile
,
function
(
err
,
newDoc
)
{
if
(
err
)
{
throw
err
;
}
return
$scope
.
$digest
();
});
}
});
});
});
$scope
.
add
=
function
(
installation
)
{
...
...
@@ -186,7 +247,7 @@
});
});
};
return
$scope
.
run
=
function
()
{
$scope
.
run
=
function
()
{
var
game
;
$scope
.
runtime
.
running
=
true
;
game
=
child_process
.
spawn
(
$scope
.
app
.
main
,
[],
{
...
...
@@ -194,24 +255,41 @@
});
game
.
stdout
.
setEncoding
(
'
utf8
'
);
game
.
stdout
.
on
(
'
data
'
,
function
(
data
)
{
var
achievement
,
achievement_item
,
command
,
matches
,
_
i
,
_len
,
_ref
,
_results
;
var
achievement
,
achievement_item
,
command
,
matches
,
_
base
,
_i
,
_len
,
_name
,
_ref
;
console
.
log
(
data
);
if
(
matches
=
data
.
match
(
/<maotama>
(
.+
)
<
\/
maotama>/
))
{
_ref
=
$
(
matches
[
1
]);
_results
=
[];
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
command
=
_ref
[
_i
];
switch
(
command
.
tagName
)
{
case
'
ACHIEVEMENT
'
:
achievement
=
$scope
.
app
.
achievements
[
$
(
command
).
attr
(
'
type
'
)];
achievement_item
=
achievement
.
items
[
$
(
command
).
attr
(
'
id
'
)];
_results
.
push
(
window
.
LOCAL_NW
.
desktopNotifications
.
notify
(
achievement_item
.
icon
,
"
获得
"
+
achievement
.
name
+
"
:
"
+
achievement_item
.
name
,
achievement_item
.
description
));
if
((
_base
=
$scope
.
profile
.
achievements
)[
_name
=
$
(
command
).
attr
(
'
type
'
)]
==
null
)
{
_base
[
_name
]
=
{};
}
if
(
$scope
.
profile
.
achievements
[
$
(
command
).
attr
(
'
type
'
)][
$
(
command
).
attr
(
'
id
'
)])
{
return
;
}
window
.
LOCAL_NW
.
desktopNotifications
.
notify
(
achievement_item
.
icon
,
"
获得
"
+
achievement
.
name
+
"
:
"
+
achievement_item
.
name
,
achievement_item
.
description
);
$scope
.
profile
.
achievements
[
$
(
command
).
attr
(
'
type
'
)][
$
(
command
).
attr
(
'
id
'
)]
=
{
created_at
:
new
Date
(),
updated_at
:
new
Date
(),
count
:
1
};
db
.
profile
.
update
({
id
:
$scope
.
app
.
id
},
$scope
.
profile
,
function
(
err
,
numReplaced
,
newDoc
)
{
if
(
err
)
{
throw
err
;
}
return
$scope
.
$digest
();
});
break
;
default
:
_results
.
push
(
window
.
LOCAL_NW
.
desktopNotifications
.
notify
(
$scope
.
app
.
icon
,
"
unknown command
"
,
matches
[
1
])
);
window
.
LOCAL_NW
.
desktopNotifications
.
notify
(
$scope
.
app
.
icon
,
"
unknown command
"
,
matches
[
1
]
);
}
}
return
_results
;
}
});
return
game
.
on
(
'
close
'
,
function
(
code
)
{
...
...
@@ -219,6 +297,33 @@
return
$scope
.
$digest
();
});
};
$scope
.
achievement_unlocked_count
=
function
(
category
)
{
return
$scope
.
profile
.
achievements
[
category
].
length
;
};
$scope
.
achievement_total_count
=
function
(
category
)
{
return
$scope
.
app
.
achievements
[
category
].
items
.
length
;
};
$scope
.
achievement_last_unlocked
=
function
(
category
)
{
var
achievement
,
index
,
last
,
last_index
,
_ref
;
last
=
null
;
last_index
=
null
;
_ref
=
$scope
.
profile
.
achievements
[
category
];
for
(
index
in
_ref
)
{
achievement
=
_ref
[
index
];
if
(
!
last
||
result
.
created_at
<
last
.
created_at
)
{
last
=
achievement
;
last_index
=
index
;
}
}
return
$scope
.
app
.
achievements
[
category
].
items
[
index
];
};
return
$scope
.
achievement_locked
=
function
(
category
,
index
)
{
if
(
$scope
.
profile
.
achievements
[
category
][
index
])
{
return
''
;
}
else
{
return
'
locked
'
;
}
};
}
]);
...
...
app/js/controllers.map
View file @
83adc22c
This diff is collapsed.
Click to expand it.
app/js/tunnel.coffee
View file @
83adc22c
...
...
@@ -41,7 +41,7 @@ listen = (port, address='127.0.0.1', callback)->
else
throw
'unknown message'
console
.
log
"正在连接服务器"
client
.
connect
"ws://1
22.0.65.69
:10800/"
,
"shinkirou"
client
.
connect
"ws://1
15.29.191.63
:10800/"
,
"shinkirou"
exports
.
listen
=
(
port
,
address
=
'127.0.0.1'
,
callback
)
->
...
...
@@ -54,6 +54,7 @@ exports.listen = (port, address='127.0.0.1', callback)->
protocol
:
raw
.
Protocol
.
UDP
#success
puncher
=
require
'./puncher'
listen
(
port
,
address
,
callback
)
catch
e
#failed, need elevate
#FUCK UAC.
...
...
app/js/tunnel.js
View file @
83adc22c
...
...
@@ -57,7 +57,7 @@
});
});
console
.
log
(
"
正在连接服务器
"
);
return
client
.
connect
(
"
ws://1
22.0.65.69
:10800/
"
,
"
shinkirou
"
);
return
client
.
connect
(
"
ws://1
15.29.191.63
:10800/
"
,
"
shinkirou
"
);
};
exports
.
listen
=
function
(
port
,
address
,
callback
)
{
...
...
@@ -72,7 +72,8 @@
socket
=
raw
.
createSocket
({
protocol
:
raw
.
Protocol
.
UDP
});
return
puncher
=
require
(
'
./puncher
'
);
puncher
=
require
(
'
./puncher
'
);
return
listen
(
port
,
address
,
callback
);
}
catch
(
_error
)
{
e
=
_error
;
WebSocketServer
=
require
(
'
nw_websocket
'
).
server
;
...
...
app/js/tunnel.map
View file @
83adc22c
...
...
@@ -6,5 +6,5 @@
"tunnel.coffee"
],
"names": [],
"mappings": "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
BF;OAHF;KAFe;EAAA,CA7CjB,CAAA;AAAA"
"mappings": "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
BF;OAHF;KAFe;EAAA,CA7CjB,CAAA;AAAA"
}
\ No newline at end of file
app/partials/app_show.html
View file @
83adc22c
...
...
@@ -107,22 +107,28 @@
<img
class=
"friend img-thumbnail"
src=
"https://lh5.googleusercontent.com/-crYEtoQ-4Ho/AAAAAAAAAAI/AAAAAAAAAZE/OVA-78yQjU8/s46-c-k-no/photo.jpg"
>
<img
class=
"friend img-thumbnail"
src=
"https://lh5.googleusercontent.com/-crYEtoQ-4Ho/AAAAAAAAAAI/AAAAAAAAAZE/OVA-78yQjU8/s46-c-k-no/photo.jpg"
>
<h2
class=
"sub-header"
>
收集
</h2>
<h2
class=
"sub-header"
ng-repeat-start=
"achievement in app.achievements"
>
{{achievement.name}}
</h2>
<div
class=
"clearfix"
>
<img
class=
"achievement_image img-thumbnail pull-left"
src=
"https://lh5.googleusercontent.com/-crYEtoQ-4Ho/AAAAAAAAAAI/AAAAAAAAAZE/OVA-78yQjU8/s46-c-k-no/photo.jpg
"
>
<div
class=
"clearfix"
ng-if=
"achievement_unlocked_count($index) > 0"
>
<img
class=
"achievement_image img-thumbnail pull-left"
ng-src=
"{{achievement_last_unlocked($index).icon}}
"
>
<div
class=
"pull-left achievement_text"
>
<p>
最近获得的新
符卡
<br>
HJ的BUG
</p>
<span
class=
"help-block"
>
你已获得
120 / 200 的符卡 (60
%)
</span>
<p>
最近获得的新
{{achievement.name}}
<br>
{{achievement_last_unlocked($index).name}}
</p>
<span
class=
"help-block"
>
你已获得
{{achievement_unlocked_count($index)}} / {{achievement_total_count($index)}} 的{{achievement.name}} ({{100*achievement_unlocked_count($index)/achievement_total_count($index)}}
%)
</span>
</div>
</div>
<div
class=
"progress"
>
<div
class=
"progress-bar"
role=
"progressbar"
aria-valuenow=
"
60"
aria-valuemin=
"0"
aria-valuemax=
"100"
style=
"width: 60
%;"
>
<div
class=
"progress"
ng-if=
"achievement_unlocked_count($index) > 0"
>
<div
class=
"progress-bar"
role=
"progressbar"
aria-valuenow=
"
{{achievement_unlocked_count($index)}}"
aria-valuemin=
"0"
aria-valuemax=
"{{achievement_total_count($index)}}"
style=
"width: {{100*achievement_unlocked_count($index)/achievement_total_count($index)}}
%;"
>
<span
class=
"sr-only"
>
60% Complete
</span>
</div>
</div>
<div
ng-repeat-end
>
<a
href=
"#"
data-toggle=
"tooltip"
data-container=
"body"
title=
"Some tooltip text!"
ng-repeat=
"item in achievement.items"
>
<img
class=
"achievement img-thumbnail"
ng-class=
"achievement_locked($parent.$index, $index)"
src=
"{{item.icon}}"
>
</a>
</div>
<div
ng-show=
"local.installation"
>
<h2
class=
"sub-header"
>
设置
</h2>
<button
id=
"app_uninstall"
type=
"button"
class=
"btn btn-default"
data-toggle=
"modal"
data-target=
"#app_uninstall_modal"
ng-disable=
"runtime.running || runtime.uninstalling"
>
...
...
使用说明.txt
0 → 100644
View file @
83adc22c
现在还在早期开发阶段,里面绝大部分功能都是不能用的,仅仅能拿来联FXTZ/楼了就发出来了
不要看什么功能都乱点,只进行下面的操作:
从左边游戏列表里 选择 东方非想天则 或 东方心绮楼
点【添加】按钮,选择则/楼的主程序
点【开始】按钮 (或者从其他地方手动开启则/楼也可以,不一定非得从平台打开),在10800端口建立主机
点【反重力场】按钮,之后会得到一个IP地址和端口,把那个发送给你的对手 (★对手不需要有平台)
通过反重力场建立的游戏无视电信/联通,不用特意找同一个网络运营商的连
加速原理跟放学对战平台一样,服务器也都是用的阿里云杭州,所以用那个效果不好的这个同样也会不好。
(而且这个聊天功能也不还能用简直弱爆了啊哈哈哈)
★ 另外,现在这个版本只是早期技术测试,可能随时会停止服务
★ 发现任何问题或建议请联系 zh99998@gmail.com
\ No newline at end of file
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