forked from devsam/core
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
69b0a80684 | ||
|
|
48f0c56a9e | ||
|
|
83833a3693 | ||
|
|
18429d52d4 | ||
|
|
58cc90083b | ||
|
|
2772161144 | ||
|
|
0e95259b14 | ||
|
|
3d9f38f1e3 | ||
|
|
ba3accd834 | ||
|
|
0786e40ebd | ||
|
|
8a56393159 | ||
|
|
5ca8a6ecfa | ||
|
|
5c82edc4be | ||
|
|
093c04bc24 | ||
|
|
131dd46a38 | ||
|
|
6b1b4fdfbb | ||
|
|
e4ad779b37 | ||
|
|
65d817624e | ||
|
|
66501189c4 | ||
|
|
4303898bb8 | ||
|
|
7d76a9d3ed | ||
|
|
1cc42f341b | ||
|
|
0b41ee0a29 | ||
|
|
66b6c4d04f | ||
|
|
6502843d6c | ||
|
|
5ecfe72e19 | ||
|
|
f28cdefffe | ||
|
|
40494f2cf1 | ||
|
|
f2664c112b | ||
|
|
41d91df355 | ||
|
|
965671dd93 | ||
|
|
c8d08e4b2c | ||
|
|
2897a9b484 | ||
|
|
d190e59d83 | ||
|
|
0bb25e8773 | ||
|
|
37e1903cb1 | ||
|
|
b402846d43 | ||
|
|
c1a6dd385a | ||
|
|
ccbef236d3 | ||
|
|
d7b9e8b2e0 | ||
|
|
deaf77d3d0 | ||
|
|
5c738f97ed | ||
|
|
c9f7f7ab08 | ||
|
|
746977d5d0 | ||
|
|
acb09bfe71 | ||
|
|
e2a1203b43 | ||
|
|
124036cea6 | ||
|
|
2ac1d82826 | ||
|
|
fa4e0c1948 | ||
|
|
735427ead0 | ||
|
|
4fa99a7e1b | ||
|
|
2f963a205a | ||
|
|
1f03f7e7c3 | ||
|
|
31689fb6ba | ||
|
|
cf7ebbd314 | ||
|
|
40a953aed5 | ||
|
|
c4d999ada7 | ||
|
|
fff6b4e155 | ||
|
|
380e08d89f | ||
|
|
96c8199092 | ||
|
|
54870cf067 | ||
|
|
8654447aac | ||
|
|
28a690cbba | ||
|
|
52d1a48c0b | ||
|
|
f45333db5e | ||
|
|
c920e45934 | ||
|
|
dd86ef4591 | ||
|
|
b9fb00f042 | ||
|
|
355d9fd995 | ||
|
|
b68c13c4f2 | ||
|
|
f2803291ab | ||
|
|
54df034c77 | ||
|
|
7317b8bc18 | ||
|
|
2f030a6dd6 | ||
|
|
ef0dec32ee | ||
|
|
e7f5850c31 | ||
|
|
d1d81e03d1 | ||
|
|
c65d6565df | ||
|
|
a2d40ecf4a | ||
|
|
7291c828c0 | ||
|
|
01caa625bd | ||
|
|
6cad6f45fe | ||
|
|
a6936ac8d7 | ||
|
|
eb9ae00d24 | ||
|
|
b8c8321757 | ||
|
|
41235bed5d | ||
|
|
7367eb1c45 | ||
|
|
f9d90c38ef | ||
|
|
275d9b1c25 | ||
|
|
663c24b31f | ||
|
|
beb501354d | ||
|
|
ba165239c3 | ||
|
|
e64ef5de84 | ||
|
|
c6bbbe081d | ||
|
|
66dcefc844 | ||
|
|
93d580e74e | ||
|
|
9eb35b55c6 | ||
|
|
d2e052dfa3 | ||
|
|
ddd889c42c | ||
|
|
70da3909a9 | ||
|
|
c398b55f3c | ||
|
|
317c42b384 | ||
|
|
a95903ceff | ||
|
|
98c386622a | ||
|
|
398f54cced | ||
|
|
c337ff2f67 | ||
|
|
d9f6f7956e | ||
|
|
30e2432fc3 | ||
|
|
8238f27dfa | ||
|
|
b00d8f2ebd | ||
|
|
98168c61b3 | ||
|
|
6627797cc6 | ||
|
|
30e54c3d0e | ||
|
|
ee3764f5f5 | ||
|
|
a86e4cf64b | ||
|
|
78ea405e40 | ||
|
|
f99583dc99 | ||
|
|
b9e5ddce94 | ||
|
|
1d28f22577 | ||
|
|
90235660db | ||
|
|
8e12aea3ff | ||
|
|
280ff18526 | ||
|
|
9e88b03438 | ||
|
|
14213ea3cd | ||
|
|
5352a507b2 | ||
|
|
3b382199fc | ||
|
|
67dea49a9b | ||
|
|
8bdca87bf9 | ||
|
|
8085e96fdd | ||
|
|
86b40695e6 | ||
|
|
676f98659a | ||
|
|
2fbf8bc2e2 | ||
|
|
bf233f7552 | ||
|
|
2c3e577c4e | ||
|
|
7270de6775 | ||
|
|
e45f3a7d03 | ||
|
|
742e2e8003 | ||
|
|
4cdec6c393 | ||
|
|
a2d273bdc9 | ||
|
|
a163fbef7f | ||
|
|
ec226ede65 | ||
|
|
771fcbec6a | ||
|
|
ae62669fe8 | ||
|
|
4823795c50 | ||
|
|
a80442399d | ||
|
|
913b308892 | ||
|
|
21837d0869 | ||
|
|
5706fcfb7d | ||
|
|
5bc3b55400 | ||
|
|
ffbe2844e4 | ||
|
|
7776b35cab | ||
|
|
c39794c086 | ||
|
|
6aaa50364b | ||
|
|
d0778550ab | ||
|
|
8cba6ac16a | ||
|
|
0516007130 | ||
|
|
af9df325f0 | ||
|
|
4dd69db652 | ||
|
|
316d466795 | ||
|
|
3fb5b99af3 | ||
|
|
1764504ea3 | ||
|
|
fab0495a39 | ||
|
|
166eafe4ee | ||
|
|
9d6181ede1 | ||
|
|
67ecd514a4 | ||
|
|
52f4b79fdf | ||
|
|
5e74a34d3e | ||
|
|
288be33eac | ||
|
|
451a759cca | ||
|
|
a9052705a8 | ||
|
|
5490e74f04 | ||
|
|
ab5768998b | ||
|
|
b71ae96d66 | ||
|
|
e3528ac82f | ||
|
|
bad5a3c0ef | ||
|
|
bb49e6dec7 | ||
|
|
2d24ba659f | ||
|
|
29ce47251a | ||
|
|
d02a84e87e | ||
|
|
c5d008ec47 | ||
|
|
798be5fd5c | ||
|
|
ab6bb54eae | ||
|
|
ae24d18adb | ||
|
|
dcfb49d927 | ||
|
|
d82ab51d58 | ||
|
|
5166001956 | ||
|
|
aa46fc9668 | ||
|
|
beea13ff4b | ||
|
|
766d0b3ad5 | ||
|
|
64e279d859 | ||
|
|
a3f6a8e8ab | ||
|
|
330853c98d | ||
|
|
776e16b58b | ||
|
|
70b1f23a49 | ||
|
|
5e4493b49a | ||
|
|
dec24e09cf | ||
|
|
95445d8f8a | ||
|
|
683a844a08 | ||
|
|
a75eb5b74e | ||
|
|
5dfb844c7e | ||
|
|
20f991a205 | ||
|
|
3c1c339498 | ||
|
|
5974028c4d | ||
|
|
a534b8f812 | ||
|
|
cb2fbf1a32 | ||
|
|
a1392652ae | ||
|
|
69af23b60a | ||
|
|
063b3d37a6 | ||
|
|
ebf9b4b75d | ||
|
|
45fd06c195 | ||
|
|
7db3675e71 | ||
|
|
a19661199e | ||
|
|
953196ec78 | ||
|
|
d5be6e3e08 | ||
|
|
551b79d8c2 | ||
|
|
95a22f228c | ||
|
|
a242b9a20e | ||
|
|
19e91b2de0 | ||
|
|
eac92293fc | ||
|
|
a1397e41aa | ||
|
|
13fccb998e | ||
|
|
1e54220230 | ||
|
|
6b2000bb39 | ||
|
|
5f3fbdb089 | ||
|
|
63e888c9b1 | ||
|
|
e97e702c2e | ||
|
|
657c35f876 | ||
|
|
bc79250f96 | ||
|
|
dd7846e995 | ||
|
|
8a5483d508 | ||
|
|
805053e921 | ||
|
|
170a32a1bd | ||
|
|
5262d424b4 | ||
|
|
9c3c1045ac | ||
|
|
2d1a3f5da9 | ||
|
|
088260bbc6 | ||
|
|
18ebbbc555 | ||
|
|
80b70a8765 | ||
|
|
d3d4cce8b5 | ||
|
|
76bfcd4fa8 | ||
|
|
7cbe383a8a | ||
|
|
0488ebf071 | ||
|
|
1cfab53472 | ||
|
|
084c7a2626 | ||
|
|
161836a233 | ||
|
|
c86ac7d20f | ||
|
|
20cceec090 | ||
|
|
62c6ba362d | ||
|
|
5ed31881e6 | ||
|
|
647c51fe0f | ||
|
|
a2d3ac9e70 | ||
|
|
20f74f6645 | ||
|
|
0bb1ed6f18 | ||
|
|
2102a852cb | ||
|
|
0cfb80b7bf | ||
|
|
4297ea9e40 | ||
|
|
0ce36e93bd | ||
|
|
18bd5f4246 | ||
|
|
2e7bcd9038 | ||
|
|
bfef0c28bc | ||
|
|
b447065651 | ||
|
|
f540f87e77 | ||
|
|
6ebe3454af | ||
|
|
7e00500870 | ||
|
|
bc37dd1df7 | ||
|
|
77aca09f53 | ||
|
|
23fb1194ee | ||
|
|
6253b757ec | ||
|
|
9122342fb9 | ||
|
|
fb42a32089 | ||
|
|
5c7f4c43ae | ||
|
|
3da256cc29 | ||
|
|
717c576cba | ||
|
|
ddb4011b5d | ||
|
|
48207b9300 | ||
|
|
388afe6fb4 | ||
|
|
99b459766a | ||
|
|
230fc5ba53 | ||
|
|
9c266b7b1c | ||
|
|
603599d666 | ||
|
|
b3cd29ac95 | ||
|
|
a4beab86c2 | ||
|
|
3a84e0d064 | ||
|
|
31f1eb2d28 | ||
|
|
d73c0c6f0c | ||
|
|
36409cf066 | ||
|
|
556e1059f9 | ||
|
|
131a6cb6c3 | ||
|
|
598943eb1b | ||
|
|
bf746393b8 | ||
|
|
70b6997436 | ||
|
|
b26c6a04c0 | ||
|
|
4f262a03e4 | ||
|
|
a0ca3dc3f6 | ||
|
|
f58736277f | ||
|
|
473cae169e | ||
|
|
4b956385bd | ||
|
|
481494a885 | ||
|
|
243604d6c1 | ||
|
|
dc97c71e0b | ||
|
|
e6b4832b5d | ||
|
|
00ac67e8ac | ||
|
|
953b609b32 | ||
|
|
a5875be39b | ||
|
|
0f45de8384 | ||
|
|
d119200287 | ||
|
|
b9fa0bea6e | ||
|
|
3a28180700 | ||
|
|
5b6f456d5c | ||
|
|
fb1ae6ea88 | ||
|
|
50582a0e8b | ||
|
|
8fe3d0258a | ||
|
|
f2537b20de | ||
|
|
31d6850e6e | ||
|
|
31468d5425 | ||
|
|
688b839315 | ||
|
|
fa4c9046fc | ||
|
|
c7560f9113 | ||
|
|
f7e3966310 | ||
|
|
7359237da4 | ||
|
|
d617203c05 | ||
|
|
910526ba44 | ||
|
|
c1842703d7 | ||
|
|
2f9d2e2bc2 | ||
|
|
20d7e005a0 | ||
|
|
0ce5a88e49 | ||
|
|
4af10fb485 | ||
|
|
f872113e99 | ||
|
|
f33fefd188 | ||
|
|
8c2f4f9dc9 | ||
|
|
3b6e7c5c28 | ||
|
|
595c11a9a7 | ||
|
|
1ab7b57885 | ||
|
|
07130e6022 | ||
|
|
2cc2f7eb23 | ||
|
|
c798ac49b9 | ||
|
|
a8796edbd3 | ||
|
|
a4ead74cb2 | ||
|
|
0beb00c5e5 | ||
|
|
3d43690303 | ||
|
|
938c819e9a | ||
|
|
889ced68ed | ||
|
|
de97384424 | ||
|
|
f6ffc20a23 | ||
|
|
c0ec82051f | ||
|
|
91273522c0 | ||
|
|
20a475466d | ||
|
|
10b6a4ff6e | ||
|
|
2a4e59d6e2 | ||
|
|
c016ea7c52 | ||
|
|
00bece9c9c | ||
|
|
44ed61c14e | ||
|
|
002b7ae534 | ||
|
|
63000bdd22 | ||
|
|
20fd52b32d | ||
|
|
7a3064d37b | ||
|
|
7fea0a41c6 | ||
|
|
e701540d7f | ||
|
|
5187ebbf52 | ||
|
|
df26c511b5 | ||
|
|
0e650da34a | ||
|
|
2c382da773 | ||
|
|
e709ee5db8 | ||
|
|
d550415b65 | ||
|
|
9ec144e8f6 | ||
|
|
9458307612 | ||
|
|
915c5fcd8e | ||
|
|
0df1293139 | ||
|
|
9bcd18c42e | ||
|
|
1c853107b7 | ||
|
|
3f21e28ef7 | ||
|
|
61244fcef9 | ||
|
|
03c930ce7d | ||
|
|
f57c4967f2 | ||
|
|
49f40d56b0 | ||
|
|
190fcabbac | ||
|
|
8bccf449ad | ||
|
|
f7dc1a588b | ||
|
|
0eb91c6301 | ||
|
|
0fa4d88ea9 | ||
|
|
18e355b701 | ||
|
|
1cb877503d | ||
|
|
b65e691255 | ||
|
|
a4ee43f12b | ||
|
|
f71c61a55b | ||
|
|
418130f4cd | ||
|
|
1566aa0243 | ||
|
|
ab546f66f0 | ||
|
|
fc021dae54 | ||
|
|
58a7b3afe1 | ||
|
|
72f41df5d2 | ||
|
|
8fd6b91cf7 | ||
|
|
cf2ace32d1 | ||
|
|
05c4f721f2 | ||
|
|
b2096cc274 | ||
|
|
067df49914 | ||
|
|
6961298e53 | ||
|
|
3e6523002c | ||
|
|
c26add7b04 | ||
|
|
12d50fec03 | ||
|
|
a43bbc9f23 | ||
|
|
2bec3b253c | ||
|
|
a69f256168 | ||
|
|
d7fb88eed6 | ||
|
|
bfd79f479e | ||
|
|
7ec3fcc78e | ||
|
|
858a09b429 | ||
|
|
da7fcafb27 | ||
|
|
7f7d8b2099 | ||
|
|
b5fb2e9cf4 | ||
|
|
d9ffdf9df8 | ||
|
|
f919187b91 | ||
|
|
d5ead5b74f | ||
|
|
ec1be2c887 | ||
|
|
af0c470923 | ||
|
|
78ce7d20e3 | ||
|
|
932ce9bf51 | ||
|
|
3d602b49bf | ||
|
|
33b7d228f9 | ||
|
|
95a8fd5495 | ||
|
|
87bc416fc7 | ||
|
|
8c21eec168 | ||
|
|
7ef3f0d5c5 | ||
|
|
e90e508005 | ||
|
|
816daed570 | ||
|
|
3626266763 | ||
|
|
6c117a628c | ||
|
|
d3225dfb41 | ||
|
|
bd7e7540d8 | ||
|
|
48088748df | ||
|
|
7a5eecc3e1 | ||
|
|
51d7dede55 | ||
|
|
bcad77ec06 | ||
|
|
9b79d12521 | ||
|
|
4b33461c70 | ||
|
|
bc3a8fefd8 | ||
|
|
db97400b43 | ||
|
|
3ad4032239 | ||
|
|
1d0fb7151d | ||
|
|
0c9099c868 | ||
|
|
c87cbaa0a6 | ||
|
|
5a94bf434a | ||
|
|
d567f3218a | ||
|
|
5d97c4ebea | ||
|
|
c3be464774 | ||
|
|
0d1e10a2ce | ||
|
|
723a7bbfba | ||
|
|
6a100ed2c1 | ||
|
|
5a6cd7fb46 | ||
|
|
871c99a67a | ||
|
|
7bdde2ac8a | ||
|
|
3564282acb | ||
|
|
13e24dbcb4 | ||
|
|
0026e9cb15 | ||
|
|
156795d7e9 | ||
|
|
e41d73b5bd | ||
|
|
655cd1700c | ||
|
|
9fb455d38a | ||
|
|
879a1e1c61 | ||
|
|
e614092690 | ||
|
|
4ebe51d978 | ||
|
|
10a29e584f | ||
|
|
a88982940b | ||
|
|
b92a95cc07 | ||
|
|
bffca5e163 | ||
|
|
b56919a343 | ||
|
|
b797bab7e0 | ||
|
|
a03d2cee63 | ||
|
|
67fef4b73d | ||
|
|
253a953dfe | ||
|
|
be7154284e | ||
|
|
02f90842fe | ||
|
|
0b17a289c8 | ||
|
|
c2298efaf0 |
@@ -15,6 +15,7 @@ d_log/*.txt
|
||||
d_log/*.zip
|
||||
sess_*
|
||||
*/logs/*.txt
|
||||
*/logs/*/*.txt
|
||||
err.txt
|
||||
che/.htaccess
|
||||
kwe/.htaccess
|
||||
@@ -30,6 +31,7 @@ d_pic/*.png
|
||||
|
||||
d_setting/*.php
|
||||
*/d_setting/*.php
|
||||
*/d_setting/templates/*.php
|
||||
|
||||
**/old/*
|
||||
test.php
|
||||
@@ -37,6 +39,9 @@ test.php
|
||||
/che
|
||||
/kwe
|
||||
/pwe
|
||||
/nya
|
||||
/pya
|
||||
/twe
|
||||
|
||||
phpinfo.php
|
||||
vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/*
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ return [
|
||||
'hwe/func_npc.php',
|
||||
'hwe/func_process_chief.php',
|
||||
'hwe/func_process_personnel.php',
|
||||
'hwe/func_process_trick.php',
|
||||
'hwe/func_process_sabotage.php',
|
||||
'hwe/func_process.php',
|
||||
'hwe/func_string.php',
|
||||
'hwe/func_template.php',
|
||||
|
||||
Vendored
+5
-1
@@ -5,11 +5,13 @@
|
||||
"**/.hg": true,
|
||||
"**/CVS": true,
|
||||
"**/.DS_Store": true,
|
||||
"**/logs/*.txt": true,
|
||||
"**/logs/**/*.txt": true,
|
||||
"**/session/sess*":true,
|
||||
"/che":true,
|
||||
"/kwe":true,
|
||||
"/pwe":true,
|
||||
"/nya":true,
|
||||
"/pya":true,
|
||||
"/twe":true,
|
||||
|
||||
},
|
||||
@@ -19,6 +21,8 @@
|
||||
"/che":true,
|
||||
"/kwe":true,
|
||||
"/pwe":true,
|
||||
"/nya":true,
|
||||
"/pya":true,
|
||||
"/twe":true,
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2018 Hide_D, 62che
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,60 @@
|
||||
# 삼국지 모의전투 HiDCHe
|
||||
|
||||
삼국지 모의전투 유기체서버를 기반으로 더욱 더 진화한 서버입니다.
|
||||
|
||||
|
||||
## 요구사항
|
||||
|
||||
* Apache2
|
||||
* <code>mpm_event</code> 권장
|
||||
* PHP 7.2 이상
|
||||
* <code>php-fpm</code> 권장
|
||||
* php에서 curl을 실행가능해야 합니다.
|
||||
* MySQL 5.6 이상, 또는 MariaDB 10.0 이상
|
||||
* <code>git</code>
|
||||
* <code>curl</code>
|
||||
|
||||
Linux는 Ubuntu 16.04, Windows는 Windows 10에서 XAMPP를 사용한 환경에서 테스트되었습니다.
|
||||
|
||||
Docker를 이용한 설치는 계획중입니다.
|
||||
|
||||
## 설치
|
||||
|
||||
본 게임은 <code>git</code>을 이용한 업그레이드 시스템을 구현하였으므로, <code>git</code>이 필요합니다.
|
||||
또한 웹 서비스 데몬을 운영중인 사용자(일반적으로 <code>www-data</code>, <code>apache</code>)에게 디렉토리 권한이 주어져야합니다.
|
||||
|
||||
### 다운로드
|
||||
|
||||
웹 데몬 user가 <code>www-data</code>인 경우 다음과 같이 입력하여 최신 배포버전과 이미지 파일을 얻을 수 있습니다.
|
||||
|
||||
```
|
||||
sudo -u www-data git clone ssh://git@storage.hided.net:2525/devsam/core.git
|
||||
git clone ssh://git@storage.hided.net:2525/devsam/image.git
|
||||
```
|
||||
|
||||
> 이미지는 git hook을 이용한 업데이트 기능을 제공하지만 아직 범용성 있는 설계가 되어있진 않습니다.
|
||||
|
||||
### 설치
|
||||
|
||||
이후 해당 경로를 웹 브라우저를 통해 접근하여 설치를 진행할 수 있습니다.
|
||||
|
||||
Database 수는 로그인 관리 서버 1개, 내부 서버 7개로, 총 8개의 Database가 필요합니다. 내부 설정을 고쳐서 서버 수를 늘리거나 줄일 경우 그에 맞는 Database 수가 필요합니다. 또한 Database마다 관리할 별도의 계정을 만드는 것을 추천합니다.
|
||||
|
||||
설치 이후에는 서버관리 페이지에서 **업데이트** 명령을 통해 원 클릭 업데이트가 가능합니다.
|
||||
|
||||
|
||||
## 카카오로그인 연동
|
||||
|
||||
현재 카카오로그인 API KEY를 입력하는 작업이 설치과정에 추가되어있지 않습니다.
|
||||
|
||||
<code>f_install/templates/KakaoKey.orig.php</code> 를 <code>d_setting/KakaoKey.php</code>로 복사한 후 API 키를 입력하여야 합니다.
|
||||
|
||||
|
||||
## 라이선스
|
||||
|
||||
본 게임을 수정하거나 재배포할 경우 다음 중 하나의 라이선스를 선택하여 적용할 수 있습니다.
|
||||
|
||||
* MIT License
|
||||
* GPL 2.0 또는 이후
|
||||
|
||||
만약 별도의 라이선스를 적용하고자 할 경우 Hide_D에게 문의하여 주십시오.
|
||||
+4
-1
@@ -16,7 +16,10 @@
|
||||
"firephp/firephp-core": "^0.4.0",
|
||||
"vlucas/valitron": "^1.4",
|
||||
"php-extended/php-tail": "^2.1",
|
||||
"pguardiario/phpuri": "^1.0"
|
||||
"pguardiario/phpuri": "^1.0",
|
||||
"symfony/lock": "^4.1",
|
||||
"ezyang/htmlpurifier": "^4.10",
|
||||
"xemlock/htmlpurifier-html5": "^0.1.7"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
||||
Generated
+190
-39
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "1753c2c2ad9fe40ecc5c6ae541dd2e78",
|
||||
"content-hash": "43da7d5e9d8441faa4311f32b16ee1c0",
|
||||
"packages": [
|
||||
{
|
||||
"name": "brandonwamboldt/utilphp",
|
||||
@@ -52,6 +52,53 @@
|
||||
],
|
||||
"time": "2015-02-02T17:56:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ezyang/htmlpurifier",
|
||||
"version": "v4.10.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ezyang/htmlpurifier.git",
|
||||
"reference": "d85d39da4576a6934b72480be6978fb10c860021"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/d85d39da4576a6934b72480be6978fb10c860021",
|
||||
"reference": "d85d39da4576a6934b72480be6978fb10c860021",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"simpletest/simpletest": "^1.1"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"HTMLPurifier": "library/"
|
||||
},
|
||||
"files": [
|
||||
"library/HTMLPurifier.composer.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"LGPL"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Edward Z. Yang",
|
||||
"email": "admin@htmlpurifier.org",
|
||||
"homepage": "http://ezyang.com"
|
||||
}
|
||||
],
|
||||
"description": "Standards compliant HTML filter written in PHP",
|
||||
"homepage": "http://htmlpurifier.org/",
|
||||
"keywords": [
|
||||
"html"
|
||||
],
|
||||
"time": "2018-02-23T01:58:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "firephp/firephp-core",
|
||||
"version": "v0.4.0",
|
||||
@@ -90,16 +137,16 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.3.2",
|
||||
"version": "6.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "68d0ea14d5a3f42a20e87632a5f84931e2709c90"
|
||||
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/68d0ea14d5a3f42a20e87632a5f84931e2709c90",
|
||||
"reference": "68d0ea14d5a3f42a20e87632a5f84931e2709c90",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
|
||||
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -109,7 +156,7 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-curl": "*",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
|
||||
"psr/log": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
@@ -151,7 +198,7 @@
|
||||
"rest",
|
||||
"web service"
|
||||
],
|
||||
"time": "2018-03-26T16:33:04+00:00"
|
||||
"time": "2018-04-22T15:46:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
@@ -271,16 +318,16 @@
|
||||
},
|
||||
{
|
||||
"name": "leafo/scssphp",
|
||||
"version": "v0.7.5",
|
||||
"version": "v0.7.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/leafo/scssphp.git",
|
||||
"reference": "8b538d828bbb75276974605c4a1a435e939da74e"
|
||||
"reference": "585f6ae84de62ffecf69c23805f25d78d7e4b794"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/leafo/scssphp/zipball/8b538d828bbb75276974605c4a1a435e939da74e",
|
||||
"reference": "8b538d828bbb75276974605c4a1a435e939da74e",
|
||||
"url": "https://api.github.com/repos/leafo/scssphp/zipball/585f6ae84de62ffecf69c23805f25d78d7e4b794",
|
||||
"reference": "585f6ae84de62ffecf69c23805f25d78d7e4b794",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -319,7 +366,7 @@
|
||||
"scss",
|
||||
"stylesheet"
|
||||
],
|
||||
"time": "2018-02-09T02:04:21+00:00"
|
||||
"time": "2018-05-24T02:18:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/plates",
|
||||
@@ -480,16 +527,16 @@
|
||||
},
|
||||
{
|
||||
"name": "php-extended/php-system",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-extended/php-system.git",
|
||||
"reference": "66727d5dc0a665916bd7e08bcfb9820e7be1d20c"
|
||||
"url": "https://gitlab.com/php-extended/php-system.git",
|
||||
"reference": "9e6b3c2009ef56dc123efc43900e40cdf217ace0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-extended/php-system/zipball/66727d5dc0a665916bd7e08bcfb9820e7be1d20c",
|
||||
"reference": "66727d5dc0a665916bd7e08bcfb9820e7be1d20c",
|
||||
"url": "https://gitlab.com/api/v4/projects/php-extended%2Fphp-system/repository/archive.zip?sha=9e6b3c2009ef56dc123efc43900e40cdf217ace0",
|
||||
"reference": "9e6b3c2009ef56dc123efc43900e40cdf217ace0",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "library",
|
||||
@@ -505,31 +552,31 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "Anastaszor",
|
||||
"role": "developer"
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "A generic way to find informations about the running system",
|
||||
"homepage": "https://github.com/php-extended/php-system",
|
||||
"homepage": "https://gitlab.com/php-extended/php-system",
|
||||
"keywords": [
|
||||
"operating system",
|
||||
"os",
|
||||
"php",
|
||||
"system"
|
||||
],
|
||||
"time": "2017-01-14T11:56:24+00:00"
|
||||
"time": "2018-06-07T06:03:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-extended/php-tail",
|
||||
"version": "2.1.1",
|
||||
"version": "2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-extended/php-tail.git",
|
||||
"reference": "eabf7bee64f8c30fe9b9e1176562fdb903c54ae7"
|
||||
"url": "https://gitlab.com/php-extended/php-tail.git",
|
||||
"reference": "19fbd3a79ccc071954f28296b2c44754335304a0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-extended/php-tail/zipball/eabf7bee64f8c30fe9b9e1176562fdb903c54ae7",
|
||||
"reference": "eabf7bee64f8c30fe9b9e1176562fdb903c54ae7",
|
||||
"url": "https://gitlab.com/api/v4/projects/php-extended%2Fphp-tail/repository/archive.zip?sha=19fbd3a79ccc071954f28296b2c44754335304a0",
|
||||
"reference": "19fbd3a79ccc071954f28296b2c44754335304a0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -548,11 +595,11 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "Anastaszor",
|
||||
"role": "developer"
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "A smart way to tail files depending of the environment",
|
||||
"homepage": "https://github.com/php-extended/php-tail",
|
||||
"homepage": "https://gitlab.com/php-extended/php-tail",
|
||||
"keywords": [
|
||||
"cheat",
|
||||
"mighty",
|
||||
@@ -560,7 +607,7 @@
|
||||
"php",
|
||||
"tail"
|
||||
],
|
||||
"time": "2017-07-25T13:52:42+00:00"
|
||||
"time": "2018-06-07T06:04:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-message",
|
||||
@@ -703,34 +750,98 @@
|
||||
"time": "2014-06-16T22:40:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vlucas/valitron",
|
||||
"version": "v1.4.2",
|
||||
"name": "symfony/lock",
|
||||
"version": "v4.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/vlucas/valitron.git",
|
||||
"reference": "87775d76268beda2afa085bdd6e44b17e98907c6"
|
||||
"url": "https://github.com/symfony/lock.git",
|
||||
"reference": "a1df50492e927ad00ca271f29adb2949a14f2a5a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/vlucas/valitron/zipball/87775d76268beda2afa085bdd6e44b17e98907c6",
|
||||
"reference": "87775d76268beda2afa085bdd6e44b17e98907c6",
|
||||
"url": "https://api.github.com/repos/symfony/lock/zipball/a1df50492e927ad00ca271f29adb2949a14f2a5a",
|
||||
"reference": "a1df50492e927ad00ca271f29adb2949a14f2a5a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1.3",
|
||||
"psr/log": "~1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"predis/predis": "~1.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.1-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Lock\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
},
|
||||
{
|
||||
"name": "Jérémy Derussé",
|
||||
"email": "jeremy@derusse.com"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Lock Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"cas",
|
||||
"flock",
|
||||
"locking",
|
||||
"mutex",
|
||||
"redlock",
|
||||
"semaphore"
|
||||
],
|
||||
"time": "2018-05-30T07:26:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vlucas/valitron",
|
||||
"version": "v1.4.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/vlucas/valitron.git",
|
||||
"reference": "3c5463315bfa23b17f8949b100a960d035234e43"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/vlucas/valitron/zipball/3c5463315bfa23b17f8949b100a960d035234e43",
|
||||
"reference": "3c5463315bfa23b17f8949b100a960d035234e43",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.0"
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.5 || ^6.5"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "It can support the multiple bytes string length."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Valitron": "src/"
|
||||
"psr-4": {
|
||||
"Valitron\\": "src/Valitron"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD"
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
@@ -746,7 +857,47 @@
|
||||
"validation",
|
||||
"validator"
|
||||
],
|
||||
"time": "2017-10-30T23:15:06+00:00"
|
||||
"time": "2018-05-06T10:45:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "xemlock/htmlpurifier-html5",
|
||||
"version": "v0.1.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/xemlock/htmlpurifier-html5.git",
|
||||
"reference": "b4b35e51ec75e0207c23035f7d9a354bdcdac359"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/xemlock/htmlpurifier-html5/zipball/b4b35e51ec75e0207c23035f7d9a354bdcdac359",
|
||||
"reference": "b4b35e51ec75e0207c23035f7d9a354bdcdac359",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ezyang/htmlpurifier": "^4.7",
|
||||
"php": ">=5.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "4.7.*|5.7.*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"library/HTMLPurifier/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "xemlock",
|
||||
"email": "xemlock@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "HTML Purifier definitions for HTML5 elements",
|
||||
"time": "2018-06-07T14:30:17+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
|
||||
Binary file not shown.
+22
-39
@@ -1,14 +1,16 @@
|
||||
@charset "utf-8";
|
||||
|
||||
* { margin: 0px; padding: 0px; }
|
||||
body { color:white; background-color:black; border-width:1; border-color:gray; }
|
||||
table {
|
||||
body {
|
||||
color:white; background-color:black; font-family: '맑은 고딕';
|
||||
}
|
||||
|
||||
table {
|
||||
border: solid 1px; border-spacing: 0px; border-collapse: separate; border-top-color: gray; border-left-color: gray; border-right-color: black; border-bottom-color: black;
|
||||
padding: 0px;
|
||||
font-size: 13px;
|
||||
word-break: break-all;
|
||||
text-align: center;
|
||||
font-family: '맑은 고딕'; line-height: 110%;
|
||||
font-family: '맑은 고딕';
|
||||
}
|
||||
th, td {
|
||||
border: solid 1px; border-spacing: 0px; border-collapse: separate; border-top-color: gray; border-left-color: gray; border-right-color: black; border-bottom-color: black;
|
||||
@@ -16,21 +18,15 @@ th, td {
|
||||
font-size: 13px;
|
||||
word-break: break-all;
|
||||
text-align: center;
|
||||
font-family: '맑은 고딕'; line-height: 110%;
|
||||
font-family: '맑은 고딕';
|
||||
}
|
||||
|
||||
a.just_link {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
div {
|
||||
margin:0px;
|
||||
padding: 0px;
|
||||
word-break: break-all;
|
||||
font-family: '맑은 고딕';
|
||||
}
|
||||
|
||||
.with_border{
|
||||
margin:0;
|
||||
border: solid 1px;
|
||||
border-spacing: 0px;
|
||||
border-collapse: separate;
|
||||
@@ -45,6 +41,8 @@ div {
|
||||
line-height:50px;
|
||||
font-size: 30px; font-weight: bold;
|
||||
text-align: center;
|
||||
color:white;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
.legacy_layout div {
|
||||
@@ -53,20 +51,9 @@ div {
|
||||
font-size: 13px;
|
||||
word-break: break-all;
|
||||
text-align: center;
|
||||
font-family: '맑은 고딕'; line-height: 110%;
|
||||
font-family: '맑은 고딕';;
|
||||
}
|
||||
|
||||
font { font-family: '맑은 고딕'; line-height: 110%; }
|
||||
/*
|
||||
input {
|
||||
width: 100px; height: 18px;
|
||||
background-color: black; color: white;
|
||||
font-family: '맑은 고딕';
|
||||
font-size: 13px;
|
||||
line-height: 110%;
|
||||
}
|
||||
*/
|
||||
|
||||
.obj_fill{
|
||||
display:block;
|
||||
width:100%;
|
||||
@@ -77,28 +64,20 @@ button.with_skin {
|
||||
background-color: black; color: white;
|
||||
font-family: '맑은 고딕';
|
||||
font-size: 13px;
|
||||
line-height: 110%;
|
||||
}
|
||||
|
||||
button.with_skin:disabled {
|
||||
background-color:#333333;
|
||||
}
|
||||
|
||||
input.with_skin {
|
||||
background-color: black; color: white;
|
||||
font-family: '맑은 고딕';
|
||||
font-size: 13px;
|
||||
line-height: 110%;
|
||||
}
|
||||
|
||||
select {
|
||||
width: 100px; height: 18px;
|
||||
background-color: black; color: white;
|
||||
font-family: '맑은 고딕';
|
||||
font-size: 13px;
|
||||
line-height: 110%;
|
||||
}
|
||||
button {
|
||||
width: 100px; height: 20px;
|
||||
background-color: black; color: white;
|
||||
font-family: '맑은 고딕';
|
||||
font-size: 13px;
|
||||
input.with_skin:disabled {
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
.font0 { font-size: 10px; }
|
||||
@@ -106,4 +85,8 @@ button {
|
||||
.font2 { font-size: 15px; }
|
||||
.font3 { font-size: 20px; }
|
||||
.font4 { font-size: 30px; }
|
||||
.font5 { font-size: 50px; }
|
||||
.font5 { font-size: 50px; }
|
||||
|
||||
caption.section_title {
|
||||
caption-side:top;
|
||||
}
|
||||
+13
-93
@@ -1,5 +1,9 @@
|
||||
@charset "utf-8";
|
||||
|
||||
body{
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
#server_notice {
|
||||
margin:10px 0;
|
||||
border: none;
|
||||
@@ -55,77 +59,6 @@
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
/*Legacy*/
|
||||
|
||||
|
||||
#Entrance_00 {
|
||||
width: 800px;
|
||||
position: absolute; top: 50px; left: 50%;
|
||||
margin-left: -400px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#Entrance_0004 {
|
||||
width: 52px; height: 52px;
|
||||
position: absolute; top: 0px; left: -62px;
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
#Entrance_0005 {
|
||||
width: 160px; height: 600px;
|
||||
position: absolute; top: 62px; left: -170px;
|
||||
}
|
||||
|
||||
#Entrance_0006 {
|
||||
width: 160px; height: 600px;
|
||||
position: absolute; top: 62px; left: 810px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#Entrance_0000 {
|
||||
width: 800px; height: 134px;
|
||||
position: absolute; top: 0px; left: 0px;
|
||||
}
|
||||
|
||||
#Entrance_000000 {
|
||||
width: 798px; height: 50px;
|
||||
position: absolute; top: 0px; left: 0px;
|
||||
font-size: 30px; font-weight: bold;
|
||||
}
|
||||
|
||||
#Entrance_000001 {
|
||||
width: 798px; height: 20px;
|
||||
position: absolute; top: 52px; left: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#Entrance_00000000 {
|
||||
width: 98px; height: 20px;
|
||||
position: absolute; top: 0px; left: 0px;
|
||||
}
|
||||
|
||||
#Entrance_00000001 {
|
||||
width: 398px; height: 20px;
|
||||
position: absolute; top: 0px; left: 100px;
|
||||
}
|
||||
|
||||
#Entrance_00000002 {
|
||||
width: 178px; height: 20px;
|
||||
position: absolute; top: 0px; left: 500px;
|
||||
}
|
||||
|
||||
#Entrance_00000003 {
|
||||
width: 118px; height: 20px;
|
||||
position: absolute; top: 0px; left: 680px;
|
||||
}
|
||||
|
||||
#Entrance_000002 {
|
||||
width: 798px; height: 64px;
|
||||
position: absolute; top: 74px; left: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.Entrance_ServerList {
|
||||
width: 800px; height: 64px;
|
||||
border: none;
|
||||
@@ -195,27 +128,14 @@
|
||||
color: magenta; font-size: 15px; font-weight: bold;
|
||||
}
|
||||
|
||||
.Entrance_Nya {
|
||||
color: #e67e22; font-size: 15px; font-weight: bold;
|
||||
}
|
||||
|
||||
.Entrance_Pya {
|
||||
color: #9b59b6; font-size: 15px; font-weight: bold;
|
||||
}
|
||||
|
||||
.Entrance_Hwe {
|
||||
color: red; font-size: 15px; font-weight: bold;
|
||||
}
|
||||
|
||||
#Entrance_0001 {
|
||||
width: 800px; height: 130px;
|
||||
position: absolute; top: 154px; left: 0px;
|
||||
}
|
||||
|
||||
#Entrance_000100 {
|
||||
width: 798px; height: 50px;
|
||||
position: absolute; top: 0px; left: 0px;
|
||||
font-size: 30px; font-weight: bold;
|
||||
}
|
||||
|
||||
#Entrance_000101 {
|
||||
width: 200px; height: 50px;
|
||||
position: absolute; top: 65px; left: 150px;
|
||||
}
|
||||
|
||||
#Entrance_000102 {
|
||||
width: 200px; height: 50px;
|
||||
position: absolute; top: 65px; left: 450px;
|
||||
}
|
||||
}
|
||||
+42
-1
@@ -62,8 +62,21 @@ input::-webkit-input-placeholder {
|
||||
}
|
||||
|
||||
|
||||
.col-form-label{
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.terms{
|
||||
max-height: 200px; overflow: auto;
|
||||
max-height: 200px; overflow-y: auto;
|
||||
}
|
||||
|
||||
.terms pre{
|
||||
width:100%;
|
||||
white-space: pre-wrap; /* Since CSS 2.1 */
|
||||
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
|
||||
white-space: -pre-wrap; /* Opera 4-6 */
|
||||
white-space: -o-pre-wrap; /* Opera 7 */
|
||||
word-wrap: break-word; /* Internet Explorer 5.5+ */
|
||||
}
|
||||
|
||||
.vertical-center {
|
||||
@@ -72,4 +85,32 @@ input::-webkit-input-placeholder {
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#btn_kakao_login{
|
||||
cursor: pointer;
|
||||
height:46px;
|
||||
width:116px;
|
||||
background-color: transparent;
|
||||
color:transparent;
|
||||
border:0;
|
||||
background-size: 100%; /* To fill the dimensions of container (button), or */
|
||||
background-repeat: no-repeat;
|
||||
background-position: bottom center;
|
||||
margin-top:5px;
|
||||
background-image:url('../oauth_kakao/kakao_login_join.png');
|
||||
}
|
||||
|
||||
#btn_kakao_login:hover {
|
||||
background-image:url('../oauth_kakao/kakao_login_join_ov.png');
|
||||
}
|
||||
|
||||
#bottom_box{
|
||||
position:fixed;
|
||||
bottom:0;
|
||||
width:100%;
|
||||
left:0;
|
||||
}
|
||||
#bottom_box .container{
|
||||
text-align:center;
|
||||
}
|
||||
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
+11
-173
@@ -21,6 +21,7 @@
|
||||
right: 6px;
|
||||
margin:6px;
|
||||
height:40px;
|
||||
line-height:40px;
|
||||
}
|
||||
|
||||
#btn_delete_me{
|
||||
@@ -37,15 +38,15 @@
|
||||
|
||||
#image_upload_filename{
|
||||
position:absolute;
|
||||
height:16px;
|
||||
height:20px;
|
||||
left:10px;
|
||||
width:130px;
|
||||
top:16px;
|
||||
top:12px;
|
||||
}
|
||||
|
||||
#image_upload_fake_btn{
|
||||
top:16px;
|
||||
height:20px;
|
||||
top:12px;
|
||||
height:22px;
|
||||
right:10px;
|
||||
position:absolute;
|
||||
}
|
||||
@@ -53,8 +54,7 @@
|
||||
#image_upload{
|
||||
opacity: 0;
|
||||
position:absolute;
|
||||
top:16px;
|
||||
height:22px;
|
||||
top:12px;
|
||||
left:0;
|
||||
height:20px;
|
||||
width:100%;
|
||||
@@ -70,7 +70,6 @@
|
||||
bottom:0;
|
||||
left:0;
|
||||
width:50%;
|
||||
height:20px;
|
||||
}
|
||||
|
||||
#btn_remove_icon{
|
||||
@@ -78,171 +77,10 @@
|
||||
bottom:0;
|
||||
right:0;
|
||||
width:50%;
|
||||
height:20px;
|
||||
}
|
||||
|
||||
#EntranceManage_00 {
|
||||
width: 500px; height: 409px;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
#EntranceManage_0000 {
|
||||
width: 498px; height: 50px;
|
||||
}
|
||||
|
||||
#EntranceManage_0001 {
|
||||
width: 100px; height: 30px;
|
||||
}
|
||||
|
||||
#EntranceManage_0002 {
|
||||
width: 498px; height: 25px;
|
||||
}
|
||||
|
||||
#EntranceManage_0003 {
|
||||
width: 98px; height: 84px;
|
||||
line-height: 84px;
|
||||
}
|
||||
|
||||
#EntranceManage_0004 {
|
||||
width: 148px; height: 84px;
|
||||
line-height: 84px;
|
||||
}
|
||||
|
||||
#EntranceManage_0005 {
|
||||
width: 98px; height: 84px;
|
||||
line-height: 84px;
|
||||
}
|
||||
|
||||
#EntranceManage_0006 {
|
||||
width: 148px; height: 84px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#EntranceManage_000600 {
|
||||
width: 80px; height: 17px;
|
||||
}
|
||||
|
||||
#EntranceManage_000601 {
|
||||
width: 80px; height: 17px;
|
||||
}
|
||||
|
||||
#EntranceManage_000602 {
|
||||
width: 80px; height: 17px;
|
||||
}
|
||||
|
||||
#EntranceManage_000603 {
|
||||
width: 144px; height: 20px;
|
||||
}
|
||||
|
||||
#EntranceManage_0007 {
|
||||
width: 98px; height: 64px;
|
||||
line-height: 64px;
|
||||
}
|
||||
|
||||
#EntranceManage_0008 {
|
||||
width: 148px; height: 64px;
|
||||
line-height: 64px;
|
||||
}
|
||||
|
||||
#EntranceManage_0009 {
|
||||
width: 98px; height: 64px;
|
||||
line-height: 64px;
|
||||
}
|
||||
|
||||
#EntranceManage_0010 {
|
||||
width: 148px; height: 64px;
|
||||
line-height: 64px;
|
||||
}
|
||||
|
||||
#EntranceManage_0011 {
|
||||
width: 98px; height: 20px;
|
||||
}
|
||||
|
||||
#EntranceManage_0012 {
|
||||
width: 148px; height: 20px;
|
||||
}
|
||||
|
||||
#EntranceManage_0013 {
|
||||
width: 248px; height: 20px;
|
||||
}
|
||||
|
||||
#EntranceManage_0014 {
|
||||
width: 98px; height: 64px;
|
||||
line-height: 64px;
|
||||
}
|
||||
|
||||
#EntranceManage_0015 {
|
||||
width: 148px; height: 64px;
|
||||
}
|
||||
|
||||
#EntranceManage_001500 {
|
||||
width: 64px; height: 64px;
|
||||
}
|
||||
|
||||
#EntranceManage_001501 {
|
||||
width: 64px; height: 64px;
|
||||
}
|
||||
|
||||
#EntranceManage_0016 {
|
||||
width: 248px; height: 64px;
|
||||
}
|
||||
|
||||
#EntranceManage_001600 {
|
||||
width: 100px; height: 16px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#EntranceManage_001601 {
|
||||
width: 70px; height: 20px;
|
||||
}
|
||||
|
||||
#EntranceManage_001602 {
|
||||
width: 85px; height: 20px;
|
||||
}
|
||||
|
||||
#EntranceManage_001603 {
|
||||
width: 85px; height: 20px;
|
||||
}
|
||||
|
||||
#EntranceManage_0017 {
|
||||
width: 98px; height: 100px;
|
||||
line-height: 100px;
|
||||
}
|
||||
|
||||
#EntranceManage_0018 {
|
||||
width: 398px; height: 100px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#EntranceManage_0019 {
|
||||
width: 149px; height: 20px;
|
||||
}
|
||||
|
||||
#EntranceManage_0020 {
|
||||
width: 500px; height: 20px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#EntranceManage_002000 {
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
#EntranceManage_00200000 {
|
||||
width: 498px; height: 20px;
|
||||
}
|
||||
|
||||
.EntranceManage_Sequence {
|
||||
width: 48px; height: 20px;
|
||||
}
|
||||
|
||||
.EntranceManage_Date {
|
||||
width: 148px; height: 20px;
|
||||
}
|
||||
|
||||
.EntranceManage_Amount {
|
||||
width: 148px; height: 20px;
|
||||
}
|
||||
|
||||
.EntranceManage_Cumul {
|
||||
width: 148px; height: 20px;
|
||||
}
|
||||
#third_use_disallow{
|
||||
display:none;
|
||||
margin-left:10px;
|
||||
width:40px;
|
||||
}
|
||||
+6
-1
@@ -2,11 +2,15 @@
|
||||
namespace sammo;
|
||||
|
||||
define('ROOT', realpath(__dir__.'/..'));
|
||||
|
||||
setlocale(LC_ALL, 'ko_KR.UTF-8');
|
||||
date_default_timezone_set('Asia/Seoul');
|
||||
mb_internal_encoding("UTF-8");
|
||||
mb_http_output('UTF-8');
|
||||
mb_regex_encoding('UTF-8');
|
||||
|
||||
ini_set("session.cache_expire", 10080); // minutes
|
||||
ini_set("session.gc_maxlifetime", 604800); // seconds
|
||||
|
||||
function getFriendlyErrorType($type)
|
||||
{
|
||||
switch($type)
|
||||
@@ -79,6 +83,7 @@ function logExceptionByCustomHandler(\Throwable $e){
|
||||
], Json::PRETTY);
|
||||
|
||||
file_put_contents(ROOT.'/d_log/err_log.txt',"$data\n", FILE_APPEND);
|
||||
echo $e->getTraceAsString();
|
||||
throw $e;
|
||||
}
|
||||
set_exception_handler('\\sammo\\logExceptionByCustomHandler');
|
||||
@@ -10,13 +10,13 @@ require(__dir__.'/../vendor/autoload.php');
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>설치</title>
|
||||
<script src="../e_lib/jquery-3.2.1.min.js"></script>
|
||||
<script src="../e_lib/bootstrap.bundle.min.js"></script>
|
||||
<script src="../e_lib/jquery.validate.min.js"></script>
|
||||
<script src="../e_lib/sha512.min.js"></script>
|
||||
<script src="../js/install.js"></script>
|
||||
<link type="text/css" rel="stylesheet" href="../e_lib/bootstrap.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="../css/install.css">
|
||||
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
|
||||
<?=WebUtil::printJS('../e_lib/bootstrap.bundle.min.js')?>
|
||||
<?=WebUtil::printJS('../e_lib/jquery.validate.min.js')?>
|
||||
<?=WebUtil::printJS('../e_lib/sha512.min.js')?>
|
||||
<?=WebUtil::printJS('../js/install.js')?>
|
||||
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
|
||||
<?=WebUtil::printCSS('../css/install.css')?>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
|
||||
@@ -24,7 +24,7 @@ $rootDB->error_handler = function($params){
|
||||
]);
|
||||
};
|
||||
|
||||
$memberCnt = $rootDB->queryFirstField('SELECT count(`NO`) from MEMBER');
|
||||
$memberCnt = $rootDB->queryFirstField('SELECT count(`NO`) from member');
|
||||
if($memberCnt == 0){
|
||||
Json::die([
|
||||
'step'=>'admin',
|
||||
|
||||
@@ -216,6 +216,13 @@ $result = Util::generateFileUsingSimpleTemplate(
|
||||
true
|
||||
);
|
||||
|
||||
$result = Util::generateFileUsingSimpleTemplate(
|
||||
__dir__.'/templates/menu.orig.js',
|
||||
ROOT.'/d_shared/menu.js',
|
||||
[],
|
||||
true
|
||||
);
|
||||
|
||||
if ($result !== true) {
|
||||
Json::die([
|
||||
'result'=>false,
|
||||
|
||||
@@ -25,9 +25,11 @@ CREATE TABLE `member` (
|
||||
`EMAIL` VARCHAR(64) NULL DEFAULT NULL,
|
||||
`PW` CHAR(128) NOT NULL,
|
||||
`salt` CHAR(16) NOT NULL,
|
||||
`third_use` INT(1) NOT NULL DEFAULT '0',
|
||||
`NAME` VARCHAR(64) NOT NULL,
|
||||
`PICTURE` VARCHAR(64) NULL DEFAULT 'default.jpg',
|
||||
`IMGSVR` INT(1) NULL DEFAULT '0',
|
||||
`acl` text NOT NULL DEFAULT '{}' COMMENT 'json',
|
||||
`GRADE` INT(1) NULL DEFAULT '1',
|
||||
`REG_NUM` INT(3) NULL DEFAULT '0',
|
||||
`REG_DATE` DATETIME NOT NULL,
|
||||
@@ -53,4 +55,18 @@ CREATE TABLE `member_log` (
|
||||
INDEX `action` (`member_no`, `action_type`, `date`),
|
||||
INDEX `member` (`member_no`, `date`)
|
||||
)
|
||||
ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
|
||||
ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
###################
|
||||
# KV storage
|
||||
###################
|
||||
CREATE TABLE if not exists `storage` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`namespace` VARCHAR(40) NOT NULL,
|
||||
`key` VARCHAR(40) NOT NULL,
|
||||
`value` TEXT NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `key` (`namespace`, `key`)
|
||||
)
|
||||
COLLATE='utf8mb4_general_ci'
|
||||
ENGINE=MyISAM
|
||||
@@ -29,6 +29,8 @@ class RootDB
|
||||
if (self::$uDB === null) {
|
||||
self::$uDB = new \MeekroDB(self::$host, self::$user, self::$password, self::$dbName, self::$port, self::$encoding);
|
||||
self::$uDB->connect_options[MYSQLI_OPT_INT_AND_FLOAT_NATIVE] = true;
|
||||
|
||||
self::$uDB->error_handler= function(){};
|
||||
self::$uDB->throw_exception_on_error = true;
|
||||
self::$uDB->throw_exception_on_nonsql_error = true;
|
||||
}
|
||||
|
||||
@@ -11,18 +11,24 @@ class ServConfig
|
||||
public static $sharedIconPath = '_tK_sharedIconPath_';
|
||||
public static $gameImagePath = "_tK_gameImagePath_";
|
||||
|
||||
public static function getSharedIconPath() : string
|
||||
public static function getSharedIconPath(string $filepath='') : string
|
||||
{
|
||||
if($filepath){
|
||||
return static::$sharedIconPath."/{$filepath}";
|
||||
}
|
||||
return static::$sharedIconPath;
|
||||
}
|
||||
|
||||
public static function getUserIconPath() : string
|
||||
public static function getUserIconPath(string $filepath='') : string
|
||||
{
|
||||
return AppConf::getUserIconPathWeb();
|
||||
return AppConf::getUserIconPathWeb($filepath);
|
||||
}
|
||||
|
||||
public static function getGameImagePath() : string
|
||||
public static function getGameImagePath(string $filepath='') : string
|
||||
{
|
||||
if($filepath){
|
||||
return static::$gameImagePath."/{$filepath}";
|
||||
}
|
||||
return static::$gameImagePath;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
window.sammo_menu = [
|
||||
['/bbs/board', '삼모게시판', '_blank'],
|
||||
['/bbs/tip', '팁/강좌', '_blank'],
|
||||
['/bbs/news', '삼국 일보', '_blank'],
|
||||
['/bbs/history2', '개인 열전', '_blank'],
|
||||
['/bbs/history3', '국가 열전', '_blank'],
|
||||
['/bbs/patch', '패치 내역', '_blank']
|
||||
];
|
||||
+10
-11
@@ -5,15 +5,15 @@ include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
if($session->userGrade < 5) {
|
||||
?><!DOCTYPE html>
|
||||
if($session->userGrade < 4) {
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>관리메뉴</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
관리자가 아닙니다.<br>
|
||||
@@ -25,11 +25,10 @@ if($session->userGrade < 5) {
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select turntime,tnmt_time from game";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
list($turntime, $tnmt_time) = $gameStor->getValuesAsArray(['turntime','tnmt_time']);
|
||||
|
||||
$query = "select plock from plock";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -40,13 +39,13 @@ $plock = MYDB_fetch_array($result);
|
||||
<head>
|
||||
<title>삼국지 모의전투 HiDCHe</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
<form action=_119_b.php method=post>
|
||||
시간조정 : <input type=text size=3 name=minute><input type=submit name=btn value='분당김'><input type=submit name=btn value='분지연'> 최종갱신 : <?=$admin['turntime']?><br>
|
||||
시간조정 : <input type=text size=3 name=minute2><input type=submit name=btn value='토너분당김'><input type=submit name=btn value='토너분지연'> 토너먼트 : <?=$admin['tnmt_time']?><br>
|
||||
시간조정 : <input type=text size=3 name=minute><input type=submit name=btn value='분당김'><input type=submit name=btn value='분지연'> 최종갱신 : <?=$turntime?><br>
|
||||
시간조정 : <input type=text size=3 name=minute2><input type=submit name=btn value='토너분당김'><input type=submit name=btn value='토너분지연'> 토너먼트 : <?=$tnmt_time?><br>
|
||||
봉급지급 : <input type=submit name=btn value='금지급'><input type=submit name=btn value='쌀지급'><br>
|
||||
락 풀 기 : <input type=submit name=btn value='락걸기'><input type=submit name=btn value='락풀기'> 현재 : <?=$plock['plock']>0?"동결중":"가동중"?><br>
|
||||
</form>
|
||||
|
||||
+42
-23
@@ -6,7 +6,7 @@ include "func.php";
|
||||
|
||||
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
if($session->userGrade < 5){
|
||||
if($session->userGrade < 4){
|
||||
header('location:_119.php');
|
||||
die();
|
||||
}
|
||||
@@ -24,33 +24,54 @@ $btn = Util::getReq('btn');
|
||||
$minute = Util::getReq('minute', 'int');
|
||||
$minute2 = Util::getReq('minute2', 'int');
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
switch($btn) {
|
||||
case "분당김":
|
||||
$query = "update game set turntime=DATE_SUB(turntime, INTERVAL $minute MINUTE),starttime=DATE_SUB(starttime, INTERVAL $minute MINUTE),tnmt_time=DATE_SUB(tnmt_time, INTERVAL $minute MINUTE)";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update general set turntime=DATE_SUB(turntime, INTERVAL $minute MINUTE)";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update auction set expire=DATE_SUB(expire, INTERVAL $minute MINUTE)";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->cacheValues(['turntime', 'starttime', 'tnmt_time']);
|
||||
$turntime = (new \DateTimeImmutable($gameStor->turntime))->sub(new \DateInterval("PT{$minute}M"));
|
||||
$starttime = (new \DateTimeImmutable($gameStor->starttime))->sub(new \DateInterval("PT{$minute}M"));
|
||||
$tnmt_time = (new \DateTimeImmutable($gameStor->tnmt_time))->sub(new \DateInterval("PT{$minute}M"));
|
||||
|
||||
$gameStor->turntime = $turntime->format('Y-m-d H:i:s');
|
||||
$gameStor->starttime = $starttime->format('Y-m-d H:i:s');
|
||||
$gameStor->tnmt_time = $tnmt_time->format('Y-m-d H:i:s');
|
||||
|
||||
$db->update('general', [
|
||||
'turntime'=>$db->sqleval('DATE_ADD(turntime, INTERVAL %i MINUTE)', $minute)
|
||||
], true);
|
||||
$db->update('auction', [
|
||||
'expire'=>$db->sqleval('DATE_ADD(expire, INTERVAL %i MINUTE)', $minute)
|
||||
], true);
|
||||
break;
|
||||
case "분지연":
|
||||
$query = "update game set turntime=DATE_ADD(turntime, INTERVAL $minute MINUTE),starttime=DATE_ADD(starttime, INTERVAL $minute MINUTE),tnmt_time=DATE_ADD(tnmt_time, INTERVAL $minute MINUTE)";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update general set turntime=DATE_ADD(turntime, INTERVAL $minute MINUTE)";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update auction set expire=DATE_ADD(expire, INTERVAL $minute MINUTE)";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->cacheValues(['turntime', 'starttime', 'tnmt_time']);
|
||||
$turntime = (new \DateTimeImmutable($gameStor->turntime))->add(new \DateInterval("PT{$minute}M"));
|
||||
$starttime = (new \DateTimeImmutable($gameStor->starttime))->add(new \DateInterval("PT{$minute}M"));
|
||||
$tnmt_time = (new \DateTimeImmutable($gameStor->tnmt_time))->add(new \DateInterval("PT{$minute}M"));
|
||||
|
||||
$gameStor->turntime = $turntime->format('Y-m-d H:i:s');
|
||||
$gameStor->starttime = $starttime->format('Y-m-d H:i:s');
|
||||
$gameStor->tnmt_time = $tnmt_time->format('Y-m-d H:i:s');
|
||||
|
||||
$db->update('general', [
|
||||
'turntime'=>$db->sqleval('DATE_ADD(turntime, INTERVAL %i MINUTE)', $minute)
|
||||
], true);
|
||||
$db->update('auction', [
|
||||
'expire'=>$db->sqleval('DATE_ADD(expire, INTERVAL %i MINUTE)', $minute)
|
||||
], true);
|
||||
break;
|
||||
case "토너분당김":
|
||||
$query = "update game set tnmt_time=DATE_SUB(tnmt_time, INTERVAL $minute2 MINUTE)";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$tnmt_time = new \DateTime($gameStor->tnmt_time);
|
||||
$tnmt_time->sub(new \DateInterval("PT{$minute2}M"));
|
||||
$gameStor->tnmt_time = $tnmt_time->format('Y-m-d H:i:s');
|
||||
break;
|
||||
case "토너분지연":
|
||||
$query = "update game set tnmt_time=DATE_ADD(tnmt_time, INTERVAL $minute2 MINUTE)";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$tnmt_time = new \DateTimeImmutable($gameStor->tnmt_time);
|
||||
$tnmt_time->add(new \DateInterval("PT{$minute2}M"));
|
||||
$gameStor->tnmt_time = $tnmt_time->format('Y-m-d H:i:s');
|
||||
break;
|
||||
case "금지급":
|
||||
processGoldIncome();
|
||||
@@ -59,12 +80,10 @@ case "쌀지급":
|
||||
processRiceIncome();
|
||||
break;
|
||||
case "락걸기":
|
||||
$query = "update plock set plock=1";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$db->update('plock', ['plock'=>1], true);
|
||||
break;
|
||||
case "락풀기":
|
||||
$query = "update plock set plock=0";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$db->update('plock', ['plock'=>0], true);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
+12
-13
@@ -7,22 +7,21 @@ include "func.php";
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
|
||||
if($session->userGrade < 5) {
|
||||
echo "<!DOCTYPE html>
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>관리메뉴</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
관리자가 아닙니다.<br>
|
||||
";
|
||||
echo banner();
|
||||
echo "
|
||||
<?=banner()?>
|
||||
</body>
|
||||
</html>";
|
||||
|
||||
</html>
|
||||
<?php
|
||||
exit();
|
||||
}
|
||||
|
||||
@@ -36,15 +35,15 @@ $admin = getAdmin();
|
||||
<head>
|
||||
<title>게임관리</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class="tb_layout bg0">
|
||||
<tr><td>게 임 관 리<br><?=backButton()?></td></tr>
|
||||
</table>
|
||||
<form name=form1 method=post action=_admin1_submit.php>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class="tb_layout bg0">
|
||||
<tr><td width=110 align=right>운영자메세지</td>
|
||||
<td colspan=3><input type=textarea size=90 style=color:white;background-color:black; name=msg value='<?=$admin['msg']?>'><input type=submit name=btn value=변경></td></td>
|
||||
</tr>
|
||||
@@ -81,7 +80,7 @@ $admin = getAdmin();
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
|
||||
+11
-13
@@ -22,6 +22,7 @@ if (!$v->validate()) {
|
||||
Error($v->errorStr());
|
||||
}
|
||||
|
||||
$msg = Util::getReq('msg');
|
||||
$btn = Util::getReq('btn');
|
||||
$log = Util::getReq('log');
|
||||
$starttime = Util::getReq('starttime', 'string', (new \DateTime())->format('Y-m-d H:i:s'));
|
||||
@@ -29,16 +30,17 @@ $maxgeneral = Util::getReq('maxgeneral', 'int', GameConst::$defaultMaxGeneral);
|
||||
$maxnation = Util::getReq('maxnation', 'int', GameConst::$defaultMaxNation);
|
||||
$startyear = Util::getReq('startyear', 'int', GameConst::$defaultStartYear);
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$admin = getAdmin();
|
||||
|
||||
switch ($btn) {
|
||||
case "변경":
|
||||
$msg = addslashes(SQ2DQ($msg));
|
||||
$query = "update game set msg='$msg'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$gameStor->msg = $msg;
|
||||
break;
|
||||
case "로그쓰기":
|
||||
$lognum = $admin['historyindex'] + 1;
|
||||
@@ -48,20 +50,16 @@ switch ($btn) {
|
||||
pushWorldHistory(["<R>★</><S>{$log}</>"]);
|
||||
break;
|
||||
case "변경1":
|
||||
$query = "update game set starttime='$starttime'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$gameStor->starttime = (new \DateTime($starttime))->format('Y-m-d H:i:s');
|
||||
break;
|
||||
case "변경2":
|
||||
$query = "update game set maxgeneral='$maxgeneral'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$gameStor->maxgeneral = $maxgeneral;
|
||||
break;
|
||||
case "변경3":
|
||||
$query = "update game set maxnation='$maxnation'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$gameStor->maxnation = $maxnation;
|
||||
break;
|
||||
case "변경4":
|
||||
$query = "update game set startyear='$startyear'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$gameStor->startyear = $startyear;
|
||||
break;
|
||||
case "1분턴":
|
||||
case "2분턴":
|
||||
@@ -85,8 +83,8 @@ switch ($btn) {
|
||||
$turn = ($admin['year'] - $admin['startyear']) * 12 + $admin['month'] - 1;
|
||||
$starttime = date("Y-m-d H:i:s", strtotime($admin['turntime']) - $turn * $unit);
|
||||
$starttime = cutTurn($starttime, $turnterm);
|
||||
$query = "update game set turnterm='$turnterm',starttime='$starttime'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$gameStor->turnterm = $turnterm;
|
||||
$gameStor->starttime = $starttime;
|
||||
// 턴시간이 길어지는 경우 랜덤턴 배정
|
||||
if ($turnterm < $admin['turnterm']) {
|
||||
$query = "select no from general";
|
||||
|
||||
+15
-24
@@ -7,52 +7,47 @@ include "func.php";
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
|
||||
if($session->userGrade < 5) {
|
||||
echo "<!DOCTYPE html>
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>관리메뉴</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
관리자가 아닙니다.<br>
|
||||
";
|
||||
echo banner();
|
||||
echo "
|
||||
<?=banner()?>
|
||||
</body>
|
||||
</html>";
|
||||
|
||||
</html>
|
||||
<?php
|
||||
exit();
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>회원관리</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>회 원 관 리<br><?=backButton()?></td></tr>
|
||||
</table>
|
||||
<form name=form1 method=post action=_admin2_submit.php>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=80 align=center>접속제한</td>
|
||||
<td width=713 align=center><input type=submit name=btn value='전체 접속허용'><input type=submit name=btn value='전체 접속제한'></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=80 align=center rowspan=12>회원선택<br><br><font color=cyan>NPC</font><br><font color=skyblue>NPC유저</font><br><font color=red>접속제한</font><br><b style=background-color:red;>블럭회원</b></td>
|
||||
<td width=105 rowspan=12>
|
||||
@@ -60,13 +55,9 @@ $admin = MYDB_fetch_array($result);
|
||||
|
||||
echo "
|
||||
<select name=genlist[] size=20 multiple style=color:white;background-color:black;font-size:13>";
|
||||
$generalList = $db->query('SELECT `no`, `name`, npc, `block` FROM general ORDER BY npc, binary(`name`)');
|
||||
|
||||
$query = "select no,name,npc,block from general order by npc,binary(name)";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gencount = MYDB_num_rows($result);
|
||||
|
||||
for($i=0; $i < $gencount; $i++) {
|
||||
$general = MYDB_fetch_array($result);
|
||||
foreach($generalList as $general){
|
||||
$style = "style=;";
|
||||
if($general['block'] > 0) { $style .= "background-color:red;"; }
|
||||
if($general['npc'] >= 2) { $style .= "color:cyan;"; }
|
||||
@@ -131,7 +122,7 @@ for($i=0; $i < 27; $i++) {
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
|
||||
+238
-192
@@ -7,6 +7,8 @@ include "func.php";
|
||||
$btn = Util::getReq('btn');
|
||||
$weap = Util::getReq('weap', 'int');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireLogin()->loginGame()->setReadOnly();
|
||||
|
||||
@@ -17,288 +19,332 @@ if($session->userGrade < 5) {
|
||||
$generalID = $session->generalID;
|
||||
if(!$generalID){
|
||||
header('location:_admin2.php');
|
||||
die();
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$src = MessageTarget::buildQuick($session->generalID);
|
||||
|
||||
switch($btn) {
|
||||
case "전체 접속허용":
|
||||
$query = "update general set con=0";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$db->update('general', [
|
||||
'con'=>0
|
||||
], true);
|
||||
break;
|
||||
case "전체 접속제한":
|
||||
$query = "update general set con=1000";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$db->update('general', [
|
||||
'con'=>1000
|
||||
], true);
|
||||
break;
|
||||
case "블럭 해제":
|
||||
$db->update('general', [
|
||||
'block'=>0
|
||||
], '`no` IN %li', $genlist);
|
||||
DB::db()->query('update general set block=0 where no IN %li', $genlist);
|
||||
break;
|
||||
case "1단계 블럭":
|
||||
$date = date('Y-m-d H:i:s');
|
||||
$db = DB::db();
|
||||
$db->query('update general set block=1,killturn=24 where no IN %li',$genlist);
|
||||
//FIXME: subquery로 하는게 더 빠를 듯.
|
||||
$uid = $db->queryFirstColumn('select owner from general where no IN %li', $genlist);
|
||||
RootDB::db()->query('update MEMBER set block_num=block_num+1,block_date=%s where no IN %ls', $date, $uid);
|
||||
$db->update('general', [
|
||||
'block'=>1,
|
||||
'killturn'=>24
|
||||
], '`no` IN %li', $genlist);
|
||||
$uid = $db->queryFirstColumn('SELECT `owner` FROM general WHERE `no` IN %li', $genlist);
|
||||
RootDB::db()->update('member',[
|
||||
'block_num'=>$db->sqleval('block_num+1'),
|
||||
'block_date'=>$date
|
||||
], 'id IN %li', $uid);
|
||||
break;
|
||||
case "2단계 블럭":
|
||||
$date = date('Y-m-d H:i:s');
|
||||
$db = DB::db();
|
||||
$db->query('update general set gold=0,rice=0,block=2,killturn=24 where no IN %li',$genlist);
|
||||
$db->update('general', [
|
||||
'gold'=>0,
|
||||
'rice'=>0,
|
||||
'block'=>2,
|
||||
'killturn'=>24
|
||||
], '`no` IN %li', $genlist);
|
||||
$uid = $db->queryFirstColumn('select owner from general where no IN %li', $genlist);
|
||||
RootDB::db()->query('update MEMBER set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid);
|
||||
RootDB::db()->update('member',[
|
||||
'block_num'=>$db->sqleval('block_num+1'),
|
||||
'block_date'=>$date
|
||||
], 'id IN %li', $uid);
|
||||
break;
|
||||
case "3단계 블럭":
|
||||
$date = date('Y-m-d H:i:s');
|
||||
$db = DB::db();
|
||||
$db->query('update general set gold=0,rice=0,block=3,killturn=24 where no IN %li',$genlist);
|
||||
$uid = $db->queryFirstColumn('select owner from general where no IN %li', $genlist);
|
||||
RootDB::db()->query('update MEMBER set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid);
|
||||
$db->update('general', [
|
||||
'gold'=>0,
|
||||
'rice'=>0,
|
||||
'block'=>3,
|
||||
'killturn'=>24
|
||||
], '`no` IN %li', $genlist);
|
||||
$uid = $db->queryFirstColumn('SELECT `owner` from general where no IN %li', $genlist);
|
||||
RootDB::db()->update('member',[
|
||||
'block_num'=>$db->sqleval('block_num+1'),
|
||||
'block_date'=>$date
|
||||
], 'id IN %li', $uid);
|
||||
break;
|
||||
case "무한삭턴":
|
||||
DB::db()->query('update general set killturn=8000 where no IN %li',$genlist);
|
||||
$db->update('general', [
|
||||
'killturn'=>8000
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "강제 사망":
|
||||
$date = date('Y-m-d H:i:s');
|
||||
DB::db()->query('update general set turn0=0,killturn=0,turntime=%s where no IN %li',$date, $genlist);
|
||||
$db->update('general', [
|
||||
'turn0'=>0,
|
||||
'killturn'=>0,
|
||||
'turntime'=>$date,
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "특기 부여":
|
||||
$admin = DB::db()->queryFirstRow('select `year`, `month` from `game` where `no`=1');
|
||||
list($year, $month) = $gameStor->getValuesAsArray(['year', 'month']);
|
||||
$text = "특기 부여!";
|
||||
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
$msg = "특기 부여!";
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
}
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "select no,leader,power,intel from general where no='$genlist[$i]'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
foreach($db->query("SELECT `no`,leader,power,intel,dex0,dex10,dex20,dex30,dex40 FROM general WHERE `no` IN %li", $genlist) as $general){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($general['no']), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
|
||||
$special2 = getSpecial2($general['leader'], $general['power'], $general['intel']);
|
||||
|
||||
$query = "update general set specage2=age,special2='$special2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$log[0] = "<C>●</>특기 【<b><L>".getGenSpecial($special2)."</></b>】(을)를 익혔습니다!";
|
||||
pushGeneralHistory($general, "<C>●</>{$admin['year']}년 {$admin['month']}월:특기 【<b><C>".getGenSpecial($special2)."</></b>】(을)를 습득");
|
||||
pushGenLog($general, $log);
|
||||
$specialWar = SpecialityConst::pickSpecialWar($general);
|
||||
$db->update('general', [
|
||||
'specage2'=>$db->sqleval('age'),
|
||||
'special2'=>$specialWar
|
||||
], 'no=%i', $general['no']);
|
||||
$specialWarName = SpecialityConst::WAR[$specialWar][0];
|
||||
$josaUl = JosaUtil::pick($specialWarName, '을');
|
||||
pushGeneralHistory($general, "<C>●</>{$year}년 {$month}월:특기 【<b><C>{$specialWarName}</></b>】{$josaUl} 습득");
|
||||
pushGenLog($general, ["<C>●</>특기 【<b><L>{$specialWarName}</></b>】{$josaUl} 익혔습니다!"]);
|
||||
}
|
||||
|
||||
break;
|
||||
case "경험치1000":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
$msg = $btn." 지급!";
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
}
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set experience=experience+1000 where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$text = $btn." 지급!";
|
||||
foreach($genlist as $generalID){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
}
|
||||
$db->update('general',[
|
||||
'experience'=>$db->sqleval('experience+1000')
|
||||
], '`no` IN %li', $genlist);
|
||||
|
||||
break;
|
||||
case "공헌치1000":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
$msg = $btn." 지급!";
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
}
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set dedication=dedication+1000 where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$text = $btn." 지급!";
|
||||
foreach($genlist as $generalID){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
}
|
||||
$db->update('general',[
|
||||
'dedication'=>$db->sqleval('dedication+1000')
|
||||
], '`no` IN %li', $genlist);
|
||||
|
||||
break;
|
||||
case "보숙10000":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
$msg = "보병숙련도+10000 지급!";
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
}
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set dex0=dex0+10000 where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$text = "보병숙련도+10000 지급!";
|
||||
foreach($genlist as $generalID){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
}
|
||||
$db->update('general',[
|
||||
'dex0'=>$db->sqleval('dex0+10000')
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "궁숙10000":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
$msg = "궁병숙련도+10000 지급!";
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
}
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set dex10=dex10+10000 where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$text = "궁병숙련도+10000 지급!";
|
||||
foreach($genlist as $generalID){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
}
|
||||
$db->update('general',[
|
||||
'dex10'=>$db->sqleval('dex10+10000')
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "기숙10000":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
$msg = "기병숙련도+10000 지급!";
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
}
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set dex20=dex20+10000 where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$src = MessageTarget::buildQuick($session->generalID);
|
||||
$text = "기병숙련도+10000 지급!";
|
||||
foreach($genlist as $generalID){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
}
|
||||
$db->update('general',[
|
||||
'dex20'=>$db->sqleval('dex20+10000')
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "귀숙10000":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
$msg = "귀병숙련도+10000 지급!";
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
}
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set dex30=dex30+10000 where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$src = MessageTarget::buildQuick($session->generalID);
|
||||
$text = "귀병숙련도+10000 지급!";
|
||||
foreach($genlist as $generalID){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
}
|
||||
$db->update('general',[
|
||||
'dex30'=>$db->sqleval('dex30+10000')
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "차숙10000":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
$msg = "차병숙련도+10000 지급!";
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
}
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set dex40=dex40+10000 where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$src = MessageTarget::buildQuick($session->generalID);
|
||||
$text = "차병숙련도+10000 지급!";
|
||||
foreach($genlist as $generalID){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
}
|
||||
$db->update('general',[
|
||||
'dex40'=>$db->sqleval('dex40+10000')
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "접속 허용":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set con=0 where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
$db->update('general',[
|
||||
'con'=>0
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "접속 제한":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set con=1000 where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
$db->update('general',[
|
||||
'con'=>1000
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "메세지 전달":
|
||||
//TODO:새 갠메 시스템으로 변경
|
||||
$date = date('Y-m-d H:i:s');
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
$text = $msg;
|
||||
foreach($genlist as $generalID){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
}
|
||||
break;
|
||||
case "무기지급":
|
||||
$date = date('Y-m-d H:i:s');
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
if($weap == 0) { $msg = "무기 회수!"; }
|
||||
else { $msg = getWeapName($weap)." 지급!"; }
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
|
||||
if($weap == 0) {
|
||||
$text = "무기 회수!";
|
||||
}
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
if($weap == 0) {
|
||||
$query = "update general set weap='0' where no='$genlist[$i]'";
|
||||
} else {
|
||||
$query = "update general set weap='$weap' where no='$genlist[$i]' and weap<'$weap'";
|
||||
}
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
else {
|
||||
$text = getWeapName($weap)." 지급!";
|
||||
}
|
||||
|
||||
foreach($genlist as $generalID){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
}
|
||||
|
||||
if($weap == 0){
|
||||
$db->update('general', [
|
||||
'weap'=>0
|
||||
], '`no` IN %li', $genlist);
|
||||
}
|
||||
else{
|
||||
$db->update('general', [
|
||||
'weap'=>$weap
|
||||
], '`no` IN %li AND weap < %i', $genlist, $weap);
|
||||
}
|
||||
break;
|
||||
case "책지급":
|
||||
$date = date('Y-m-d H:i:s');
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
if($weap == 0) { $msg = "서적 회수!"; }
|
||||
else { $msg = getBookName($weap)." 지급!"; }
|
||||
// 상대에게 발송
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
if($weap == 0) {
|
||||
$text = "책 회수!";
|
||||
}
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
if($weap == 0) {
|
||||
$query = "update general set book='0' where no='$genlist[$i]'";
|
||||
} else {
|
||||
$query = "update general set book='$weap' where no='$genlist[$i]' and book<'$weap'";
|
||||
}
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
else {
|
||||
$text = getBookName($weap)." 지급!";
|
||||
}
|
||||
|
||||
foreach($genlist as $generalID){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
}
|
||||
|
||||
if($weap == 0){
|
||||
$db->update('general', [
|
||||
'book'=>0
|
||||
], '`no` IN %li', $genlist);
|
||||
}
|
||||
else{
|
||||
$db->update('general', [
|
||||
'book'=>$weap
|
||||
], '`no` IN %li AND book < %i', $genlist, $weap);
|
||||
}
|
||||
break;
|
||||
case "말지급":
|
||||
$date = date('Y-m-d H:i:s');
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
if($weap == 0) { $msg = "말 회수!"; }
|
||||
else { $msg = getHorseName($weap)." 지급!"; }
|
||||
// 상대에게 발송
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
if($weap == 0) {
|
||||
$text = "말 회수!";
|
||||
}
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
if($weap == 0) {
|
||||
$query = "update general set horse='0' where no='$genlist[$i]'";
|
||||
} else {
|
||||
$query = "update general set horse='$weap' where no='$genlist[$i]' and horse<'$weap'";
|
||||
}
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
else {
|
||||
$text = getHorseName($weap)." 지급!";
|
||||
}
|
||||
|
||||
foreach($genlist as $generalID){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
}
|
||||
|
||||
if($weap == 0){
|
||||
$db->update('general', [
|
||||
'horse'=>0
|
||||
], '`no` IN %li', $genlist);
|
||||
}
|
||||
else{
|
||||
$db->update('general', [
|
||||
'horse'=>$weap
|
||||
], '`no` IN %li AND horse < %i', $genlist, $weap);
|
||||
}
|
||||
break;
|
||||
case "도구지급":
|
||||
$date = date('Y-m-d H:i:s');
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
|
||||
if($weap == 0) { $msg = "특수도구 회수!"; }
|
||||
else { $msg = getItemName($weap)." 지급!"; }
|
||||
// 상대에게 발송
|
||||
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
|
||||
if($weap == 0) {
|
||||
$text = "특수도구 회수!";
|
||||
}
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
if($weap == 0) {
|
||||
$query = "update general set item='0' where no='$genlist[$i]'";
|
||||
} else {
|
||||
$query = "update general set item='$weap' where no='$genlist[$i]' and item<'$weap'";
|
||||
}
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
else {
|
||||
$text = getItemName($weap)." 지급!";
|
||||
}
|
||||
|
||||
foreach($genlist as $generalID){
|
||||
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new \DateTime(), new \DateTime('9999-12-31'), []);
|
||||
$msg->send(true);
|
||||
}
|
||||
|
||||
if($weap == 0){
|
||||
$db->update('general', [
|
||||
'item'=>0
|
||||
], '`no` IN %li', $genlist);
|
||||
}
|
||||
else{
|
||||
$db->update('general', [
|
||||
'item'=>$weap
|
||||
], '`no` IN %li AND item < %i', $genlist, $weap);
|
||||
}
|
||||
break;
|
||||
case "NPC해제":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set npc=1 where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
$db->update('general', [
|
||||
'npc'=>1
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "하야입력":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set turn0='00000000000045' where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
$db->update('general', [
|
||||
'turn0'=>'00000000000045'
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "방랑해산":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set turn0='00000000000047',turn1='00000000000056' where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
$db->update('general', [
|
||||
'turn0'=>'00000000000047',
|
||||
'turn1'=>'00000000000056'
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "NPC설정":
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$query = "update general set npc=2 where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
$db->update('general', [
|
||||
'npc'=>2
|
||||
], '`no` IN %li', $genlist);
|
||||
break;
|
||||
case "00턴":
|
||||
$query = "select turnterm from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$turnterm = $gameStor->turnterm;
|
||||
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$turntime = getRandTurn($admin['turnterm']);
|
||||
$cutTurn = cutTurn($turntime, $admin['turnterm']);
|
||||
$query = "update general set turntime='$cutTurn' where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
foreach($genlist as $generalID){
|
||||
$turntime = getRandTurn($turnterm);
|
||||
$cutTurn = cutTurn($turntime, $turnterm);
|
||||
$db->update('general', [
|
||||
'turntime'=>$curTurn
|
||||
], '`no` IN %li', $genlist);
|
||||
}
|
||||
break;
|
||||
case "랜덤턴":
|
||||
$query = "select turnterm from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$turntime = getRandTurn($admin['turnterm']);
|
||||
$query = "update general set turntime='$turntime' where no='$genlist[$i]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
foreach($genlist as $generalID){
|
||||
$turntime = getRandTurn($turnterm);
|
||||
$db->update('general', [
|
||||
'turntime'=>$turntime
|
||||
], '`no` IN %li', $genlist);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
+16
-18
@@ -7,46 +7,44 @@ include "func.php";
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
|
||||
if($session->userGrade < 5) {
|
||||
echo "<!DOCTYPE html>
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>관리메뉴</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
관리자가 아닙니다.<br>
|
||||
";
|
||||
echo banner();
|
||||
echo "
|
||||
<?=banner()?>
|
||||
</body>
|
||||
</html>";
|
||||
|
||||
</html>
|
||||
<?php
|
||||
exit();
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$conlimit = $gameStor->conlimit;
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>멀티관리</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>멀 티 관 리<br><?=backButton()?></td></tr>
|
||||
</table>
|
||||
<form name=form1 method=post action=_admin4_submit.php>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=80 align=center rowspan=3>회원선택<br><br><font color=cyan>NPC</font><br><font color=skyblue>NPC유저</font><br><font color=red>접속제한</font><br><b style=background-color:red;>블럭회원</b></td>
|
||||
<td width=105 rowspan=3>
|
||||
@@ -65,7 +63,7 @@ for($i=0; $i < $gencount; $i++) {
|
||||
if($general['block'] > 0) { $style .= "background-color:red;"; }
|
||||
if($general['npc'] >= 2) { $style .= "color:cyan;"; }
|
||||
elseif($general['npc'] == 1) { $style .= "color:skyblue;"; }
|
||||
if($general['con'] > $admin['conlimit']) { $style .= "color:red;"; }
|
||||
if($general['con'] > $conlimit) { $style .= "color:red;"; }
|
||||
|
||||
echo "
|
||||
<option value={$general['no']} $style>{$general['name']}</option>";
|
||||
@@ -90,7 +88,7 @@ echo "
|
||||
<td><input type=textarea size=60 maxlength=255 name=msg style=background-color:black;color:white;><input type=submit name=btn value='메세지 전달'></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td align=center width=100>장수명</td>
|
||||
<td align=center width=180>최근로그인</td>
|
||||
@@ -137,7 +135,7 @@ echo "
|
||||
//NOTE: password의 md5 해시가 같은지 확인하는 방식으로는 앞으로 잡아낼 수 없다. 폐기
|
||||
?>
|
||||
</form>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
|
||||
+20
-5
@@ -12,10 +12,12 @@ if($session->userGrade < 5) {
|
||||
}
|
||||
|
||||
$btn = Util::getReq('btn');
|
||||
$genlist = Util::getReq('genlist', 'int');
|
||||
$genlist = Util::getReq('genlist', 'array_int');
|
||||
$msg = Util::getReq('msg','string', '메시지');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
//NOTE: 왜 기능이 admin2와 admin4가 같이 있는가?
|
||||
//NOTE: 왜 블럭 시 admin4에선 금쌀을 없애지 않는가?
|
||||
@@ -29,21 +31,21 @@ switch($btn) {
|
||||
$db->query('update general set block=1,killturn=24 where no IN %li',$genlist);
|
||||
//FIXME: subquery로 하는게 더 빠를 듯.
|
||||
$uid = $db->queryFirstColumn('select owner from general where no IN %li', $genlist);
|
||||
RootDB::db()->query('update MEMBER set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid);
|
||||
RootDB::db()->query('update member set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid);
|
||||
break;
|
||||
case "2단계 블럭":
|
||||
$date = date('Y-m-d H:i:s');
|
||||
$db = DB::db();
|
||||
$db->query('update general set block=2,killturn=24 where no IN %li',$genlist);
|
||||
$uid = $db->queryFirstColumn('select owner from general where no IN %li', $genlist);
|
||||
RootDB::db()->query('update MEMBER set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid);
|
||||
RootDB::db()->query('update member set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid);
|
||||
break;
|
||||
case "3단계 블럭":
|
||||
$date = date('Y-m-d H:i:s');
|
||||
$db = DB::db();
|
||||
$db->query('update general set block=3,killturn=24 where no IN %li',$genlist);
|
||||
$uid = $db->queryFirstColumn('select owner from general where no IN %li', $genlist);
|
||||
RootDB::db()->query('update MEMBER set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid);
|
||||
RootDB::db()->query('update member set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid);
|
||||
break;
|
||||
case "무한삭턴":
|
||||
DB::db()->query('update general set killturn=8000 where no IN %li',$genlist);
|
||||
@@ -55,7 +57,20 @@ switch($btn) {
|
||||
case "메세지 전달":
|
||||
//TODO:새 갠메 시스템으로 변경
|
||||
$date = date('Y-m-d H:i:s');
|
||||
$src = MessageTarget::buildQuick($session->generalID);
|
||||
for($i=0; $i < count($genlist); $i++) {
|
||||
$msgObj = new Message(
|
||||
Message::MSGTYPE_PRIVATE,
|
||||
$src,
|
||||
MessageTarget::buildQuick($genlist[$i]),
|
||||
$msg,
|
||||
new DateTime(),
|
||||
new \DateTime('9999-12-31'),
|
||||
[]
|
||||
);
|
||||
if($msgObj){
|
||||
$msgObj->send(true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
+26
-27
@@ -7,57 +7,56 @@ include "func.php";
|
||||
$type = Util::getReq('type', 'int', 0);
|
||||
$type2 = Util::getReq('type2', 'int', 0);
|
||||
|
||||
if($type < 0 || $type > 17){
|
||||
$type = 0;
|
||||
}
|
||||
if($type2 < 0 || $type2 > 6){
|
||||
$type2 = 0;
|
||||
}
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
|
||||
if($session->userGrade < 5) {
|
||||
echo "<!DOCTYPE html>
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>관리메뉴</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
관리자가 아닙니다.<br>
|
||||
";
|
||||
echo banner();
|
||||
echo "
|
||||
<?=banner()?>
|
||||
</body>
|
||||
</html>";
|
||||
|
||||
</html>
|
||||
<?php
|
||||
exit();
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
if($type == 0) {
|
||||
$type = 0;
|
||||
}
|
||||
if($type2 == 0) {
|
||||
$type2 = 0;
|
||||
}
|
||||
$sel = [];
|
||||
$sel2 = [];
|
||||
$sel[$type] = "selected";
|
||||
$sel2[$type2] = "selected";
|
||||
|
||||
$query = "select conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>일제정보</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>일 제 정 보<br><?=closeButton()?></td></tr>
|
||||
<tr><td>
|
||||
<form name=form1 method=post>정렬순서 :
|
||||
@@ -112,7 +111,7 @@ for($i=1; $i <= $count; $i++) {
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<table align=center width=1600 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px; id=bg0>
|
||||
<table align=center width=1600 class="tb_layout bg0">
|
||||
<tr id=bg1>
|
||||
<td align=center>국명</td>
|
||||
<td align=center>접률</td>
|
||||
@@ -155,7 +154,7 @@ SELECT
|
||||
A.chemi,
|
||||
A.color,
|
||||
A.tech,
|
||||
A.tricklimit,
|
||||
A.sabotagelimit,
|
||||
A.gold,
|
||||
A.rice,
|
||||
COUNT(B.nation) AS gennum,
|
||||
@@ -230,7 +229,7 @@ for($i=0; $i < $nationCount; $i++) {
|
||||
<td align=center> {$gen['cnt']} </td>
|
||||
<td align=center> {$city['cnt']} </td>
|
||||
<td align=center> {$nation['tech']} </td>
|
||||
<td align=center> {$nation['tricklimit']} </td>
|
||||
<td align=center> {$nation['sabotagelimit']} </td>
|
||||
<td align=center> {$nation['gold']} </td>
|
||||
<td align=center> {$nation['rice']} </td>
|
||||
<td align=center> {$gen['avgg']} </td>
|
||||
@@ -259,11 +258,11 @@ for($i=0; $i < $nationCount; $i++) {
|
||||
|
||||
?>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<tr><td><?=getTrickLogRecent(20)?></td></tr>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=getSabotageLogRecent(20)?></td></tr>
|
||||
</table>
|
||||
|
||||
<table align=center width=1760 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px; id=bg0>
|
||||
<table align=center width=1760 class="tb_layout bg0">
|
||||
<tr id=bg1>
|
||||
<td width=30 align=center>년</td>
|
||||
<td width=30 align=center>월</td>
|
||||
@@ -314,7 +313,7 @@ for($i=0; $i < $count; $i++) {
|
||||
?>
|
||||
</table>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
|
||||
@@ -7,6 +7,8 @@ include "func.php";
|
||||
$btn = Util::getReq('btn');
|
||||
$nation = Util::getReq('nation', 'int');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
+17
-17
@@ -4,37 +4,37 @@ namespace sammo;
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$type = Util::getReq('type', 'int');
|
||||
$type = Util::getReq('type', 'int', 0);
|
||||
if($type < 0 || $type > 4){
|
||||
$type = 0;
|
||||
}
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
|
||||
if($session->userGrade < 5) {
|
||||
echo "<!DOCTYPE html>
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>관리메뉴</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
관리자가 아닙니다.<br>
|
||||
";
|
||||
echo banner();
|
||||
echo "
|
||||
<?=banner()?>
|
||||
</body>
|
||||
</html>";
|
||||
|
||||
</html>
|
||||
<?php
|
||||
exit();
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
if($type == 0) {
|
||||
$type = 0;
|
||||
}
|
||||
$sel[$type] = "selected";
|
||||
|
||||
?>
|
||||
@@ -43,11 +43,11 @@ $sel[$type] = "selected";
|
||||
<head>
|
||||
<title>접속정보</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>접 속 정 보<br><?=closeButton()?></td></tr>
|
||||
<tr><td><form name=form1 method=post>정렬순서 :
|
||||
<select name=type size=1>
|
||||
@@ -60,7 +60,7 @@ $sel[$type] = "selected";
|
||||
<input type=submit value='정렬하기'></form>
|
||||
</td></tr>
|
||||
</table>
|
||||
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center class='tb_layout bg0'>
|
||||
<tr id=bg1>
|
||||
<td align=center width=120>장수명</td>
|
||||
<td align=center width=50>접속률</td>
|
||||
@@ -99,7 +99,7 @@ for($i=0; $i < $gencount; $i++) {
|
||||
|
||||
?>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
|
||||
+19
-17
@@ -6,28 +6,33 @@ include "func.php";
|
||||
|
||||
$btn = Util::getReq('btn');
|
||||
$gen = Util::getReq('gen', 'int', 0);
|
||||
$type = Util::getReq('type', 'int');
|
||||
$type = Util::getReq('type', 'int', 0);
|
||||
|
||||
if($type < 0 || $type > 3){
|
||||
$type = 0;
|
||||
}
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
|
||||
if($session->userGrade < 5) {
|
||||
echo "<!DOCTYPE html>
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>관리메뉴</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
관리자가 아닙니다.<br>
|
||||
";
|
||||
echo banner();
|
||||
echo "
|
||||
<?=banner()?>
|
||||
</body>
|
||||
</html>";
|
||||
|
||||
</html>
|
||||
<?php
|
||||
exit();
|
||||
}
|
||||
|
||||
@@ -38,9 +43,6 @@ if($btn == '정렬하기') {
|
||||
$gen = 0;
|
||||
}
|
||||
|
||||
if($type == 0) {
|
||||
$type = 0;
|
||||
}
|
||||
$sel[$type] = "selected";
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
@@ -48,11 +50,11 @@ $sel[$type] = "selected";
|
||||
<head>
|
||||
<title>로그정보</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>로 그 정 보<br><?=closeButton()?></td></tr>
|
||||
<tr><td>
|
||||
<form name=form1 method=post>
|
||||
@@ -96,7 +98,7 @@ for($i=0; $i < $gencount; $i++) {
|
||||
</form>
|
||||
</td></tr>
|
||||
</table>
|
||||
<table width=1000 align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table width=1000 align=center class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=50% align=center id=bg1><font color=skyblue size=3>장 수 정 보</font></td>
|
||||
<td width=50% align=center id=bg1><font color=orange size=3>-</font></td>
|
||||
@@ -133,7 +135,7 @@ for($i=0; $i < $gencount; $i++) {
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
|
||||
+20
-22
@@ -6,28 +6,29 @@ include "func.php";
|
||||
|
||||
$btn = Util::getReq('btn');
|
||||
$gen = Util::getReq('gen', 'int', 0);
|
||||
$type = Util::getReq('type', 'int');
|
||||
$type = 0;
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
|
||||
if ($session->userGrade < 5) {
|
||||
echo "<!DOCTYPE html>
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>관리메뉴</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
관리자가 아닙니다.<br>
|
||||
";
|
||||
echo banner();
|
||||
echo "
|
||||
<?=banner()?>
|
||||
</body>
|
||||
</html>";
|
||||
|
||||
</html>
|
||||
<?php
|
||||
exit();
|
||||
}
|
||||
|
||||
@@ -38,9 +39,6 @@ if ($btn == '정렬하기') {
|
||||
$gen = 0;
|
||||
}
|
||||
|
||||
if ($type == 0) {
|
||||
$type = 0;
|
||||
}
|
||||
$sel[$type] = "selected";
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
@@ -48,11 +46,11 @@ $sel[$type] = "selected";
|
||||
<head>
|
||||
<title>외교정보</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>외 교 정 보<br><?=closeButton()?></td></tr>
|
||||
<tr><td>
|
||||
<form name=form1 method=post>
|
||||
@@ -64,11 +62,11 @@ $sel[$type] = "selected";
|
||||
</form>
|
||||
</td></tr>
|
||||
</table>
|
||||
<table width=1000 align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table width=1000 align=center class='tb_layout bg0'>
|
||||
<tr><td colspan=9 align=center bgcolor=blue>외 교 관 계</td></tr>
|
||||
<tr>
|
||||
<td width=100 align=center id=bg1>국 가 명</td>
|
||||
<td width=100 align=center id=bg1>국 가 명</td>
|
||||
<td width=130 align=center id=bg1>국 가 명</td>
|
||||
<td width=130 align=center id=bg1>국 가 명</td>
|
||||
<td width=80 align=center id=bg1>상 태</td>
|
||||
<td width=60 align=center id=bg1>기 간</td>
|
||||
<td align=center id=bg1>비 고</td>
|
||||
@@ -82,9 +80,9 @@ foreach (getAllNationStaticInfo() as $nation) {
|
||||
$nationColor[$nation['nation']] = $nation['color'];
|
||||
}
|
||||
|
||||
switch ($type) {
|
||||
case 0: $query = "select * from diplomacy where me < you order by state desc"; break;
|
||||
}
|
||||
|
||||
$query = "select * from diplomacy where me < you order by state desc";
|
||||
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$dipcount = MYDB_num_rows($result);
|
||||
for ($i=0; $i < $dipcount; $i++) {
|
||||
@@ -156,7 +154,7 @@ for ($i=0; $i < $dipcount; $i++) {
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
|
||||
+30
-29
@@ -74,6 +74,7 @@ $dec = 0;
|
||||
$rice = 0;
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
increaseRefresh("시뮬", 2);
|
||||
|
||||
@@ -81,11 +82,9 @@ $query = "select no,tournament,con,turntime from general where owner='{$userID}'
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select * from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$game = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getAll();
|
||||
|
||||
$con = checkLimit($me['con'], $game['conlimit']);
|
||||
$con = checkLimit($me['con']);
|
||||
if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
|
||||
|
||||
if($session->userGrade < 3) {
|
||||
@@ -173,7 +172,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평
|
||||
$opposecount = 0;
|
||||
}
|
||||
|
||||
$warphase = getRate($game, $general['crewtype'], "spd"); //병종간 페이즈 수 얻기
|
||||
$warphase = getRate($admin, $general['crewtype'], "spd"); //병종간 페이즈 수 얻기
|
||||
|
||||
// 우선 스케일링
|
||||
$city['def'] *= 10;
|
||||
@@ -189,7 +188,8 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평
|
||||
while($phase < $warphase) {
|
||||
// 장수가 없어서 도시 공격
|
||||
if($opposecount == 0) {
|
||||
$msg .= "<C>●</>".GameUnitConst::byID($general['crewtype'])->name."(으)로 성을 <M>공격</>합니다.<br>";
|
||||
$josaRo = JosaUtil::pick(GameUnitConst::byID($general['crewtype'])->name, '로');
|
||||
$msg .= "<C>●</>".GameUnitConst::byID($general['crewtype'])->name."{$josaRo} 성을 <M>공격</>합니다.<br>";
|
||||
|
||||
$mykillnum = 0; $mydeathnum = 0;
|
||||
while($phase < $warphase) {
|
||||
@@ -301,7 +301,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평
|
||||
}
|
||||
//회피
|
||||
$ratio = rand() % 100; // 0 ~ 99
|
||||
$ratio2 = getRate($game, $general['crewtype'], "avd"); //회피율
|
||||
$ratio2 = getRate($admin, $general['crewtype'], "avd"); //회피율
|
||||
if($ratio < $ratio2 && $avoid == 1) {
|
||||
$msg .= "<C>●</><C>회피</>했다!</><br>";
|
||||
$myCrew /= 10; // 10%만 소모
|
||||
@@ -379,7 +379,9 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평
|
||||
}
|
||||
// 장수 대결
|
||||
} else {
|
||||
$msg .= "<C>●</>".GameUnitConst::byID($general['crewtype'])->name."(으)로 <Y>수비장수</>의 ".GameUnitConst::byID($oppose['crewtype'])->name."(을)를 공격합니다.<br>";
|
||||
$josaUl = JosaUtil::pick(GameUnitConst::byID($oppose['crewtype'])->name, '을');
|
||||
$josaRo = JosaUtil::pick(GameUnitConst::byID($general['crewtype'])->name, '로');
|
||||
$msg .= "<C>●</>".GameUnitConst::byID($general['crewtype'])->name."{$josaRo} <Y>수비장수</>의 ".GameUnitConst::byID($oppose['crewtype'])->name."{$josaUl} 공격합니다.<br>";
|
||||
|
||||
$mykillnum = 0; $mydeathnum = 0;
|
||||
while($phase < $warphase) {
|
||||
@@ -665,7 +667,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평
|
||||
}
|
||||
//회피
|
||||
$ratio = rand() % 100; // 0 ~ 99
|
||||
$ratio2 = getRate($game, $general['crewtype'], "avd"); //회피율
|
||||
$ratio2 = getRate($admin, $general['crewtype'], "avd"); //회피율
|
||||
if($ratio < $ratio2 && $myAvoid == 1) {
|
||||
$msg .= "<C>●</><C>회피</>했다!</><br>";
|
||||
$myCrew /= 10; // 10%만 소모
|
||||
@@ -673,7 +675,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평
|
||||
}
|
||||
//회피
|
||||
$ratio = rand() % 100; // 0 ~ 99
|
||||
$ratio2 = getRate($game, $oppose['crewtype'], "avd"); //회피율
|
||||
$ratio2 = getRate($admin, $oppose['crewtype'], "avd"); //회피율
|
||||
if($ratio < $ratio2 && $opAvoid == 1) {
|
||||
$msg .= "<C>●</>상대가 <R>회피</>했다!</><br>";
|
||||
$opCrew /= 10; // 10%만 소모
|
||||
@@ -802,8 +804,8 @@ if($isgen == "장수공격" || $isgen == "성벽공격" || $isgen == "장수평
|
||||
|
||||
$def = 7000;
|
||||
$wall = 7000;
|
||||
$train3 = $game['city_rate'];
|
||||
$atmos3 = $game['city_rate'];
|
||||
$train3 = $admin['city_rate'];
|
||||
$atmos3 = $admin['city_rate'];
|
||||
}
|
||||
|
||||
switch($level1) {
|
||||
@@ -1140,8 +1142,8 @@ switch($dex240) {
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>전투시뮬레이션</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<style type="text/css">
|
||||
select { background-color:black;color:white; }
|
||||
input { background-color:black;color:white; }
|
||||
@@ -1151,7 +1153,7 @@ input { background-color:black;color:white; }
|
||||
|
||||
<body>
|
||||
<form method=post action=_simul.php>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr id=bg1>
|
||||
<td>공격장수</td>
|
||||
<td>상대장수</td>
|
||||
@@ -1584,7 +1586,7 @@ if($isgen == "장수공격" || $isgen == "성벽공격") {
|
||||
?>
|
||||
</td></tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr id=bg1>
|
||||
<td align=right></td>
|
||||
<td align=center>공격</td>
|
||||
@@ -1598,31 +1600,31 @@ if($isgen == "장수공격" || $isgen == "성벽공격") {
|
||||
|
||||
<?php
|
||||
for($i=0; $i <= 5; $i++) {
|
||||
printSimul($game, $i);
|
||||
printSimul($admin, $i);
|
||||
}
|
||||
echo "
|
||||
<tr><td height=5 colspan=8 id=bg1></td></tr>";
|
||||
|
||||
for($i=10; $i <= 14; $i++) {
|
||||
printSimul($game, $i);
|
||||
printSimul($admin, $i);
|
||||
}
|
||||
echo "
|
||||
<tr><td height=5 colspan=8 id=bg1></td></tr>";
|
||||
|
||||
for($i=20; $i <= 27; $i++) {
|
||||
printSimul($game, $i);
|
||||
printSimul($admin, $i);
|
||||
}
|
||||
echo "
|
||||
<tr><td height=5 colspan=8 id=bg1></td></tr>";
|
||||
|
||||
for($i=30; $i <= 38; $i++) {
|
||||
printSimul($game, $i);
|
||||
printSimul($admin, $i);
|
||||
}
|
||||
echo "
|
||||
<tr><td height=5 colspan=8 id=bg1></td></tr>";
|
||||
|
||||
for($i=40; $i <= 43; $i++) {
|
||||
printSimul($game, $i);
|
||||
printSimul($admin, $i);
|
||||
}
|
||||
echo "
|
||||
<tr><td height=5 colspan=8 id=bg1></td></tr>";
|
||||
@@ -1630,17 +1632,16 @@ if($isgen == "장수공격" || $isgen == "성벽공격") {
|
||||
</table>
|
||||
</form>
|
||||
</body>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</html>
|
||||
<?php
|
||||
|
||||
function printSimul($game, $i) {
|
||||
$att = $game["att{$i}"];
|
||||
$def = $game["def{$i}"];
|
||||
$spd = $game["spd{$i}"];
|
||||
$avd = $game["avd{$i}"];
|
||||
$cst = $game["cst{$i}"];
|
||||
$ric = $game["ric{$i}"];
|
||||
function printSimul($admin, $i) {
|
||||
$att = $admin["att{$i}"];
|
||||
$def = $admin["def{$i}"];
|
||||
$spd = $admin["spd{$i}"];
|
||||
$avd = $admin["avd{$i}"];
|
||||
$cst = $admin["cst{$i}"];
|
||||
$ric = $admin["ric{$i}"];
|
||||
echo "
|
||||
<tr>
|
||||
<td align=right>".GameUnitConst::byId($i)->name."</td>
|
||||
|
||||
+141
-289
@@ -6,45 +6,34 @@ include "func.php";
|
||||
|
||||
$btn = Util::getReq('btn');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
increaseRefresh("명장일람", 2);
|
||||
increaseRefresh("명장일람", 1);
|
||||
|
||||
$query = "select conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select con,turntime from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$con = checkLimit($me['con'], $admin['conlimit']);
|
||||
if ($con >= 2) {
|
||||
printLimitMsg($me['turntime']);
|
||||
exit();
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>명장일람</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
|
||||
<title><?=UniqueConst::$serverName?>: 명장일람</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<?=WebUtil::printCSS('css/hallOfFame.css')?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1100 class='tb_layout bg0'>
|
||||
<tr><td>명 장 일 람<br><?=closeButton()?></td></tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1100 class='tb_layout bg0'>
|
||||
<form name=form1 action=a_bestGeneral.php method=post>
|
||||
<tr><td align=center>
|
||||
<input type=submit name=btn value='유저 보기'>
|
||||
@@ -52,296 +41,159 @@ if ($con >= 2) {
|
||||
</td></tr>
|
||||
</form>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<div style="margin:auto;width=1000px;">
|
||||
<?php
|
||||
if (isset($btn) && $btn == "NPC 보기") {
|
||||
$sel = "npc>=2";
|
||||
} else {
|
||||
$sel = "npc<2";
|
||||
}
|
||||
|
||||
$nationName = [];
|
||||
$nationColor = [];
|
||||
|
||||
$nationName = [0=>'재야'];
|
||||
$nationColor = [0=>'#000000'];
|
||||
foreach (getAllNationStaticInfo() as $nation) {
|
||||
$nationName[$nation['nation']] = $nation['name'];
|
||||
$nationColor[$nation['nation']] = $nation['color'];
|
||||
}
|
||||
|
||||
$type = array(
|
||||
"명 성",
|
||||
"계 급",
|
||||
"계 략 성 공",
|
||||
"전 투 횟 수",
|
||||
"승 리",
|
||||
"승 률",
|
||||
"사 살",
|
||||
"살 상 률",
|
||||
"보 병 숙 련 도",
|
||||
"궁 병 숙 련 도",
|
||||
"기 병 숙 련 도",
|
||||
"귀 병 숙 련 도",
|
||||
"차 병 숙 련 도",
|
||||
"전 력 전 승 률",
|
||||
"통 솔 전 승 률",
|
||||
"일 기 토 승 률",
|
||||
"설 전 승 률",
|
||||
"베 팅 투 자 액",
|
||||
"베 팅 당 첨",
|
||||
"베 팅 수 익 금",
|
||||
"베 팅 수 익 률"
|
||||
);
|
||||
$types = [
|
||||
["명 성", "int", function($v){$v['value'] = $v['experience']; return $v; }],
|
||||
["계 급", "int", function($v){$v['value'] = $v['dedication']; return $v; }],
|
||||
["계 략 성 공", "int", function($v){
|
||||
$v['value'] = $v['firenum'];
|
||||
$v['nationName'] = '???';
|
||||
$v['pictureFullPath'] = GetImageURL(0)."/default.jpg";
|
||||
$v['name'] = '???';
|
||||
$v['owner_name'] = null;
|
||||
$v['bgColor'] = GameConst::$basecolor4;
|
||||
$v['fgColor'] = newColor($v['bgColor']);
|
||||
return $v;
|
||||
}],
|
||||
["전 투 횟 수", "int", function($v){$v['value'] = $v['warnum']; return $v; }],
|
||||
["승 리", "int", function($v){$v['value'] = $v['killnum']; return $v; }],
|
||||
["승 률", "percent", function($v){$v['value'] = $v['killnum'] / max(1, $v['warnum']); return $v; }],
|
||||
["사 살", "int", function($v){$v['value'] = $v['killcrew']; return $v; }],
|
||||
["살 상 률", "percent", function($v){$v['value'] = $v['killcrew'] / max(1, $v['deathcrew']); return $v; }],
|
||||
["보 병 숙 련 도", "int", function($v){$v['value'] = $v['dex0']; return $v; }],
|
||||
["궁 병 숙 련 도", "int", function($v){$v['value'] = $v['dex10']; return $v; }],
|
||||
["기 병 숙 련 도", "int", function($v){$v['value'] = $v['dex20']; return $v; }],
|
||||
["귀 병 숙 련 도", "int", function($v){$v['value'] = $v['dex30']; return $v; }],
|
||||
["차 병 숙 련 도", "int", function($v){$v['value'] = $v['dex40']; return $v; }],
|
||||
["전 력 전 승 률", "percent", function($v){$v['value'] = $v['ttw']/max(1, $v['ttw']+$v['ttd']+$v['ttl']); return $v; }],
|
||||
["통 솔 전 승 률", "percent", function($v){$v['value'] = $v['tlw']/max(1, $v['tlw']+$v['tld']+$v['tll']); return $v; }],
|
||||
["일 기 토 승 률", "percent", function($v){$v['value'] = $v['tpw']/max(1, $v['tpw']+$v['tpd']+$v['tpl']); return $v; }],
|
||||
["설 전 승 률", "percent", function($v){$v['value'] = $v['ttw']/max(1, $v['tiw']+$v['tid']+$v['til']); return $v; }],
|
||||
["베 팅 투 자 액", "int", function($v){$v['value'] = $v['betgold']; return $v; }],
|
||||
["베 팅 당 첨", "int", function($v){$v['value'] = $v['betwin']; return $v; }],
|
||||
["베 팅 수 익 금", "int", function($v){$v['value'] = $v['betwingold']; return $v; }],
|
||||
["베 팅 수 익 률", "percent", function($v){$v['value'] = $v['betwingold']/max(1, $v['betgold']); return $v; }],
|
||||
];
|
||||
|
||||
|
||||
for ($i=0; $i < 21; $i++) {
|
||||
$name = [];
|
||||
$data = [];
|
||||
$color = [];
|
||||
$pic = [];
|
||||
|
||||
switch ($i) {
|
||||
case 0: $query = "select nation,no,name,picture,imgsvr,experience as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 1: $query = "select nation,no,name,picture,imgsvr,dedication as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 2: $query = "select nation,no,name,picture,imgsvr,firenum as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 3: $query = "select nation,no,name,picture,imgsvr,warnum as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 4: $query = "select nation,no,name,picture,imgsvr,killnum as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 5: $query = "select nation,no,name,picture,imgsvr,killnum/warnum*10000 as data from general where warnum>=10 and $sel order by data desc limit 0,10"; break;
|
||||
case 6: $query = "select nation,no,name,picture,imgsvr,killcrew as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 7: $query = "select nation,no,name,picture,imgsvr,killcrew/deathcrew*10000 as data from general where warnum>=10 and $sel order by data desc limit 0,10"; break;
|
||||
case 8: $query = "select nation,no,name,picture,imgsvr,dex0 as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 9: $query = "select nation,no,name,picture,imgsvr,dex10 as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 10: $query = "select nation,no,name,picture,imgsvr,dex20 as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 11: $query = "select nation,no,name,picture,imgsvr,dex30 as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 12: $query = "select nation,no,name,picture,imgsvr,dex40 as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 13: $query = "select nation,no,name,picture,imgsvr,ttw/(ttw+ttd+ttl)*10000 as data from general where $sel and (ttw+ttd+ttl)>=50 order by data desc limit 0,10"; break;
|
||||
case 14: $query = "select nation,no,name,picture,imgsvr,tlw/(tlw+tld+tll)*10000 as data from general where $sel and (tlw+tld+tll)>=50 order by data desc limit 0,10"; break;
|
||||
case 15: $query = "select nation,no,name,picture,imgsvr,tpw/(tpw+tpd+tpl)*10000 as data from general where $sel and (tpw+tpd+tpl)>=50 order by data desc limit 0,10"; break;
|
||||
case 16: $query = "select nation,no,name,picture,imgsvr,tiw/(tiw+tid+til)*10000 as data from general where $sel and (tiw+tid+til)>=50 order by data desc limit 0,10"; break;
|
||||
case 17: $query = "select nation,no,name,picture,imgsvr,betgold as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 18: $query = "select nation,no,name,picture,imgsvr,betwin as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 19: $query = "select nation,no,name,picture,imgsvr,betwingold as data from general where $sel order by data desc limit 0,10"; break;
|
||||
case 20: $query = "select nation,no,name,picture,imgsvr,betwingold/betgold*10000 as data from general where $sel and betgold >= 1000 order by data desc limit 0,10"; break;
|
||||
$generals = array_map(function($general) use($nationColor, $nationName) {
|
||||
$general['bgColor'] = $nationColor[$general['nation']]??GameConst::$basecolor4;
|
||||
$general['fgColor'] = newColor($general['bgColor']);
|
||||
$general['nationName'] = $nationName[$general['nation']];
|
||||
|
||||
if(key_exists('picture', $general)){
|
||||
$imageTemp = GetImageURL($general['imgsvr']);
|
||||
$general['pictureFullPath'] = "$imageTemp/{$general['picture']}";
|
||||
}
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
|
||||
echo "
|
||||
<tr><td align=center colspan=10 id=bg1><font size=4>$type[$i]</font></td></tr>
|
||||
<tr align=center id=bg2><td>1위</td><td>2위</td><td>3위</td><td>4위</td><td>5위</td><td>6위</td><td>7위</td><td>8위</td><td>9위</td><td>10위</td></tr>
|
||||
<tr>";
|
||||
|
||||
for ($k=0; $k < 10; $k++) {
|
||||
$gen = MYDB_fetch_array($result);
|
||||
|
||||
if ($i != 2) {
|
||||
if (isset($gen)) {
|
||||
$name[$k] = $gen['name'];
|
||||
$nation[$k] = $gen['nation'] == 0 ? "재야" : $nationName[$gen['nation']];
|
||||
$data[$k] = $gen['data'];
|
||||
$color[$k] = $gen['nation'] == 0 ? "#FFFFFF" : $nationColor[$gen['nation']];
|
||||
$pic[$k] = $gen['picture'];
|
||||
} else {
|
||||
$name[$k] = "-";
|
||||
$nation[$k] = "-";
|
||||
$data[$k] = "-";
|
||||
$color[$k] = GameConst::$basecolor4;
|
||||
$pic[$k] = "";
|
||||
}
|
||||
} else {
|
||||
$name[$k] = "???";
|
||||
$nation[$k] = "???";
|
||||
$data[$k] = $gen['data'];
|
||||
$color[$k] = GameConst::$basecolor4;
|
||||
$gen['imgsvr'] = 0;
|
||||
$pic[$k] = "9999.jpg";
|
||||
}
|
||||
if ($color[$k] == "") {
|
||||
$color[$k] = GameConst::$basecolor4;
|
||||
}
|
||||
if ($nation[$k] == "") {
|
||||
$nation[$k] = " ";
|
||||
}
|
||||
if ($pic[$k] == "") {
|
||||
echo "<td align=center> </td>";
|
||||
} else {
|
||||
$imageTemp = GetImageURL($gen['imgsvr']);
|
||||
echo "<td align=center><img src={$imageTemp}/{$pic[$k]}></img></td>";
|
||||
}
|
||||
else{
|
||||
$general['pictureFullPath'] = GetImageURL(0)."/default.jpg";
|
||||
}
|
||||
|
||||
echo "</tr><tr>";
|
||||
return $general;
|
||||
}, $db->query(
|
||||
"SELECT nation,no,name,name2 as owner_name, picture, imgsvr,
|
||||
experience, dedication, firenum, warnum, killnum, killcrew, deathcrew,
|
||||
dex0, dex10, dex20, dex30, dex40,
|
||||
ttw, ttd, ttl, tlw, tld, tll, tpw, tpd, tpl, tiw, tid, til,
|
||||
betgold, betwin, betwingold,
|
||||
horse, weap, book, item
|
||||
FROM general WHERE %l", $btn == "NPC 보기"?"npc>=2":"npc<2"));
|
||||
|
||||
for ($k=0; $k < 10; $k++) {
|
||||
echo "<td align=center style=background-color:{$color[$k]};color:".newColor($color[$k]).">{$nation[$k]}</td>";
|
||||
}
|
||||
|
||||
echo "</tr><tr>";
|
||||
$templates = new \League\Plates\Engine('templates');
|
||||
|
||||
for ($k=0; $k < 10; $k++) {
|
||||
echo "<td align=center style=background-color:{$color[$k]};color:".newColor($color[$k]).">{$name[$k]}</td>";
|
||||
}
|
||||
foreach($types as $idx=>[$typeName, $typeValue, $typeFunc]){
|
||||
$typeGenerals = array_map(function($general) use($typeValue, $typeFunc){
|
||||
$general = ($typeFunc)($general);
|
||||
$value = $general['value'];
|
||||
|
||||
echo "</tr><tr>";
|
||||
|
||||
for ($k=0; $k < 10; $k++) {
|
||||
if($data[$k] === '-'){
|
||||
//do Nothing
|
||||
if($typeValue == 'percent'){
|
||||
$general['printValue'] = number_format($value*100, 2).'%';
|
||||
}
|
||||
else if ($i == 5 || $i == 7 || $i == 20) {
|
||||
$data[$k] = intdiv($data[$k], 100).".".($data[$k]%100)." %";
|
||||
else {
|
||||
$general['printValue'] = number_format($value);
|
||||
}
|
||||
else if ($i >= 13 && $i <= 16) {
|
||||
$data[$k] = intdiv($data[$k], 100).".".($data[$k]%100)." %";
|
||||
}
|
||||
echo "<td align=center>{$data[$k]}</td>";
|
||||
}
|
||||
echo "</tr><tr><td colspan=10 height=5 id=bg1></td></tr>";
|
||||
return $general;
|
||||
}, $generals);
|
||||
|
||||
usort($typeGenerals, function($lhs, $rhs){
|
||||
//내림차순
|
||||
return -($lhs['value'] - $rhs['value']);
|
||||
});
|
||||
|
||||
echo $templates->render('hallOfFrame', [
|
||||
'typeName'=>$typeName,
|
||||
'generals'=>array_slice($typeGenerals, 0, 10, true)
|
||||
]);
|
||||
}
|
||||
|
||||
echo "
|
||||
</table>
|
||||
<br>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
";
|
||||
|
||||
$type = array(
|
||||
"명 마",
|
||||
"명 검",
|
||||
"명 서",
|
||||
"도 구"
|
||||
);
|
||||
|
||||
$call = array(
|
||||
"horse",
|
||||
"weap",
|
||||
"book",
|
||||
"item"
|
||||
);
|
||||
|
||||
$func = array(
|
||||
"\\sammo\\getHorseName",
|
||||
"\\sammo\\getWeapName",
|
||||
"\\sammo\\getBookName",
|
||||
"\\sammo\\getItemName"
|
||||
);
|
||||
|
||||
for ($i=0; $i < 4; $i++) {
|
||||
$name = [];
|
||||
$data = [];
|
||||
$color = [];
|
||||
$pic = [];
|
||||
|
||||
echo "
|
||||
<tr><td align=center colspan=10 id=bg1><font size=4>$type[$i]</font></td></tr>
|
||||
<tr align=center id=bg2>";
|
||||
for ($k=26; $k > 16; $k--) {
|
||||
$str = $func[$i]($k);
|
||||
echo "<td>".$str."</td>";
|
||||
}
|
||||
|
||||
echo "</tr><tr>";
|
||||
|
||||
for ($k=26; $k > 16; $k--) {
|
||||
$query = "select nation,no,name,picture,imgsvr from general where {$call[$i]}={$k}";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$gen = MYDB_fetch_array($result);
|
||||
if (isset($gen)) {
|
||||
$name[$k] = $gen['name'];
|
||||
$nation[$k] = $gen['nation'] == 0 ? "재야" : $nationName[$gen['nation']];
|
||||
$color[$k] = $gen['nation'] == 0 ? "#FFFFFF" : $nationColor[$gen['nation']];
|
||||
$pic[$k] = $gen['picture'];
|
||||
} else {
|
||||
$name[$k] = "미발견";
|
||||
$nation[$k] = "-";
|
||||
$color[$k] = "";
|
||||
$pic[$k] = "";
|
||||
}
|
||||
if ($color[$k] == "") {
|
||||
$color[$k] = GameConst::$basecolor4;
|
||||
}
|
||||
if ($nation[$k] == "") {
|
||||
$nation[$k] = " ";
|
||||
}
|
||||
if ($pic[$k] == "") {
|
||||
echo "<td align=center> </td>";
|
||||
} else {
|
||||
$imageTemp = GetImageURL($gen['imgsvr']??0);
|
||||
echo "<td align=center><img src={$imageTemp}/{$pic[$k]}></img></td>";
|
||||
}
|
||||
}
|
||||
|
||||
echo "</tr><tr>";
|
||||
|
||||
for ($k=26; $k > 16; $k--) {
|
||||
echo "<td align=center style=background-color:{$color[$k]};color:".newColor($color[$k]).">{$nation[$k]}</td>";
|
||||
}
|
||||
|
||||
echo "</tr><tr>";
|
||||
|
||||
for ($k=26; $k > 16; $k--) {
|
||||
echo "<td align=center style=background-color:{$color[$k]};color:".newColor($color[$k]).">{$name[$k]}</td>";
|
||||
}
|
||||
|
||||
echo "</tr><tr><td colspan=10 height=5 id=bg1></td></tr>";
|
||||
|
||||
echo "
|
||||
<tr align=center id=bg2>";
|
||||
for ($k=16; $k > 6; $k--) {
|
||||
$str = $func[$i]($k);
|
||||
echo "<td>".$str."</td>";
|
||||
}
|
||||
|
||||
echo "</tr><tr>";
|
||||
|
||||
for ($k=16; $k > 6; $k--) {
|
||||
$query = "select nation,no,name,picture,imgsvr from general where {$call[$i]}={$k}";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$gen = MYDB_fetch_array($result);
|
||||
if (isset($gen)) {
|
||||
$name[$k] = $gen['name'];
|
||||
$nation[$k] = $gen['nation'] == 0 ? "재야" : $nationName[$gen['nation']];
|
||||
$color[$k] = $gen['nation'] == 0 ? "#FFFFFF" : $nationColor[$gen['nation']];
|
||||
$pic[$k] = $gen['picture'];
|
||||
} else {
|
||||
$name[$k] = "미발견";
|
||||
$nation[$k] = "-";
|
||||
$color[$k] = "";
|
||||
$pic[$k] = "";
|
||||
}
|
||||
if ($color[$k] == "") {
|
||||
$color[$k] = GameConst::$basecolor4;
|
||||
}
|
||||
if ($nation[$k] == "") {
|
||||
$nation[$k] = " ";
|
||||
}
|
||||
if ($pic[$k] == "") {
|
||||
echo "<td align=center> </td>";
|
||||
} else {
|
||||
$imageTemp = GetImageURL($gen['imgsvr']??0);
|
||||
echo "<td align=center><img src={$imageTemp}/{$pic[$k]}></img></td>";
|
||||
}
|
||||
}
|
||||
|
||||
echo "</tr><tr>";
|
||||
|
||||
for ($k=16; $k > 6; $k--) {
|
||||
echo "<td align=center style=background-color:{$color[$k]};color:".newColor($color[$k]).">{$nation[$k]}</td>";
|
||||
}
|
||||
|
||||
echo "</tr><tr>";
|
||||
|
||||
for ($k=16; $k > 6; $k--) {
|
||||
echo "<td align=center style=background-color:{$color[$k]};color:".newColor($color[$k]).">{$name[$k]}</td>";
|
||||
}
|
||||
|
||||
echo "</tr><tr><td colspan=10 height=5 id=bg1></td></tr>";
|
||||
}
|
||||
|
||||
?>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
</div>
|
||||
<div style="margin:auto;width=1000px;margin-top:5px;">
|
||||
<?php
|
||||
//유니크 아이템 소유자
|
||||
$itemTypes = [
|
||||
["명 마", 'horse', function($v){return getHorseName($v);}, 7, 26, []],
|
||||
["명 검", 'weap', function($v){return getWeapName($v);}, 7, 26, []],
|
||||
["명 서", 'book', function($v){return getBookName($v);}, 7, 26, []],
|
||||
["도 구", 'item', function($v){return getItemName($v);}, 7, 26, []],
|
||||
];
|
||||
|
||||
$simpleItemTypes = array_map(function($itemType){return $itemType[1];}, $itemTypes);
|
||||
|
||||
foreach($generals as $general){
|
||||
foreach($itemTypes as $itemIdx=>[,$itemType, $itemFunc,,,]){
|
||||
$itemCode = $general[$itemType];
|
||||
if($itemCode <= 6){
|
||||
continue;
|
||||
}
|
||||
|
||||
$itemName = ($itemFunc)($itemCode);
|
||||
$general['rankName'] = $itemName;
|
||||
$general['value'] = $itemCode;
|
||||
$itemTypes[$itemIdx][5][$itemCode] = $general;
|
||||
}
|
||||
}
|
||||
|
||||
foreach($itemTypes as [$itemNameType, $itemType, $itemFunc, $itemMinCode, $itemMaxCode, $itemOwners]){
|
||||
$itemRanker = [];
|
||||
for($itemCode = $itemMaxCode; $itemCode >= $itemMinCode; $itemCode--){
|
||||
if(!key_exists($itemCode, $itemOwners)){
|
||||
$emptyCard = [
|
||||
'rankName' => ($itemFunc)($itemCode),
|
||||
'pictureFullPath' => GetImageURL(0)."/default.jpg",
|
||||
'value'=>$itemCode,
|
||||
'name'=>'미발견',
|
||||
'bgColor'=>GameConst::$basecolor4,
|
||||
'fgColor'=>newColor(GameConst::$basecolor4),
|
||||
];
|
||||
$itemRanker[$itemCode] = $emptyCard;
|
||||
continue;
|
||||
}
|
||||
|
||||
$general = $itemOwners[$itemCode];
|
||||
$itemRanker[$itemCode] = $general;
|
||||
}
|
||||
|
||||
echo $templates->render('hallOfFrame', [
|
||||
'typeName'=>$itemNameType,
|
||||
'generals'=>$itemRanker
|
||||
]);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<table align=center width=1100 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
+25
-24
@@ -6,6 +6,8 @@ include "func.php";
|
||||
|
||||
$select = Util::getReq('select', 'int', 0);
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
@@ -16,14 +18,14 @@ increaseRefresh("왕조일람", 2);
|
||||
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>왕조일람</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<title><?=UniqueConst::$serverName?>: 왕조일람</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style="font-size:13px;word-break:break-all;color:white;background-color:black" id=bg0>
|
||||
<table align=center width=1000 class="tb_layout bg0">
|
||||
<tr><td>역 대 왕 조<br>
|
||||
<input type=button value='창 닫기' onclick=window.close()><br>
|
||||
</td></tr>
|
||||
@@ -41,7 +43,7 @@ if ($select == 0) {
|
||||
|
||||
echo "
|
||||
<form action=a_emperior.php method=post>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style='font-size:13px;word-break:break-all;color:white;' id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td bgcolor=skyblue align=center colspan=8>
|
||||
<font size=5>{$emperior['phase']}</font>
|
||||
@@ -55,24 +57,24 @@ if ($select == 0) {
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id=bg1 align=center width=123>국 력</td>
|
||||
<td align=center width=123>{$emperior['power']}</td>
|
||||
<td id=bg1 align=center width=123>장 수</td>
|
||||
<td align=center width=123>{$emperior['gennum']}</td>
|
||||
<td id=bg1 align=center width=123>속 령</td>
|
||||
<td align=center width=123>{$emperior['citynum']}</td>
|
||||
<td id=bg1 align=center width=123>성 향</td>
|
||||
<td align=center width=123>{$emperior['type']}</td>
|
||||
<td id=bg1 align=center width=80>국 력</td>
|
||||
<td align=center width=170>{$emperior['power']}</td>
|
||||
<td id=bg1 align=center width=80>장 수</td>
|
||||
<td align=center width=170>{$emperior['gennum']}</td>
|
||||
<td id=bg1 align=center width=80>속 령</td>
|
||||
<td align=center width=170>{$emperior['citynum']}</td>
|
||||
<td id=bg1 align=center width=80>성 향</td>
|
||||
<td align=center width=170>{$emperior['type']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id=bg1 width=123 align=center>황 제</td>
|
||||
<td width=123 align=center>{$emperior['l12name']}</td>
|
||||
<td id=bg1 width=123 align=center>승 상</td>
|
||||
<td width=123 align=center>{$emperior['l11name']}</td>
|
||||
<td id=bg1 width=123 align=center>위 장 군</td>
|
||||
<td width=123 align=center>{$emperior['l10name']}</td>
|
||||
<td id=bg1 width=123 align=center>사 공</td>
|
||||
<td width=123 align=center>{$emperior['l9name']}</td>
|
||||
<td id=bg1 align=center>황 제</td>
|
||||
<td align=center>{$emperior['l12name']}</td>
|
||||
<td id=bg1 align=center>승 상</td>
|
||||
<td align=center>{$emperior['l11name']}</td>
|
||||
<td id=bg1 align=center>위 장 군</td>
|
||||
<td align=center>{$emperior['l10name']}</td>
|
||||
<td id=bg1 align=center>사 공</td>
|
||||
<td align=center>{$emperior['l9name']}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>";
|
||||
@@ -83,7 +85,7 @@ if ($select == 0) {
|
||||
$emperior = MYDB_fetch_array($result);
|
||||
|
||||
echo "
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style='font-size:13px;word-break:break-all;color:white;' id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td bgcolor=skyblue align=center colspan=6>
|
||||
<font size=5>{$emperior['phase']}</font>
|
||||
@@ -195,11 +197,10 @@ if ($select == 0) {
|
||||
}
|
||||
?>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all;color:white; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
+25
-24
@@ -6,6 +6,8 @@ include "func.php";
|
||||
|
||||
$select = Util::getReq('select', 'int', 0);
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
@@ -16,14 +18,14 @@ increaseRefresh("왕조일람", 2);
|
||||
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>왕조일람</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<title><?=UniqueConst::$serverName?>: 왕조일람</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>역 대 왕 조<br>
|
||||
<input type=button value='창 닫기' onclick=window.close()><br>
|
||||
</td></tr>
|
||||
@@ -41,7 +43,7 @@ if ($select == 0) {
|
||||
|
||||
echo "
|
||||
<form action=a_emperior2.php method=post>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td bgcolor=skyblue align=center colspan=8>
|
||||
<font size=5>{$emperior['phase']}</font>
|
||||
@@ -55,24 +57,24 @@ if ($select == 0) {
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id=bg1 align=center width=123>국 력</td>
|
||||
<td align=center width=123>{$emperior['power']}</td>
|
||||
<td id=bg1 align=center width=123>장 수</td>
|
||||
<td align=center width=123>{$emperior['gennum']}</td>
|
||||
<td id=bg1 align=center width=123>속 령</td>
|
||||
<td align=center width=123>{$emperior['citynum']}</td>
|
||||
<td id=bg1 align=center width=123>성 향</td>
|
||||
<td align=center width=123>{$emperior['type']}</td>
|
||||
<td id=bg1 align=center width=80>국 력</td>
|
||||
<td align=center width=170>{$emperior['power']}</td>
|
||||
<td id=bg1 align=center width=80>장 수</td>
|
||||
<td align=center width=170>{$emperior['gennum']}</td>
|
||||
<td id=bg1 align=center width=80>속 령</td>
|
||||
<td align=center width=170>{$emperior['citynum']}</td>
|
||||
<td id=bg1 align=center width=80>성 향</td>
|
||||
<td align=center width=170>{$emperior['type']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id=bg1 width=123 align=center>황 제</td>
|
||||
<td width=123 align=center>{$emperior['l12name']}</td>
|
||||
<td id=bg1 width=123 align=center>승 상</td>
|
||||
<td width=123 align=center>{$emperior['l11name']}</td>
|
||||
<td id=bg1 width=123 align=center>위 장 군</td>
|
||||
<td width=123 align=center>{$emperior['l10name']}</td>
|
||||
<td id=bg1 width=123 align=center>사 공</td>
|
||||
<td width=123 align=center>{$emperior['l9name']}</td>
|
||||
<td id=bg1 align=center>황 제</td>
|
||||
<td align=center>{$emperior['l12name']}</td>
|
||||
<td id=bg1 align=center>승 상</td>
|
||||
<td align=center>{$emperior['l11name']}</td>
|
||||
<td id=bg1 align=center>위 장 군</td>
|
||||
<td align=center>{$emperior['l10name']}</td>
|
||||
<td id=bg1 align=center>사 공</td>
|
||||
<td align=center>{$emperior['l9name']}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>";
|
||||
@@ -84,7 +86,7 @@ if ($select == 0) {
|
||||
|
||||
echo "
|
||||
<form action=a_emperior2.php method=post>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td bgcolor=skyblue align=center colspan=6>
|
||||
<font size=5>{$emperior['phase']}</font>
|
||||
@@ -196,11 +198,10 @@ if ($select == 0) {
|
||||
}
|
||||
?>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
+53
-40
@@ -3,27 +3,32 @@ namespace sammo;
|
||||
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$type = Util::getReq('type', 'int', 9);
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("장수일람", 2);
|
||||
|
||||
$query = "select conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select con,turntime from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$con = checkLimit($me['con'], $admin['conlimit']);
|
||||
if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
|
||||
$con = checkLimit($me['con']);
|
||||
if ($con >= 2) {
|
||||
printLimitMsg($me['turntime']);
|
||||
exit();
|
||||
}
|
||||
|
||||
if(!isset($type) || $type == 0) {
|
||||
if ($type <= 0 || $type > 15) {
|
||||
$type = 9;
|
||||
}
|
||||
|
||||
@@ -33,15 +38,16 @@ if(!isset($type) || $type == 0) {
|
||||
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>장수일람</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<script type="text/javascript" src="../e_lib/jquery-3.2.1.min.js"></script>
|
||||
<title><?=UniqueConst::$serverName?>: 장수일람</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
|
||||
<?=WebUtil::printJS('../d_shared/common_path.js')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>장 수 일 람<br><?=closeButton()?></td></tr>
|
||||
<tr><td><form name=form1 method=post>정렬순서 :
|
||||
<select id='viewType' name='type' size=1>
|
||||
@@ -68,12 +74,12 @@ if(!isset($type) || $type == 0) {
|
||||
$nationname = [];
|
||||
$nationlevel = [];
|
||||
$nationname[0] = "-";
|
||||
foreach(getAllNationStaticInfo() as $nation){
|
||||
foreach (getAllNationStaticInfo() as $nation) {
|
||||
$nationname[$nation['nation']] = $nation['name'];
|
||||
$nationlevel[$nation['nation']] = $nation['level'];
|
||||
}
|
||||
|
||||
switch($type) {
|
||||
switch ($type) { //FIXME: $query 처리 조심.
|
||||
case 1: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by nation"; break;
|
||||
case 2: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by leader desc"; break;
|
||||
case 3: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by power desc"; break;
|
||||
@@ -82,6 +88,7 @@ switch($type) {
|
||||
case 6: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by dedication desc"; break;
|
||||
case 7: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by level desc"; break;
|
||||
case 8: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by killturn"; break;
|
||||
default:
|
||||
case 9: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by connect desc"; break;
|
||||
case 10: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by experience desc"; break;
|
||||
case 11: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by personal"; break;
|
||||
@@ -90,46 +97,46 @@ switch($type) {
|
||||
case 14: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by age desc"; break;
|
||||
case 15: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by npc desc"; break;
|
||||
}
|
||||
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$gencount = MYDB_num_rows($genresult);
|
||||
|
||||
echo"
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=64 align=center id=bg1>얼 굴</td>
|
||||
<td width=100 align=center id=bg1>이 름</td>
|
||||
<td width=50 align=center id=bg1>연령</td>
|
||||
<td width=50 align=center id=bg1>성격</td>
|
||||
<td width=90 align=center id=bg1>특기</td>
|
||||
<td width=50 align=center id=bg1>레 벨</td>
|
||||
<td width=100 align=center id=bg1>국 가</td>
|
||||
<td width=60 align=center id=bg1>명 성</td>
|
||||
<td width=60 align=center id=bg1>계 급</td>
|
||||
<td width=80 align=center id=bg1>관 직</td>
|
||||
<td width=140 align=center id=bg1>이 름</td>
|
||||
<td width=45 align=center id=bg1>연령</td>
|
||||
<td width=45 align=center id=bg1>성격</td>
|
||||
<td width=80 align=center id=bg1>특기</td>
|
||||
<td width=45 align=center id=bg1>레 벨</td>
|
||||
<td width=140 align=center id=bg1>국 가</td>
|
||||
<td width=55 align=center id=bg1>명 성</td>
|
||||
<td width=55 align=center id=bg1>계 급</td>
|
||||
<td width=75 align=center id=bg1>관 직</td>
|
||||
<td width=45 align=center id=bg1>통솔</td>
|
||||
<td width=45 align=center id=bg1>무력</td>
|
||||
<td width=45 align=center id=bg1>지력</td>
|
||||
<td width=45 align=center id=bg1>삭턴</td>
|
||||
<td width=84 align=center id=bg1>벌점</td>
|
||||
<td width=70 align=center id=bg1>벌점</td>
|
||||
</tr>";
|
||||
for($j=0; $j < $gencount; $j++) {
|
||||
for ($j=0; $j < $gencount; $j++) {
|
||||
$general = MYDB_fetch_array($genresult);
|
||||
$nation = $nationname[$general['nation']];
|
||||
|
||||
if($general['level'] == 12) {
|
||||
if ($general['level'] == 12) {
|
||||
$lbonus = $nationlevel[$general['nation']] * 2;
|
||||
} elseif($general['level'] >= 5) {
|
||||
} elseif ($general['level'] >= 5) {
|
||||
$lbonus = $nationlevel[$general['nation']];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
}
|
||||
if($lbonus > 0) {
|
||||
if ($lbonus > 0) {
|
||||
$lbonus = "<font color=cyan>+{$lbonus}</font>";
|
||||
} else {
|
||||
$lbonus = "";
|
||||
}
|
||||
|
||||
if($general['injury'] > 0) {
|
||||
if ($general['injury'] > 0) {
|
||||
$leader = intdiv($general['leader'] * (100 - $general['injury']), 100);
|
||||
$power = intdiv($general['power'] * (100 - $general['injury']), 100);
|
||||
$intel = intdiv($general['intel'] * (100 - $general['injury']), 100);
|
||||
@@ -142,16 +149,20 @@ for($j=0; $j < $gencount; $j++) {
|
||||
$intel = "{$general['intel']}";
|
||||
}
|
||||
|
||||
if($general['npc'] >= 2) { $name = "<font color=cyan>{$general['name']}</font>"; }
|
||||
elseif($general['npc'] == 1) { $name = "<font color=skyblue>{$general['name']}</font>"; }
|
||||
else { $name = "{$general['name']}"; }
|
||||
if ($general['npc'] >= 2) {
|
||||
$name = "<font color=cyan>{$general['name']}</font>";
|
||||
} elseif ($general['npc'] == 1) {
|
||||
$name = "<font color=skyblue>{$general['name']}</font>";
|
||||
} else {
|
||||
$name = "{$general['name']}";
|
||||
}
|
||||
|
||||
$general['connect'] = Util::round($general['connect'] / 10) * 10;
|
||||
|
||||
$imageTemp = GetImageURL($general['imgsvr']);
|
||||
echo "
|
||||
<tr>
|
||||
<td align=center><img src={$imageTemp}/{$general['picture']}></img></td>
|
||||
<td align=center><img width='64' height='64' src={$imageTemp}/{$general['picture']}></img></td>
|
||||
<td align=center>$name</td>
|
||||
<td align=center>{$general['age']}세</td>
|
||||
<td align=center>".getGenChar($general['personal'])."</td>
|
||||
@@ -160,12 +171,15 @@ for($j=0; $j < $gencount; $j++) {
|
||||
<td align=center>{$nation}</td>
|
||||
<td align=center>".getHonor($general['experience'])."</td>
|
||||
<td align=center>".getDed($general['dedication'])."</td>
|
||||
<td align=center>"; echo getLevel($general['level']); echo "</td>
|
||||
<td align=center>";
|
||||
echo getLevel($general['level']);
|
||||
echo "</td>
|
||||
<td align=center>$leader</td>
|
||||
<td align=center>$power</td>
|
||||
<td align=center>$intel</td>
|
||||
<td align=center>{$general['killturn']}</td>
|
||||
<td align=center>{$general['connect']}"; echo "<br>【".getConnect($general['connect'])."】</td>
|
||||
<td align=center>{$general['connect']}";
|
||||
echo "<br>【".getConnect($general['connect'])."】</td>
|
||||
</tr>";
|
||||
}
|
||||
echo "
|
||||
@@ -174,11 +188,10 @@ echo "
|
||||
|
||||
?>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("#viewType").val("<?=$type?>").attr("selected", "selected");
|
||||
|
||||
+102
-89
@@ -4,121 +4,134 @@ namespace sammo;
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$session = Session::getInstance()->setReadOnly();
|
||||
$scenarioIdx = Util::getReq('scenarioIdx', 'int', null);
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("명예의전당", 1);
|
||||
|
||||
$scenarioList= [];
|
||||
foreach($db->query('SELECT distinct(scenario_name) as name, count(scenario) as cnt, scenario from ng_games order by scenario asc') as $scenarioInfo){
|
||||
$scenarioList[$scenarioInfo['scenario']] = $scenarioInfo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if($scenarioIdx !== null || key_exists($scenarioIdx, $scenarioList)){
|
||||
$searchScenarioName = $scenarioList[$scenarioIdx]['name'];
|
||||
$searchFilter = $db->sqleval('scenario = %i', $scenarioIdx);
|
||||
}
|
||||
else{
|
||||
$searchScenarioName = '* 모두 *';
|
||||
$searchFilter = $db->sqleval(true);
|
||||
}
|
||||
|
||||
increaseRefresh("명예의전당", 2);
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>명예의 전당</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
|
||||
<title><?=UniqueConst::$serverName?>: 명예의 전당</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<?=WebUtil::printCSS('css/hallOfFame.css')?>
|
||||
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
|
||||
<?=WebUtil::printJS('../e_lib/jquery.redirect.js')?>
|
||||
<?=WebUtil::printJs('js/hallOfFame.js')?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=Font-size:13;word-break:break-all; id=bg0>
|
||||
<table align=center width=1100 class='tb_layout bg0'>
|
||||
<tr><td>명 예 의 전 당<br><?=closeButton()?></td></tr>
|
||||
<tr><td>
|
||||
시나리오 검색 : <select id="by_scenario" name="by_scenario">
|
||||
<option value="" <?=$scenarioIdx?"selected='selected'":''?>>* 종합 *</option>
|
||||
<?php foreach($scenarioList as $info): ?>
|
||||
<option
|
||||
value="<?=$info['scenario']?>"
|
||||
<?=($info['scenario']===$scenarioIdx)?"selected='selected'":''?>
|
||||
><?=$info['name']?>(<?=$info['cnt']?>회)</option>
|
||||
<?php endforeach; ?>
|
||||
?>
|
||||
</select>
|
||||
</td></tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<div style="margin:auto;width=1100px;">
|
||||
<?php
|
||||
$type = array(
|
||||
"명 성",
|
||||
"계 급",
|
||||
"계 략 성 공",
|
||||
"전 투 횟 수",
|
||||
"승 리",
|
||||
"승 률",
|
||||
"사 살",
|
||||
"살 상 률",
|
||||
"보 병 숙 련 도",
|
||||
"궁 병 숙 련 도",
|
||||
"기 병 숙 련 도",
|
||||
"귀 병 숙 련 도",
|
||||
"차 병 숙 련 도",
|
||||
"전 력 전 승 률",
|
||||
"통 솔 전 승 률",
|
||||
"일 기 토 승 률",
|
||||
"설 전 승 률",
|
||||
"베 팅 투 자 액",
|
||||
"베 팅 당 첨",
|
||||
"베 팅 수 익 금",
|
||||
"베 팅 수 익 률"
|
||||
);
|
||||
for ($i=0; $i < 21; $i++) {
|
||||
$name = [];
|
||||
$nation = [];
|
||||
$data = [];
|
||||
$color = [];
|
||||
$pic = [];
|
||||
|
||||
$query = "select * from hall where type={$i} order by rank";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$types = [
|
||||
["명 성", 'int'],
|
||||
["계 급", 'int'],
|
||||
["계 략 성 공", 'int'],
|
||||
["전 투 횟 수", 'int'],
|
||||
["승 리", 'int'],
|
||||
["승 률", 'percent'],
|
||||
["사 살", 'int'],
|
||||
["살 상 률", 'percent'],
|
||||
["보 병 숙 련 도", 'int'],
|
||||
["궁 병 숙 련 도", 'int'],
|
||||
["기 병 숙 련 도", 'int'],
|
||||
["귀 병 숙 련 도", 'int'],
|
||||
["차 병 숙 련 도", 'int'],
|
||||
["전 력 전 승 률", 'percent'],
|
||||
["통 솔 전 승 률", 'percent'],
|
||||
["일 기 토 승 률", 'percent'],
|
||||
["설 전 승 률", 'percent'],
|
||||
["베 팅 투 자 액", 'int'],
|
||||
["베 팅 당 첨", 'int'],
|
||||
["베 팅 수 익 금", 'int'],
|
||||
["베 팅 수 익 률", 'percent'],
|
||||
];
|
||||
|
||||
echo "
|
||||
<tr><td align=center colspan=10 id=bg1><font size=4>$type[$i]</font></td></tr>
|
||||
<tr align=center id=bg2><td>1위</td><td>2위</td><td>3위</td><td>4위</td><td>5위</td><td>6위</td><td>7위</td><td>8위</td><td>9위</td><td>10위</td></tr>
|
||||
<tr>";
|
||||
$templates = new \League\Plates\Engine('templates');
|
||||
|
||||
for ($k=0; $k < 10; $k++) {
|
||||
$gen = MYDB_fetch_array($result);
|
||||
$name[$k] = $gen['name'];
|
||||
$nation[$k] = $gen['nation'];
|
||||
$data[$k] = $gen['data'];
|
||||
$color[$k] = $gen['color'];
|
||||
$pic[$k] = $gen['picture'];
|
||||
if ($color[$k] == "") {
|
||||
$color[$k] = GameConst::$basecolor4;
|
||||
foreach($types as $idx=>[$typeName, $typeValue]) {
|
||||
$hallResult = $db->query('SELECT * FROM ng_hall WHERE `type`=%i AND %? ORDER BY `value` DESC LIMIT 10', $idx, $searchFilter);
|
||||
|
||||
$hallResult = array_map(function($general)use($typeValue){
|
||||
$aux = Json::decode($general['aux']);
|
||||
$general += $aux;
|
||||
if(!key_exists('color', $general)){
|
||||
$general['bgColor'] = GameConst::$basecolor4;
|
||||
|
||||
}
|
||||
if ($nation[$k] == "") {
|
||||
$nation[$k] = " ";
|
||||
if(!key_exists('fgColor', $general)){
|
||||
$general['fgColor'] = newColor($general['bgColor']);
|
||||
}
|
||||
/*
|
||||
if($pic[$k] == "") {
|
||||
echo "<td align=center> </td>";
|
||||
} else {
|
||||
$imageTemp = GetImageURL($gen['imgsvr']);
|
||||
echo "<td align=center><img src={$imageTemp}/{$pic[$k]}></img></td>";
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
// echo "</tr><tr>";
|
||||
|
||||
for ($k=0; $k < 10; $k++) {
|
||||
echo "<td align=center style=background-color:{$color[$k]};color:".newColor($color[$k]).">{$nation[$k]}</td>";
|
||||
}
|
||||
|
||||
echo "</tr><tr>";
|
||||
|
||||
for ($k=0; $k < 10; $k++) {
|
||||
echo "<td align=center style=background-color:{$color[$k]};color:".newColor($color[$k]).">{$name[$k]}</td>";
|
||||
}
|
||||
|
||||
echo "</tr><tr>";
|
||||
|
||||
for ($k=0; $k < 10; $k++) {
|
||||
if ($i == 5 || $i == 7 || $i == 20) {
|
||||
$data[$k] = intdiv($data[$k], 100).".".($data[$k]%100)." %";
|
||||
if(key_exists('picture', $general)){
|
||||
$imageTemp = GetImageURL($general['imgsvr']);
|
||||
$general['pictureFullPath'] = "$imageTemp/{$general['picture']}";
|
||||
}
|
||||
if ($i >= 13 && $i <= 16) {
|
||||
$data[$k] = intdiv($data[$k], 100).".".($data[$k]%100)." %";
|
||||
else{
|
||||
$general['pictureFullPath'] = GetImageURL(0)."/default.jpg";
|
||||
}
|
||||
echo "<td align=center>{$data[$k]}</td>";
|
||||
}
|
||||
echo "</tr><tr><td colspan=10 height=5 id=bg1></td></tr>";
|
||||
|
||||
if(!key_exists('printValue', $general)){
|
||||
$value = $general['value'];
|
||||
if($typeValue == 'percent'){
|
||||
$general['printValue'] = number_format($value*100, 2).'%';
|
||||
}
|
||||
else {
|
||||
$general['printValue'] = number_format($value);
|
||||
}
|
||||
}
|
||||
|
||||
return $general;
|
||||
}, $hallResult);
|
||||
|
||||
echo $templates->render('hallOfFrame', [
|
||||
'typeName'=>$typeName,
|
||||
'generals'=>$hallResult
|
||||
]);
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=Font-size:13;word-break:break-all; id=bg0>
|
||||
</div>
|
||||
<table align=center width=1100 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
+37
-46
@@ -4,48 +4,45 @@ namespace sammo;
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
$btn = Util::getReq('btn');
|
||||
$yearmonth = Util::getReq('yearmonth');
|
||||
$yearmonth = Util::getReq('yearmonth', 'int');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("연감", 5);
|
||||
increaseRefresh("연감", 2);
|
||||
|
||||
$query = "select startyear,year,month,conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['startyear','year','month']);
|
||||
|
||||
$query = "select map,con,turntime from general where owner='{$userID}'";
|
||||
$query = "select con,turntime from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$con = checkLimit($me['con'], $admin['conlimit']);
|
||||
$con = checkLimit($me['con']);
|
||||
if ($con >= 2) {
|
||||
printLimitMsg($me['turntime']);
|
||||
exit();
|
||||
}
|
||||
|
||||
$query = "select year,month from history order by no limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$history = MYDB_fetch_array($result);
|
||||
$s = ($history['year']*12) + $history['month'];
|
||||
[$s_year, $s_month] = $db->queryFirstList('SELECT year, month FROM history WHERE server_id = %s ORDER BY year ASC, month ASC LIMIT 1', UniqueConst::$serverID);
|
||||
$s = $s_year * 12 + $s_month;
|
||||
|
||||
$query = "select year,month from history order by no desc limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$history = MYDB_fetch_array($result);
|
||||
$e = ($history['year']*12) + $history['month'];
|
||||
[$e_year, $e_month] = $db->queryFirstList('SELECT year, month FROM history WHERE server_id = %s ORDER BY year DESC, month DESC LIMIT 1', UniqueConst::$serverID);
|
||||
$e = $e_year * 12 + $e_month;
|
||||
|
||||
//FIXME: $yearmonth가 올바르지 않을 경우에 처리가 필요.
|
||||
if (!$yearmonth) {
|
||||
$year = $admin['year'];
|
||||
$month = $admin['month'] - 1;
|
||||
} else {
|
||||
$year = substr($yearmonth, 0, 3) - 0;
|
||||
$month = substr($yearmonth, 3, 2) - 0;
|
||||
$year = intdiv($yearmonth, 100);
|
||||
$month = $yearmonth % 100;
|
||||
|
||||
if ($btn == "◀◀ 이전달") {
|
||||
$month -= 1;
|
||||
@@ -75,21 +72,21 @@ if ($month <= 0) {
|
||||
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>연감</title>
|
||||
<script src="../e_lib/jquery-3.2.1.min.js"></script>
|
||||
<script src="../d_shared/common_path.js"></script>
|
||||
<script src="js/common.js"></script>
|
||||
<script src="js/base_map.js"></script>
|
||||
<script src="js/map.js"></script>
|
||||
<title><?=UniqueConst::$serverName?>: 연감</title>
|
||||
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
|
||||
<?=WebUtil::printJS('../d_shared/common_path.js')?>
|
||||
<?=WebUtil::printJS('js/common.js')?>
|
||||
<?=WebUtil::printJS('js/base_map.js')?>
|
||||
<?=WebUtil::printJS('js/map.js')?>
|
||||
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<link href="css/map.css" rel="stylesheet">
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<?=WebUtil::printCSS('css/map.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>연 감<br><?=closeButton()?></td></tr>
|
||||
<tr><td>
|
||||
<form name=form1 method=post>
|
||||
@@ -97,24 +94,19 @@ if ($month <= 0) {
|
||||
<input type=submit name=btn value="◀◀ 이전달">
|
||||
<select name=yearmonth size=1>
|
||||
<?php
|
||||
$query = "select year,month from history";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$histCount = MYDB_num_rows($result);
|
||||
for ($i=0; $i < $histCount; $i++) {
|
||||
$history = MYDB_fetch_array($result);
|
||||
$value = "".$history['year'].StringUtil::padStringAlignRight($history['month'], 2, "0");
|
||||
if ($history['year'] == $year && $history['month'] == $month) {
|
||||
$dates = $db->queryAllLists('SELECT year, month FROM history WHERE server_id = %s ORDER BY year ASC, month DESC', UniqueConst::$serverID);
|
||||
foreach($dates as [$hYear, $hMonth]){
|
||||
$value = "".$hYear.StringUtil::padStringAlignRight($hMonth, 2, "0");
|
||||
if ($hYear == $year && $hMonth == $month) {
|
||||
echo "
|
||||
<option selected value={$value}>{$history['year']}년 {$history['month']}월</option>";
|
||||
<option selected value={$value}>{$hYear}년 {$hMonth}월</option>";
|
||||
} else {
|
||||
echo "
|
||||
<option value={$value}>{$history['year']}년 {$history['month']}월</option>";
|
||||
<option value={$value}>{$hYear}년 {$hMonth}월</option>";
|
||||
}
|
||||
}
|
||||
|
||||
$query = "select log,genlog,nation,power,gen,city from history where year='$year' and month='$month'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$history = MYDB_fetch_array($result);
|
||||
$history = $db->queryFirstRow('SELECT log,genlog,nation,power,gen,city FROM history WHERE server_id = %s AND year = %i AND month = %i', UniqueConst::$serverID, $year, $month);
|
||||
?>
|
||||
</select>
|
||||
<input type=submit name=btn value='조회하기'>
|
||||
@@ -122,16 +114,16 @@ $history = MYDB_fetch_array($result);
|
||||
</form>
|
||||
</td></tr>
|
||||
</table>
|
||||
<table align=center width=1000 height=520 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 height=520 class='tb_layout bg0'>
|
||||
<tr><td colspan=5 align=center id=bg1>중 원 지 도</td></tr>
|
||||
<tr height=520>
|
||||
<td width=698>
|
||||
<?=getMapHtml();?>
|
||||
|
||||
<td width=98 valign=top><?=$history['nation']?></td>
|
||||
<td width=78 valign=top><?=$history['power']?></td>
|
||||
<td width=58 valign=top><?=$history['gen']?></td>
|
||||
<td width=58 valign=top><?=$history['city']?></td>
|
||||
<td width=139 valign=top><div style='background-color:#cccccc;color:black;text-align:center'>국명</div><?=$history['nation']?></td>
|
||||
<td width=70 valign=top style='text-align:center'><div style='background-color:#cccccc;color:black;'>국력</div><?=$history['power']?></td>
|
||||
<td width=43 valign=top style='text-align:center'><div style='background-color:#cccccc;color:black;'>장수</div><?=$history['gen']?></td>
|
||||
<td width=40 valign=top style='text-align:center'><div style='background-color:#cccccc;color:black;'>속령</div><?=$history['city']?></td>
|
||||
</tr>
|
||||
<tr><td colspan=5 align=center id=bg1>중 원 정 세</td></tr>
|
||||
<tr>
|
||||
@@ -146,7 +138,7 @@ $history = MYDB_fetch_array($result);
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
@@ -157,6 +149,5 @@ reloadWorldMap({
|
||||
neutralView:true
|
||||
});
|
||||
</script>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+17
-21
@@ -8,19 +8,16 @@ $session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("세력일람", 2);
|
||||
|
||||
$query = "select conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select con,turntime from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$con = checkLimit($me['con'], $admin['conlimit']);
|
||||
$con = checkLimit($me['con']);
|
||||
if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
@@ -28,14 +25,14 @@ if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
|
||||
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>세력일람</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<title><?=UniqueConst::$serverName?>: 세력일람</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>세 력 일 람<br><?=closeButton()?></td></tr>
|
||||
</table>
|
||||
<?php
|
||||
@@ -127,19 +124,19 @@ for($i=1; $i <= $count; $i++) {
|
||||
else { $l5 = $level5['name']; }
|
||||
|
||||
echo "
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
|
||||
<table align=center width=1000 class='tb_layout bg2'>
|
||||
<tr>
|
||||
<td colspan=8 align=center style=color:".newColor($nation['color'])."; bgcolor={$nation['color']}>【 {$nation['name']} 】</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=123 align=center id=bg1>성 향</td>
|
||||
<td width=123 align=center><font color=yellow>".getNationType($nation['type'])."</font></td>
|
||||
<td width=123 align=center id=bg1>작 위</td>
|
||||
<td width=123 align=center>".getNationLevel($nation['level'])."</td>
|
||||
<td width=123 align=center id=bg1>국 력</td>
|
||||
<td width=123 align=center>{$nation['power']}</td>
|
||||
<td width=123 align=center id=bg1>장수 / 속령</td>
|
||||
<td width=123 align=center>{$gencount} / {$citycount}</td>
|
||||
<td width=80 align=center id=bg1>성 향</td>
|
||||
<td width=170 align=center><font color=yellow>".getNationType($nation['type'])."</font></td>
|
||||
<td width=80 align=center id=bg1>작 위</td>
|
||||
<td width=170 align=center>".getNationLevel($nation['level'])."</td>
|
||||
<td width=80 align=center id=bg1>국 력</td>
|
||||
<td width=170 align=center>{$nation['power']}</td>
|
||||
<td width=80 align=center id=bg1>장수 / 속령</td>
|
||||
<td width=170 align=center>{$gencount} / {$citycount}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1>".getLevel(12, $nation['level'])."</td>
|
||||
@@ -209,7 +206,7 @@ $cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect
|
||||
$citycount = MYDB_num_rows($cityresult);
|
||||
|
||||
echo "
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
|
||||
<table align=center width=1000 class='tb_layout bg2'>
|
||||
<tr>
|
||||
<td colspan=5 align=center>【 재 야 】</td>
|
||||
</tr>
|
||||
@@ -244,11 +241,10 @@ echo"
|
||||
|
||||
?>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
+24
-17
@@ -6,14 +6,17 @@ include "func.php";
|
||||
|
||||
$type = Util::getReq('type', 'int', 1);
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
if($type <= 0 || $type > 8){
|
||||
$type = 1;
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("빙의일람", 2);
|
||||
|
||||
if($type == 0) {
|
||||
$type = 1;
|
||||
}
|
||||
$sel = [];
|
||||
$sel[$type] = "selected";
|
||||
|
||||
@@ -23,14 +26,14 @@ $sel[$type] = "selected";
|
||||
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>빙의일람</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<title><?=UniqueConst::$serverName?>: 빙의일람</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>빙 의 일 람<br><?=closeButton()?></td></tr>
|
||||
<tr><td><form name=form1 method=post>정렬순서 :
|
||||
<select name=type size=1>
|
||||
@@ -49,11 +52,12 @@ $sel[$type] = "selected";
|
||||
<?php
|
||||
$nationname = [];
|
||||
$nationname[0] = "-";
|
||||
foreach(getAllNationStaticInfo() as $nation){
|
||||
foreach (getAllNationStaticInfo() as $nation) {
|
||||
$nationname[$nation['nation']] = $nation['name'];
|
||||
}
|
||||
|
||||
switch($type) {
|
||||
switch ($type) {//FIXME: $query 처리 부실
|
||||
default:
|
||||
case 1: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by binary(name)"; break;
|
||||
case 2: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by nation"; break;
|
||||
case 3: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by sum desc"; break;
|
||||
@@ -63,11 +67,11 @@ switch($type) {
|
||||
case 7: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by experience"; break;
|
||||
case 8: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by dedication"; break;
|
||||
}
|
||||
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$gencount = MYDB_num_rows($genresult);
|
||||
|
||||
echo"
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=102 align=center id=bg1>희생된 장수</td>
|
||||
<td width=102 align=center id=bg1>악령 이름</td>
|
||||
@@ -82,13 +86,17 @@ echo"
|
||||
<td width=78 align=center id=bg1>명성</td>
|
||||
<td width=78 align=center id=bg1>계급</td>
|
||||
</tr>";
|
||||
for($j=0; $j < $gencount; $j++) {
|
||||
for ($j=0; $j < $gencount; $j++) {
|
||||
$general = MYDB_fetch_array($genresult);
|
||||
$nation = $nationname[$general['nation']];
|
||||
|
||||
if($general['npc'] >= 2) { $name = "<font color=cyan>{$general['name']}</font>"; }
|
||||
elseif($general['npc'] == 1) { $name = "<font color=skyblue>{$general['name']}</font>"; }
|
||||
else { $name = "{$general['name']}"; }
|
||||
if ($general['npc'] >= 2) {
|
||||
$name = "<font color=cyan>{$general['name']}</font>";
|
||||
} elseif ($general['npc'] == 1) {
|
||||
$name = "<font color=skyblue>{$general['name']}</font>";
|
||||
} else {
|
||||
$name = "{$general['name']}";
|
||||
}
|
||||
|
||||
echo "
|
||||
<tr>
|
||||
@@ -112,11 +120,10 @@ echo "
|
||||
|
||||
?>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
+17
-21
@@ -8,20 +8,17 @@ $session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("세력도", 2);
|
||||
checkTurn();
|
||||
|
||||
$query = "select conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select map,con,turntime from general where owner='{$userID}'";
|
||||
$query = "select con,turntime from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$con = checkLimit($me['con'], $admin['conlimit']);
|
||||
$con = checkLimit($me['con']);
|
||||
if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
@@ -29,12 +26,12 @@ if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>세력도</title>
|
||||
<script src="../e_lib/jquery-3.2.1.min.js"></script>
|
||||
<script src="../d_shared/common_path.js"></script>
|
||||
<script src="js/common.js"></script>
|
||||
<script src="js/base_map.js"></script>
|
||||
<script src="js/map.js"></script>
|
||||
<title><?=UniqueConst::$serverName?>: 세력도</title>
|
||||
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
|
||||
<?=WebUtil::printJS('../d_shared/common_path.js')?>
|
||||
<?=WebUtil::printJS('js/common.js')?>
|
||||
<?=WebUtil::printJS('js/base_map.js')?>
|
||||
<?=WebUtil::printJS('js/map.js')?>
|
||||
<script>
|
||||
$(function(){
|
||||
|
||||
@@ -45,18 +42,18 @@ $(function(){
|
||||
|
||||
});
|
||||
</script>
|
||||
<link href="../d_shared/common.css" rel="stylesheet">
|
||||
<link href="css/normalize.css" rel="stylesheet">
|
||||
<link href="css/common.css" rel="stylesheet">
|
||||
<link href="css/map.css" rel="stylesheet">
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/normalize.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<?=WebUtil::printCSS('css/map.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1200 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1200 class='tb_layout bg0'>
|
||||
<tr><td>세 력 도<br><?=closeButton()?></td></tr>
|
||||
</table>
|
||||
<table align=center width=1200 height=520 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1200 height=520 class='tb_layout bg0'>
|
||||
<tr height=520>
|
||||
<td width=498 valign=top>
|
||||
<?=getGeneralPublicRecordRecent(34)?>
|
||||
@@ -67,15 +64,14 @@ $(function(){
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2 valign=top>
|
||||
<?php getWorldHistoryRecent(34); ?>
|
||||
<?=getWorldHistoryRecent(34)?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align=center width=1200 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1200 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
+99
-174
@@ -5,15 +5,14 @@ include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("갱신정보", 2);
|
||||
|
||||
$query = "select year,month,refresh,maxrefresh,maxonline from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$game = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year','month','refresh','maxrefresh','maxonline']);
|
||||
|
||||
$log = [];
|
||||
$log = getRawFileLogRecent(__dir__.'/logs/'.UniqueConst::$serverID.'/_traffic.txt', 11, 100);
|
||||
|
||||
$date = [];
|
||||
$year = [];
|
||||
@@ -22,248 +21,174 @@ $refresh = [];
|
||||
$online = [];
|
||||
|
||||
$curonline = getOnlineNum();
|
||||
for ($i=0; $i < 11; $i++) {
|
||||
$parse = explode("|", $log[count($log)-12+$i]);
|
||||
$date[$i] = trim($parse[0]);
|
||||
$year[$i] = trim($parse[1]);
|
||||
$month[$i] = trim($parse[2]);
|
||||
$refresh[$i] = trim($parse[3]);
|
||||
$online[$i] = trim($parse[4]);
|
||||
foreach($log as $i=>$value){
|
||||
$parse = Json::decode($value);
|
||||
$date[$i] = $parse[0];
|
||||
$year[$i] = $parse[1];
|
||||
$month[$i] = $parse[2];
|
||||
$refresh[$i] = $parse[3];
|
||||
$online[$i] = $parse[4];
|
||||
}
|
||||
if ($game['maxrefresh'] == 0) {
|
||||
$game['maxrefresh'] = 1;
|
||||
$year[] = $admin['year'];
|
||||
$month[] = $admin['month'];
|
||||
$date[] = date('Y-m-d H:i:s');
|
||||
|
||||
if ($admin['maxrefresh'] == 0) {
|
||||
$admin['maxrefresh'] = 1;
|
||||
}
|
||||
if ($game['maxrefresh'] < $game['refresh']) {
|
||||
$game['maxrefresh'] = $game['refresh'];
|
||||
if ($admin['maxrefresh'] < $admin['refresh']) {
|
||||
$admin['maxrefresh'] = $admin['refresh'];
|
||||
}
|
||||
if ($game['maxonline'] == 0) {
|
||||
$game['maxonline'] = 1;
|
||||
if ($admin['maxonline'] == 0) {
|
||||
$admin['maxonline'] = 1;
|
||||
}
|
||||
if ($game['maxonline'] < $curonline) {
|
||||
$game['maxonline'] = $curonline;
|
||||
if ($admin['maxonline'] < $curonline) {
|
||||
$admin['maxonline'] = $curonline;
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>트래픽정보</title>
|
||||
<title><?=UniqueConst::$serverName?>: 트래픽정보</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<style>
|
||||
.big_bar{
|
||||
float:left;
|
||||
position:relative;
|
||||
height:30px;
|
||||
}
|
||||
.big_bar span{
|
||||
float:right;
|
||||
padding:0;
|
||||
margin:0;
|
||||
line-height:30px;
|
||||
padding-right:1ch;
|
||||
}
|
||||
|
||||
.little_bar{
|
||||
float:left;
|
||||
position:relative;
|
||||
height:17px;
|
||||
}
|
||||
|
||||
span.out_bar{
|
||||
line-height:30px;
|
||||
margin-left:1ch;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>트 래 픽 정 보<br><?=closeButton()?></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
<table align=center width=1016 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all;>
|
||||
<table align=center width=1016>
|
||||
<tr><td align=left>
|
||||
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center class='tb_layout bg0'>
|
||||
<tr><td colspan=4 align=center id=bg2><font size=5>접 속 량</font></td></tr>
|
||||
<?php
|
||||
for ($i=0; $i < 11; $i++) {
|
||||
$w = round($refresh[$i] / $game['maxrefresh'] * 100, 1);
|
||||
if ($w >= 100) {
|
||||
$w -= 0.1;
|
||||
}
|
||||
if ($refresh[$i] < 10 && $w < 3) {
|
||||
$w = 3;
|
||||
} elseif ($refresh[$i] < 100 && $w < 6) {
|
||||
$w = 6;
|
||||
} elseif ($refresh[$i] < 1000 && $w < 9) {
|
||||
$w = 9;
|
||||
}
|
||||
$w2 = round(100 - $w, 1);
|
||||
$refresh[] = $admin['refresh'];
|
||||
foreach($refresh as $i=>$value){
|
||||
$w = round($value / $admin['maxrefresh'] * 100, 1);
|
||||
$color = getTrafficColor($w);
|
||||
$dt = substr($date[$i], 11, 5); ?>
|
||||
<tr height=30>
|
||||
<td width=100 align=center><?=$year[$i]?>년 <?=$month[$i]?>월</td>
|
||||
<td width=60 align=center id=bg2><?=$dt?></td>
|
||||
<td width=2 align=center id=bg1></td>
|
||||
<td width=320 align=center>
|
||||
<table align=center width=100% height=30 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<tr>
|
||||
<td width=<?=$w?>% bgcolor=<?=$color?> align=right><?=$refresh[$i]?> </td>
|
||||
<td width=<?=$w2?>% id=bg0><font size=1> </font></td>
|
||||
</tr>
|
||||
</table>
|
||||
<td width=320>
|
||||
<?php if($w == 0): ?>
|
||||
<span class="out_bar"><?=$value?></span>
|
||||
<?php elseif($w < 10): ?>
|
||||
<div class='big_bar' style='width:<?=$w?>%;background-color:<?=$color?>;'></div><span class="out_bar"><?=$value?></span>
|
||||
<?php else:?>
|
||||
<div class='big_bar' style='width:<?=$w?>%;background-color:<?=$color?>;'><span><?=$value?></span></div>
|
||||
<?php endif;?>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
$w = round($game['refresh'] / $game['maxrefresh'] * 100, 1);
|
||||
if ($w >= 100) {
|
||||
$w -= 0.1;
|
||||
}
|
||||
if ($game['refresh'] < 10 && $w < 3) {
|
||||
$w = 3;
|
||||
} elseif ($game['refresh'] < 100 && $w < 6) {
|
||||
$w = 6;
|
||||
} elseif ($game['refresh'] < 1000 && $w < 9) {
|
||||
$w = 9;
|
||||
}
|
||||
$w2 = round(100 - $w, 1);
|
||||
$color = getTrafficColor($w);
|
||||
$dt = date('H:i');
|
||||
?>
|
||||
<tr height=30>
|
||||
<td width=100 align=center><?=$game['year']?>년 <?=$game['month']?>월</td>
|
||||
<td width=60 align=center id=bg2><?=$dt?></td>
|
||||
<td width=2 align=center id=bg1></td>
|
||||
<td width=320 align=center>
|
||||
<table align=center width=100% height=30 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<tr>
|
||||
<td width=<?=$w?>% bgcolor=<?=$color?> align=right><?=$game['refresh']?> </td>
|
||||
<td width=<?=$w2?>% id=bg0><font size=1> </font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td colspan=4 height=5 align=center id=bg1></td></tr>
|
||||
<tr>
|
||||
<td colspan=4 height=30 align=center id=bg0>최고기록: <?=$game['maxrefresh']?></td>
|
||||
<td colspan=4 height=30 align=center id=bg0>최고기록: <?=$admin['maxrefresh']?></td>
|
||||
</tr>
|
||||
|
||||
|
||||
</table>
|
||||
</td>
|
||||
<td align=right>
|
||||
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center class='tb_layout bg0'>
|
||||
<tr><td colspan=4 align=center id=bg2><font size=5>접 속 자</font></td></tr>
|
||||
<?php
|
||||
for ($i=0; $i < 11; $i++) {
|
||||
$w = round($online[$i] / $game['maxonline'] * 100, 1);
|
||||
if ($w >= 100) {
|
||||
$w -= 0.1;
|
||||
}
|
||||
if ($online[$i] < 10 && $w < 3) {
|
||||
$w = 3;
|
||||
} elseif ($online[$i] < 100 && $w < 6) {
|
||||
$w = 6;
|
||||
} elseif ($online[$i] < 1000 && $w < 9) {
|
||||
$w = 9;
|
||||
}
|
||||
$w2 = round(100 - $w, 1);
|
||||
$online[] = $curonline;
|
||||
foreach($online as $i=>$value){
|
||||
$w = round($value / $admin['maxonline'] * 100, 1);
|
||||
$color = getTrafficColor($w);
|
||||
$dt = substr($date[$i], 11, 5); ?>
|
||||
<tr height=30>
|
||||
<td width=100 align=center><?=$year[$i]?>년 <?=$month[$i]?>월</td>
|
||||
<td width=60 align=center id=bg2><?=$dt?></td>
|
||||
<td width=2 align=center id=bg1></td>
|
||||
<td width=320 align=center>
|
||||
<table align=center width=100% height=30 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<tr>
|
||||
<td width=<?=$w?>% bgcolor=<?=$color?> align=right><?=$online[$i]?> </td>
|
||||
<td width=<?=$w2?>% id=bg0><font size=1> </font></td>
|
||||
</tr>
|
||||
</table>
|
||||
<td width=320>
|
||||
<?php if($w == 0): ?>
|
||||
<span class="out_bar"><?=$value?></span>
|
||||
<?php elseif($w < 10): ?>
|
||||
<div class='big_bar' style='width:<?=$w?>%;background-color:<?=$color?>;'></div><span class="out_bar"><?=$value?></span>
|
||||
<?php else:?>
|
||||
<div class='big_bar' style='width:<?=$w?>%;background-color:<?=$color?>;'><span><?=$value?></span></div>
|
||||
<?php endif;?>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
$w = round($curonline / $game['maxonline'] * 100, 1);
|
||||
if ($w >= 100) {
|
||||
$w -= 0.1;
|
||||
}
|
||||
if ($curonline < 10 && $w < 3) {
|
||||
$w = 3;
|
||||
} elseif ($curonline < 100 && $w < 6) {
|
||||
$w = 6;
|
||||
} elseif ($curonline < 1000 && $w < 9) {
|
||||
$w = 9;
|
||||
}
|
||||
$w2 = round(100 - $w, 1);
|
||||
$color = getTrafficColor($w);
|
||||
$dt = date('H:i');
|
||||
echo "
|
||||
<tr height=30>
|
||||
<td width=100 align=center>{$game['year']}년 {$game['month']}월</td>
|
||||
<td width=60 align=center id=bg2>{$dt}</td>
|
||||
<td width=2 align=center id=bg1></td>
|
||||
<td width=320 align=center>
|
||||
<table align=center width=100% height=30 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<tr>
|
||||
<td width={$w}% bgcolor={$color} align=right>{$curonline} </td>
|
||||
<td width={$w2}% id=bg0><font size=1> </font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
?>
|
||||
<tr><td colspan=4 height=5 align=center id=bg1></td></tr>
|
||||
<tr>
|
||||
<td colspan=4 height=30 align=center id=bg0>최고기록: {$game['maxonline']}</td>
|
||||
<td colspan=4 height=30 align=center id=bg0>최고기록: <?=$admin['maxonline']?></td>
|
||||
</tr>
|
||||
";
|
||||
?>
|
||||
</table>
|
||||
</td></tr>
|
||||
</table>
|
||||
<br>
|
||||
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center class='tb_layout bg0'>
|
||||
<tr><td colspan=3 align=center id=bg2><font size=5>주 의 대 상 자 (순간과도갱신)</font></td></tr>
|
||||
<?php
|
||||
$query = "select sum(refresh) as refresh,sum(connect) as connect from general";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$user = MYDB_fetch_array($result);
|
||||
$user['connect'] = round($user['connect'], 1);
|
||||
$maxrefresh = $user['refresh'];
|
||||
$max_refresh = $db->queryFirstRow('SELECT sum(refresh) as refresh, sum(`connect`) as `connect` from general');
|
||||
$max_refresh['name'] = '접속자 총합';
|
||||
|
||||
$w = round($maxrefresh / $maxrefresh * 100, 1);
|
||||
$w2 = round(100 - $w, 1);
|
||||
$color = getTrafficColor($w);
|
||||
echo "
|
||||
<tr id=bg2>
|
||||
<td width=98 align=center>주의대상자</td>
|
||||
<td width=98 align=center>벌점(순간갱신)</td>
|
||||
<td width=798 align=center>전체 대비</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center>접속자 총합</td>
|
||||
<td align=center>{$user['connect']}({$maxrefresh})</td>
|
||||
<td align=center>
|
||||
<table align=center width=100% height=100% border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<tr>
|
||||
<td width={$w}% bgcolor={$color}> </td>
|
||||
<td width={$w2}%> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
";
|
||||
$refresh_result = array_merge([$max_refresh], $db->query('SELECT `name`,refresh,`connect` FROM general ORDER BY refresh DESC LIMIT 5'));
|
||||
|
||||
$query = "select name,refresh,connect from general order by refresh desc limit 0,5";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$count = MYDB_num_rows($result);
|
||||
for ($i=0; $i < $count; $i++) {
|
||||
$user = MYDB_fetch_array($result);
|
||||
|
||||
$w = round($user['refresh'] / $maxrefresh * 100, 1);
|
||||
foreach ($refresh_result as $i=>$user) {
|
||||
$w = round($user['refresh'] / $max_refresh['refresh'] * 100, 1);
|
||||
$w2 = round(100 - $w, 1);
|
||||
$color = getTrafficColor($w);
|
||||
echo "
|
||||
?>
|
||||
<tr>
|
||||
<td width=98 align=center>{$user['name']}</td>
|
||||
<td width=98 align=center>{$user['connect']}({$user['refresh']})</td>
|
||||
<td width=798 align=center>
|
||||
<table align=center width=100% height=100% border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<tr>
|
||||
<td width={$w}% bgcolor={$color}> </td>
|
||||
<td width={$w2}%> </td>
|
||||
</tr>
|
||||
</table>
|
||||
<td width=98 align=center><?=$user['name']?></td>
|
||||
<td width=98 align=center><?=$user['connect']?>(<?=$user['refresh']?>)</td>
|
||||
<td width=798>
|
||||
<?php if($w == 0): ?>
|
||||
<?php elseif($w < 10): ?>
|
||||
<div class='little_bar' style='width:<?=$w?>%;background-color:<?=$color?>;'></div>
|
||||
<?php else:?>
|
||||
<div class='little_bar' style='width:<?=$w?>%;background-color:<?=$color?>;'></div>
|
||||
<?php endif;?>
|
||||
</td>
|
||||
</tr>
|
||||
";
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
<br>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -273,7 +198,7 @@ function getTrafficColor($per)
|
||||
$r = getHex($per);
|
||||
$b = getHex(100 - $per);
|
||||
$color = $r . "00" . $b;
|
||||
return $color;
|
||||
return '#'.$color;
|
||||
}
|
||||
|
||||
function getHex($dec)
|
||||
|
||||
+122
-76
@@ -7,31 +7,39 @@ include "func.php";
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("설문조사", 1);
|
||||
|
||||
$isVoteAdmin = in_array('vote', $session->acl[DB::prefix()]??[]);
|
||||
$isVoteAdmin |= $session->userGrade >= 5;
|
||||
|
||||
$query = "select no,vote from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select develcost,voteopen,vote,votecomment from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$vote = explode("|", $admin['vote']);
|
||||
if ($vote[0] == "") {
|
||||
$vote[0] = "-";
|
||||
}
|
||||
$admin = $gameStor->getValues(['develcost','voteopen','vote_title','vote','votecomment']);
|
||||
$vote_title = $admin['vote_title']??'-';
|
||||
$vote = $admin['vote']?:['-'];
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>설문조사</title>
|
||||
<title><?=UniqueConst::$serverName?>: 설문조사</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<style>
|
||||
.little_bar{
|
||||
float:left;
|
||||
position:relative;
|
||||
height:17px;
|
||||
line-height:17px;
|
||||
text-align:center;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
function captureKey(e) {
|
||||
if(e.keyCode == 13 && e.srcElement.type == 'text') {
|
||||
@@ -44,29 +52,29 @@ function captureKey(e) {
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>설 문 조 사<br><?=closeButton()?></td></tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<form name=form1 action=c_vote.php method=post>
|
||||
<tr><td colspan=3 align=center id=bg2><font size=5>설 문 조 사 (<?=$admin['develcost']*5?>금과 추첨으로 유니크템 증정!)</font></td></tr>
|
||||
<?php
|
||||
|
||||
if ($session->userGrade >= 5) {
|
||||
if ($isVoteAdmin) {
|
||||
echo "
|
||||
<tr>
|
||||
<td width=48 align=center><input type=submit name=btn value='알림'></td>
|
||||
<td width=98 align=center><input type=submit name=btn value='수정'></td>
|
||||
<td width=848 align=left><input type=text name=title style=width:848;></td>
|
||||
<td width=848 align=left><input type=text name=title style=width:848px;></td>
|
||||
</tr>
|
||||
";
|
||||
}
|
||||
|
||||
$vote[0] = Tag2Code($vote[0]);
|
||||
$vote_title = Tag2Code($vote_title);
|
||||
echo "
|
||||
<tr>
|
||||
<td colspan=2 width=148 align=center id=bg1>제 목</td>
|
||||
<td width=848 align=left> {$vote[0]}</td>
|
||||
<td width=848 align=left> {$vote_title}</td>
|
||||
</tr>
|
||||
";
|
||||
|
||||
@@ -91,7 +99,7 @@ for ($i=1; $i < $voteTypeCount; $i++) {
|
||||
echo "
|
||||
<input type=radio name=sel value={$i}>
|
||||
";
|
||||
} elseif ($admin['voteopen'] >= 1 || $session->userGrade >= 5) {
|
||||
} elseif ($admin['voteopen'] >= 1 || $isVoteAdmin) {
|
||||
$query = "select no from general where vote='{$i}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$vCount = MYDB_num_rows($result);
|
||||
@@ -127,59 +135,59 @@ echo "
|
||||
</tr>
|
||||
";
|
||||
|
||||
if ($session->userGrade >= 5) {
|
||||
if ($isVoteAdmin) {
|
||||
echo "
|
||||
<tr>
|
||||
<td align=center><input type=submit name=btn value='리셋'></td>
|
||||
<td align=center><input type=submit name=btn value='추가'></td>
|
||||
<td align=left><input type=text name=str style=width:848;></td>
|
||||
<td align=left><input type=text name=str style=width:848px;></td>
|
||||
</tr>
|
||||
";
|
||||
}
|
||||
|
||||
if ($admin['votecomment'] != "") {
|
||||
$comment = explode("|", $admin['votecomment']);
|
||||
if ($admin['votecomment']) {
|
||||
$comment = $admin['votecomment'];
|
||||
$commentCount = count($comment);
|
||||
} else {
|
||||
$commentCount = 0;
|
||||
}
|
||||
echo "
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td colspan=4 align=center id=bg1>댓 글</td>
|
||||
</tr>
|
||||
";
|
||||
for ($i=0; $i < $commentCount; $i++) {
|
||||
$cmt = explode(":", $comment[$i]);
|
||||
$cmt = $comment[$i];
|
||||
$cmt[2] = Tag2Code($cmt[2]);
|
||||
$j = $i+1;
|
||||
echo "
|
||||
<tr>
|
||||
<td width=28 align=center>{$j}.</td>
|
||||
<td width=83 align=center>{$cmt[0]}</td>
|
||||
<td width=83 align=center>{$cmt[1]}</td>
|
||||
<td width=788 align=left> {$cmt[2]}</td>
|
||||
<td width=130 align=center>{$cmt[0]}</td>
|
||||
<td width=130 align=center>{$cmt[1]}</td>
|
||||
<td width=712 align=left> {$cmt[2]}</td>
|
||||
</tr>
|
||||
";
|
||||
}
|
||||
if ($me['no'] > 0) {
|
||||
echo "
|
||||
<tr>
|
||||
<td width=108 colspan=2 align=center>-</td>
|
||||
<td width=83 align=center><input type=submit name=btn value='댓글'></td>
|
||||
<td align=left><input type=text name=comment maxlength=60 style=width:798; onkeydown='return captureKey(event)'></td>
|
||||
<td width=158 colspan=2 align=center>-</td>
|
||||
<td width=130 align=center><input type=submit name=btn value='댓글'></td>
|
||||
<td align=left><input type=text name=comment maxlength=60 style=width:700px; onkeydown='return captureKey(event)'></td>
|
||||
</tr>
|
||||
";
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
<br>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td colspan=3 align=center id=bg2><font size=5>
|
||||
전 체 통 계
|
||||
<?php
|
||||
if ($session->userGrade >= 5) {
|
||||
if ($isVoteAdmin) {
|
||||
echo "
|
||||
<input type=submit name=btn value='숨김'>
|
||||
<input type=submit name=btn value='전체통계만'>
|
||||
@@ -188,32 +196,27 @@ if ($session->userGrade >= 5) {
|
||||
echo "
|
||||
</font></td></tr>";
|
||||
|
||||
if ($admin['voteopen'] >= 1 || $session->userGrade >= 5) {
|
||||
if ($admin['voteopen'] >= 1 || $isVoteAdmin) {
|
||||
echo "
|
||||
<tr>
|
||||
<td width=98 align=center>전 체</td>
|
||||
<td width=130 align=center>전 체</td>
|
||||
<td width=128 align=center>{$voteCount} / {$allCount} ({$percentage} %)</td>
|
||||
<td width=768 align=center>
|
||||
<table align=center width=100% height=100% border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<tr>
|
||||
<td width=742>
|
||||
";
|
||||
|
||||
$memCount = $db->queryFirstField('SELECT count(`no`) FROM general WHERE npc<2');
|
||||
if ($memCount == 0) {
|
||||
$memCount = 1;
|
||||
}
|
||||
$memCount = max(1, $db->queryFirstField('SELECT count(`no`) FROM general WHERE npc<2'));
|
||||
|
||||
$totalVote = [];
|
||||
$nationVoteCount = [[0]];
|
||||
$nationVote = [[]];
|
||||
$nationVoteCount = [];
|
||||
$nationVote = [];
|
||||
|
||||
foreach ($db->query("SELECT nation, vote, count(`no`) as cnt FROM general WHERE npc<2 GROUP BY nation, vote") as $row) {
|
||||
$nation = $row['nation'];
|
||||
$vote = $row['vote'];
|
||||
$ownVote = $row['vote'];
|
||||
$cnt = $row['cnt'];
|
||||
|
||||
if (!isset($totalVote[$vote])) {
|
||||
$totalVote[$vote] = 0;
|
||||
if (!isset($totalVote[$ownVote])) {
|
||||
$totalVote[$ownVote] = 0;
|
||||
}
|
||||
|
||||
if (!isset($nationVoteCount[$nation])) {
|
||||
@@ -221,32 +224,44 @@ if ($admin['voteopen'] >= 1 || $session->userGrade >= 5) {
|
||||
$nationVote[$nation] = [];
|
||||
}
|
||||
|
||||
if (!isset($nationVote[$nation][$vote])) {
|
||||
$nationVote[$nation][$vote] = 0;
|
||||
if (!isset($nationVote[$nation][$ownVote])) {
|
||||
$nationVote[$nation][$ownVote] = 0;
|
||||
}
|
||||
|
||||
$totalVote[$vote] += $cnt;
|
||||
$totalVote[$ownVote] += $cnt;
|
||||
$nationVoteCount[$nation] += $cnt;
|
||||
$nationVote[$nation][$vote] += $cnt;
|
||||
$nationVote[$nation][$ownVote] += $cnt;
|
||||
}
|
||||
|
||||
$totalPer = 0;
|
||||
for ($i=0; $i < $voteTypeCount; $i++) {
|
||||
$per = round(($totalVote[$i]??0) / $memCount * 100, 1);
|
||||
$per = round(($totalVote[$i]??0) * 100 / $memCount, 1);
|
||||
if($i == $voteTypeCount-1){
|
||||
$per = 100-$totalPer;
|
||||
}
|
||||
else{
|
||||
$totalPer += $per;
|
||||
}
|
||||
|
||||
|
||||
// if($per < 5) { $vote['cnt'] = " "; }
|
||||
echo "
|
||||
<td width={$per}% align=center style=color:".getNewColor($i)."; bgcolor=".getVoteColor($i).">{$totalVote[$i]}</td>
|
||||
";
|
||||
?>
|
||||
<?php if($per == 0): ?>
|
||||
<?php elseif($per < 10): ?>
|
||||
<div class='little_bar' style='width:<?=$per?>%;color:<?=getNewColor($i)?>;background-color:<?=getVoteColor($i)?>;'></div>
|
||||
<?php else:?>
|
||||
<div class='little_bar' style='width:<?=$per?>%;color:<?=getNewColor($i)?>;background-color:<?=getVoteColor($i)?>;'><?=$totalVote[$i]?></div>
|
||||
<?php endif;?>
|
||||
<?php
|
||||
}
|
||||
|
||||
echo "
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
";
|
||||
}
|
||||
|
||||
if ($admin['voteopen'] >= 2 || $session->userGrade >= 5) {
|
||||
if ($admin['voteopen'] >= 2 || $isVoteAdmin) {
|
||||
$query = "select no from general where nation=0 and npc<2";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$memCount = MYDB_num_rows($result);
|
||||
@@ -263,22 +278,30 @@ if ($admin['voteopen'] >= 2 || $session->userGrade >= 5) {
|
||||
<tr>
|
||||
<td align=center bgcolor=black>재 야</td>
|
||||
<td align=center>{$nationVoteCount[0]} / {$memCount} ({$percentage} %)</td>
|
||||
<td align=center>
|
||||
<table align=center width=100% height=100% border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<tr>
|
||||
<td>
|
||||
";
|
||||
|
||||
$totalPer = 0;
|
||||
for ($i=0; $i < $voteTypeCount; $i++) {
|
||||
$per = round(Util::array_get($nationVote[0][$i], 0) / $memCount * 100, 1);
|
||||
if($i == $voteTypeCount-1){
|
||||
$per = 100-$totalPer;
|
||||
}
|
||||
else{
|
||||
$totalPer += $per;
|
||||
}
|
||||
// if($per < 5) { $vote['cnt'] = " "; }
|
||||
echo "
|
||||
<td width={$per}% align=center style=color:".getNewColor($i)."; bgcolor=".getVoteColor($i).">{$nationVote[0][$i]}</td>
|
||||
";
|
||||
?>
|
||||
<?php if($per == 0): ?>
|
||||
<?php elseif($per < 10): ?>
|
||||
<div class='little_bar' style='width:<?=$per?>%;color:<?=getNewColor($i)?>;background-color:<?=getVoteColor($i)?>;'></div>
|
||||
<?php else:?>
|
||||
<div class='little_bar' style='width:<?=$per?>%;color:<?=getNewColor($i)?>;background-color:<?=getVoteColor($i)?>;'><?=$nationVote[0][$i]?></div>
|
||||
<?php endif;?>
|
||||
<?php
|
||||
}
|
||||
|
||||
echo "
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
";
|
||||
@@ -293,29 +316,52 @@ if ($admin['voteopen'] >= 2 || $session->userGrade >= 5) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$memCount = MYDB_num_rows($result);
|
||||
|
||||
|
||||
|
||||
$voteCount = $nationVoteCount[$nation['nation']] ?? 0;
|
||||
$percentage = round($voteCount / $memCount * 100, 1);
|
||||
if($memCount == 0){
|
||||
$percentage = 100;
|
||||
}
|
||||
else{
|
||||
$percentage = round($voteCount / $memCount * 100, 1);
|
||||
}
|
||||
|
||||
|
||||
echo "
|
||||
<tr>
|
||||
<td align=center style=color:".newColor($nation['color'])."; bgcolor={$nation['color']}>{$nation['name']}</td>
|
||||
<td align=center>{$voteCount} / {$memCount} ({$percentage} %)</td>
|
||||
<td align=center>
|
||||
<table align=center width=100% height=100% border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<tr>
|
||||
";
|
||||
|
||||
$totalPer = 0;
|
||||
for ($k=0; $k < $voteTypeCount; $k++) {
|
||||
$per = round($nationVote[$nation['nation']][$k] / $memCount * 100, 1);
|
||||
if($memCount == 0){
|
||||
$per = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
$per = round($nationVote[$nation['nation']][$k]??0 / $memCount * 100, 1);
|
||||
|
||||
if($i == $voteTypeCount-1){
|
||||
$per = 100-$totalPer;
|
||||
}
|
||||
else{
|
||||
$totalPer += $per;
|
||||
}
|
||||
|
||||
// if($per < 5) { $vote['cnt'] = " "; }
|
||||
echo "
|
||||
<td width={$per}% align=center style=color:".getNewColor($k)."; bgcolor=".getVoteColor($k).">{$nationVote[$nation['nation']][$k]}</td>
|
||||
";
|
||||
?>
|
||||
<?php if($per == 0): ?>
|
||||
<?php elseif($per < 10): ?>
|
||||
<div class='little_bar' style='width:<?=$per?>%;color:<?=getNewColor($k)?>;background-color:<?=getVoteColor($k)?>;'></div>
|
||||
<?php else:?>
|
||||
<div class='little_bar' style='width:<?=$per?>%;color:<?=getNewColor($k)?>;background-color:<?=getVoteColor($k)?>;'><?=$nationVote[$nation['nation']][$k]??0?></div>
|
||||
<?php endif;?>
|
||||
<?php
|
||||
}
|
||||
|
||||
echo "
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
";
|
||||
@@ -324,11 +370,10 @@ if ($admin['voteopen'] >= 2 || $session->userGrade >= 5) {
|
||||
?>
|
||||
</form>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -340,6 +385,7 @@ function getVoteColor($type)
|
||||
}
|
||||
|
||||
switch ($type) {
|
||||
default:
|
||||
case 0: $color = "black"; break;
|
||||
case 1: $color = "red"; break;
|
||||
case 2: $color = "orange"; break;
|
||||
|
||||
+12
-15
@@ -7,11 +7,14 @@ include "func.php";
|
||||
$msg = Util::getReq('msg');
|
||||
$msg2 = Util::getReq('msg2');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("거래장", 2);
|
||||
@@ -20,11 +23,7 @@ $query = "select no,special,con,turntime from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$con = checkLimit($me['con'], $admin['conlimit']);
|
||||
$con = checkLimit($me['con']);
|
||||
if ($con >= 2) {
|
||||
printLimitMsg($me['turntime']);
|
||||
exit();
|
||||
@@ -56,18 +55,17 @@ if ($msg2 == "") {
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>거래장</title>
|
||||
<title><?=UniqueConst::$serverName?>: 거래장</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>거 래 장<br><?=closeButton()?></td></tr>
|
||||
<tr><td align=center id=bg2><font color=orange size=6><b>거 래 장</b></font><input type=button value='갱신' onclick=location.replace('b_auction.php')></td></tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<form method=post action=c_auction.php>
|
||||
<tr><td colspan=11 align=center bgcolor=orange><font size=5>팝 니 다</font></td></tr>
|
||||
<tr align=center id=bg1>
|
||||
@@ -165,7 +163,7 @@ for ($i=0; $i < $count; $i++) {
|
||||
</form>
|
||||
</table>
|
||||
<br>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<form method=post action=c_auction.php>
|
||||
<tr><td colspan=11 align=center bgcolor=skyblue><font size=5>삽 니 다</font></td></tr>
|
||||
<tr align=center id=bg1>
|
||||
@@ -263,7 +261,7 @@ for ($i=0; $i < $count; $i++) {
|
||||
</form>
|
||||
</table>
|
||||
<br>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td align=center id=bg2><font size=5>최 근 기 록</font></td></tr>
|
||||
<tr><td>
|
||||
<?=getAuctionLogRecent(20)?>
|
||||
@@ -282,7 +280,7 @@ for ($i=0; $i < $count; $i++) {
|
||||
ㆍ악용 방지를 위해 50% ~ 200%의 가격에서 거래시작이 가능합니다.<br>
|
||||
ㆍ악용 방지를 위해 즉시판매가는 110% 이상, 즉시구매가는 90% 이하의 시세로 가능합니다.<br>
|
||||
ㆍ악용 방지를 위해 즉시판매가는 시작판매가의 110% 이상, 즉시구매가는 시작구매가의 90% 이하로 가능합니다.<br>
|
||||
ㆍ1인당 도합 1건의 거래와 입찰이 가능합니다. 거상 특기 소유자는 1인당 도합 3건입니다.<br>
|
||||
ㆍ1인당 도합 1건의 거래와 입찰이 가능합니다.<br>
|
||||
ㆍ기본금쌀 1000은 거래에 사용되지 못합니다.<br>
|
||||
ㆍ유찰될 때는 거래 과실자에게 거래금의 1%가 벌금으로 부과됩니다.<br>
|
||||
ㆍ<font color=magenta>10단위로 거래가 가능합니다. 1자리는 반올림 처리 됩니다.</font><br>
|
||||
@@ -297,6 +295,5 @@ for ($i=0; $i < $count; $i++) {
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+39
-22
@@ -9,23 +9,27 @@ $v->rule('required', 'gen')
|
||||
->rule('integer', 'gen');
|
||||
|
||||
$btn = Util::getReq('btn');
|
||||
$gen = Util::getReq('gen', 'int');
|
||||
$type = Util::getReq('type', 'int');
|
||||
$gen = Util::getReq('gen', 'int', 0);
|
||||
$type = Util::getReq('type', 'int', 0);
|
||||
|
||||
if ($type < 0 || $type > 3) {
|
||||
$type = 0;
|
||||
}
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("감찰부", 2);
|
||||
//전투 추진을 위해 갱신
|
||||
checkTurn();
|
||||
|
||||
$query = "select conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$gameStor->resetCache();
|
||||
|
||||
$query = "select nation from general where no='$gen'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
@@ -39,7 +43,7 @@ $query = "select secretlimit from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
$con = checkLimit($me['con'], $admin['conlimit']);
|
||||
$con = checkLimit($me['con']);
|
||||
if ($con >= 2) {
|
||||
printLimitMsg($me['turntime']);
|
||||
exit();
|
||||
@@ -61,9 +65,6 @@ if ($btn == '정렬하기') {
|
||||
$gen = 0;
|
||||
}
|
||||
|
||||
if ($type == 0) {
|
||||
$type = 0;
|
||||
}
|
||||
$sel = [];
|
||||
$sel[$type] = "selected";
|
||||
|
||||
@@ -72,15 +73,15 @@ $sel[$type] = "selected";
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>감찰부</title>
|
||||
<title><?=UniqueConst::$serverName?>: 감찰부</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>감 찰 부<br><?=closeButton()?></td></tr>
|
||||
<tr><td>
|
||||
<form name=form1 method=post>
|
||||
@@ -96,20 +97,24 @@ $sel[$type] = "selected";
|
||||
<select name=gen size=1>
|
||||
<?php
|
||||
switch ($type) {
|
||||
case 0: $query = "select no,name from general where nation='{$me['nation']}' order by turntime desc"; break;
|
||||
case 1: $query = "select no,name from general where nation='{$me['nation']}' order by recwar desc"; break;
|
||||
case 2: $query = "select no,name from general where nation='{$me['nation']}' order by npc,binary(name)"; break;
|
||||
case 3: $query = "select no,name from general where nation='{$me['nation']}' order by warnum desc"; break;
|
||||
default:
|
||||
case 0: $query = "select no,name,npc from general where nation='{$me['nation']}' order by turntime desc"; break;
|
||||
case 1: $query = "select no,name,npc from general where nation='{$me['nation']}' order by recwar desc"; break;
|
||||
case 2: $query = "select no,name,npc from general where nation='{$me['nation']}' order by npc,binary(name)"; break;
|
||||
case 3: $query = "select no,name,npc from general where nation='{$me['nation']}' order by warnum desc"; break;
|
||||
}
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$gencount = MYDB_num_rows($result);
|
||||
|
||||
$npc = 0;
|
||||
for ($i=0; $i < $gencount; $i++) {
|
||||
$general = MYDB_fetch_array($result);
|
||||
// 선택 없으면 맨 처음 장수
|
||||
if ($gen == 0) {
|
||||
$gen = $general['no'];
|
||||
}
|
||||
if($gen == $general['no']){
|
||||
$npc = $general['npc'];
|
||||
}
|
||||
if ($gen == $general['no']) {
|
||||
echo "
|
||||
<option selected value={$general['no']}>{$general['name']}</option>";
|
||||
@@ -124,7 +129,7 @@ for ($i=0; $i < $gencount; $i++) {
|
||||
</form>
|
||||
</td></tr>
|
||||
</table>
|
||||
<table width=1000 align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table width=1000 align=center class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=50% align=center id=bg1><font color=skyblue size=3>장 수 정 보</font></td>
|
||||
<td width=50% align=center id=bg1><font color=orange size=3>장 수 열 전</font></td>
|
||||
@@ -149,11 +154,23 @@ for ($i=0; $i < $gencount; $i++) {
|
||||
<?=getBatResRecent($gen, 24)?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if($npc > 1): ?>
|
||||
<tr>
|
||||
<td align=center id=bg1><font color=orange size=3>개인 기록</font></td>
|
||||
<td align=center id=bg1><font color=orange size=3> </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top>
|
||||
<?=getGenLogRecent($gen, 24)?>
|
||||
</td>
|
||||
<td valign=top>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+62
-33
@@ -8,6 +8,7 @@ $session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("베팅장", 1);
|
||||
@@ -17,17 +18,20 @@ $query = "select no,tournament,con,turntime,bet0+bet1+bet2+bet3+bet4+bet5+bet6+b
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select conlimit,tournament,phase,tnmt_type,develcost,bet0,bet1,bet2,bet3,bet4,bet5,bet6,bet7,bet8,bet9,bet10,bet11,bet12,bet13,bet14,bet15,bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15 as bet from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['tournament','phase','tnmt_type','develcost','bet0','bet1','bet2','bet3','bet4','bet5','bet6','bet7','bet8','bet9','bet10','bet11','bet12','bet13','bet14','bet15']);
|
||||
$admin['bet'] =
|
||||
$admin['bet0'] + $admin['bet1'] + $admin['bet2'] + $admin['bet3'] + $admin['bet4'] +
|
||||
$admin['bet5'] + $admin['bet6'] + $admin['bet7'] + $admin['bet8'] + $admin['bet9'] +
|
||||
$admin['bet10'] + $admin['bet11'] + $admin['bet12'] + $admin['bet13'] + $admin['bet14'] + $admin['bet15'];
|
||||
|
||||
$con = checkLimit($me['con'], $admin['conlimit']);
|
||||
$con = checkLimit($me['con']);
|
||||
if ($con >= 2) {
|
||||
printLimitMsg($me['turntime']);
|
||||
exit();
|
||||
}
|
||||
|
||||
switch ($admin['tnmt_type']) {
|
||||
default: throw new \RuntimeException('Invalid tnmt_type');break;
|
||||
case 0: $tnmt_type = "<font color=cyan>전력전</font>"; $tp = "tot"; $tp2 = "종합"; $tp3 = "total"; break;
|
||||
case 1: $tnmt_type = "<font color=cyan>통솔전</font>"; $tp = "ldr"; $tp2 = "통솔"; $tp3 = "leader"; break;
|
||||
case 2: $tnmt_type = "<font color=cyan>일기토</font>"; $tp = "pwr"; $tp2 = "무력"; $tp3 = "power"; break;
|
||||
@@ -36,7 +40,13 @@ case 3: $tnmt_type = "<font color=cyan>설전</font>"; $tp = "itl"; $tp2 = "
|
||||
|
||||
$str1 = getTournament($admin['tournament']);
|
||||
$str2 = getTournamentTime();
|
||||
if($str2){
|
||||
$str2 = ', '.$str2;
|
||||
}
|
||||
$str3 = getTournamentTerm();
|
||||
if($str3){
|
||||
$str3 = ', '.$str3;
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
@@ -46,37 +56,32 @@ $str3 = getTournamentTerm();
|
||||
} ?>
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>베팅장</title>
|
||||
<style>
|
||||
body { color:white; background-color:black; border-width:1; border-color:gray; }
|
||||
table { font-family:'맑은 고딕'; line-height:110%; }
|
||||
font { font-family:'맑은 고딕'; line-height:110%; }
|
||||
input { font-family:'맑은 고딕'; line-height:110%; height:20px }
|
||||
select { font-family:'굴림'; line-height:100%; }
|
||||
#bg0 { background-image:url(<?=ServConfig::$gameImagePath?>/back_walnut.jpg); }
|
||||
#bg1 { background-image:url(<?=ServConfig::$gameImagePath?>/back_green.jpg); }
|
||||
#bg2 { background-image:url(<?=ServConfig::$gameImagePath?>/back_blue.jpg); }
|
||||
</style>
|
||||
|
||||
<title><?=UniqueConst::$serverName?>: 베팅장</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1120 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1120 class='tb_layout bg0'>
|
||||
<tr><td>베 팅 장<br><?=closeButton()?></td></tr>
|
||||
</table>
|
||||
<table align=center width=1120 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:10;word-break:break-all; id=bg0>
|
||||
<table align=center width=1120 class='tb_layout bg0'>
|
||||
<tr><td colspan=16><input type=button value='갱신' onclick='location.reload()'></td></tr>
|
||||
<tr><td colspan=16 align=center><font color=white size=6><?=$tnmt_type?> (<?=$str1.", ".$str2.", ".$str3?>)</font></td></tr>
|
||||
<tr><td colspan=16 align=center><font color=white size=6><?=$tnmt_type?> (<?=$str1.$str2.$str3?>)</font></td></tr>
|
||||
<tr><td height=50 colspan=16 align=center id=bg2><font color=limegreen size=6>16강 상황</font><br><font color=orange size=3>(전체 금액 : <?=$admin['bet']?> / 내 투자 금액 : <?=$me['bet']?>)</font></td></tr>
|
||||
</table>
|
||||
<table align=center width=1120 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:10;word-break:break-all; id=bg0>
|
||||
<table align=center width=1120 class='mimic_flex bg0' style='border:solid 1px gray;font-size:10px;'>
|
||||
<tr align=center><td height=10 colspan=16></td></tr>
|
||||
<tr align=center>
|
||||
<?php
|
||||
$query = "select npc,name,win from tournament where grp>=60 order by grp, grp_no";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
for ($i=0; $i < 1; $i++) {
|
||||
$general = MYDB_fetch_array($result);
|
||||
$general = MYDB_fetch_array($result)??[
|
||||
'npc'=>0,
|
||||
'name'=>'',
|
||||
'win'=>0
|
||||
];
|
||||
if ($general['name'] == "") {
|
||||
$general['name'] = "-";
|
||||
}
|
||||
@@ -96,11 +101,16 @@ $query = "select npc,name,win from tournament where grp>=50 order by grp, grp_no
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$cent = [];
|
||||
$line = [];
|
||||
$gen = [];
|
||||
for ($i=0; $i < 1; $i++) {
|
||||
$cent[$i] = "<font color=white>";
|
||||
}
|
||||
for ($i=0; $i < 2; $i++) {
|
||||
$general = MYDB_fetch_array($result);
|
||||
$general = MYDB_fetch_array($result)??[
|
||||
'npc'=>0,
|
||||
'name'=>'',
|
||||
'win'=>0
|
||||
];
|
||||
if ($general['name'] == "") {
|
||||
$general['name'] = "-";
|
||||
}
|
||||
@@ -141,7 +151,11 @@ for ($i=0; $i < 2; $i++) {
|
||||
$cent[$i] = "<font color=white>";
|
||||
}
|
||||
for ($i=0; $i < 4; $i++) {
|
||||
$general = MYDB_fetch_array($result);
|
||||
$general = MYDB_fetch_array($result)??[
|
||||
'npc'=>0,
|
||||
'name'=>'',
|
||||
'win'=>0
|
||||
];
|
||||
if ($general['name'] == "") {
|
||||
$general['name'] = "-";
|
||||
}
|
||||
@@ -182,7 +196,11 @@ for ($i=0; $i < 4; $i++) {
|
||||
$cent[$i] = "<font color=white>";
|
||||
}
|
||||
for ($i=0; $i < 8; $i++) {
|
||||
$general = MYDB_fetch_array($result);
|
||||
$general = MYDB_fetch_array($result)??[
|
||||
'npc'=>0,
|
||||
'name'=>'',
|
||||
'win'=>0
|
||||
];
|
||||
if ($general['name'] == "") {
|
||||
$general['name'] = "-";
|
||||
}
|
||||
@@ -223,7 +241,11 @@ for ($i=0; $i < 8; $i++) {
|
||||
$cent[$i] = "<font color=white>";
|
||||
}
|
||||
for ($i=0; $i < 16; $i++) {
|
||||
$general = MYDB_fetch_array($result);
|
||||
$general = MYDB_fetch_array($result)??[
|
||||
'npc'=>0,
|
||||
'name'=>'',
|
||||
'win'=>0
|
||||
];
|
||||
if ($general['name'] == "") {
|
||||
$general['name'] = "-";
|
||||
}
|
||||
@@ -266,19 +288,27 @@ for ($i=0; $i < 16; $i++) {
|
||||
}
|
||||
|
||||
for ($i=0; $i < 16; $i++) {
|
||||
$bet[$i] = @round($admin['bet'] / $admin["bet{$i}"], 2);
|
||||
if ($bet[$i] == 0) {
|
||||
if($admin["bet{$i}"] == 0){
|
||||
$bet[$i] = "∞";
|
||||
}
|
||||
else{
|
||||
$bet[$i] = round($admin['bet'] / $admin["bet{$i}"], 2);
|
||||
}
|
||||
}
|
||||
|
||||
for ($i=0; $i < 16; $i++) {
|
||||
$gold[$i] = Util::round($myBet[$i] * $bet[$i]);
|
||||
if(!is_numeric($bet[$i])){
|
||||
$gold[$i] = 0;
|
||||
}
|
||||
else{
|
||||
$gold[$i] = Util::round($myBet[$i] * $bet[$i]);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
</table>
|
||||
<table align=center width=1120 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1120 class='tb_layout bg0'>
|
||||
<tr align=center><td height=10 colspan=16></td></tr>
|
||||
<?php
|
||||
echo "
|
||||
@@ -357,7 +387,7 @@ if ($admin['tournament'] == 6) {
|
||||
</tr>
|
||||
<tr align=center><td height=10 colspan=16></td></tr>
|
||||
</table>
|
||||
<table align=center width=1120 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1120 class='tb_layout bg0'>
|
||||
<tr align=center><td height=50 colspan=4 id=bg2><font color=yellow size=6>토너먼트 랭킹</font></td></tr>
|
||||
<tr align=center><td colspan=4 id=bg2><font color=skyblue size=3>순위 / 장수명 / 능력치 / 경기수 / 승리 / 무승부 / 패배 / 집계점수 / 우승횟수</font></td></tr>
|
||||
<tr align=center>
|
||||
@@ -372,7 +402,7 @@ for ($i=0; $i < 4; $i++) {
|
||||
$grp = $i;
|
||||
echo "
|
||||
<td>
|
||||
<table align=center width=280 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=280 class='tb_layout bg0'>
|
||||
<tr><td colspan=9 align=center style=color:white;background-color:black;><font size=4>{$type1[$i]}</font></td></tr>
|
||||
<tr id=bg1><td align=center>순</td><td align=center>장수</td><td align=center>{$type2[$i]}</td><td align=center>경</td><td align=center>승</td><td align=center>무</td><td align=center>패</td><td align=center>점</td><td align=center>勝</td></tr>";
|
||||
|
||||
@@ -399,10 +429,9 @@ for ($i=0; $i < 4; $i++) {
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align=center width=1120 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1120 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -25,23 +25,24 @@ if($me['level'] < 5) {
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>기밀실</title>
|
||||
<title><?=UniqueConst::$serverName?>: 기밀실</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<div style='width:1000px;margin:auto'>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>기 밀 실<br><?=backButton()?></td></tr>
|
||||
<form name=form1 method=post action=c_chiefboard.php>
|
||||
<tr><td align=center>
|
||||
제목 <input type=textarea maxlength=50 name=title style=color:white;background-color:black;width:830;>
|
||||
제목 <input type=textarea maxlength=50 name=title style=color:white;background-color:black;width:830px;>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td>
|
||||
<textarea name=msg style=color:white;background-color:black;width:998;height:200;></textarea><br>
|
||||
<textarea name=msg style=color:white;background-color:black;width:998px;height:200px;></textarea><br>
|
||||
<input type=submit value=저장하기>
|
||||
<input type=hidden name=num value=-1>
|
||||
</td></tr>
|
||||
@@ -65,11 +66,11 @@ for($i=0; $i < 20; $i++) {
|
||||
|
||||
?>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
+59
-62
@@ -8,14 +8,11 @@ $session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("사령부", 1);
|
||||
|
||||
$query = "select conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,nation,level,con,turntime,belong from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
@@ -24,7 +21,7 @@ $query = "select secretlimit from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
$con = checkLimit($me['con'], $admin['conlimit']);
|
||||
$con = checkLimit($me['con']);
|
||||
if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
|
||||
|
||||
if($me['level'] == 0 || ($me['level'] == 1 && $me['belong'] < $nation['secretlimit'])) {
|
||||
@@ -38,9 +35,7 @@ else { $btn = "hidden"; $btn2 = "hidden"; }
|
||||
$date = date('Y-m-d H:i:s');
|
||||
|
||||
// 명령 목록
|
||||
$query = "select year,month,turnterm from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year','month','turnterm']);
|
||||
|
||||
$query = "
|
||||
select nation,level,
|
||||
@@ -58,13 +53,24 @@ $nation = MYDB_fetch_array($result);
|
||||
|
||||
$lv = getNationChiefLevel($nation['level']);
|
||||
$turn = [];
|
||||
$gen = [];
|
||||
|
||||
for($i=12; $i >= $lv; $i--) {
|
||||
$turn[$i] = getCoreTurn($nation, $i);
|
||||
|
||||
$query = "select name,turntime,npc from general where level={$i} and nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gen[$i] = MYDB_fetch_array($result);
|
||||
$gen[$i] = MYDB_fetch_array($result)??[
|
||||
'npc'=>0,
|
||||
'name'=>'',
|
||||
'turntime'=>''
|
||||
];
|
||||
}
|
||||
for($i= $lv - 1; $i>=5; $i--){
|
||||
$gen[$i] = [
|
||||
'npc'=>0,
|
||||
'name'=>'',
|
||||
'turntime'=>''
|
||||
];
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -72,9 +78,9 @@ for($i=12; $i >= $lv; $i--) {
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>사령부</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<title><?=UniqueConst::$serverName?>: 사령부</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<script type="text/javascript">
|
||||
function turn(type) {
|
||||
if(type == 0) location.replace('turn_push_core.php');
|
||||
@@ -85,10 +91,10 @@ function turn(type) {
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>사 령 부<input type=button value='갱신' onclick=location.replace('b_chiefcenter.php')><br><?=backButton()?></td></tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td colspan=10 align=center bgcolor=skyblue>수뇌부 일정</td></tr>
|
||||
<tr><td colspan=10 align=center>
|
||||
<?php
|
||||
@@ -105,35 +111,27 @@ for($i=12; $i >= $lv; $i--) {
|
||||
$turntime[$i] = substr($gen[$i]['turntime'], 14);
|
||||
}
|
||||
|
||||
|
||||
//FIXME: 각 칸을 div로 놓으면 네개씩 출력하는 삽질이 필요없다.
|
||||
|
||||
for($k=0; $k < 2; $k++) {
|
||||
$l4 = 12 - $k; $l3 = 10 - $k; $l2 = 8 - $k; $l1 = 6 - $k;
|
||||
|
||||
if(!isset($gen[$l4])){
|
||||
$gen[$l4] = [
|
||||
'npc'=>0,
|
||||
'name'=>0
|
||||
];
|
||||
}
|
||||
|
||||
if ($gen[$l4]['npc'] >= 2) { $gen[$l4]['name'] = "<font color=cyan>".$gen[$l4]['name']."</font>"; }
|
||||
elseif($gen[$l4]['npc'] == 1) { $gen[$l4]['name'] = "<font color=skyblue>".$gen[$l4]['name']."</font>"; }
|
||||
if ($gen[$l3]['npc'] >= 2) { $gen[$l3]['name'] = "<font color=cyan>".$gen[$l3]['name']."</font>"; }
|
||||
elseif($gen[$l3]['npc'] == 1) { $gen[$l3]['name'] = "<font color=skyblue>".$gen[$l3]['name']."</font>"; }
|
||||
if ($gen[$l2]['npc'] >= 2) { $gen[$l2]['name'] = "<font color=cyan>".$gen[$l2]['name']."</font>"; }
|
||||
elseif($gen[$l2]['npc'] == 1) { $gen[$l2]['name'] = "<font color=skyblue>".$gen[$l2]['name']."</font>"; }
|
||||
if ($gen[$l1]['npc'] >= 2) { $gen[$l1]['name'] = "<font color=cyan>".$gen[$l1]['name']."</font>"; }
|
||||
elseif($gen[$l1]['npc'] == 1) { $gen[$l1]['name'] = "<font color=skyblue>".$gen[$l1]['name']."</font>"; }
|
||||
if ($gen[$l4]['npc'] >= 2) { $gen[$l4]['name'] = "<font color=cyan>".($gen[$l4]['name']??'')."</font>"; }
|
||||
elseif($gen[$l4]['npc'] == 1) { $gen[$l4]['name'] = "<font color=skyblue>".($gen[$l4]['name']??'')."</font>"; }
|
||||
if ($gen[$l3]['npc'] >= 2) { $gen[$l3]['name'] = "<font color=cyan>".($gen[$l3]['name']??'')."</font>"; }
|
||||
elseif($gen[$l3]['npc'] == 1) { $gen[$l3]['name'] = "<font color=skyblue>".($gen[$l3]['name']??'')."</font>"; }
|
||||
if ($gen[$l2]['npc'] >= 2) { $gen[$l2]['name'] = "<font color=cyan>".($gen[$l2]['name']??'')."</font>"; }
|
||||
elseif($gen[$l2]['npc'] == 1) { $gen[$l2]['name'] = "<font color=skyblue>".($gen[$l2]['name']??'')."</font>"; }
|
||||
if ($gen[$l1]['npc'] >= 2) { $gen[$l1]['name'] = "<font color=cyan>".($gen[$l1]['name']??'')."</font>"; }
|
||||
elseif($gen[$l1]['npc'] == 1) { $gen[$l1]['name'] = "<font color=skyblue>".($gen[$l1]['name']??'')."</font>"; }
|
||||
|
||||
echo "
|
||||
<tr>
|
||||
<td align=center id=bg1>.</td>
|
||||
<td colspan=2 align=center id=bg1><b>".getLevel($l4, $nation['level'])." : {$gen[$l4]['name']}</b></td>
|
||||
<td colspan=2 align=center id=bg1><b>".getLevel($l3, $nation['level'])." : {$gen[$l3]['name']}</b></td>
|
||||
<td colspan=2 align=center id=bg1><b>".getLevel($l2, $nation['level'])." : {$gen[$l2]['name']}</b></td>
|
||||
<td colspan=2 align=center id=bg1><b>".getLevel($l1, $nation['level'])." : {$gen[$l1]['name']}</b></td>
|
||||
<td colspan=2 align=center id=bg1><b>".getLevel($l4, $nation['level'])." : ".($gen[$l4]['name']??'')."</b></td>
|
||||
<td colspan=2 align=center id=bg1><b>".getLevel($l3, $nation['level'])." : ".($gen[$l3]['name']??'')."</b></td>
|
||||
<td colspan=2 align=center id=bg1><b>".getLevel($l2, $nation['level'])." : ".($gen[$l2]['name']??'')."</b></td>
|
||||
<td colspan=2 align=center id=bg1><b>".getLevel($l1, $nation['level'])." : ".($gen[$l1]['name']??'')."</b></td>
|
||||
<td align=center id=bg1>.</td>
|
||||
</tr>
|
||||
";
|
||||
@@ -144,52 +142,51 @@ for($k=0; $k < 2; $k++) {
|
||||
$turndate[$l2] = substr($totaldate[$l2]??'', 11, 5);
|
||||
$turndate[$l1] = substr($totaldate[$l1]??'', 11, 5);
|
||||
$j = $i + 1;
|
||||
$td4 = $turndate[$l4] ?: "-";
|
||||
$td3 = $turndate[$l3] ?: "-";
|
||||
$td2 = $turndate[$l2] ?: "-";
|
||||
$td1 = $turndate[$l1] ?: "-";
|
||||
$tn4 = $turn[$l4][$i] ?? "-";
|
||||
$tn3 = $turn[$l3][$i] ?? "-";
|
||||
$tn2 = $turn[$l2][$i] ?? "-";
|
||||
$tn1 = $turn[$l1][$i] ?? "-";
|
||||
$td4 = $turndate[$l4]??"-";
|
||||
$td3 = $turndate[$l3]??"-";
|
||||
$td2 = $turndate[$l2]??"-";
|
||||
$td1 = $turndate[$l1]??"-";
|
||||
$tn4 = $turn[$l4][$i]??"-";
|
||||
$tn3 = $turn[$l3][$i]??"-";
|
||||
$tn2 = $turn[$l2][$i]??"-";
|
||||
$tn1 = $turn[$l1][$i]??"-";
|
||||
echo "
|
||||
<tr>
|
||||
<td width=28 align=center id=bg0><b>$j</b></td>
|
||||
<td width=58 align=center bgcolor=black><b>$td4</b></td>
|
||||
<td width=173 align=center height=24 style=table-layout:fixed; id=bg2>$tn4</td>
|
||||
<td width=58 align=center bgcolor=black><b>$td3</b></td>
|
||||
<td width=173 align=center height=24 style=table-layout:fixed; id=bg2>$tn3</td>
|
||||
<td width=58 align=center bgcolor=black><b>$td2</b></td>
|
||||
<td width=173 align=center height=24 style=table-layout:fixed; id=bg2>$tn2</td>
|
||||
<td width=58 align=center bgcolor=black><b>$td1</b></td>
|
||||
<td width=173 align=center height=24 style=table-layout:fixed; id=bg2>$tn1</td>
|
||||
<td width=28 align=center id=bg0><b>$j</b></td>
|
||||
<td width=20 align=center id=bg0><b>$j</b></td>
|
||||
<td width=43 align=center bgcolor=black><b>$td4</b></td>
|
||||
<td width=192 align=center height=24 style=table-layout:fixed; id=bg2>$tn4</td>
|
||||
<td width=43 align=center bgcolor=black><b>$td3</b></td>
|
||||
<td width=192 align=center height=24 style=table-layout:fixed; id=bg2>$tn3</td>
|
||||
<td width=43 align=center bgcolor=black><b>$td2</b></td>
|
||||
<td width=192 align=center height=24 style=table-layout:fixed; id=bg2>$tn2</td>
|
||||
<td width=43 align=center bgcolor=black><b>$td1</b></td>
|
||||
<td width=192 align=center height=24 style=table-layout:fixed; id=bg2>$tn1</td>
|
||||
<td width=20 align=center id=bg0><b>$j</b></td>
|
||||
</tr>
|
||||
";
|
||||
if($totaldate[$l4] != "") { $totaldate[$l4] = addTurn($totaldate[$l4], $admin['turnterm']); }
|
||||
if($totaldate[$l3] != "") { $totaldate[$l3] = addTurn($totaldate[$l3], $admin['turnterm']); }
|
||||
if($totaldate[$l2] != "") { $totaldate[$l2] = addTurn($totaldate[$l2], $admin['turnterm']); }
|
||||
if($totaldate[$l1] != "") { $totaldate[$l1] = addTurn($totaldate[$l1], $admin['turnterm']); }
|
||||
if($totaldate[$l4]??'') { $totaldate[$l4] = addTurn($totaldate[$l4], $admin['turnterm']); }
|
||||
if($totaldate[$l3]??'') { $totaldate[$l3] = addTurn($totaldate[$l3], $admin['turnterm']); }
|
||||
if($totaldate[$l2]??'') { $totaldate[$l2] = addTurn($totaldate[$l2], $admin['turnterm']); }
|
||||
if($totaldate[$l1]??'') { $totaldate[$l1] = addTurn($totaldate[$l1], $admin['turnterm']); }
|
||||
}
|
||||
if($k == 0) {
|
||||
echo "<form action=processing.php method=post><tr><td colspan=5 align=right>";
|
||||
echo CoreTurnTable();
|
||||
echo "</td><td colspan=5>
|
||||
<input type={$btn2} style=background-color:".GameConst::$basecolor2.";color:white;width:58;font-size:13px; value='미루기▼' onclick='turn(0)'>
|
||||
<input type={$btn2} style=background-color:".GameConst::$basecolor2.";color:white;width:58;font-size:13px; value='▲당기기' onclick='turn(1)'>
|
||||
<input type={$btn2} style=background-color:".GameConst::$basecolor2.";color:white;width:58px;font-size:13px; value='미루기▼' onclick='turn(0)'>
|
||||
<input type={$btn2} style=background-color:".GameConst::$basecolor2.";color:white;width:58px;font-size:13px; value='▲당기기' onclick='turn(1)'>
|
||||
<br>";
|
||||
CoreCommandTable();
|
||||
echo "<input type={$btn} style=background-color:".GameConst::$basecolor2.";color:white;width:55;font-size:13px; value='실 행'></td></tr></form>";
|
||||
echo "<input type={$btn} style=background-color:".GameConst::$basecolor2.";color:white;width:55px;font-size:13px; value='실 행'></td></tr></form>";
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
+154
-127
@@ -6,6 +6,8 @@ include "func.php";
|
||||
|
||||
$citylist = Util::getReq('citylist', 'int');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
@@ -23,27 +25,43 @@ $query = "select nation,level,spy from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$myNation = MYDB_fetch_array($result);
|
||||
|
||||
$templates = new \League\Plates\Engine('templates');
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>도시정보</title>
|
||||
<title><?=UniqueConst::$serverName?>: 도시정보</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<style>
|
||||
#general_list tr td{
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#general_list tr td:last-child{
|
||||
text-align:left;
|
||||
padding-left:1em;
|
||||
}
|
||||
|
||||
.general_turn_text{
|
||||
font-size:x-small;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>도 시 정 보<br><?=backButton()?></td></tr>
|
||||
</table>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=998>
|
||||
<form name=cityselect method=get>도시선택 :
|
||||
<select name=citylist size=1 style=color:white;background-color:black;width:798;>
|
||||
<select name=citylist size=1 style=color:white;background-color:black;width:798px;>
|
||||
<?php
|
||||
if(!$citylist){
|
||||
$citylist = $me['city'];
|
||||
@@ -157,44 +175,44 @@ if($city['trade'] == 0) {
|
||||
}
|
||||
?>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
</table>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
|
||||
<table align=center width=1000 class='tb_layout bg2'>
|
||||
<tr>
|
||||
<td colspan=12 align=center style=color:"<?=newColor($nation['color'])?>"; bgcolor=<?=$nation['color']?>>【 <?=CityConst::$regionMap[$city['region']]?> | <?=CityConst::$levelMap[$city['level']]?> 】 <?=$city['name']?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center width=48 id=bg1>주민</td>
|
||||
<td align=center width=112><?=$city['pop']?>/<?=$city['pop2']?></td>
|
||||
<td align=center width=48 id=bg1>농업</td>
|
||||
<td align=center width=108><?=$city['agri']?>/<?=$city['agri2']?></td>
|
||||
<td align=center width=48 id=bg1>상업</td>
|
||||
<td align=center width=108><?=$city['comm']?>/<?=$city['comm2']?></td>
|
||||
<td align=center width=48 id=bg1>치안</td>
|
||||
<td align=center width=108><?=$city['secu']?>/<?=$city['secu2']?></td>
|
||||
<td align=center width=48 id=bg1>수비</td>
|
||||
<td align=center width=108><?=$city['def']?>/<?=$city['def2']?></td>
|
||||
<td align=center width=48 id=bg1>성벽</td>
|
||||
<td align=center width=108><?=$city['wall']?>/<?=$city['wall2']?></td>
|
||||
<td align=center width=46 class=bg1>주민</td>
|
||||
<td align=center width=140><?=$city['pop']?>/<?=$city['pop2']?></td>
|
||||
<td align=center width=46 class=bg1>농업</td>
|
||||
<td align=center width=140><?=$city['agri']?>/<?=$city['agri2']?></td>
|
||||
<td align=center width=46 class=bg1>상업</td>
|
||||
<td align=center width=140><?=$city['comm']?>/<?=$city['comm2']?></td>
|
||||
<td align=center width=46 class=bg1>치안</td>
|
||||
<td align=center width=140><?=$city['secu']?>/<?=$city['secu2']?></td>
|
||||
<td align=center width=46 class=bg1>수비</td>
|
||||
<td align=center width=140><?=$city['def']?>/<?=$city['def2']?></td>
|
||||
<td align=center width=46 class=bg1>성벽</td>
|
||||
<td align=center width=140><?=$city['wall']?>/<?=$city['wall2']?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1>민심</td>
|
||||
<td align=center class=bg1>민심</td>
|
||||
<td align=center><?=$city['rate']?></td>
|
||||
<td align=center id=bg1>시세</td>
|
||||
<td align=center class=bg1>시세</td>
|
||||
<td align=center><?=$city['trade']?>%</td>
|
||||
<td align=center id=bg1>인구</td>
|
||||
<td align=center class=bg1>인구</td>
|
||||
<td align=center><?=round($city['pop']/$city['pop2']*100, 2)?>%</td>
|
||||
<td align=center id=bg1>태수</td>
|
||||
<td align=center class=bg1>태수</td>
|
||||
<td align=center><?=$gen1['name']??'-'?></td>
|
||||
<td align=center id=bg1>군사</td>
|
||||
<td align=center class=bg1>군사</td>
|
||||
<td align=center><?=$gen2['name']??'-'?></td>
|
||||
<td align=center id=bg1>시중</td>
|
||||
<td align=center class=bg1>시중</td>
|
||||
<td align=center><?=$gen3['name']??'-'?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1>장수</td>
|
||||
<td align=center class=bg1>장수</td>
|
||||
<td colspan=11>
|
||||
<?php
|
||||
$query = "select name, npc from general where city='{$city['city']}' and nation='{$city['nation']}'"; // 장수 목록
|
||||
@@ -209,6 +227,26 @@ if($city['trade'] == 0) {
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<br>
|
||||
<table align=center class='tb_layout bg0'>
|
||||
<thead>
|
||||
<tr>
|
||||
<td width=64 align=center class=bg1>얼 굴</td>
|
||||
<td width=128 align=center class=bg1>이 름</td>
|
||||
<td width=48 align=center class=bg1>통솔</td>
|
||||
<td width=48 align=center class=bg1>무력</td>
|
||||
<td width=48 align=center class=bg1>지력</td>
|
||||
<td width=78 align=center class=bg1>관 직</td>
|
||||
<td width=28 align=center class=bg1>守</td>
|
||||
<td width=78 align=center class=bg1>병 종</td>
|
||||
<td width=78 align=center class=bg1>병 사</td>
|
||||
<td width=48 align=center class=bg1>훈련</td>
|
||||
<td width=48 align=center class=bg1>사기</td>
|
||||
<td width=280 align=center class=bg1>명 령</td>
|
||||
</tr></thead><tbody class='bg0' id='general_list'>
|
||||
|
||||
<?php
|
||||
$query = "select npc,mode,no,picture,imgsvr,name,injury,leader,power,intel,level,nation,crewtype,crew,train,atmos,term,turn0,turn1,turn2,turn3,turn4,turn5 from general where city='{$city['city']}' order by dedication desc"; // 장수 목록
|
||||
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -221,127 +259,116 @@ foreach(getAllNationStaticInfo() as $nation){
|
||||
$nationlevel[$nation['nation']] = $nation['level'];
|
||||
}
|
||||
|
||||
if($gencount != 0) {
|
||||
echo "
|
||||
<br>
|
||||
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<tr>
|
||||
<td width=64 align=center id=bg1>얼 굴</td>
|
||||
<td width=98 align=center id=bg1>이 름</td>
|
||||
<td width=48 align=center id=bg1>통솔</td>
|
||||
<td width=48 align=center id=bg1>무력</td>
|
||||
<td width=48 align=center id=bg1>지력</td>
|
||||
<td width=78 align=center id=bg1>관 직</td>
|
||||
<td width=28 align=center id=bg1>守</td>
|
||||
<td width=78 align=center id=bg1>병 종</td>
|
||||
<td width=78 align=center id=bg1>병 사</td>
|
||||
<td width=48 align=center id=bg1>훈련</td>
|
||||
<td width=48 align=center id=bg1>사기</td>
|
||||
<td width=310 align=center id=bg1>명 령</td>
|
||||
</tr>";
|
||||
}
|
||||
|
||||
for($j=0; $j < $gencount; $j++) {
|
||||
$general = MYDB_fetch_array($genresult);
|
||||
|
||||
$nationInfo = getNationStaticInfo($general['nation']);
|
||||
|
||||
if($general['nation'] != 0 && $general['nation'] == $myNation['nation']){
|
||||
$ourGeneral = true;
|
||||
}
|
||||
else{
|
||||
$ourGeneral = false;
|
||||
}
|
||||
|
||||
$isNPC = $general['npc']>1;
|
||||
$wounded = $general['injury'];
|
||||
|
||||
|
||||
$name = $general['name'];
|
||||
$nameText = formatName($name, $general['npc']);
|
||||
|
||||
$leadership = $general['leader'];
|
||||
$power = $general['power'];
|
||||
$intel = $general['intel'];
|
||||
|
||||
$leadershipText = formatWounded($leadership, $general['injury']);
|
||||
$powerText = formatWounded($power, $general['injury']);
|
||||
$intelText = formatWounded($intel, $general['injury']);
|
||||
|
||||
$level = $general['level'];
|
||||
$levelText = getLevel($general['level']);
|
||||
|
||||
if($general['level'] == 12) {
|
||||
$lbonus = $nationlevel[$general['nation']] * 2;
|
||||
$leadershipBonus = $nationInfo['level'] * 2;
|
||||
} elseif($general['level'] >= 5) {
|
||||
$lbonus = $nationlevel[$general['nation']];
|
||||
$leadershipBonus = $nationInfo['level'];
|
||||
} else {
|
||||
$lbonus = 0;
|
||||
$leadershipBonus = 0;
|
||||
}
|
||||
if($lbonus > 0) {
|
||||
$lbonus = "<font color=cyan>+{$lbonus}</font>";
|
||||
} else {
|
||||
$lbonus = "";
|
||||
$leadershipBonusText = formatLeadershipBonus($leadershipBonus);
|
||||
|
||||
if($ourGeneral){
|
||||
$defenceMode = $general['mode'];
|
||||
$defenceModeText = formatDefenceMode($defenceMode);
|
||||
$crewType = $general['crewtype'];
|
||||
$crewTypeText = GameUnitConst::byId($crewType)->name;
|
||||
$crew = $general['crew'];
|
||||
$train = $general['train'];
|
||||
$atmos = $general['atmos'];
|
||||
}
|
||||
else{
|
||||
$defenceMode = 0;
|
||||
$defenceModeText = '';
|
||||
$crewType = 0;
|
||||
$crewTypeText = '';
|
||||
$crew = $general['crew'];
|
||||
$train = -1;
|
||||
$atmos = -1;
|
||||
}
|
||||
|
||||
if($general['injury'] > 0) {
|
||||
$leader = intdiv($general['leader'] * (100 - $general['injury']), 100);
|
||||
$power = intdiv($general['power'] * (100 - $general['injury']), 100);
|
||||
$intel = intdiv($general['intel'] * (100 - $general['injury']), 100);
|
||||
$leader = "<font color=red>{$leader}</font>{$lbonus}";
|
||||
$power = "<font color=red>{$power}</font>";
|
||||
$intel = "<font color=red>{$intel}</font>";
|
||||
} else {
|
||||
$leader = "{$general['leader']}{$lbonus}";
|
||||
$power = "{$general['power']}";
|
||||
$intel = "{$general['intel']}";
|
||||
}
|
||||
$nation = $general['nation'];
|
||||
$nationName = $nationInfo['name'];
|
||||
|
||||
if($general['npc'] >= 2) { $general['name'] = "<font color=cyan>{$general['name']}</font>"; }
|
||||
elseif($general['npc'] == 1) { $general['name'] = "<font color=skyblue>{$general['name']}</font>"; }
|
||||
$imageTemp = GetImageURL($general['imgsvr']);
|
||||
echo "
|
||||
<tr>
|
||||
<td align=center height=64></td>
|
||||
<td align=center>{$general['name']}</td>
|
||||
<td align=center>$leader</td>
|
||||
<td align=center>$power</td>
|
||||
<td align=center>$intel</td>
|
||||
<td align=center>".getLevel($general['level'])."</td>";
|
||||
//아국장수이거나 보는 사람이 운영자일때 보여줌
|
||||
if(($general['nation'] != 0 && $general['nation'] == $myNation['nation']) || $session->userGrade >= 5) {
|
||||
switch($general['mode']) {
|
||||
case 0: $mode = "×"; break;
|
||||
case 1: $mode = "○"; break;
|
||||
case 2: $mode = "◎"; break;
|
||||
if($ourGeneral && !$isNPC){
|
||||
$turnText = [];
|
||||
foreach(getTurn($general, 1) as $turnRawIdx=>$turn){
|
||||
$turnIdx = $turnRawIdx+1;
|
||||
$turnText[] = "{$turnIdx} : $turn";
|
||||
}
|
||||
|
||||
echo "
|
||||
<td align=center>$mode</td>
|
||||
<td align=center>".GameUnitConst::byId($general['crewtype'])->name."</td>
|
||||
<td align=center>{$general['crew']}</td>
|
||||
<td align=center>{$general['train']}</td>
|
||||
<td align=center>{$general['atmos']}</td>";
|
||||
if($general['npc'] >= 2) {
|
||||
echo "
|
||||
<td>NPC 장수";
|
||||
} else {
|
||||
echo "
|
||||
<td>
|
||||
<font size=1>";
|
||||
$turn = getTurn($general, 1);
|
||||
|
||||
for($i=0; $i < 4; $i++) {
|
||||
$k = $i+1;
|
||||
echo "
|
||||
$k : $turn[$i]<br>";
|
||||
}
|
||||
echo "
|
||||
</font>";
|
||||
}
|
||||
} elseif($general['nation'] != 0) {
|
||||
echo "
|
||||
<td align=center>?</td>
|
||||
<td align=center>?</td>
|
||||
<td align=center>{$general['crew']}</td>
|
||||
<td align=center>?</td>
|
||||
<td align=center>?</td>
|
||||
<td>【{$nationname[$general['nation']]}】 장수";
|
||||
} else {
|
||||
echo "
|
||||
<td align=center>?</td>
|
||||
<td align=center>?</td>
|
||||
<td align=center>{$general['crew']}</td>
|
||||
<td align=center>?</td>
|
||||
<td align=center>?</td>
|
||||
<td> 재 야";
|
||||
$turnText = join('<br>', $turnText);
|
||||
}
|
||||
|
||||
echo "
|
||||
</td>
|
||||
</tr>";
|
||||
else{
|
||||
$turnText = '';
|
||||
}
|
||||
|
||||
echo $templates->render('cityGeneral', [
|
||||
'ourGeneral'=>$ourGeneral,
|
||||
'isNPC'=>$isNPC,
|
||||
'wounded'=>$wounded,
|
||||
'name'=>$name,
|
||||
'nameText'=>$nameText,
|
||||
'leadership'=>$leadership,
|
||||
'leadershipText'=>$leadershipText,
|
||||
'leadershipBonus'=>$leadershipBonus,
|
||||
'leadershipBonusText'=>$leadershipBonusText,
|
||||
'level'=>$level,
|
||||
'levelText'=>$levelText,
|
||||
'power'=>$power,
|
||||
'powerText'=>$powerText,
|
||||
'intel'=>$intel,
|
||||
'intelText'=>$intelText,
|
||||
'defenceMode'=>$defenceMode,
|
||||
'defenceModeText'=>$defenceModeText,
|
||||
'crewType'=>$crewType,
|
||||
'crewTypeText'=>$crewTypeText,
|
||||
'crew'=>$crew,
|
||||
'train'=>$train,
|
||||
'atmos'=>$atmos,
|
||||
'nation'=>$nation,
|
||||
'nationName'=>$nationName,
|
||||
'turnText'=>$turnText
|
||||
]);
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
+51
-62
@@ -8,14 +8,11 @@ $session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("내무부", 1);
|
||||
|
||||
$query = "select conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,nation,level,con,turntime,belong from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$me = MYDB_fetch_array($result);
|
||||
@@ -24,7 +21,7 @@ $query = "select secretlimit from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
$con = checkLimit($me['con'], $admin['conlimit']);
|
||||
$con = checkLimit($me['con']);
|
||||
if ($con >= 2) {
|
||||
printLimitMsg($me['turntime']);
|
||||
exit();
|
||||
@@ -48,32 +45,30 @@ if ($me['level'] >= 5) {
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>내무부</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<title><?=UniqueConst::$serverName?>: 내무부</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>내 무 부<br><?=backButton()?></td></tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td colspan=9 align=center bgcolor=blue>외 교 관 계</td></tr>
|
||||
<tr>
|
||||
<td width=100 align=center id=bg1>국 가 명</td>
|
||||
<td width=50 align=center id=bg1>국력</td>
|
||||
<td width=40 align=center id=bg1>장수</td>
|
||||
<td width=40 align=center id=bg1>속령</td>
|
||||
<td width=80 align=center id=bg1>상태</td>
|
||||
<td width=60 align=center id=bg1>기간</td>
|
||||
<td width=100 align=center id=bg1>종 료 시 점</td>
|
||||
<td align=center id=bg1>비 고</td>
|
||||
<td width=130 align=center class=bg1>국 가 명</td>
|
||||
<td width=50 align=center class=bg1>국력</td>
|
||||
<td width=40 align=center class=bg1>장수</td>
|
||||
<td width=40 align=center class=bg1>속령</td>
|
||||
<td width=80 align=center class=bg1>상태</td>
|
||||
<td width=60 align=center class=bg1>기간</td>
|
||||
<td width=100 align=center class=bg1>종 료 시 점</td>
|
||||
<td align=center class=bg1>비 고</td>
|
||||
</tr>
|
||||
<?php
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year','month']);
|
||||
|
||||
$query = "select nation,name,color,power,gennum from nation order by power desc";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
@@ -190,9 +185,7 @@ $query = "select nation,name,color,type,msg,gold,rice,bill,rate,scout,war,scoutm
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select gold_rate,rice_rate from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['gold_rate','rice_rate']);
|
||||
// 금 수지
|
||||
$deadIncome = getDeadIncome($nation['nation'], $nation['type'], $admin['gold_rate']);
|
||||
|
||||
@@ -220,65 +213,62 @@ if ($budgetricediff > 0) {
|
||||
}
|
||||
|
||||
?>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<form name=form1 method=post action=c_dipcenter.php>
|
||||
<tr><td colspan=2 height=10></td></tr>
|
||||
<tr><td colspan=2 align=center bgcolor=orange>국 가 방 침 & 임관 권유 메세지</td></tr>
|
||||
<tr><td colspan=2 id=bg1>국가 방침 <input type=text <?=$read?> maxlength=500 style=color:white;background-color:black;width:830; name=msg value='<?=$nation['msg']?>'><input type=<?=$btn?> name=btn value=국가방침></td></tr>
|
||||
<tr><td colspan=2 id=bg1>임관 권유 <input type=text <?=$read?> maxlength=500 style=color:white;background-color:black;width:830; name=scoutmsg value='<?=$nation['scoutmsg']?>'><input type=<?=$btn?> name=btn value=임관권유></td></tr>
|
||||
<tr><td colspan=2>900 x 200px 넘는 크기를 점유할 시 통보없이 제한될 수 있습니다.</td></tr>
|
||||
<tr><td colspan=2 align=center bgcolor=orange>국 가 방 침 & 임관 권유 메시지</td></tr>
|
||||
<tr><td colspan=2 class=bg1>국가 방침 <textarea <?=$read?> maxlength=16000 rows="5" style="color:white;background-color:black;width:830px;" name=msg><?=$nation['msg']?></textarea><input type=<?=$btn?> name=btn value=국가방침></td></tr>
|
||||
<tr><td colspan=2 class=bg1>임관 권유 <input type=text <?=$read?> maxlength=1000 style=color:white;background-color:black;width:830px; name=scoutmsg value='<?=$nation['scoutmsg']?>'><input type=<?=$btn?> name=btn value=임관권유></td></tr>
|
||||
<tr><td colspan=2>870 x 200px 넘는 크기를 점유할 시 통보없이 제한될 수 있습니다.</td></tr>
|
||||
<tr><td colspan=2 height=10></td></tr>
|
||||
<tr><td colspan=2 align=center bgcolor=green>예 산 & 정 책</td></tr>
|
||||
<tr>
|
||||
<td colspan=2>
|
||||
<table width=998 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<?php
|
||||
echo "
|
||||
<table width=998 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td colspan=2 align=center id=bg1>자금 예산</td>
|
||||
<td colspan=2 align=center id=bg1>병량 예산</td>
|
||||
<td colspan=2 align=center class=bg1>자금 예산</td>
|
||||
<td colspan=2 align=center class=bg1>병량 예산</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=248 align=right id=bg1>현 재 </td>
|
||||
<td width=248 align=center>{$nation['gold']}</td>
|
||||
<td width=248 align=right id=bg1>현 재 </td>
|
||||
<td width=248 align=center>{$nation['rice']}</td>
|
||||
<td width=248 align=right class=bg1>현 재 </td>
|
||||
<td width=248 align=center><?=$nation['gold']?></td>
|
||||
<td width=248 align=right class=bg1>현 재 </td>
|
||||
<td width=248 align=center><?=$nation['rice']?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=right id=bg1>단기수입 </td>
|
||||
<td align=center>+$deadIncome</td>
|
||||
<td align=right id=bg1>둔전수입 </td>
|
||||
<td align=center>+$riceincomeList[1]</td>
|
||||
<td align=right class=bg1>단기수입 </td>
|
||||
<td align=center>+<?=$deadIncome?></td>
|
||||
<td align=right class=bg1>둔전수입 </td>
|
||||
<td align=center>+<?=$riceincomeList[1]?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=right id=bg1>세 금 </td>
|
||||
<td align=center>+$goldincomeList[0]</td>
|
||||
<td align=right id=bg1>세 곡 </td>
|
||||
<td align=center>+$riceincomeList[0]</td>
|
||||
<td align=right class=bg1>세 금 </td>
|
||||
<td align=center>+<?=$goldincomeList[0]?></td>
|
||||
<td align=right class=bg1>세 곡 </td>
|
||||
<td align=center>+<?=$riceincomeList[0]?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=right id=bg1>수입 / 지출 </td>
|
||||
<td align=center>+$goldincome / -$goldoutcome</td>
|
||||
<td align=right id=bg1>수입 / 지출 </td>
|
||||
<td align=center>+$riceincome / -$riceoutcome</td>
|
||||
<td align=right class=bg1>수입 / 지출 </td>
|
||||
<td align=center>+<?=$goldincome?> / -<?=$goldoutcome?></td>
|
||||
<td align=right class=bg1>수입 / 지출 </td>
|
||||
<td align=center>+<?=$riceincome?> / -<?=$riceoutcome?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=right id=bg1>국고 예산 </td>
|
||||
<td align=center>{$budgetgold} ({$budgetgolddiff})</td>
|
||||
<td align=right id=bg1>병량 예산 </td>
|
||||
<td align=center>{$budgetrice} ({$budgetricediff})</td>
|
||||
</tr>";
|
||||
?>
|
||||
<td align=right class=bg1>국고 예산 </td>
|
||||
<td align=center><?=$budgetgold?> (<?=$budgetgolddiff?>)</td>
|
||||
<td align=right class=bg1>병량 예산 </td>
|
||||
<td align=center><?=$budgetrice?> (<?=$budgetricediff?>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=right id=bg1>세율 (5 ~ 30%) </td>
|
||||
<td align=right class=bg1>세율 (5 ~ 30%) </td>
|
||||
<td align=center><input type=text <?=$read?> name=rate style=text-align:right;color:white;background-color:black; size=3 maxlength=3 value=<?=$nation['rate']?>>% <input type=<?=$btn?> name=btn value=세율></td>
|
||||
<td align=right id=bg1>봉급 지급율 (20 ~ 200%) </td>
|
||||
<td align=right class=bg1>봉급 지급율 (20 ~ 200%) </td>
|
||||
<td align=center><input type=text <?=$read?> name=bill style=text-align:right;color:white;background-color:black; size=3 maxlength=3 value=<?=$nation['bill']?>>% <input type=<?=$btn?> name=btn value=지급율></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=right id=bg1>기밀 권한 (1 ~ 99년) </td>
|
||||
<td align=right class=bg1>기밀 권한 (1 ~ 99년) </td>
|
||||
<td align=center><input type=text <?=$read?> name=secretlimit style=text-align:right;color:white;background-color:black; size=3 maxlength=3 value=<?=$nation['secretlimit']?>>년 <input type=<?=$btn?> name=btn value=기밀권한></td>
|
||||
<td align=right id=bg1>임관&전쟁 변경 가능</td>
|
||||
<td align=right class=bg1>임관&전쟁 변경 가능</td>
|
||||
<td align=center>무제한</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -307,10 +297,9 @@ if ($nation['war'] == 0) {
|
||||
<tr><td colspan=2 height=10></td></tr>
|
||||
</form>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+39
-64
@@ -8,15 +8,12 @@ $session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("중원정보", 1);
|
||||
|
||||
$query = "select turnterm from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,nation,map from general where owner='{$userID}'";
|
||||
$query = "select no,nation from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
@@ -25,7 +22,6 @@ $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""
|
||||
$nationcount = MYDB_num_rows($result);
|
||||
$nationnum = [];
|
||||
$nationname = [];
|
||||
$nationcolor = [];
|
||||
|
||||
$nationStr = "";
|
||||
$powerStr = "";
|
||||
@@ -41,12 +37,11 @@ for($i=0; $i < $nationcount; $i++) {
|
||||
|
||||
$nationnum[] = $nation['nation'];
|
||||
$nationname[$nation['nation']] = $nation['name'];
|
||||
$nationcolor[$nation['nation']] = $nation['color'];
|
||||
|
||||
$nationStr .= "<font color=cyan>◆</font> <font style=color:".newColor($nation['color']).";background-color:{$nation['color']};>{$nation['name']}</font><br>";
|
||||
$powerStr .= "국력 {$nation['power']}<br>";
|
||||
$genStr .= "장수 {$nation['gennum']}<br>";
|
||||
$cityStr .= "속령 $citycount<br>";
|
||||
$powerStr .= "{$nation['power']}<br>";
|
||||
$genStr .= "{$nation['gennum']}<br>";
|
||||
$cityStr .= "$citycount<br>";
|
||||
}
|
||||
|
||||
$realConflict = [];
|
||||
@@ -56,7 +51,7 @@ foreach ($db->queryAllLists('SELECT city, `name`, conflict FROM city WHERE confl
|
||||
$rawConflict
|
||||
))
|
||||
{
|
||||
$conflict = Json::decode($city['conflict']);
|
||||
$conflict = Json::decode($rawConflict);
|
||||
if (count($conflict)<2) {
|
||||
continue;
|
||||
}
|
||||
@@ -64,9 +59,10 @@ foreach ($db->queryAllLists('SELECT city, `name`, conflict FROM city WHERE confl
|
||||
$sum = array_sum($conflict);
|
||||
|
||||
foreach ($conflict as $nationID=>$killnum) {
|
||||
$conflict['percent'] = round(100*$killnum / $sum, 1);
|
||||
$conflict['name'] = $nationname[$nationID];
|
||||
$conflict['color'] = $nationcolor[$nationID];
|
||||
$conflict[$nationID] = ['killnum'=>$killnum];
|
||||
$conflict[$nationID]['percent'] = round(100*$killnum / $sum, 1);
|
||||
$conflict[$nationID]['name'] = $nationname[$nationID];
|
||||
$conflict[$nationID]['color'] = getNationStaticInfo($nationID)['color'];
|
||||
}
|
||||
|
||||
$realConflict[] = [$cityID, $cityName, $conflict];
|
||||
@@ -79,12 +75,12 @@ foreach ($db->queryAllLists('SELECT city, `name`, conflict FROM city WHERE confl
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>중원정보</title>
|
||||
<script src="../e_lib/jquery-3.2.1.min.js"></script>
|
||||
<script src="../d_shared/common_path.js"></script>
|
||||
<script src="js/common.js"></script>
|
||||
<script src="js/base_map.js"></script>
|
||||
<script src="js/map.js"></script>
|
||||
<title><?=UniqueConst::$serverName?>: 중원 정보</title>
|
||||
<?=WebUtil::printJS('../e_lib/jquery-3.2.1.min.js')?>
|
||||
<?=WebUtil::printJS('../d_shared/common_path.js')?>
|
||||
<?=WebUtil::printJS('js/common.js')?>
|
||||
<?=WebUtil::printJS('js/base_map.js')?>
|
||||
<?=WebUtil::printJS('js/map.js')?>
|
||||
<script>
|
||||
$(function(){
|
||||
|
||||
@@ -95,24 +91,24 @@ $(function(){
|
||||
|
||||
});
|
||||
</script>
|
||||
<link href="css/normalize.css" rel="stylesheet">
|
||||
<link href="../d_shared/common.css" rel="stylesheet">
|
||||
<link href="css/common.css" rel="stylesheet">
|
||||
<link href="css/map.css" rel="stylesheet">
|
||||
<?=WebUtil::printCSS('css/normalize.css')?>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<?=WebUtil::printCSS('css/map.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>중 원 정 보<br><?=backButton()?></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td colspan=<?=$nationcount+1?> align=center bgcolor=blue>외 교 현 황</td></tr>
|
||||
<?php
|
||||
echo "
|
||||
<tr>
|
||||
<td align=center width=108 style=background-color:".GameConst::$basecolor2.";> </td>";
|
||||
<td align=center width=130 style=background-color:".GameConst::$basecolor2.";> </td>";
|
||||
|
||||
if($nationcount != 0) {
|
||||
$width = intdiv(888, $nationcount);
|
||||
@@ -120,7 +116,7 @@ if($nationcount != 0) {
|
||||
|
||||
for($i=0; $i < $nationcount; $i++) {
|
||||
echo "
|
||||
<td align=center width={$width} style=background-color:{$nationcolor[$nationnum[$i]]};color:".newColor($nationcolor[$nationnum[$i]]).";>{$nationname[$nationnum[$i]]}</td>";
|
||||
<td align=center width={$width} style=background-color:".getNationStaticInfo($nationnum[$i])['color'].";color:".newColor(getNationStaticInfo($nationnum[$i])['color']).";>{$nationname[$nationnum[$i]]}</td>";
|
||||
}
|
||||
echo "
|
||||
</tr>";
|
||||
@@ -137,7 +133,7 @@ for($i=0; $i < $nationcount; $i++) {
|
||||
}
|
||||
echo "
|
||||
<tr>
|
||||
<td align=center style=background-color:{$nationcolor[$nationnum[$i]]};color:".newColor($nationcolor[$nationnum[$i]]).";>{$nationname[$nationnum[$i]]}</td>";
|
||||
<td align=center style=background-color:".getNationStaticInfo($nationnum[$i])['color'].";color:".newColor(getNationStaticInfo($nationnum[$i])['color']).";>{$nationname[$nationnum[$i]]}</td>";
|
||||
|
||||
for($k=0; $k < $nationcount; $k++) {
|
||||
if($i == $k) {
|
||||
@@ -180,44 +176,24 @@ for($i=0; $i < $nationcount; $i++) {
|
||||
<?php if ($realConflict) : ?>
|
||||
|
||||
<br>
|
||||
<table
|
||||
align='center'
|
||||
width=1000
|
||||
border=1
|
||||
cellspacing=0
|
||||
cellpadding=0
|
||||
bordercolordark='gray'
|
||||
bordercolorlight='black'
|
||||
style='font-size:13px;word-break:break-all;'
|
||||
class='bg0'
|
||||
>
|
||||
<table align='center' width=1000 class='tb_layout bg0'>
|
||||
<tr><td colspan=2 align=center bgcolor=magenta>분 쟁 현 황</td></tr>
|
||||
<?php foreach($realConflict as list($cityID, $cityName, $conflict)): ?>
|
||||
<tr>
|
||||
<td align=center width=48><?=$cityName?></td>
|
||||
<td width=948>
|
||||
<table
|
||||
border=0
|
||||
cellspacing=0
|
||||
cellpadding=0
|
||||
bordercolordark='gray'
|
||||
bordercolorlight='black'
|
||||
style='font-size:13px;word-break:break-all;'
|
||||
class='bg0'
|
||||
>
|
||||
<td style='width:948px;position:relative;'>
|
||||
<table class='tb_layout bg0' style='width:100%;'>
|
||||
<?php foreach($conflict as $item): ?>
|
||||
<tr>
|
||||
<td
|
||||
width=98
|
||||
width=130
|
||||
align=right
|
||||
style='color:<?=newColor($item['color'])?>;background-color:<?=$item['color']?>;'
|
||||
><?=$item['name']?> </td>
|
||||
<td width=48 align=right><?=$item['percent']?>% </td>
|
||||
<td
|
||||
width='<?=$item['percent']?>%'
|
||||
style='background-color:<?=$item['color']?>;'
|
||||
></td>
|
||||
<td width=*></td>
|
||||
<td width=48 align=right><?=(float)$item['percent']?> % </td>
|
||||
<td width=*><div
|
||||
style='display:inline-block;width:<?=$item['percent']?>%;background-color:<?=$item['color']?>;'
|
||||
> </div></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
@@ -231,7 +207,7 @@ for($i=0; $i < $nationcount; $i++) {
|
||||
<?php endif; ?>
|
||||
|
||||
<br>
|
||||
<table class="bg0" align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style="font-size:13px;word-break:break-all;">
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td colspan=5 align=center bgcolor=green><font size=3>중 원 지 도</font></td>
|
||||
</tr>
|
||||
@@ -239,18 +215,17 @@ for($i=0; $i < $nationcount; $i++) {
|
||||
<td width=698 height=420>
|
||||
<?=getMapHtml()?>
|
||||
</td>
|
||||
<td width=98 valign=top><?=$nationStr?></td>
|
||||
<td width=78 valign=top><?=$powerStr?></td>
|
||||
<td width=58 valign=top><?=$genStr?></td>
|
||||
<td width=58 valign=top><?=$cityStr?></td>
|
||||
<td width=139 valign=top><div style='background-color:#cccccc;color:black;text-align:center'>국명</div><?=$nationStr?></td>
|
||||
<td width=70 valign=top style='text-align:center'><div style='background-color:#cccccc;color:black;'>국력</div><?=$powerStr?></td>
|
||||
<td width=43 valign=top style='text-align:center'><div style='background-color:#cccccc;color:black;'>장수</div><?=$genStr?></td>
|
||||
<td width=40 valign=top style='text-align:center'><div style='background-color:#cccccc;color:black;'>속령</div><?=$cityStr?></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
<table class="bg0" align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style="font-size:13px;word-break:break-all;">
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+14
-16
@@ -4,21 +4,23 @@ namespace sammo;
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$type = Util::getReq('type', 'int');
|
||||
$type = Util::getReq('type', 'int', 7);
|
||||
if ($type <= 0 || $type > 8) {
|
||||
$type = 7;
|
||||
}
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("암행부", 2);
|
||||
|
||||
$query = "select conlimit from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,nation,level,con,turntime,belong from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$me = MYDB_fetch_array($result);
|
||||
@@ -27,7 +29,7 @@ $query = "select level,secretlimit from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
$con = checkLimit($me['con'], $admin['conlimit']);
|
||||
$con = checkLimit($me['con']);
|
||||
if ($con >= 2) {
|
||||
printLimitMsg($me['turntime']);
|
||||
exit();
|
||||
@@ -38,9 +40,6 @@ if ($me['level'] == 0 || ($me['level'] == 1 && $me['belong'] < $nation['secretli
|
||||
exit();
|
||||
}
|
||||
|
||||
if ($type == 0) {
|
||||
$type = 7;
|
||||
}
|
||||
$sel = [];
|
||||
$sel[$type] = "selected";
|
||||
|
||||
@@ -52,14 +51,14 @@ $sel[$type] = "selected";
|
||||
} ?>
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>암행부</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<title><?=UniqueConst::$serverName?>: 암행부</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>암 행 부<br><?=closeButton()?></td></tr>
|
||||
<tr><td><form name=form1 method=post>정렬순서 :
|
||||
<select name=type size=1>
|
||||
@@ -99,7 +98,7 @@ $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect)
|
||||
$gencount = MYDB_num_rows($genresult);
|
||||
|
||||
echo"
|
||||
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=98 align=center id=bg1>이 름</td>
|
||||
<td width=98 align=center id=bg1>통무지</td>
|
||||
@@ -204,10 +203,9 @@ echo "
|
||||
|
||||
?>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+36
-32
@@ -30,9 +30,9 @@ if($meLevel == 0) {
|
||||
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>인사부</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<title><?=UniqueConst::$serverName?>: 인사부</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<script type="text/javascript">
|
||||
function out() {
|
||||
return confirm('정말 추방하시겠습니까?');
|
||||
@@ -42,7 +42,7 @@ function out() {
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>인 사 부<br><?=backButton()?></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
@@ -72,7 +72,7 @@ $query = "select name,picture,firenum from general where nation='{$nation['natio
|
||||
$eagleresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
echo "
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td align=center style=color:".newColor($nation['color'])."; bgcolor={$nation['color']} colspan=6>
|
||||
<font size=5>【 {$nation['name']} 】</font>
|
||||
@@ -81,18 +81,18 @@ echo "
|
||||
";
|
||||
for($i=12; $i >= $lv; $i-=2) {
|
||||
$i1 = $i; $i2 = $i - 1;
|
||||
$imageTemp1 = GetImageURL($level[$i1]['imgsvr']);
|
||||
$imageTemp2 = GetImageURL($level[$i2]['imgsvr']);
|
||||
echo "
|
||||
$imageTemp1 = GetImageURL($level[$i1]['imgsvr']??0);
|
||||
$imageTemp2 = GetImageURL($level[$i2]['imgsvr']??0);
|
||||
?>
|
||||
<tr>
|
||||
<td width=98 align=center id=bg1><font size=4>".getLevel($i1, $nation['level'])."</font></td>
|
||||
<td width=64 height=64 background={$imageTemp1}/{$level[$i1]['picture']}> </td>
|
||||
<td width=332><font size=4>";echo $level[$i1]['name']==''?"-":$level[$i1]['name']; echo " ({$level[$i1]['belong']}년)</font></td>
|
||||
<td width=98 align=center id=bg1><font size=4>".getLevel($i2, $nation['level'])."</font></td>
|
||||
<td width=64 height=64 background={$imageTemp2}/{$level[$i2]['picture']}> </td>
|
||||
<td width=332><font size=4>";echo $level[$i2]['name']==''?"-":$level[$i2]['name']; echo " ({$level[$i2]['belong']}년)</font></td>
|
||||
<td width=98 align=center id=bg1><font size=4><?=getLevel($i1, $nation['level'])?></font></td>
|
||||
<td width=64 height=64 style='background:no-repeat center url("<?=$imageTemp1?>/<?=$level[$i1]['picture']??'default.jpg'?>");background-size:64px;'></td>
|
||||
<td width=332><font size=4><?=$level[$i1]['name']??'-'?>(<?=$level[$i1]['belong']??'-'?>년)</font></td>
|
||||
<td width=98 align=center id=bg1><font size=4><?=getLevel($i2, $nation['level'])?></font></td>
|
||||
<td width=64 height=64 style='background:no-repeat center url("<?=$imageTemp2?>/<?=$level[$i2]['picture']??'default.jpg'?>");background-size:64px;'></td>
|
||||
<td width=332><font size=4><?=$level[$i2]['name']??'-'?>(<?=$level[$i2]['belong']??'-'?>년)</font></td>
|
||||
</tr>
|
||||
";
|
||||
<?php
|
||||
}
|
||||
|
||||
echo "
|
||||
@@ -131,7 +131,7 @@ echo "
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<form method=post action=c_myBossInfo.php>
|
||||
<tr><td colspan=6 height=5></td></tr>
|
||||
<tr><td colspan=2 align=center bgcolor=red>추 방</td></tr>
|
||||
@@ -144,14 +144,14 @@ if($meLevel >= 5 && $nation["l{$meLevel}set"] == 0) {
|
||||
echo "
|
||||
<select name=outlist size=1 style=color:white;background-color:black;>";
|
||||
|
||||
$query = "select no,name,level from general where nation='{$me['nation']}' and level!='12' and no!='{$me['no']}' order by npc,binary(name)";
|
||||
$query = "select no,name,level,leader,power,intel,killturn from general where nation='{$me['nation']}' and level!='12' and no!='{$me['no']}' order by npc,binary(name)";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gencount = MYDB_num_rows($result);
|
||||
|
||||
for($i=0; $i < $gencount; $i++) {
|
||||
$general = MYDB_fetch_array($result);
|
||||
echo "
|
||||
<option value={$general['no']}>{$general['name']}</option>";
|
||||
<option value={$general['no']}>{$general['name']} <small>({$general['leader']}/{$general['power']}/{$general['intel']}, {$general['killturn']}턴)</small></option>";
|
||||
}
|
||||
|
||||
echo "
|
||||
@@ -167,7 +167,7 @@ echo "
|
||||
</tr>
|
||||
</form>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td colspan=4 height=5></td></tr>
|
||||
<tr><td colspan=4 align=center bgcolor=blue>수 뇌 부 임 명</td></tr>
|
||||
<tr>
|
||||
@@ -205,7 +205,10 @@ if($meLevel >= 5 && $nation['l11set'] == 0) {
|
||||
$query = "select name,city from general where nation='{$me['nation']}' and level='11'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
echo "{$general['name']} 【".CityConst::byID($general['city'])->name."】";
|
||||
if($general){
|
||||
echo "{$general['name']} 【".CityConst::byID($general['city'])->name."】";
|
||||
}
|
||||
|
||||
}
|
||||
echo "
|
||||
</td>
|
||||
@@ -214,12 +217,12 @@ echo "
|
||||
";
|
||||
|
||||
$queries = [];
|
||||
$queries[10] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
|
||||
$queries[9] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
|
||||
$queries[8] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
|
||||
$queries[7] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
|
||||
$queries[6] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
|
||||
$queries[5] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
|
||||
$queries[10] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||
$queries[9] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||
$queries[8] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||
$queries[7] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||
$queries[6] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||
$queries[5] = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||
|
||||
for($i=10; $i >= $lv; $i--) {
|
||||
if($i % 2 == 0) { echo "<tr>"; }
|
||||
@@ -257,7 +260,9 @@ for($i=10; $i >= $lv; $i--) {
|
||||
$query = "select name,city from general where nation='{$me['nation']}' and level={$i}";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
echo "{$general['name']} 【".CityConst::byID($general['city'])->name."】";
|
||||
if($general){
|
||||
echo "{$general['name']} 【".CityConst::byID($general['city'])->name."】";
|
||||
}
|
||||
}
|
||||
echo "</td></form>";
|
||||
if($i % 2 == 1) { echo "</tr>"; }
|
||||
@@ -265,7 +270,7 @@ for($i=10; $i >= $lv; $i--) {
|
||||
echo "
|
||||
<tr><td colspan=4>※ <font color=red>빨간색</font>은 현재 임명중인 장수, <font color=orange>노란색</font>은 다른 관직에 임명된 장수, 하얀색은 일반 장수를 뜻합니다.</td></tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td colspan=5 height=5></td></tr>
|
||||
";
|
||||
if($meLevel >= 5) {
|
||||
@@ -304,7 +309,7 @@ if($meLevel >= 5) {
|
||||
<option value=0>____공석____</option>
|
||||
";
|
||||
|
||||
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$goodgenpower."' order by npc,binary(name)";
|
||||
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and power>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$count = MYDB_num_rows($result);
|
||||
for($i=0; $i < $count; $i++) {
|
||||
@@ -358,7 +363,7 @@ if($meLevel >= 5) {
|
||||
<option value=0>____공석____</option>
|
||||
";
|
||||
|
||||
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$goodgenintel."' order by npc,binary(name)";
|
||||
$query = "select no,name,level,city from general where nation='{$me['nation']}' and level!='12' and intel>='".GameConst::$chiefStatMin."' order by npc,binary(name)";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$count = MYDB_num_rows($result);
|
||||
for($i=0; $i < $count; $i++) {
|
||||
@@ -500,10 +505,9 @@ for($j=0; $j < $citycount; $j++) {
|
||||
<tr><td colspan=5>※ <font color=orange>노란색</font>은 변경 불가능, 하얀색은 변경 가능 관직입니다.</td></tr>
|
||||
</table>
|
||||
<br>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+40
-34
@@ -3,6 +3,14 @@ namespace sammo;
|
||||
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$type = Util::getReq('type', 'int', 10);
|
||||
if ($type <= 0 || $type > 12) {
|
||||
$type = 10;
|
||||
}
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
@@ -21,9 +29,6 @@ if ($me['level'] == 0) {
|
||||
exit();
|
||||
}
|
||||
|
||||
if ($type == 0) {
|
||||
$type = 10;
|
||||
}
|
||||
$sel = [$type => "selected"];
|
||||
|
||||
?>
|
||||
@@ -32,14 +37,14 @@ $sel = [$type => "selected"];
|
||||
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>세력도시</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<title><?=UniqueConst::$serverName?>: 세력도시</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>세 력 도 시<br><?=backButton()?></td></tr>
|
||||
<tr><td><form name=form1 method=post>정렬순서 :
|
||||
<select name=type size=1>
|
||||
@@ -66,19 +71,21 @@ $me = MYDB_fetch_array($result);
|
||||
|
||||
$nation = getNationStaticInfo($me['nation']); //국가정보
|
||||
|
||||
$query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}'";
|
||||
|
||||
switch ($type) {
|
||||
case 1: $query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}'"; break;
|
||||
case 2: $query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}' order by pop desc"; break;
|
||||
case 3: $query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}' order by poprate desc"; break;
|
||||
case 4: $query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}' order by rate desc"; break;
|
||||
case 5: $query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}' order by agri desc"; break;
|
||||
case 6: $query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}' order by comm desc"; break;
|
||||
case 7: $query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}' order by secu desc"; break;
|
||||
case 8: $query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}' order by def desc"; break;
|
||||
case 9: $query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}' order by wall desc"; break;
|
||||
case 10: $query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}' order by trade desc"; break;
|
||||
case 11: $query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}' order by region,level desc"; break;
|
||||
case 12: $query = "select *,pop/pop2 as poprate from city where nation='{$me['nation']}' order by level desc, region"; break;
|
||||
case 1: break;
|
||||
case 2: $query .= " order by pop desc"; break;
|
||||
case 3: $query .= " order by poprate desc"; break;
|
||||
case 4: $query .= " order by rate desc"; break;
|
||||
case 5: $query .= " order by agri desc"; break;
|
||||
case 6: $query .= " order by comm desc"; break;
|
||||
case 7: $query .= " order by secu desc"; break;
|
||||
case 8: $query .= " order by def desc"; break;
|
||||
case 9: $query .= " order by wall desc"; break;
|
||||
case 10: $query .= " order by trade desc"; break;
|
||||
case 11: $query .= " order by region,level desc"; break;
|
||||
case 12: $query .= " order by level desc, region"; break;
|
||||
}
|
||||
$cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$citycount = MYDB_num_rows($cityresult);
|
||||
@@ -116,23 +123,23 @@ for ($j=0; $j < $citycount; $j++) {
|
||||
}
|
||||
|
||||
echo "
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
|
||||
<table align=center width=1000 class='tb_layout bg2'>
|
||||
<tr>
|
||||
<td colspan=12 style=color:".newColor($nation['color'])."; bgcolor={$nation['color']}><font size=2>【 ".CityConst::$regionMap[$city['region']]." | ".CityConst::$levelMap[$city['level']]." 】 {$city['name']}</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center width=48 id=bg1>주민</td>
|
||||
<td align=center width=112>{$city['pop']}/{$city['pop2']}</td>
|
||||
<td align=center width=48 id=bg1>농업</td>
|
||||
<td align=center width=108>{$city['agri']}/{$city['agri2']}</td>
|
||||
<td align=center width=48 id=bg1>상업</td>
|
||||
<td align=center width=108>{$city['comm']}/{$city['comm2']}</td>
|
||||
<td align=center width=48 id=bg1>치안</td>
|
||||
<td align=center width=108>{$city['secu']}/{$city['secu2']}</td>
|
||||
<td align=center width=48 id=bg1>수비</td>
|
||||
<td align=center width=108>{$city['def']}/{$city['def2']}</td>
|
||||
<td align=center width=48 id=bg1>성벽</td>
|
||||
<td align=center width=108>{$city['wall']}/{$city['wall2']}</td>
|
||||
<td align=center width=46 id=bg1>주민</td>
|
||||
<td align=center width=140>{$city['pop']}/{$city['pop2']}</td>
|
||||
<td align=center width=46 id=bg1>농업</td>
|
||||
<td align=center width=140>{$city['agri']}/{$city['agri2']}</td>
|
||||
<td align=center width=46 id=bg1>상업</td>
|
||||
<td align=center width=140>{$city['comm']}/{$city['comm2']}</td>
|
||||
<td align=center width=46 id=bg1>치안</td>
|
||||
<td align=center width=140>{$city['secu']}/{$city['secu2']}</td>
|
||||
<td align=center width=46 id=bg1>수비</td>
|
||||
<td align=center width=140>{$city['def']}/{$city['def2']}</td>
|
||||
<td align=center width=46 id=bg1>성벽</td>
|
||||
<td align=center width=140>{$city['wall']}/{$city['wall2']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1>민심</td>
|
||||
@@ -181,11 +188,10 @@ for ($j=0; $j < $citycount; $j++) {
|
||||
}
|
||||
?>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
+13
-13
@@ -4,7 +4,12 @@ namespace sammo;
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$type = Util::getReq('type', 'int');
|
||||
$type = Util::getReq('type', 'int', 1);
|
||||
if($type <= 0 || $type > 15) {
|
||||
$type = 1;
|
||||
}
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
@@ -24,10 +29,6 @@ if($me['level'] == 0) {
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
if($type == 0) {
|
||||
$type = 1;
|
||||
}
|
||||
$sel = [$type => "selected"];
|
||||
|
||||
?>
|
||||
@@ -36,14 +37,14 @@ $sel = [$type => "selected"];
|
||||
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>세력장수</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<title><?=UniqueConst::$serverName?>: 세력장수</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>세 력 장 수<br><?=backButton()?></td></tr>
|
||||
<tr><td><form name=form1 method=post>정렬순서 :
|
||||
<select name=type size=1>
|
||||
@@ -113,7 +114,7 @@ $genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect)
|
||||
$gencount = MYDB_num_rows($genresult);
|
||||
|
||||
echo"
|
||||
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=64 align=center id=bg1>얼 굴</td>
|
||||
<td width=98 align=center id=bg1>이 름</td>
|
||||
@@ -167,7 +168,7 @@ for($j=0; $j < $gencount; $j++) {
|
||||
$imageTemp = GetImageURL($general['imgsvr']);
|
||||
echo "
|
||||
<tr>
|
||||
<td align=center background={$imageTemp}/{$general['picture']} height=64></td>
|
||||
<td align=center style='background:no-repeat center url(\"{$imageTemp}/{$general['picture']}\");background-size:64px;' height=64></td>
|
||||
<td align=center>$name</td>
|
||||
<td align=center>"; echo getLevel($general['level'], $nationLevel); echo "</td>
|
||||
<td align=center>".getDed($general['dedication'])."</td>
|
||||
@@ -190,11 +191,10 @@ for($j=0; $j < $gencount; $j++) {
|
||||
|
||||
?>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
+8
-10
@@ -8,6 +8,7 @@ $session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("세력정보", 1);
|
||||
@@ -26,14 +27,14 @@ if($me['level'] == 0) {
|
||||
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>세력정보</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<title><?=UniqueConst::$serverName?>: 세력정보</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>세 력 정 보<br><?=backButton()?></td></tr>
|
||||
</table>
|
||||
<br>
|
||||
@@ -65,9 +66,7 @@ $query = "select sum(crew) as totcrew,sum(leader)*100 as maxcrew from general wh
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select gold_rate,rice_rate from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['gold_rate','rice_rate']);
|
||||
// 금 수지
|
||||
$deadIncome = getDeadIncome($nation['nation'], $nation['type'], $admin['gold_rate']);
|
||||
|
||||
@@ -89,7 +88,7 @@ if($budgetricediff > 0) { $budgetricediff = "+{$budgetricediff}"; }
|
||||
else { $budgetricediff = "$budgetricediff"; }
|
||||
|
||||
echo "
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
|
||||
<table align=center width=1000 class='tb_layout bg2'>
|
||||
<tr>
|
||||
<td colspan=8 align=center style=color:".newColor($nation['color'])."; bgcolor={$nation['color']}>【 ";echo $me['nation']==0?"공 백 지":"{$nation['name']}";echo " 】</td>
|
||||
</tr>
|
||||
@@ -156,11 +155,10 @@ echo"
|
||||
|
||||
?>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
+52
-34
@@ -5,95 +5,114 @@ include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$btn = Util::getReq('btn');
|
||||
$mode = Util::getReq('mode', 'int', 2);
|
||||
$tnmt = Util::getReq('tnmt', 'int', 1);
|
||||
//$detachNPC = Util::getReq('detachNPC', 'bool');
|
||||
$detachNPC = false;
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
if($mode < 0 || $mode > 2){
|
||||
$mode = 2;
|
||||
}
|
||||
|
||||
if($tnmt < 0 || $tnmt > 1){
|
||||
$tnmt = 1;
|
||||
}
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("내정보", 1);
|
||||
|
||||
$query = "select myset from general where owner='{$userID}'";
|
||||
$query = "select no,npc,mode,tnmt,myset from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
|
||||
if ($me['myset'] > 0) {
|
||||
$submit = 'submit';
|
||||
} else {
|
||||
$submit = 'hidden';
|
||||
}
|
||||
|
||||
if ($btn == "설정저장" && $me['myset'] > 0) {
|
||||
if (($btn == "설정저장" || $detachNPC) && $me['myset'] > 0) {
|
||||
if ($me['myset'] > 1) {
|
||||
$submit = 'submit';
|
||||
} else {
|
||||
$submit = 'hidden';
|
||||
}
|
||||
|
||||
$me['myset'] -= 1;
|
||||
|
||||
$db->update('general', [
|
||||
'myset'=>$db->sqleval('myset-1'),
|
||||
'map'=>$map,
|
||||
'mode'=>$mode,
|
||||
'tnmt'=>$tnmt
|
||||
], 'owner=%i', $userID);
|
||||
}
|
||||
|
||||
$query = "select no,map,mode,tnmt,myset from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$me = MYDB_fetch_array($result);
|
||||
if($me['npc'] == 1 && $detachNPC){
|
||||
$turnterm = $gameStor->turnterm;
|
||||
|
||||
if($turnterm < 10){
|
||||
$targetKillTurn = 30 / $turnterm;
|
||||
}
|
||||
else{
|
||||
$targetKillTurn = 60 / $turnterm;
|
||||
}
|
||||
$db->update('general', [
|
||||
'killturn'=>$targetKillTurn
|
||||
], 'owner=%i AND npc=1', $userID);
|
||||
|
||||
$me['killturn']=$targetKillTurn;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>내정보</title>
|
||||
<link href="../d_shared/common.css" rel="stylesheet">
|
||||
<link rel=stylesheet href="css/common.css">
|
||||
<script type="text/javascript">
|
||||
function go(type) {
|
||||
if(type == 0){
|
||||
location.replace('c_vacation.php');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<title><?=UniqueConst::$serverName?>: 내정보</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>내 정 보<br><?=backButton()?></td></tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=50%>
|
||||
<?php myInfo(); ?>
|
||||
<?php myInfo2(); ?>
|
||||
</td>
|
||||
<td width=50% valign=top>
|
||||
<td width=50% valign=top style="padding-left:4ch;">
|
||||
<form name=form1 action=b_myPage.php method=post>
|
||||
지도수준 【
|
||||
<input type=radio name=map value=0 <?=$me['map']==0?"checked":""; ?>>상세
|
||||
<input type=radio name=map value=1 <?=$me['map']==1?"checked":""; ?>>간단
|
||||
<input type=radio name=map value=2 <?=$me['map']==2?"checked":""; ?>>생략
|
||||
】<br><br>
|
||||
토너먼트 【
|
||||
토너먼트 【
|
||||
<input type=radio name=tnmt value=0 <?=$me['tnmt']==0?"checked":""; ?>>수동참여
|
||||
<input type=radio name=tnmt value=1 <?=$me['tnmt']==1?"checked":""; ?>>자동참여
|
||||
】<br>
|
||||
∞<font color=orange>개막직전 남는자리가 있을경우 랜덤하게 참여합니다.</font><br><br>
|
||||
수비 【
|
||||
∞<font color=orange>개막직전 남는자리가 있을경우 랜덤하게 참여합니다.</font><br><br>
|
||||
수비 【
|
||||
<input type=radio name=mode value=2 <?=$me['mode']==2?"checked":""; ?>>◎(훈사80)
|
||||
<input type=radio name=mode value=1 <?=$me['mode']==1?"checked":""; ?>>○(훈사60)
|
||||
<input type=radio name=mode value=0 <?=$me['mode']==0?"checked":""; ?>>×
|
||||
】<br><br>
|
||||
<input type=<?=$submit?> name=btn style=background-color:<?=GameConst::$basecolor2?>;color:white;width:160;height:30;font-size:13px; value=설정저장><br>
|
||||
∞<font color=orange>설정저장은 이달중 <?=$me['myset']?>회 남았습니다.</font><br><br>
|
||||
<input type=<?=$submit?> name=btn style=background-color:<?=GameConst::$basecolor2?>;color:white;width:160px;height:30px;font-size:13px; value=설정저장><br>
|
||||
∞<font color=orange>설정저장은 이달중 <?=$me['myset']?>회 남았습니다.</font><br><br>
|
||||
</form>
|
||||
휴 가 신 청<br>
|
||||
<input type=button style=background-color:<?=GameConst::$basecolor2?>;color:white;width:160;height:30;font-size:13px; value=휴가신청 onclick='go(0)'>
|
||||
휴 가 신 청<br>
|
||||
<a href="c_vacation.php"><button type="button" style=background-color:<?=GameConst::$basecolor2?>;color:white;width:160px;height:30px;font-size:13px;>휴가 신청</button></a><br><br>
|
||||
<!--빙의 해제용 삭턴 조절<br>
|
||||
<a href="b_myPage.php?detachNPC=1"><button type="button" style=background-color:<?=GameConst::$basecolor2?>;color:white;width:160px;height:30px;font-size:13px;>빙의 해체 요청</button></a>-->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -121,11 +140,10 @@ function go(type) {
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?></td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
@@ -20,23 +20,24 @@ $me = MYDB_fetch_array($result);
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>회의실</title>
|
||||
<title><?=UniqueConst::$serverName?>: 회의실</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<div style='width:1000px;margin:auto'>
|
||||
<table width=1000 class='tb_layout bg0'>
|
||||
<tr><td>회 의 실<br><?=backButton()?></td></tr>
|
||||
<form name=form1 method=post action=c_nationboard.php>
|
||||
<tr><td align=center>
|
||||
제목 <input type=textarea maxlength=50 name=title style=color:white;background-color:black;width:830;>
|
||||
제목 <input type=textarea maxlength=50 name=title style=color:white;background-color:black;width:830px;>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td>
|
||||
<textarea name=msg style=color:white;background-color:black;width:998;height:200;></textarea><br>
|
||||
<textarea name=msg style=color:white;background-color:black;width:998px;height:200px;></textarea><br>
|
||||
<input type=submit value=저장하기>
|
||||
<input type=hidden name=num value=-1>
|
||||
</td></tr>
|
||||
@@ -60,11 +61,11 @@ for($i=0; $i < 20; $i++) {
|
||||
|
||||
?>
|
||||
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
@@ -15,15 +15,15 @@ increaseRefresh("국법", 1);
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>국법</title>
|
||||
<title><?=UniqueConst::$serverName?>: 국법</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=1000 class='tb_layout bg0'>
|
||||
<tr><td>국 법<br><?=backButton()?></td></tr>
|
||||
<tr><td>
|
||||
|
||||
@@ -39,12 +39,12 @@ $nation = MYDB_fetch_array($result);
|
||||
if($me['level'] >= 5) {
|
||||
echo "
|
||||
<form name=form1 method=post action=c_nationrule.php>
|
||||
<textarea name=msg style=color:white;background-color:black;width:998;height:500;>{$nation['rule']}</textarea><br>
|
||||
<textarea name=msg style=color:white;background-color:black;width:998px;height:500px;>{$nation['rule']}</textarea><br>
|
||||
<input type=submit value=저장하기>
|
||||
</form>";
|
||||
} else {
|
||||
echo "
|
||||
<textarea name=msg style=color:white;background-color:black;width:998;height:500; readonly>{$nation['rule']}</textarea><br>";
|
||||
<textarea name=msg style=color:white;background-color:black;width:998px;height:500px; readonly>{$nation['rule']}</textarea><br>";
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -52,7 +52,6 @@ if($me['level'] >= 5) {
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
+26
-27
@@ -8,6 +8,7 @@ $session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("토너먼트", 1);
|
||||
@@ -17,17 +18,16 @@ $query = "select no,tournament,con,turntime from general where owner='{$userID}'
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select conlimit,tournament,phase,tnmt_msg,tnmt_type,develcost,tnmt_trig from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['tournament','phase','tnmt_msg','tnmt_type','develcost','tnmt_trig']);
|
||||
|
||||
$con = checkLimit($me['con'], $admin['conlimit']);
|
||||
$con = checkLimit($me['con']);
|
||||
if ($con >= 2) {
|
||||
printLimitMsg($me['turntime']);
|
||||
exit();
|
||||
}
|
||||
|
||||
switch ($admin['tnmt_type']) {
|
||||
default: throw new \RuntimeException('invalid tnmt_type');
|
||||
case 0: $tnmt_type = "<font color=cyan>전력전</font>"; $tp = "tot"; $tp2 = "종합"; $tp3 = "total"; break;
|
||||
case 1: $tnmt_type = "<font color=cyan>통솔전</font>"; $tp = "ldr"; $tp2 = "통솔"; $tp3 = "leader"; break;
|
||||
case 2: $tnmt_type = "<font color=cyan>일기토</font>"; $tp = "pwr"; $tp2 = "무력"; $tp3 = "power"; break;
|
||||
@@ -42,25 +42,16 @@ case 3: $tnmt_type = "<font color=cyan>설전</font>"; $tp = "itl"; $tp2 = "
|
||||
} ?>
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>토너먼트</title>
|
||||
<style>
|
||||
body { color:white; background-color:black; border-width:1; border-color:gray; }
|
||||
table { font-family:'맑은 고딕'; line-height:110%; }
|
||||
font { font-family:'맑은 고딕'; line-height:110%; }
|
||||
input { font-family:'맑은 고딕'; line-height:110%; height:20px }
|
||||
select { font-family:'굴림'; line-height:100%; }
|
||||
#bg0 { background-image:url(<?=ServConfig::$gameImagePath?>/back_walnut.jpg); }
|
||||
#bg1 { background-image:url(<?=ServConfig::$gameImagePath?>/back_green.jpg); }
|
||||
#bg2 { background-image:url(<?=ServConfig::$gameImagePath?>/back_blue.jpg); }
|
||||
</style>
|
||||
|
||||
<title><?=UniqueConst::$serverName?>: 토너먼트</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=2000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=2000 class='tb_layout bg0'>
|
||||
<tr><td>삼모전 토너먼트<br><?=closeButton()?></td></tr>
|
||||
</table>
|
||||
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center class='tb_layout bg0'>
|
||||
<?php
|
||||
if ($session->userGrade >= 5) {
|
||||
$sel = [];
|
||||
@@ -175,10 +166,16 @@ if ($session->userGrade >= 5) {
|
||||
|
||||
$str1 = getTournament($admin['tournament']);
|
||||
$str2 = getTournamentTime();
|
||||
if($str2){
|
||||
$str2 = ', '.$str2;
|
||||
}
|
||||
$str3 = getTournamentTerm();
|
||||
if($str3){
|
||||
$str3 = ', '.$str3;
|
||||
}
|
||||
?>
|
||||
<tr><td colspan=8>운영자 메세지 : <font color=orange size=5><?=$admin['tnmt_msg']?></font></td></tr>
|
||||
<tr><td colspan=8 align=center><font color=white size=6><?=$tnmt_type?> (<?=$str1.", ".$str2.", ".$str3?>)</font></td></tr>
|
||||
<tr><td colspan=8 align=center><font color=white size=6><?=$tnmt_type?> (<?=$str1.$str2.$str3?>)</font></td></tr>
|
||||
<tr><td colspan=8 align=center id=bg2><font color=magenta size=5>16강 승자전</font></td></tr>
|
||||
<tr><td height=10 colspan=8 align=center></td></tr>
|
||||
<?php
|
||||
@@ -186,7 +183,7 @@ $str3 = getTournamentTerm();
|
||||
echo "
|
||||
<tr>
|
||||
<td colspan=8>
|
||||
<table align=center width=2000 border=0 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=2000 class='bg0 mimic_flex'>
|
||||
<tr align=center>";
|
||||
|
||||
$query = "select npc,name,win from tournament where grp>=60 order by grp, grp_no";
|
||||
@@ -219,6 +216,7 @@ for ($i=0; $i < 1; $i++) {
|
||||
$cent[$i] = "<font color=white>";
|
||||
}
|
||||
$line = [];
|
||||
$gen = [];
|
||||
for ($i=0; $i < 2; $i++) {
|
||||
//FIXME: 다시 작성. null인 경우엔 어쩌려고?
|
||||
$general = MYDB_fetch_array($result) ?? [
|
||||
@@ -395,9 +393,11 @@ for ($i=0; $i < 16; $i++) {
|
||||
echo"
|
||||
</tr>";
|
||||
|
||||
$query = "select tournament,bet0,bet1,bet2,bet3,bet4,bet5,bet6,bet7,bet8,bet9,bet10,bet11,bet12,bet13,bet14,bet15,bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15 as bet from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$betting = MYDB_fetch_array($result);
|
||||
$betting = $gameStor->getValues(['tournament','bet0','bet1','bet2','bet3','bet4','bet5','bet6','bet7','bet8','bet9','bet10','bet11','bet12','bet13','bet14','bet15']);
|
||||
$betting['bet'] = 0;
|
||||
for($i=0;$i<16;$i+=1){
|
||||
$betting['bet'] += $betting['bet'.$i];
|
||||
}
|
||||
$bet = [];
|
||||
for ($i=0; $i < 16; $i++) {
|
||||
if($betting['bet'] == 0){
|
||||
@@ -436,7 +436,7 @@ for ($i=0; $i < 8; $i++) {
|
||||
$grp = $i + 10;
|
||||
echo "
|
||||
<td>
|
||||
<table align=center width=250 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=250 class='tb_layout bg0'>
|
||||
<tr><td colspan=9 style=background-color:black;>{$num[$i]}조</td></tr>
|
||||
<tr id=bg1><td align=center>순</td><td align=center>장수</td><td align=center>{$tp2}</td><td align=center>경</td><td align=center>승</td><td align=center>무</td><td align=center>패</td><td align=center>점</td><td align=center>득</td></tr>";
|
||||
|
||||
@@ -462,7 +462,7 @@ for ($i=0; $i < 8; $i++) {
|
||||
$grp = $i;
|
||||
echo "
|
||||
<td>
|
||||
<table align=center width=250 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=250 class='tb_layout bg0'>
|
||||
<tr><td colspan=9 style=background-color:black;>{$num[$i]}조</td></tr>
|
||||
<tr id=bg1><td align=center>순</td><td align=center>장수</td><td align=center>{$tp2}</td><td align=center>경</td><td align=center>승</td><td align=center>무</td><td align=center>패</td><td align=center>점</td><td align=center>득</td></tr>";
|
||||
|
||||
@@ -498,10 +498,9 @@ if ($admin['tournament'] == 2 || $admin['tournament'] == 3) {
|
||||
</font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<table align=center width=2000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table align=center width=2000 class='tb_layout bg0'>
|
||||
<tr><td><?=closeButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+24
-22
@@ -25,24 +25,24 @@ $troopcount = MYDB_num_rows($result);
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<title>부대편성</title>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
|
||||
<title><?=UniqueConst::$serverName?>: 부대편성</title>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<div style="width:1000px;margin:auto;">
|
||||
<table width=1000 class='tb_layout bg0'>
|
||||
<tr><td>부 대 편 성<br><?=backButton()?></td></tr>
|
||||
</table>
|
||||
<form name=form1 method=post action=c_troop.php>
|
||||
<table align=center border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td align=center width=64 id=bg1>선 택</td>
|
||||
<td align=center width=98 id=bg1>부 대 정 보</td>
|
||||
<td align=center width=64 id=bg1>부 대 장</td>
|
||||
<td align=center width=662 id=bg1 style=table-layout:fixed;word-break:break-all;>장 수</td>
|
||||
<td align=center width=98 id=bg1 style=table-layout:fixed;word-break:break-all;>부대장행동</td>
|
||||
<td width=64 class='bg1 center'>선 택</td>
|
||||
<td width=130 class='bg1 center'>부 대 정 보</td>
|
||||
<td width=100 class='bg1 center'>부 대 장</td>
|
||||
<td width=576 class='bg1 center' style=table-layout:fixed;word-break:break-all;>장 수</td>
|
||||
<td width=130 class='bg1 center' style=table-layout:fixed;word-break:break-all;>부대장행동</td>
|
||||
</tr>
|
||||
<?php
|
||||
for($i=0; $i < $troopcount; $i++) {
|
||||
@@ -82,8 +82,8 @@ for($i=0; $i < $troopcount; $i++) {
|
||||
<tr>
|
||||
<td align=center rowspan=2><input "; echo $i==0?"checked ":""; echo "type=radio name=troop value='{$troop['troop']}'></td>
|
||||
<td align=center >{$troop['name']}<br>【 $cityname 】</td>
|
||||
<td height=64 background={$imageTemp}/{$picture}> </td>
|
||||
<td rowspan=2 width=662>$genlist</td>
|
||||
<td height=64 style='background:no-repeat center url(\"{$imageTemp}/{$picture}\");background-size:64px;'> </td>
|
||||
<td rowspan=2 width=62>$genlist</td>
|
||||
<td rowspan=2>$turn</td>
|
||||
</tr>
|
||||
<tr><td align=center><font size=2>【턴】".substr($turntime, 14)."</font></td><td align=center><font size=1>$name</font></td></tr>
|
||||
@@ -93,8 +93,8 @@ for($i=0; $i < $troopcount; $i++) {
|
||||
<tr>
|
||||
<td align=center rowspan=2> </td>
|
||||
<td align=center >{$troop['name']}<br>【 $cityname 】</td>
|
||||
<td height=64 background={$imageTemp}/{$picture}> </td>
|
||||
<td rowspan=2 width=662>$genlist</td>
|
||||
<td height=64 style='background:no-repeat center url(\"{$imageTemp}/{$picture}\");background-size:64px;'> </td>
|
||||
<td rowspan=2 width=576>$genlist</td>
|
||||
<td rowspan=2>";
|
||||
|
||||
if($troop['no'] == $me['no']) {
|
||||
@@ -102,7 +102,7 @@ for($i=0; $i < $troopcount; $i++) {
|
||||
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$genCount = MYDB_num_rows($genresult);
|
||||
echo "
|
||||
<select name=gen size=3 style=color:white;background-color:black;font-size:13px;width:98;>";
|
||||
<select name=gen size=3 style=color:white;background-color:black;font-size:13px;width:128px;>";
|
||||
for($k=0; $k < $genCount; $k++) {
|
||||
$general = MYDB_fetch_array($genresult);
|
||||
echo "
|
||||
@@ -110,7 +110,7 @@ for($i=0; $i < $troopcount; $i++) {
|
||||
}
|
||||
echo "
|
||||
</select><br>
|
||||
<input type=submit name=btn value='부 대 추 방' style=width:100;height:25;>";
|
||||
<input type=submit name=btn value='부 대 추 방' style=width:130px;height:25px;>";
|
||||
} else {
|
||||
echo $turn;
|
||||
}
|
||||
@@ -123,7 +123,9 @@ for($i=0; $i < $troopcount; $i++) {
|
||||
}
|
||||
}
|
||||
|
||||
if($me['troop'] == 0) {
|
||||
if ($troopcount == 0) {
|
||||
}
|
||||
else if($me['troop'] == 0) {
|
||||
echo"
|
||||
<input type=submit name=btn value='부 대 가 입'>";
|
||||
} else {
|
||||
@@ -137,10 +139,10 @@ echo "
|
||||
<br>";
|
||||
|
||||
echo "
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=80 id=bg1>부 대 명</td>
|
||||
<td width=100><input type=text style=color:white;background-color:black; size=12 maxlength=6 name=name></td>";
|
||||
<td width=130><input type=text style=color:white;background-color:black; size=18 maxlength=9 name=name></td>";
|
||||
if($me['troop'] == 0) {
|
||||
echo "
|
||||
<td><input type=submit name=btn value='부 대 창 설'></td>";
|
||||
@@ -153,12 +155,12 @@ echo "
|
||||
</table>";
|
||||
|
||||
?>
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table width=1000 class='tb_layout bg0'>
|
||||
<tr><td><?=backButton()?></td></tr>
|
||||
<tr><td><?=banner()?> </td></tr>
|
||||
</table>
|
||||
</form>
|
||||
<?php PrintElapsedTime(); ?>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
+10
-6
@@ -24,18 +24,22 @@ $term = Util::getReq('term', 'int');
|
||||
$stuff = Util::getReq('stuff', 'int');
|
||||
$sel = Util::getReq('sel', 'int');
|
||||
|
||||
$msg = '';
|
||||
$msg2 = '';
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
increaseRefresh("입찰", 1);
|
||||
|
||||
$query = "select turnterm from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$turnterm = $gameStor->turnterm;
|
||||
|
||||
$query = "select no,name,gold,rice,special from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
||||
@@ -51,7 +55,7 @@ $bidCount = MYDB_num_rows($result);
|
||||
|
||||
$btCount = $tradeCount + $bidCount;
|
||||
|
||||
$unit = $admin['turnterm'] * 60;
|
||||
$unit = $turnterm * 60;
|
||||
|
||||
$amount = Util::round($amount / 10) * 10;
|
||||
$cost = Util::round($cost / 10) * 10;
|
||||
@@ -87,11 +91,11 @@ if ($btn == "판매") {
|
||||
$msg = "ㆍ<span class='ev_warning'>시작판매가는 50% ~ 200% 이어야 합니다.</span>";
|
||||
$valid = 0;
|
||||
}
|
||||
if ($topv < $amount*1.1 || $topv > $amount * 2) {
|
||||
if ($topv * 10 < $amount * 11 || $topv > $amount * 2) {
|
||||
$msg = "ㆍ<span class='ev_warning'>즉시판매가는 110% ~ 200% 이어야 합니다.</span>";
|
||||
$valid = 0;
|
||||
}
|
||||
if ($topv < $cost*1.1) {
|
||||
if ($topv * 10 < $cost * 11) {
|
||||
$msg = "ㆍ<span class='ev_warning'>즉시판매가는 시작판매가의 110% 이상이어야 합니다.</span>";
|
||||
$valid = 0;
|
||||
}
|
||||
|
||||
+10
-4
@@ -7,6 +7,7 @@ include "func.php";
|
||||
|
||||
// $btn0~15, $gold0~15
|
||||
|
||||
//FIXME: 으악!!!!! 왜?! idx를 지정하고 gold를 지정하라고!
|
||||
$betTarget = -1;
|
||||
$betGold = -1;
|
||||
for($i=0;$i<16;$i++){
|
||||
@@ -21,6 +22,11 @@ for($i=0;$i<16;$i++){
|
||||
}
|
||||
}
|
||||
|
||||
if($betGold == -1){
|
||||
extractMissingPostToGlobals();
|
||||
}
|
||||
|
||||
|
||||
if($betTarget < 0 || $betGold < 10 || $betGold > 1000){
|
||||
header('Location: b_betting.php');
|
||||
exit();
|
||||
@@ -32,10 +38,11 @@ $session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
increaseRefresh("베팅", 1);
|
||||
|
||||
$tournament = $db->queryFirstField('SELECT tournament FROM game LIMIT 1');
|
||||
$tournament = $gameStor->tournament;
|
||||
if($tournament != 6) {
|
||||
header('Location: b_betting.php');
|
||||
exit();
|
||||
@@ -53,9 +60,8 @@ if($betGold + 500 <= $myGold && $betGold + $oldBet <= 1000 && $betGold + $totalB
|
||||
"bet{$betTarget}"=>$db->sqleval("bet{$betTarget} + %i", $betGold),
|
||||
'betgold'=>$db->sqleval('betgold + %i', $betGold)
|
||||
], 'owner = %i', $userID);
|
||||
$db->update('game', [
|
||||
"bet{$betTarget}"=>$db->sqleval("bet{$betTarget} + %i", $betGold)
|
||||
], true);
|
||||
|
||||
$gameStor->setValue("bet{$betTarget}", $gameStor->getValue("bet{$betTarget}") + $betGold);//TODO: +로 증가하는 storage값은 별도로 분리
|
||||
}
|
||||
|
||||
header('location: b_betting.php');
|
||||
|
||||
+35
-30
@@ -6,10 +6,12 @@ include "func.php";
|
||||
|
||||
$title = Util::getReq('title');
|
||||
$msg = Util::getReq('msg');
|
||||
$num = Util::getReq('num');
|
||||
$num = Util::getReq('num', 'int');
|
||||
$reply = Util::getReq('reply');
|
||||
// $title, $msg, $num
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
@@ -17,39 +19,42 @@ $userID = Session::getUserID();
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
if(getBlockLevel() != 1 && getBlockLevel() != 3) {
|
||||
$query = "select no,nation from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
if (getBlockLevel() == 1 || getBlockLevel() == 3) {
|
||||
header('location:b_chiefboard.php');
|
||||
die();
|
||||
}
|
||||
|
||||
$title = str_replace("|", " ", $title);
|
||||
$msg = str_replace("|", " ", $msg);
|
||||
$reply = str_replace("|", " ", $reply);
|
||||
$title = trim($title);
|
||||
$msg = trim($msg);
|
||||
$reply = trim($reply);
|
||||
$query = "select no,nation from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$nation = getNation($me['nation']);
|
||||
$title = str_replace("|", " ", $title);
|
||||
$msg = str_replace("|", " ", $msg);
|
||||
$reply = str_replace("|", " ", $reply);
|
||||
$title = trim($title);
|
||||
$msg = trim($msg);
|
||||
$reply = trim($reply);
|
||||
|
||||
//새글 추가시
|
||||
if($num == -1 && $title != "" && $msg != "") {
|
||||
$num = $nation['coreindex'] + 1;
|
||||
if($num >= 20) { $num = 0; }
|
||||
$msg = $title."|".$msg;
|
||||
$msg = addslashes(SQ2DQ($msg));
|
||||
$date = date('Y-m-d H:i:s');
|
||||
$query = "update nation set coreboard{$num}='$msg',coreboard{$num}_who='{$me['no']}',coreboard{$num}_when='$date' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update nation set coreindex='$num' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
//$num에 댓글시
|
||||
} elseif($num >= 0 && $reply != "") {
|
||||
$newmsg = $nation["coreboard{$num}"]."|".$me['no']."|".$reply;
|
||||
$newmsg = addslashes(SQ2DQ($newmsg));
|
||||
$nation = getNation($me['nation']);
|
||||
|
||||
$query = "update nation set coreboard{$num}='$newmsg' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
//새글 추가시
|
||||
if($num == -1 && $title != "" && $msg != "") {
|
||||
$num = $nation['coreindex'] + 1;
|
||||
if($num >= 20) { $num = 0; }
|
||||
$msg = $title."|".$msg;
|
||||
$msg = addslashes(SQ2DQ($msg));
|
||||
$date = date('Y-m-d H:i:s');
|
||||
$query = "update nation set coreboard{$num}='$msg',coreboard{$num}_who='{$me['no']}',coreboard{$num}_when='$date' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update nation set coreindex='$num' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
//$num에 댓글시
|
||||
} elseif($num >= 0 && $reply != "") {
|
||||
$newmsg = $nation["coreboard{$num}"]."|".$me['no']."|".$reply;
|
||||
$newmsg = addslashes(SQ2DQ($newmsg));
|
||||
|
||||
$query = "update nation set coreboard{$num}='$newmsg' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
header('location:b_chiefboard.php');
|
||||
+36
-30
@@ -12,16 +12,15 @@ $rate = Util::getReq('rate', 'int');
|
||||
$bill = Util::getReq('bill', 'int');
|
||||
$secretlimit = Util::getReq('secretlimit', 'int');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select no,nation,level from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
$me = $db->queryFirstRow('SELECT `no`,nation,`level` FROM general WHERE `owner`=%i', $userID);
|
||||
|
||||
//내가 수뇌부이어야함
|
||||
if($me['level'] < 5) {
|
||||
@@ -30,40 +29,47 @@ if($me['level'] < 5) {
|
||||
}
|
||||
|
||||
if($btn == "국가방침") {
|
||||
$msg = BadTag2Code(addslashes(SQ2DQ($msg)));
|
||||
$query = "update nation set msg='$msg' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$msg = mb_substr($msg, 0, 16384);
|
||||
//$msg = StringUtil::
|
||||
$db->update('nation', [
|
||||
'msg'=>WebUtil::htmlPurify($msg)
|
||||
], 'nation=%i',$me['nation']);
|
||||
} elseif($btn == "임관권유") {
|
||||
$scoutmsg = BadTag2Code(addslashes(SQ2DQ($scoutmsg)));
|
||||
$query = "update nation set scoutmsg='$scoutmsg' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$scoutmsg = mb_substr($scoutmsg, 0, 1000);
|
||||
$db->update('nation', [
|
||||
'scoutmsg'=>WebUtil::htmlPurify($scoutmsg)
|
||||
], 'nation=%i',$me['nation']);
|
||||
} elseif($btn == "세율") {
|
||||
if($rate < 5) { $rate = 5; }
|
||||
if($rate > 30) { $rate = 30; }
|
||||
$query = "update nation set rate='$rate' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$rate = Util::valueFit($rate, 5, 30);
|
||||
$db->update('nation', [
|
||||
'rate'=>$rate,
|
||||
], 'nation=%i', $me['nation']);
|
||||
} elseif($btn == "지급율") {
|
||||
if($bill < 20) { $bill = 20; }
|
||||
if($bill > 200) { $bill = 200; }
|
||||
$query = "update nation set bill='$bill' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$bill = Util::valueFit($bill, 20, 200);
|
||||
$db->update('nation', [
|
||||
'bill'=>$bill
|
||||
], 'nation=%i',$me['nation']);
|
||||
} elseif($btn == "기밀권한") {
|
||||
if($secretlimit < 1) { $secretlimit = 1; }
|
||||
if($secretlimit > 99) { $secretlimit = 99; }
|
||||
$query = "update nation set secretlimit='$secretlimit' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$secretlimit = Util::valueFit($secretlimit, 1, 99);
|
||||
$db->update('nation', [
|
||||
'secretlimit'=>$secretlimit
|
||||
], 'nation=%i',$me['nation']);
|
||||
} elseif($btn == "임관 금지") {
|
||||
$query = "update nation set scout='1' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$db->update('nation', [
|
||||
'scout'=>1
|
||||
], 'nation=%i',$me['nation']);
|
||||
} elseif($btn == "임관 허가") {
|
||||
$query = "update nation set scout='0' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$db->update('nation', [
|
||||
'scout'=>0
|
||||
], 'nation=%i',$me['nation']);
|
||||
} elseif($btn == "전쟁 금지") {
|
||||
$query = "update nation set war='1' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$db->update('nation', [
|
||||
'war'=>1
|
||||
], 'nation=%i',$me['nation']);
|
||||
} elseif($btn == "전쟁 허가") {
|
||||
$query = "update nation set war='0' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$db->update('nation', [
|
||||
'war'=>0
|
||||
], 'nation=%i',$me['nation']);
|
||||
}
|
||||
|
||||
header('location:b_dipcenter.php');
|
||||
|
||||
+9
-21
@@ -14,6 +14,8 @@ $double = Util::getReq('double', 'int', 0);
|
||||
$third = Util::getReq('third', 'int', 0);
|
||||
$fourth = Util::getReq('fourth', 'int', 0);
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
if(!$turn){
|
||||
$turn = [0];
|
||||
}
|
||||
@@ -33,9 +35,6 @@ if($command < 0) { $command = 0; }
|
||||
if($double < 0) { $double = 0; }
|
||||
if($third < 0) { $third = 0; }
|
||||
if($fourth < 0) { $fourth = 0; }
|
||||
$double = Util::round($double);
|
||||
$third = Util::round($third);
|
||||
$fourth = Util::round($fourth);
|
||||
if($command > 99) { $command = 0; }
|
||||
if($double > 9999) { $double = 9999; }
|
||||
if($third > 9999) { $third = 9999; }
|
||||
@@ -45,12 +44,8 @@ $comStr = EncodeCommand($fourth, $third, $double, $command);
|
||||
|
||||
// 건국
|
||||
if($command == 46) {
|
||||
$name = addslashes(SQ2DQ($name));
|
||||
$name = str_replace("|", "", $name);
|
||||
$name = str_replace(" ", "", $name);
|
||||
$name = str_replace(" ", "뷁", $name);
|
||||
$name = StringUtil::neutralize($name);
|
||||
if($name == "") { $name = "무명"; }
|
||||
$name = StringUtil::subStringForWidth($name, 0, 12);
|
||||
|
||||
$db->update('general', [
|
||||
'makenation'=>$name
|
||||
@@ -73,15 +68,12 @@ if($command == 53) {
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
if($me['level'] >= 5) {
|
||||
$nationname = addslashes(SQ2DQ($nationname));
|
||||
$nationname = str_replace("|", "", $nationname);
|
||||
$nationname = str_replace(" ", "", $nationname);
|
||||
$nationname = str_replace(" ", "뷁", $nationname);
|
||||
$nationname = StringUtil::neutralize($nationname, 18);
|
||||
if($nationname == "") { $nationname = "무명"; }
|
||||
$nationname = StringUtil::subStringForWidth($nationname, 0, 12);
|
||||
|
||||
$query = "update general set makenation='{$nationname}' where level>=5 and nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$db->update('general', [
|
||||
'makenation'=>$nationname
|
||||
], 'level>=5 and nation=%i', $me['nation']);
|
||||
|
||||
$count = count($turn);
|
||||
$str = "type=type";
|
||||
@@ -102,11 +94,7 @@ if($command == 61) {
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
if($me['level'] >= 5) {
|
||||
$note = addslashes(SQ2DQ($note));
|
||||
$note = str_replace("|", "", $note);
|
||||
$note = str_replace(" ", "", $note);
|
||||
$note = str_replace(" ", "뷁", $note);
|
||||
$note = StringUtil::subStringForWidth($note, 0, 90);
|
||||
$note = StringUtil::neutralize($note, 90);
|
||||
|
||||
$query = "update diplomacy set reserved='{$note}' where me='{$me['nation']}' and you='$double'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
+64
-30
@@ -11,16 +11,17 @@ $genlist = Util::getReq('genlist', 'int');
|
||||
$outlist = Util::getReq('outlist', 'int');
|
||||
$citylist = Util::getReq('citylist', 'int');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select startyear,year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['startyear','year','month','scenario']);
|
||||
|
||||
$query = "select no,nation,level from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -37,23 +38,38 @@ if($meLevel < 5){
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
if($btn == "임명") {
|
||||
$query = "select no,nation,level,leader,power,intel from general where no='$genlist'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
if($genlist==0){
|
||||
$general = [];
|
||||
}
|
||||
else{
|
||||
$general = $db->queryFirstRow('SELECT `no`,nation,`level`,leader,`power`,intel FROM general WHERE no = %i', $genlist);
|
||||
}
|
||||
|
||||
if($genlist != 0 && !$general){
|
||||
header('location:b_myBossInfo.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
//임명할사람이 군주이면 불가, 내가 수뇌부이어야함, 공석아닌때는 국가가 같아야함
|
||||
if($general['level'] == 12 || $meLevel < 5 || ($general['nation'] != $me['nation'] && $genlist != 0)) {
|
||||
|
||||
if($meLevel < 5 || ($genlist != 0 && $general['nation'] != $me['nation']) || ($genlist != 0 && $general['level'] == 12)) {
|
||||
header('location:b_myBossInfo.php');
|
||||
exit();
|
||||
}
|
||||
} elseif($btn == "추방") {
|
||||
if(!$outlist){
|
||||
header('location:b_myBossInfo.php');
|
||||
exit();
|
||||
}
|
||||
$query = "select no,name,gold,rice,nation,troop,level,npc,picture,imgsvr from general where no='$outlist'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
|
||||
if(!$general){
|
||||
header('location:b_myBossInfo.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
//추방할사람이 군주이면 불가, 내가 수뇌부이어야함, 공석아닌때는 국가가 같아야함
|
||||
if($general['level'] == 12 || $meLevel < 5 || ($general['nation'] != $me['nation'] && $outlist != 0)) {
|
||||
header('location:b_myBossInfo.php');
|
||||
@@ -62,13 +78,13 @@ if($btn == "임명") {
|
||||
}
|
||||
|
||||
//나와 대상 장수는 국가가 같아야 함
|
||||
if($me['nation'] != $general['nation']){
|
||||
if($genlist != 0 && $me['nation'] != $general['nation']){
|
||||
header('location:b_myBossInfo.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
if($btn == "추방") {
|
||||
$query = "select name,l{$meLevel}set,chemi from nation where nation='{$me['nation']}'";
|
||||
$query = "select name,l{$meLevel}set,chemi,color from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
@@ -97,21 +113,24 @@ if($btn == "추방") {
|
||||
}
|
||||
|
||||
if($dipcount1 > 0) {
|
||||
$alllog[] = "<C>●</>{$admin['month']}월:통합에 반대하던 <Y>{$general['name']}</>(이)가 <D><b>{$nation['name']}</b></>에서 <R>숙청</>당했습니다.";
|
||||
$josaYi = JosaUtil::pick($general['name'], '이');
|
||||
$alllog[] = "<C>●</>{$admin['month']}월:통합에 반대하던 <Y>{$general['name']}</>{$josaYi} <D><b>{$nation['name']}</b></>에서 <R>숙청</>당했습니다.";
|
||||
$log[] = "<C>●</>통합에 반대하다가 <D><b>{$nation['name']}</b></>에서 <R>숙청</>당했습니다.";
|
||||
|
||||
// 재야로, 국가 무소속으로
|
||||
$query = "update general set level=0,nation=0,belong=0,makelimit='12',gold='{$general['gold']}',rice='{$general['rice']}' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} elseif($dipcount2 > 0) {
|
||||
$alllog[] = "<C>●</>{$admin['month']}월:합병에 반대하던 <Y>{$general['name']}</>(이)가 <D><b>{$nation['name']}</b></>에서 <R>숙청</>당했습니다.";
|
||||
$josaYi = JosaUtil::pick($general['name'], '이');
|
||||
$alllog[] = "<C>●</>{$admin['month']}월:합병에 반대하던 <Y>{$general['name']}</>{$josaYi} <D><b>{$nation['name']}</b></>에서 <R>숙청</>당했습니다.";
|
||||
$log[] = "<C>●</>합병에 반대하다가 <D><b>{$nation['name']}</b></>에서 <R>숙청</>당했습니다.";
|
||||
|
||||
// 재야로, 국가 무소속으로
|
||||
$query = "update general set level=0,nation=0,belong=0,makelimit='12',gold='{$general['gold']}',rice='{$general['rice']}' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} else {
|
||||
$alllog[] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 <D><b>{$nation['name']}</b></>에서 <R>추방</>당하였습니다.";
|
||||
$josaYi = JosaUtil::pick($general['name'], '이');
|
||||
$alllog[] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} <D><b>{$nation['name']}</b></>에서 <R>추방</>당하였습니다.";
|
||||
$log[] = "<C>●</><D><b>{$nation['name']}</b></>에서 <R>추방</>당하였습니다.";
|
||||
|
||||
// 재야로, 국가 무소속으로, 명성/공헌 N*10%감소
|
||||
@@ -153,7 +172,24 @@ if($btn == "추방") {
|
||||
case 4: $str = "날 추방했으니 그 복수로 적국에 정보를 팔아 넘겨야겠군요. 그럼 이만."; break;
|
||||
}
|
||||
|
||||
PushMsg(1, 0, $general['picture'], $general['imgsvr'], "{$general['name']}:", $nation['color'], $nation['name'], $nation['color'], $str);
|
||||
$src = new MessageTarget(
|
||||
$general['no'],
|
||||
$general['name'],
|
||||
$general['nation'],
|
||||
$nation['name'],
|
||||
$nation['color'],
|
||||
GetImageURL($general['imgsvr'], $general['picture'])
|
||||
);
|
||||
$msg = new Message(
|
||||
Message::MSGTYPE_PUBLIC,
|
||||
$src,
|
||||
$src,
|
||||
$str,
|
||||
new \DateTime(),
|
||||
new \DateTime('9999-12-31'),
|
||||
[]
|
||||
);
|
||||
$msg->send();
|
||||
}
|
||||
|
||||
//국가 기술력 그대로
|
||||
@@ -161,7 +197,7 @@ if($btn == "추방") {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gencount = MYDB_num_rows($result);
|
||||
$gennum = $gencount;
|
||||
if($gencount < 10) $gencount = 10;
|
||||
if($gencount < GameConst::$initialNationGenLimit) $gencount = GameConst::$initialNationGenLimit;
|
||||
|
||||
$nation['chemi'] -= 1;
|
||||
if($nation['chemi'] < 0) { $nation['chemi'] = 0; }
|
||||
@@ -179,13 +215,11 @@ if($btn == "추방") {
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
pushGeneralHistory($general, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D>{$nation['name']}</>에서 추방됨");
|
||||
list($year, $month) = $gameStor->getValuesAsArray(['year','month']);
|
||||
pushGeneralHistory($general, "<C>●</>{$year}년 {$month}월:<D>{$nation['name']}</>에서 추방됨");
|
||||
|
||||
pushGenLog($general, $log);
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
pushGeneralPublicRecord($alllog, $year, $month);
|
||||
}
|
||||
header('location:b_myBossInfo.php');
|
||||
die();
|
||||
@@ -204,7 +238,7 @@ if($btn == "임명" && $level >= 5 && $level <= 11) {
|
||||
$nation['chemi'] -= 1;
|
||||
if($nation['chemi'] < 0) { $nation['chemi'] = 0; }
|
||||
|
||||
$query = "update nation set chemi='{$nation['chemi']}' where nation='{$general['nation']}'";
|
||||
$query = "update nation set chemi='{$nation['chemi']}' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
//기존 장수 일반으로
|
||||
@@ -213,12 +247,12 @@ if($btn == "임명" && $level >= 5 && $level <= 11) {
|
||||
if($genlist != 0) {
|
||||
$valid = 0;
|
||||
switch($level) {
|
||||
case 10: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
|
||||
case 9: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
|
||||
case 8: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
|
||||
case 7: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
|
||||
case 6: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
|
||||
case 5: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
|
||||
case 10: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||
case 9: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||
case 8: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||
case 7: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||
case 6: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||
case 5: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||
default: $valid = 1; break;
|
||||
}
|
||||
if($valid == 1) {
|
||||
@@ -270,8 +304,8 @@ if($btn == "임명" && $level >= 2 && $level <= 4 && $citylist > 0) {
|
||||
if($genlist != 0) {
|
||||
$valid = 0;
|
||||
switch($level) {
|
||||
case 4: if($general['power'] >= GameConst::$goodgenpower) { $valid = 1; } break;
|
||||
case 3: if($general['intel'] >= GameConst::$goodgenintel) { $valid = 1; } break;
|
||||
case 4: if($general['power'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||
case 3: if($general['intel'] >= GameConst::$chiefStatMin) { $valid = 1; } break;
|
||||
default: $valid = 1; break;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,9 @@ include "func.php";
|
||||
$title = Util::getReq('title');
|
||||
$msg = Util::getReq('msg');
|
||||
$num = Util::getReq('num', 'int');
|
||||
$reply = Util::getReq('reply');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
|
||||
@@ -4,6 +4,9 @@ namespace sammo;
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
// $msg
|
||||
$msg = Util::getReq('msg');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
|
||||
+108
-56
@@ -6,23 +6,25 @@ include "func.php";
|
||||
// $btn, $msg
|
||||
$btn = Util::getReq('btn');
|
||||
$msg = Util::getReq('msg');
|
||||
$gen = Util::getReq('gen', 'int');
|
||||
$sel = Util::getReq('sel', 'int');
|
||||
|
||||
//관리자용
|
||||
$auto = Util::getReq('gen', 'int');
|
||||
$auto = Util::getReq('auto', 'int');
|
||||
$type = Util::getReq('type', 'int');
|
||||
$gen = Util::getReq('gen', 'int');
|
||||
$sel = Util::getReq('sel', 'int');
|
||||
$trig = Util::getReq('trig', 'int');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select tournament,phase,tnmt_type,develcost from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['tournament','phase','tnmt_type','develcost']);
|
||||
|
||||
$query = "select no,name,tournament from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -35,22 +37,69 @@ case 2: $tp = "power"; $tp2 = "일기토"; $tp3 = "power"; break;
|
||||
case 3: $tp = "intel"; $tp2 = "설전"; $tp3 = "intel"; break;
|
||||
}
|
||||
|
||||
if($me['tournament'] == 1 && $session->userGrade < 5) {
|
||||
header('locatoin:b_tournament.php');
|
||||
if($btn == '참가') {
|
||||
$query = "select no,name,npc,leader,power,intel,explevel,gold,horse,weap,book from general where no='{$me['no']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
|
||||
//{$admin['develcost']}원 참가비
|
||||
if($general['gold'] < $admin['develcost']) {
|
||||
header('location:b_tournament.php');
|
||||
exit(1);
|
||||
}
|
||||
$general['gold'] -= $admin['develcost'];
|
||||
|
||||
$query = "select grp from tournament where grp<10 group by grp having count(*)=8";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$grpCount = MYDB_num_rows($result);
|
||||
$occupied = [];
|
||||
for($i=0; $i < $grpCount; $i++) {
|
||||
$grp = MYDB_fetch_array($result);
|
||||
$occupied[$grp['grp']] = 1;
|
||||
}
|
||||
$map = [];
|
||||
for($i=0; $i < 8; $i++) {
|
||||
if(!Util::array_get($occupied[$i])) {
|
||||
$map[] = $i;
|
||||
}
|
||||
}
|
||||
|
||||
if($grpCount < 8) {
|
||||
$grp = $map[rand() % count($map)];
|
||||
$query = "select grp from tournament where grp='$grp'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$grpCount = MYDB_num_rows($result);
|
||||
$query = "insert into tournament (no, npc, name, ldr, pwr, itl, lvl, grp, grp_no, h, w, b) values ('{$general['no']}', '{$general['npc']}', '{$general['name']}', '{$general['leader']}', '{$general['power']}', '{$general['intel']}', '{$general['explevel']}', '$grp', '$grpCount', '{$general['horse']}', '{$general['weap']}', '{$general['book']}')";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update general set tournament=1,gold='{$general['gold']}' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
$query = "select grp from tournament where grp<10 group by grp having count(*)=8";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$grpCount = MYDB_num_rows($result);
|
||||
if($grpCount >= 8) {
|
||||
$gameStor->tournament = 2;
|
||||
$gameStor->phase = 0;
|
||||
}
|
||||
header('location:b_tournament.php');
|
||||
die();
|
||||
}
|
||||
|
||||
if($session->userGrade < 5) {
|
||||
header('location:b_tournament.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
if($btn == "자동개최설정" && $session->userGrade >= 5) {
|
||||
$db->update('game', ['tnmt_trig'=>$trig], true);
|
||||
} elseif($btn == "개최" && $session->userGrade >= 5) {
|
||||
if($btn == "자동개최설정") {
|
||||
$gameStor->tnmt_trig = $trig;
|
||||
} elseif($btn == "개최") {
|
||||
startTournament($auto, $type);
|
||||
} elseif($btn == "중단" && $session->userGrade >= 5) {
|
||||
$db->update('game', [
|
||||
'tnmt_auto'=>0,
|
||||
'tournament'=>0,
|
||||
'phase'=>0
|
||||
], true);
|
||||
} elseif((($btn == "투입" || $btn == "무명투입" || $btn == "쪼렙투입" || $btn == "일반투입" || $btn == "굇수투입" || $btn == "랜덤투입") && $session->userGrade >= 5) || $btn == "참가") {
|
||||
} elseif($btn == "중단") {
|
||||
$gameStor->tnmt_auto = 0;
|
||||
$gameStor->tournament = 0;
|
||||
$gameStor->phase = 0;
|
||||
} elseif($btn == "투입" || $btn == "무명투입" || $btn == "쪼렙투입" || $btn == "일반투입" || $btn == "굇수투입" || $btn == "랜덤투입") {
|
||||
if($btn == "투입") {
|
||||
$query = "select no,name,npc,leader,power,intel,explevel,gold,horse,weap,book from general where no='$gen'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -100,17 +149,6 @@ if($btn == "자동개최설정" && $session->userGrade >= 5) {
|
||||
$general = MYDB_fetch_array($result);
|
||||
$general['gold'] -= $admin['develcost'];
|
||||
//참가
|
||||
} else {
|
||||
$query = "select no,name,npc,leader,power,intel,explevel,gold,horse,weap,book from general where no='{$me['no']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
|
||||
//{$admin['develcost']}원 참가비
|
||||
if($general['gold'] < $admin['develcost']) {
|
||||
header('location:b_tournament.php');
|
||||
exit(1);
|
||||
}
|
||||
$general['gold'] -= $admin['develcost'];
|
||||
}
|
||||
|
||||
$query = "select grp from tournament where grp<10 group by grp having count(*)=8";
|
||||
@@ -123,7 +161,7 @@ if($btn == "자동개최설정" && $session->userGrade >= 5) {
|
||||
}
|
||||
$map = [];
|
||||
for($i=0; $i < 8; $i++) {
|
||||
if($occupied[$i] == 0) {
|
||||
if(!isset($occupied[$i]) || $occupied[$i] == 0) {
|
||||
$map[] = $i;
|
||||
}
|
||||
}
|
||||
@@ -143,10 +181,11 @@ if($btn == "자동개최설정" && $session->userGrade >= 5) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$grpCount = MYDB_num_rows($result);
|
||||
if($grpCount >= 8) {
|
||||
$query = "update game set tournament=2, phase=0";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->tournament=2;
|
||||
$gameStor->phase=0;
|
||||
}
|
||||
} elseif(($btn == "쪼렙전부투입" || $btn == "일반전부투입" || $btn == "굇수전부투입" || $btn == "랜덤전부투입") && $session->userGrade >= 5) {
|
||||
|
||||
} elseif($btn == "쪼렙전부투입" || $btn == "일반전부투입" || $btn == "굇수전부투입" || $btn == "랜덤전부투입") {
|
||||
$z = 0;
|
||||
$code = [];
|
||||
for($i=0; $i < 8; $i++) {
|
||||
@@ -199,30 +238,43 @@ if($btn == "자동개최설정" && $session->userGrade >= 5) {
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
$query = "update game set tournament=2, phase=0";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} elseif($btn == "무명전부투입" && $session->userGrade >= 5) { fillLowGenAll();
|
||||
} elseif($btn == "예선" && $session->userGrade >= 5) { qualify($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "예선전부" && $session->userGrade >= 5) { qualifyAll($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "추첨" && $session->userGrade >= 5) { selection($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "추첨전부" && $session->userGrade >= 5) { selectionAll($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "본선" && $session->userGrade >= 5) { finallySingle($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "본선전부" && $session->userGrade >= 5) { finallyAll($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "배정" && $session->userGrade >= 5) { final16set();
|
||||
} elseif($btn == "베팅마감" && $session->userGrade >= 5) {
|
||||
$gameStor->tournament = 2;
|
||||
$gameStor->phase = 0;
|
||||
} elseif($btn == "무명전부투입") {
|
||||
fillLowGenAll();
|
||||
} elseif($btn == "예선") {
|
||||
qualify($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "예선전부") {
|
||||
qualifyAll($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "추첨") {
|
||||
selection($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "추첨전부") {
|
||||
selectionAll($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "본선") {
|
||||
finallySingle($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "본선전부") {
|
||||
finallyAll($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "배정") {
|
||||
final16set();
|
||||
} elseif($btn == "베팅마감") {
|
||||
$dt = date("Y-m-d H:i:s", time() + 60);
|
||||
$query = "update game set tournament='7',phase='0',tnmt_time='$dt'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} elseif($btn == "16강" && $session->userGrade >= 5) { finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 16);
|
||||
} elseif($btn == "8강" && $session->userGrade >= 5) { finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 8);
|
||||
} elseif($btn == "4강" && $session->userGrade >= 5) { finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 4);
|
||||
} elseif($btn == "결승" && $session->userGrade >= 5) { finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 2);
|
||||
} elseif($btn == "포상" && $session->userGrade >= 5) { setGift($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "회수" && $session->userGrade >= 5) { setRefund();
|
||||
} elseif($btn == "메시지" && $session->userGrade >= 5) {
|
||||
$msg = addslashes(SQ2DQ($msg));
|
||||
$query = "update game set tnmt_msg='$msg'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->tournament=7;
|
||||
$gameStor->phase=0;
|
||||
$gameStor->tnmt_time = $dt;
|
||||
} elseif($btn == "16강") {
|
||||
finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 16);
|
||||
} elseif($btn == "8강") {
|
||||
finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 8);
|
||||
} elseif($btn == "4강") {
|
||||
finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 4);
|
||||
} elseif($btn == "결승") {
|
||||
finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 2);
|
||||
} elseif($btn == "포상") {
|
||||
setGift($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
|
||||
} elseif($btn == "회수") {
|
||||
setRefund();
|
||||
} elseif($btn == "메시지") {
|
||||
$gameStor->tnmt_msg = $msg;
|
||||
}
|
||||
|
||||
header('location:b_tournament.php');
|
||||
+6
-3
@@ -6,8 +6,11 @@ include "func.php";
|
||||
// $btn, $name, $troop
|
||||
$btn = Util::getReq('btn');
|
||||
$name = Util::getReq('name');
|
||||
$gen = Util::getReq('gen', 'int');
|
||||
$troop = Util::getReq('troop', 'int');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = $session::getUserID();
|
||||
@@ -17,7 +20,6 @@ $db = DB::db();
|
||||
$me = $db->queryFirstRow('SELECT `no`, nation, troop FROM general WHERE `owner`=%i', $userID);
|
||||
|
||||
$name = trim($name);
|
||||
$name = addslashes(SQ2DQ($name));
|
||||
if($btn == "부 대 창 설" && $name != "" && $me['troop'] == 0) {
|
||||
$db->insert('troop',[
|
||||
'name'=>$name,
|
||||
@@ -38,8 +40,9 @@ if($btn == "부 대 창 설" && $name != "" && $me['troop'] == 0) {
|
||||
'troop'=>0
|
||||
], 'no=%i AND troop=(SELECT troop FROM troop WHERE no = %i)', $gen, $me['no']);
|
||||
} elseif($btn == "부 대 가 입" && $troop != 0) {
|
||||
$troop = $db->queryFirstField('SELECT troop FROM troop WHERE no = %i', $troop);
|
||||
if($troop){
|
||||
$troopLeader = $db->queryFirstField('SELECT `no` FROM troop WHERE troop=%i', $troop);
|
||||
$troopLeaderNation = $db->queryFirstField('SELECT `nation` FROM `general` WHERE `no`=%i AND `nation`=%i', $troopLeader, $me['nation']);
|
||||
if($troopLeaderNation){
|
||||
$db->update('general', [
|
||||
'troop'=>$troop
|
||||
], 'no=%i', $me['no']);
|
||||
|
||||
+3
-8
@@ -8,16 +8,11 @@ $session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
$query = "select killturn from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$killturn = $gameStor->killturn;
|
||||
|
||||
$admin['killturn'] *= 3;
|
||||
|
||||
$query = "update general set killturn='{$admin['killturn']}' where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$db->update('general', ['killturn'=>$killturn*3], 'owner=%i', $userID);
|
||||
|
||||
|
||||
header('location:b_myPage.php');
|
||||
|
||||
+27
-36
@@ -10,16 +10,20 @@ $comment = Util::getReq('comment');
|
||||
$title = Util::getReq('title');
|
||||
$str = Util::getReq('str');
|
||||
|
||||
extractMissingPostToGlobals();
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$isVoteAdmin = in_array('vote', $session->acl[DB::prefix()]??[]);
|
||||
$isVoteAdmin |= $session->userGrade >= 5;
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select develcost,vote,votecomment from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['develcost', 'cost', 'vote_title', 'vote', 'votecomment']);
|
||||
|
||||
$query = "select no,vote,name,nation,horse,weap,book,item,npc from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -34,28 +38,19 @@ if($btn == "투표" && $me['vote'] == 0 && $sel > 0) {
|
||||
$log = uniqueItem($me, $log, 1);
|
||||
pushGenLog($me, $log);
|
||||
}
|
||||
else if($btn == "댓글" && $comment != "") {
|
||||
$comment = str_replace("|", " ", $comment);
|
||||
$comment = str_replace(":", " ", $comment);
|
||||
else if($btn == "댓글" && trim($comment) != "") {
|
||||
$comment = trim($comment);
|
||||
$comment = addslashes(SQ2DQ($comment));
|
||||
|
||||
$nation = getNationStaticInfo($me['nation']);
|
||||
if($nation == null) {
|
||||
$nation = ['name' => "재야"];
|
||||
|
||||
if(!$admin['votecomment']){
|
||||
$admin['votecomment'] = [];
|
||||
}
|
||||
|
||||
if($admin['votecomment'] != "") { $admin['votecomment'] .= "|"; }
|
||||
$admin['votecomment'] .= "{$nation['name']}:{$me['name']}:{$comment}";
|
||||
|
||||
$query = "update game set votecomment='{$admin['votecomment']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
|
||||
|
||||
$admin['votecomment'][] = [$nation['name'],$me['name'],$comment];
|
||||
$gameStor->votecomment = $admin['votecomment'];
|
||||
}
|
||||
|
||||
if($session->userGrade < 5){
|
||||
if(!$isVoteAdmin){
|
||||
header('location:a_vote.php');
|
||||
die();
|
||||
}
|
||||
@@ -63,22 +58,21 @@ if($session->userGrade < 5){
|
||||
|
||||
if($btn == "수정") {
|
||||
if($title != "") {
|
||||
$vote = explode("|", $admin['vote']);
|
||||
$vote[0] = addslashes(SQ2DQ($title));
|
||||
$admin['vote'] = implode("|", $vote);
|
||||
$query = "update game set vote='{$admin['vote']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->vote_title = WebUtil::htmlPurify($title);
|
||||
}
|
||||
} elseif($btn == "추가") {
|
||||
if($str != "") {
|
||||
$str = addslashes(SQ2DQ($str));
|
||||
$admin['vote'] .= "|{$str}";
|
||||
$query = "update game set vote='{$admin['vote']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
if(!$admin['vote']){
|
||||
$admin['vote'] = [];
|
||||
}
|
||||
$admin['vote'][] = WebUtil::htmlPurify($str);
|
||||
$gameStor->vote=$admin['vote'];
|
||||
}
|
||||
} elseif($btn == "리셋") {
|
||||
$query = "update game set voteopen=1,vote='',votecomment=''";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->voteopen=1;
|
||||
$gameStor->vote=['-'];
|
||||
$gameStor->vote_title = '-';
|
||||
$gameStor->votecomment=[];
|
||||
|
||||
$query = "update general set vote='0'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -86,14 +80,11 @@ if($btn == "수정") {
|
||||
$query = "update general set newvote='1' where vote=0";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} elseif($btn == "숨김") {
|
||||
$query = "update game set voteopen=0";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->voteopen = 0;
|
||||
} elseif($btn == "전체통계만") {
|
||||
$query = "update game set voteopen=1";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->voteopen = 1;
|
||||
} elseif($btn == "전부") {
|
||||
$query = "update game set voteopen=2";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->voteopen = 2;
|
||||
}
|
||||
|
||||
header('location:a_vote.php');
|
||||
+16
-17
@@ -4,10 +4,9 @@ namespace sammo;
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$session = Session::getInstance()->setReadOnly();
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
@@ -15,11 +14,11 @@ $connect=$db->get();
|
||||
<head>
|
||||
<title>커맨드리스트</title>
|
||||
<meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=utf-8'>
|
||||
<link rel='stylesheet' href='../d_shared/common.css' type='text/css'>
|
||||
<link rel='stylesheet' href='css/common.css' type='text/css'>
|
||||
<?=WebUtil::printCSS('../d_shared/common.css')?>
|
||||
<?=WebUtil::printCSS('css/common.css')?>
|
||||
<script type="text/javascript">
|
||||
<?php
|
||||
if(!$session->isLoggedIn()){
|
||||
if(!$session->isGameLoggedIn()){
|
||||
echo 'window.parent.location.href = "../";';
|
||||
}
|
||||
?>
|
||||
@@ -67,22 +66,22 @@ myCommandList();
|
||||
|
||||
function myCommandList() {
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$date = date('Y-m-d H:i:s');
|
||||
|
||||
// 명령 목록
|
||||
$query = "select year,month,turnterm from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year','month','turnterm']);
|
||||
|
||||
$query = "select no,turntime,term,turn0,turn1,turn2,turn3,turn4,turn5,turn6,turn7,turn8,turn9,turn10,turn11,turn12,turn13,turn14,turn15,turn16,turn17,turn18,turn19,turn20,turn21,turn22,turn23 from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
$me = $db->queryFirstRow("SELECT `no`,turntime,term,turn0,turn1,turn2,turn3,turn4,turn5,turn6,turn7,turn8,turn9,turn10,turn11,turn12,turn13,turn14,turn15,turn16,turn17,turn18,turn19,turn20,turn21,turn22,turn23 FROM general WHERE `owner`=%s", $userID);
|
||||
if(!$me){
|
||||
echo "로그인 되어있지 않습니다.";
|
||||
return;
|
||||
}
|
||||
$turn = getTurn($me, 2);
|
||||
|
||||
echo "<table width=300 height=700 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
|
||||
echo "<table width=300 height=700 class='tb_layout bg2'>
|
||||
<form name=clock>
|
||||
<tr>
|
||||
<td colspan=4 align=center id=bg0><b>- 명령 목록 - <input value='$date' type=text name=clock size=19 style=background-color:black;color:white;border-style:none;></b></td>
|
||||
@@ -105,10 +104,10 @@ function myCommandList() {
|
||||
$turndate = substr($totaldate,11, 5);
|
||||
echo "
|
||||
<tr height=28>
|
||||
<td width=30 align=center height=24 id=bg0><b>$j</b></td>
|
||||
<td width=75 align=center height=24 id=bg1><b>{$year}年 {$month}月</b></td>
|
||||
<td width=45 align=center bgcolor=black><b>$turndate</b></td>
|
||||
<td width=137 align=center height=24 style=table-layout:fixed;>$turn[$i]</td>
|
||||
<td width=24 align=center height=24 id=bg0><b>$j</b></td>
|
||||
<td width=71 align=center height=24 id=bg1><b>{$year}年 {$month}月</b></td>
|
||||
<td width=42 align=center bgcolor=black><b>$turndate</b></td>
|
||||
<td width=150 align=center height=24 style=table-layout:fixed;>$turn[$i]</td>
|
||||
</tr>";
|
||||
$month++;
|
||||
$totaldate = addTurn($totaldate, $admin['turnterm']);
|
||||
|
||||
+94
-3
@@ -3,13 +3,67 @@
|
||||
html, body{
|
||||
background-color:black;
|
||||
color:white;
|
||||
line-height:1.3;
|
||||
}
|
||||
|
||||
table { font-family:'맑은 고딕'; line-height:110%; }
|
||||
font { font-family:'맑은 고딕'; line-height:110%; }
|
||||
input { font-family:'맑은 고딕'; line-height:110%; height:20px }
|
||||
table { font-family:'맑은 고딕'; }
|
||||
font { font-family:'맑은 고딕'; }
|
||||
input { font-family:'맑은 고딕'; font-size:13px; }
|
||||
select { font-family:'굴림'; line-height:100%; }
|
||||
|
||||
.center{
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
table.mimic_flex{
|
||||
border-collapse: collapse;
|
||||
border:none;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
.mimic_flex td, .mimic_flex th {
|
||||
border:none !important;
|
||||
padding: 0px;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
|
||||
table.tb_layout {
|
||||
border-collapse: collapse;
|
||||
padding: 0px;
|
||||
font-size: 13px;
|
||||
word-break: break-all;
|
||||
font-family: '맑은 고딕';
|
||||
}
|
||||
|
||||
.tb_layout td, .tb_layout th {
|
||||
border:solid 1px gray;
|
||||
padding: 0px;
|
||||
word-break: break-all;
|
||||
font-family: '맑은 고딕';;
|
||||
}
|
||||
|
||||
div.bar_out{
|
||||
position:relative;
|
||||
border-top:solid 1px #888888;
|
||||
border-bottom:solid 1px #333333;
|
||||
padding:0;
|
||||
margin:0;
|
||||
width:100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
div.bar_out div{
|
||||
position:absolute;
|
||||
left:0;
|
||||
top:0;
|
||||
height:100%;
|
||||
}
|
||||
|
||||
div.bar_out div.bar_in{
|
||||
width:100%;
|
||||
}
|
||||
|
||||
/* */
|
||||
|
||||
.ev_warning{
|
||||
@@ -76,6 +130,7 @@ select { font-family:'굴림'; line-height:100%; }
|
||||
|
||||
.small_war_log .crew_plate{
|
||||
color:orangered;
|
||||
font-size:90%;
|
||||
}
|
||||
|
||||
.t_date{
|
||||
@@ -126,3 +181,39 @@ select { font-family:'굴림'; line-height:100%; }
|
||||
float:left;
|
||||
}
|
||||
|
||||
.tooltip{
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tooltip .tooltiptext {
|
||||
visibility: hidden;
|
||||
width: 120px;
|
||||
background-color: #555;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
border-radius: 6px;
|
||||
padding: 5px 0;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
bottom: 125%;
|
||||
left: 50%;
|
||||
margin-left: -60px;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
|
||||
.tooltip .tooltiptext::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 50%;
|
||||
margin-left: -5px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
border-color: #555 transparent transparent transparent;
|
||||
}
|
||||
|
||||
.tooltip:hover .tooltiptext {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
|
||||
.rankView {
|
||||
width:1100px;
|
||||
margin:auto;
|
||||
position:relative;
|
||||
font-size:13px;
|
||||
}
|
||||
|
||||
.rankView h3{
|
||||
text-align:center;
|
||||
margin:0;
|
||||
padding:2px;
|
||||
border-bottom:1px solid gray;
|
||||
}
|
||||
|
||||
.rankView ul{
|
||||
list-style:none;
|
||||
margin:0;
|
||||
padding:0;
|
||||
box-sizing: border-box;
|
||||
margin-top:-1px;
|
||||
margin-bottom:-1px;
|
||||
}
|
||||
|
||||
.rankView li{
|
||||
display:inline-block;
|
||||
vertical-align: top;
|
||||
width:110px;
|
||||
height:149px;
|
||||
text-align:center;
|
||||
border-right:1px solid gray;
|
||||
border-top:1px solid gray;
|
||||
margin:0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.rankView li.no_value{
|
||||
height:128px;
|
||||
}
|
||||
|
||||
.rankView li.has_server {
|
||||
height:168px;
|
||||
}
|
||||
|
||||
.rankView li.no_value.has_server {
|
||||
height:146px;
|
||||
}
|
||||
|
||||
.rankView .hall_server{
|
||||
border-top:1px solid gray;
|
||||
}
|
||||
|
||||
.rankView .tooltip .tooltiptext{
|
||||
width:220px;
|
||||
margin-left: -110px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.rankView .no_value .hall_value{
|
||||
display:none;
|
||||
}
|
||||
|
||||
.rankView .hall_nation{
|
||||
font-size:11px;
|
||||
border-top:1px solid gray;
|
||||
border-bottom:1px solid gray;
|
||||
}
|
||||
|
||||
.rankView .hall_name{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
resize: vertical;
|
||||
font-size:11px;
|
||||
height:28px;
|
||||
}
|
||||
|
||||
.rankView .hall_name p{
|
||||
padding:0;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.rankView .hall_owner{
|
||||
font-size:95%;
|
||||
}
|
||||
|
||||
.rankView .hall_value{
|
||||
line-height:13px;
|
||||
box-sizing: border-box;
|
||||
border-top:1px solid gray;
|
||||
padding-top:3px;
|
||||
padding-bottom:3px;
|
||||
}
|
||||
@@ -63,4 +63,8 @@ color:white;
|
||||
font-size:13px;
|
||||
margin:0;
|
||||
display:block;
|
||||
}
|
||||
|
||||
.nation_info td{
|
||||
height:18px;
|
||||
}
|
||||
@@ -9,13 +9,22 @@
|
||||
}
|
||||
/*임시용 끝*/
|
||||
|
||||
#message_board{
|
||||
height:1370px;
|
||||
position:relative;
|
||||
}
|
||||
|
||||
#message_board section{
|
||||
width:498px;
|
||||
overflow-y:auto;
|
||||
overflow-x:hidden;
|
||||
max-width:498px;
|
||||
}
|
||||
|
||||
.msg_plate{
|
||||
width:100%;
|
||||
border:groove 0.1em;
|
||||
border-bottom:solid 1px gray;
|
||||
border-left:solid 1px gray;
|
||||
border-right:solid 1px gray;
|
||||
height:64px;
|
||||
font-size:12px;
|
||||
word-break:break-all;
|
||||
@@ -26,6 +35,10 @@
|
||||
background-color:#5d1e1a;
|
||||
}
|
||||
|
||||
.msg_plate_private.msg_plate_dest{
|
||||
background-color:#5d461a;
|
||||
}
|
||||
|
||||
.msg_plate_public{
|
||||
background-color:#141c65;
|
||||
|
||||
@@ -33,14 +46,33 @@
|
||||
|
||||
.msg_plate_national, .msg_plate_diplomacy{
|
||||
background-color:#00582c;
|
||||
}
|
||||
|
||||
.msg_plate_national.msg_plate_dest, .msg_plate_diplomacy.msg_plate_dest {
|
||||
background-color:#704615;
|
||||
}
|
||||
|
||||
.msg_plate_national.msg_plate_src, .msg_plate_diplomacy.msg_plate_src {
|
||||
background-color:#70153b;
|
||||
}
|
||||
|
||||
.public_message{
|
||||
height:667px;
|
||||
}
|
||||
|
||||
.private_message{
|
||||
height:667px;
|
||||
}
|
||||
|
||||
.national_message{
|
||||
height:1350px;
|
||||
}
|
||||
|
||||
.msg_icon{
|
||||
float:left;
|
||||
width:64px;
|
||||
height:64px;
|
||||
border-right:groove 0.1em;
|
||||
border-right:solid 1px gray;
|
||||
}
|
||||
|
||||
.msg_time{
|
||||
@@ -54,28 +86,47 @@
|
||||
color:white;
|
||||
}
|
||||
|
||||
.message_input_form{
|
||||
position:relative;
|
||||
}
|
||||
|
||||
#msg_input{
|
||||
color:white;
|
||||
background-color:black;
|
||||
font-size:12px;
|
||||
width:720px;
|
||||
width:715px;
|
||||
margin:0 2px;
|
||||
height:15px;
|
||||
}
|
||||
|
||||
#msg_submit{
|
||||
position:absolute;
|
||||
right:0;
|
||||
margin-right:2px;
|
||||
}
|
||||
|
||||
#mailbox_list{
|
||||
float:left;
|
||||
color:white;
|
||||
background-color:black;
|
||||
font-size:12px;
|
||||
width:160px;
|
||||
height:20px;
|
||||
}
|
||||
|
||||
.board_header{
|
||||
color:white;
|
||||
border:groove 0.1em;
|
||||
border:solid 1px gray;
|
||||
}
|
||||
|
||||
.board_side{
|
||||
width:50%;
|
||||
float:left;
|
||||
position:absolute;
|
||||
height:1370px;
|
||||
width:498px;
|
||||
overflow-y: hidden;
|
||||
border-left:solid 1px;
|
||||
border-right:solid 1px;
|
||||
border-bottom:solid 1px;
|
||||
}
|
||||
|
||||
.msg_body{
|
||||
@@ -0,0 +1,48 @@
|
||||
.container{
|
||||
width:1000px;
|
||||
margin:0 auto;
|
||||
}
|
||||
|
||||
.card_holder{
|
||||
text-align:center;
|
||||
}
|
||||
.general_card{
|
||||
width:125px;
|
||||
display:inline-block;
|
||||
}
|
||||
|
||||
.general_card h4 {
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.general_card p {
|
||||
margin:0;
|
||||
}
|
||||
|
||||
|
||||
.general_card .select_btn {
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.general_card label {
|
||||
display: block;
|
||||
padding-left: 15px;
|
||||
text-indent: -15px;
|
||||
}
|
||||
|
||||
.general_card input {
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
padding: 0;
|
||||
margin:0;
|
||||
vertical-align: bottom;
|
||||
position: relative;
|
||||
top: -1px;
|
||||
*overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
#outdate_token{
|
||||
color:red;
|
||||
display:none;
|
||||
}
|
||||
-132
@@ -1,132 +0,0 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$ok = Util::getReq('ok');
|
||||
$when = Util::getReq('when', 'int');
|
||||
$gen = Util::getReq('gen', 'int'); //XXX: -_-;;;;;;;;;;;;
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
//FIXME: 망했음. CriticalFailure. 재 구현.
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
//$when = ($when + 1) * 2;
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,name,nation,level,picture,imgsvr from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,nation,name from general where no='$gen'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$you = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select name,surlimit,color from nation where nation='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$younation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select name,gold,rice,surlimit,color,dip{$num} as dipmsg from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$mynation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select pop from city where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$citycount = MYDB_num_rows($result);
|
||||
|
||||
$query = "select city from city where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$losecitynum = MYDB_num_rows($result);
|
||||
|
||||
$query = "select city from city where nation='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$wincitynum = MYDB_num_rows($result);
|
||||
|
||||
//아국과의 관계
|
||||
$query = "select state,term from diplomacy where me='{$me['nation']}' and you='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$dip = MYDB_fetch_array($result);
|
||||
|
||||
//상대국의 제의조건
|
||||
$query = "select reserved from diplomacy where me='{$you['nation']}' and you='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$dip2 = MYDB_fetch_array($result);
|
||||
|
||||
$mylog = [];
|
||||
$youlog = [];
|
||||
|
||||
if($ok == "수락") {
|
||||
// 서신 보낸 후 멸망,선양 등 했을때.
|
||||
if($me['level'] < 5) {
|
||||
$mylog[] = "<C>●</>수뇌부가 아니므로 불가능합니다. 불가침 실패.";
|
||||
} elseif($dip['term'] == $when*12 && $dip['state'] == 7) {
|
||||
$mylog[] = "<C>●</>이미 수락했습니다. 불가침 실패.";
|
||||
} elseif($losecitynum == 0) {
|
||||
$mylog[] = "<C>●</>방랑군이므로 불가능합니다. 불가침 실패.";
|
||||
} elseif($wincitynum == 0) {
|
||||
$mylog[] = "<C>●</>상대가 방랑군이므로 불가능합니다. 불가침 실패.";
|
||||
} elseif($dip['state'] == 0) {
|
||||
$mylog[] = "<C>●</>아국과 교전중입니다. 불가침 실패.";
|
||||
} elseif($dip['state'] == 1) {
|
||||
$mylog[] = "<C>●</>아국과 선포중입니다. 불가침 실패.";
|
||||
} elseif($dip['state'] == 3 || $dip['state'] == 4) {
|
||||
$mylog[] = "<C>●</>아국과 합병중입니다. 불가침 실패.";
|
||||
} elseif($mynation['dipmsg'] == "") {
|
||||
$mylog[] = "<C>●</>이미 거절했습니다. 불가침 실패.";
|
||||
} else {
|
||||
// $alllog[] = "<C>●</>{$admin['month']}월:<Y>{$me['name']}</>(이)가 <D><b>{$younation['name']}</b></>(와)과 <M>불가침</>에 합의.";
|
||||
// $history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【불가침】</b></><D><b>{$mynation['name']}</b></>(이)가 <D><b>{$younation['name']}</b></>(와)과 불가침 조약을 체결했습니다.";
|
||||
|
||||
$youlog[] = "<C>●</><D><b>{$mynation['name']}</b></>(와)과 <C>$when</>년 불가침에 성공했습니다.";
|
||||
$mylog[] = "<C>●</><D><b>{$younation['name']}</b></>(와)과 <C>$when</>년 불가침에 합의했습니다.";
|
||||
pushGeneralHistory($you, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></>(와)과 {$when}년 불가침 성공");
|
||||
pushGeneralHistory($me, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$younation['name']}</b></>(와)과 {$when}년 불가침 수락");
|
||||
|
||||
//국메로 저장
|
||||
$msg = "【외교】{$admin['year']}년 {$admin['month']}월:{$younation['name']}(와)과 {$when}년 불가침 합의, 비고: {$dip2['reserved']}";
|
||||
$youmsg = "【외교】{$admin['year']}년 {$admin['month']}월:{$mynation['name']}(와)과 {$when}년 불가침 합의, 비고: {$dip2['reserved']}";
|
||||
|
||||
PushMsg(2, $me['nation'], $me['picture'], $me['imgsvr'], "{$me['name']}:{$mynation['name']}▶", $mynation['color'], $younation['name'], $younation['color'], $msg);
|
||||
PushMsg(3, $you['nation'], $me['picture'], $me['imgsvr'], "{$me['name']}:{$mynation['name']}▶", $mynation['color'], $younation['name'], $younation['color'], $youmsg);
|
||||
|
||||
$when = $when * 12;
|
||||
//외교 변경
|
||||
$query = "update diplomacy set state='7',term='$when',fixed='{$dip2['reserved']}' where me='{$me['nation']}' and you='{$you['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update diplomacy set state='7',term='$when',fixed='{$dip2['reserved']}' where me='{$you['nation']}' and you='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
//조건 지움
|
||||
$query = "update diplomacy set reserved='' where me='{$you['nation']}' and you='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
//현 메세지 지움
|
||||
$query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} else {
|
||||
$youlog[] = "<C>●</><Y>{$mynation['name']}</>(이)가 불가침을 거부했습니다.";
|
||||
$mylog[] = "<C>●</><D>{$younation['name']}</>(와)과 불가침을 거부했습니다.";
|
||||
|
||||
//조건 지움
|
||||
$query = "update diplomacy set reserved='' where me='{$you['nation']}' and you='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
//현 메세지 지움
|
||||
$query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
pushGenLog($me, $mylog);
|
||||
pushGenLog($you, $youlog);
|
||||
//pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
//pushWorldHistory($history, $admin['year'], $admin['month']);
|
||||
|
||||
header('location:msglist.php');
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$ok = Util::getReq('ok');
|
||||
$gen = Util::getReq('gen', 'int'); //XXX: -_-;;;;;;;;;;;;
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
//FIXME: 망했음. CriticalFailure. 재 구현.
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,name,nation,level,picture,imgsvr from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,nation from general where no='$gen'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$you = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select name,surlimit,color from nation where nation='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$younation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select name,gold,rice,surlimit,color,dip{$num} as dipmsg from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$mynation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select pop from city where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$citycount = MYDB_num_rows($result);
|
||||
|
||||
$query = "select city from city where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$losecitynum = MYDB_num_rows($result);
|
||||
|
||||
$query = "select city from city where nation='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$wincitynum = MYDB_num_rows($result);
|
||||
|
||||
//아국과의 관계
|
||||
$query = "select state from diplomacy where me='{$me['nation']}' and you='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$dip = MYDB_fetch_array($result);
|
||||
|
||||
$mylog = [];
|
||||
$youlog = [];
|
||||
$alllog = [];
|
||||
$history = [];
|
||||
|
||||
if($ok == "수락") {
|
||||
// 서신 보낸 후 멸망,선양 등 했을때.
|
||||
if($me['level'] < 5) {
|
||||
$mylog[] = "<C>●</>수뇌부가 아니므로 불가능합니다. 파기 실패.";
|
||||
} elseif($losecitynum == 0) {
|
||||
$mylog[] = "<C>●</>방랑군이므로 불가능합니다. 파기 실패.";
|
||||
} elseif($wincitynum == 0) {
|
||||
$mylog[] = "<C>●</>상대가 방랑군이므로 불가능합니다. 파기 실패.";
|
||||
} elseif($dip['state'] != 7) {
|
||||
$mylog[] = "<C>●</>아국과 불가침중이 아닙니다. 파기 실패.";
|
||||
} elseif($mynation['dipmsg'] == "") {
|
||||
$mylog[] = "<C>●</>이미 거절했습니다. 파기 실패.";
|
||||
} else {
|
||||
$alllog[] = "<C>●</>{$admin['month']}월:<Y>{$me['name']}</>(이)가 <D><b>{$younation['name']}</b></>(와)과 <M>조약 파기</>에 합의.";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【파기】</b></><D><b>{$mynation['name']}</b></>(이)가 <D><b>{$younation['name']}</b></>(와)과 불가침을 파기 하였습니다.";
|
||||
$youlog[] = "<C>●</><D><b>{$mynation['name']}</b></>(와)과 파기에 성공했습니다.";
|
||||
$mylog[] = "<C>●</><D><b>{$younation['name']}</b></>(와)과 파기에 합의했습니다.";
|
||||
pushGeneralHistory($you, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></>(와)과 파기 성공");
|
||||
pushGeneralHistory($me, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$younation['name']}</b></>(와)과 파기 수락");
|
||||
|
||||
//외교 변경
|
||||
$query = "update diplomacy set state='2',term='0' where me='{$me['nation']}' and you='{$you['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update diplomacy set state='2',term='0' where me='{$you['nation']}' and you='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
//국메로 저장
|
||||
$msg = "【외교】{$admin['year']}년 {$admin['month']}월:{$younation['name']}(와)과 불가침 파기 동의";
|
||||
$youmsg = "【외교】{$admin['year']}년 {$admin['month']}월:{$mynation['name']}(와)과 불가침 파기 동의";
|
||||
|
||||
PushMsg(2, $me['nation'], $me['picture'], $me['imgsvr'], "{$me['name']}:{$mynation['name']}▶", $mynation['color'], $younation['name'], $younation['color'], $msg);
|
||||
PushMsg(3, $you['nation'], $me['picture'], $me['imgsvr'], "{$me['name']}:{$mynation['name']}▶", $mynation['color'], $younation['name'], $younation['color'], $youmsg);
|
||||
}
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} else {
|
||||
$youlog[] = "<C>●</><Y>{$mynation['name']}</>(이)가 파기를 거부했습니다.";
|
||||
$mylog[] = "<C>●</><D>{$younation['name']}</>(와)과 파기를 거부했습니다.";
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
pushGenLog($me, $mylog);
|
||||
pushGenLog($you, $youlog);
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
pushWorldHistory($history, $admin['year'], $admin['month']);
|
||||
|
||||
header('location:msglist.php');
|
||||
-117
@@ -1,117 +0,0 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$ok = Util::getReq('ok');
|
||||
$gen = Util::getReq('gen', 'int'); //XXX: -_-;;;;;;;;;;;;
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
//FIXME: 망했음. CriticalFailure. 재 구현.
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,name,nation,level,picture,imgsvr from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,nation from general where no='$gen'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$you = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select nation,name,surlimit,color from nation where nation='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$younation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select nation,name,gold,rice,surlimit,color,dip{$num} as dipmsg from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$mynation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select pop from city where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$citycount = MYDB_num_rows($result);
|
||||
|
||||
$query = "select city from city where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$losecitynum = MYDB_num_rows($result);
|
||||
|
||||
$query = "select city from city where nation='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$wincitynum = MYDB_num_rows($result);
|
||||
|
||||
//아국과의 관계
|
||||
$query = "select state from diplomacy where me='{$me['nation']}' and you='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$dip = MYDB_fetch_array($result);
|
||||
|
||||
$mylog = [];
|
||||
$youlog = [];
|
||||
$alllog = [];
|
||||
$history = [];
|
||||
|
||||
if($ok == "수락") {
|
||||
// 서신 보낸 후 멸망,선양 등 했을때.
|
||||
if($me['level'] < 5) {
|
||||
$mylog[] = "<C>●</>수뇌부가 아니므로 불가능합니다. 종전 실패.";
|
||||
} elseif($losecitynum == 0) {
|
||||
$mylog[] = "<C>●</>방랑군이므로 불가능합니다. 종전 실패.";
|
||||
} elseif($wincitynum == 0) {
|
||||
$mylog[] = "<C>●</>상대가 방랑군이므로 불가능합니다. 종전 실패.";
|
||||
} elseif($dip['state'] != 0 && $dip['state'] != 1) {
|
||||
$mylog[] = "<C>●</>아국과 교전중이 아닙니다. 종전 실패.";
|
||||
} elseif($mynation['dipmsg'] == "") {
|
||||
$mylog[] = "<C>●</>이미 거절했습니다. 불가침 실패.";
|
||||
} else {
|
||||
$alllog[] = "<C>●</>{$admin['month']}월:<Y>{$me['name']}</>(이)가 <D><b>{$younation['name']}</b></>(와)과 <M>종전 합의</> 하였습니다.";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【종전】</b></><D><b>{$mynation['name']}</b></>(이)가 <D><b>{$younation['name']}</b></>(와)과 <M>종전 합의</> 하였습니다.";
|
||||
$youlog[] = "<C>●</><D><b>{$mynation['name']}</b></>(와)과 종전에 성공했습니다.";
|
||||
$mylog[] = "<C>●</><D><b>{$younation['name']}</b></>(와)과 종전에 합의했습니다.";
|
||||
pushGeneralHistory($you, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></>(와)과 종전 성공");
|
||||
pushGeneralHistory($me, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$younation['name']}</b></>(와)과 종전 수락");
|
||||
|
||||
//외교 변경
|
||||
$query = "update diplomacy set state='2',term='0' where me='{$mynation['nation']}' and you='{$younation['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update diplomacy set state='2',term='0' where me='{$younation['nation']}' and you='{$mynation['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
//외교제한
|
||||
$query = "update nation set surlimit=24 where nation='{$mynation['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update nation set surlimit=24 where nation='{$younation['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
//국메로 저장
|
||||
$msg = "【외교】{$admin['year']}년 {$admin['month']}월:{$younation['name']}(와)과 종전 동의";
|
||||
$youmsg = "【외교】{$admin['year']}년 {$admin['month']}월:{$mynation['name']}(와)과 종전 동의";
|
||||
|
||||
PushMsg(2, $mynation['nation'], $me['picture'], $me['imgsvr'], "{$me['name']}:{$mynation['name']}▶", $mynation['color'], $younation['name'], $younation['color'], $msg);
|
||||
PushMsg(3, $younation['nation'], $me['picture'], $me['imgsvr'], "{$me['name']}:{$mynation['name']}▶", $mynation['color'], $younation['name'], $younation['color'], $youmsg);
|
||||
}
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} else {
|
||||
$youlog[] = "<C>●</><Y>{$mynation['name']}</>(이)가 종전을 거부했습니다.";
|
||||
$mylog[] = "<C>●</><D>{$younation['name']}</>(와)과 종전을 거부했습니다.";
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
pushGenLog($me, $mylog);
|
||||
pushGenLog($you, $youlog);
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
pushWorldHistory($history, $admin['year'], $admin['month']);
|
||||
|
||||
header('location:msglist.php');
|
||||
-152
@@ -1,152 +0,0 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$ok = Util::getReq('ok');
|
||||
$gen = Util::getReq('gen', 'int'); //XXX: -_-;;;;;;;;;;;;
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
//FIXME: 망했음. CriticalFailure. 재 구현.
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,name,nation,level,picture,imgsvr from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,name,nation from general where no='$gen'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$you = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select round(avg(power)) as power,round(avg(gennum)) as gennum from nation where level>=1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$avgnation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select round(std(power)) as power,round(std(gennum)) as gennum from nation where level>=1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$stdnation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select nation,name,gennum,power,surlimit,color from nation where nation='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$younation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select nation,name,gennum,power,gold,rice,surlimit,color,dip{$num} as dipmsg from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$mynation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select city from city where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$losecitynum = MYDB_num_rows($result);
|
||||
|
||||
$query = "select city from city where nation='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$wincitynum = MYDB_num_rows($result);
|
||||
|
||||
//아국과의 관계
|
||||
$query = "select state from diplomacy where me='{$me['nation']}' and you='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$dip = MYDB_fetch_array($result);
|
||||
//대상국이 외교 진행중(선포중,교전중,합병수락중,통합수락중)일때
|
||||
$query = "select state from diplomacy where me='{$you['nation']}' and (state='0' or state='1' or state='3' or state='5')";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$dipcount = MYDB_num_rows($result);
|
||||
//대상국B이 아국C과 교전중인 국가A와 불가침중일때 불가(A=B 불가침, A=C(아국) 교전, B<-C(아국) 항복)
|
||||
$query = "select you,state from diplomacy where me='{$me['nation']}' and (state='0' or state='1')";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$warcount = MYDB_num_rows($result);
|
||||
// 아국과 교전중인 국가 골라냄
|
||||
$valid = 1;
|
||||
for($i=0; $i < $warcount; $i++) {
|
||||
$acdip = MYDB_fetch_array($result);
|
||||
//교전중 국가A와 대상국B 외교 확인
|
||||
$query = "select state from diplomacy where me='{$acdip['you']}' and you='{$you['nation']}'";
|
||||
$dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$abdip = MYDB_fetch_array($dipresult);
|
||||
|
||||
if($abdip['state'] == 7) {
|
||||
$valid = 0;
|
||||
}
|
||||
}
|
||||
|
||||
$mylog = [];
|
||||
$youlog = [];
|
||||
$alllog = [];
|
||||
$history = [];
|
||||
|
||||
if($ok == "수락") {
|
||||
// 서신 보낸 후 멸망 했을때.
|
||||
if($me['level'] < 5) {
|
||||
$mylog[] = "<C>●</>수뇌부가 아니므로 불가능합니다. 통합 실패.";
|
||||
} elseif($mynation['surlimit'] > 0) {
|
||||
$mylog[] = "<C>●</>본국이 외교제한이 지나지 않았습니다. 통합 실패.";
|
||||
} elseif($younation['surlimit'] > 0) {
|
||||
$mylog[] = "<C>●</>상대국이 외교제한이 지나지 않았습니다. 통합 실패.";
|
||||
} elseif($losecitynum == 0) {
|
||||
$mylog[] = "<C>●</>방랑군이므로 불가능합니다. 통합 실패.";
|
||||
} elseif($wincitynum == 0) {
|
||||
$mylog[] = "<C>●</>상대가 방랑군이므로 불가능합니다. 통합 실패.";
|
||||
} elseif($mynation['power']+$younation['power'] > $avgnation['power']+$stdnation['power']) {
|
||||
$mylog[] = "<C>●</>양국 국력이 너무 높습니다. 통합 실패.";
|
||||
} elseif($mynation['gennum']+$younation['gennum'] > $avgnation['gennum']+$stdnation['gennum']) {
|
||||
$mylog[] = "<C>●</>양국 장수가 많습니다. 통합 실패.";
|
||||
} elseif(!isClose($younation['nation'], $mynation['nation'])) {
|
||||
$mylog[] = "<C>●</>인접한 국가가 아니므로 불가능합니다. 통합 실패.";
|
||||
} elseif($dip['state'] == 0) {
|
||||
$mylog[] = "<C>●</>아국과 교전중입니다. 통합 실패.";
|
||||
} elseif($dipcount != 0) {
|
||||
$mylog[] = "<C>●</>상대국이 외교 진행중입니다. 통합 실패.";
|
||||
} elseif($valid == 0) {
|
||||
$mylog[] = "<C>●</>상대국이 아국의 교전국과 불가침중입니다. 통합 실패.";
|
||||
} elseif($mynation['dipmsg'] == "") {
|
||||
$mylog[] = "<C>●</>이미 거절했습니다. 불가침 실패.";
|
||||
} else {
|
||||
$youlog[] = "<C>●</><D><b>{$mynation['name']}</b></>(이)가 통합에 동의했습니다.";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【통합시도】</b></><D><b>{$mynation['name']}</b></>(와)과 <D><b>{$younation['name']}</b></>(이)가 통합을 시도합니다.";
|
||||
$mylog[] = "<C>●</><D><b>{$younation['name']}</b></>(와)과 통합에 동의했습니다.";
|
||||
$alllog[] = "<C>●</>{$admin['month']}월:<Y>{$me['name']}</>(이)가 <D><b>{$younation['name']}</b></>(와)과 <M>통합</>에 동의하였습니다.";
|
||||
pushGeneralHistory($you, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></>(와)과 통합 시도");
|
||||
pushGeneralHistory($me, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$younation['name']}</b></>(와)과 통합 시도");
|
||||
|
||||
//외교 변경
|
||||
$query = "update diplomacy set state='3',term='24' where me='{$mynation['nation']}' and you='{$younation['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update diplomacy set state='4',term='24' where me='{$younation['nation']}' and you='{$mynation['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
//국메로 저장
|
||||
$msg = "【외교】{$admin['year']}년 {$admin['month']}월:{$younation['name']}(와)과 통합에 합의";
|
||||
$youmsg = "【외교】{$admin['year']}년 {$admin['month']}월:{$mynation['name']}(와)과 통합에 합의";
|
||||
|
||||
PushMsg(2, $mynation['nation'], $me['picture'], $me['imgsvr'], "{$me['name']}:{$mynation['name']}▶", $mynation['color'], $younation['name'], $younation['color'], $msg);
|
||||
PushMsg(3, $younation['nation'], $me['picture'], $me['imgsvr'], "{$me['name']}:{$mynation['name']}▶", $mynation['color'], $younation['name'], $younation['color'], $youmsg);
|
||||
}
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} else {
|
||||
$youlog[] = "<C>●</><Y>{$mynation['name']}</>(이)가 항복을 거부했습니다.";
|
||||
$mylog[] = "<C>●</><D>{$younation['name']}</>(으)로 항복을 거부했습니다.";
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
pushGenLog($me, $mylog);
|
||||
pushGenLog($you, $youlog);
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
pushWorldHistory($history, $admin['year'], $admin['month']);
|
||||
|
||||
header('location:msglist.php');
|
||||
|
||||
-177
@@ -1,177 +0,0 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
//TODO: 등용장 재 디자인.
|
||||
//xxx: 일단 비활성화
|
||||
header('Location:msglist.php');
|
||||
die();
|
||||
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
//로그인 검사
|
||||
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
//FIXME: 망했음. CriticalFailure. 재 구현.
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select startyear,year,month,killturn from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,name,nation,nations,level,troop,npc,gold,rice from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,nation from general where no='$gen'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$you = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select name,nation,level,capital,scout from nation where nation='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
$mylog = [];
|
||||
$youlog = [];
|
||||
$allog = [];
|
||||
|
||||
if($ok == "수락" && $me['level'] < 12 && $nation['level'] > 0 && $nation['scout'] == 0 && $me['nation'] != $nation['nation'] && $admin['year'] >= $admin['startyear']+3 && strpos($me['nations'], ",{$nation['nation']},") === false) {
|
||||
$youlog[] = "<C>●</><Y>{$me['name']}</> 등용에 성공했습니다.";
|
||||
$alllog[] = "<C>●</>{$admin['month']}월:<Y>{$me['name']}</>(이)가 <D><b>{$nation['name']}</b></>(으)로 <S>망명</>하였습니다.";
|
||||
$mylog[] = "<C>●</><D>{$nation['name']}</>(으)로 망명하여 수도로 이동합니다.";
|
||||
pushGeneralHistory($you, "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y>{$me['name']}</> 등용에 성공");
|
||||
pushGeneralHistory($me, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D>{$nation['name']}</>(으)로 망명");
|
||||
|
||||
// 임관내역 추가
|
||||
$me['nations'] .= "{$nation['nation']},";
|
||||
|
||||
// 국가 변경, 도시 변경, 일반으로, 수도로
|
||||
$query = "update general set killturn='{$admin['killturn']}',belong=1,nation='{$you['nation']}',nations='{$me['nations']}',level=1,city='{$nation['capital']}' where no='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
// 재야가 아니면 명성N*10% 공헌N*10%감소
|
||||
if($me['level'] > 0) {
|
||||
// 1000 1000 남기고 환수
|
||||
if($me['gold'] > 1000) { $gold = $me['gold'] - 1000; $me['gold'] = 1000; } else { $gold = 0; }
|
||||
if($me['rice'] > 1000) { $rice = $me['rice'] - 1000; $me['rice'] = 1000; } else { $rice = 0; }
|
||||
$query = "update general set gold='{$me['gold']}',rice='{$me['rice']}',betray=betray+1,dedication=dedication*(1-0.1*betray),experience=experience*(1-0.1*betray) where no='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update nation set gold=gold+'$gold',rice=rice+'$rice' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} else {
|
||||
//재야이면 100 100 증가
|
||||
$query = "update general set dedication=dedication+100,experience=experience+100 where no='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
//유저이면 삭턴 리셋
|
||||
if($me['npc'] < 2) {
|
||||
$query = "update general set killturn='{$admin['killturn']}' where no='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
//태수 군사 시중 해제
|
||||
switch($me['level']) {
|
||||
case 4:
|
||||
$query = "update city set gen1=0 where gen1='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 3:
|
||||
$query = "update city set gen2=0 where gen2='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
case 2:
|
||||
$query = "update city set gen3=0 where gen3='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
break;
|
||||
}
|
||||
|
||||
//등용자 명성, 공헌 상승
|
||||
$query = "update general set dedication=dedication+100,experience=experience+100 where no='{$you['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
// 부대 처리
|
||||
$query = "select no from troop where troop='{$me['troop']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$troop = MYDB_fetch_array($result);
|
||||
|
||||
//부대장일 경우
|
||||
if($troop['no'] == $me['no']) {
|
||||
// 모두 탈퇴
|
||||
$query = "update general set troop='0' where troop='{$me['troop']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
// 부대 삭제
|
||||
$query = "delete from troop where troop='{$me['troop']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} else {
|
||||
$query = "update general set troop='0' where no='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
//국가 기술력 그대로
|
||||
$query = "select no from general where nation='{$nation['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gencount = MYDB_num_rows($result);
|
||||
$gennum = $gencount;
|
||||
if($gencount < 10) $gencount = 10;
|
||||
|
||||
$query = "update nation set totaltech=tech*'$gencount',gennum='$gennum' where nation='{$nation['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
//기존 국가 기술력 그대로
|
||||
$query = "select no from general where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gencount = MYDB_num_rows($result);
|
||||
$gennum = $gencount;
|
||||
if($gencount < 10) $gencount = 10;
|
||||
|
||||
$query = "update nation set totaltech=tech*'$gencount',gennum='$gennum' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
//현 메세지 수정
|
||||
$query = "update general set msg{$num}='{$nation['name']}(으)로 등용 제의 수락',msg{$num}_type='10' where no='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} elseif($me['level'] == 12) {
|
||||
$mylog[] = "<C>●</>군주입니다. 등용 수락 불가.";
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update general set msg{$num}='{$nation['name']}(으)로 등용 제의 수락 불가',msg{$num}_type='10' where no='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} elseif($nation['level'] == 0) {
|
||||
$mylog[] = "<C>●</>없는 국가이거나 방랑군입니다. 등용 수락 불가.";
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update general set msg{$num}='{$nation['name']}(으)로 등용 제의 수락 불가',msg{$num}_type='10' where no='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} elseif($nation['scout'] != 0) {
|
||||
$mylog[] = "<C>●</>임관 금지중입니다. 등용 수락 불가.";
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update general set msg{$num}='{$nation['name']}(으)로 등용 제의 수락 불가',msg{$num}_type='10' where no='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} elseif($admin['year'] < $admin['startyear']+3) {
|
||||
$mylog[] = "<C>●</>초반 제한중입니다. 등용 수락 불가.";
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update general set msg{$num}='{$nation['name']}(으)로 등용 제의 수락 불가',msg{$num}_type='10' where no='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} elseif(strpos($me['nations'], ",{$nation['nation']},") > 0) {
|
||||
$mylog[] = "<C>●</>이미 임관했었던 국가입니다. 등용 수락 불가.";
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update general set msg{$num}='{$nation['name']}(으)로 등용 제의 수락 불가',msg{$num}_type='10' where no='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} else {
|
||||
$youlog[] = "<C>●</><Y>{$me['name']}</>(이)가 등용을 거부했습니다.";
|
||||
$mylog[] = "<C>●</><D>{$nation['name']}</>(으)로 망명을 거부했습니다.";
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update general set msg{$num}='{$nation['name']}(으)로 등용 제의 거부',msg{$num}_type='10' where no='{$me['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
pushGenLog($me, $mylog);
|
||||
pushGenLog($you, $youlog);
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
//pushWorldHistory($history, $admin['year'], $admin['month']);
|
||||
|
||||
header('location:msglist.php');
|
||||
@@ -27,6 +27,8 @@ class DB{
|
||||
if(self::$uDB === null){
|
||||
self::$uDB = new \MeekroDB(self::$host,self::$user,self::$password,self::$dbName,self::$port,self::$encoding);
|
||||
self::$uDB->connect_options[MYSQLI_OPT_INT_AND_FLOAT_NATIVE] = true;
|
||||
|
||||
self::$uDB->error_handler= function(){};
|
||||
self::$uDB->throw_exception_on_error = true;
|
||||
self::$uDB->throw_exception_on_nonsql_error = true;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
class GameCustomConst
|
||||
{
|
||||
/** @var int 유저 스탯 총합 */
|
||||
public static $defaultStatTotal = _tK_statTotal_;
|
||||
public static $defaultStatMin = _tK_statMin_;
|
||||
public static $defaultStatMax = _tK_statMax_;
|
||||
public static $defaultStatNPCMax = _tK_statNPCMax_;
|
||||
public static $chiefStatMin = _tK_statChiefMin_;
|
||||
}
|
||||
@@ -3,6 +3,7 @@ namespace sammo;
|
||||
|
||||
class UniqueConst{
|
||||
public static $serverID = '_tK_serverID_';
|
||||
public static $serverName = '_tK_serverName_';
|
||||
|
||||
private function __construct(){}
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<div class="buttonPlate bg1">
|
||||
<div>
|
||||
<a href="a_status.php" target="_blank"><button class="toolbarButton">세력도</button></a>
|
||||
<a href="a_kingdomList.php" target="_blank"><button class="toolbarButton">세력일람</button></a>
|
||||
<a href="a_genList.php" target="_blank"><button class="toolbarButton">장수일람</button></a>
|
||||
<a href="a_bestGeneral.php" target="_blank"><button class="toolbarButton">명장일람</button></a>
|
||||
<a href="a_history.php" target="_blank"><button class="toolbarButton">연감</button></a>
|
||||
<a href="a_hallOfFame.php" target="_blank"><button class="toolbarButton">명예의전당</button></a>
|
||||
<a href="a_emperior.php" target="_blank"><button class="toolbarButton">왕조일람</button></a>
|
||||
<a href="a_traffic.php" target="_blank"><button class="toolbarButton">접속량정보</button></a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="/bbs/board" target="_blank"><button class="toolbarButton2">삼모게시판</button></a>
|
||||
<a href="/bbs/tip" target="_blank"><button class="toolbarButton">팁/강좌</button></a>
|
||||
<a href="/bbs/news" target="_blank"><button class="toolbarButton">삼국 일보</button></a>
|
||||
<a href="/bbs/history2" target="_blank"><button class="toolbarButton">개인 열전</button></a>
|
||||
<a href="/bbs/history3" target="_blank"><button class="toolbarButton">국가 열전</button></a>
|
||||
<a href="/bbs/patch" target="_blank"><button class="toolbarButton">패치 내역</button></a>
|
||||
<a href="../i_other/help.php" target="_blank"><button class="toolbarButton">튜토리얼</button></a>
|
||||
<a href="<?=$site?>" target="_blank"><button class="toolbarButton"><?=$call?></button></a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,140 +0,0 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
include "lib.php";
|
||||
include "func.php";
|
||||
|
||||
$ok = Util::getReq('ok');
|
||||
$gen = Util::getReq('gen', 'int'); //XXX: -_-;;;;;;;;;;;;
|
||||
|
||||
//로그인 검사
|
||||
$session = Session::requireGameLogin()->setReadOnly();
|
||||
$userID = Session::getUserID();
|
||||
//FIXME: 망했음. CriticalFailure. 재 구현.
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,name,nation,level,picture,imgsvr from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select no,nation from general where no='$gen'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$you = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select nation,name,power,gold,rice,surlimit,color from nation where nation='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$younation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select nation,name,power,surlimit,color,dip{$num} as dipmsg from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$mynation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select city from city where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$losecitynum = MYDB_num_rows($result);
|
||||
|
||||
$query = "select city from city where nation='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$wincitynum = MYDB_num_rows($result);
|
||||
|
||||
//아국과의 관계
|
||||
$query = "select state from diplomacy where me='{$me['nation']}' and you='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$dip = MYDB_fetch_array($result);
|
||||
//대상국이 외교 진행중(선포중,교전중,합병수락중,통합수락중)일때
|
||||
$query = "select state from diplomacy where me='{$you['nation']}' and (state='0' or state='1' or state='3' or state='5')";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$dipcount = MYDB_num_rows($result);
|
||||
//대상국B이 아국C과 교전중인 국가A와 불가침중일때 불가(A=B 불가침, A=C(아국) 교전, B<-C(아국) 항복)
|
||||
$query = "select you,state from diplomacy where me='{$me['nation']}' and (state='0' or state='1')";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$warcount = MYDB_num_rows($result);
|
||||
// 아국과 교전중인 국가 골라냄
|
||||
$valid = 1;
|
||||
for($i=0; $i < $warcount; $i++) {
|
||||
$acdip = MYDB_fetch_array($result);
|
||||
//교전중 국가A와 대상국B 외교 확인
|
||||
$query = "select state from diplomacy where me='{$acdip['you']}' and you='{$you['nation']}'";
|
||||
$dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$abdip = MYDB_fetch_array($dipresult);
|
||||
|
||||
if($abdip['state'] == 7) {
|
||||
$valid = 0;
|
||||
}
|
||||
}
|
||||
|
||||
$mylog = [];
|
||||
$youlog = [];
|
||||
$alllog = [];
|
||||
$history = [];
|
||||
|
||||
if($ok == "수락") {
|
||||
// 서신 보낸 후 멸망 했을때.
|
||||
if($me['level'] < 5) {
|
||||
$mylog[] = "<C>●</>수뇌부가 아니므로 불가능합니다. 투항 실패.";
|
||||
} elseif($mynation['surlimit'] > 0) {
|
||||
$mylog[] = "<C>●</>본국이 외교제한이 지나지 않았습니다. 투항 실패.";
|
||||
} elseif($younation['surlimit'] > 0) {
|
||||
$mylog[] = "<C>●</>상대국이 외교제한이 지나지 않았습니다. 투항 실패.";
|
||||
// } elseif($losecitynum == 0) {
|
||||
// $mylog[] = "<C>●</>방랑군이므로 불가능합니다. 투항 실패.";
|
||||
} elseif($wincitynum == 0) {
|
||||
$mylog[] = "<C>●</>상대가 방랑군이므로 불가능합니다. 투항 실패.";
|
||||
} elseif($younation['power'] / $mynation['power'] <= 3) {
|
||||
$mylog[] = "<C>●</>아국과 상대국의 국력차이가 크지 않습니다. 투항 실패.";
|
||||
} elseif($losecitynum != 0 && !isClose($younation['nation'], $mynation['nation'])) {
|
||||
$mylog[] = "<C>●</>인접한 국가가 아니므로 불가능합니다. 투항 실패.";
|
||||
} elseif($dip['state'] == 0) {
|
||||
$mylog[] = "<C>●</>아국과 교전중입니다. 투항 실패.";
|
||||
} elseif($dipcount != 0) {
|
||||
$mylog[] = "<C>●</>상대국이 외교 진행중입니다. 투항 실패.";
|
||||
} elseif($valid == 0) {
|
||||
$mylog[] = "<C>●</>상대국이 아국의 교전국과 불가침중입니다. 투항 실패.";
|
||||
} elseif($mynation['dipmsg'] == "") {
|
||||
$mylog[] = "<C>●</>이미 거절했습니다. 불가침 실패.";
|
||||
} else {
|
||||
$youlog[] = "<C>●</><D><b>{$mynation['name']}</b></>(이)가 합병에 동의했습니다.";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【합병시도】</b></><D><b>{$mynation['name']}</b></>(와)과 <D><b>{$younation['name']}</b></>(이)가 합병을 시도합니다.";
|
||||
$mylog[] = "<C>●</><D><b>{$younation['name']}</b></>(와)과 합병에 동의했습니다.";
|
||||
$alllog[] = "<C>●</>{$admin['month']}월:<Y>{$me['name']}</>(이)가 <D><b>{$younation['name']}</b></>(와)과 <M>합병</>에 동의하였습니다.";
|
||||
pushGeneralHistory($you, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></>(와)과 합병 시도");
|
||||
pushGeneralHistory($me, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$younation['name']}</b></>(와)과 합병 시도");
|
||||
|
||||
//외교 변경
|
||||
$query = "update diplomacy set state='5',term='24' where me='{$mynation['nation']}' and you='{$younation['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update diplomacy set state='6',term='24' where me='{$younation['nation']}' and you='{$mynation['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
//국메로 저장
|
||||
$msg = "【외교】{$admin['year']}년 {$admin['month']}월:{$younation['name']}(와)과 합병에 동의";
|
||||
$youmsg = "【외교】{$admin['year']}년 {$admin['month']}월:{$mynation['name']}(와)과 합병에 동의";
|
||||
|
||||
PushMsg(2, $mynation['nation'], $me['picture'], $me['imgsvr'], "{$me['name']}:{$mynation['name']}▶", $mynation['color'], $younation['name'], $younation['color'], $msg);
|
||||
PushMsg(3, $younation['nation'], $me['picture'], $me['imgsvr'], "{$me['name']}:{$mynation['name']}▶", $mynation['color'], $younation['name'], $younation['color'], $youmsg);
|
||||
}
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} else {
|
||||
$youlog[] = "<C>●</><Y>{$mynation['name']}</>(이)가 항복을 거부했습니다.";
|
||||
$mylog[] = "<C>●</><D>{$younation['name']}</>(으)로 항복을 거부했습니다.";
|
||||
|
||||
//현 메세지 지움
|
||||
$query = "update nation set dip{$num}='',dip{$num}_who='0',dip{$num}_when='' where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
|
||||
pushGenLog($me, $mylog);
|
||||
pushGenLog($you, $youlog);
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
pushWorldHistory($history, $admin['year'], $admin['month']);
|
||||
|
||||
header('location:msglist.php');
|
||||
+558
-552
@@ -4,7 +4,7 @@ namespace sammo;
|
||||
require_once 'process_war.php';
|
||||
require_once 'func_gamerule.php';
|
||||
require_once 'func_process.php';
|
||||
require_once 'func_process_trick.php';
|
||||
require_once 'func_process_sabotage.php';
|
||||
require_once 'func_process_chief.php';
|
||||
require_once 'func_process_personnel.php';
|
||||
require_once 'func_npc.php';
|
||||
@@ -18,13 +18,12 @@ require_once 'func_time_event.php';
|
||||
require_once('func_template.php');
|
||||
require_once('func_message.php');
|
||||
require_once('func_map.php');
|
||||
require_once('func_diplomacy.php');
|
||||
require_once('func_command.php');
|
||||
|
||||
/**
|
||||
* nationID를 이용하여 국가의 '어지간해선' 변경되지 않는 정보(이름, 색, 성향, 규모, 수도)를 반환해줌
|
||||
*
|
||||
* @param int|null $nationID 국가 코드, -1인 경우 전체, null인 경우 수행하지 않음
|
||||
* @param int|null $nationID 국가 코드, -1인 경우 전체, null인 경우 수행하지 않음. 0인 경우에는 재야임
|
||||
* @param bool $forceRefresh 강제 갱신 여부
|
||||
*
|
||||
* @return array|null nationID에 해당하는 국가가 있을 경우 array 반환. 그외의 경우 null
|
||||
@@ -32,13 +31,24 @@ require_once('func_command.php');
|
||||
function getNationStaticInfo($nationID, $forceRefresh=false)
|
||||
{
|
||||
static $nationList = null;
|
||||
static $freeNation = [
|
||||
'nation'=>0,
|
||||
'name'=>'재야',
|
||||
'color'=>'#000000',
|
||||
'type'=>0,
|
||||
'level'=>0,
|
||||
'capital'=>0
|
||||
];
|
||||
|
||||
if ($forceRefresh) {
|
||||
$nationList = null;
|
||||
}
|
||||
|
||||
if($nationID === null || $nationID == 0){
|
||||
return null;
|
||||
if ($nationID === null) {
|
||||
return null;
|
||||
}
|
||||
if($nationID === 0){
|
||||
return $freeNation;
|
||||
}
|
||||
|
||||
if($nationList === null){
|
||||
@@ -67,11 +77,11 @@ function getAllNationStaticInfo(){
|
||||
return getNationStaticInfo(-1);
|
||||
}
|
||||
|
||||
function GetImageURL($imgsvr) {
|
||||
function GetImageURL($imgsvr, $filepath='') {
|
||||
if($imgsvr == 0) {
|
||||
return ServConfig::$sharedIconPath;
|
||||
return ServConfig::getSharedIconPath($filepath);
|
||||
} else {
|
||||
return AppConf::getUserIconPathWeb();
|
||||
return AppConf::getUserIconPathWeb($filepath);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,20 +89,19 @@ function GetImageURL($imgsvr) {
|
||||
* @param null|int $con 장수의 벌점
|
||||
* @param null|int $conlimit 최대 벌점
|
||||
*/
|
||||
function checkLimit($con = null, $conlimit = null) {
|
||||
function checkLimit($con = null) {
|
||||
$session = Session::getInstance();
|
||||
if($session->userGrade>=4){
|
||||
return 0;
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
if($con === null){
|
||||
$con = $db->queryFirstField('SELECT con FROM general WHERE `owner`=%i', Session::getUserID());
|
||||
}
|
||||
if($conlimit === null){
|
||||
$conlimit = $db->queryFirstField('SELECT conlimit FROM game LIMIT 1');
|
||||
}
|
||||
$conlimit = $gameStor->conlimit;
|
||||
|
||||
if($con > $conlimit) {
|
||||
return 2;
|
||||
@@ -158,10 +167,14 @@ function cityInfo() {
|
||||
$tradeStr = $city['trade'] . "%";
|
||||
}
|
||||
|
||||
if(!$nation){
|
||||
$nation = getNationStaticInfo(0);
|
||||
}
|
||||
|
||||
if($nation['color'] == "" ) { $nation['color'] = "#000000"; }
|
||||
echo "<table width=640 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
|
||||
<tr><td colspan=8 align=center style=height:20;color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;>【 ".CityConst::$regionMap[$city['region']]." | ".CityConst::$levelMap[$city['level']]." 】 {$city['name']}</td></tr>
|
||||
<tr><td colspan=8 align=center style=height:20;color:".newColor($nation['color']).";background-color:{$nation['color']}><b>";
|
||||
echo "<table style='width:100%;' class='tb_layout bg2'>
|
||||
<tr><td colspan=8 style=text-align:center;height:20px;color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;>【 ".CityConst::$regionMap[$city['region']]." | ".CityConst::$levelMap[$city['level']]." 】 {$city['name']}</td></tr>
|
||||
<tr><td colspan=8 style=text-align:center;height:20px;color:".newColor($nation['color']).";background-color:{$nation['color']}><b>";
|
||||
|
||||
if($city['nation'] == 0) {
|
||||
echo "공 백 지";
|
||||
@@ -197,46 +210,46 @@ function cityInfo() {
|
||||
</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan=2 align=center id=bg1><b>주민</b></td>
|
||||
<td rowspan=2 style='text-align:center;' class='bg1'><b>주민</b></td>
|
||||
<td height=7 colspan=3>".bar($pop)."</td>
|
||||
<td rowspan=2 align=center id=bg1><b>민심</b></td>
|
||||
<td rowspan=2 style='text-align:center;' class='bg1'><b>민심</b></td>
|
||||
<td height=7>".bar($rate)."</td>
|
||||
<td rowspan=2 align=center id=bg1><b>태수</b></td>
|
||||
<td rowspan=2 align=center>{$gen1['name']}</td>
|
||||
<td rowspan=2 style='text-align:center;' class='bg1'><b>태수</b></td>
|
||||
<td rowspan=2 style='text-align:center;'>{$gen1['name']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=3 align=center>{$city['pop']}/{$city['pop2']}</td>
|
||||
<td align=center>{$city['rate']}</td>
|
||||
<td colspan=3 style='text-align:center;'>{$city['pop']}/{$city['pop2']}</td>
|
||||
<td style='text-align:center;'>{$city['rate']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=50 rowspan=2 align=center id=bg1><b>농업</b></td>
|
||||
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>농업</b></td>
|
||||
<td width=100 height=7>".bar($agri)."</td>
|
||||
<td width=50 rowspan=2 align=center id=bg1><b>상업</b></td>
|
||||
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>상업</b></td>
|
||||
<td width=100 height=7>".bar($comm)."</td>
|
||||
<td width=50 rowspan=2 align=center id=bg1><b>치안</b></td>
|
||||
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>치안</b></td>
|
||||
<td width=100 height=7>".bar($secu)."</td>
|
||||
<td width=50 rowspan=2 align=center id=bg1><b>군사</b></td>
|
||||
<td rowspan=2 align=center>{$gen2['name']}</td>
|
||||
<td width=50 rowspan=2 style='text-align:center;' class='bg1'><b>군사</b></td>
|
||||
<td rowspan=2 style='text-align:center;'>{$gen2['name']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center>{$city['agri']}/{$city['agri2']}</td>
|
||||
<td align=center>{$city['comm']}/{$city['comm2']}</td>
|
||||
<td align=center>{$city['secu']}/{$city['secu2']}</td>
|
||||
<td style='text-align:center;'>{$city['agri']}/{$city['agri2']}</td>
|
||||
<td style='text-align:center;'>{$city['comm']}/{$city['comm2']}</td>
|
||||
<td style='text-align:center;'>{$city['secu']}/{$city['secu2']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan=2 align=center id=bg1><b>수비</b></td>
|
||||
<td rowspan=2 style='text-align:center;' class='bg1'><b>수비</b></td>
|
||||
<td height=7>".bar($def)."</td>
|
||||
<td rowspan=2 align=center id=bg1><b>성벽</b></td>
|
||||
<td rowspan=2 style='text-align:center;' class='bg1'><b>성벽</b></td>
|
||||
<td height=7>".bar($wall)."</td>
|
||||
<td rowspan=2 align=center id=bg1><b>시세</b></td>
|
||||
<td rowspan=2 style='text-align:center;' class='bg1'><b>시세</b></td>
|
||||
<td height=7>".bar($trade)."</td>
|
||||
<td rowspan=2 align=center id=bg1><b>시중</b></td>
|
||||
<td rowspan=2 align=center>{$gen3['name']}</td>
|
||||
<td rowspan=2 style='text-align:center;' class='bg1'><b>시중</b></td>
|
||||
<td rowspan=2 style='text-align:center;'>{$gen3['name']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center>{$city['def']}/{$city['def2']}</td>
|
||||
<td align=center>{$city['wall']}/{$city['wall2']}</td>
|
||||
<td align=center>{$tradeStr}</td>
|
||||
<td style='text-align:center;'>{$city['def']}/{$city['def2']}</td>
|
||||
<td style='text-align:center;'>{$city['wall']}/{$city['wall2']}</td>
|
||||
<td style='text-align:center;'>{$tradeStr}</td>
|
||||
</tr>
|
||||
</table>
|
||||
";
|
||||
@@ -244,18 +257,17 @@ function cityInfo() {
|
||||
|
||||
function myNationInfo() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$query = "select startyear,year from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['startyear','year']);
|
||||
|
||||
$query = "select no,nation from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select nation,name,color,power,msg,gold,rice,bill,rate,scout,war,tricklimit,surlimit,tech,totaltech,level,type from nation where nation='{$me['nation']}'";
|
||||
$query = "select nation,name,color,power,msg,gold,rice,bill,rate,scout,war,sabotagelimit,surlimit,tech,totaltech,level,type from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
@@ -275,43 +287,43 @@ function myNationInfo() {
|
||||
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$level11 = MYDB_fetch_array($genresult);
|
||||
|
||||
echo "<table width=498 height=190 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
|
||||
echo "<table width=498 class='tb_layout bg2 nation_info'>
|
||||
<tr>
|
||||
<td colspan=4 align=center ";
|
||||
<td colspan=4 ";
|
||||
|
||||
if($me['nation'] == 0) { echo "style=color:white;background-color:000000;font-weight:bold;font-size:13px;>【재 야】"; }
|
||||
else { echo "style=color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;>국가【 {$nation['name']} 】"; }
|
||||
if($me['nation'] == 0) { echo "style='color:white;background-color:000000;font-weight:bold;font-size:13px;text-align:center;'>【재 야】"; }
|
||||
else { echo "style='color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;text-align:center'>국가【 {$nation['name']} 】"; }
|
||||
|
||||
echo "
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>성 향</b></td>
|
||||
<td align=center colspan=3><font color=\"yellow\">".getNationType($nation['type'])."</font> (".getNationType2($nation['type']).")</td>
|
||||
<td class='bg1 center'><b>성 향</b></td>
|
||||
<td colspan=3 class='center'><font color=\"yellow\">".getNationType($nation['type'])."</font> (".getNationType2($nation['type']).")</td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=68 align=center id=bg1><b>".getLevel(12, $nation['level'])."</b></td>
|
||||
<td width=178 align=center>";echo $level12?$level12['name']:"-"; echo "</td>
|
||||
<td width=68 align=center id=bg1><b>".getLevel(11, $nation['level'])."</b></td>
|
||||
<td width=178 align=center>";echo $level11?$level11['name']:"-"; echo "</td>
|
||||
<td width=68 class='bg1 center'><b>".getLevel(12, $nation['level'])."</b></td>
|
||||
<td width=178 class='center'>";echo $level12?$level12['name']:"-"; echo "</td>
|
||||
<td width=68 class='bg1 center'><b>".getLevel(11, $nation['level'])."</b></td>
|
||||
<td width=178 class='center'>";echo $level11?$level11['name']:"-"; echo "</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>총주민</b></td>
|
||||
<td align=center>";echo $me['nation']==0?"해당 없음":"{$city['totpop']}/{$city['maxpop']}";echo "</td>
|
||||
<td align=center id=bg1><b>총병사</b></td>
|
||||
<td align=center>";echo $me['nation']==0?"해당 없음":"{$general['totcrew']}/{$general['maxcrew']}"; echo "</td>
|
||||
<td class='bg1 center'><b>총주민</b></td>
|
||||
<td class='center'>";echo $me['nation']==0?"해당 없음":"{$city['totpop']}/{$city['maxpop']}";echo "</td>
|
||||
<td class='bg1 center'><b>총병사</b></td>
|
||||
<td class='center'>";echo $me['nation']==0?"해당 없음":"{$general['totcrew']}/{$general['maxcrew']}"; echo "</td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>국 고</b></td>
|
||||
<td align=center>";echo $me['nation']==0?"해당 없음":"{$nation['gold']}";echo "</td>
|
||||
<td align=center id=bg1><b>병 량</b></td>
|
||||
<td align=center>";echo $me['nation']==0?"해당 없음":"{$nation['rice']}";echo "</td>
|
||||
<td class='bg1 center'><b>국 고</b></td>
|
||||
<td class='center'>";echo $me['nation']==0?"해당 없음":"{$nation['gold']}";echo "</td>
|
||||
<td class='bg1 center'><b>병 량</b></td>
|
||||
<td class='center'>";echo $me['nation']==0?"해당 없음":"{$nation['rice']}";echo "</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>지급율</b></td>
|
||||
<td align=center>";
|
||||
<td class='bg1 center'><b>지급율</b></td>
|
||||
<td class='center'>";
|
||||
if($me['nation'] == 0) {
|
||||
echo "해당 없음";
|
||||
} else {
|
||||
@@ -319,8 +331,8 @@ function myNationInfo() {
|
||||
}
|
||||
echo "
|
||||
</td>
|
||||
<td align=center id=bg1><b>세 율</b></td>
|
||||
<td align=center>";
|
||||
<td class='bg1 center'><b>세 율</b></td>
|
||||
<td class='center'>";
|
||||
if($me['nation'] == 0) {
|
||||
echo "해당 없음";
|
||||
} else {
|
||||
@@ -335,14 +347,14 @@ function myNationInfo() {
|
||||
$nation['tech'] = "$techCall / {$nation['tech']}";
|
||||
|
||||
if($me['nation']==0){
|
||||
$nation['tricklimit'] = "<font color=white>해당 없음</font>";
|
||||
$nation['sabotagelimit'] = "<font color=white>해당 없음</font>";
|
||||
$nation['surlimit'] = "<font color=white>해당 없음</font>";
|
||||
$nation['scout'] = "<font color=white>해당 없음</font>";
|
||||
$nation['war'] = "<font color=white>해당 없음</font>";
|
||||
$nation['power'] = "<font color=white>해당 없음</font>";
|
||||
} else {
|
||||
if($nation['tricklimit'] != 0) { $nation['tricklimit'] = "<font color=red>{$nation['tricklimit']}턴</font>"; }
|
||||
else { $nation['tricklimit'] = "<font color=limegreen>가 능</font>"; }
|
||||
if($nation['sabotagelimit'] != 0) { $nation['sabotagelimit'] = "<font color=red>{$nation['sabotagelimit']}턴</font>"; }
|
||||
else { $nation['sabotagelimit'] = "<font color=limegreen>가 능</font>"; }
|
||||
|
||||
if($nation['surlimit'] != 0) { $nation['surlimit'] = "<font color=red>{$nation['surlimit']}턴</font>"; }
|
||||
else { $nation['surlimit'] = "<font color=limegreen>가 능</font>"; }
|
||||
@@ -360,28 +372,28 @@ function myNationInfo() {
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>속 령</b></td>
|
||||
<td align=center>";echo $me['nation']==0?"-":"{$city['cnt']}"; echo "</td>
|
||||
<td align=center id=bg1><b>장 수</b></td>
|
||||
<td align=center>";echo $me['nation']==0?"-":"{$general['cnt']}"; echo "</td>
|
||||
<td style='text-align:center;' class='bg1'><b>속 령</b></td>
|
||||
<td style='text-align:center;'>";echo $me['nation']==0?"-":"{$city['cnt']}"; echo "</td>
|
||||
<td style='text-align:center;' class='bg1'><b>장 수</b></td>
|
||||
<td style='text-align:center;'>";echo $me['nation']==0?"-":"{$general['cnt']}"; echo "</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>국 력</b></td>
|
||||
<td align=center>{$nation['power']}</td>
|
||||
<td align=center id=bg1><b>기술력</b></td>
|
||||
<td align=center>";echo $me['nation']==0?"-":"{$nation['tech']}"; echo "</td>
|
||||
<td style='text-align:center;' class='bg1'><b>국 력</b></td>
|
||||
<td style='text-align:center;'>{$nation['power']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>기술력</b></td>
|
||||
<td style='text-align:center;'>";echo $me['nation']==0?"-":"{$nation['tech']}"; echo "</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>전 략</b></td>
|
||||
<td align=center>{$nation['tricklimit']}</td>
|
||||
<td align=center id=bg1><b>외 교</b></td>
|
||||
<td align=center>{$nation['surlimit']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>전 략</b></td>
|
||||
<td style='text-align:center;'>{$nation['sabotagelimit']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>외 교</b></td>
|
||||
<td style='text-align:center;'>{$nation['surlimit']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>임 관</b></td>
|
||||
<td align=center>{$nation['scout']}</td>
|
||||
<td align=center id=bg1><b>전 쟁</b></td>
|
||||
<td align=center>{$nation['war']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>임 관</b></td>
|
||||
<td style='text-align:center;'>{$nation['scout']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>전 쟁</b></td>
|
||||
<td style='text-align:center;'>{$nation['war']}</td>
|
||||
</tr>
|
||||
</table>
|
||||
";
|
||||
@@ -421,12 +433,11 @@ function commandGroup($typename, $type=0) {
|
||||
|
||||
function commandTable() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$query = "select startyear,year,develcost,scenario from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'develcost', 'scenario']);
|
||||
|
||||
$query = "select no,npc,troop,city,nation,level,crew,makelimit,special from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -479,7 +490,7 @@ function commandTable() {
|
||||
$develcostE = Util::round($develcostE);
|
||||
|
||||
echo "
|
||||
<select name=commandtype size=1 style=width:260px;color:white;background-color:black;font-size:12;>";
|
||||
<select name=commandtype size=1 style=width:260px;color:white;background-color:black;font-size:12px;>";
|
||||
addCommand("휴 식", 0);
|
||||
addCommand("요 양", 50);
|
||||
commandGroup("========= 내 정 ==========");
|
||||
@@ -542,15 +553,13 @@ function commandTable() {
|
||||
} else {
|
||||
addCommand("인재탐색(랜덤경험, 자금$develcost)", 29, 0);
|
||||
}
|
||||
//TODO:등용장 재 디자인
|
||||
//xxx:등용장 일단 끔
|
||||
/*
|
||||
|
||||
if($me['level'] >= 1 && $city['supply'] != 0) {
|
||||
addCommand("등용(자금{$develcost5}+장수가치)", 22);
|
||||
} else {
|
||||
addCommand("등용(자금{$develcost5}+장수가치)", 22, 0);
|
||||
}
|
||||
*/
|
||||
|
||||
if($me['no'] == $troop['no'] && $citycount > 0 && $city['supply'] != 0 && $city['nation'] == $me['nation']) {
|
||||
addCommand("집합(통솔경험)", 26);
|
||||
} else {
|
||||
@@ -632,7 +641,13 @@ function commandTable() {
|
||||
if($me['level'] == 12) {
|
||||
addCommand("선양", 54);
|
||||
if($citycount != 0) {
|
||||
addCommand("방랑", 47);
|
||||
if ($admin['year'] + 3 < $admin['startyear']) {
|
||||
addCommand("방랑", 47, 0);
|
||||
}
|
||||
else{
|
||||
addCommand("방랑", 47);
|
||||
}
|
||||
|
||||
addCommand("해산", 56, 0);
|
||||
} else {
|
||||
addCommand("방랑", 47, 0);
|
||||
@@ -657,12 +672,11 @@ function commandTable() {
|
||||
|
||||
function CoreCommandTable() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$query = "select develcost from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$develcost = $gameStor->develcost;
|
||||
|
||||
$query = "select no,nation,city,level from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -709,8 +723,8 @@ function CoreCommandTable() {
|
||||
commandGroup("", 1);
|
||||
commandGroup("====== 특 수 ======");
|
||||
addCommand("초토화", 65, $valid);
|
||||
addCommand("천도/3턴(금쌀{$admin['develcost']}0)", 66, $valid);
|
||||
$cost = $admin['develcost'] * 500 + 60000; // 7만~13만
|
||||
addCommand("천도/3턴(금쌀{$develcost}0)", 66, $valid);
|
||||
$cost = $develcost * 500 + 60000; // 7만~13만
|
||||
addCommand("증축/6턴(금쌀{$cost})", 67, $valid);
|
||||
addCommand("감축/6턴", 68, $valid);
|
||||
commandGroup("", 1);
|
||||
@@ -759,11 +773,10 @@ function myInfo() {
|
||||
|
||||
function generalInfo($no) {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select show_img_level from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$show_img_level = $gameStor->show_img_level;
|
||||
|
||||
$query = "select block,no,name,picture,imgsvr,injury,nation,city,troop,leader,leader2,power,power2,intel,intel2,explevel,experience,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,killturn,age,personal,special,specage,special2,specage2,mode,con,connect from general where no='$no'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -858,78 +871,78 @@ function generalInfo($no) {
|
||||
elseif($general['mode'] == 1) { $general['mode'] = "<font color=limegreen>수비 함(훈사60)</font>"; }
|
||||
else { $general['mode'] = "<font color=red>수비 안함</font>"; }
|
||||
|
||||
$weapImage = ServConfig::$gameImagePath."/weap{$general['crewtype']}.jpg";
|
||||
if($admin['show_img_level'] < 2) { $weapImage = ServConfig::$sharedIconPath."/default.jpg"; };
|
||||
$weapImage = ServConfig::$gameImagePath."/weap{$general['crewtype']}.png";
|
||||
if($show_img_level < 2) { $weapImage = ServConfig::$sharedIconPath."/default.jpg"; };
|
||||
$imageTemp = GetImageURL($general['imgsvr']);
|
||||
echo "<table width=498 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
|
||||
echo "<table width=498 class='tb_layout bg2'>
|
||||
<tr>
|
||||
<td width=64 height=64 align=center rowspan=3 background={$imageTemp}/{$general['picture']}> </td>
|
||||
<td align=center colspan=9 height=16 style=color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;>{$general['name']} 【 {$level} | {$call} | {$color}{$injury}</font> 】 ".substr($general['turntime'], 11)."</td>
|
||||
<td width=64 height=64 rowspan=3 style='text-align:center;background:no-repeat center url(\"{$imageTemp}/{$general['picture']}\");background-size:64px;'> </td>
|
||||
<td colspan=9 height=16 style=text-align:center;color:".newColor($nation['color']).";background-color:{$nation['color']};font-weight:bold;font-size:13px;>{$general['name']} 【 {$level} | {$call} | {$color}{$injury}</font> 】 ".substr($general['turntime'], 11)."</td>
|
||||
</tr>
|
||||
<tr height=16>
|
||||
<td align=center id=bg1><b>통솔</b></td>
|
||||
<td align=center> {$color}{$leader}</font>{$lbonus} </td>
|
||||
<td align=center width=45>".bar(expStatus($general['leader2']), 20)."</td>
|
||||
<td align=center id=bg1><b>무력</b></td>
|
||||
<td align=center> {$color}{$power}</font> </td>
|
||||
<td align=center width=45>".bar(expStatus($general['power2']), 20)."</td>
|
||||
<td align=center id=bg1><b>지력</b></td>
|
||||
<td align=center> {$color}{$intel}</font> </td>
|
||||
<td align=center width=45>".bar(expStatus($general['intel2']), 20)."</td>
|
||||
<td style='text-align:center;' class='bg1'><b>통솔</b></td>
|
||||
<td style='text-align:center;'> {$color}{$leader}</font>{$lbonus} </td>
|
||||
<td style='text-align:center;' width=45>".bar(expStatus($general['leader2']), 20)."</td>
|
||||
<td style='text-align:center;' class='bg1'><b>무력</b></td>
|
||||
<td style='text-align:center;'> {$color}{$power}</font> </td>
|
||||
<td style='text-align:center;' width=45>".bar(expStatus($general['power2']), 20)."</td>
|
||||
<td style='text-align:center;' class='bg1'><b>지력</b></td>
|
||||
<td style='text-align:center;'> {$color}{$intel}</font> </td>
|
||||
<td style='text-align:center;' width=45>".bar(expStatus($general['intel2']), 20)."</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>명마</b></td>
|
||||
<td align=center colspan=2><font size=1>$horsename</font></td>
|
||||
<td align=center id=bg1><b>무기</b></td>
|
||||
<td align=center colspan=2><font size=1>$weapname</font></td>
|
||||
<td align=center id=bg1><b>서적</b></td>
|
||||
<td align=center colspan=2><font size=1>$bookname</font></td>
|
||||
<td style='text-align:center;' class='bg1'><b>명마</b></td>
|
||||
<td style='text-align:center;' colspan=2><font size=1>$horsename</font></td>
|
||||
<td style='text-align:center;' class='bg1'><b>무기</b></td>
|
||||
<td style='text-align:center;' colspan=2><font size=1>$weapname</font></td>
|
||||
<td style='text-align:center;' class='bg1'><b>서적</b></td>
|
||||
<td style='text-align:center;' colspan=2><font size=1>$bookname</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center height=64 rowspan=3 background={$weapImage}> </td>
|
||||
<td align=center id=bg1><b>자금</b></td>
|
||||
<td align=center colspan=2>{$general['gold']}</td>
|
||||
<td align=center id=bg1><b>군량</b></td>
|
||||
<td align=center colspan=2>{$general['rice']}</td>
|
||||
<td align=center id=bg1><b>도구</b></td>
|
||||
<td align=center colspan=2><font size=1>$itemname</font></td>
|
||||
<td height=64 rowspan=3 style='text-align:center;background:no-repeat center url(\"{$weapImage}\");background-size:64px;'></td>
|
||||
<td style='text-align:center;' class='bg1'><b>자금</b></td>
|
||||
<td style='text-align:center;' colspan=2>{$general['gold']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>군량</b></td>
|
||||
<td style='text-align:center;' colspan=2>{$general['rice']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>도구</b></td>
|
||||
<td style='text-align:center;' colspan=2><font size=1>$itemname</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>병종</b></td>
|
||||
<td align=center colspan=2>$typename</td>
|
||||
<td align=center id=bg1><b>병사</b></td>
|
||||
<td align=center colspan=2>{$general['crew']}</td>
|
||||
<td align=center id=bg1><b>성격</b></td>
|
||||
<td align=center colspan=2>".getGenChar($general['personal'])."</td>
|
||||
<td style='text-align:center;' class='bg1'><b>병종</b></td>
|
||||
<td style='text-align:center;' colspan=2>$typename</td>
|
||||
<td style='text-align:center;' class='bg1'><b>병사</b></td>
|
||||
<td style='text-align:center;' colspan=2>{$general['crew']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>성격</b></td>
|
||||
<td style='text-align:center;' colspan=2>".getGenChar($general['personal'])."</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>훈련</b></td>
|
||||
<td align=center colspan=2>$train</td>
|
||||
<td align=center id=bg1><b>사기</b></td>
|
||||
<td align=center colspan=2>$atmos</td>
|
||||
<td align=center id=bg1><b>특기</b></td>
|
||||
<td align=center colspan=2>$special / $special2</td>
|
||||
<td style='text-align:center;' class='bg1'><b>훈련</b></td>
|
||||
<td style='text-align:center;' colspan=2>$train</td>
|
||||
<td style='text-align:center;' class='bg1'><b>사기</b></td>
|
||||
<td style='text-align:center;' colspan=2>$atmos</td>
|
||||
<td style='text-align:center;' class='bg1'><b>특기</b></td>
|
||||
<td style='text-align:center;' colspan=2>$special / $special2</td>
|
||||
</tr>
|
||||
<tr height=20>
|
||||
<td align=center id=bg1><b>Lv</b></td>
|
||||
<td align=center> {$general['explevel']} </td>
|
||||
<td align=center colspan=5>".bar(getLevelPer($general['experience'], $general['explevel']), 20)."</td>
|
||||
<td align=center id=bg1><b>연령</b></td>
|
||||
<td align=center colspan=2>{$general['age']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>Lv</b></td>
|
||||
<td style='text-align:center;'> {$general['explevel']} </td>
|
||||
<td style='text-align:center;' colspan=5>".bar(getLevelPer($general['experience'], $general['explevel']), 20)."</td>
|
||||
<td style='text-align:center;' class='bg1'><b>연령</b></td>
|
||||
<td style='text-align:center;' colspan=2>{$general['age']}</td>
|
||||
</tr>
|
||||
<tr height=20>
|
||||
<td align=center id=bg1><b>수비</b></td>
|
||||
<td align=center colspan=3>{$general['mode']}</td>
|
||||
<td align=center id=bg1><b>삭턴</b></td>
|
||||
<td align=center colspan=2>{$general['killturn']} 턴</td>
|
||||
<td align=center id=bg1><b>실행</b></td>
|
||||
<td align=center colspan=2>$remaining 분 남음</td>
|
||||
<td style='text-align:center;' class='bg1'><b>수비</b></td>
|
||||
<td style='text-align:center;' colspan=3>{$general['mode']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>삭턴</b></td>
|
||||
<td style='text-align:center;' colspan=2>{$general['killturn']} 턴</td>
|
||||
<td style='text-align:center;' class='bg1'><b>실행</b></td>
|
||||
<td style='text-align:center;' colspan=2>$remaining 분 남음</td>
|
||||
</tr>
|
||||
<tr height=20>
|
||||
<td align=center id=bg1><b>부대</b></td>
|
||||
<td align=center colspan=3>{$troop['name']}</td>
|
||||
<td align=center id=bg1><b>벌점</b></td>
|
||||
<td align=center colspan=5>".getConnect($general['connect'])." {$general['connect']}({$general['con']})</td>
|
||||
<td style='text-align:center;' class='bg1'><b>부대</b></td>
|
||||
<td style='text-align:center;' colspan=3>{$troop['name']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>벌점</b></td>
|
||||
<td style='text-align:center;' colspan=5>".getConnect($general['connect'])." {$general['connect']}({$general['con']})</td>
|
||||
</tr>
|
||||
</table>";
|
||||
}
|
||||
@@ -947,8 +960,6 @@ function myInfo2() {
|
||||
}
|
||||
|
||||
function generalInfo2($no) {
|
||||
global $_dexLimit;
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
@@ -974,11 +985,11 @@ function generalInfo2($no) {
|
||||
$dedication = getDed($general['dedication'])." ({$general['dedication']})"; break;
|
||||
}
|
||||
|
||||
$dex0 = $general['dex0'] / $_dexLimit * 100;
|
||||
$dex10 = $general['dex10'] / $_dexLimit * 100;
|
||||
$dex20 = $general['dex20'] / $_dexLimit * 100;
|
||||
$dex30 = $general['dex30'] / $_dexLimit * 100;
|
||||
$dex40 = $general['dex40'] / $_dexLimit * 100;
|
||||
$dex0 = $general['dex0'] / GameConst::$dexLimit * 100;
|
||||
$dex10 = $general['dex10'] / GameConst::$dexLimit * 100;
|
||||
$dex20 = $general['dex20'] / GameConst::$dexLimit * 100;
|
||||
$dex30 = $general['dex30'] / GameConst::$dexLimit * 100;
|
||||
$dex40 = $general['dex40'] / GameConst::$dexLimit * 100;
|
||||
|
||||
if($dex0 > 100) { $dex0 = 100; }
|
||||
if($dex10 > 100) { $dex10 = 100; }
|
||||
@@ -986,104 +997,107 @@ function generalInfo2($no) {
|
||||
if($dex30 > 100) { $dex30 = 100; }
|
||||
if($dex40 > 100) { $dex40 = 100; }
|
||||
|
||||
$general['dex0'] = getDexCall($general['dex0']);
|
||||
$general['dex10'] = getDexCall($general['dex10']);
|
||||
$general['dex20'] = getDexCall($general['dex20']);
|
||||
$general['dex30'] = getDexCall($general['dex30']);
|
||||
$general['dex40'] = getDexCall($general['dex40']);
|
||||
$general['dex0_text'] = getDexCall($general['dex0']);
|
||||
$general['dex10_text'] = getDexCall($general['dex10']);
|
||||
$general['dex20_text'] = getDexCall($general['dex20']);
|
||||
$general['dex30_text'] = getDexCall($general['dex30']);
|
||||
$general['dex40_text'] = getDexCall($general['dex40']);
|
||||
|
||||
echo "<table width=498 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
|
||||
<tr><td align=center colspan=6 id=bg1><b>추 가 정 보</b></td></tr>
|
||||
$general['dex0_short'] = sprintf('%.1fK', $general['dex0']/1000);
|
||||
$general['dex10_short'] = sprintf('%.1fK', $general['dex10']/1000);
|
||||
$general['dex20_short'] = sprintf('%.1fK', $general['dex20']/1000);
|
||||
$general['dex30_short'] = sprintf('%.1fK', $general['dex30']/1000);
|
||||
$general['dex40_short'] = sprintf('%.1fK', $general['dex40']/1000);
|
||||
|
||||
echo "<table width=498 class='tb_layout bg2'>
|
||||
<tr><td style='text-align:center;' colspan=6 class='bg1'><b>추 가 정 보</b></td></tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>명성</b></td>
|
||||
<td align=center>$experience</td>
|
||||
<td align=center id=bg1><b>계급</b></td>
|
||||
<td align=center colspan=3>$dedication</td>
|
||||
<td style='text-align:center;' class='bg1'><b>명성</b></td>
|
||||
<td style='text-align:center;'>$experience</td>
|
||||
<td style='text-align:center;' class='bg1'><b>계급</b></td>
|
||||
<td style='text-align:center;' colspan=3>$dedication</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=64 align=center id=bg1><b>전투</b></td>
|
||||
<td width=132 align=center>{$general['warnum']}</td>
|
||||
<td width=48 align=center id=bg1><b>계략</b></td>
|
||||
<td width=98 align=center>{$general['firenum']}</td>
|
||||
<td width=48 align=center id=bg1><b>사관</b></td>
|
||||
<td width=98 align=center>{$general['belong']}년</td>
|
||||
<td width=64 style='text-align:center;' class='bg1'><b>전투</b></td>
|
||||
<td width=132 style='text-align:center;'>{$general['warnum']}</td>
|
||||
<td width=48 style='text-align:center;' class='bg1'><b>계략</b></td>
|
||||
<td width=98 style='text-align:center;'>{$general['firenum']}</td>
|
||||
<td width=48 style='text-align:center;' class='bg1'><b>사관</b></td>
|
||||
<td width=98 style='text-align:center;'>{$general['belong']}년</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>승률</b></td>
|
||||
<td align=center>{$general['winrate']} %</td>
|
||||
<td align=center id=bg1><b>승리</b></td>
|
||||
<td align=center>{$general['killnum']}</td>
|
||||
<td align=center id=bg1><b>패배</b></td>
|
||||
<td align=center>{$general['deathnum']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>승률</b></td>
|
||||
<td style='text-align:center;'>{$general['winrate']} %</td>
|
||||
<td style='text-align:center;' class='bg1'><b>승리</b></td>
|
||||
<td style='text-align:center;'>{$general['killnum']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>패배</b></td>
|
||||
<td style='text-align:center;'>{$general['deathnum']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center id=bg1><b>살상률</b></td>
|
||||
<td align=center>{$general['killrate']} %</td>
|
||||
<td align=center id=bg1><b>사살</b></td>
|
||||
<td align=center>{$general['killcrew']}</td>
|
||||
<td align=center id=bg1><b>피살</b></td>
|
||||
<td align=center>{$general['deathcrew']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>살상률</b></td>
|
||||
<td style='text-align:center;'>{$general['killrate']} %</td>
|
||||
<td style='text-align:center;' class='bg1'><b>사살</b></td>
|
||||
<td style='text-align:center;'>{$general['killcrew']}</td>
|
||||
<td style='text-align:center;' class='bg1'><b>피살</b></td>
|
||||
<td style='text-align:center;'>{$general['deathcrew']}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table width=498 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg2>
|
||||
<tr><td align=center colspan=3 id=bg1><b>숙 련 도</b></td></tr>
|
||||
<table width=498 class='tb_layout bg2'>
|
||||
<tr><td style='text-align:center;' colspan=4 class='bg1'><b>숙 련 도</b></td></tr>
|
||||
<tr height=16>
|
||||
<td width=64 align=center id=bg1><b>보병</b></td>
|
||||
<td width=64> {$general['dex0']}</td>
|
||||
<td width=366 align=center>".bar($dex0, 16)."</td>
|
||||
<td width=64 style='text-align:center;' class='bg1'><b>보병</b></td>
|
||||
<td width=40> {$general['dex0_text']}</td>
|
||||
<td width=60 align=right>{$general['dex0_short']} </td>
|
||||
<td width=330 style='text-align:center;'>".bar($dex0, 16)."</td>
|
||||
</tr>
|
||||
<tr height=16>
|
||||
<td align=center id=bg1><b>궁병</b></td>
|
||||
<td> {$general['dex10']}</td>
|
||||
<td align=center>".bar($dex10, 16)."</td>
|
||||
<td style='text-align:center;' class='bg1'><b>궁병</b></td>
|
||||
<td> {$general['dex10_text']}</td>
|
||||
<td align=right>{$general['dex10_short']} </td>
|
||||
<td style='text-align:center;'>".bar($dex10, 16)."</td>
|
||||
</tr>
|
||||
<tr height=16>
|
||||
<td align=center id=bg1><b>기병</b></td>
|
||||
<td> {$general['dex20']}</td>
|
||||
<td align=center>".bar($dex20, 16)."</td>
|
||||
<td style='text-align:center;' class='bg1'><b>기병</b></td>
|
||||
<td> {$general['dex20_text']}</td>
|
||||
<td align=right>{$general['dex20_short']} </td>
|
||||
<td style='text-align:center;'>".bar($dex20, 16)."</td>
|
||||
</tr>
|
||||
<tr height=16>
|
||||
<td align=center id=bg1><b>귀병</b></td>
|
||||
<td> {$general['dex30']}</td>
|
||||
<td align=center>".bar($dex30, 16)."</td>
|
||||
<td style='text-align:center;' class='bg1'><b>귀병</b></td>
|
||||
<td> {$general['dex30_text']}</td>
|
||||
<td align=right>{$general['dex30_short']} </td>
|
||||
<td style='text-align:center;'>".bar($dex30, 16)."</td>
|
||||
</tr>
|
||||
<tr height=16>
|
||||
<td align=center id=bg1><b>차병</b></td>
|
||||
<td> {$general['dex40']}</td>
|
||||
<td align=center>".bar($dex40, 16)."</td>
|
||||
<td style='text-align:center;' class='bg1'><b>차병</b></td>
|
||||
<td> {$general['dex40_text']}</td>
|
||||
<td align=right>{$general['dex40_short']} </td>
|
||||
<td style='text-align:center;'>".bar($dex40, 16)."</td>
|
||||
</tr>
|
||||
</table>";
|
||||
}
|
||||
|
||||
function adminMsg() {
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$msg = $gameStor->msg;
|
||||
|
||||
$query = "select msg from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
echo "운영자 메세지 : <font color=yellow>";
|
||||
echo $admin['msg']."</font>";
|
||||
return "운영자 메세지 : <span style='color:yellow;'>$msg</span>";
|
||||
}
|
||||
|
||||
function getOnlineNum() {
|
||||
return DB::db()->queryFirstField('select `online` from `game` where `no`=1');
|
||||
return KVStorage::getStorage(DB::db(), 'game_env')->online;
|
||||
}
|
||||
|
||||
function onlinegen() {
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
$onlinegen = "";
|
||||
$generalID = Session::getInstance()->generalID;
|
||||
$nationID = DB::db()->queryFirstField('select `nation` from `general` where `no` = %i', $generalID);
|
||||
if($nationID === null || Util::toInt($nationID) === 0) {
|
||||
$query = "select onlinegen from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$game = MYDB_fetch_array($result);
|
||||
|
||||
$onlinegen = $game['onlinegen'];
|
||||
$onlinegen = $gameStor->onlinegen;
|
||||
} else {
|
||||
$onlinegen = DB::db()->queryFirstField('select onlinegen from nation where nation=%i',$nationID);
|
||||
}
|
||||
@@ -1092,12 +1106,9 @@ function onlinegen() {
|
||||
|
||||
function onlineNation() {
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
$query = "select onlinenation from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$game = MYDB_fetch_array($result);
|
||||
return $game['onlinenation'];
|
||||
return $gameStor->onlinenation;
|
||||
}
|
||||
|
||||
function nationMsg() {
|
||||
@@ -1105,32 +1116,12 @@ function nationMsg() {
|
||||
$connect=$db->get();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$query = "select no,nation from general where owner='{$userID}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$me = MYDB_fetch_array($result);
|
||||
$msg = $db->queryFirstField(
|
||||
'SELECT msg FROM nation WHERE nation = (SELECT nation FROM general WHERE `owner` = %i)',
|
||||
$userID
|
||||
);
|
||||
|
||||
$query = "select msg from nation where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
echo "<font color=orange>".$nation['msg']."</font>";
|
||||
}
|
||||
|
||||
|
||||
function PushMsg($type, $nation, $picture, $imgsvr, $from, $fromcolor, $to, $tocolor, $msg) {
|
||||
if($nation == 0) { $nation = 0; }
|
||||
if($fromcolor == "") { $fromcolor = "#FFFFFF"; }
|
||||
if($to == "") { $to = "재야"; }
|
||||
if($tocolor == "") { $tocolor = "#FFFFFF"; }
|
||||
|
||||
$date = date('Y-m-d H:i:s');
|
||||
if($type == 1) { $file = "_all_msg.txt"; }
|
||||
else { $file = "_nation_msg{$nation}.txt"; }
|
||||
$fp = fopen("logs/{$file}", "a");
|
||||
//로그 파일에 기록
|
||||
$str = "{$type}|".StringUtil::padStringAlignRight($from,12," ")."|".StringUtil::padStringAlignRight($to,12," ")."|".$date."|".$msg."|".$fromcolor."|".$tocolor."|".$picture."|".$imgsvr;
|
||||
fwrite($fp, "{$str}\n");
|
||||
fclose($fp);
|
||||
return $msg?:'';
|
||||
}
|
||||
|
||||
function msgprint($msg, $name, $picture, $imgsvr, $when, $num, $type) {
|
||||
@@ -1149,15 +1140,15 @@ function msgprint($msg, $name, $picture, $imgsvr, $when, $num, $type) {
|
||||
|
||||
$imageTemp = GetImageURL($imgsvr);
|
||||
echo "
|
||||
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
|
||||
<table style='text-align:center;' width=1000 class='tb_layout bg0'>
|
||||
<tr>
|
||||
<td width=64 align=center id=bg1><font size=1>$name</font></td>
|
||||
<td width=772 align=center id=bg1><font size=4><b>$message[0]</b></font></td>
|
||||
<td width=148 align=center id=bg1>$when</td>
|
||||
<td width=90 style='text-align:center;' class='bg1'><font size=1>$name</font></td>
|
||||
<td width=746 style='text-align:center;' class='bg1'><font size=4><b>$message[0]</b></font></td>
|
||||
<td width=148 style='text-align:center;' class='bg1'>$when</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=64 height=64 valign=top><img src={$imageTemp}/{$picture} width=64 height=64 border=0></td>
|
||||
<td width=932 colspan=2>$message[1]</td>
|
||||
<td width=90 height=64 valign=top><img width='64' height='64' src={$imageTemp}/{$picture} border='0'></td>
|
||||
<td width=906 colspan=2>$message[1]</td>
|
||||
</tr>";
|
||||
for($i=0; $i < $count; $i++) {
|
||||
$who = Tag2Code($message[2+$i*2]);
|
||||
@@ -1167,16 +1158,16 @@ function msgprint($msg, $name, $picture, $imgsvr, $when, $num, $type) {
|
||||
$regen = MYDB_fetch_array($result);
|
||||
echo "
|
||||
<tr>
|
||||
<td width=64 align=center><font size=1>{$regen['name']}</font></td>
|
||||
<td width=932 colspan=2>$reply</td>
|
||||
<td width=90 style='text-align:center;'><font size=1>{$regen['name']}</font></td>
|
||||
<td width=906 colspan=2>$reply</td>
|
||||
</tr>";
|
||||
}
|
||||
echo "
|
||||
<tr>
|
||||
<form name=reply_form{$num} method=post action=$board>
|
||||
<td width=64 align=center>댓글달기</td>
|
||||
<td width=932 colspan=2>
|
||||
<input type=textarea name=reply maxlength=250 style=color:white;background-color:black;width:830;>
|
||||
<td width=90 style='text-align:center;'>댓글달기</td>
|
||||
<td width=906 colspan=2>
|
||||
<input type=textarea name=reply maxlength=250 style=color:white;background-color:black;width:804px;>
|
||||
<input type=submit value=댓글달기>
|
||||
<input type=hidden name=num value=$num>
|
||||
</td>
|
||||
@@ -1252,14 +1243,14 @@ function cutDay($date, int $turnterm) {
|
||||
function increaseRefresh($type="", $cnt=1) {
|
||||
//FIXME: 로그인, 비로그인 시 처리가 명확하지 않음
|
||||
$session = Session::getInstance();
|
||||
$userID = $session->userID;
|
||||
$generalID = $session->generalID;
|
||||
|
||||
$date = date('Y-m-d H:i:s');
|
||||
|
||||
$db = DB::db();
|
||||
$db->update('game', [
|
||||
'refresh'=>$db->sqleval('refresh+%i', $cnt)
|
||||
], true);
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$gameStor->refresh = $gameStor->refresh+$cnt; //TODO: +로 증가하는 값은 별도로 분리
|
||||
|
||||
if($generalID) {
|
||||
$db->update('general', [
|
||||
@@ -1268,14 +1259,14 @@ function increaseRefresh($type="", $cnt=1) {
|
||||
'connect'=>$db->sqleval('connect + %i', $cnt),
|
||||
'refcnt'=>$db->sqleval('refcnt + %i', $cnt),
|
||||
'refresh'=>$db->sqleval('refresh + %i', $cnt)
|
||||
], 'owner=%i', $generalID);
|
||||
], 'owner=%i', $userID);
|
||||
}
|
||||
|
||||
$date = date('Y_m_d H:i:s');
|
||||
$date2 = substr($date, 0, 10);
|
||||
$online = getOnlineNum();
|
||||
file_put_contents(
|
||||
"logs/_{$date2}_refresh.txt",
|
||||
__dir__."/logs/".UniqueConst::$serverID."/_{$date2}_refresh.txt",
|
||||
sprintf(
|
||||
"%s, %s, %s, %s, %s, %d\n",
|
||||
$date,
|
||||
@@ -1312,7 +1303,7 @@ function increaseRefresh($type="", $cnt=1) {
|
||||
}
|
||||
if($str != "") {
|
||||
file_put_contents(
|
||||
"logs/_{$date2}_ipcheck.txt",
|
||||
__dir__."/logs/".UniqueConst::$serverID."/_{$date2}_ipcheck.txt",
|
||||
sprintf(
|
||||
"%s, %s, %s%s\n",
|
||||
$session->userName,
|
||||
@@ -1327,49 +1318,49 @@ function increaseRefresh($type="", $cnt=1) {
|
||||
function updateTraffic() {
|
||||
$online = getOnlineNum();
|
||||
$db = DB::db();
|
||||
$game = $db->queryFirstRow('SELECT year,month,refresh,maxonline,maxrefresh from game limit 1');
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$admin = $gameStor->getValues(['year','month','refresh','maxonline','maxrefresh']);
|
||||
|
||||
//최다갱신자
|
||||
$user = $db->queryFirstRow('select name,refresh from general order by refresh desc limit 1');
|
||||
|
||||
if($game['maxrefresh'] < $game['refresh']) {
|
||||
$game['maxrefresh'] = $game['refresh'];
|
||||
if($admin['maxrefresh'] < $admin['refresh']) {
|
||||
$admin['maxrefresh'] = $admin['refresh'];
|
||||
}
|
||||
if($game['maxonline'] < $online) {
|
||||
$game['maxonline'] = $online;
|
||||
if($admin['maxonline'] < $online) {
|
||||
$admin['maxonline'] = $online;
|
||||
}
|
||||
$db->update('game',[
|
||||
'refresh'=>0,
|
||||
'maxrefresh'=>$game['maxrefresh'],
|
||||
'maxonline'=>$game['maxonline']
|
||||
], true);
|
||||
$gameStor->refresh = 0;
|
||||
$gameStor->maxrefresh = $admin['maxrefresh'];
|
||||
$gameStor->maxonline = $admin['maxonline'];
|
||||
|
||||
$db->update('general', ['refresh'=>0], true);
|
||||
|
||||
$date = date('Y-m-d H:i:s');
|
||||
//일시|년|월|총갱신|접속자|최다갱신자
|
||||
file_put_contents(__dir__."/logs/_traffic.txt",
|
||||
StringUtil::padStringAlignRight($date,20," ")
|
||||
."|".StringUtil::padStringAlignRight($game['year'],3," ")
|
||||
."|".StringUtil::padStringAlignRight($game['month'],2," ")
|
||||
."|".StringUtil::padStringAlignRight($game['refresh'],8," ")
|
||||
."|".StringUtil::padStringAlignRight($online,5," ")
|
||||
."|".StringUtil::padStringAlignRight($user['name']."(".$user['refresh'].")",20," ")
|
||||
file_put_contents(__dir__."/logs/".UniqueConst::$serverID."/_traffic.txt",
|
||||
Json::encode([
|
||||
$date,
|
||||
$admin['year'],
|
||||
$admin['month'],
|
||||
$admin['refresh'],
|
||||
$online,
|
||||
$user['name']."(".$user['refresh'].")"
|
||||
])."\n"
|
||||
, FILE_APPEND);
|
||||
}
|
||||
|
||||
function CheckOverhead() {
|
||||
//서버정보
|
||||
$db = DB::db();
|
||||
$admin = $db->queryFirstRow('SELECT turnterm, conlimit from GAME LIMIT 1');
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
list($turnterm, $conlimit) = $gameStor->getValuesAsArray(['turnterm', 'conlimit']);
|
||||
|
||||
$con = Util::round(pow($admin['turnterm'], 0.6) * 3) * 10;
|
||||
$con = Util::round(pow($turnterm, 0.6) * 3) * 10;
|
||||
|
||||
|
||||
if($con != $admin['conlimit']){
|
||||
$db->update('game', [
|
||||
'conlimit' => $con
|
||||
], true);
|
||||
if($con != $conlimit){
|
||||
$gameStor->conlimit = $con;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1407,27 +1398,30 @@ function unlock() {
|
||||
}
|
||||
|
||||
function timeover() {
|
||||
$admin = DB::db()->queryFirstRow(
|
||||
'SELECT turnterm,TIMESTAMPDIFF(SECOND,turntime,now()) as diff from game limit 1'
|
||||
);
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
$t = min($admin['turnterm'], 5);
|
||||
list($turnterm, $turntime) = $gameStor->getValuesAsArray(['turnterm', 'turntime']);
|
||||
$diff = (new \DateTime())->getTimestamp() - (new \DateTime($turntime))->getTimestamp();
|
||||
|
||||
$term = $admin['diff'];
|
||||
$t = min($turnterm, 5);
|
||||
|
||||
$term = $diff;
|
||||
if($term >= $t || $term < 0) { return 1; }
|
||||
else { return 0; }
|
||||
}
|
||||
|
||||
function checkDelay() {
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
//서버정보
|
||||
$query = "select turnterm,now() as now,TIMESTAMPDIFF(MINUTE,turntime,now()) as offset from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$now = new \DateTimeImmutable();
|
||||
$turntime = new \DateTimeImmutable($gameStor->turntime);
|
||||
$timeMinDiff = intdiv($now->getTimestamp() - $turntime->getTimestamp(), 60);
|
||||
|
||||
// 1턴이상 갱신 없었으면 서버 지연
|
||||
$term = $admin['turnterm'];
|
||||
$term = $gameStor->turnterm;
|
||||
if($term >= 20){
|
||||
$threshold = 1;
|
||||
}
|
||||
@@ -1438,28 +1432,36 @@ function checkDelay() {
|
||||
$threshold = 3;
|
||||
}
|
||||
//지연 해야할 밀린 턴 횟수
|
||||
$iter = intdiv($admin['offset'], $term);
|
||||
$iter = intdiv($timeMinDiff, $term);
|
||||
if($iter > $threshold) {
|
||||
$minute = $iter * $term;
|
||||
$query = "update game set turntime=DATE_ADD(turntime, INTERVAL $minute MINUTE),starttime=DATE_ADD(starttime, INTERVAL $minute MINUTE),tnmt_time=DATE_ADD(tnmt_time, INTERVAL $minute MINUTE)";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update general set turntime=DATE_ADD(turntime, INTERVAL $minute MINUTE) where turntime<=DATE_ADD(turntime, INTERVAL $term MINUTE)";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update auction set expire=DATE_ADD(expire, INTERVAL $minute MINUTE)";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$newTurntime = $turntime->add(new \DateInterval("PT{$minute}M"));
|
||||
$newNextTurntime = $turntime->add(new \DateInterval("PT{$term}M"));
|
||||
$gameStor->turntime = $newTurntime->format('Y-m-d H:i:s');
|
||||
$gameStor->starttime = (new \DateTimeImmutable($gameStor->starttime))
|
||||
->add(new \DateInterval("PT{$minute}M"))
|
||||
->format('Y-m-d H:i:s');
|
||||
|
||||
$db->update('general', [
|
||||
'turntime'=> $db->sqleval('DATE_ADD(turntime, INTERVAL %i MINUTE)', $minute)
|
||||
], 'turntime<=DATE_ADD(turntime, INTERVAL %i MINUTE)', $term);
|
||||
$db->update('auction', [
|
||||
'expire'=> $db->sqleval('DATE_ADD(expire, INTERVAL %i MINUTE)', $minute)
|
||||
], true);
|
||||
}
|
||||
}
|
||||
|
||||
function updateOnline() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
$nationname = [];
|
||||
$nationname = ["재야"];
|
||||
|
||||
//국가별 이름 매핑
|
||||
foreach(getAllNationStaticInfo() as $nation) {
|
||||
$nationname[$nation['nation']] = $nation['name'];
|
||||
}
|
||||
$nationname[0] = "재야";
|
||||
|
||||
|
||||
//동접수
|
||||
$query = "select no,name,nation from general where lastrefresh > DATE_SUB(NOW(), INTERVAL 5 MINUTE)";
|
||||
@@ -1485,8 +1487,7 @@ function updateOnline() {
|
||||
$onnationstr .= "【{$nationname[$key]}】, ";
|
||||
|
||||
if($key == 0) {
|
||||
$query = "update game set onlinegen='$onnation[0]'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->onlinegen = $onnation[0];
|
||||
} else {
|
||||
$query = "update nation set onlinegen='$onnation[$key]' where nation='$key'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -1495,12 +1496,13 @@ function updateOnline() {
|
||||
}
|
||||
|
||||
//접속중인 국가
|
||||
$query = "update game set online='$onlinenum',onlinenation='$onnationstr'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->online = $onlinenum;
|
||||
$gameStor->onlinenation = $onnationstr;
|
||||
}
|
||||
|
||||
function checkTurn() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$alllog = [];
|
||||
@@ -1511,7 +1513,7 @@ function checkTurn() {
|
||||
|
||||
// 파일락 획득
|
||||
//FIXME:이미 DB 테이블로 lock을 시도하는데 이게 따로 필요한가?
|
||||
$fp = fopen('lock.txt', 'r');
|
||||
$fp = fopen(__dir__.'/lock.txt', 'r');
|
||||
if(!flock($fp, LOCK_EX)) {
|
||||
return;
|
||||
}
|
||||
@@ -1535,14 +1537,11 @@ function checkTurn() {
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', 진입');
|
||||
|
||||
//천통시에는 동결
|
||||
$query = "select turntime from game where isUnited=2";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$down = MYDB_num_rows($result);
|
||||
if($down > 0) {
|
||||
$query = "update plock set plock=1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
if($gameStor->isunited == 2) {
|
||||
$db->update('plock', ['plock'=>1], true);
|
||||
return;
|
||||
}
|
||||
$gameStor->cacheAll();
|
||||
// 1턴이상 갱신 없었으면 서버 지연
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', checkDelay');
|
||||
checkDelay();
|
||||
@@ -1553,14 +1552,11 @@ function checkTurn() {
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', CheckOverhead');
|
||||
CheckOverhead();
|
||||
//서버정보
|
||||
$query = "select * from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
$date = date('Y-m-d H:i:s');
|
||||
// 최종 처리 월턴의 다음 월턴시간 구함
|
||||
$prevTurn = cutTurn($admin['turntime'], $admin['turnterm']);
|
||||
$nextTurn = addTurn($prevTurn, $admin['turnterm']);
|
||||
$prevTurn = cutTurn($gameStor->turntime, $gameStor->turnterm);
|
||||
$nextTurn = addTurn($prevTurn, $gameStor->turnterm);
|
||||
// 현재 턴 이전 월턴까지 모두처리.
|
||||
//최종 처리 이후 다음 월턴이 현재 시간보다 전이라면
|
||||
while($nextTurn <= $date) {
|
||||
@@ -1598,15 +1594,15 @@ function checkTurn() {
|
||||
|
||||
// 잡금 해제
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', unlock');
|
||||
$gameStor->resetCache(true);
|
||||
unlock();
|
||||
return false;
|
||||
}
|
||||
|
||||
// 그 시각 년도,월 저장
|
||||
$dt = turnDate($nextTurn);
|
||||
$admin['year'] = $dt[0]; $admin['month'] = $dt[1];
|
||||
list($gameStor->year, $gameStor->month) = turnDate($nextTurn);
|
||||
|
||||
pushLockLog(["-- checkTurn() ".$admin['month']."월 : ".date('Y-m-d H:i:s')." : ".$session->userName]);
|
||||
pushLockLog(["-- checkTurn() ".$gameStor->month."월 : ".date('Y-m-d H:i:s')." : ".$session->userName]);
|
||||
|
||||
// 이벤트 핸들러 동작
|
||||
foreach (DB::db()->query('SELECT * from event') as $rawEvent) {
|
||||
@@ -1615,13 +1611,12 @@ function checkTurn() {
|
||||
$action = Json::decode($rawEvent['action']);
|
||||
$event = new Event\EventHandler($cond, $action);
|
||||
|
||||
$event->tryRunEvent(['currentEventID'=>$eventID] + $admin);
|
||||
$event->tryRunEvent(['currentEventID'=>$eventID] + $gameStor->getAll(true));
|
||||
}
|
||||
|
||||
// 분기계산. 장수들 턴보다 먼저 있다면 먼저처리
|
||||
if($admin['month'] == 1) {
|
||||
if($gameStor->month == 1) {
|
||||
// NPC 등장
|
||||
//if($admin['scenario'] > 0 && $admin['scenario'] < 20) { RegNPC(); }
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processGoldIncome');
|
||||
processGoldIncome();
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processSpring');
|
||||
@@ -1637,14 +1632,14 @@ function checkTurn() {
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', addAge');
|
||||
addAge();
|
||||
// 새해 알림
|
||||
$alllog[] = "<C>◆</>{$admin['month']}월:<C>{$admin['year']}</>년이 되었습니다.";
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
} elseif($admin['month'] == 4) {
|
||||
$alllog[] = "<C>◆</>{$gameStor->month}월:<C>{$gameStor->year}</>년이 되었습니다.";
|
||||
pushGeneralPublicRecord($alllog, $gameStor->year, $gameStor->month);
|
||||
} elseif($gameStor->month == 4) {
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateQuaterly');
|
||||
updateQuaterly();
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', disaster');
|
||||
disaster();
|
||||
} elseif($admin['month'] == 7) {
|
||||
} elseif($gameStor->month == 7) {
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processRiceIncome');
|
||||
processRiceIncome();
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', processFall');
|
||||
@@ -1655,7 +1650,7 @@ function checkTurn() {
|
||||
disaster();
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', tradeRate');
|
||||
tradeRate();
|
||||
} elseif($admin['month'] == 10) {
|
||||
} elseif($gameStor->month == 10) {
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', updateQuaterly');
|
||||
updateQuaterly();
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', disaster');
|
||||
@@ -1666,18 +1661,16 @@ function checkTurn() {
|
||||
|
||||
// 다음달로 넘김
|
||||
$prevTurn = $nextTurn;
|
||||
$nextTurn = addTurn($prevTurn, $admin['turnterm']);
|
||||
$nextTurn = addTurn($prevTurn, $gameStor->turnterm);
|
||||
}
|
||||
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', '.__LINE__);
|
||||
|
||||
// 이시각 정각 시까지 업데이트 완료했음
|
||||
$query = "update game set turntime='$prevTurn'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->turntime = $prevTurn;
|
||||
|
||||
// 그 시각 년도,월 저장
|
||||
$dt = turnDate($prevTurn);
|
||||
$admin['year'] = $dt[0]; $admin['month'] = $dt[1];
|
||||
list($gameStor->year, $gameStor->month) = turnDate($prevTurn);
|
||||
// 현재시간의 월턴시간 이후 분단위 장수 처리
|
||||
do {
|
||||
$query = "select no,name,turntime,turn0,npc from general where turntime<='$date' order by turntime";
|
||||
@@ -1705,17 +1698,8 @@ function checkTurn() {
|
||||
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', '.__LINE__);
|
||||
|
||||
$query = "update game set turntime='$date'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->turntime = $date;
|
||||
|
||||
// 3턴 전 시간
|
||||
$letterdate = subTurn($date, $admin['turnterm'], 3);
|
||||
//기한 지난 외교 메세지 지움(3개월 유지)
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', '.__LINE__);
|
||||
for($i=0; $i < 5; $i++) {
|
||||
$query = "update nation set dip{$i}='',dip{$i}_who='0',dip{$i}_type='0',dip{$i}_when='' where dip{$i}_when < '$letterdate'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
// 부상 과도 제한
|
||||
$query = "update general set injury='80' where injury>'80'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -1727,6 +1711,7 @@ function checkTurn() {
|
||||
processAuction();
|
||||
// 잡금 해제
|
||||
//if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', unlock');
|
||||
$gameStor->resetCache(true);
|
||||
unlock();
|
||||
|
||||
pushLockLog(["- checkTurn() 출 : ".date('Y-m-d H:i:s')." : ".$session->userName]);
|
||||
@@ -1738,15 +1723,14 @@ function checkTurn() {
|
||||
|
||||
function addAge() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
//나이와 호봉 증가
|
||||
$query = "update general set age=age+1,belong=belong+1";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$query = "select startyear,year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
|
||||
|
||||
if($admin['year'] >= $admin['startyear']+3) {
|
||||
$query = "select no,name,nation,leader,power,intel from general where specage<=age and special='0'";
|
||||
@@ -1759,8 +1743,9 @@ function addAge() {
|
||||
$query = "update general set special='$special' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
pushGeneralHistory($general, "<C>●</>{$admin['year']}년 {$admin['month']}월:특기 【<b><C>".getGenSpecial($special)."</></b>】(을)를 습득");
|
||||
pushGenLog($general, "<C>●</>특기 【<b><L>".getGenSpecial($special)."</></b>】(을)를 익혔습니다!");
|
||||
$josaUl = JosaUtil::pick($special, '을');
|
||||
pushGeneralHistory($general, "<C>●</>{$admin['year']}년 {$admin['month']}월:특기 【<b><C>".getGenSpecial($special)."</></b>】{$josaUl} 습득");
|
||||
pushGenLog($general, "<C>●</>특기 【<b><L>".getGenSpecial($special)."</></b>】{$josaUl} 익혔습니다!");
|
||||
}
|
||||
|
||||
$query = "select no,name,nation,leader,power,intel,npc,dex0,dex10,dex20,dex30,dex40 from general where specage2<=age and special2='0'";
|
||||
@@ -1774,33 +1759,34 @@ function addAge() {
|
||||
$query = "update general set special2='$special2' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
pushGeneralHistory($general, "<C>●</>{$admin['year']}년 {$admin['month']}월:특기 【<b><C>".getGenSpecial($special2)."</></b>】(을)를 습득");
|
||||
pushGenLog($general, "<C>●</>특기 【<b><L>".getGenSpecial($special2)."</></b>】(을)를 익혔습니다!");
|
||||
$josaUl = JosaUtil::pick($special2, '을');
|
||||
pushGeneralHistory($general, "<C>●</>{$admin['year']}년 {$admin['month']}월:특기 【<b><C>".getGenSpecial($special2)."</></b>】{$josaUl} 습득");
|
||||
pushGenLog($general, "<C>●</>특기 【<b><L>".getGenSpecial($special2)."</></b>】{$josaUl} 익혔습니다!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function turnDate($curtime) {
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select startyear,starttime,turnterm,year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$admin = $gameStor->getValues(['startyear', 'starttime', 'turnterm', 'year', 'month']);
|
||||
|
||||
$turn = $admin['starttime'];
|
||||
$curturn = cutTurn($curtime, $admin['turnterm']);
|
||||
$num = 0;
|
||||
$term = $admin['turnterm']*60;
|
||||
$num = intdiv((strtotime($curturn) - strtotime($turn)), $term);
|
||||
$term = $admin['turnterm'];
|
||||
|
||||
$num = intdiv((strtotime($curturn) - strtotime($turn)), $term*60);
|
||||
|
||||
$year = $admin['startyear'] + intdiv($num, 12);
|
||||
$month = 1 + (12+$num) % 12;
|
||||
$date = $admin['startyear'] * 12;
|
||||
$date += $num;
|
||||
|
||||
$year = intdiv($date, 12);
|
||||
$month = 1 + $date % 12;
|
||||
|
||||
// 바뀐 경우만 업데이트
|
||||
if($admin['month'] != $month || $admin['year'] != $year) {
|
||||
$query = "update game set year='$year',month='$month'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->year = $year;
|
||||
$gameStor->month = $month;
|
||||
}
|
||||
|
||||
return [$year, $month];
|
||||
@@ -1809,16 +1795,14 @@ function turnDate($curtime) {
|
||||
|
||||
function triggerTournament() {
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
$query = "select tournament,tnmt_trig from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['tournament', 'tnmt_trig']);
|
||||
|
||||
//현재 토너먼트 없고, 자동개시 걸려있을때, 40%확률
|
||||
if($admin['tournament'] == 0 && $admin['tnmt_trig'] > 0 && rand() % 100 < 40) {
|
||||
$type = rand() % 6; // 0 : 전력전, 1 : 통솔전, 2 : 일기토, 3 : 설전
|
||||
//전력전 50%, 통, 일, 설 각 17%
|
||||
$type = rand() % 5; // 0 : 전력전, 1 : 통솔전, 2 : 일기토, 3 : 설전
|
||||
//전력전 40%, 통, 일, 설 각 20%
|
||||
if($type > 3) { $type = 0; }
|
||||
startTournament($admin['tnmt_trig'], $type);
|
||||
}
|
||||
@@ -1860,7 +1844,8 @@ function PreprocessCommand($no) {
|
||||
$query = "update general set injury=0 where no='{$patient['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
pushGenLog($patient, "<C>●</><Y>{$general['name']}</>(이)가 <C>의술</>로써 치료해줍니다!");
|
||||
$josaYi = JosaUtil::pick($general['name'], '이');
|
||||
pushGenLog($patient, "<C>●</><Y>{$general['name']}</>{$josaYi} <C>의술</>로써 치료해줍니다!");
|
||||
|
||||
if($patientName == "") {
|
||||
$patientName = $patient['name'];
|
||||
@@ -1868,7 +1853,8 @@ function PreprocessCommand($no) {
|
||||
}
|
||||
|
||||
if($patientCount == 1) {
|
||||
pushGenLog($general, "<C>●</><C>의술</>을 펼쳐 도시의 장수 <Y>{$patientName}</>(을)를 치료합니다!");
|
||||
$josaUl = JosaUtil::pick($patientName, '을');
|
||||
pushGenLog($general, "<C>●</><C>의술</>을 펼쳐 도시의 장수 <Y>{$patientName}</>{$josaUl} 치료합니다!");
|
||||
} else {
|
||||
$patientCount -= 1;
|
||||
pushGenLog($general, "<C>●</><C>의술</>을 펼쳐 도시의 장수들 <Y>{$patientName}</> 외 <C>{$patientCount}</>명을 치료합니다!");
|
||||
@@ -1882,7 +1868,8 @@ function PreprocessCommand($no) {
|
||||
$query = "update general set injury=0 where no='$no'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$log[0] = "<C>●</><C>".getItemName($general['item'])."</>(을)를 사용하여 치료합니다!";
|
||||
$josaUl = JosaUtil::pick($general['item'], '을');
|
||||
$log[0] = "<C>●</><C>".getItemName($general['item'])."</>{$josaUl} 사용하여 치료합니다!";
|
||||
pushGenLog($general, $log);
|
||||
} elseif($general['injury'] > 10 && $general['item'] == 1 && $general['turn0'] != EncodeCommand(0, 0, 0, 50)) {
|
||||
//환약 사용
|
||||
@@ -1906,13 +1893,12 @@ function PreprocessCommand($no) {
|
||||
|
||||
function updateTurntime($no) {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
$alllog = [];
|
||||
$log = [];
|
||||
|
||||
$query = "select year,month,isUnited,turnterm from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year', 'month', 'isunited', 'turnterm']);
|
||||
|
||||
$query = "select no,name,name2,nation,troop,age,turntime,killturn,level,deadyear,npc,npc_org,affinity,npcid from general where no='$no'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -1927,12 +1913,9 @@ function updateTurntime($no) {
|
||||
$query = "update general set owner=-1,npc='{$general['npc']}',killturn='{$general['killturn']}',mode=2 where no='$no'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name2']}</>(이)가 <Y>{$general['name']}</>의 육체에서 <S>유체이탈</>합니다!";
|
||||
$josaYi = JosaUtil::pick($general['name2'], '이');
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name2']}</>{$josaYi} <Y>{$general['name']}</>의 육체에서 <S>유체이탈</>합니다!";
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
|
||||
if($admin['isUnited'] == 0) {
|
||||
CheckHall($no);
|
||||
}
|
||||
} else {
|
||||
// 군주였으면 유지 이음
|
||||
if($general['level'] == 12) {
|
||||
@@ -1972,72 +1955,73 @@ function updateTurntime($no) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gencount = MYDB_num_rows($result);
|
||||
$gennum = $gencount;
|
||||
if($gencount < 10) $gencount = 10;
|
||||
if($gencount < GameConst::$initialNationGenLimit) $gencount = GameConst::$initialNationGenLimit;
|
||||
|
||||
$query = "update nation set totaltech=tech*'$gencount',gennum='$gennum' where nation='{$general['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
// 병, 요절, 객사, 번개, 사채, 일확천금, 호랑이, 곰, 수영, 처형, 발견
|
||||
$josaYi = JosaUtil::pick($general['name'], '이');
|
||||
switch(rand()%42) {
|
||||
case 0: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 역병에 걸려 <R>죽고</> 말았습니다."; break;
|
||||
case 1: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 <R>요절</>하고 말았습니다."; break;
|
||||
case 2: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 거리에서 갑자기 <R>객사</>하고 말았습니다."; break;
|
||||
case 3: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 안타깝게도 번개에 맞아 <R>죽고</> 말았습니다."; break;
|
||||
case 4: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 고리대금에 시달리다가 <R>자살</>하고 말았습니다."; break;
|
||||
case 5: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 일확천금에 놀라 심장마비로 <R>죽고</> 말았습니다."; break;
|
||||
case 6: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 산속에서 호랑이에게 물려 <R>죽고</> 말았습니다."; break;
|
||||
case 7: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 산책중 곰에게 할퀴어 <R>죽고</> 말았습니다."; break;
|
||||
case 8: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 수영을 하다 <R>익사</>하고 말았습니다."; break;
|
||||
case 9: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 황제를 모독하다가 <R>처형</>당하고 말았습니다."; break;
|
||||
case 10: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 이튿날 침실에서 <R>죽은채로</>발견되었습니다."; break;
|
||||
case 11: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 색에 빠져 기력이 쇠진해 <R>죽고</>말았습니다."; break;
|
||||
case 12: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 미녀를 보고 심장마비로 <R>죽고</>말았습니다."; break;
|
||||
case 13: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 우울증에 걸려 <R>자살</>하고 말았습니다."; break;
|
||||
case 14: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 천하 정세를 비관하며 <R>분신</>하고 말았습니다."; break;
|
||||
case 15: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 어떤 관심도 못받고 쓸쓸히 <R>죽고</>말았습니다."; break;
|
||||
case 16: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 유산 상속 문제로 다투다가 <R>살해</>당했습니다."; break;
|
||||
case 17: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 누군가의 사주로 자객에게 <R>암살</>당했습니다."; break;
|
||||
case 18: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 바람난 배우자에게 <R>독살</>당하고 말았습니다."; break;
|
||||
case 19: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 농약을 술인줄 알고 마셔 <R>죽고</>말았습니다."; break;
|
||||
case 20: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 아무 이유 없이 <R>죽고</>말았습니다."; break;
|
||||
case 21: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 전재산을 잃고 화병으로 <R>죽고</>말았습니다."; break;
|
||||
case 22: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 단식운동을 하다가 굶어 <R>죽고</>말았습니다."; break;
|
||||
case 23: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 귀신에게 홀려 시름 앓다가 <R>죽고</>말았습니다."; break;
|
||||
case 24: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 사람들에게 집단으로 맞아서 <R>죽고</>말았습니다."; break;
|
||||
case 25: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 갑자기 성벽에서 뛰어내려 <R>죽고</>말았습니다."; break;
|
||||
case 26: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 농사중 호미에 머리를 맞아 <R>죽고</>말았습니다."; break;
|
||||
case 27: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 저세상이 궁금하다며 <R>자살</>하고 말았습니다."; break;
|
||||
case 28: $alllog[0] = "<C>●</>{$admin['month']}월:운좋기로 소문난 <Y>{$general['name']}</>(이)가 불운하게도 <R>죽고</>말았습니다."; break;
|
||||
case 29: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 무리하게 단련을 하다가 <R>죽고</>말았습니다."; break;
|
||||
case 30: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 생활고를 비관하며 <R>자살</>하고 말았습니다."; break;
|
||||
case 31: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 평생 결혼도 못해보고 <R>죽고</> 말았습니다."; break;
|
||||
case 32: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 과식하다 배가 터져 <R>죽고</> 말았습니다."; break;
|
||||
case 33: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 웃다가 숨이 넘어가 <R>죽고</> 말았습니다."; break;
|
||||
case 34: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 추녀를 보고 놀라서 <R>죽고</> 말았습니다."; break;
|
||||
case 35: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 물에 빠진 사람을 구하려다 같이 <R>죽고</> 말았습니다."; break;
|
||||
case 36: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 독살을 준비하다 독에 걸려 <R>죽고</> 말았습니다."; break;
|
||||
case 37: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 뒷간에서 너무 힘을 주다가 <R>죽고</> 말았습니다."; break;
|
||||
case 38: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 돌팔이 의사에게 치료받다가 <R>죽고</> 말았습니다."; break;
|
||||
case 39: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 남의 보약을 훔쳐먹다 부작용으로 <R>죽고</> 말았습니다."; break;
|
||||
case 40: $alllog[0] = "<C>●</>{$admin['month']}월:희대의 사기꾼 <Y>{$general['name']}</>(이)가 <R>사망</>했습니다."; break;
|
||||
case 41: $alllog[0] = "<C>●</>{$admin['month']}월:희대의 호색한 <Y>{$general['name']}</>(이)가 <R>사망</>했습니다."; break;
|
||||
default: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 <R>사망</>했습니다."; break;
|
||||
case 0: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 역병에 걸려 <R>죽고</> 말았습니다."; break;
|
||||
case 1: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} <R>요절</>하고 말았습니다."; break;
|
||||
case 2: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 거리에서 갑자기 <R>객사</>하고 말았습니다."; break;
|
||||
case 3: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 안타깝게도 번개에 맞아 <R>죽고</> 말았습니다."; break;
|
||||
case 4: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 고리대금에 시달리다가 <R>자살</>하고 말았습니다."; break;
|
||||
case 5: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 일확천금에 놀라 심장마비로 <R>죽고</> 말았습니다."; break;
|
||||
case 6: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 산속에서 호랑이에게 물려 <R>죽고</> 말았습니다."; break;
|
||||
case 7: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 산책중 곰에게 할퀴어 <R>죽고</> 말았습니다."; break;
|
||||
case 8: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 수영을 하다 <R>익사</>하고 말았습니다."; break;
|
||||
case 9: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 황제를 모독하다가 <R>처형</>당하고 말았습니다."; break;
|
||||
case 10: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 이튿날 침실에서 <R>죽은채로</>발견되었습니다."; break;
|
||||
case 11: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 색에 빠져 기력이 쇠진해 <R>죽고</>말았습니다."; break;
|
||||
case 12: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 미녀를 보고 심장마비로 <R>죽고</>말았습니다."; break;
|
||||
case 13: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 우울증에 걸려 <R>자살</>하고 말았습니다."; break;
|
||||
case 14: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 천하 정세를 비관하며 <R>분신</>하고 말았습니다."; break;
|
||||
case 15: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 어떤 관심도 못받고 쓸쓸히 <R>죽고</>말았습니다."; break;
|
||||
case 16: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 유산 상속 문제로 다투다가 <R>살해</>당했습니다."; break;
|
||||
case 17: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 누군가의 사주로 자객에게 <R>암살</>당했습니다."; break;
|
||||
case 18: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 바람난 배우자에게 <R>독살</>당하고 말았습니다."; break;
|
||||
case 19: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 농약을 술인줄 알고 마셔 <R>죽고</>말았습니다."; break;
|
||||
case 20: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 아무 이유 없이 <R>죽고</>말았습니다."; break;
|
||||
case 21: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 전재산을 잃고 화병으로 <R>죽고</>말았습니다."; break;
|
||||
case 22: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 단식운동을 하다가 굶어 <R>죽고</>말았습니다."; break;
|
||||
case 23: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 귀신에게 홀려 시름 앓다가 <R>죽고</>말았습니다."; break;
|
||||
case 24: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 사람들에게 집단으로 맞아서 <R>죽고</>말았습니다."; break;
|
||||
case 25: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 갑자기 성벽에서 뛰어내려 <R>죽고</>말았습니다."; break;
|
||||
case 26: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 농사중 호미에 머리를 맞아 <R>죽고</>말았습니다."; break;
|
||||
case 27: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 저세상이 궁금하다며 <R>자살</>하고 말았습니다."; break;
|
||||
case 28: $alllog[0] = "<C>●</>{$admin['month']}월:운좋기로 소문난 <Y>{$general['name']}</>{$josaYi} 불운하게도 <R>죽고</>말았습니다."; break;
|
||||
case 29: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 무리하게 단련을 하다가 <R>죽고</>말았습니다."; break;
|
||||
case 30: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 생활고를 비관하며 <R>자살</>하고 말았습니다."; break;
|
||||
case 31: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 평생 결혼도 못해보고 <R>죽고</> 말았습니다."; break;
|
||||
case 32: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 과식하다 배가 터져 <R>죽고</> 말았습니다."; break;
|
||||
case 33: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 웃다가 숨이 넘어가 <R>죽고</> 말았습니다."; break;
|
||||
case 34: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 추녀를 보고 놀라서 <R>죽고</> 말았습니다."; break;
|
||||
case 35: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 물에 빠진 사람을 구하려다 같이 <R>죽고</> 말았습니다."; break;
|
||||
case 36: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 독살을 준비하다 독에 걸려 <R>죽고</> 말았습니다."; break;
|
||||
case 37: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 뒷간에서 너무 힘을 주다가 <R>죽고</> 말았습니다."; break;
|
||||
case 38: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 돌팔이 의사에게 치료받다가 <R>죽고</> 말았습니다."; break;
|
||||
case 39: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 남의 보약을 훔쳐먹다 부작용으로 <R>죽고</> 말았습니다."; break;
|
||||
case 40: $alllog[0] = "<C>●</>{$admin['month']}월:희대의 사기꾼 <Y>{$general['name']}</>{$josaYi} <R>사망</>했습니다."; break;
|
||||
case 41: $alllog[0] = "<C>●</>{$admin['month']}월:희대의 호색한 <Y>{$general['name']}</>{$josaYi} <R>사망</>했습니다."; break;
|
||||
default: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} <R>사망</>했습니다."; break;
|
||||
}
|
||||
// 엔피씨,엠피씨,의병 사망로그
|
||||
if($general['npc'] == 2) {
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 <R>사망</>했습니다.";
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} <R>사망</>했습니다.";
|
||||
} elseif($general['npc'] >= 3) {
|
||||
switch(rand()%10) {
|
||||
case 0: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 푸대접에 실망하여 떠났습니다."; break;
|
||||
case 1: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 갑자기 화를 내며 떠났습니다."; break;
|
||||
case 2: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 의견차이를 좁히지 못하고 떠났습니다."; break;
|
||||
case 3: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 판단 착오였다며 떠났습니다."; break;
|
||||
case 4: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 생활고가 나아지지 않는다며 떠났습니다."; break;
|
||||
case 5: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 기대가 너무 컸다며 떠났습니다."; break;
|
||||
case 6: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 아무 이유 없이 떠났습니다."; break;
|
||||
case 7: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 자기 목적은 달성했다며 떠났습니다."; break;
|
||||
case 8: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 자기가 없어도 될것 같다며 떠났습니다."; break;
|
||||
case 9: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 처자식이 그립다며 떠났습니다."; break;
|
||||
case 0: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 푸대접에 실망하여 떠났습니다."; break;
|
||||
case 1: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 갑자기 화를 내며 떠났습니다."; break;
|
||||
case 2: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 의견차이를 좁히지 못하고 떠났습니다."; break;
|
||||
case 3: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 판단 착오였다며 떠났습니다."; break;
|
||||
case 4: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 생활고가 나아지지 않는다며 떠났습니다."; break;
|
||||
case 5: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 기대가 너무 컸다며 떠났습니다."; break;
|
||||
case 6: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 아무 이유 없이 떠났습니다."; break;
|
||||
case 7: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 자기 목적은 달성했다며 떠났습니다."; break;
|
||||
case 8: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 자기가 없어도 될것 같다며 떠났습니다."; break;
|
||||
case 9: $alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} 처자식이 그립다며 떠났습니다."; break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2048,14 +2032,15 @@ function updateTurntime($no) {
|
||||
}
|
||||
|
||||
if($general['age'] >= 80 && $general['npc'] == 0) {
|
||||
if($admin['isUnited'] == 0) {
|
||||
if($admin['isunited'] == 0) {
|
||||
CheckHall($no);
|
||||
}
|
||||
|
||||
$query = "update general set leader=leader*0.85,power=power*0.85,intel=intel*0.85,injury=0,experience=experience*0.5,dedication=dedication*0.5,firenum=0,warnum=0,killnum=0,deathnum=0,killcrew=0,deathcrew=0,age=20,specage=0,specage2=0,crew=crew*0.85,dex0=dex0*0.5,dex10=dex10*0.5,dex20=dex20*0.5,dex30=dex30*0.5,dex40=dex40*0.5 where no='$no'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>(이)가 <R>은퇴</>하고 그 자손이 유지를 이어받았습니다.";
|
||||
$josaYi = JosaUtil::pick($general['name'], '이');
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} <R>은퇴</>하고 그 자손이 유지를 이어받았습니다.";
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
|
||||
$log[0] = "<C>●</>나이가 들어 <R>은퇴</>하고 자손에게 자리를 물려줍니다.";
|
||||
@@ -2071,9 +2056,9 @@ function updateTurntime($no) {
|
||||
|
||||
function CheckHall($no) {
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
$type = array(
|
||||
$types = array(
|
||||
"experience",
|
||||
"dedication",
|
||||
"firenum",
|
||||
@@ -2097,65 +2082,80 @@ function CheckHall($no) {
|
||||
"betrate"
|
||||
);
|
||||
|
||||
$query = "select name,nation,picture,
|
||||
experience,dedication,warnum,firenum,killnum,
|
||||
killnum/warnum*10000 as winrate,killcrew,killcrew/deathcrew*10000 as killrate,
|
||||
dex0,dex10,dex20,dex30,dex40,
|
||||
ttw/(ttw+ttd+ttl)*10000 as ttrate, ttw+ttd+ttl as tt,
|
||||
tlw/(tlw+tld+tll)*10000 as tlrate, tlw+tld+tll as tl,
|
||||
tpw/(tpw+tpd+tpl)*10000 as tprate, tpw+tpd+tpl as tp,
|
||||
tiw/(tiw+tid+til)*10000 as tirate, tiw+tid+til as ti,
|
||||
betgold, betwin, betwingold, betwingold/betgold*10000 as betrate
|
||||
from general where no='$no'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
$general = $db->queryFirstRow('SELECT name,name2,owner,nation,picture,imgsvr,
|
||||
experience,dedication,warnum,firenum,killnum,
|
||||
killnum/warnum as winrate,killcrew,killcrew/deathcrew as killrate,
|
||||
dex0,dex10,dex20,dex30,dex40,
|
||||
ttw/(ttw+ttd+ttl) as ttrate, ttw+ttd+ttl as tt,
|
||||
tlw/(tlw+tld+tll) as tlrate, tlw+tld+tll as tl,
|
||||
tpw/(tpw+tpd+tpl) as tprate, tpw+tpd+tpl as tp,
|
||||
tiw/(tiw+tid+til) as tirate, tiw+tid+til as ti,
|
||||
betgold, betwin, betwingold, betwingold/betgold as betrate
|
||||
from general where no=%i', $no);
|
||||
|
||||
if(!$general){
|
||||
return;
|
||||
}
|
||||
|
||||
$unitedDate = date('Y-m-d H:i:s');
|
||||
$nation = getNationStaticInfo($general['nation']);
|
||||
|
||||
for($k=0; $k < 21; $k++) {
|
||||
$query = "select * from hall where type='$k' order by data desc";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$count = MYDB_num_rows($result);
|
||||
$serverCnt = $db->queryFirstField('SELECT count(*) FROM ng_games');
|
||||
|
||||
[$scenarioIdx, $scenarioName, $startTime] = $gameStor->getValuesAsArray(['scenario', 'scenario_text', 'starttime']);
|
||||
|
||||
foreach($types as $idx=>$typeName) {
|
||||
|
||||
|
||||
//승률,살상률인데 10회 미만 전투시 스킵
|
||||
if(($k == 5 || $k == 7) && $general['warnum']<10) { continue; }
|
||||
if(($typeName === 'winrate' || $typeName === 'killrate') && $general['warnum']<10) { continue; }
|
||||
//토너승률인데 50회 미만시 스킵
|
||||
if($k == 13 && $general['tt'] < 50) { continue; }
|
||||
if($typeName === 'ttrate' && $general['tt'] < 50) { continue; }
|
||||
//토너승률인데 50회 미만시 스킵
|
||||
if($k == 14 && $general['tl'] < 50) { continue; }
|
||||
if($typeName === 'tlrate' && $general['tl'] < 50) { continue; }
|
||||
//토너승률인데 50회 미만시 스킵
|
||||
if($k == 15 && $general['tp'] < 50) { continue; }
|
||||
if($typeName === 'tprate' && $general['tp'] < 50) { continue; }
|
||||
//토너승률인데 50회 미만시 스킵
|
||||
if($k == 16 && $general['ti'] < 50) { continue; }
|
||||
if($typeName === 'tirate' && $general['ti'] < 50) { continue; }
|
||||
//수익률인데 1000미만시 스킵
|
||||
if($k == 20 && $general['betgold'] < 1000) { continue; }
|
||||
if($typeName === 'betrate' && $general['betgold'] < 1000) { continue; }
|
||||
|
||||
$rank = 10;
|
||||
for($i=0; $i < $count; $i++) {
|
||||
$ranker = MYDB_fetch_array($result);
|
||||
$aux = [
|
||||
'name'=>$general['name'],
|
||||
'nationName'=>$nation['name'],
|
||||
'bgColor'=>$nation['color'],
|
||||
'fgColor'=>newColor($nation['color']),
|
||||
'picture'=>$general['picture'],
|
||||
'imgsvr'=>$general['imgsvr'],
|
||||
'startTime'=>$startTime,
|
||||
'unitedTime'=>$unitedDate,
|
||||
'owner_name'=>$general['name2'],
|
||||
'serverID'=>UniqueConst::$serverID,
|
||||
'serverIdx'=>$serverCnt,
|
||||
'serverName'=>UniqueConst::$serverName,
|
||||
'scenarioName'=>$scenarioName,
|
||||
];
|
||||
$jsonAux = Json::encode($aux);
|
||||
|
||||
if($general[$type[$k]] >= $ranker['data']) {
|
||||
$rank = $i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for($i=8; $i >= $rank; $i--) {
|
||||
$j = $i + 1;
|
||||
$query = "select * from hall where type='$k' and rank='$i'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$ranker = MYDB_fetch_array($result);
|
||||
|
||||
$query = "update hall set name='{$ranker['name']}', nation='{$ranker['nation']}', data='{$ranker['data']}', color='{$ranker['color']}', picture='{$ranker['picture']}' where type='$k' and rank='$j'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
$query = "update hall set name='{$general['name']}', nation='{$nation['name']}', data='{$general[$type[$k]]}', color='{$nation['color']}', picture='{$general['picture']}' where type='$k' and rank='$rank'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$db->insertUpdate('ng_hall', [
|
||||
'server_id'=>UniqueConst::$serverID,
|
||||
'scenario'=>$scenarioIdx,
|
||||
'general_no'=>$no,
|
||||
'type'=>$idx,
|
||||
'value'=>$general[$typeName]??0,
|
||||
'owner'=>$general['owner']??null,
|
||||
'aux'=>$jsonAux
|
||||
],[
|
||||
'value'=>$general[$typeName]??0,
|
||||
'aux'=>$jsonAux
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function uniqueItem($general, $log, $vote=0) {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
$alllog = [];
|
||||
$history = [];
|
||||
@@ -2165,15 +2165,13 @@ function uniqueItem($general, $log, $vote=0) {
|
||||
if($general['npc'] >= 2) { return $log; }
|
||||
if($general['weap'] > 6 || $general['book'] > 6 || $general['horse'] > 6 || $general['item'] > 6) { return $log; }
|
||||
|
||||
$query = "select year,month,scenario from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$game = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year', 'month', 'scenario']);
|
||||
|
||||
$query = "select count(*) as cnt from general where npc<2";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gen = MYDB_fetch_array($result);
|
||||
|
||||
if($game['scenario'] == 0) { $prob = $gen['cnt'] * 5; } // 5~6개월에 하나씩 등장
|
||||
if($admin['scenario'] == 0) { $prob = $gen['cnt'] * 5; } // 5~6개월에 하나씩 등장
|
||||
else { $prob = $gen['cnt']; } // 1~2개월에 하나씩 등장
|
||||
|
||||
if($vote == 1) { $prob = Util::round($gen['cnt'] * 0.7 / 3); } // 투표율 70%, 투표 한번에 2~3개 등장
|
||||
@@ -2200,81 +2198,85 @@ function uniqueItem($general, $log, $vote=0) {
|
||||
$occupied[$gen[$type]] = 1;
|
||||
}
|
||||
for($i=7; $i <= 26; $i++) {
|
||||
if($occupied[$i] == 0) {
|
||||
if(!Util::array_get($occupied[$i])) {
|
||||
$item[] = $i;
|
||||
}
|
||||
}
|
||||
$it = $item[rand() % count($item)];
|
||||
$it = $item[rand() % count($item)]??0;
|
||||
|
||||
$query = "update general set {$type}='$it' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$nation = getNationStaticInfo($general['nation']);
|
||||
|
||||
if($nation === null) {
|
||||
$nation = ['name' => "재야"];
|
||||
}
|
||||
|
||||
switch($sel) {
|
||||
case 0:
|
||||
$log[] = "<C>●</><C>".getWeapName($it)."</>(을)를 습득했습니다!";
|
||||
$alllog[0] = "<C>●</>{$game['month']}월:<Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
|
||||
pushGeneralHistory($general, "<C>●</>{$game['year']}년 {$game['month']}월:<C>".getWeapName($it)."</>(을)를 습득");
|
||||
$josaUl = JosaUtil::pick(getWeapName($it), '을');
|
||||
$josaYi = JosaUtil::pick($general['name'], '이');
|
||||
$log[] = "<C>●</><C>".getWeapName($it)."</>{$josaUl} 습득했습니다!";
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} <C>".getWeapName($it)."</>{$josaUl} 습득했습니다!";
|
||||
pushGeneralHistory($general, "<C>●</>{$admin['year']}년 {$admin['month']}월:<C>".getWeapName($it)."</>{$josaUl} 습득");
|
||||
if($vote == 0) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getWeapName($it)."</>{$josaUl} 습득했습니다!";
|
||||
} elseif($vote == 1) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getWeapName($it)."</>{$josaUl} 습득했습니다!";
|
||||
} elseif($vote == 2) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getWeapName($it)."</>{$josaUl} 습득했습니다!";
|
||||
} elseif($vote == 3) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getWeapName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getWeapName($it)."</>{$josaUl} 습득했습니다!";
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
$log[] = "<C>●</><C>".getBookName($it)."</>(을)를 습득했습니다!";
|
||||
$alllog[0] = "<C>●</>{$game['month']}월:<Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
|
||||
pushGeneralHistory($general, "<C>●</>{$game['year']}년 {$game['month']}월:<C>".getBookName($it)."</>(을)를 습득");
|
||||
$josaUl = JosaUtil::pick(getBookName($it), '을');
|
||||
$josaYi = JosaUtil::pick($general['name'], '이');
|
||||
$log[] = "<C>●</><C>".getBookName($it)."</>{$josaUl} 습득했습니다!";
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} <C>".getBookName($it)."</>{$josaUl} 습득했습니다!";
|
||||
pushGeneralHistory($general, "<C>●</>{$admin['year']}년 {$admin['month']}월:<C>".getBookName($it)."</>{$josaUl} 습득");
|
||||
if($vote == 0) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getBookName($it)."</>{$josaUl} 습득했습니다!";
|
||||
} elseif($vote == 1) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getBookName($it)."</>{$josaUl} 습득했습니다!";
|
||||
} elseif($vote == 2) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getBookName($it)."</>{$josaUl} 습득했습니다!";
|
||||
} elseif($vote == 3) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getBookName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getBookName($it)."</>{$josaUl} 습득했습니다!";
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
$log[] = "<C>●</><C>".getHorseName($it)."</>(을)를 습득했습니다!";
|
||||
$alllog[0] = "<C>●</>{$game['month']}월:<Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
|
||||
pushGeneralHistory($general, "<C>●</>{$game['year']}년 {$game['month']}월:<C>".getHorseName($it)."</>(을)를 습득");
|
||||
$josaUl = JosaUtil::pick(getHorseName($it), '을');
|
||||
$josaYi = JosaUtil::pick($general['name'], '이');
|
||||
$log[] = "<C>●</><C>".getHorseName($it)."</>{$josaUl} 습득했습니다!";
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} <C>".getHorseName($it)."</>{$josaUl} 습득했습니다!";
|
||||
pushGeneralHistory($general, "<C>●</>{$admin['year']}년 {$admin['month']}월:<C>".getHorseName($it)."</>{$josaUl} 습득");
|
||||
if($vote == 0) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getHorseName($it)."</>{$josaUl} 습득했습니다!";
|
||||
} elseif($vote == 1) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getHorseName($it)."</>{$josaUl} 습득했습니다!";
|
||||
} elseif($vote == 2) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getHorseName($it)."</>{$josaUl} 습득했습니다!";
|
||||
} elseif($vote == 3) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getHorseName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getHorseName($it)."</>{$josaUl} 습득했습니다!";
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
$log[] = "<C>●</><C>".getItemName($it)."</>(을)를 습득했습니다!";
|
||||
$alllog[0] = "<C>●</>{$game['month']}월:<Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
|
||||
pushGeneralHistory($general, "<C>●</>{$game['year']}년 {$game['month']}월:<C>".getItemName($it)."</>(을)를 습득");
|
||||
$josaUl = JosaUtil::pick(getItemName($it), '을');
|
||||
$josaYi = JosaUtil::pick($general['name'], '이');
|
||||
$log[] = "<C>●</><C>".getItemName($it)."</>{$josaUl} 습득했습니다!";
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} <C>".getItemName($it)."</>{$josaUl} 습득했습니다!";
|
||||
pushGeneralHistory($general, "<C>●</>{$admin['year']}년 {$admin['month']}월:<C>".getItemName($it)."</>{$josaUl} 습득");
|
||||
if($vote == 0) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getItemName($it)."</>{$josaUl} 습득했습니다!";
|
||||
} elseif($vote == 1) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getItemName($it)."</>{$josaUl} 습득했습니다!";
|
||||
} elseif($vote == 2) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getItemName($it)."</>{$josaUl} 습득했습니다!";
|
||||
} elseif($vote == 3) {
|
||||
$history[0] = "<C>●</>{$game['year']}년 {$game['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>(이)가 <C>".getItemName($it)."</>(을)를 습득했습니다!";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getItemName($it)."</>{$josaUl} 습득했습니다!";
|
||||
}
|
||||
break;
|
||||
}
|
||||
pushGeneralPublicRecord($alllog, $game['year'], $game['month']);
|
||||
pushWorldHistory($history, $game['year'], $game['month']);
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
pushWorldHistory($history, $admin['year'], $admin['month']);
|
||||
}
|
||||
}
|
||||
return $log;
|
||||
@@ -2339,11 +2341,13 @@ function checkDedication($general, $log) {
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
// 승급했다면
|
||||
$josaRoDed = JosaUtil::pick(getDed($general['dedication']), '로');
|
||||
$josaRoBill = JosaUtil::pick(getBill($general['dedication']), '로');
|
||||
if($general['dedlevel'] < $dedlevel) {
|
||||
$log[] = "<C>●</><Y>".getDed($general['dedication'])."</>(으)로 <C>승급</>하여 봉록이 <C>".getBill($general['dedication'])."</>(으)로 <C>상승</>했습니다!";
|
||||
$log[] = "<C>●</><Y>".getDed($general['dedication'])."</>{$josaRoDed} <C>승급</>하여 봉록이 <C>".getBill($general['dedication'])."</>{$josaRoBill} <C>상승</>했습니다!";
|
||||
// 강등했다면
|
||||
} elseif($general['dedlevel'] > $dedlevel) {
|
||||
$log[] = "<C>●</><Y>".getDed($general['dedication'])."</>(으)로 <R>강등</>되어 봉록이 <C>".getBill($general['dedication'])."</>(으)로 <R>하락</>했습니다!";
|
||||
$log[] = "<C>●</><Y>".getDed($general['dedication'])."</>{$josaRoDed} <R>강등</>되어 봉록이 <C>".getBill($general['dedication'])."</>{$josaRoBill} <R>하락</>했습니다!";
|
||||
}
|
||||
|
||||
return $log;
|
||||
@@ -2371,13 +2375,8 @@ function checkExperience($general, $log) {
|
||||
|
||||
function getAdmin() {
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select * from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
return $admin;
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
return $gameStor->getAll();
|
||||
}
|
||||
|
||||
function getMe() {
|
||||
@@ -2427,18 +2426,18 @@ function getNation($nation) {
|
||||
|
||||
function deleteNation($general) {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$history = [];
|
||||
$date = substr($general['turntime'],11,5);
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year', 'month']);
|
||||
|
||||
$nation = getNationStaticInfo($general['nation']);
|
||||
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<R><b>【멸망】</b></><D><b>{$nation['name']}</b></>은(는) <R>멸망</>했습니다.";
|
||||
$josaUn = JosaUtil::pick($nation['name'], '은');
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<R><b>【멸망】</b></><D><b>{$nation['name']}</b></>{$josaUn} <R>멸망</>했습니다.";
|
||||
|
||||
// 전 장수 재야로 // 전 장수 소속 무소속으로
|
||||
$query = "update general set belong=0,troop=0,level=0,nation=0,makelimit=12 where nation='{$general['nation']}'";
|
||||
@@ -2462,11 +2461,10 @@ function deleteNation($general) {
|
||||
|
||||
function nextRuler($general) {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year', 'month']);
|
||||
|
||||
$query = "select nation,name from nation where nation='{$general['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -2522,10 +2520,11 @@ function nextRuler($general) {
|
||||
$query = "update city set gen3=0 where gen3='{$nextruler['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$history = ["<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【유지】</b></><Y>{$nextruler['name']}</>(이)가 <D><b>{$nation['name']}</b></>의 유지를 이어 받았습니다"];
|
||||
$josaYi = JosaUtil::pick($nextruler['name'], '이');
|
||||
$history = ["<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【유지】</b></><Y>{$nextruler['name']}</>{$josaYi} <D><b>{$nation['name']}</b></>의 유지를 이어 받았습니다"];
|
||||
|
||||
pushWorldHistory($history, $admin['year'], $admin['month']);
|
||||
pushNationHistory($nation, "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【유지】</b></><Y>{$nextruler['name']}</>(이)가 <D><b>{$nation['name']}</b></>의 유지를 이어 받음.");
|
||||
pushNationHistory($nation, "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【유지】</b></><Y>{$nextruler['name']}</>{$josaYi} <D><b>{$nation['name']}</b></>의 유지를 이어 받음.");
|
||||
// 장수 삭제 및 부대처리는 checkTurn에서
|
||||
}
|
||||
|
||||
@@ -2576,15 +2575,23 @@ function searchDistance(int $from, int $maxDist=99, bool $distForm = false) {
|
||||
}
|
||||
}
|
||||
|
||||
function isClose($nation1, $nation2) {
|
||||
function isNeighbor(int $nation1, int $nation2, bool $includeNoSupply=true) {
|
||||
$db = DB::db();
|
||||
|
||||
$nation1Cities = [];
|
||||
foreach($db->queryFirstColumn('SELECT city FROM city WHERE nation = %i', $nation1) as $city){
|
||||
|
||||
if($includeNoSupply){
|
||||
$supplySql = '';
|
||||
}
|
||||
else{
|
||||
$supplySql = 'AND supply = 1';
|
||||
}
|
||||
|
||||
foreach($db->queryFirstColumn('SELECT city FROM city WHERE nation = %i %l', $nation1, $supplySql) as $city){
|
||||
$nation1Cities[$city] = $city;
|
||||
}
|
||||
|
||||
foreach($db->queryFirstColumn('SELECT city FROM city WHERE nation = %i', $nation2) as $city){
|
||||
foreach($db->queryFirstColumn('SELECT city FROM city WHERE nation = %i %l', $nation2, $supplySql) as $city){
|
||||
foreach(array_keys(CityConst::byID($city)->path) as $adjCity){
|
||||
if(key_exists($adjCity, $nation1Cities)){
|
||||
return true;
|
||||
@@ -2659,14 +2666,13 @@ function CharCritical($rate, $personal) {
|
||||
return $rate;
|
||||
}
|
||||
|
||||
function TrickInjury($city, $type=0) {
|
||||
function SabotageInjury($city, $type=0) {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
$log = [];
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year', 'month']);
|
||||
|
||||
$query = "select no,name,nation from general where city='$city'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
+55
-28
@@ -18,11 +18,10 @@ function GetStuffName($stuff) {
|
||||
|
||||
function registerAuction() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select startyear,year,month,turnterm from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'turnterm']);
|
||||
|
||||
$unit = 60 * $admin['turnterm'];
|
||||
|
||||
@@ -83,8 +82,10 @@ function registerAuction() {
|
||||
$query = "insert into auction (type, no1, name1, stuff, amount, cost, value, topv, expire) values (0, '0', 'ⓝ암시장상인', '$stuff', '$amount', '$cost', '$cost', '$topv', '$date')";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<C>".GetStuffName($stuff)."</>(이)가 거래장에 등장했습니다!";
|
||||
$history[0] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【암시장】</b></><Y>ⓝ암시장상인</>(이)가 <C>".GetStuffName($stuff)."</>(을)를 판다는 소문이 돌고 있습니다!";
|
||||
$josaYi = JosaUtil::pick(GetStuffName($stuff), '이');
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<C>".GetStuffName($stuff)."</>{$josaYi} 거래장에 등장했습니다!";
|
||||
$josaUl = JosaUtil::pick(GetStuffName($stuff), '을');
|
||||
$history[0] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【암시장】</b></><Y>ⓝ암시장상인</>이 <C>".GetStuffName($stuff)."</>{$josaUl} 판다는 소문이 돌고 있습니다!";
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
pushWorldHistory($history, $admin['year'], $admin['month']);
|
||||
}
|
||||
@@ -142,6 +143,7 @@ function registerAuction() {
|
||||
|
||||
function processAuction() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$trader = [];
|
||||
@@ -153,9 +155,7 @@ function processAuction() {
|
||||
|
||||
$date = date("Y-m-d H:i:s");
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year', 'month']);
|
||||
|
||||
$query = "select * from auction where expire<='$date'";
|
||||
$result2 = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -164,10 +164,14 @@ function processAuction() {
|
||||
for($i=0; $i < $count2; $i++) {
|
||||
$auction = MYDB_fetch_array($result2);
|
||||
|
||||
$josaYi1 = JosaUtil::pick($auction['name1'], '이');
|
||||
$josaYi2 = JosaUtil::pick($auction['name2'], '이');
|
||||
|
||||
// 유닉템 처리
|
||||
if($auction['stuff'] != 0) {
|
||||
if($auction['no2'] == 0) {
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <M>유찰</> : <Y>{$auction['name1']}</>(이)가 <C>".GetStuffName($auction['stuff'])."</>(을)를 판매, 그러나 입찰자 부재";
|
||||
$josaUl = JosaUtil::pick(GetStuffName($auction['stuff']), '을');
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <M>유찰</> : <Y>{$auction['name1']}</>{$josaYi1} <C>".GetStuffName($auction['stuff'])."</>{$josaUl} 판매, 그러나 입찰자 부재";
|
||||
pushAuctionLog($auctionLog);
|
||||
} else {
|
||||
$trader['no'] = 0;
|
||||
@@ -196,7 +200,9 @@ function processAuction() {
|
||||
if($count > 0) {
|
||||
$traderLog[0] = "<S>◆</>{$auction['no']}번 거래 <M>유찰</>! 이미 아이템을 누군가가 가로챘습니다!";
|
||||
$bidderLog[0] = "<S>◆</>{$auction['no']}번 거래 <M>유찰</>! 이미 아이템을 누군가가 가로챘습니다!";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <M>유찰</> : <Y>{$auction['name1']}</>(이)가 <C>".GetStuffName($auction['stuff'])."</>(을)를 판매, <Y>{$auction['name2']}</>(이)가 금 <C>{$auction['value']}</>(으)로 입찰, 그러나 아이템 이미 매진!";
|
||||
$josaUl = JosaUtil::pick(GetStuffName($auction['stuff']), '을');
|
||||
$josaRo = JosaUtil::pick($auction['value'], '로');
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <M>유찰</> : <Y>{$auction['name1']}</>{$josaYi1} <C>".GetStuffName($auction['stuff'])."</>$josaUl 판매, <Y>{$auction['name2']}</>{$josaYi2} 금 <C>{$auction['value']}</>{$josaRo} 입찰, 그러나 아이템 이미 매진!";
|
||||
} elseif($auction['value'] > $bidder['gold'] - 1000) {
|
||||
$gold = Util::round($auction['value'] * 0.01);
|
||||
$bidder['gold'] -= $gold;
|
||||
@@ -206,18 +212,23 @@ function processAuction() {
|
||||
|
||||
$traderLog[0] = "<S>◆</>입찰자의 자금 부족으로 {$auction['no']}번 <C>".GetStuffName($auction['stuff'])."</> 거래 <M>유찰</>!";
|
||||
$bidderLog[0] = "<S>◆</>입찰자의 자금 부족으로 {$auction['no']}번 <C>".GetStuffName($auction['stuff'])."</> 거래 <M>유찰</>! 벌금 <C>{$gold}</>";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <M>유찰</> : <Y>{$auction['name1']}</>(이)가 <C>".GetStuffName($auction['stuff'])."</>(을)를 판매, <Y>{$auction['name2']}</>(이)가 금 <C>{$auction['value']}</>(으)로 입찰, 그러나 입찰자 자금부족, 벌금 <C>{$gold}</>";
|
||||
$josaUl = JosaUtil::pick(GetStuffName($auction['stuff']), '을');
|
||||
$josaRo = JosaUtil::pick($auction['value'], '로');
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <M>유찰</> : <Y>{$auction['name1']}</>{$josaYi1} <C>".GetStuffName($auction['stuff'])."</>$josaUl 판매, <Y>{$auction['name2']}</>{$josaYi2} 금 <C>{$auction['value']}</>{$josaRo} 입찰, 그러나 입찰자 자금부족, 벌금 <C>{$gold}</>";
|
||||
} else {
|
||||
$traderLog[0] = "<S>◆</>{$auction['no']}번 거래 <C>성사</>로 <C>".GetStuffName($auction['stuff'])."</>(을)를 판매, 금 <C>{$auction['value']}</>(을)를 획득!";
|
||||
$bidderLog[0] = "<S>◆</>{$auction['no']}번 거래 <C>성사</>로 금 <C>{$auction['value']}</>(을)를 지불, <C>".GetStuffName($auction['stuff'])."</> 구입!";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <C>성사</> : <Y>{$auction['name1']}</>(이)가 <C>".GetStuffName($auction['stuff'])."</>(을)를 판매, <Y>{$auction['name2']}</>(이)가 금 <C>{$auction['value']}</>(으)로 구매";
|
||||
$josaUl = JosaUtil::pick(GetStuffName($auction['stuff']), '을');
|
||||
$josaUlGold = JosaUtil::pick($auction['value'], '을');
|
||||
$josaRo = JosaUtil::pick($auction['value'], '로');
|
||||
$traderLog[0] = "<S>◆</>{$auction['no']}번 거래 <C>성사</>로 <C>".GetStuffName($auction['stuff'])."</>$josaUl 판매, 금 <C>{$auction['value']}</>{$josaUlGold} 획득!";
|
||||
$bidderLog[0] = "<S>◆</>{$auction['no']}번 거래 <C>성사</>로 금 <C>{$auction['value']}</>{$josaUlGold} 지불, <C>".GetStuffName($auction['stuff'])."</> 구입!";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <C>성사</> : <Y>{$auction['name1']}</>{$josaYi1} <C>".GetStuffName($auction['stuff'])."</>$josaUl 판매, <Y>{$auction['name2']}</>{$josaYi2} 금 <C>{$auction['value']}</>{$josaRo} 구매";
|
||||
$auctionLog[0] .= " <M>★ 아이템 거래 ★</>";
|
||||
|
||||
$query = "update general set gold=gold-'{$auction['value']}',{$type}='$sel2' where no='{$auction['no2']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$auction['name2']}</>(이)가 <C>".GetStuffName($auction['stuff'])."</>(을)를 구매했습니다!";
|
||||
$history[0] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【암시장】</b></><Y>{$auction['name2']}</>(이)가 <C>".GetStuffName($auction['stuff'])."</>(을)를 구매했습니다!";
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$auction['name2']}</>{$josaYi2} <C>".GetStuffName($auction['stuff'])."</>$josaUl 구매했습니다!";
|
||||
$history[0] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<C><b>【암시장】</b></><Y>{$auction['name2']}</>{$josaYi2} <C>".GetStuffName($auction['stuff'])."</>$josaUl 구매했습니다!";
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
pushWorldHistory($history, $admin['year'], $admin['month']);
|
||||
}
|
||||
@@ -236,9 +247,11 @@ function processAuction() {
|
||||
|
||||
$traderLog[0] = "<S>◆</>입찰자 부재로 {$auction['no']}번 거래 <M>유찰</>!";
|
||||
if($auction['type'] == 0) {
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <M>유찰</> : <Y>{$auction['name1']}</>(이)가 쌀 <C>{$auction['amount']}</>(을)를 판매, 그러나 입찰자 부재";
|
||||
$josaUlRice = JosaUtil::pick($auction['amount'], '을');
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <M>유찰</> : <Y>{$auction['name1']}</>{$josaYi1} 쌀 <C>{$auction['amount']}</>{$josaUlRice} 판매, 그러나 입찰자 부재";
|
||||
} else {
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <S>구매</> <M>유찰</> : <Y>{$auction['name1']}</>(이)가 쌀 <C>{$auction['amount']}</>(을)를 구매, 그러나 입찰자 부재";
|
||||
$josaUlRice = JosaUtil::pick($auction['amount'], '을');
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <S>구매</> <M>유찰</> : <Y>{$auction['name1']}</>{$josaYi1} 쌀 <C>{$auction['amount']}</>{$josaUlRice} 구매, 그러나 입찰자 부재";
|
||||
}
|
||||
pushGenLog($trader, $traderLog);
|
||||
pushAuctionLog($auctionLog);
|
||||
@@ -267,9 +280,11 @@ function processAuction() {
|
||||
$query = "update general set gold='{$trader['gold']}' where no='{$auction['no1']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$josaUlRice = JosaUtil::pick($auction['amount'], '을');
|
||||
$josaRo = JosaUtil::pick($auction['value'], '로');
|
||||
$traderLog[0] = "<S>◆</>판매자의 군량 부족으로 {$auction['no']}번 거래 <M>유찰</>! 벌금 <C>{$gold}</>";
|
||||
$bidderLog[0] = "<S>◆</>판매자의 군량 부족으로 {$auction['no']}번 거래 <M>유찰</>!";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <M>유찰</> : <Y>{$auction['name1']}</>(이)가 쌀 <C>{$auction['amount']}</>(을)를 판매, <Y>{$auction['name2']}</>(이)가 금 <C>{$auction['value']}</>(으)로 입찰, 그러나 판매자 군량부족, 벌금 <C>{$gold}</>";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <M>유찰</> : <Y>{$auction['name1']}</>{$josaYi1} 쌀 <C>{$auction['amount']}</>{$josaUlRice} 판매, <Y>{$auction['name2']}</>{$josaYi2} 금 <C>{$auction['value']}</>{$josaRo} 입찰, 그러나 판매자 군량부족, 벌금 <C>{$gold}</>";
|
||||
} elseif($auction['value'] > $bidder['gold'] - 1000) {
|
||||
$gold = Util::round($auction['value'] * 0.01);
|
||||
$bidder['gold'] -= $gold;
|
||||
@@ -277,13 +292,18 @@ function processAuction() {
|
||||
$query = "update general set gold='{$bidder['gold']}' where no='{$auction['no2']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$josaUlRice = JosaUtil::pick($auction['amount'], '을');
|
||||
$josaRo = JosaUtil::pick($auction['value'], '로');
|
||||
$traderLog[0] = "<S>◆</>입찰자의 자금 부족으로 {$auction['no']}번 거래 <M>유찰</>!";
|
||||
$bidderLog[0] = "<S>◆</>입찰자의 자금 부족으로 {$auction['no']}번 거래 <M>유찰</>! 벌금 <C>{$gold}</>";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <M>유찰</> : <Y>{$auction['name1']}</>(이)가 쌀 <C>{$auction['amount']}</>(을)를 판매, <Y>{$auction['name2']}</>(이)가 금 <C>{$auction['value']}</>(으)로 입찰, 그러나 입찰자 자금부족, 벌금 <C>{$gold}</>";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <M>유찰</> : <Y>{$auction['name1']}</>{$josaYi1} 쌀 <C>{$auction['amount']}</>{$josaUlRice} 판매, <Y>{$auction['name2']}</>{$josaYi2} 금 <C>{$auction['value']}</>{$josaRo} 입찰, 그러나 입찰자 자금부족, 벌금 <C>{$gold}</>";
|
||||
} else {
|
||||
$traderLog[0] = "<S>◆</>{$auction['no']}번 거래 <C>성사</>로 쌀 <C>{$auction['amount']}</>(을)를 판매, 금 <C>{$auction['value']}</>(을)를 획득!";
|
||||
$bidderLog[0] = "<S>◆</>{$auction['no']}번 거래 <C>성사</>로 금 <C>{$auction['value']}</>(을)를 지불, 쌀 <C>{$auction['amount']}</>(을)를 구입!";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <C>성사</> : <Y>{$auction['name1']}</>(이)가 쌀 <C>{$auction['amount']}</>(을)를 판매, <Y>{$auction['name2']}</>(이)가 금 <C>{$auction['value']}</>(으)로 구매";
|
||||
$josaUlGold = JosaUtil::pick($auction['value'], '을');
|
||||
$josaUlRice = JosaUtil::pick($auction['amount'], '을');
|
||||
$josaRo = JosaUtil::pick($auction['value'], '로');
|
||||
$traderLog[0] = "<S>◆</>{$auction['no']}번 거래 <C>성사</>로 쌀 <C>{$auction['amount']}</>{$josaUlRice} 판매, 금 <C>{$auction['value']}</>{$josaUlGold} 획득!";
|
||||
$bidderLog[0] = "<S>◆</>{$auction['no']}번 거래 <C>성사</>로 금 <C>{$auction['value']}</>{$josaUlGold} 지불, 쌀 <C>{$auction['amount']}</>{$josaUlRice} 구입!";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <span class='sell'>판매</span> <C>성사</> : <Y>{$auction['name1']}</>{$josaYi1} 쌀 <C>{$auction['amount']}</>{$josaUlRice} 판매, <Y>{$auction['name2']}</>{$josaYi2} 금 <C>{$auction['value']}</>{$josaRo} 구매";
|
||||
if($auction['value'] >= $auction['amount'] * 2) {
|
||||
$auctionLog[0] .= " <R>★ 최고가 거래 ★</>";
|
||||
} elseif($auction['value'] >= $auction['topv']) {
|
||||
@@ -308,9 +328,11 @@ function processAuction() {
|
||||
$query = "update general set gold='{$bidder['gold']}' where no='{$auction['no2']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$josaUlRice = JosaUtil::pick($auction['amount'], '을');
|
||||
$josaRo = JosaUtil::pick($auction['value'], '로');
|
||||
$traderLog[0] = "<S>◆</>입찰자의 군량 부족으로 {$auction['no']}번 거래 <M>유찰</>!";
|
||||
$bidderLog[0] = "<S>◆</>입찰자의 군량 부족으로 {$auction['no']}번 거래 <M>유찰</>! 벌금 <C>{$gold}</>";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <S>구매</> <M>유찰</> : <Y>{$auction['name1']}</>(이)가 쌀 <C>{$auction['amount']}</>(을)를 구매, <Y>{$auction['name2']}</>(이)가 금 <C>{$auction['value']}</>(으)로 입찰, 그러나 입찰자 군량부족, 벌금 <C>{$gold}</>";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <S>구매</> <M>유찰</> : <Y>{$auction['name1']}</>{$josaYi1} 쌀 <C>{$auction['amount']}</>{$josaUlRice} 구매, <Y>{$auction['name2']}</>{$josaYi2} 금 <C>{$auction['value']}</>{$josaRo} 입찰, 그러나 입찰자 군량부족, 벌금 <C>{$gold}</>";
|
||||
} elseif($auction['value'] > $trader['gold'] - 1000) {
|
||||
$gold = Util::round($auction['value'] * 0.01);
|
||||
$trader['gold'] -= $gold;
|
||||
@@ -318,13 +340,18 @@ function processAuction() {
|
||||
$query = "update general set gold='{$trader['gold']}' where no='{$auction['no1']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$josaUlRice = JosaUtil::pick($auction['amount'], '을');
|
||||
$josaRo = JosaUtil::pick($auction['value'], '로');
|
||||
$traderLog[0] = "<S>◆</>구매자의 자금 부족으로 {$auction['no']}번 거래 <M>유찰</>! 벌금 <C>{$gold}</>";
|
||||
$bidderLog[0] = "<S>◆</>구매자의 자금 부족으로 {$auction['no']}번 거래 <M>유찰</>!";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <S>구매</> <M>유찰</> : <Y>{$auction['name1']}</>(이)가 쌀 <C>{$auction['amount']}</>(을)를 구매, <Y>{$auction['name2']}</>(이)가 금 <C>{$auction['value']}</>(으)로 입찰, 그러나 구매자 자금부족, 벌금 <C>{$gold}</>";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <S>구매</> <M>유찰</> : <Y>{$auction['name1']}</>{$josaYi1} 쌀 <C>{$auction['amount']}</>{$josaUlRice} 구매, <Y>{$auction['name2']}</>{$josaYi2} 금 <C>{$auction['value']}</>{$josaRo} 입찰, 그러나 구매자 자금부족, 벌금 <C>{$gold}</>";
|
||||
} else {
|
||||
$traderLog[0] = "<S>◆</>{$auction['no']}번 거래 <C>성사</>로 금 <C>{$auction['value']}</>(을)를 지불, 쌀 <C>{$auction['amount']}</>(을)를 구입!";
|
||||
$bidderLog[0] = "<S>◆</>{$auction['no']}번 거래 <C>성사</>로 쌀 <C>{$auction['amount']}</>(을)를 판매, 금 <C>{$auction['value']}</>(을)를 획득!";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <S>구매</> <C>성사</> : <Y>{$auction['name1']}</>(이)가 쌀 <C>{$auction['amount']}</>(을)를 구매, <Y>{$auction['name2']}</>(이)가 금 <C>{$auction['value']}</>(으)로 판매";
|
||||
$josaUlGold = JosaUtil::pick($auction['value'], '을');
|
||||
$josaUlRice = JosaUtil::pick($auction['amount'], '을');
|
||||
$josaRo = JosaUtil::pick($auction['value'], '로');
|
||||
$traderLog[0] = "<S>◆</>{$auction['no']}번 거래 <C>성사</>로 금 <C>{$auction['value']}</>{$josaUlGold} 지불, 쌀 <C>{$auction['amount']}</>{$josaUlRice} 구입!";
|
||||
$bidderLog[0] = "<S>◆</>{$auction['no']}번 거래 <C>성사</>로 쌀 <C>{$auction['amount']}</>{$josaUlRice} 판매, 금 <C>{$auction['value']}</>{$josaUlGold} 획득!";
|
||||
$auctionLog[0] = "<S>◆</>{$admin['year']}년 {$admin['month']}월, {$auction['no']}번 <S>구매</> <C>성사</> : <Y>{$auction['name1']}</>{$josaYi1} 쌀 <C>{$auction['amount']}</>{$josaUlRice} 구매, <Y>{$auction['name2']}</>{$josaYi2} 금 <C>{$auction['value']}</>{$josaRo} 판매";
|
||||
if($auction['value'] >= $auction['amount'] * 2) {
|
||||
$auctionLog[0] .= " <R>★ 최고가 거래 ★</>";
|
||||
} elseif($auction['value'] * 2 <= $auction['amount']) {
|
||||
|
||||
+65
-50
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
function getTurn($general, $type, $font=1) {
|
||||
function getTurn(array $general, $type, $font=1) {
|
||||
//TODO: 왜 'Type' 인가. 그냥 count로 하자.
|
||||
$str = [];
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
@@ -78,7 +79,8 @@ function getTurn($general, $type, $font=1) {
|
||||
case 16: //전쟁
|
||||
$double = $command[1];
|
||||
$city = getCity($double, "name");
|
||||
$str[$i] = "【{$city['name']}】(으)로 출병";
|
||||
$josaRo = JosaUtil::pick($city['name'], '로');
|
||||
$str[$i] = "【{$city['name']}】{$josaRo} 출병";
|
||||
break;
|
||||
case 17: //소집해제
|
||||
$str[$i] = "소집 해제";
|
||||
@@ -87,7 +89,8 @@ function getTurn($general, $type, $font=1) {
|
||||
case 21: //이동
|
||||
$double = $command[1];
|
||||
$city = getCity($double, "name");
|
||||
$str[$i] = "【{$city['name']}】(으)로 이동";
|
||||
$josaRo = JosaUtil::pick($city['name'], '로');
|
||||
$str[$i] = "【{$city['name']}】{$josaRo} 이동";
|
||||
break;
|
||||
case 22: //등용
|
||||
$double = $command[1];
|
||||
@@ -96,7 +99,8 @@ function getTurn($general, $type, $font=1) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
|
||||
$str[$i] = "【{$general['name']}】(을)를 등용";
|
||||
$josaUl = JosaUtil::pick($general['name'], '을');
|
||||
$str[$i] = "【{$general['name']}】{$josaUl} 등용";
|
||||
break;
|
||||
case 25: //임관
|
||||
$double = $command[1];
|
||||
@@ -105,7 +109,8 @@ function getTurn($general, $type, $font=1) {
|
||||
|
||||
if(!$nation['name']) { $nation['name'] = '????'; }
|
||||
|
||||
$str[$i] = "【{$nation['name']}】(으)로 임관";
|
||||
$josaRo = JosaUtil::pick($nation['name'], '로');
|
||||
$str[$i] = "【{$nation['name']}】{$josaRo} 임관";
|
||||
break;
|
||||
case 26: //집합
|
||||
$str[$i] = "집합";
|
||||
@@ -119,7 +124,8 @@ function getTurn($general, $type, $font=1) {
|
||||
case 30: //강행
|
||||
$double = $command[1];
|
||||
$city = getCity($double, "name");
|
||||
$str[$i] = "【{$city['name']}】(으)로 강행";
|
||||
$josaRo = JosaUtil::pick($city['name'], '로');
|
||||
$str[$i] = "【{$city['name']}】{$josaRo} 강행";
|
||||
break;
|
||||
|
||||
case 31: //첩보
|
||||
@@ -177,11 +183,10 @@ function getTurn($general, $type, $font=1) {
|
||||
$str[$i] = "하야";
|
||||
break;
|
||||
case 46: //건국
|
||||
$query = "select makenation from general where no='{$general['no']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
$nationName = $db->queryFirstField('SELECT makenation FROM general WHERE `no`=%i', $general['no'])??'';
|
||||
|
||||
$str[$i] = "【{$general['makenation']}】(을)를 건국";
|
||||
$josaUl = JosaUtil::pick($nationName, '을');
|
||||
$str[$i] = "【{$nationName}】{$josaUl} 건국";
|
||||
break;
|
||||
case 47: //방랑
|
||||
$str[$i] = "방랑";
|
||||
@@ -197,13 +202,17 @@ function getTurn($general, $type, $font=1) {
|
||||
} elseif($double == 300) {
|
||||
$str[$i] = "도구를 판매";
|
||||
} elseif($double < 100) {
|
||||
$str[$i] = "【".getWeapName($double)."】(을)를 구입";
|
||||
$josaUl = JosaUtil::pick(getWeapName($double), '을');
|
||||
$str[$i] = "【".getWeapName($double)."】{$josaUl} 구입";
|
||||
} elseif($double < 200) {
|
||||
$str[$i] = "【".getBookName($double-100)."】(을)를 구입";
|
||||
$josaUl = JosaUtil::pick(getBookName($double-100), '을');
|
||||
$str[$i] = "【".getBookName($double-100)."】{$josaUl} 구입";
|
||||
} elseif($double < 300) {
|
||||
$str[$i] = "【".getHorseName($double-200)."】(을)를 구입";
|
||||
$josaUl = JosaUtil::pick(getHorseName($double-200), '을');
|
||||
$str[$i] = "【".getHorseName($double-200)."】{$josaUl} 구입";
|
||||
} elseif($double < 400) {
|
||||
$str[$i] = "【".getItemName($double-300)."】(을)를 구입";
|
||||
$josaUl = JosaUtil::pick(getItemName($double-300), '을');
|
||||
$str[$i] = "【".getItemName($double-300)."】{$josaUl} 구입";
|
||||
}
|
||||
break;
|
||||
case 49: //군량 매매
|
||||
@@ -286,8 +295,8 @@ function getCoreTurn($nation, $level) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
|
||||
if($fourth == 1) { $str[$i] = "【{$general['name']}】에게 금 {$double}00을 포상"; }
|
||||
else { $str[$i] = "【{$general['name']}】에게 쌀 {$double}00을 포상"; }
|
||||
if($fourth == 1) { $str[$i] = "【{$general['name']}】에게 금 {$double}00 포상"; }
|
||||
else { $str[$i] = "【{$general['name']}】에게 쌀 {$double}00 포상"; }
|
||||
break;
|
||||
case 24: //몰수
|
||||
$fourth = $command[3];
|
||||
@@ -298,8 +307,8 @@ function getCoreTurn($nation, $level) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
|
||||
if($fourth == 1) { $str[$i] = "【{$general['name']}】에게서 금 {$double}00을 몰수"; }
|
||||
else { $str[$i] = "【{$general['name']}】에게서 쌀 {$double}00을 몰수"; }
|
||||
if($fourth == 1) { $str[$i] = "【{$general['name']}】의 금 {$double}00 몰수"; }
|
||||
else { $str[$i] = "【{$general['name']}】의 쌀 {$double}00 몰수"; }
|
||||
break;
|
||||
case 27: //발령
|
||||
$third = $command[2];
|
||||
@@ -309,8 +318,8 @@ function getCoreTurn($nation, $level) {
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
$city = getCity($double, "name");
|
||||
|
||||
$str[$i] = "【{$general['name']}】【{$city['name']}】(으)로 발령";
|
||||
$josaRo = JosaUtil::pick($city['name'], '로');
|
||||
$str[$i] = "【{$general['name']}】【{$city['name']}】{$josaRo} 발령";
|
||||
break;
|
||||
case 51: //항복권고
|
||||
$double = (int)$command[1];
|
||||
@@ -331,15 +340,13 @@ function getCoreTurn($nation, $level) {
|
||||
$str[$i] = "【{$nation['name']}】에게 국고 {$third} 병량 {$fourth} 원조";
|
||||
break;
|
||||
case 53: //통합제의
|
||||
$query = "select makenation from general where level='$level' and nation='{$nation['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
$nationName = $db->queryFirstField('SELECT makenation FROM general WHERE `level`=%i AND `nation`=%i', $level, $nation['nation'])??'';
|
||||
|
||||
$double = (int)$command[1];
|
||||
|
||||
$nation = getNationStaticInfo($double);
|
||||
|
||||
$str[$i] = "【{$nation['name']}】에 【{$general['makenation']}】(으)로 통합 제의";
|
||||
$josaRo = JosaUtil::pick($nationName, '로');
|
||||
$str[$i] = "【{$nation['name']}】에 【{$nationName}】{$josaRo} 통합 제의";
|
||||
break;
|
||||
case 61: //불가침제의
|
||||
$third = $command[2];
|
||||
@@ -373,22 +380,26 @@ function getCoreTurn($nation, $level) {
|
||||
case 65: //초토
|
||||
$double = $command[1];
|
||||
$city = getCity($double, "name");
|
||||
$str[$i] = "【{$city['name']}】(을)를 초토화";
|
||||
$josaUl = JosaUtil::pick($city['name'], '을');
|
||||
$str[$i] = "【{$city['name']}】{$josaUl} 초토화";
|
||||
break;
|
||||
case 66: //천도
|
||||
$double = $command[1];
|
||||
$city = getCity($double, "name");
|
||||
$str[$i] = "【{$city['name']}】(으)로 천도";
|
||||
$josaRo = JosaUtil::pick($city['name'], '로');
|
||||
$str[$i] = "【{$city['name']}】{$josaRo} 천도";
|
||||
break;
|
||||
case 67: //증축
|
||||
$double = $command[1];
|
||||
$city = getCity($double, "name");
|
||||
$str[$i] = "【{$city['name']}】(을)를 증축";
|
||||
$josaUl = JosaUtil::pick($city['name'], '을');
|
||||
$str[$i] = "【{$city['name']}】{$josaUl} 증축";
|
||||
break;
|
||||
case 68: //감축
|
||||
$double = $command[1];
|
||||
$city = getCity($double, "name");
|
||||
$str[$i] = "【{$city['name']}】(을)를 감축";
|
||||
$josaUl = JosaUtil::pick($city['name'], '을');
|
||||
$str[$i] = "【{$city['name']}】{$josaUl} 감축";
|
||||
break;
|
||||
case 71: //필사즉생
|
||||
$str[$i] = "필사즉생";
|
||||
@@ -401,7 +412,8 @@ function getCoreTurn($nation, $level) {
|
||||
case 73: //수몰
|
||||
$double = $command[1];
|
||||
$city = getCity($double, "name");
|
||||
$str[$i] = "【{$city['name']}】(을)를 수몰";
|
||||
$josaUl = JosaUtil::pick($city['name'], '을');
|
||||
$str[$i] = "【{$city['name']}】{$josaUl} 수몰";
|
||||
break;
|
||||
case 74: //허보
|
||||
$double = $command[1];
|
||||
@@ -456,28 +468,27 @@ function getCoreTurn($nation, $level) {
|
||||
function processCommand($no) {
|
||||
$session = Session::getInstance();
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select npc,no,name,picture,imgsvr,nation,nations,city,troop,injury,leader,leader2,power,power2,intel,intel2,experience,dedication,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,makenation,makelimit,killturn,block,dedlevel,explevel,age,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40 from general where no='$no'";
|
||||
$query = "select npc,no,name,picture,imgsvr,nation,nations,city,troop,injury,affinity,leader,leader2,power,power2,intel,intel2,experience,dedication,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,makenation,makelimit,killturn,block,dedlevel,explevel,age,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40 from general where no='$no'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select month,killturn from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
|
||||
list($month, $killturn) = $gameStor->getValuesAsArray(['month', 'killturn']);
|
||||
$log = [];
|
||||
|
||||
// 블럭자는 미실행. 삭턴 감소
|
||||
if($general['block'] == 2) {
|
||||
$date = substr($general['turntime'],11,5);
|
||||
$log[] = "<C>●</>{$admin['month']}월:현재 멀티, 또는 비매너로 인한<R>블럭</> 대상자입니다. <1>$date</>";
|
||||
$log[] = "<C>●</>{$month}월:현재 멀티, 또는 비매너로 인한<R>블럭</> 대상자입니다. <1>$date</>";
|
||||
pushGenLog($general, $log);
|
||||
|
||||
$query = "update general set recturn='',resturn='BLOCK_2',myset=3,con=0,killturn=killturn-1 where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} elseif($general['block'] == 3) {
|
||||
$date = substr($general['turntime'],11,5);
|
||||
$log[] = "<C>●</>{$admin['month']}월:현재 악성유저로 분류되어 <R>블럭, 발언권 무효</> 대상자입니다. <1>$date</>";
|
||||
$log[] = "<C>●</>{$month}월:현재 악성유저로 분류되어 <R>블럭, 발언권 무효</> 대상자입니다. <1>$date</>";
|
||||
pushGenLog($general, $log);
|
||||
|
||||
$query = "update general set recturn='',resturn='BLOCK_3',myset=3,con=0,killturn=killturn-1 where no='{$general['no']}'";
|
||||
@@ -522,23 +533,25 @@ function processCommand($no) {
|
||||
}
|
||||
|
||||
//장수정보 재로드
|
||||
$query = "select npc,no,name,picture,imgsvr,nation,nations,city,troop,injury,leader,leader2,power,power2,intel,intel2,experience,dedication,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,makenation,makelimit,killturn,block,dedlevel,explevel,age,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40 from general where no='$no'";
|
||||
$query = "select npc,no,name,picture,imgsvr,nation,nations,city,troop,injury,affinity,leader,leader2,power,power2,intel,intel2,experience,dedication,level,gold,rice,crew,crewtype,train,atmos,weap,book,horse,item,turntime,makenation,makelimit,killturn,block,dedlevel,explevel,age,belong,personal,special,special2,term,turn0,dex0,dex10,dex20,dex30,dex40 from general where no='$no'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$general = MYDB_fetch_array($result);
|
||||
}
|
||||
|
||||
$command = DecodeCommand($general['turn0']);
|
||||
//삭턴 처리
|
||||
if($general['npc'] >= 2 || $general['killturn'] > $admin['killturn']) {
|
||||
if($general['npc'] >= 2 || $general['killturn'] > $killturn) {
|
||||
$query = "update general set recturn=turn0,resturn='FAIL',myset=3,con=0,killturn=killturn-1 where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} elseif(intval($command[0]) == 0 && $session->userGrade < 5) {
|
||||
} elseif($command[0] == 0) {
|
||||
$query = "update general set recturn=turn0,resturn='FAIL',myset=3,con=0,killturn=killturn-1 where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
} else {
|
||||
$query = "update general set recturn=turn0,resturn='FAIL',myset=3,con=0,killturn='{$admin['killturn']}' where no='{$general['no']}'";
|
||||
$query = "update general set recturn=turn0,resturn='FAIL',myset=3,con=0,killturn='{$killturn}' where no='{$general['no']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
}
|
||||
//FIXME: 운영자 같이 사망하면 안되는 인물에 대한 처리가 필요
|
||||
|
||||
//연속턴 아닌경우 텀 리셋
|
||||
if($general['term']%100 != $command[0]) {
|
||||
$query = "update general set term=0 where no='{$general['no']}'";
|
||||
@@ -548,7 +561,7 @@ function processCommand($no) {
|
||||
switch($command[0]) {
|
||||
case 0: //휴식
|
||||
$date = substr($general['turntime'],11,5);
|
||||
$log[] = "<C>●</>{$admin['month']}월:아무것도 실행하지 않았습니다. <1>$date</>";
|
||||
$log[] = "<C>●</>{$month}월:아무것도 실행하지 않았습니다. <1>$date</>";
|
||||
pushGenLog($general, $log);
|
||||
break;
|
||||
case 1: process_1($general, 1); break; //농업
|
||||
@@ -570,7 +583,7 @@ function processCommand($no) {
|
||||
case 17: process_17($general); break; //소집해제
|
||||
|
||||
case 21: process_21($general); break; //이동
|
||||
//case 22: process_22($general); break; //등용 //TODO:등용장 재 디자인
|
||||
case 22: process_22($general); break; //등용
|
||||
case 25: process_25($general); break; //임관
|
||||
case 26: process_26($general); break; //집합
|
||||
case 28: process_28($general); break; //귀환
|
||||
@@ -681,19 +694,21 @@ where nation='{$general['nation']}'
|
||||
|
||||
|
||||
function command_Single($turn, $command) {
|
||||
if(!$turn){
|
||||
header('location:commandlist.php');
|
||||
return;
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
$userID = Session::getUserID();
|
||||
|
||||
$command = EncodeCommand(0, 0, 0, $command);
|
||||
|
||||
$count = count($turn);
|
||||
$str = "con=con";
|
||||
for($i=0; $i < $count; $i++) {
|
||||
$str .= ",turn{$turn[$i]}='{$command}'";
|
||||
$setValues = [];
|
||||
foreach($turn as $turnIdx){
|
||||
$setValues["turn{$turnIdx}"] = $command;
|
||||
}
|
||||
$query = "update general set {$str} where owner='{$userID}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$db->update('general', $setValues, 'owner=%i',$userID);
|
||||
|
||||
header('location:commandlist.php');
|
||||
}
|
||||
|
||||
+7
-10
@@ -284,19 +284,19 @@ function getLevel($level, $nlevel=8) {
|
||||
|
||||
function getCall($leader, $power, $intel) {
|
||||
$call = '평범';
|
||||
if($leader >= GameConst::$goodgenleader && $power >= GameConst::$goodgenpower && $intel >= GameConst::$goodgenintel) {
|
||||
if($leader >= GameConst::$chiefStatMin && $power >= GameConst::$chiefStatMin && $intel >= GameConst::$chiefStatMin) {
|
||||
$call = '만능';
|
||||
} elseif($leader >= GameConst::$goodgenleader && $power >= GameConst::$goodgenpower) {
|
||||
} elseif($leader >= GameConst::$chiefStatMin && $power >= GameConst::$chiefStatMin) {
|
||||
$call = '용장';
|
||||
} elseif($leader >= GameConst::$goodgenleader && $intel >= GameConst::$goodgenintel) {
|
||||
} elseif($leader >= GameConst::$chiefStatMin && $intel >= GameConst::$chiefStatMin) {
|
||||
$call = '지장';
|
||||
} elseif($power >= GameConst::$goodgenpower && $intel >= GameConst::$goodgenintel) {
|
||||
} elseif($power >= GameConst::$chiefStatMin && $intel >= GameConst::$chiefStatMin) {
|
||||
$call = '명장';
|
||||
} elseif($leader >= GameConst::$goodgenleader) {
|
||||
} elseif($leader >= GameConst::$chiefStatMin) {
|
||||
$call = '명사';
|
||||
} elseif($power >= GameConst::$goodgenpower) {
|
||||
} elseif($power >= GameConst::$chiefStatMin) {
|
||||
$call = '용맹';
|
||||
} elseif($intel >= GameConst::$goodgenintel) {
|
||||
} elseif($intel >= GameConst::$chiefStatMin) {
|
||||
$call = '현명';
|
||||
}
|
||||
return $call;
|
||||
@@ -397,9 +397,6 @@ function getBill(int $dedication) : int{
|
||||
}
|
||||
|
||||
function getCost(int $armtype) : int {
|
||||
//FIXME: 정말로 side effect가 없으려면 query는 밖으로 이동해야함.
|
||||
//TODO: 병종 값이 column으로 들어있는건 전혀 옳지 않음. key->value 형태로 바꿔야함
|
||||
|
||||
return GameUnitConst::byID($armtype)->cost;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,224 +0,0 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
function checkScoutAvailable($messageInfo, $general, $srcGeneral, $startyear, $year){
|
||||
$nationID = $messageInfo['src']['nationID'];
|
||||
|
||||
$srcNation = DB::db()->queryFirstRow('SELECT `level`, `scout` FROM `nation` WHERE `nation` = %i', $nationID);
|
||||
|
||||
$realNationID = $srcGeneral['nation'];
|
||||
|
||||
|
||||
|
||||
if($general['level'] == 12) {
|
||||
return [false, "군주입니다."];
|
||||
}
|
||||
if(!$srcNation || $srcNation['level'] == 0) {
|
||||
return [false, "없는 국가이거나 방랑군입니다."];
|
||||
}
|
||||
if($realNationID != $nationID){
|
||||
return [false, "권유자의 소속이 바뀌었습니다."];
|
||||
}
|
||||
if($srcNation['scout'] != 0) {
|
||||
return [false, "임관 금지중입니다."];
|
||||
}
|
||||
if($year < $startyear+3) {
|
||||
return [false, "초반 제한중입니다."];
|
||||
}
|
||||
if(strpos($general['nations'], ",{$nationID},") > 0) {
|
||||
return [false, "이미 임관했었던 국가입니다."];
|
||||
}
|
||||
|
||||
return [true, null];
|
||||
|
||||
}
|
||||
|
||||
function acceptScout($messageInfo, $general, $msgResponse){
|
||||
$me = $general;
|
||||
$you = DB::db()->queryFirstRow('SELECT `no`, `name`, `nation` FROM `general` WHERE `no` = %i', $messageInfo['src']['id']);
|
||||
|
||||
list($startyear, $year, $month, $killturn) = Util::convertDictToArray(DB::db()->queryFirstRow('SELECT `startyear`, `year`, `month`, `killturn` FROM `game` LIMIT 1'), ['startyear', 'year', 'month', `killturn`]);
|
||||
|
||||
list($avaliableScout, $reason) = checkScoutAvailable($messageInfo, $general, $you, $startyear, $year);
|
||||
|
||||
if(!$msgResponse || !$avaliableScout){
|
||||
return declineScout($messageInfo, $reason);
|
||||
}
|
||||
|
||||
$nation = getNationStaticInfo($messageInfo['src']['nationID']);
|
||||
$generalID = $me['no'];
|
||||
$nationID = $nation['nation'];
|
||||
$nationName = $nation['name'];
|
||||
$myName = $me['name'];
|
||||
|
||||
$mylog = [];
|
||||
$youlog = [];
|
||||
$alllog = [];
|
||||
|
||||
$youlog[] = "<C>●</><Y>{$myName}</> 등용에 성공했습니다.";
|
||||
$alllog[] = "<C>●</>{$month}월:<Y>{$myName}</>(이)가 <D><b>{$nationName}</b></>(으)로 <S>망명</>하였습니다.";
|
||||
$mylog[] = "<C>●</><D>{$nationName}</>(으)로 망명하여 수도로 이동합니다.";
|
||||
pushGeneralHistory($you, "<C>●</>{$year}년 {$month}월:<Y>{$myName}</> 등용에 성공");
|
||||
pushGeneralHistory($me, "<C>●</>{$year}년 {$month}월:<D>{$nationName}</>(으)로 망명");
|
||||
|
||||
$me['nations'] .= "{$nationID},";
|
||||
|
||||
$updateMe = [
|
||||
'belong'=>1,
|
||||
'nation'=>$nationID,
|
||||
'level'=>1,
|
||||
'city'=>$nation['capital'],
|
||||
'troop'=>0
|
||||
];
|
||||
|
||||
|
||||
//처리가 조금 다름.
|
||||
|
||||
$db = DB::db();
|
||||
|
||||
|
||||
if($me['level'] > 0){
|
||||
$updateOldNation = [
|
||||
'totaltech' => $db->sqleval('`tech`*greatest(10, `gennum`-1)'),
|
||||
'gennum' => $db->sqleval('greatest(10, `gennum`-1)')
|
||||
];
|
||||
|
||||
if($me['gold'] > 1000){
|
||||
$updateOldNation['gold'] = $db->sqleval('`gold` + %i', $me['gold'] - 1000);
|
||||
$updateMe['gold'] = 1000;
|
||||
}
|
||||
if($me['rice'] > 1000){
|
||||
$updateOldNation['rice'] = $db->sqleval('`rice` + %i', $me['rice'] - 1000);
|
||||
$updateMe['rice'] = 1000;
|
||||
}
|
||||
|
||||
$updateMe['betray'] = $db->sqleval('`betray` + 1');
|
||||
$updateMe['dedication'] = $db->sqleval('dedication*(1-0.1*betray)');
|
||||
$updateMe['experience'] = $db->sqleval('experience*(1-0.1*betray)');
|
||||
|
||||
$db->update('nation', $updateOldNation, 'nation = %i', $messageInfo['dest']['nationID']);
|
||||
}
|
||||
else{
|
||||
$updateMe['dedication'] = $db->sqleval('dedication + 100');
|
||||
$updateMe['experience'] = $db->sqleval('experience + 100');
|
||||
}
|
||||
|
||||
if($me['npc'] < 2){
|
||||
$updateMe['killturn'] = $killturn;
|
||||
}
|
||||
|
||||
$db->update('general', $updateMe, 'no = %i', $generalID);
|
||||
|
||||
$db->query('UPDATE nation set '.
|
||||
'gennum = greatest(10, (SELECT count(`id`) from general where `nation` = %i_nation)), '.
|
||||
'totaltech = tech * greatest(10, (SELECT count(`id`) from general where `nation` = %i_nation)) '.
|
||||
'where nation=%i_nation', ['nation'=>$nationID]);
|
||||
|
||||
//태수 군사 시중 해제
|
||||
switch($me['level']) {
|
||||
case 4:
|
||||
$db->query('update city set gen1=0 where gen1=%i', $generalID);
|
||||
break;
|
||||
case 3:
|
||||
$db->query('update city set gen3=0 where gen2=%i', $generalID);
|
||||
break;
|
||||
case 2:
|
||||
$db->query('update city set gen3=0 where gen2=%i', $generalID);
|
||||
break;
|
||||
}
|
||||
|
||||
$db->query('UPDATE general left join troop on troop.troop = general.troop set general.troop = 0 where troop.no = %i', $generalID);
|
||||
$db->query('delete from troop where no = %i', $generalID);
|
||||
|
||||
$db->query('UPDATE `message` SET `valid_until`=\'1234-11-22 11:22:33\' WHERE `id` = %i', $messageInfo['id']);
|
||||
$msg = "{$nationName}(으)로 등용 제의 수락";
|
||||
sendRawMessage('private', false, $general['no'], $messageInfo['src'], $messageInfo['dest'], $msg, null, null, ['parent'=>$messageInfo['id']]);
|
||||
|
||||
pushGenLog($me, $mylog);
|
||||
pushGenLog($you, $youlog);
|
||||
pushGeneralPublicRecord($alllog, $year, $month);
|
||||
pushWorldHistory($alllog, $year, $month);
|
||||
|
||||
return [true, 'success'];
|
||||
}
|
||||
|
||||
function declineScout($messageInfo, $reason=null){
|
||||
$me = [
|
||||
'no'=>$messageInfo['dest']['id'],
|
||||
'name'=>$messageInfo['dest']['name']
|
||||
];
|
||||
$you = ['no'=>$messageInfo['src']['id']];
|
||||
|
||||
$nation = getNationStaticInfo($messageInfo['src']['nationID']);
|
||||
$generalID = $me['no'];
|
||||
$nationID = $nation['nation'];
|
||||
$nationName = $nation['name'];
|
||||
$myName = $me['name'];
|
||||
|
||||
$mylog = [];
|
||||
$youlog = [];
|
||||
|
||||
|
||||
$nationName = $messageInfo['src']['nation'];
|
||||
if($reason){
|
||||
$mylog[] = "<C>●</>{$reason} 등용 수락 불가.";
|
||||
$msg = "{$nationName}(으)로 등용 제의 수락 불가";
|
||||
}
|
||||
else{
|
||||
$youlog[] = "<C>●</><Y>{$me['name']}</>(이)가 등용을 거부했습니다.";
|
||||
$mylog[] = "<C>●</><D>{$nationName}</>(으)로 망명을 거부했습니다.";
|
||||
$msg = "{$nationName}(으)로 등용 제의 거부";
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$db->query('UPDATE `message` SET `valid_until`=\'1234-11-22 11:22:33\' WHERE `id` = %i', $messageInfo['id']);
|
||||
|
||||
sendRawMessage('private', false, $you['no'], $messageInfo['src'], $messageInfo['dest'], $msg, null, null, ['parent'=>$messageInfo['id']]);
|
||||
|
||||
pushGenLog($me, $mylog);
|
||||
pushGenLog($you, $youlog);
|
||||
|
||||
return [true, 'success'];
|
||||
}
|
||||
|
||||
function acceptAlly($messageInfo, $general, $msgResponse){
|
||||
return [false, 'NYI'];
|
||||
}
|
||||
|
||||
function declineAlly($messageInfo, $general, $msgResponse){
|
||||
|
||||
}
|
||||
|
||||
function acceptBreakAlly($messageInfo, $general, $msgResponse){
|
||||
|
||||
}
|
||||
|
||||
function declineBreakAlly($messageInfo, $general, $msgResponse){
|
||||
|
||||
}
|
||||
|
||||
function acceptStopWar($messageInfo, $general, $msgResponse){
|
||||
|
||||
}
|
||||
|
||||
function declineStopWar($messageInfo, $general, $msgResponse){
|
||||
|
||||
}
|
||||
|
||||
|
||||
function acceptMergeNations($messageInfo, $general, $msgResponse){
|
||||
|
||||
}
|
||||
|
||||
function declineMergeNations($messageInfo, $general, $msgResponse){
|
||||
|
||||
}
|
||||
|
||||
|
||||
function acceptSurrender($messageInfo, $general, $msgResponse){
|
||||
|
||||
}
|
||||
|
||||
function declineSurrender($messageInfo, $general, $msgResponse){
|
||||
|
||||
}
|
||||
+96
-154
@@ -5,77 +5,8 @@ namespace sammo;
|
||||
* 게임 룰에 해당하는 함수 모음
|
||||
*/
|
||||
|
||||
// 37.5 ~ 75
|
||||
function abilityRand() {
|
||||
$total = 150;
|
||||
$leader = (rand()%100 + 1) / 100.0 + 1.0;
|
||||
$power = (rand()%100 + 1) / 100.0 + 1.0;
|
||||
$intel = (rand()%100 + 1) / 100.0 + 1.0;
|
||||
$rate = $leader + $power + $intel;
|
||||
$leader = intdiv($leader * $total, $rate);
|
||||
$power = intdiv($power * $total, $rate);
|
||||
$intel = intdiv($intel * $total, $rate);
|
||||
|
||||
while($leader+$power+$intel < 150) {
|
||||
$leader++;
|
||||
}
|
||||
|
||||
return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
|
||||
}
|
||||
|
||||
// 14 ~ 75
|
||||
function abilityLeadpow() {
|
||||
$total = 150;
|
||||
$leader = (rand()%100 + 1) / 100.0 + 6.0;
|
||||
$power = (rand()%100 + 1) / 100.0 + 6.0;
|
||||
$intel = (rand()%100 + 1) / 100.0 + 1.0;
|
||||
$rate = $leader + $power + $intel;
|
||||
$leader = intdiv($leader * $total, $rate);
|
||||
$power = intdiv($power * $total, $rate);
|
||||
$intel = intdiv($intel * $total, $rate);
|
||||
|
||||
while($leader+$power+$intel < 150) {
|
||||
$leader++;
|
||||
}
|
||||
|
||||
return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
|
||||
}
|
||||
|
||||
function abilityLeadint() {
|
||||
$total = 150;
|
||||
$leader = (rand()%100 + 1) / 100.0 + 6.0;
|
||||
$power = (rand()%100 + 1) / 100.0 + 1.0;
|
||||
$intel = (rand()%100 + 1) / 100.0 + 6.0;
|
||||
$rate = $leader + $power + $intel;
|
||||
$leader = intdiv($leader * $total, $rate);
|
||||
$power = intdiv($power * $total, $rate);
|
||||
$intel = intdiv($intel * $total, $rate);
|
||||
|
||||
while($leader+$power+$intel < 150) {
|
||||
$leader++;
|
||||
}
|
||||
|
||||
return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
|
||||
}
|
||||
|
||||
function abilityPowint() {
|
||||
$total = 150;
|
||||
$leader = (rand()%100 + 1) / 100.0 + 1.0;
|
||||
$power = (rand()%100 + 1) / 100.0 + 6.0;
|
||||
$intel = (rand()%100 + 1) / 100.0 + 6.0;
|
||||
$rate = $leader + $power + $intel;
|
||||
$leader = intdiv($leader * $total, $rate);
|
||||
$power = intdiv($power * $total, $rate);
|
||||
$intel = intdiv($intel * $total, $rate);
|
||||
|
||||
while($leader+$power+$intel < 150) {
|
||||
$leader++;
|
||||
}
|
||||
|
||||
return array('leader' => $leader, 'power' => $power, 'intel' => $intel);
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* 게임 내부에 사용하는 유틸리티 함수들을 분리
|
||||
*/
|
||||
|
||||
@@ -188,7 +119,7 @@ function getGenDex($general, $type) {
|
||||
return $general["dex{$type}"];
|
||||
}
|
||||
|
||||
function addGenDex($no, $type, $exp) {
|
||||
function addGenDex($no, $atmos, $train, $type, $exp) {
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
@@ -196,6 +127,7 @@ function addGenDex($no, $type, $exp) {
|
||||
$dexType = "dex{$type}";
|
||||
if($type == 30) { $exp = Util::round($exp * 0.90); } //귀병은 90%효율
|
||||
elseif($type == 40) { $exp = Util::round($exp * 0.90); } //차병은 90%효율
|
||||
$exp = Util::round($exp * ($atmos+$train) / 200); // 사기 + 훈련 / 200
|
||||
|
||||
$query = "update general set {$dexType}={$dexType}+{$exp} where no='$no'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -212,7 +144,7 @@ function SetNationFront($nationNo) {
|
||||
$db = DB::db();
|
||||
$enemyCities = $db->queryFirstColumn(
|
||||
'SELECT city from city where nation IN
|
||||
(SELECT you from diplomacy where me = %i and (state=0 or (state=1 and term<=3)))'
|
||||
(SELECT you from diplomacy where me = %i and (state=0 or (state=1 and term<=5)))'
|
||||
, $nationNo
|
||||
);
|
||||
if($enemyCities) {
|
||||
@@ -244,45 +176,47 @@ function SetNationFront($nationNo) {
|
||||
|
||||
function checkSupply() {
|
||||
$db = DB::db();
|
||||
$connect=$db->get();
|
||||
|
||||
$cities = [];
|
||||
foreach($db->query('SELECT city, nation FROM city WHERE nation != 0') as $city){
|
||||
$cities[$city['city']] = [
|
||||
'id'=>$city['city'],
|
||||
'nation'=>$city['nation'],
|
||||
'supply'=>false
|
||||
];
|
||||
$newCity = new \stdClass();
|
||||
$newCity->id = Util::toInt($city['city']);
|
||||
$newCity->nation = Util::toInt($city['nation']);
|
||||
$newCity->supply = false;
|
||||
|
||||
$cities[$newCity->id] = $newCity;
|
||||
}
|
||||
|
||||
$queue = new \SplQueue();
|
||||
foreach(getAllNationStaticInfo() as $nation){
|
||||
$capitalID = $nation['capital'];
|
||||
if(!$capitalID){
|
||||
foreach($db->queryAllLists('SELECT capital, nation FROM nation WHERE `level` > 0') as list($capitalID, $nationID)){
|
||||
if(!key_exists($capitalID, $cities)){
|
||||
continue;
|
||||
}
|
||||
$city = &$cities[$capitalID];
|
||||
$city['supply'] = true;
|
||||
$queue->enqueue($city['id']);
|
||||
$city = $cities[$capitalID];
|
||||
if($nationID != $city->nation){
|
||||
continue;
|
||||
}
|
||||
$city->supply = true;
|
||||
$queue->enqueue($city);
|
||||
}
|
||||
|
||||
while(!$queue->isEmpty()){
|
||||
$cityID = $queue->dequeue();
|
||||
$city = &$cities[$cityID];
|
||||
$cityLink = $queue->dequeue();
|
||||
$city = CityConst::byID($cityLink->id);
|
||||
|
||||
foreach(array_keys(CityConst::byID($cityID)->path) as $connCityID){
|
||||
foreach(array_keys($city->path) as $connCityID){
|
||||
if(!key_exists($connCityID, $cities)){
|
||||
continue;
|
||||
}
|
||||
$connCity = &$cities[$connCityID];
|
||||
if($connCity['nation'] != $city['nation']){
|
||||
$connCity = $cities[$connCityID];
|
||||
if($connCity->nation != $cityLink->nation){
|
||||
continue;
|
||||
}
|
||||
if($connCity['supply']){
|
||||
if($connCity->supply){
|
||||
continue;
|
||||
}
|
||||
$connCity['supply'] = true;
|
||||
$queue->enqueue($connCity['id']);
|
||||
$connCity->supply = true;
|
||||
$queue->enqueue($connCity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -290,15 +224,15 @@ function checkSupply() {
|
||||
'supply'=>1
|
||||
], 'nation=0');
|
||||
|
||||
$db->update('city',[
|
||||
'supply'=>0
|
||||
], 'nation!=0');
|
||||
|
||||
$supply = [];
|
||||
$unsupply = [];
|
||||
|
||||
foreach($cities as $city){
|
||||
if($city['supply']){
|
||||
$supply[] = $city['id'];
|
||||
}
|
||||
else{
|
||||
$unsupply[] = $city['id'];
|
||||
if($city->supply){
|
||||
$supply[] = $city->id;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -308,11 +242,6 @@ function checkSupply() {
|
||||
], 'city IN %li', $supply);
|
||||
}
|
||||
|
||||
if($unsupply){
|
||||
$db->update('city', [
|
||||
'supply'=>0
|
||||
], 'city IN %li', $unsupply);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -337,6 +266,7 @@ function updateQuaterly() {
|
||||
// 벌점 감소와 건국제한-1 전턴제한-1 외교제한-1, 1달마다 실행, 병사 있는 장수의 군량 감소, 수입비율 조정
|
||||
function preUpdateMonthly() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
//연감 월결산
|
||||
@@ -345,9 +275,7 @@ function preUpdateMonthly() {
|
||||
|
||||
if($result == false) { return false; }
|
||||
|
||||
$query = "select startyear,year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['startyear', 'year', 'month']);
|
||||
|
||||
//배신 횟수 최대 10회 미만
|
||||
$query = "update general set betray=9 where betray>9";
|
||||
@@ -378,7 +306,8 @@ function preUpdateMonthly() {
|
||||
$query = "update general set level=1 where no='{$city['gen1']}' or no='{$city['gen2']}' or no='{$city['gen3']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<R><b>【고립】</b></><G><b>{$city['name']}</b></>(이)가 보급이 끊겨 <R>미지배</> 도시가 되었습니다.";
|
||||
$josaYi = JosaUtil::pick($city['name'], '이');
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<R><b>【고립】</b></><G><b>{$city['name']}</b></>{$josaYi} 보급이 끊겨 <R>미지배</> 도시가 되었습니다.";
|
||||
}
|
||||
pushWorldHistory($history, $admin['year'], $admin['month']);
|
||||
//민심30이하 공백지 처리
|
||||
@@ -412,7 +341,7 @@ function preUpdateMonthly() {
|
||||
//건국제한, 전략제한, 외교제한-1
|
||||
$query = "update general set makelimit=makelimit-1 where makelimit>'0'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update nation set tricklimit=tricklimit-1 where tricklimit>'0'";
|
||||
$query = "update nation set sabotagelimit=sabotagelimit-1 where sabotagelimit>'0'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$query = "update nation set surlimit=surlimit-1 where surlimit>'0'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -427,8 +356,10 @@ function preUpdateMonthly() {
|
||||
$ratio = 100;
|
||||
// 20 ~ 140원
|
||||
$develcost = ($admin['year'] - $admin['startyear'] + 10) * 2;
|
||||
$query = "update game set gold_rate='$ratio',rice_rate='$ratio',city_rate='$rate',develcost='$develcost'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gameStor->gold_rate = $ratio;
|
||||
$gameStor->rice_rate = $ratio;
|
||||
$gameStor->city_rate = $rate;
|
||||
$gameStor->develcost = $develcost;
|
||||
|
||||
//매달 사망자 수입 결산
|
||||
processDeadIncome($ratio);
|
||||
@@ -489,11 +420,10 @@ function preUpdateMonthly() {
|
||||
// 외교 로그처리, 외교 상태 처리
|
||||
function postUpdateMonthly() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select startyear,year,month,scenario from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['startyear', 'year', 'month', 'scenario']);
|
||||
|
||||
$history = [];
|
||||
|
||||
@@ -581,7 +511,10 @@ group by A.nation
|
||||
$name1 = $nation1['name'];
|
||||
$nation2 = getNationStaticInfo($dip['you']);
|
||||
$name2 = $nation2['name'];
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<R><b>【개전】</b></><D><b>$name1</b></>(와)과 <D><b>$name2</b></>(이)가 <R>전쟁</>을 시작합니다.";
|
||||
|
||||
$josaYi = JosaUtil::pick($name2, '이');
|
||||
$josaWa = JosaUtil::pick($name1, '와');
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<R><b>【개전】</b></><D><b>$name1</b></>{$josaWa} <D><b>$name2</b></>{$josaYi} <R>전쟁</>을 시작합니다.";
|
||||
}
|
||||
//휴전국 로그
|
||||
$query = "select A.me as me,A.you as you,A.term as term1,B.term as term2 from diplomacy A, diplomacy B where A.me=B.you and A.you=B.me and A.state='0' and A.me<A.you";
|
||||
@@ -596,7 +529,10 @@ group by A.nation
|
||||
$name1 = $nation1['name'];
|
||||
$nation2 = getNationStaticInfo($dip['you']);
|
||||
$name2 = $nation2['name'];
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<R><b>【휴전】</b></><D><b>$name1</b></>(와)과 <D><b>$name2</b></>(이)가 <S>휴전</>합니다.";
|
||||
|
||||
$josaWa = JosaUtil::pick($name1, '와');
|
||||
$josaYi = JosaUtil::pick($name2, '이');
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<R><b>【휴전】</b></><D><b>$name1</b></>{$josaWa} <D><b>$name2</b></>{$josaYi} <S>휴전</>합니다.";
|
||||
//기한 되면 휴전으로
|
||||
$query = "update diplomacy set state='2',term='0' where (me='{$dip['me']}' and you='{$dip['you']}') or (me='{$dip['you']}' and you='{$dip['me']}')";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -643,11 +579,10 @@ group by A.nation
|
||||
|
||||
function checkWander() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year', 'month']);
|
||||
|
||||
$needRefresh = false;
|
||||
|
||||
@@ -674,15 +609,14 @@ function checkWander() {
|
||||
|
||||
function checkMerge() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$mylog = [];
|
||||
$youlog = [];
|
||||
$history = [];
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year', 'month']);
|
||||
|
||||
$query = "select * from diplomacy where state='3' and term='0'";
|
||||
$dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -721,29 +655,34 @@ function checkMerge() {
|
||||
$query = "select no,name,nation from general where nation='{$you['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gencount = MYDB_num_rows($result);
|
||||
$genlog = ["<C>●</><D><b>{$mynation['name']}</b></>(와)과 통합에 성공했습니다."];
|
||||
$josaWa = JosaUtil::pick($mynation['name'], '와');
|
||||
$genlog = ["<C>●</><D><b>{$mynation['name']}</b></>{$josaWa} 통합에 성공했습니다."];
|
||||
for($i=0; $i < $gencount; $i++) {
|
||||
$gen = MYDB_fetch_array($result);
|
||||
pushGenLog($gen, $genlog);
|
||||
pushGeneralHistory($gen, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></>과 <D><b>{$you['makenation']}</b></>로 통합에 성공");
|
||||
pushGeneralHistory($gen, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></>{$josaWa} <D><b>{$you['makenation']}</b></>로 통합에 성공");
|
||||
}
|
||||
//항복국 장수들 역사 기록 및 로그 전달
|
||||
$query = "select no,name,nation from general where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gencount2 = MYDB_num_rows($result);
|
||||
$genlog[0] = "<C>●</><D><b>{$younation['name']}</b></>(와)과 통합에 성공했습니다.";
|
||||
$josaWa = JosaUtil::pick($younation['name'], '와');
|
||||
$genlog[0] = "<C>●</><D><b>{$younation['name']}</b></>{$josaWa} 통합에 성공했습니다.";
|
||||
for($i=0; $i < $gencount2; $i++) {
|
||||
$gen = MYDB_fetch_array($result);
|
||||
pushGenLog($gen, $genlog);
|
||||
pushGeneralHistory($gen, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$younation['name']}</b></>과 <D><b>{$you['makenation']}</b></>로 통합에 성공");
|
||||
pushGeneralHistory($gen, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$younation['name']}</b></>{$josaWa} <D><b>{$you['makenation']}</b></>로 통합에 성공");
|
||||
}
|
||||
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【통합】</b></><D><b>{$mynation['name']}</b></>(와)과 <D><b>{$younation['name']}</b></>(이)가 <D><b>{$you['makenation']}</b></>(으)로 통합하였습니다.";
|
||||
$josaRo = JosaUtil::pick($you['makenation'], '로');
|
||||
$josaYi = JosaUtil::pick($younation['name'], '이');
|
||||
$josaWa = JosaUtil::pick($mynation['name'], '와');
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【통합】</b></><D><b>{$mynation['name']}</b></>{$josaWa} <D><b>{$younation['name']}</b></>{$josaYi} <D><b>{$you['makenation']}</b></>{$josaRo} 통합하였습니다.";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>【혼란】</b></>통합에 반대하는 세력들로 인해 <D><b>{$you['makenation']}</b></>에 혼란이 일고 있습니다.";
|
||||
pushNationHistory($younation, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></>과 <D><b>{$you['makenation']}</b></>로 통합");
|
||||
|
||||
$newGenCount = $gencount + $gencount2;
|
||||
if($newGenCount < 10) { $newGenCount = 10; }
|
||||
if($newGenCount < GameConst::$initialNationGenLimit) { $newGenCount = GameConst::$initialNationGenLimit; }
|
||||
$newTotalTech = $younation['totaltech'] + $mynation['totaltech'];
|
||||
$newTech = Util::round($newTotalTech / $newGenCount);
|
||||
// 자금 통합, 외교제한 5년, 기술유지
|
||||
@@ -796,11 +735,10 @@ function checkMerge() {
|
||||
|
||||
function checkSurrender() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year', 'month']);
|
||||
|
||||
$query = "select * from diplomacy where state='5' and term='0'";
|
||||
$dipresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -848,23 +786,26 @@ function checkSurrender() {
|
||||
pushGenLog($gen, $genlog);
|
||||
pushGeneralHistory($gen, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></> 합병에 성공");
|
||||
}
|
||||
$josaRo = JosaUtil::pick($younation['name'], '로');
|
||||
//항복국 장수들 역사 기록 및 로그 전달
|
||||
$query = "select no,name,nation from general where nation='{$me['nation']}'";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$gencount2 = MYDB_num_rows($result);
|
||||
$genlog[0] = "<C>●</><D><b>{$younation['name']}</b></>(으)로 항복하여 수도로 이동합니다.";
|
||||
$genlog[0] = "<C>●</><D><b>{$younation['name']}</b></>{$josaRo} 항복하여 수도로 이동합니다.";
|
||||
for($i=0; $i < $gencount2; $i++) {
|
||||
$gen = MYDB_fetch_array($result);
|
||||
pushGenLog($gen, $genlog);
|
||||
pushGeneralHistory($gen, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></>가 <D><b>{$younation['name']}</b></>(으)로 항복");
|
||||
pushGeneralHistory($gen, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></>가 <D><b>{$younation['name']}</b></>{$josaRo} 항복");
|
||||
}
|
||||
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【투항】</b></><D><b>{$mynation['name']}</b></> (이)가 <D><b>{$younation['name']}</b></>(으)로 항복하였습니다.";
|
||||
$josaYi = JosaUtil::pick($mynation['name'], '이');
|
||||
$josaWa = JosaUtil::pick($mynation['name'], '와');
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【투항】</b></><D><b>{$mynation['name']}</b></>{$josaYi} <D><b>{$younation['name']}</b></>{$josaRo} 항복하였습니다.";
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>【혼란】</b></>통합에 반대하는 세력들로 인해 <D><b>{$younation['name']}</b></>에 혼란이 일고 있습니다.";
|
||||
pushNationHistory($younation, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></>(와)과 합병");
|
||||
pushNationHistory($younation, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$mynation['name']}</b></>{$josaWa} 합병");
|
||||
|
||||
$newGenCount = $gencount + $gencount2;
|
||||
if($newGenCount < 10) { $newGenCount = 10; }
|
||||
if($newGenCount < GameConst::$initialNationGenLimit) { $newGenCount = GameConst::$initialNationGenLimit; }
|
||||
$newTotalTech = $younation['totaltech'] + $mynation['totaltech'];
|
||||
$newTech = Util::round($newTotalTech / $newGenCount);
|
||||
// 자금 통합, 외교제한 5년, 기술유지
|
||||
@@ -920,12 +861,11 @@ function checkSurrender() {
|
||||
|
||||
function updateNationState() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$history = array();
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year', 'month']);
|
||||
|
||||
$query = "select nation,name,level from nation";
|
||||
$nationresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -965,8 +905,9 @@ function updateNationState() {
|
||||
|
||||
switch($nationlevel) {
|
||||
case 7:
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【작위】</b></><D><b>{$nation['name']}</b></>의 군주가 <Y>".getNationLevel($nationlevel)."</>(을)를 자칭하였습니다.";
|
||||
pushNationHistory($nation, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$nation['name']}</b></>의 군주가 <Y>".getNationLevel($nationlevel)."</>(을)를 자칭");
|
||||
$josaUl = JosaUtil::pick(getNationLevel($nationlevel), '을');
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【작위】</b></><D><b>{$nation['name']}</b></>의 군주가 <Y>".getNationLevel($nationlevel)."</>{$josaUl} 자칭하였습니다.";
|
||||
pushNationHistory($nation, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$nation['name']}</b></>의 군주가 <Y>".getNationLevel($nationlevel)."</>{$josaUl} 자칭");
|
||||
break;
|
||||
case 6:
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【작위】</b></><D><b>{$nation['name']}</b></>의 군주가 <Y>".getNationLevel($nationlevel)."</>에 등극하였습니다.";
|
||||
@@ -991,7 +932,7 @@ function updateNationState() {
|
||||
refreshNationStaticInfo();
|
||||
}
|
||||
$gennum = $gencount;
|
||||
if($gencount < 10) $gencount = 10;
|
||||
if($gencount < GameConst::$initialNationGenLimit) $gencount = GameConst::$initialNationGenLimit;
|
||||
//기술 및 변경횟수 업데이트
|
||||
$query = "update nation set tech=totaltech/'$gencount',gennum='$gennum' where nation='{$nation['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -1001,11 +942,10 @@ function updateNationState() {
|
||||
|
||||
function checkStatistic() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select year,month from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year', 'month']);
|
||||
|
||||
$nationHists = [];
|
||||
$specialHists = [];
|
||||
@@ -1157,17 +1097,16 @@ function checkStatistic() {
|
||||
|
||||
function checkEmperior() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$connect=$db->get();
|
||||
|
||||
$query = "select year,month,isUnited from game limit 1";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$admin = MYDB_fetch_array($result);
|
||||
$admin = $gameStor->getValues(['year', 'month', 'isunited']);
|
||||
|
||||
$query = "select nation,name from nation where level>0";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$count = MYDB_num_rows($result);
|
||||
|
||||
if($count == 1 && $admin['isUnited'] == 0) {
|
||||
if($count == 1 && $admin['isunited'] == 0) {
|
||||
$nation = MYDB_fetch_array($result);
|
||||
|
||||
$query = "select city from city where nation='{$nation['nation']}'";
|
||||
@@ -1179,12 +1118,15 @@ function checkEmperior() {
|
||||
$allcount = MYDB_num_rows($result);
|
||||
|
||||
if($count == $allcount) {
|
||||
pushNationHistory($nation, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$nation['name']}</b></>(이)가 전토를 통일");
|
||||
|
||||
$query = "update game set isUnited=2,conlimit=conlimit*100";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$josaYi = JosaUtil::pick($nation['name'], '이');
|
||||
|
||||
$query = "select no from general where npc<2 and age>=45";
|
||||
pushNationHistory($nation, "<C>●</>{$admin['year']}년 {$admin['month']}월:<D><b>{$nation['name']}</b></>{$josaYi} 전토를 통일");
|
||||
|
||||
$gameStor->isunited = 2;
|
||||
$gameStor->conlimit = $gameStor->conlimit*100;
|
||||
|
||||
$query = "select no from general where npc<2 and age>=40";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
$count = MYDB_num_rows($result);
|
||||
|
||||
@@ -1258,7 +1200,7 @@ function checkEmperior() {
|
||||
}
|
||||
}
|
||||
|
||||
$log = ["<C>●</>{$admin['year']}년 {$admin['month']}월: <D><b>{$nation['name']}</b></>(이)가 전토를 통일하였습니다."];
|
||||
$log = ["<C>●</>{$admin['year']}년 {$admin['month']}월: <D><b>{$nation['name']}</b></>{$josaYi} 전토를 통일하였습니다."];
|
||||
|
||||
$query = "select no,name from general where nation='{$nation['nation']}' order by dedication desc";
|
||||
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
@@ -1336,7 +1278,7 @@ function checkEmperior() {
|
||||
'history'=>$nationHistory
|
||||
]);
|
||||
|
||||
$history = ["<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【통일】</b></><D><b>{$nation['name']}</b></>(이)가 전토를 통일하였습니다."];
|
||||
$history = ["<C>●</>{$admin['year']}년 {$admin['month']}월:<Y><b>【통일】</b></><D><b>{$nation['name']}</b></>{$josaYi} 전토를 통일하였습니다."];
|
||||
pushWorldHistory($history, $admin['year'], $admin['month']);
|
||||
|
||||
//연감 월결산
|
||||
|
||||
+58
-30
@@ -5,7 +5,7 @@ namespace sammo;
|
||||
|
||||
function delStepLog() {
|
||||
$date = date('Y_m_d');
|
||||
@unlink("logs/_{$date}_steplog.txt");
|
||||
@unlink(__dir__."/logs/".UniqueConst::$serverID."/_{$date}_steplog.txt");
|
||||
}
|
||||
|
||||
function pushRawFileLog($path, $lines){
|
||||
@@ -50,81 +50,109 @@ function eraseTnmtFightLogAll(){
|
||||
}
|
||||
|
||||
function eraseTnmtFightLog(int $group){
|
||||
$filepath = "logs/fight{$group}.txt";
|
||||
$filepath = __dir__."/logs/".UniqueConst::$serverID."/fight{$group}.txt";
|
||||
if(file_exists($filepath)){
|
||||
@unlink($filepath);
|
||||
}
|
||||
}
|
||||
|
||||
function pushTnmtFightLog(int $group, $log) {
|
||||
pushRawFileLog("logs/fight{$group}.txt", $log);
|
||||
pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/fight{$group}.txt", $log);
|
||||
}
|
||||
|
||||
function getTnmtFightLogAll(int $group) {
|
||||
return join('<br>',getFormattedFileLogAll("logs/fight{$group}.txt"));
|
||||
return join('<br>',getFormattedFileLogAll(__dir__."/logs/".UniqueConst::$serverID."/fight{$group}.txt"));
|
||||
}
|
||||
|
||||
function pushTrickLog($log) {
|
||||
pushRawFileLog("logs/_tricklog.txt", $log);
|
||||
function pushSabotageLog($log) {
|
||||
pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/_sabotagelog.txt", $log);
|
||||
}
|
||||
|
||||
function getTrickLogRecent($count) {
|
||||
return join('<br>', getFormattedFileLogRecent("logs/_tricklog.txt", $count, 150));
|
||||
function getSabotageLogRecent($count) {
|
||||
return join('<br>', getFormattedFileLogRecent(__dir__."/logs/".UniqueConst::$serverID."/_sabotagelog.txt", $count, 150));
|
||||
}
|
||||
|
||||
function pushProcessLog($log) {
|
||||
$date = date('Y_m_d');
|
||||
pushRawFileLog("logs/_{$date}_processlog.txt", $log);
|
||||
pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/_{$date}_processlog.txt", $log);
|
||||
}
|
||||
|
||||
|
||||
function pushStepLog($log) {
|
||||
$date = date('Y_m_d');
|
||||
pushRawFileLog("logs/_{$date}_steplog.txt", $log);
|
||||
pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/_{$date}_steplog.txt", $log);
|
||||
}
|
||||
|
||||
function pushLockLog($log) {
|
||||
$date = date('Y_m_d');
|
||||
pushRawFileLog("logs/_{$date}_locklog.txt", $log);
|
||||
pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/_{$date}_locklog.txt", $log);
|
||||
}
|
||||
|
||||
function pushAdminLog($log) {
|
||||
pushRawFileLog("logs/_adminlog.txt", $log);
|
||||
pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/_adminlog.txt", $log);
|
||||
}
|
||||
|
||||
function pushAuctionLog($log) {
|
||||
pushRawFileLog("logs/_auctionlog.txt", $log);
|
||||
pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/_auctionlog.txt", $log);
|
||||
}
|
||||
|
||||
function getAuctionLogRecent(int $count) {
|
||||
return join('<br>', array_reverse(getFormattedFileLogRecent("logs/_auctionlog.txt", $count, 300)));
|
||||
return join('<br>', array_reverse(getFormattedFileLogRecent(__dir__."/logs/".UniqueConst::$serverID."/_auctionlog.txt", $count, 300)));
|
||||
}
|
||||
|
||||
function pushGenLog($general, $log) {
|
||||
$no = Util::toInt($general['no']);
|
||||
pushRawFileLog("logs/gen{$no}.txt", $log);
|
||||
pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/gen{$no}.txt", $log);
|
||||
}
|
||||
|
||||
function getGenLogRecent(int $no, int $count) {
|
||||
return join('<br>', array_reverse(getFormattedFileLogRecent("logs/gen{$no}.txt", $count, 300)));
|
||||
return join('<br>', array_reverse(getFormattedFileLogRecent(__dir__."/logs/".UniqueConst::$serverID."/gen{$no}.txt", $count, 300)));
|
||||
}
|
||||
|
||||
function pushBatRes($general, $log) {
|
||||
$no = Util::toInt($general['no']);
|
||||
pushRawFileLog("logs/batres{$no}.txt", $log);
|
||||
pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/batres{$no}.txt", $log);
|
||||
}
|
||||
|
||||
function getBatResRecent(int $no, int $count) {
|
||||
return join('<br>', array_reverse(getFormattedFileLogRecent("logs/batres{$no}.txt", $count, 300)));
|
||||
return join('<br>', array_reverse(getFormattedFileLogRecent(__dir__."/logs/".UniqueConst::$serverID."/batres{$no}.txt", $count, 300)));
|
||||
}
|
||||
|
||||
function pushBatLog($general, $log) {
|
||||
$no = Util::toInt($general['no']);
|
||||
pushRawFileLog("logs/batlog{$no}.txt", $log);
|
||||
pushRawFileLog(__dir__."/logs/".UniqueConst::$serverID."/batlog{$no}.txt", $log);
|
||||
}
|
||||
|
||||
function getBatLogRecent(int $no, int $count) {
|
||||
return join('<br>', array_reverse(getFormattedFileLogRecent("logs/batlog{$no}.txt", $count, 300)));
|
||||
return join('<br>', array_reverse(getFormattedFileLogRecent(__dir__."/logs/".UniqueConst::$serverID."/batlog{$no}.txt", $count, 300)));
|
||||
}
|
||||
|
||||
function pushOldNationStop(int $no, int $nationNo){
|
||||
$logPrefixList = ['batres', 'gen', 'batlog'];
|
||||
|
||||
$result = [];
|
||||
foreach($logPrefixList as $logPrefix){
|
||||
$path = __dir__."/logs/".UniqueConst::$serverID."/{$logPrefix}{$no}.txt";
|
||||
if(file_exists($path)){
|
||||
$fileLen = @filesize($path);
|
||||
}
|
||||
else{
|
||||
$fileLen = 0;
|
||||
}
|
||||
$result[$logPrefix] = $fileLen;
|
||||
}
|
||||
|
||||
$baseStopPath = __dir__."/logs/".UniqueConst::$serverID."/stop{$no}.txt";
|
||||
if(file_exists($baseStopPath)){
|
||||
$oldValues = Json::decode(file_get_contents($baseStopPath));
|
||||
}
|
||||
else{
|
||||
$oldValues = [];
|
||||
}
|
||||
|
||||
$oldValues[$nationNo] = $result;
|
||||
|
||||
file_put_contents($baseStopPath, Json::encode($oldValues, Json::PRETTY));
|
||||
}
|
||||
|
||||
//DB-based
|
||||
@@ -151,10 +179,9 @@ function pushWorldHistory(array $history, $year=null, $month=null) {
|
||||
return;
|
||||
}
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
if($year === null || $month === null){
|
||||
$game = $db->queryFirstRow('SELECT year, month FROM game LIMIT 1');
|
||||
$year = $game['year'];
|
||||
$month = $game['month'];
|
||||
list($year, $month) = $gameStor->getValuesAsArray(['year', 'month']);
|
||||
}
|
||||
$request = array_map(function($text) use ($year, $month) {
|
||||
return ['year'=>$year, 'month'=>$month, 'text'=>$text];
|
||||
@@ -199,10 +226,9 @@ function pushGeneralPublicRecord(array $history, $year=null, $month=null) {
|
||||
return;
|
||||
}
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
if($year === null || $month === null){
|
||||
$game = $db->queryFirstRow('SELECT year, month FROM game LIMIT 1');
|
||||
$year = $game['year'];
|
||||
$month = $game['month'];
|
||||
list($year, $month) = $gameStor->getValuesAsArray(['year', 'month']);
|
||||
}
|
||||
$request = array_map(function($text) use ($year, $month) {
|
||||
return ['year'=>$year, 'month'=>$month, 'text'=>$text];
|
||||
@@ -249,7 +275,8 @@ function LogHistory($isFirst=0) {
|
||||
if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', LogHistory Start');
|
||||
|
||||
$db = DB::db();
|
||||
$obj = $db->queryFirstRow('SELECT year, month, startyear FROM game limit 1');
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
$obj = $gameStor->getValues(['startyear', 'year', 'month']);
|
||||
|
||||
//TODO: 새롭게 추가할 지도 값 받아오는 함수를 이용하여 재구성
|
||||
$map = getWorldMap([
|
||||
@@ -291,14 +318,15 @@ function LogHistory($isFirst=0) {
|
||||
$cityCount = $db->queryFirstField('select count(*) from city where nation = %i',$nation['nation']);
|
||||
|
||||
$nationStr .= "<font color=cyan>◆</font> <font style=color:".newColor($nation['color']).";background-color:{$nation['color']};>{$nation['name']}</font><br>";
|
||||
$powerStr .= "국력 {$nation['power']}<br>";
|
||||
$genStr .= "장수 {$nation['gennum']}<br>";
|
||||
$cityStr .= "속령 $cityCount<br>";
|
||||
$powerStr .= "{$nation['power']}<br>";
|
||||
$genStr .= "{$nation['gennum']}<br>";
|
||||
$cityStr .= "$cityCount<br>";
|
||||
}
|
||||
|
||||
if(STEP_LOG) pushStepLog(date('Y-m-d H:i:s').', contents collected');
|
||||
|
||||
$db->insert('history', [
|
||||
'server_id' => UniqueConst::$serverID,
|
||||
'year' => $year,
|
||||
'month' => $month,
|
||||
'map' => $map_json,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user