├── front
├── ping.php
├── crossdomain.xml
├── logout.php
├── cabinet.js
├── .htaccess
├── game.css
├── cabinetHandler.php
├── style.css
├── game.php
├── cabinet.php
├── index.php
├── register.php
└── ServerAction.php
├── api
├── inv.php
├── setAvatar.php
├── ban.php
└── kek.php
├── readme.md
├── dump.sql
└── daisy
├── bodyparts.asc
├── locations.asc
└── main.asc
/front/ping.php:
--------------------------------------------------------------------------------
1 | ';
--------------------------------------------------------------------------------
/front/crossdomain.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/front/logout.php:
--------------------------------------------------------------------------------
1 | query("UPDATE USERS SET INVENTORY = '" . $_POST['inventory'] . "' WHERE TICKET = '" . $_POST['ticket'] ."';");
6 |
--------------------------------------------------------------------------------
/api/setAvatar.php:
--------------------------------------------------------------------------------
1 | query("UPDATE USERS SET AVATAR = '" . $_POST['avatar'] . "' WHERE TICKET = '" . $_POST['ticket'] ."';");
7 |
--------------------------------------------------------------------------------
/front/.htaccess:
--------------------------------------------------------------------------------
1 | RewriteEngine On
2 | RewriteRule ^fs/(.*)!(.*).swf$ /fs/$1.swf
3 | RewriteRule ^fs/(.*)!(.*).png$ /fs/$1.png
4 | RewriteRule ^fs/(.*)!.swf$ /fs/$1.swf
5 | RewriteRule ^async/ServerAction ServerAction.php
6 | RewriteRule ^async/Ping ping.php
7 | RewriteRule ^logout logout.php
--------------------------------------------------------------------------------
/front/game.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: "Rotonda";
3 | src: url(/RotonBol.ttf);
4 | }
5 | * {
6 | font-family: "Rotonda";
7 | }
8 | .meow-btn {
9 | background: #8acbe5;
10 | padding: 14px;
11 | font-size: 17pt;
12 | border: none;
13 | color: black;
14 | border: 1px solid white;
15 | }
16 | a.meow-btn {
17 | text-decoration: none;
18 | }
19 | .logo {
20 | width: 15%;
21 | }
--------------------------------------------------------------------------------
/api/ban.php:
--------------------------------------------------------------------------------
1 | query("SELECT * FROM USERS WHERE TICKET = '" . $_POST["ticket"] . "';");
9 |
10 | if ($user->num_rows <= 0) {
11 | exit;
12 | }
13 |
14 | $a = $user->fetch_assoc();
15 | if ($a['ROLEFLAGS'] == "393230") {
16 | $q = $db->query("UPDATE USERS SET ISBANNED = 1 WHERE ID = " . $_POST["id"] . ";");
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/api/kek.php:
--------------------------------------------------------------------------------
1 | set_charset("utf8");
5 |
6 | $q = $db->query("SELECT * FROM USERS WHERE TICKET = '" . $_GET['ticket'] ."';");
7 |
8 | $a = $q->fetch_assoc();
9 |
10 | echo "username=" . $a['USERNAME'] . "&level=" . $a['LEVEL'] . "®date=" . $a['REGDATE'] . "&roleflags=" . $a['ROLEFLAGS'] . "&money=".$a["MONEY"]."&gold=".$a["GOLD"]."&magic=".$a["MAGIC"]."&avatar=" . $a['AVATAR'] . "&inventory=" . $a['INVENTORY'];
11 |
--------------------------------------------------------------------------------
/front/cabinetHandler.php:
--------------------------------------------------------------------------------
1 | set_charset("utf8");
7 |
8 | if (!isset($_SESSION["userId"]) || !isset($_POST["level"])) {
9 | exit;
10 | }
11 |
12 | $q = $db->query("SELECT * FROM USERS WHERE ID = " . $_SESSION["userId"] . ";");
13 | $a = $q->fetch_assoc();
14 | $prevLevel = $a['LEVEL'];
15 |
16 | $level = $_POST["level"];
17 | $regdate = $_POST["regyear"] . "-" . $_POST["regmonth"] . "-" . $_POST["regday"] . "T" . explode("T", $a['REGDATE'])[1];
18 |
19 | $level = strval($level);
20 |
21 |
22 | $db->query("UPDATE USERS SET LEVEL = '" . $level . "' WHERE ID = " . $_SESSION["userId"] . ";");
23 | $db->query("UPDATE USERS SET REGDATE = '" . $regdate . "' WHERE ID = " . $_SESSION["userId"] . ";");
24 |
25 | $res = "ОК, данные обновлены!";
26 |
27 | echo $res;
--------------------------------------------------------------------------------
/front/style.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: "Rotonda";
3 | src: url(/RotonBol.ttf);
4 | }
5 | * {
6 | font-family: "Rotonda";
7 | }
8 | small {
9 | font-size: 14pt;
10 | }
11 | .meow-btn {
12 | background: #8acbe5;
13 | padding: 14px;
14 | font-size: 17pt;
15 | border: none;
16 | color: black;
17 | border: 1px solid white;
18 | }
19 | a.meow-btn {
20 | text-decoration: none;
21 | }
22 | .error {
23 | color: red;
24 | }
25 | .meow-btn:hover {
26 | cursor: pointer;
27 | background: #b4deee;
28 | }
29 | .logo {
30 | width: 300px;
31 | }
32 | input {
33 | font-size: 21pt;
34 | border: none;
35 | border-bottom: 2px solid #8acbe5;
36 | height: 50px;
37 | -webkit-transition: ease-in-out, width .35s ease-in-out;
38 | -o-transition: ease-in-out, width .35s ease-in-out;
39 | transition: ease-in-out, width .35s ease-in-out;
40 | }
41 | input:focus {
42 | border-color: #b4deee;
43 | }
44 | .loginbox {
45 | margin: auto;
46 | text-align: center;
47 | padding: 6px;
48 | width: 50%;
49 | }
50 | th,td {
51 | padding: 15px;
52 | text-align: left;
53 | }
54 | table {
55 | border-collapse: collapse;
56 | }
57 | table,th,td {
58 | border: 1px solid black;
59 | }
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | # DaisyDale
2 |
3 | Это старые неподдерживаемые исходники daisydale.cc
4 |
5 | # Требования
6 | Для создания сервера с Дейзи Дейлом вам нужны
7 |
8 | 1.Adobe Flash Media Server (желательно версию 5, apache не ставим)
9 |
10 | 2.Xampp или другой сервер
11 |
12 | 3.Swf базу файлов Шарарама (найти не трудно)
13 |
14 | 4.MariaDB или MySQL (для хранения смешариков)
15 |
16 | # Установка
17 |
18 | 1. Первым делом необходимо перенести папку daisy из репозитория в папку applications в корне Adobe Media Server.
19 |
20 | 2. Открываем папку daisy и редактируем main.asc, меняем переменную msHost, ставим домен для апишки (для локалки достаточно localhost)
21 |
22 | 3. Заливаем флешки на вебсервер в папку fs
23 | 4. Если у вас установлен xampp содержимое всего репозитория (кроме папки daisy) нужно перенести в папку htdocs
24 | 5. В PhpMyAdmin создайте базу данных и импортируйте туда dump.sql
25 | 6. Запустите Administration server и найдите в поиске винды "Administration Console" и кликните по результату
26 | 7. Нажмите на кнопку new instance слева внизу, выберите пункт daisy и нажмите Enter
27 | 8. Теперь вы можете зайти на localhost и наслаждаться игрой дейзи дейл
28 |
29 | # Лицензия
30 |
31 | Делайте что хотите, но на ваш страх и риск.
32 |
--------------------------------------------------------------------------------
/front/game.php:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 | DaisyDale
16 |
17 |
18 |
19 |
20 |
21 |
28 |
29 | Список предметов
30 | Выйти
31 |
35 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/front/cabinet.php:
--------------------------------------------------------------------------------
1 | set_charset("utf8");
11 |
12 |
13 | $q = $db->query("SELECT * FROM USERS WHERE ID = " . $_SESSION["userId"] . ";");
14 | $a = $q->fetch_assoc();
15 |
16 | $level = $a['LEVEL'];
17 |
18 | $dat = explode("T", $a['REGDATE'])[0];
19 | $date = explode("-", $dat);
20 | $regday = $date[2];
21 | $regmonth = $date[1];
22 | $regyear = $date[0];
23 |
24 | ?>
25 |
26 |
27 |
28 |
29 |
30 | Типа кабинет - DaisyDale
31 |
32 |
33 |
34 |
35 | Типа кабинет
36 |
37 |
38 |
43 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/dump.sql:
--------------------------------------------------------------------------------
1 | -- phpMyAdmin SQL Dump
2 | -- version 4.7.7
3 | -- https://www.phpmyadmin.net/
4 |
5 |
6 | SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
7 | SET AUTOCOMMIT = 0;
8 | START TRANSACTION;
9 | SET time_zone = "+00:00";
10 |
11 |
12 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
13 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
14 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
15 | /*!40101 SET NAMES utf8mb4 */;
16 |
17 |
18 | -- --------------------------------------------------------
19 |
20 | --
21 | -- Структура таблицы `USERS`
22 | --
23 |
24 | CREATE TABLE `USERS` (
25 | `ID` int(11) NOT NULL,
26 | `USERNAME` varchar(255) COLLATE utf8mb4_bin NOT NULL,
27 | `PASSWORD` varchar(255) COLLATE utf8mb4_bin NOT NULL,
28 | `AVATAR` varchar(10000) COLLATE utf8mb4_bin NOT NULL,
29 | `INVENTORY` longtext COLLATE utf8mb4_bin NOT NULL,
30 | `REGDATE` varchar(255) COLLATE utf8mb4_bin NOT NULL,
31 | `LEVEL` varchar(255) COLLATE utf8mb4_bin NOT NULL,
32 | `TICKET` varchar(255) COLLATE utf8mb4_bin NOT NULL,
33 | `ROLEFLAGS` int(11) NOT NULL,
34 | `ISBANNED` int(11) NOT NULL DEFAULT 0,
35 | `MONEY` int(11) NOT NULL DEFAULT 100,
36 | `GOLD` int(11) NOT NULL DEFAULT 0,
37 | `MAGIC` int(11) NOT NULL DEFAULT 0
38 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
39 |
40 | --
41 | -- Рндексы сохранённых таблиц
42 | --
43 |
44 | --
45 | -- Рндексы таблицы `USERS`
46 | --
47 | ALTER TABLE `USERS`
48 | ADD PRIMARY KEY (`ID`),
49 | ADD UNIQUE KEY `ID` (`ID`),
50 | ADD KEY `ID_2` (`ID`);
51 |
52 | --
53 | -- AUTO_INCREMENT для сохранённых таблиц
54 | --
55 |
56 | --
57 | -- AUTO_INCREMENT для таблицы `USERS`
58 | --
59 | ALTER TABLE `USERS`
60 | MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
61 | COMMIT;
62 |
63 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
64 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
65 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
66 |
--------------------------------------------------------------------------------
/front/index.php:
--------------------------------------------------------------------------------
1 | set_charset("utf8");
24 |
25 | if (isset($_POST["username"]) && isset($_POST["password"])) {
26 | $a = $db->query("SELECT ID, PASSWORD, ROLEFLAGS FROM USERS WHERE USERNAME = '" . $_POST['username'] . "';");
27 | if ($a->num_rows == 0) {
28 | $error = "Нет такого смешарика";
29 | } else {
30 | $fetched = $a->fetch_assoc();
31 |
32 | if (password_verify(md5($_POST["password"]), $fetched['PASSWORD'])) {
33 | $token = generateTicket();
34 | $db->query("UPDATE USERS SET TICKET = '" . $token . "' WHERE USERNAME = '" . $_POST["username"] . "';");
35 | $_SESSION["userId"] = $fetched["ID"];
36 | $_SESSION["ticket"] = $token;
37 | $_SESSION["roleflags"] = $fetched["ROLEFLAGS"];
38 | header("Location: /");
39 | } else {
40 | $error = "Неправильный пароль.";
41 | }
42 | }
43 | }
44 | ?>
45 |
46 |
47 |
48 |
49 |
50 | Вход - DaisyDale
51 |
52 |
53 |
54 |
55 |
56 |

57 |
65 |
66 |
67 |
68 | l
--------------------------------------------------------------------------------
/front/register.php:
--------------------------------------------------------------------------------
1 |
2 | set_charset("utf8");
19 |
20 | if (isset($_POST["username"]) && isset($_POST["password"])) {
21 | if (preg_match("/[^a-z,A-Z,0-9,а-я,А-Я,\-,\_]/u", $_POST["username"])) {
22 | $error = "Ваш логин содержит недопустимые символы.";
23 | } else {
24 | if (strlen($_POST["username"]) < 3 ) {
25 | $error = "Короткий логин";
26 | } else if (strlen($_POST["username"]) > 40) {
27 | $error = "Длинный логин";
28 | } else {
29 | if (strlen($_POST["password"]) < 6) {
30 | $error = "Короткий пароль";
31 | } else {
32 | $c = $db->query("SELECT * FROM USERS WHERE USERNAME = '" . $_POST["username"] . "';");
33 |
34 | if ($c->num_rows == 0) {
35 | $ava = "IsBodyPart>true|BodyPartTypeId>5|MediaResourceID>67|LayerID>25|BodyPartId>30|Id>30|Color>NaN;IsBodyPart>true|BodyPartTypeId>6|MediaResourceID>68|LayerID>39|BodyPartId>31|Id>31|Color>16762375;IsBodyPart>true|BodyPartTypeId>7|MediaResourceID>74|LayerID>29|BodyPartId>40|Id>40|Color>NaN;IsBodyPart>true|BodyPartTypeId>8|MediaResourceID>98|LayerID>49|BodyPartId>73|Id>73|Color>NaN;IsBodyPart>true|BodyPartTypeId>2|MediaResourceID>55|LayerID>9|BodyPartId>1|Id>1|Color>NaN;IsBodyPart>true|BodyPartTypeId>3|MediaResourceID>56|LayerID>19|BodyPartId>2|Id>2|Color>16762375;IsBodyPart>false|GoodID>8712|MediaResourceID>27527|GoodTypeID>4|LayerID>45|Id>8712;IsBodyPart>false|GoodID>9235|MediaResourceID>29235|GoodTypeID>94|LayerID>57|Id>9235";
36 | $inv = "";
37 | $hash = password_hash(md5($_POST["password"]), PASSWORD_DEFAULT);
38 | $date = date("Y-m-d") . "T" . date("H-m-s") . ".0";
39 | $ticket = generateTicket();
40 | $qwery = $db->query("INSERT INTO `USERS`(`USERNAME`, `PASSWORD`, `ROLEFLAGS`, `LEVEL`, `AVATAR`, `TICKET`, `INVENTORY`, `REGDATE`) VALUES ('" . $_POST["username"] . "', '" . $hash . "', 131086 , 999, '" . $ava . "', '" . $ticket . "', '" . $inv . "', '" . $date . "');");
41 | if (!$qwery) {
42 | echo $db->error;
43 | exit;
44 | }
45 | $_SESSION["ticket"] = $ticket;
46 | $_SESSION["roleflags"] = 131086;
47 | $_SESSION["userId"] = $id;
48 | header("Location: /");
49 | } else {
50 | $error = "Смешарик с таким ником уже существует.";
51 | }
52 | }
53 | }
54 | }
55 | }
56 | ?>
57 |
58 |
59 |
60 |
61 |
62 |
63 | Создать аккаунт - DaisyDale
64 |
65 |
66 |
67 |
68 |
69 |

70 |
80 |
81 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/front/ServerAction.php:
--------------------------------------------------------------------------------
1 | ';
65 | $serversList = ' ';
66 |
67 |
68 | $db = new mysqli('localhost', 'root', '', 'daisy');
69 | $db->set_charset("utf8");
70 |
71 | $q = $db->query("SELECT * FROM USERS WHERE ID = " . $_SESSION["userId"] . ";");
72 |
73 | $a = $q->fetch_assoc();
74 |
75 | $ud = "";
76 | if ($a['ISBANNED'] == 1) {
77 | $ud = 'BanDateExpired="31-02-2020 07:08:14" BanTextResourceID="162"';
78 | }
79 |
80 |
81 | $userData = '';
82 |
83 |
84 | $system = '';
85 |
86 | echo '
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 | ';
142 |
143 |
--------------------------------------------------------------------------------
/daisy/bodyparts.asc:
--------------------------------------------------------------------------------
1 | var bodyParts = {};
2 | bodyParts["2"] = {
3 | Id: 56,
4 | BodyPartId: 2,
5 | MediaResourceID: 56,
6 | IsColorable: 1,
7 | LayerID: 20,
8 | BodyPartTypeId: 3
9 | };
10 | bodyParts["1"] = {
11 | Id: 55,
12 | BodyPartId: 1,
13 | MediaResourceID: 55,
14 | IsColorable: 1,
15 | LayerID: 10,
16 | BodyPartTypeId: 2
17 | };
18 | bodyParts["22"] = {
19 | Id: 62,
20 | BodyPartId: 22,
21 | MediaResourceID: 62,
22 | IsColorable: 0,
23 | LayerID: 10,
24 | BodyPartTypeId: 2
25 | };
26 | bodyParts["66"] = {
27 | Id: 28,
28 | BodyPartId: 66,
29 | MediaResourceID: 28,
30 | IsColorable: 1,
31 | LayerID: 10,
32 | BodyPartTypeId: 2
33 | };
34 | bodyParts["36"] = {
35 | Id: 71,
36 | BodyPartId: 36,
37 | MediaResourceID: 71,
38 | IsColorable: 0,
39 | LayerID: 10,
40 | BodyPartTypeId: 2
41 | };
42 | bodyParts["41"] = {
43 | Id: 75,
44 | BodyPartId: 41,
45 | MediaResourceID: 75,
46 | IsColorable: 0,
47 | LayerID: 10,
48 | BodyPartTypeId: 2
49 | };
50 | bodyParts["48"] = {
51 | Id: 80,
52 | BodyPartId: 48,
53 | MediaResourceID: 80,
54 | IsColorable: 1,
55 | LayerID: 10,
56 | BodyPartTypeId: 2
57 | };
58 | bodyParts["57"] = {
59 | Id: 86,
60 | BodyPartId: 57,
61 | MediaResourceID: 86,
62 | IsColorable: 1,
63 | LayerID: 10,
64 | BodyPartTypeId: 2
65 | };
66 | bodyParts["65"] = {
67 | Id: 92,
68 | BodyPartId: 65,
69 | MediaResourceID: 92,
70 | IsColorable: 1,
71 | LayerID: 10,
72 | BodyPartTypeId: 2
73 | };
74 | bodyParts["45"] = {
75 | Id: 78,
76 | BodyPartId: 45,
77 | MediaResourceID: 78,
78 | IsColorable: 1,
79 | LayerID: 50,
80 | BodyPartTypeId: 8
81 | };
82 | bodyParts["54"] = {
83 | Id: 84,
84 | BodyPartId: 54,
85 | MediaResourceID: 84,
86 | IsColorable: 1,
87 | LayerID: 50,
88 | BodyPartTypeId: 8
89 | };
90 | bodyParts["62"] = {
91 | Id: 90,
92 | BodyPartId: 62,
93 | MediaResourceID: 90,
94 | IsColorable: 1,
95 | LayerID: 50,
96 | BodyPartTypeId: 8
97 | };
98 | bodyParts["68"] = {
99 | Id: 95,
100 | BodyPartId: 68,
101 | MediaResourceID: 95,
102 | IsColorable: 1,
103 | LayerID: 50,
104 | BodyPartTypeId: 8
105 | };
106 | bodyParts["71"] = {
107 | Id: 96,
108 | BodyPartId: 71,
109 | MediaResourceID: 96,
110 | IsColorable: 1,
111 | LayerID: 50,
112 | BodyPartTypeId: 8
113 | };
114 | bodyParts["72"] = {
115 | Id: 97,
116 | BodyPartId: 72,
117 | MediaResourceID: 97,
118 | IsColorable: 1,
119 | LayerID: 50,
120 | BodyPartTypeId: 8
121 | };
122 | bodyParts["73"] = {
123 | Id: 98,
124 | BodyPartId: 73,
125 | MediaResourceID: 98,
126 | IsColorable: 1,
127 | LayerID: 50,
128 | BodyPartTypeId: 8
129 | };
130 | bodyParts["13"] = {
131 | Id: 59,
132 | BodyPartId: 13,
133 | MediaResourceID: 59,
134 | IsColorable: 0,
135 | LayerID: 30,
136 | BodyPartTypeId: 7
137 | };
138 | bodyParts["21"] = {
139 | Id: 61,
140 | BodyPartId: 21,
141 | MediaResourceID: 61,
142 | IsColorable: 0,
143 | LayerID: 30,
144 | BodyPartTypeId: 7
145 | };
146 | bodyParts["27"] = {
147 | Id: 65,
148 | BodyPartId: 27,
149 | MediaResourceID: 65,
150 | IsColorable: 0,
151 | LayerID: 30,
152 | BodyPartTypeId: 7
153 | };
154 | bodyParts["35"] = {
155 | Id: 70,
156 | BodyPartId: 35,
157 | MediaResourceID: 70,
158 | IsColorable: 0,
159 | LayerID: 30,
160 | BodyPartTypeId: 7
161 | };
162 | bodyParts["40"] = {
163 | Id: 74,
164 | BodyPartId: 40,
165 | MediaResourceID: 74,
166 | IsColorable: 0,
167 | LayerID: 30,
168 | BodyPartTypeId: 7
169 | };
170 | bodyParts["47"] = {
171 | Id: 79,
172 | BodyPartId: 47,
173 | MediaResourceID: 79,
174 | IsColorable: 0,
175 | LayerID: 30,
176 | BodyPartTypeId: 7
177 | };
178 | bodyParts["56"] = {
179 | Id: 85,
180 | BodyPartId: 56,
181 | MediaResourceID: 85,
182 | IsColorable: 0,
183 | LayerID: 30,
184 | BodyPartTypeId: 7
185 | };
186 | bodyParts["64"] = {
187 | Id: 91,
188 | BodyPartId: 64,
189 | MediaResourceID: 91,
190 | IsColorable: 0,
191 | LayerID: 30,
192 | BodyPartTypeId: 7
193 | };
194 | bodyParts["64"] = {
195 | Id: 91,
196 | BodyPartId: 64,
197 | MediaResourceID: 91,
198 | IsColorable: 0,
199 | LayerID: 30,
200 | BodyPartTypeId: 7
201 | };
202 | bodyParts["12"] = {
203 | Id: 58,
204 | BodyPartId: 12,
205 | MediaResourceID: 58,
206 | IsColorable: 0,
207 | LayerID: 40,
208 | BodyPartTypeId: 6
209 | };
210 | bodyParts["31"] = {
211 | Id: 68,
212 | BodyPartId: 31,
213 | MediaResourceID: 68,
214 | IsColorable: 0,
215 | LayerID: 40,
216 | BodyPartTypeId: 6
217 | };
218 | bodyParts["50"] = {
219 | Id: 82,
220 | BodyPartId: 50,
221 | MediaResourceID: 82,
222 | IsColorable: 0,
223 | LayerID: 40,
224 | BodyPartTypeId: 6
225 | };
226 | bodyParts["59"] = {
227 | Id: 88,
228 | BodyPartId: 59,
229 | MediaResourceID: 88,
230 | IsColorable: 0,
231 | LayerID: 40,
232 | BodyPartTypeId: 6
233 | };
234 | bodyParts["67"] = {
235 | Id: 94,
236 | BodyPartId: 67,
237 | MediaResourceID: 94,
238 | IsColorable: 0,
239 | LayerID: 40,
240 | BodyPartTypeId: 6
241 | };
242 | bodyParts["4"] = {
243 | Id: 57,
244 | BodyPartId: 4,
245 | MediaResourceID: 57,
246 | IsColorable: 0,
247 | LayerID: 26,
248 | BodyPartTypeId: 5
249 | };
250 | bodyParts["30"] = {
251 | Id: 67,
252 | BodyPartId: 30,
253 | MediaResourceID: 67,
254 | IsColorable: 0,
255 | LayerID: 26,
256 | BodyPartTypeId: 5
257 | };
258 | bodyParts["49"] = {
259 | Id: 81,
260 | BodyPartId: 49,
261 | MediaResourceID: 81,
262 | IsColorable: 0,
263 | LayerID: 26,
264 | BodyPartTypeId: 5
265 | };
266 | bodyParts["58"] = {
267 | Id: 87,
268 | BodyPartId: 58,
269 | MediaResourceID: 87,
270 | IsColorable: 0,
271 | LayerID: 26,
272 | BodyPartTypeId: 5
273 | };
274 | bodyParts["66"] = {
275 | Id: 93,
276 | BodyPartId: 66,
277 | MediaResourceID: 93,
278 | IsColorable: 0,
279 | LayerID: 26,
280 | BodyPartTypeId: 5
281 | };
282 | bodyParts["23"] = {
283 | Id: 63,
284 | BodyPartId: 23,
285 | MediaResourceID: 63,
286 | IsColorable: 0,
287 | LayerID: 41,
288 | BodyPartTypeId: 11
289 | };
290 | bodyParts["37"] = {
291 | Id: 72,
292 | BodyPartId: 37,
293 | MediaResourceID: 72,
294 | IsColorable: 0,
295 | LayerID: 41,
296 | BodyPartTypeId: 11
297 | };
298 | bodyParts["42"] = {
299 | Id: 76,
300 | BodyPartId: 42,
301 | MediaResourceID: 76,
302 | IsColorable: 0,
303 | LayerID: 41,
304 | BodyPartTypeId: 11
305 | };
306 | bodyParts["74"] = {
307 | Id: 99,
308 | BodyPartId: 74,
309 | MediaResourceID: 99,
310 | IsColorable: 0,
311 | LayerID: 55
312 | };
313 | bodyParts["75"] = {
314 | Id: 100,
315 | BodyPartId: 75,
316 | MediaResourceID: 100,
317 | IsColorable: 0,
318 | LayerID: 55
319 | };
320 | bodyParts["76"] = {
321 | Id: 101,
322 | BodyPartId: 76,
323 | MediaResourceID: 101,
324 | IsColorable: 0,
325 | LayerID: 55
326 | };
327 | bodyParts["76"] = {
328 | Id: 101,
329 | BodyPartId: 76,
330 | MediaResourceID: 101,
331 | IsColorable: 0,
332 | LayerID: 55
333 | };
334 | bodyParts["77"] = {
335 | Id: 102,
336 | BodyPartId: 77,
337 | MediaResourceID: 102,
338 | IsColorable: 0,
339 | LayerID: 55
340 | };
341 | bodyParts["78"] = {
342 | Id: 103,
343 | BodyPartId: 78,
344 | MediaResourceID: 103,
345 | IsColorable: 0,
346 | LayerID: 55
347 | };
348 |
--------------------------------------------------------------------------------
/daisy/locations.asc:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | var locationsArray = [];
6 |
7 | locationsArray["-1"] ='';
8 |
9 | locationsArray["24"] = ' ';
10 |
11 | // Затерянный каньон
12 |
13 | locationsArray["226"] = '';
14 |
15 | // Автодром
16 |
17 | locationsArray["35"] = '';
18 | locationsArray["29"] = locationsArray["35"];
19 |
20 | // Школа магов
21 |
22 | locationsArray["63"] = '';
23 |
24 | // Пиратская бухта
25 |
26 | locationsArray["374"] = ' ';
27 |
28 | locationsArray["532"] = '';
29 |
30 | // Парк аттракционов
31 |
32 | locationsArray["22"] = ' '
33 | locationsArray["8"] = locationsArray["22"];
34 | // Лес
35 |
36 | locationsArray["18"] = '';
37 |
38 | locationsArray["45"] = locationsArray["18"];
39 |
40 | // Порт
41 |
42 |
43 | locationsArray["53"] = ' ';
44 | locationsArray["17"] = locationsArray["53"];
45 |
46 | // Снежная гора
47 |
48 | locationsArray["31"] = ' ';
49 |
50 | // Подводный мир
51 |
52 | locationsArray["54"] = '';
53 |
54 | // Космодром
55 |
56 | locationsArray["412"] = '';
57 |
58 |
59 | // Клубная площадь
60 |
61 | locationsArray["727"] = ' callback_uidezdoleu ';
62 | // Пляж
63 |
64 | locationsArray["27"] = ' ';
65 | //locationsArray["170"] = locationsArray["27"];
66 | //locationsArray["532"] = locationsArray["27"];
67 | // Главная площадь
68 |
69 | locationsArray["23"] =' ';
70 | locationsArray["51"] = locationsArray["23"];
71 |
72 | // Сити
73 |
74 | locationsArray["68"] = '';
75 |
76 |
77 | // Каньон
78 | //locationsArray[""] = '';
79 |
80 | // Комната наблюдения
81 | locationsArray["503"] = ' ';
82 |
83 | // Дом Мод (прочитайте наоборот :D)
84 |
85 | locationsArray["40"] = '';
86 |
87 | // Штаб
88 |
89 | locationsArray["501"] = '';
90 |
91 | // Площадь у больнички
92 |
93 | locationsArray["47"] = ' ';
94 |
95 | // Остальное
96 |
97 | locationsArray["default"] = ' ';
98 | locationsArray["38"] = locationsArray["default"];
99 | locationsArray["0"] = locationsArray["default"];
100 | locationsArray["43"] = locationsArray["default"];
101 |
102 |
103 | var travelPlaces = [];
104 |
105 |
106 | // Страна роботов
107 |
108 | travelPlaces["53"] = '';
109 |
110 | // Джунгли
111 |
112 | travelPlaces["51"] = '';
113 |
114 |
115 | // Египет
116 |
117 | travelPlaces["26"] = '';
118 |
--------------------------------------------------------------------------------
/daisy/main.asc:
--------------------------------------------------------------------------------
1 | load("items.asc");
2 | load("locations.asc");
3 | load("bodyparts.asc");
4 |
5 | var msHost = "http://localhost";
6 |
7 | var homeInv = [{
8 | ID: 3676,
9 | AObjectTypeId: 1,
10 | AObjectId: 3676,
11 | AObjectRefTypeId: 20,
12 | MediaResourceID: 10223,
13 | TextResourceID: 10641,
14 | IsActive: 0
15 | }, {
16 | ID: 8326,
17 | AObjectTypeId: 1,
18 | AObjectId: 8326,
19 | AObjectRefTypeId: 20,
20 | MediaResourceID: 26415,
21 | TextResourceID: 26240,
22 | IsActive: 0
23 | }];
24 |
25 | var sbox = new Array(255);
26 | var mykey = new Array(255);
27 |
28 | function objInvToStr(Inventory) {
29 | var str = "";
30 |
31 | for (var tab in Inventory) {
32 | for (var i = 0; i < Inventory[tab].length; i++) {
33 | var ms = "";
34 | for (var key in Inventory[tab][i]) {
35 | if (key != "tab") {
36 | ms = ms + key + ">" + Inventory[tab][i][key] + "|";
37 | }
38 | }
39 | str += ms + "<";
40 | }
41 | str = str.slice(0, -1) + ";";
42 | }
43 |
44 | return str.slice(0, -1);
45 | }
46 |
47 | function meme(Id) {
48 | return g[Id];
49 | }
50 | //
51 |
52 | //
53 | //
54 | //var Inventory = { 0: [{tab: ''}, {ID:16, IsUsed:0, IsLimited:0, GoodID: 16, Date: "2018-12-28T19:50:31.107", MediaResourceID: 456, TextResourceID: 217}, {ID:15, IsUsed:0, IsLimited:0, GoodID: 15, Date: "2018-12-28T19:50:31.107", MediaResourceID: 455, TextResourceID: 216}, {ID:8, IsUsed:0, IsLimited:0, GoodID: 8, Date: "2018-12-28T19:50:31.107", MediaResourceID: 16, TextResourceID: 24615}, {ID:338, IsUsed:0, IsLimited:0, GoodID: 338, Date: "2018-12-28T19:50:31.107", MediaResourceID: 621}, {ID:235, IsUsed:0, IsLimited:0, GoodID: 235, Date: "2018-12-28T19:50:31.107", MediaResourceID: 560, TextResourceID: 117}, {ID:179, IsUsed:0, IsLimited:0, GoodID: 179, Date: "2018-12-28T19:50:31.107", MediaResourceID: 510}, {ID:25, IsUsed:0, IsLimited:0, GoodID: 25, Date: "2018-12-28T19:50:31.107", MediaResourceID: 11151, TextResourceID: 13963}, {ID:24, IsUsed:0, IsLimited:0, GoodID: 24, Date: "2018-12-28T19:50:31.107", MediaResourceID: 10395, TextResourceID: 13962}, {ID:4, IsUsed:0, IsLimited:0, GoodID: 4, Date: "2018-12-28T19:50:31.107", MediaResourceID: 452, TextResourceID: 213}, {ID:18, IsUsed:0, IsLimited:0, GoodID: 18, Date: "2018-12-28T19:50:31.107", MediaResourceID: 442, TextResourceID: 495}, {ID:3075, IsUsed:0, IsLimited:0, GoodID: 3075, Date: "2018-12-28T19:50:31.107", MediaResourceID: 7303, TextResourceID: 13997}, {ID:6152, IsUsed:0, IsLimited:0, GoodID: 6152, Date: "2018-12-28T19:50:31.107", MediaResourceID: 532, TextResourceID: 586}, {ID:2235, IsUsed:0, IsLimited:0, GoodID: 2235, Date: "2018-12-28T19:50:31.107", MediaResourceID: 4142, TextResourceID: 3033}], 1: [{tab:''}, {ID:17, IsUsed:0, IsLimited:0, GoodID: 17, Date: "2018-12-28T19:50:31.107", MediaResourceID: 13, TextResourceID: 201}], 2: [{tab: ''}]};
55 |
56 |
57 |
58 | function makeInvXML(Inventory) {
59 | var InvXML = '';
60 | for (var i = 0; i < homeInv.length; i++) {
61 | trace(homeInv[i]["ID"])
62 | var test = ''
65 | } else {
66 | test = test + '">';
67 | }
68 | InvXML = InvXML + test;
69 | }
70 | trace(InvXML);
71 | return InvXML;
72 | }
73 |
74 |
75 | //мне пока лень добавлять столько шапок)
76 | //
77 |
78 | //LayerID="36" - одежда
79 | //LayerID="45" - прически
80 | //LayerID="31" - Очки
81 | //LayerID="11" - обувь
82 | //LayerID="56" - аксессуары
83 | //LayerID="27" - костюмы
84 | //LayerID="57" - спутники
85 | //var Inventory = { 0: [{tab: ''}], 1: [{tab:''}], 2: [{tab: ''}], 3: [{tab: ''}], 4: [{tab: ''}], 5: [{tab: ''}]};
86 |
87 | //g[10568] = {Id:10568,MRId:9983,TRId:10252,GoodTypeId:14,RoleFlags:0,UsualTickets:-1,MagicTickets:-1,DefCurrency:0,LevelThreshold:0,UnlockCost:0,SortOrder:0,PublishDate:"2018-12-29T14:03:06.343",Tags:"",LayerId:31,IsActive:1};
88 |
89 | function makeXML(inv) {
90 | var bigXML = '';
91 | for (var m = 0; m < 7; m++) {
92 | var InvXML = inv[m][0]["tab"]
93 | for (var i = 1; i < inv[m].length; i++) {
94 | if (inv[m][i] != undefined) {
95 | var test = ' '
98 | } else {
99 | test = test + '" Pollution="0" />'
100 | }
101 | InvXML = InvXML + test;
102 | }
103 | }
104 | bigXML = bigXML + InvXML + '';
105 |
106 | }
107 | return bigXML;
108 | }
109 |
110 | function getBody(changes) {
111 | var newSmesh = {
112 | RoleFlags: 262144,
113 | User: {
114 | Body: {},
115 | "State": 0,
116 | "Name": "esme",
117 | "Level": 999,
118 | y: 400,
119 | x: 480
120 | }
121 | };
122 | for (var i = 0; i < changes["BodyParts"].length; i++) {
123 | var Id = changes["BodyParts"][i]["Id"];
124 | newSmesh["User"]["Body"][Id] = {};
125 | newSmesh["User"]["Body"][Id]["IsBodyPart"] = true;
126 | newSmesh["User"]["Body"][Id]["BodyPartTypeId"] = bodyParts[changes["BodyParts"][i]["Id"]]["BodyPartTypeId"];
127 | newSmesh["User"]["Body"][Id]["MediaResourceID"] = bodyParts[changes["BodyParts"][i]["Id"]]["MediaResourceID"];
128 | newSmesh["User"]["Body"][Id]["LayerID"] = bodyParts[changes["BodyParts"][i]["Id"]]["LayerID"] - 1;
129 | newSmesh["User"]["Body"][Id]["BodyPartId"] = bodyParts[changes["BodyParts"][i]["Id"]]["BodyPartId"];
130 | newSmesh["User"]["Body"][Id]["Id"] = changes["BodyParts"][i]["Id"];
131 | if (changes["BodyParts"][i]["Color"] != undefined) {
132 | newSmesh["User"]["Body"][Id]["Color"] = changes["BodyParts"][i]["Color"];
133 | }
134 | }
135 | for (var i = 0; i < changes["Inventory"].length; i++) {
136 | var Id = changes["Inventory"][i]["Id"];
137 | var well = meme(changes["Inventory"][i]["Id"]);
138 | newSmesh["User"]["Body"][Id] = {};
139 | newSmesh["User"]["Body"][Id]["IsBodyPart"] = false;
140 | newSmesh["User"]["Body"][Id]["GoodID"] = changes["Inventory"][i]["Id"];
141 | newSmesh["User"]["Body"][Id]["MediaResourceID"] = well["MRId"];
142 | newSmesh["User"]["Body"][Id]["GoodTypeID"] = well["GoodTypeId"];
143 | newSmesh["User"]["Body"][Id]["LayerID"] = well["LayerId"];
144 | newSmesh["User"]["Body"][Id]["Id"] = changes["Inventory"][i]["Id"];
145 | }
146 | return newSmesh;
147 | }
148 |
149 |
150 |
151 | function parseCoolString(cstr) {
152 |
153 | if (typeof(cstr) !== 'string') {
154 | return;
155 | }
156 |
157 | var pieces = cstr.split("|");
158 |
159 | var obj = {};
160 |
161 | for (var i = 0; i < pieces.length; i++) {
162 | var smol = pieces[i].split(">");
163 |
164 | var mkey = smol[0];
165 | var mvalue = smol[1];
166 |
167 | if (mvalue == 'true') {
168 | mvalue = 1;
169 | } else if (mvalue == 'false') {
170 | mvalue = 0;
171 | }
172 |
173 |
174 | obj[mkey] = mvalue;
175 | }
176 | return obj;
177 | }
178 |
179 | function parseNOCTMML(NOCTMML) {
180 | var arr = {};
181 |
182 | var s = NOCTMML.split(";");
183 |
184 | for (var i = 0; i < s.length; i++) {
185 | arr[i] = parseCoolString(s[i]);
186 | }
187 |
188 | trace(arr[0]["Id"] + " ID");
189 |
190 | return arr;
191 | }
192 |
193 | function objectToCoolString(obj) {
194 | var str = "";
195 | for (var el in obj) {
196 | str += el + ">" + obj[el] + "|";
197 | }
198 | str = str.slice(0, -1);
199 | return str;
200 | }
201 |
202 | function pseudoArrayToNOCTMML(steam) {
203 | var str = "";
204 | for (var e in steam) {
205 | str += objectToCoolString(steam[e]) + ";";
206 | }
207 | str = str.slice(0, -1);
208 | return str;
209 | }
210 |
211 |
212 | function H2CA(hex) {
213 | var _loc3_ = [];
214 | var _loc1_ = hex.substr(0, 2) != "0x" ? 0 : 2;
215 | while (_loc1_ < hex.length) {
216 | _loc3_.push(parseInt(hex.substr(_loc1_, 2), 16));
217 | _loc1_ = _loc1_ + 2;
218 | }
219 | return _loc3_;
220 | }
221 | var usersArr = [];
222 |
223 | function strToChars(str) {
224 | var codes = new Array();
225 | for (var i = 0; i < str.length; i++) {
226 | codes.push(str.charCodeAt(i));
227 | }
228 | return codes;
229 | }
230 |
231 | function charsToHex(chars) {
232 | var result = new String("");
233 | var hexes = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
234 | for (var i = 0; i < chars.length; i++) {
235 | result += hexes[chars[i] >> 4] + hexes[chars[i] & 0xf];
236 | }
237 | return result;
238 | }
239 |
240 | function initialize(pwd) {
241 | var b = 0;
242 | var tempSwap;
243 | var intLength = pwd.length;
244 | for (var a = 0; a <= 255; a++) {
245 | mykey[a] = pwd[(a % intLength)];
246 | sbox[a] = a;
247 | }
248 | for (var a = 0; a <= 255; a++) {
249 | b = (b + sbox[a] + mykey[a]) % 256;
250 | tempSwap = sbox[a];
251 | sbox[a] = sbox[b];
252 | sbox[b] = tempSwap;
253 | }
254 | }
255 |
256 | function calculate(plaintxt, psw) {
257 | initialize(psw);
258 | var i = 0;
259 | var j = 0;
260 | var cipher = new Array();
261 | var k, temp, cipherby;
262 | for (var a = 0; a < plaintxt.length; a++) {
263 | i = (i + 1) % 256;
264 | j = (j + sbox[i]) % 256;
265 | temp = sbox[i];
266 | sbox[i] = sbox[j];
267 | sbox[j] = temp;
268 | var idx = (sbox[i] + sbox[j]) % 256;
269 | k = sbox[idx];
270 | cipherby = plaintxt[a] ^ k;
271 | cipher.push(cipherby);
272 | }
273 | return cipher;
274 | }
275 |
276 | function rc4(src, key) {
277 | var mtxt = strToChars(src);
278 | var mkey = strToChars(key);
279 | var result = calculate(mtxt, mkey);
280 | return charsToHex(result);
281 | }
282 |
283 |
284 |
285 |
286 | function avaToXML(ava) {
287 | var xml = "";
288 | for (var e in ava) {
289 | if (ava[e]["IsBodyPart"] == "1") {
290 | xml += ' ";
294 | // } else {
295 | xml += " />";
296 | // }
297 | } else {
298 | xml += ' ';
299 | }
300 | }
301 |
302 | return xml;
303 | }
304 |
305 |
306 | application.onConnect = function(client, uid, sid, ticket, hwid) {
307 | trace("hwid " + hwid);
308 | var initialData = new LoadVars();
309 | initialData.load(msHost + "/kek.php?ticket=" + ticket + "&secret");
310 | this.acceptConnection(client);
311 |
312 | client.inv = {
313 | 0: [{
314 | tab: ''
315 | }],
316 | 1: [{
317 | tab: ''
318 | }],
319 | 2: [{
320 | tab: ''
321 | }],
322 | 3: [{
323 | tab: ''
324 | }],
325 | 4: [{
326 | tab: ''
327 | }],
328 | 5: [{
329 | tab: ''
330 | }],
331 | 6: [{
332 | tab: ''
333 | }]
334 | };
335 |
336 | client.ticket = ticket;
337 |
338 |
339 | initialData.onLoad = function(success) {
340 | trace(this.toString());
341 | //_NUB(TRID0, TRID1)
342 | client.userObj["User"]["Name"] = this.username;
343 | client.userObj["User"]["Level"] = this.level;
344 | client.userObj["User"]["RoleFlags"] = this.roleflags;
345 | client.userObj["User"]["Money"] = this.money;
346 | client.userObj["User"]["Gold"] = this.gold;
347 | client.userObj["User"]["Magic"] = this.magic;
348 | client.weaponCount = 999999999;
349 | client.userObj["User"]["Body"] = parseNOCTMML(this.avatar);
350 | client.regdate = this.regdate;
351 | client.role = Number(this.roleflags);
352 | client.houseStr = this.houseStr;
353 | client.call("_NNR", null, client.role);
354 | var e = this.inventory.split(";");
355 |
356 | for (var i = 0; i < e.length; i++) {
357 | var m = e[i].split("<");
358 |
359 | for (var id = 0; id < m.length; id++) {
360 | var mem = m[id].split("|");
361 | var obj = {};
362 | for (var meme = 0; meme < mem.length; meme++) {
363 | var keys = mem[meme].split(">");
364 | if (keys[1] != undefined) {
365 | obj[keys[0]] = keys[1];
366 | }
367 | }
368 | if (obj["ID"]) {
369 | client.inv[i][id + 1] = obj;
370 | }
371 | }
372 | }
373 | }
374 |
375 | client.userObj = {
376 | RoleFlags: 2,
377 | User: {
378 | Body: {
379 | "1": {
380 | "State": 1,
381 | Id: 1,
382 | IsBodyPart: true,
383 | Color: 8009440,
384 | BodyPartTypeId: 1,
385 | MediaResourceID: 55,
386 | LayerID: 10,
387 | BodyPartId: "73"
388 | },
389 | "2": {
390 | IsBodyPart: true,
391 | BodyPartTypeId: "1",
392 | MediaResourceID: 56,
393 | LayerID: 20,
394 | Id: 2,
395 | Color: 8009440,
396 | BodyPartId: "74"
397 | },
398 | "4": {
399 | IsBodyPart: true,
400 | BodyPartTypeId: "3",
401 | MediaResourceID: 59,
402 | LayerID: 30,
403 | Id: 4,
404 | BodyPartId: "75"
405 | },
406 | "50": {
407 | IsBodyPart: true,
408 | BodyPartTypeId: "4",
409 | MediaResourceID: 82,
410 | LayerID: 40,
411 | Id: 50,
412 | BodyPartId: "76"
413 | },
414 | 18108: {
415 | IsBodyPart: false,
416 | MediaResourceID: 464,
417 | GoodID: 38,
418 | GoodTypeID: 4,
419 | Id: 18108,
420 | LayerID: 45
421 | },
422 | 112: {
423 | IsBodyPart: false,
424 | MediaResourceID: 274,
425 | GoodID: 38,
426 | GoodTypeID: 14,
427 | Id: 112,
428 | LayerID: 31
429 | }
430 | },
431 | "State": 2,
432 | "Name": "esme",
433 | "Level": 999,
434 | y: 400,
435 | x: 480
436 | }
437 | };
438 |
439 | client.house = [];
440 |
441 |
442 | client.backgroundID = 339;
443 |
444 | client.location = 2;
445 |
446 | client.smeshID = uid;
447 |
448 |
449 | client.ufr = "1,test|2,kek|3,destator";
450 |
451 | usersArr[client.smeshID] = client.userObj;
452 |
453 |
454 | client._P = function(point, tweenId) {
455 |
456 | for (var i = 0; i < application.clients.length; i++) {
457 | if (application.clients[i].location == client.location && usersArr[application.clients[i].smeshID] != undefined) {
458 | client.userObj["User"]["x"] = point.x;
459 | client.userObj["User"]["y"] = point.y;
460 | application.clients[i].call("_P", null, client.smeshID, point, tweenId);
461 | }
462 | }
463 | }
464 |
465 |
466 | client._LS = function(descriptor, startPoint, startState) {
467 | client.userObj["User"]["x"] = startPoint.x;
468 | client.userObj["User"]["y"] = startPoint.y;
469 |
470 | if (descriptor != "LOAD") {
471 | trace("descr: " + descriptor.split("$")[2]);
472 | client.location = descriptor.split("$")[2];
473 | } else {
474 | return "0";
475 |
476 | }
477 |
478 | var usrs = [];
479 |
480 | for (var i = 0; i < application.clients.length; i++) {
481 | if (application.clients[i].location == client.location && usersArr[application.clients[i].smeshID] != undefined) {
482 | usrs[application.clients[i].smeshID] = application.clients[i].userObj;
483 | application.clients[i].call("_UE", null, client.smeshID, client.userObj);
484 | }
485 | }
486 |
487 | client.call("_LS", null, usrs);
488 |
489 | }
490 |
491 | client._S = function(state) {
492 |
493 | for (var i = 0; i < application.clients.length; i++) {
494 | if (application.clients[i].location == client.location && usersArr[application.clients[i].smeshID] != undefined) {
495 | application.clients[i].call("_S", null, client.smeshID, state);
496 | }
497 | }
498 | }
499 |
500 |
501 | client._SS = function(hidden) {
502 | for (var i = 0; i < application.clients.length; i++) {
503 | if (application.clients[i].location == client.location) {
504 | application.clients[i].call("_SS", null, client.smeshID, hidden);
505 | }
506 | }
507 | }
508 |
509 | client._SCA = function(methodName, data) {
510 | trace(methodName, data);
511 | return "meme";
512 | }
513 |
514 | client._NSF = function() {
515 | //return '';
516 | }
517 |
518 | function hStrToArr(str) {
519 | var arr = [];
520 | var pieces = str.split(";");
521 |
522 | for (var i = 0; i < pieces.length; i++) {
523 | var obj = {};
524 | var e = pieces[i].split("|");
525 |
526 | for (var id = 0; id < e.length; id++) {
527 | var p = e[id].split(">");
528 | obj[p[0].replace(" ", "")] = p[1];
529 | }
530 |
531 | arr.push(obj);
532 | }
533 |
534 | return arr;
535 | }
536 |
537 | function houseToXML(house) {
538 | //ID>46043197|AObjectTypeId>1|AObjectId>573|AObjectRefTypeId>20|MediaResourceID>1242|TextResourceID>1034|x>219.4|y>246.7;
539 | //
540 |
541 | var xml = "";
542 | for (var i = 0; i < house.length; i++) {
543 | xml += "";
548 | }
549 |
550 | return xml;
551 | }
552 |
553 | function hstrToXML(str) {
554 | return houseToXML(hStrToArr(str));
555 | }
556 |
557 | function updateInventory(ticket, inv) {
558 | var str = objInvToStr(inv);
559 | var lv = new LoadVars();
560 | lv.inventory = str;
561 | lv.ticket = ticket;
562 |
563 |
564 | lv.send(msHost + "/inv.php");
565 |
566 | }
567 |
568 | function hObjToStr(obj) {
569 | var str = "";
570 | for (var i = 0; i < obj.length; i++) {
571 | if (obj[i] != undefined) {
572 | for (var key in obj[i]) {
573 | str += key + ">" + obj[i][key] + "|";
574 | }
575 | str = str.slice(0, -1);
576 | str = str + ";";
577 | }
578 | }
579 | str = str.slice(0, -1);
580 | return str;
581 | }
582 |
583 | client.$ = function(methodName, descr, calledRoomId, arguments, callback) {
584 | if (methodName == "_QV") {
585 | return true;
586 | } else if (methodName == "_QF") {
587 | return true;
588 | } else if (methodName == "_LC") {
589 |
590 | for (var changes in arguments[1]) {
591 | trace(changes);
592 |
593 | for (var changed in arguments[1][changes]) {
594 | trace(changed + " ### " + arguments[1][changes][changed]);
595 |
596 | for (var e in arguments[1][changes][changed]) {
597 | trace(e + " #### " + arguments[1][changes][changed][e]);
598 | if (changes == "Remove") {
599 | var harr = hStrToArr(client.houseStr);
600 | for (var i = 0; i < harr.length; i++) {
601 | trace(harr[i]['ID'] + "harry");
602 | if (harr[i]['ID'] == changed) {
603 | trace("found!!");
604 | harr[i] = undefined;
605 | client.houseStr = hObjToStr(harr);
606 | }
607 | }
608 | } else if (changes == "Change") {
609 | var houseArr = hStrToArr(client.houseStr);
610 |
611 | for (var i = 0; i < houseArr.length; i++) {
612 | if (houseArr[i]['ID'] == changed) {
613 | houseArr[i]['x'] = arguments[1][changes][changed]['x'];
614 | houseArr[i]['y'] = arguments[1][changes][changed]['y'];
615 | client.houseStr = hObjToStr(houseArr);
616 | trace("new str: " + client.houseStr);
617 | }
618 | }
619 |
620 | } else if (changes == "Add") {
621 | var ek = [arguments[1][changes][changed]];
622 | client.houseStr = client.houseStr + hObjToStr(ek);
623 | }
624 | }
625 | }
626 | }
627 | if (descr == "ROOM") {
628 | for (var i = 0; i < application.clients.length; i++) {
629 | application.clients[i].call("_LC", null, client.smeshID, arguments[1], arguments[2]);
630 | }
631 | }
632 |
633 | } else if (methodName == "_SCA") {
634 | return true;
635 | } else if (methodName == "_QI") {
636 | return "0";
637 | } else if (methodName == "_NUC") {
638 | if (client.role >= "393230") {
639 | var ban = new LoadVars();
640 | ban.id = arguments[0];
641 | ban.ticket = client.ticket;
642 | ban.send(msHost + "/ban.php");
643 | for (var i = 0; i < application.clients.length; i++) {
644 | if (application.clients[i].smeshID == arguments[0]) {
645 | application.clients[i].call("_NUB", [arguments[0], 162]);
646 | }
647 | }
648 | }
649 | } else if (methodName == "_WAR") {
650 | if (client.role >= "393230") {
651 |
652 | for (var i = 0; i < application.clients.length; i++) {
653 | if (application.clients[i].smeshID == arguments) {
654 | application.disconnect(application.clients[i]);
655 | }
656 | }
657 | }
658 | } else if (methodName == "_BG") {
659 |
660 |
661 | } else if (methodName == "_SDB") {
662 | client.backgroundID = arguments[0];
663 | trace(client.backgroundID + "bg");
664 | } else if (methodName == "_GG") {
665 | // var _loc8_ = {index:"ID",remove_index:false,convert:{ID:Number,MediaResourceID:Number,TextResourceID:Number,MaxUsersCount:Number,MinUsersCount:Number,LackTime:Number,ScoreDivisor:Number,AvatarType:Number,MenuState:Number,MessageID:Number,StartLackTime:Number,StartFullTime:Number,IsPromptUsed:$.ToBoolean,IsFullscreen:$.ToBoolean,IsShowPoints:$.ToBoolean,Token:String}};
666 | // return ' ';
667 | return ' ';
668 | } else if (methodName == "_UUG") {
669 | return arguments;
670 | } else if (methodName == "_SAG") {
671 | //return {NameTRId: , BestsaleGoodIds, Goods Id, DaysLeft};
672 | return {
673 | callback_uid: callback
674 | };
675 | } else if (methodName == "_GD") {
676 | return "0";
677 | } else if (methodName == "_CUR") {
678 | return H2CA(rc4("", "_level0"));
679 | } else if (methodName == "_MSTL") {
680 | return [];
681 | } else if (methodName == "_GD") {
682 | return "";
683 | } else if (methodName == "_GCI") {
684 | if (arguments == 4) {
685 | return ' ';
686 | }
687 | } else if (methodName == "_C") {
688 | trace("текст ", arguments[1], "id ", client.smeshID);
689 |
690 | if (arguments[1].indexOf("$G$") > -1) {
691 | var ret = arguments[1].replace("$G$", "");
692 | var m = Number(ret);
693 | var item = meme(Number(ret));
694 |
695 | var newItem = {
696 | ID: item["Id"],
697 | IsUsed: 0,
698 | IsLimited: 0,
699 | GoodID: item["Id"],
700 | Date: "2018-12-28T19:50:31.107",
701 | MediaResourceID: item["MRId"],
702 | TextResourceID: item["TRId"]
703 | };
704 | if (item["Id"] != "undefined") {
705 | if (item["LayerId"] == 36) {
706 | client.inv[0].push(newItem);
707 | } else if (item["LayerId"] == 45) {
708 | client.inv[1].push(newItem);
709 | } else if (item["LayerId"] == 31) {
710 | client.inv[2].push(newItem);
711 | } else if (item["LayerId"] == 11) {
712 | client.inv[3].push(newItem);
713 | } else if (item["LayerId"] == 56) {
714 | client.inv[4].push(newItem);
715 | } else if (item["LayerId"] == 27) {
716 | client.inv[5].push(newItem);
717 | } else if (item["LayerId"] == 57) {
718 | client.inv[6].push(newItem);
719 | } else {
720 | trace("такого объекта нет!");
721 | }
722 |
723 | }
724 | updateInventory(client.ticket, client.inv);
725 | return;
726 | }
727 |
728 |
729 | for (var i = 0; i < application.clients.length; i++) {
730 | if (application.clients[i].location == client.location) {
731 | application.clients[i].call("_C", null, client.smeshID, arguments[1]);
732 | }
733 | }
734 | } else if (methodName == "_AS") {
735 | //
736 | //trace([0]["BodyParts"][0]["Id"]);
737 | //"18108": { IsBodyPart: false, MediaResourceID: 464, GoodID: 38, GoodTypeID: 4, Id: 18108, LayerID: 45}
738 | var test = getBody(arguments[0]);
739 | var changes = arguments[0];
740 |
741 | for (var i = 0; i < 7; i++) {
742 | for (var itemId = 1; itemId < client.inv[i].length; itemId++) {
743 | if (client.inv[i][itemId] != undefined) {
744 | client.inv[i][itemId]["IsUsed"] = "0";
745 | }
746 | }
747 | }
748 |
749 |
750 | for (var i = 0; i < changes["Inventory"].length; i++) {
751 | var Id = changes["Inventory"][i]["Id"];
752 | var well = meme(changes["Inventory"][i]["Id"]);
753 |
754 | for (var id = 0; id < 7; id++) {
755 | for (var m = 0; m < client.inv[id].length; m++) {
756 | if (client.inv[id][m] != undefined && client.inv[id][m]["ID"] == Id) {
757 | client.inv[id][m]["IsUsed"] = "1";
758 | }
759 | }
760 | }
761 | }
762 |
763 | client.userObj["User"]["Body"] = test["User"]["Body"];
764 |
765 | usersArr[client.smeshID] = client.userObj;
766 |
767 | updateInventory(client.ticket, client.inv);
768 |
769 | var lv = new LoadVars();
770 | lv.avatar = pseudoArrayToNOCTMML(client.userObj['User']['Body']);
771 | lv.ticket = client.ticket;
772 | lv.send(msHost + "/setAvatar.php");
773 | for (var i = 0; i < application.clients.length; i++) {
774 | if (application.clients[i].location == client.location) {
775 | application.clients[i].call("_D", null, client.smeshID, client.userObj);
776 | }
777 | }
778 |
779 | return callback;
780 | } else if (methodName == "_CAQ") {
781 | return {
782 | "2": {
783 | "0": "1",
784 | "1": "esme"
785 | }
786 | };
787 | } else if (methodName == "_FL") {
788 | return ' ';
789 | } else if (methodName == "_AG") {
790 | trace("_AG");
791 | return ' ' + makeXML(client.inv) + ' ';
792 | } else if (methodName == "_UI") {
793 | trace("_UI");
794 | for (var i = 0; i < application.clients.length; i++) {
795 | if (application.clients[i].smeshID == arguments) {
796 | var cl = application.clients[i];
797 | }
798 | }
799 |
800 | return '' + avaToXML(cl.userObj["User"]["Body"]) + '';
801 | } else if (methodName == "_NUM") {
802 | for (var i = 0; i < application.clients.length; i++) {
803 | if (application.clients[i].location == client.location) {
804 | application.clients[i].call("_NUM", null, arguments[0], arguments[1], arguments[2]);
805 | }
806 | }
807 | } else if (methodName == "_NUS") {
808 | for (var i = 0; i < application.clients.length; i++) {
809 | if (application.clients[i].location == client.location) {
810 | application.clients[i].call("_NUS", null, client.smeshID, arguments[1], arguments[2]);
811 | }
812 | }
813 | } else if (methodName == "_I") {
814 | trace("_I");
815 | var magic = ''
816 | for (i = 1; i < 282; i++) {
817 | magic += ' ';
818 | }
819 | var putin = [H2CA(rc4('' + avaToXML(client.userObj["User"]["Body"]) + '' + magic + ' ', "_level0"))];
820 | return putin;
821 | } else if (methodName == "_UFG") {
822 | var obj = {};
823 | /*
824 | var u = client.ufg.split("|");
825 |
826 | for (var i = 0; i < u.length; i++) {
827 | var s = u[i].split(",");
828 | obj[s[0]] = {
829 | userId: s[0],
830 | UserName: s[1],
831 | IsOnline: true
832 | };
833 | }
834 | */
835 | return obj;
836 |
837 | } else if (methodName == "_UFR") {
838 | var obj = {};
839 | /*
840 | var ufrstr = client.ufr.split("|");
841 | for (var i = 0; i < ufrstr.length; i++) {
842 | var splitted = ufrstr[i].split(",");
843 | obj[i] = {
844 | userId: 3,
845 | UserName: splitted[1]
846 | };
847 | }
848 | */
849 | return obj;
850 | } else if (methodName == "_CM") {
851 | return "";
852 | } else if (methodName == "_LDH") {
853 | return ' ';
854 | } else if (methodName == "_SNFP") {
855 | return ' ';
856 | } else if (methodName == "_D") {
857 | for (var i = 0; i < application.clients.length; i++) {
858 | if (application.clients[i].location == client.location) {
859 | application.clients[i].call("_D", null, client.smeshID, client.userObj);
860 | }
861 | }
862 | } else if (methodName == "_LGI") {
863 | return travelPlaces[arguments[0]];
864 | } else if (methodName == "_LML") {
865 | return '';
866 | } else if (methodName == "_JD") {
867 | return ' ';
868 | } else if (methodName == "_LG") {
869 |
870 | // for (var i = 0; i < application.clients.length; i++) {
871 | // if (application.clients[i].location == client.location && application.clients[i].smeshID != client.smeshID) {
872 | // application.clients[i].call("_UL", null, client.smeshID);
873 | // }
874 | // }
875 |
876 | if (arguments[1] == -1) {
877 | return '' + hstrToXML(client.houseStr) + '';
878 | }
879 |
880 | if (locationsArray[arguments[1]]) {
881 | return locationsArray[arguments[1]];
882 | } else {
883 | return locationsArray[23];
884 | }
885 | } else if (methodName == "_UOG") {
886 | return true;
887 | } else if (methodName == "_GMB") {
888 | return {
889 | "Amount": 900000
890 | };
891 | } else if (methodName == "_MTB") {
892 | return {
893 | "Success": true
894 | };
895 | } else if (methodName == "_UOS") {
896 | trace("ШО");
897 |
898 | if (arguments == "SA_IsFirstStepPassed") {
899 | return true;
900 | }
901 |
902 | client.call("_UOS", null, arguments);
903 | } else if (methodName == "_UFO") {
904 | return '0';
905 | } else if (methodName == "_GOGI") {
906 | return ' ';
907 | } else if (methodName == "_ULNS") {
908 | return true;
909 | } else if (methodName == "_DA") {
910 | return '';
911 | } else if (methodName == "_GSD") {
912 | return '';
913 | } else if (methodName == "_BGB") {
914 |
915 | for (var id in arguments[0][0]["item"]) {
916 | var value = arguments[0][0]["item"][id];
917 |
918 | trace(id + " = " + value);
919 | }
920 |
921 | if (arguments[0][0]["item"]["goodTypeId"] == 20) {
922 | var tesb = {
923 | ID: arguments[0][0]["item"]["id"],
924 | AObjectTypeId: 1,
925 | AObjectId: arguments[0][0]["item"]["id"],
926 | AObjectRefTypeId: 20,
927 | MediaResourceID: arguments[0][0]["item"]["MRid"],
928 | TextResourceID: arguments[0][0]["item"]["TRid"],
929 | IsActive: 0
930 | };
931 | homeInv.push(tesb);
932 | } else {
933 |
934 | var tesa = {
935 | ID: arguments[0][0]["item"]["id"],
936 | IsUsed: 0,
937 | IsLimited: 0,
938 | GoodID: arguments[0][0]["item"]["id"],
939 | Date: "2018-12-28T19:50:31.107",
940 | MediaResourceID: arguments[0][0]["item"]["MRid"],
941 | TextResourceID: arguments[0][0]["item"]["TRid"]
942 | };
943 | trace(arguments[0][0]["item"]["layerId"]);
944 | if (arguments[0][0]["item"]["layerId"] == 36) {
945 | client.inv[0].push(tesa);
946 | } else if (arguments[0][0]["item"]["layerId"] == 45) {
947 | client.inv[1].push(tesa);
948 | } else if (arguments[0][0]["item"]["layerId"] == 31) {
949 | client.inv[2].push(tesa);
950 | } else if (arguments[0][0]["item"]["layerId"] == 11) {
951 | client.inv[3].push(tesa);
952 | } else if (arguments[0][0]["item"]["layerId"] == 56) {
953 | client.inv[4].push(tesa);
954 | } else if (arguments[0][0]["item"]["layerId"] == 27) {
955 | client.inv[5].push(tesa);
956 | } else if (arguments[0][0]["item"]["layerId"] == 57) {
957 | client.inv[6].push(tesa);
958 | }
959 | }
960 |
961 | updateInventory(client.ticket, client.inv);
962 |
963 | return {
964 | Error: 0,
965 | Result: ' ',
966 | GoodInfo: 0,
967 | MagicTickets: 0,
968 | TRId: 0,
969 | GoodTypeId: 0,
970 | IsUnlock: true,
971 | UsualTickets: 0,
972 | GoodId: 0,
973 | GoodTypeTRId: 0,
974 | BelongType: 0
975 | };
976 | }
977 | }
978 |
979 | client._SCD = function() {
980 | return new Date();
981 | }
982 |
983 |
984 | }
985 |
986 | application.onDisconnect = function(client) {
987 | usersArr[client.smeshID] = undefined;
988 |
989 | for (var i = 0; i < application.clients.length; i++) {
990 | if (application.clients[i].location == client.location) {
991 | application.clients[i].call("_UL", null, client.smeshID);
992 | }
993 | }
994 | }
995 |
--------------------------------------------------------------------------------