· 8 years ago · Nov 19, 2017, 03:52 PM
1main() { }
2
3// ======================== [ Инклуды ] ========================
4
5#include <a_samp>
6#include <streamer>
7#include <a_mysql>
8#include <sscanf2>
9#include <dc_cmd>
10#include <foreach>
11
12// ====================== [ Дефайны БД ] =======================
13
14#define mysql_host "localhost"
15#define mysql_user "root"
16#define mysql_base "starlight-test"
17#define mysql_pass ""
18
19// ======================== [ Дефайны ] ========================
20
21#define publics%0(%1) forward%0(%1); public%0(%1)
22#define KickRak(%1) SetTimerEx("kick", 20, false, "i", %1)
23#define ShowGeoIpForPlayer(%1) SetTimerEx("ShowGeoIp", 5000, false, "i", %1)
24#define SCM SendClientMessage
25#define SPD ShowPlayerDialog
26#define DSI DIALOG_STYLE_INPUT
27#define DSM DIALOG_STYLE_MSGBOX
28#define DSP DIALOG_STYLE_PASSWORD
29#define DSL DIALOG_STYLE_LIST
30#define DSTH DIALOG_STYLE_TABLIST_HEADERS
31#define FloodChat if(flood_chat[playerid] > gettime()){SCM(playerid, COLOR_WHITE, "Ðе флуди!"); return 0;}
32#define FloodCMD if(flood_cmd[playerid] > gettime()){SCM(playerid, COLOR_WHITE, "Ðе флуди!"); return 0;}
33#define FloodRPChat if(flood_rpchat[playerid] > gettime()){SCM(playerid, COLOR_WHITE, "Ðе флуди!"); return 0;}
34#define FloodPickup if(flood_pickup[playerid] > gettime()) return 0;
35
36// ========================= [ Цвета ] =========================
37
38#define COLOR_BRANDBLUE1 0x0D286EAA
39#define COLOR_BRANDBLUE2 0x113691AA
40#define COLOR_BRANDBLUE3 0x617ABAAA
41#define COLOR_BRANDGREY1 0x919191AA
42#define COLOR_BRANDGREY2 0x6E6E6EAA
43#define COLOR_BRANDGREY3 0x9E9E9EAA
44#define COLOR_BRANDRED1 0x6E1F0DAA
45#define COLOR_BRANDRED2 0x912911AA
46#define COLOR_RED 0xAA3333AA
47#define COLOR_WHITE 0xFFFFFFAA
48#define COLOR_GREY 0xF696969A
49#define COLOR_YELLOW 0xFFFF00AA
50#define COLOR_GREEN 0x9EC73DAA
51#define COLOR_PINK 0xFFC0CBAA
52#define COLOR_YELLOW 0xFFFF00AA
53#define COLOR_WHITE 0xFFFFFFAA
54#define COLOR_BLUE 0x0000BBAA
55#define COLOR_LIGHTBLUE 0x33CCFFAA
56#define COLOR_ORANGE 0xFF9900AA
57#define COLOR_BLACK 0x000000AA
58#define TEAM_GROVE_COLOR 0x00D900C8
59#define COLOR_GOLD 0xB8860BAA
60#define COLOR_RPCHAT 0xDD90FFFF
61#define COLOR_LIGHTRED 0xFF6347AA
62
63// ================= [ Глобальные переменные ] =================
64
65new MySQL: db_connect;
66enum pInfo
67{
68 pID,
69 pName,
70 pPass,
71 pLogin,
72 pReg,
73 pMail[40],
74 pRefer[32],
75 pSex,
76 pSpawn,
77 pSkin,
78 pRegDate,
79 pRegIp,
80 pLastIp,
81 pLastDate,
82 pLevel,
83 pExp,
84 pExpUp,
85 pMoney,
86 pIp,
87 pLastEnter,
88 pJob
89}
90
91new PlayerInfo[MAX_PLAYERS][pInfo];
92
93new RegFemaleSkins[] = {
94 9,
95 12,
96 31,
97 39,
98 40,
99 41,
100 55,
101 56,
102 69,
103 88,
104 148,
105 226,
106};
107
108new RegMaleSkins[] = {
109 7,
110 20,
111 29,
112 30,
113 32,
114 43,
115 60,
116 66,
117 95,
118 98,
119 119,
120 136,
121};
122
123new RegMaleBomjSkins[] = {
124 134,
125 135,
126 137,
127 78,
128 79,
129 230,
130 239,
131};
132
133new RegFemaleBomjSkins[] = {
134 77,
135 53,
136 154,
137 10,
138};
139
140new bool: Login[MAX_PLAYERS];
141new flood_cmd[MAX_PLAYERS];
142new flood_rpchat[MAX_PLAYERS];
143new flood_chat[MAX_PLAYERS];
144new flood_pickup[MAX_PLAYERS];
145
146
147new Rules1[11][] = {
148 {"{AA3333}I. Игровой процеÑÑ.\n"},
149 {" {617ABA}1. Сервер Starlight RP позиционирует ÑÐµÐ±Ñ ÐºÐ°Ðº Role Play Ñервер, поÑтому Ñоблюдение RP обÑзательно.\n"},
150 {" {617ABA}2. Запрещено:\n"},
151 {" {919191}-ИÑпользование модов/программ/Ñкриптов/читов, которые дают преимущеÑтва одним игрокам над другими.\n"},
152 {" {919191}-ИÑпользование недоработок Ñервера/Ñамой игры Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€ÐµÐ¸Ð¼ÑƒÑ‰ÐµÑтва над другими игроками.\n"},
153 {" {919191}-Совершать Non-RP дейÑÑ‚Ð²Ð¸Ñ (Более подробно опиÑаны ниже).\n"},
154 {" {919191}-ВымогательÑтво перÑональных данных других игроков.\n"},
155 {" {919191}-Создавать финанÑовые пирамиды.\n"},
156 {" {919191}-Выдавать ÑÐµÐ±Ñ Ð·Ð° админиÑтратора проекта.\n"},
157 {" {919191}-Мешать админиÑтраторам выполнÑть Ñвою работу.\n"},
158 {" {919191}-Злоупотребление ÑобÑтвенными возможноÑÑ‚Ñми.\n\n"}
159};
160new Rules3[5][] = {
161 {"{AA3333}III. Ðккаунт\n"},
162 {" {617ABA}1. Ðккаунт - ваша ÑобÑтвенноÑть.\n"},
163 {" {617ABA}2. За взлом аккаунтов админиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð²ÐµÑ‚ÑтвенноÑти не неÑет.\n"},
164 {" {617ABA}3. ВоÑÑтановление аккантов возможно Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ e-mail-а.\n"},
165 {" {617ABA}4. Запрещено передавать/продавать аккаунты.\n\n"}
166
167};
168
169new Rules2[9][] = {
170 {"{AA3333}II. Ðик в игре.\n"},
171 {" {617ABA}1. Ðик должен быть Ñоздан по шаблону: ИмÑ_Ð¤Ð°Ð¼Ð¸Ð»Ð¸Ñ Ð½Ð° латинице.\n"},
172 {" {617ABA}2. ЕÑли у Ð²Ð°Ñ Ð¿Ð¾ каким-то причинам Non-RP ник, вы можете его поменÑть (/mm > Сменить ник).\n"},
173 {" {617ABA}3. RP ники не менÑÑŽÑ‚ÑÑ, за иÑключением некоторых Ñлучаев.\n"},
174 {" {617ABA}4. Запрещено:\n"},
175 {" {919191}-ИÑпользовать чужие ники.\n"},
176 {" {919191}-Подделывать ники.\n"},
177 {" {919191}-ИÑпользовать укороченные имена, например Deniska_Korablev.\n"},
178 {" {919191}-ИÑпользовать в Ñвоем нике такие чаÑти, как Tawer, Maloy, Ebosher и так далее.\n\n"}
179};
180
181
182new Rules4[24][] = {
183 {"{AA3333}IV. ОÑновы Role Play\n"},
184 {" {617ABA}1. В игре 2 типа чата:\n"},
185 {" {919191}-OOC ( Out Of Character ) - информациÑ, не отноÑÑщаÑÑÑ Ðº игровому процеÑÑу.\n"},
186 {" {919191}-IC ( In Character ) - информациÑ, отноÑÑщаÑÑÑ Ðº игровому процеÑÑу.\n"},
187 {" {617ABA}Смешивание двух чатов недопуÑтимо. Ð”Ð»Ñ OOC чата предуÑмотрена команда (/b).\n"},
188 {" {617ABA}2. Игроки обÑзаны отыгрывать Ñвою роль. Ð”Ð»Ñ Ñтого предуÑмотрены команды дейÑÑ‚Ð²Ð¸Ñ (/me),\nкоманды дейÑÑ‚Ð²Ð¸Ñ Ð¾Ñ‚ 3-го лица (/do) и команда попытки ÑÐ¾Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ ÐºÐ°ÐºÐ¾Ð³Ð¾-либо дейÑÑ‚Ð²Ð¸Ñ (/try).\n"},
189 {" {617ABA}3. ОбÑзательные Ð´Ð»Ñ Ð²Ñ‹ÑƒÑ‡Ð¸Ð²Ð°Ð½Ð¸Ñ Role Play термины:\n"},
190 {" {919191}-MetaGaming (MG) - иÑпользование OOC информации в IC чат и наоборот ( Ñмешивание чатов ).\n"},
191 {" {919191}-OOC и IC (Ñм. п. 1 ).\n"},
192 {" {919191}-Role Play (RP) - Ð Ð¾Ð»ÐµÐ²Ð°Ñ Ð¸Ð³Ñ€Ð°.\n"},
193 {" {919191}-Respawn - МеÑто поÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð³Ñ€Ð¾ÐºÐ°.\n"},
194 {" {919191}-Away From Keyboard (AFK) - Отошел от клавиатуры.\n"},
195 {" {919191}-Revenge Kill (RK) - убить игрока, за то что он убил тебÑ.\n"},
196 {" {919191}-PowerGaming (PG) - Воображение из ÑÐµÐ±Ñ Ñупер-героÑ. Пример: драка 1 на 5.\n"},
197 {" {919191}-Bunny Hopping (BH) - прыгать, Ñловно кузнечик (Shift+ Пробел).\n"},
198 {" {919191}-Death Match (DM) - УбийÑтво людей без IC причины.\n"},
199 {" {919191}-Drive By (DB) - УбийÑтво человека из машины.\n"},
200 {" {919191}-Spawn Kill (SK) - УбийÑтво на меÑте поÑвлениÑ.\n"},
201 {" {919191}-Team Kill (TK) - УбийÑтво члена Ñвоей команды, фракции.\n"},
202 {" {919191}-Сharacter kill (CK) - УбийÑтво игрока по IC причинам ( Заказное убийÑтво, увольнение из мафий/банд ).\n"},
203 {" {919191}-Fast Reload (FR) - Баг Ñ Ð±Ñ‹Ñтрой перезарÑдкой.\n"},
204 {" {919191}-Repeat Kill (RK) - Ðамеренное повторное убийÑтво одного и того же игрока.\n"},
205 {" {919191}-Willy Hopping (WH) - Ðто прыжок Ñ 'велоподобных' транÑпортных ÑредÑтв\n"},
206 {" {919191}-Fast Moving (FM) - Баг Ñ Ð±Ñ‹Ñтрым перемещением."}
207};
208
209new Rules5[4][] = {
210 {"{AA3333}IV. ÐдминиÑтрациÑ.\n"},
211 {" {617ABA}1. ÐдминиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñервера - опытные игроки, оÑущеÑтвлÑющие мониторинг Ñервера в любое Ð²Ñ€ÐµÐ¼Ñ Ñуток.\n"},
212 {" {617ABA}2. Ð’ Ñлучае Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶ÐµÐ½Ð¸Ñ 'подозрительных личноÑтей', иÑпользующих баги/читы, вы \nимеете право Ñообщить об Ñтом админиÑтрации. ( /mm > СвÑзь Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрацией > Жалоба (Репорт) ).\n"},
213 {" {617ABA}3. ÐдминиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ право выдавать Ð½Ð°ÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð½Ð°Ñ€ÑƒÑˆÐ¸Ñ‚ÐµÐ»Ñм правил Ñервера на Ñвое\n уÑмотрение, но придерживаÑÑÑŒ таблице наказаний.\n\n"}
214};
215
216new Rules6[4][] = {
217 {"{AA3333}V. Саппорты.\n"},
218 {" {617ABA}1. Support ( Саппорт ) - опытный игрок, знающий ответы на вÑе вопроÑÑ‹, которые могут возникнуть у игроков.\n"},
219 {" {617ABA}2. ЕÑли вам что-либо не понÑтно, вы имеете право задать Ð²Ð¾Ð¿Ñ€Ð¾Ñ support-ам ( /mm > СвÑзь Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрацией > Ð’Ð¾Ð¿Ñ€Ð¾Ñ ).\n"},
220 {" {617ABA}3. Ð’Ñ‹ вÑегда можете проверить ÑпиÑок Ñаппортов на Ñервере ( /supports ).\n\n"}
221};
222
223new Rules7[4][] = {
224 {"{AA3333}VI. ТорговлÑ.\n"},
225 {" {617ABA}1. Запрещены любые денежные махинации.\n"},
226 {" {617ABA}2. Запрещена куплÑ/продажа виртуальных ценноÑтей за реальные деньги.\n"},
227 {" {617ABA}3. Запрещена передача/продажа аккаунтов.\n\n"}
228};
229
230new Rules8[27][] = {
231 {"{AA3333}VIII. ÐаказаниÑ\n"},
232 {" {617ABA}1. Ðа Ñервере ÑущеÑтвует неÑколько типов наказаниÑ:\n"},
233 {" {919191}-Mute - приглушение чата на какое-то времÑ.\n"},
234 {" {919191}-Jail - Тюремный Ñрок.\n"},
235 {" {919191}-Freeze - Заморозка игрока на какое-то времÑ.\n"},
236 {" {919191}-DeMorgan - Тюремный Ñрок в Ñпециальной тюрьме.\n"},
237 {" {919191}-Kick - Прекращение игрового процеÑÑа.\n"},
238 {" {919191}-Warn - Предупреждение за нарушение правил Ñервера\n"},
239 {" {919191}-Ban - ОтÑтранение от игры на Ñервере на какой-то Ñрок.\n"},
240 {" {617ABA}2. ÐÐ°ÐºÐ°Ð·Ð°Ð½Ð¸Ñ 'Легкой Ñ‚ÑжеÑти'\n"},
241 {" {919191}-Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² верхнем региÑтре (CAPS LOCK) | MG - Mute на 5-30 минут.\n"},
242 {" {919191}-ÐÐµÑ†ÐµÐ½Ð·ÑƒÑ€Ð½Ð°Ñ Ð»ÐµÐºÑика в чат - Mute на 30-60 минут\n"},
243 {" {617ABA}3. ÐÐ°ÐºÐ°Ð·Ð°Ð½Ð¸Ñ 'Средней Ñ‚ÑжеÑти'\n"},
244 {" {919191}-BH | WH | Лаггер ( Ping > 160 ) - Kick\n"},
245 {" {919191}-Помеха игрокам | AFK более 10 минут - Kick\n"},
246 {" {617ABA}4. ÐÐ°ÐºÐ°Ð·Ð°Ð½Ð¸Ñ 'ТÑжелой Ñ‚ÑжеÑти'\n"},
247 {" {919191}-DB | SK | TK | FR - Warn | Ban 7+ дней\n"},
248 {" {919191}-RK | PG | DM - Kick | DeMorgan 60 - 360 Минут | Warn\n"},
249 {" {919191}-FM - DeMorgan 60 - 360 Минут | Warn | Ban 7+ дней\n"},
250 {" {919191}-Помеха админиÑтраторам выполнÑть Ñвою работу - Kick | Warn\n"},
251 {" {919191}-Злоупотребление ÑобÑтвенными возможноÑÑ‚Ñми - Kick | Warn\n"},
252 {" {919191}-ИÑпользование Ñкриптов/читов - DeMorgan 60-360 Минут | Warn | Ban на 7+ дней\n"},
253 {" {919191}-ИÑпользование недоработок Ñервера - DeMorgan 60-360 Минут | Warn | Ban на 7+ дней\n"},
254 {" {919191}-ВымогательÑтво перÑональных данных других игроков - Вечный бан + Удаление аккаунта\n"},
255 {" {919191}-Создание финанÑовых пирамид - Вечный бан + Удаление аккаунта\n"},
256 {" {919191}-Выдача ÑÐµÐ±Ñ Ð·Ð° админиÑтратора проекта | Создание 'Фейков' - Вечный бан + Удаление аккаунта\n"},
257 {" {919191}И так далее."}
258};
259
260new loaderspick;
261new loaderworkers[MAX_PLAYERS];
262
263new Text:Logotype[6];
264// ======================== [ Паблики ] ========================
265
266public OnGameModeInit()
267{
268 PickUps();
269 ThreeDTexts();
270 LogoTextdraws();
271 Timers();
272 DisableInteriorEnterExits();
273 EnableStuntBonusForAll(0);
274 SetGameModeText("StarLight RP");
275 AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
276 LimitPlayerMarkerRadius(50);
277 new MySQLOpt: option_id = mysql_init_options();
278 mysql_set_option(option_id, AUTO_RECONNECT, true);
279 db_connect = mysql_connect(mysql_host, mysql_user, mysql_pass, mysql_base, option_id);
280 if(db_connect == MYSQL_INVALID_HANDLE || mysql_errno(db_connect) != 0) printf("Подключение к базе Ñервера неуÑпешно");
281 else printf("Подключение к базе Ñервера уÑпешно");
282 return 1;
283}
284
285public OnGameModeExit()
286{
287 return 1;
288}
289
290public OnPlayerRequestClass(playerid, classid)
291{
292 SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
293 SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
294 SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
295 return 1;
296}
297
298public OnPlayerConnect(playerid)
299{
300 SetTimerEx("connect_player", 250, false, "i", playerid);
301 for(new i; i != 7; i++) TextDrawShowForPlayer(playerid, Logotype[i]);
302 return 1;
303}
304
305public OnPlayerDisconnect(playerid, reason)
306{
307 player_save(playerid);
308 return 1;
309}
310
311public OnPlayerSpawn(playerid)
312{
313 player_spawn(playerid);
314 return true;
315}
316
317public OnPlayerDeath(playerid, killerid, reason)
318{
319 return 1;
320}
321
322public OnVehicleSpawn(vehicleid)
323{
324 return 1;
325}
326
327public OnVehicleDeath(vehicleid, killerid)
328{
329 return 1;
330}
331
332public OnPlayerText(playerid, text[])
333{
334 FloodChat
335 flood_chat[playerid] = gettime() + 1;
336 {
337 if(Login[playerid] == false)
338 {
339 SCM(playerid, COLOR_LIGHTRED, "Вы не авторизованы");
340 return 0;
341 }
342 new string[128];
343 if(!strcmp(text, ")", true))
344 {
345 format(string, sizeof(string), "%s улыбаетÑÑ", PlayerName(playerid));
346 ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
347 SetPlayerChatBubble(playerid, "улыбаетÑÑ", COLOR_YELLOW, 30.0, 10000);
348 return 0;
349 }
350 if(!strcmp(text, "))", true))
351 {
352 format(string, sizeof(string), "%s поÑмеиваетÑÑ", PlayerName(playerid));
353 ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
354 SetPlayerChatBubble(playerid, "поÑмеиваетÑÑ", COLOR_YELLOW, 30.0, 10000);
355 return 0;
356 }
357 if(!strcmp(text, "(", true))
358 {
359 format(string, sizeof(string), "%s груÑтит", PlayerName(playerid));
360 ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
361 SetPlayerChatBubble(playerid, "груÑтит", COLOR_YELLOW, 30.0, 10000);
362 return 0;
363 }
364 if(!strcmp(text, "((", true))
365 {
366 format(string, sizeof(string), "%s раÑÑтроилÑÑ", PlayerName(playerid));
367 ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
368 SetPlayerChatBubble(playerid, "раÑÑтроилÑÑ", COLOR_YELLOW, 30.0, 10000);
369 return 0;
370 }
371 if(!strcmp(text, "=0", true))
372 {
373 format(string, sizeof(string), "%s удивилÑÑ", PlayerName(playerid));
374 ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
375 SetPlayerChatBubble(playerid, "удивилÑÑ", COLOR_YELLOW, 30.0, 10000);
376 return 0;
377 }
378 if(!strcmp(text, "xD", true))
379 {
380 format(string, sizeof(string), "%s ÑмеетÑÑ", PlayerName(playerid));
381 ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
382 SetPlayerChatBubble(playerid, "ÑмеетÑÑ", COLOR_YELLOW, 30.0, 10000);
383 return 0;
384 }
385 if(!strcmp(text, "xDD", true))
386 {
387 format(string, sizeof(string), "%s валÑетÑÑ Ð¾Ñ‚ Ñмеха", PlayerName(playerid));
388 ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
389 SetPlayerChatBubble(playerid, "валÑетÑÑ Ð¾Ñ‚ Ñмеха", COLOR_YELLOW, 30.0, 10000);
390 return 0;
391 }
392 if(!strcmp(text, ":D", true))
393 {
394 format(string, sizeof(string), "%s хохочет во веÑÑŒ голоÑ", PlayerName(playerid));
395 ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
396 SetPlayerChatBubble(playerid, "хохочет во веÑÑŒ голоÑ", COLOR_YELLOW, 30.0, 10000);
397 return 0;
398 }
399 if(!strcmp(text, ";)", true))
400 {
401 format(string, sizeof(string), "%s подмигнул", PlayerName(playerid));
402 ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
403 SetPlayerChatBubble(playerid, "подмигнул", COLOR_YELLOW, 30.0, 10000);
404 return 0;
405 }
406 if(!strcmp(text, ":(", true))
407 {
408 format(string, sizeof(string), "%s нахмурилÑÑ", PlayerName(playerid));
409 ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
410 SetPlayerChatBubble(playerid, "нахмурилÑÑ", COLOR_YELLOW, 30.0, 10000);
411 return 0;
412 }
413 if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
414 {
415 if(GetPVarInt(playerid, "mineanim") == 1) return 1;
416 ApplyAnimation(playerid, "PED", "IDLE_chat", 4.1, 0, 1, 1, 1, 1);
417 SetTimerEx("animchat", 3200, 0, "i", playerid);
418 }
419 format(string, sizeof(string), "- %s[%d] говорит: %s", PlayerName(playerid), playerid, text);
420 ProxDetector(30.0, playerid, string, 0xFFFFFFFF, 0xFFFFFFFF, 0xF5F5F5FF, 0xE6E6E6FF,0xB8B8B8FF);
421 SetPlayerChatBubble(playerid, text, 0x6495EDFF, 30.0, 10000);
422 }
423 return 0;
424}
425
426public OnPlayerCommandReceived(playerid, cmdtext[])
427{
428 if(Login[playerid] == false)
429 {
430 SCM(playerid, COLOR_LIGHTRED, "Вы не авторизированы!");
431 return 0;
432 }
433 return 1;
434}
435
436public OnPlayerCommandText(playerid, cmdtext[])
437{
438 if (strcmp("/mycommand", cmdtext, true, 10) == 0)
439 {
440 return 1;
441 }
442 return 0;
443}
444
445public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
446{
447 return 1;
448}
449
450public OnPlayerExitVehicle(playerid, vehicleid)
451{
452 return 1;
453}
454
455public OnPlayerStateChange(playerid, newstate, oldstate)
456{
457 return 1;
458}
459
460public OnPlayerEnterCheckpoint(playerid)
461{
462 return 1;
463}
464
465public OnPlayerLeaveCheckpoint(playerid)
466{
467 return 1;
468}
469
470public OnPlayerEnterRaceCheckpoint(playerid)
471{
472 return 1;
473}
474
475public OnPlayerLeaveRaceCheckpoint(playerid)
476{
477 return 1;
478}
479
480public OnRconCommand(cmd[])
481{
482 return 1;
483}
484
485public OnPlayerRequestSpawn(playerid)
486{
487 return 0;
488}
489
490public OnObjectMoved(objectid)
491{
492 return 1;
493}
494
495public OnPlayerObjectMoved(playerid, objectid)
496{
497 return 1;
498}
499
500public OnPlayerPickUpPickup(playerid, pickupid)
501{
502 FloodPickup
503 flood_pickup[playerid] = gettime() + 2;
504 if(pickupid == loaderspick)
505 {
506 if(loaderworkers[playerid] == 0)
507 {
508 SPD(playerid, 30, DSM, "УÑтройÑтво на работу грузчика", "Ð’Ñ‹ точно хотите уÑтроитьÑÑ Ð½Ð° работу грузчика?", "Да", "Ðет");
509 }
510 else
511 {
512 SPD(playerid, 31, DSM, "УÑтройÑтво на работу грузчика", "Ð’Ñ‹ точно хотите уволитьÑÑ Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ грузчика?", "Да", "Ðет");
513 }
514 }
515 return 1;
516}
517
518public OnVehicleMod(playerid, vehicleid, componentid)
519{
520 return 1;
521}
522
523public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
524{
525 return 1;
526}
527
528public OnVehicleRespray(playerid, vehicleid, color1, color2)
529{
530 return 1;
531}
532
533public OnPlayerSelectedMenuRow(playerid, row)
534{
535 return 1;
536}
537
538public OnPlayerExitedMenu(playerid)
539{
540 return 1;
541}
542
543public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
544{
545 return 1;
546}
547
548public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
549{
550 return 1;
551}
552
553public OnRconLoginAttempt(ip[], password[], success)
554{
555 return 1;
556}
557
558public OnPlayerUpdate(playerid)
559{
560 return 1;
561}
562
563public OnPlayerStreamIn(playerid, forplayerid)
564{
565 return 1;
566}
567
568public OnPlayerStreamOut(playerid, forplayerid)
569{
570 return 1;
571}
572
573public OnVehicleStreamIn(vehicleid, forplayerid)
574{
575 return 1;
576}
577
578public OnVehicleStreamOut(vehicleid, forplayerid)
579{
580 return 1;
581}
582
583/*
584{617ABA} Ñиний
585{919191} Ñерый
586{AA3333} краÑный
587{9E9E9E} заголовок
588*/
589
590public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
591{
592 switch(dialogid)
593 {
594 case 1:
595 {
596 if(response)
597 {
598 if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 15 )
599 {
600 static const fmt_str[] = "{919191}Добро пожаловать на {617ABA}StarLight Role Play!\n{919191}Ðккаунт {617ABA}%s{919191} не зарегиÑтрирован\n\nÐ”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° игры пройдите региÑтрацию\nПридумайте пароль Ð´Ð»Ñ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð°\n\n\t{617ABA}ПодÑказка:\n\t{AA3333}-Длина Ð¿Ð°Ñ€Ð¾Ð»Ñ - от 6 до 15 Ñимволов\n\t{919191}-ИÑпользуйте латиницу и цифры\n\t-РегиÑтр букв учитываетÑÑ";
601 new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
602 format(string, sizeof(string), fmt_str, PlayerName(playerid));
603 return SPD(playerid, 1, DSI, "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ перÑонажа", string, "Далее", "Выход");
604 }
605 for(new i = strlen(inputtext); i != -1; --i)
606 switch(inputtext[i])
607 {
608 case 'Ð'..'Я', 'а'..'Ñ', ' ':
609 {
610 static const fmt_str[] = "{919191}Добро пожаловать на {617ABA}StarLight Role Play!\n{919191}Ðккаунт {617ABA}%s{919191} не зарегиÑтрирован\n\nÐ”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° игры пройдите региÑтрацию\nПридумайте пароль Ð´Ð»Ñ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð°\n\n\t{617ABA}ПодÑказка:\n\t{919191}-Длина Ð¿Ð°Ñ€Ð¾Ð»Ñ - от 6 до 15 Ñимволов\n\t{AA3333}-ИÑпользуйте латиницу и цифры\n\t{919191}-РегиÑтр букв учитываетÑÑ";
611 new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
612 format(string, sizeof(string), fmt_str, PlayerName(playerid));
613 return SPD(playerid, 1, DSI, "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ перÑонажа", string, "Далее", "Выход");
614 }
615 }
616 new query[128];
617 mysql_format(db_connect, query, sizeof(query), "INSERT INTO `accounts` (`pName`, `pPass`) VALUES ('%s', '%s')", PlayerName(playerid), inputtext);
618 mysql_tquery(db_connect, query, "", "", playerid, 0);
619 static const fmt_rls[] = "{919191}Ðе желаете ли ознакомитьÑÑ Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ð¼Ð¸ Ñервера?";
620 new rules[sizeof(fmt_rls)];
621 format(rules, sizeof(rules), fmt_rls);
622 SPD(playerid, 11, DSM, "Правила Ñервера", rules, "Да", "Ðет");
623 }
624 else kick_dialog(playerid);
625 }
626 case 2:
627 {
628 if(response)
629 {
630 if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 15 )
631 {
632 static const fmt_str[] = "{919191}Добро пожаловать на {617ABA}StarLight Role Play!\n{919191}Ðккаунт {617ABA}%s{919191} зарегиÑтрирован в базе данных\n\nÐ”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в игру введите пароль\nТот Ñамый, который вы вводили при региÑтрации\n\n\t{617ABA}ПодÑказка:\n\t{AA3333}-Длина Ð¿Ð°Ñ€Ð¾Ð»Ñ - от 6 до 15 Ñимволов\n\t{919191}-ИÑпользуйте латиницу и цифры\n\t-РегиÑтр букв учитываетÑÑ";
633 new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
634 format(string, sizeof(string), fmt_str, PlayerName(playerid));
635 return SPD(playerid, 2, DSP, "ÐвторизациÑ", string, "Далее", "Выход");
636 }
637 for(new i = strlen(inputtext); i != -1; --i)
638 switch(inputtext[i])
639 {
640 case 'Ð'..'Я', 'а'..'Ñ', ' ':
641 {
642 static const fmt_str[] = "{919191}Добро пожаловать на {617ABA}StarLight Role Play!\n{919191}Ðккаунт {617ABA}%s{919191} зарегиÑтрирован в базе данных\n\nÐ”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в игру введите пароль\nТот Ñамый, который вы вводили при региÑтрации\n\n\t{617ABA}ПодÑказка:\n\t{919191}-Длина Ð¿Ð°Ñ€Ð¾Ð»Ñ - от 6 до 15 Ñимволов\n\t{AA3333}-ИÑпользуйте латиницу и цифры\n\t{919191}-РегиÑтр букв учитываетÑÑ";
643 new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
644 format(string, sizeof(string), fmt_str, PlayerName(playerid));
645 return SPD(playerid, 2, DSP, "ÐвторизациÑ", string, "Далее", "Выход");
646 }
647 }
648 new query[128];
649 mysql_format(db_connect, query, sizeof(query), "SELECT * FROM `accounts` WHERE `pName` = '%s' AND `pPass` = '%s' LIMIT 1", PlayerName(playerid), inputtext);
650 mysql_tquery(db_connect, query, "check_login", "ii", playerid, 0);
651 }
652 else KickRak(playerid);
653 }
654 case 3:
655 {
656 if(response)
657 {
658 for(new i = strlen(inputtext); i != 0; --i)
659 switch(inputtext[i])
660 {
661 case 'Ð'..'Я', 'а'..'Ñ', '=', ' ':
662 {
663 static const fmt_str[] = "{919191}Чтобы перейти к Ñледующему шагу региÑтрации, Вам нужно ввеÑти Ñвой E-mail\nПри подтвержденном E-mail Ð’Ñ‹ Ñможете воÑÑтановить Ñвой аккаунт в Ñлучае взлома\n\n\t{33CCFF}ПодÑказка:\n\t{919191}-ИÑпользуйте ÑервиÑÑ‹ @gmail.ru, @yandex.ru или @mail.ru\n\t{AA3333}-ИÑпользуйте латиницу, цифры и 'Ñобаку'\n\t{919191}-ÐžÐ¿Ñ‚Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° - до 40 Ñимволов";
664 new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
665 format(string, sizeof(string), fmt_str, PlayerName(playerid));
666 return SPD(playerid, 3, DSI, "Подтверждение E-mail", string, "Далее", "Выход");
667 }
668 }
669 new sabaka;
670 for(new i = strlen(inputtext); i != 0; --i)
671 {
672 switch(inputtext[i])
673 {
674 case '@': sabaka++;
675 }
676 }
677 if(strlen(inputtext) < 5 || strlen(inputtext) > 40)
678 {
679 static const fmt_str[] = "{919191}Чтобы перейти к Ñледующему шагу региÑтрации, Вам нужно ввеÑти Ñвой E-mail\nПри подтвержденном E-mail Ð’Ñ‹ Ñможете воÑÑтановить Ñвой аккаунт в Ñлучае взлома\n\n\t{617ABA}ПодÑказка:\n\t{919191}-ИÑпользуйте ÑервиÑÑ‹ @gmail.ru, @yandex.ru или @mail.ru\n\t-ИÑпользуйте латиницу, цифры и 'Ñобаку'\n\t{AA3333}-ÐžÐ¿Ñ‚Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° - до 40 Ñимволов";
680 new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
681 format(string, sizeof(string), fmt_str, PlayerName(playerid));
682 return SPD(playerid, 3, DSI, "Подтверждение E-mail", string, "Далее", "Выход");
683 }
684 if(sabaka == 0)
685 {
686 static const fmt_str[] = "{919191}Чтобы перейти к Ñледующему шагу региÑтрации, Вам нужно ввеÑти Ñвой E-mail\nПри подтвержденном E-mail Ð’Ñ‹ Ñможете воÑÑтановить Ñвой аккаунт в Ñлучае взлома\n\n\t{617ABA}ПодÑказка:\n\t{919191}-ИÑпользуйте ÑервиÑÑ‹ @gmail.ru, @yandex.ru или @mail.ru\n\t{AA3333}-ИÑпользуйте латиницу, цифры и 'Ñобаку'\n\t{919191}-ÐžÐ¿Ñ‚Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° - до 40 Ñимволов";
687 new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
688 format(string, sizeof(string), fmt_str, PlayerName(playerid));
689 return SPD(playerid, 3, DSI, "Подтверждение E-mail", string, "Далее", "Выход");
690 }
691 strmid(PlayerInfo[playerid][pMail], inputtext, 0, strlen(inputtext), 40);
692 enter_refer(playerid);
693 }
694 else kick_dialog(playerid);
695 }
696 case 4:
697 {
698 if(response)
699 {
700 strmid(PlayerInfo[playerid][pRefer], inputtext, 0, strlen(inputtext), 32);
701 enter_sex(playerid);
702
703 }
704 else enter_email(playerid);
705 }
706 case 5:
707 {
708 if(response)
709 {
710 PlayerInfo[playerid][pSex] = 1;
711 }
712 else
713 {
714 PlayerInfo[playerid][pSex] = 2;
715 }
716 enter_spawn(playerid);
717 }
718 case 6:
719 {
720 if(response)
721 {
722 switch(listitem)
723 {
724 case 0: set_spawn_lv(playerid);
725 case 1: set_spawn_sf(playerid);
726 case 2: set_spawn_ls(playerid);
727 case 3: set_spawn_bg(playerid);
728 }
729 enter_skin(playerid);
730 }
731 else enter_sex(playerid);
732 }
733
734 case 7:
735 {
736 new string[1330];
737 format(string, sizeof(string),"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
738 Rules3[0], Rules3[1], Rules3[2], Rules3[3], Rules3[4],
739 Rules5[0], Rules5[1], Rules5[2], Rules5[3],
740 Rules6[0], Rules6[1], Rules6[2], Rules6[3],
741 Rules7[0], Rules7[1], Rules7[2], Rules7[3]);
742 return SPD(playerid, 8, DSM, "Правила Сервера", string, "Далее", "");
743 }
744
745 case 8:
746 {
747 new string[1600];
748 format(string, sizeof(string), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
749 Rules4[0], Rules4[1], Rules4[2], Rules4[3], Rules4[4], Rules4[5], Rules4[6], Rules4[7], Rules4[8], Rules4[9], Rules4[10],
750 Rules4[11], Rules4[12], Rules4[13], Rules4[14], Rules4[15], Rules4[16], Rules4[17], Rules4[18], Rules4[19], Rules4[20],
751 Rules4[21], Rules4[22], Rules4[23]);
752 return SPD(playerid, 9, DSM, "Правила Сервера", string, "Далее", "");
753 }
754
755 case 9:
756 {
757 new string[1600];
758 format(string, sizeof(string), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
759 Rules8[0], Rules8[1], Rules8[2], Rules8[3], Rules8[4], Rules8[5], Rules8[6], Rules8[7], Rules8[8], Rules8[9], Rules8[10],
760 Rules8[11], Rules8[12], Rules8[13], Rules8[14], Rules8[15], Rules8[16], Rules8[17], Rules8[18], Rules8[19], Rules8[20],
761 Rules8[21], Rules8[22], Rules8[23], Rules8[24], Rules8[25], Rules8[26]);
762 SPD(playerid, 10, DSM, "Правила Ñервера", string, "ПринÑть","");
763 }
764
765 case 10:
766 {
767 show_login(playerid);
768 }
769
770 case 11:
771 {
772 if(response) show_rules(playerid);
773 else show_login(playerid);
774 }
775
776 case 20:
777 {
778 if(response)
779 {
780 switch(listitem)
781 {
782 case 0: show_statistics(playerid);
783 }
784 }
785 }
786 case 30:
787 {
788 if(response)
789 {
790 loaderworkers[playerid] = 1;
791 SCM(playerid, COLOR_WHITE, "Ð’Ñ‹ уÑпешно уÑтроилиÑÑŒ на работу грузчика\nОтправлÑйтеÑÑŒ за мешками, меÑто обозначено на карте!");
792 SetPlayerSkin(playerid, 260);
793 }
794 else return true;
795 }
796 case 31:
797 {
798 if(response)
799 {
800 loaderworkers[playerid] = 0;
801 SCM(playerid, COLOR_WHITE, "Ð’Ñ‹ уÑпешно уволилиÑÑŒ Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ грузчика!");
802 SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
803 }
804 else return true;
805 }
806 }
807 return 1;
808}
809
810public OnPlayerClickPlayer(playerid, clickedplayerid, source)
811{
812 return 1;
813}
814
815// ========================= [ Cтоки ] =========================
816
817stock PlayerName(playerid)
818{
819 new PlName[MAX_PLAYER_NAME];
820 GetPlayerName(playerid, PlName, sizeof(PlName));
821 return PlName;
822}
823
824stock show_login(playerid)
825{
826 static const fmt_str[] = "{919191}Добро пожаловать на {617ABA}StarLight Role Play!\n{919191}Ðккаунт {617ABA}%s{919191} зарегиÑтрирован в базе данных\n\nÐ”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в игру введите пароль\nТот Ñамый, который вы вводили при региÑтрации\n\n\t{617ABA}ПодÑказка:\n\t{919191}-Длина Ð¿Ð°Ñ€Ð¾Ð»Ñ - от 6 до 15 Ñимволов\n\t-ИÑпользуйте латиницу и цифры\n\t-РегиÑтр букв учитываетÑÑ";
827 new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
828 format(string, sizeof(string), fmt_str, PlayerName(playerid));
829 SPD(playerid, 2, DSP, "ÐвторизациÑ", string, "Далее", "Выход");
830 return true;
831}
832
833stock show_registration(playerid)
834{
835 static const fmt_str[] = "{919191}Добро пожаловать на {617ABA}StarLight Role Play!\n{919191}Ðккаунт {617ABA}%s{919191} не зарегиÑтрирован\n\nÐ”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° игры пройдите региÑтрацию\nПридумайте пароль Ð´Ð»Ñ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð°\n\n\t{617ABA}ПодÑказка:\n\t{919191}-Длина Ð¿Ð°Ñ€Ð¾Ð»Ñ - от 6 до 15 Ñимволов\n\t-ИÑпользуйте латиницу и цифры\n\t-РегиÑтр букв учитываетÑÑ";
836 new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
837 format(string, sizeof(string), fmt_str, PlayerName(playerid));
838 SPD(playerid, 1, DSI, "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ перÑонажа", string, "Далее", "Выход");
839 return true;
840}
841
842stock kick_dialog(playerid)
843{
844 SCM(playerid, COLOR_RED, "Ð”Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð° введите /q(uit)");
845 KickRak(playerid);
846}
847
848stock player_load(playerid)
849{
850 Login[playerid] = true;
851 cache_get_value_name_int(0, "pID", PlayerInfo[playerid][pID]);
852 cache_get_value_name(0, "pName", PlayerInfo[playerid][pName], 64);
853 cache_get_value_name(0, "pPass", PlayerInfo[playerid][pPass], 64);
854 cache_get_value_name(0, "pMail", PlayerInfo[playerid][pMail], 64);
855 cache_get_value_name_int(0, "pReg", PlayerInfo[playerid][pReg]);
856 cache_get_value_name(0, "pRegDate", PlayerInfo[playerid][pRegDate], 64);
857 cache_get_value_name(0, "pRegIp", PlayerInfo[playerid][pRegIp], 64);
858 cache_get_value_name_int(0, "pSex", PlayerInfo[playerid][pSex]);
859 cache_get_value_name_int(0, "pSkin", PlayerInfo[playerid][pSkin]);
860 cache_get_value_name_int(0, "pSpawn", PlayerInfo[playerid][pSpawn]);
861 cache_get_value_name(0, "pRefer", PlayerInfo[playerid][pRefer], 64);
862 cache_get_value_name_int(0, "pLevel", PlayerInfo[playerid][pLevel]);
863 cache_get_value_name_int(0, "pExp", PlayerInfo[playerid][pExp]);
864 cache_get_value_name(0, "pLastIp", PlayerInfo[playerid][pLastIp], 64);
865 cache_get_value_name(0, "pLastDate", PlayerInfo[playerid][pLastDate], 64);
866 cache_get_value_name_int(0, "pMoney", PlayerInfo[playerid][pMoney]);
867 cache_get_value_name_int(0, "pJob", PlayerInfo[playerid][pJob]);
868 SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
869 GetPlayerIp(playerid, PlayerInfo[playerid][pIp], 16);
870 GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
871 PlayerInfo[playerid][pExpUp] = PlayerInfo[playerid][pLevel]*4;
872 SpawnPlayer(playerid);
873 return true;
874}
875
876stock enter_refer(playerid)
877{
878 SPD(playerid, 4, DSI, "Ð ÐµÑ„ÐµÑ€Ð°Ð»ÑŒÐ½Ð°Ñ ÑиÑтема", "{919191}Ð’ окошко ниже вы Ñможете ввеÑти ник игрока, приглаÑившего Ð’Ð°Ñ Ð½Ð° Ñервер\nПри получении Вами 5 уровнÑ, данный игрок получит бонуÑ\nÐ’Ñ‹ можете пропуÑтить данный пункт, еÑли такого игрока нет", "Далее", "Ðазад");
879 return true;
880}
881
882stock enter_email(playerid)
883{
884 static const fmt_str[] = "{919191}Чтобы перейти к Ñледующему шагу региÑтрации, Вам нужно ввеÑти Ñвой E-mail\nПри подтвержденном E-mail Ð’Ñ‹ Ñможете воÑÑтановить Ñвой аккаунт в Ñлучае взлома\n\n\t{617ABA}ПодÑказка:\n\t{919191}-ИÑпользуйте ÑервиÑÑ‹ @gmail.ru, @yandex.ru или @mail.ru\n\t-ИÑпользуйте латиницу, цифры и 'Ñобаку'\n\t-ÐžÐ¿Ñ‚Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° - до 40 Ñимволов";
885 new string[sizeof(fmt_str) + MAX_PLAYER_NAME];
886 format(string, sizeof(string), fmt_str, PlayerName(playerid));
887 SPD(playerid, 3, DSI, "Подтверждение E-mail", string, "{9E9E9E}Далее", "{9E9E9E}Выход");
888}
889
890stock enter_sex(playerid)
891{
892 SPD(playerid, 5, DSM, "Выбор пола", "{919191}Выберете пол Вашего перÑонажа", "{9E9E9E}МужÑкой", "{9E9E9E}ЖенÑкий");
893}
894
895stock enter_spawn(playerid)
896{
897 SPD(playerid, 6, DSL, "Выбор меÑта поÑвлениÑ", "{919191}Ð’Ñ‹ прилетели в ЛаÑ-ВентураÑ\n{919191}Ð’Ñ‹ приплыли в Сан-Фиерро\n{919191}Ð’Ñ‹ приехали в ЛоÑ-СантоÑ\n{919191}Ð’Ñ‹ где-то проÑнулиÑÑŒ бомжом", "Далее", "Ðазад");
898}
899
900stock set_spawn_lv(playerid)
901{
902 PlayerInfo[playerid][pSpawn] = 1;
903}
904
905stock set_spawn_sf(playerid)
906{
907 PlayerInfo[playerid][pSpawn] = 2;
908}
909
910stock set_spawn_ls(playerid)
911{
912 PlayerInfo[playerid][pSpawn] = 3;
913}
914
915stock set_spawn_bg(playerid)
916{
917 PlayerInfo[playerid][pSpawn] = 4;
918}
919
920stock enter_skin(playerid)
921{
922 if(PlayerInfo[playerid][pSpawn] != 4 )
923 {
924 if(PlayerInfo[playerid][pSex] == 1)
925 {
926 new RandomSkin = random(sizeof(RegMaleSkins));
927 PlayerInfo[playerid][pSkin] = RegMaleSkins[RandomSkin];
928 }
929 else
930 {
931 new RandomSkin = random(sizeof(RegFemaleSkins));
932 PlayerInfo[playerid][pSkin] = RegFemaleSkins[RandomSkin];
933 }
934 }
935 if(PlayerInfo[playerid][pSpawn] == 4)
936 {
937 if(PlayerInfo[playerid][pSex] == 1)
938 {
939 new RandomSkin = random(sizeof(RegMaleBomjSkins));
940 PlayerInfo[playerid][pSkin] = RegMaleBomjSkins[RandomSkin];
941 }
942 else
943 {
944 new RandomSkin = random(sizeof(RegFemaleBomjSkins));
945 PlayerInfo[playerid][pSkin] = RegFemaleBomjSkins[RandomSkin];
946 }
947 }
948 save_registration(playerid);
949}
950
951stock SetPlayerPosEx(playerid, Float:x, Float:y, Float:z, Float:Angle, interior = 0, virtualworld = 0)
952{
953 SetPlayerInterior(playerid, interior);
954 SetPlayerPos(playerid, Float:x, Float:y, Float:z);
955 SetPlayerVirtualWorld(playerid, virtualworld);
956 SetPlayerFacingAngle(playerid, Float:Angle);
957 return true;
958}
959
960stock save_registration(playerid)
961{
962 cache_get_value_name_int(0, "pID", PlayerInfo[playerid][pID]);
963 new data[16];
964 new year, month, day;
965 getdate(year, month, day);
966 format(data, sizeof(data), "%02d.%02d.%d", day, month, year);
967 GetPlayerIp(playerid, PlayerInfo[playerid][pIp], 16);
968 new fmt_qry[] = "UPDATE `accounts` SET `pSkin` = '%d', `pSex` = '%d', `pMail` = '%s', `pRefer` = '%s', `pSpawn` = '%d', `pRegDate` = '%s', `pRegIp` = '%s', `pReg` = '1' WHERE `pName` = '%s' LIMIT 1";
969 new query[sizeof(fmt_qry) + 64 + 3 + 40 + 1 + 16 + 16 + 2];
970 mysql_format(db_connect, query, sizeof(query), fmt_qry, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pSex], PlayerInfo[playerid][pMail], PlayerInfo[playerid][pRefer], PlayerInfo[playerid][pSpawn], data, PlayerInfo[playerid][pIp], PlayerName(playerid));
971 mysql_pquery(db_connect, query);
972 set_player_data_to_default(playerid);
973 Login[playerid] = true;
974 SpawnPlayer(playerid);
975}
976
977stock player_spawn(playerid)
978{
979 SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
980 switch(PlayerInfo[playerid][pSpawn])
981 {
982 case 1:
983 {
984
985 SetPlayerPosEx(playerid, 1685.0583, 1447.9601, 10.7702, 269.4320, 0, 0);
986 }
987 case 2:
988 {
989 SetPlayerPosEx(playerid, -1502.4015, 920.0212, 7.1875, 89.5766, 0, 0);
990 }
991 case 3:
992 {
993 SetPlayerPosEx(playerid, 1742.6989, -1860.6411, 13.5785, 0.5889, 0, 0);
994 }
995 case 4:
996 {
997 SetPlayerPosEx(playerid, -88.4597, -1579.9426, 2.6172, 218.3821, 0, 0);
998 }
999 }
1000}
1001
1002stock ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
1003{
1004 if(IsPlayerConnected(playerid))
1005 {
1006 new Float:posx;new Float:posy;new Float:posz;new Float:oldposx;new Float:oldposy;new Float:oldposz;new Float:tempposx;new Float:tempposy;new Float:tempposz;
1007 GetPlayerPos(playerid, oldposx, oldposy, oldposz);
1008 foreach(new i: Player)
1009 {
1010 if(IsPlayerConnected(i))
1011 {
1012 if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
1013 {
1014 GetPlayerPos(i, posx, posy, posz);
1015 tempposx = (oldposx -posx);
1016 tempposy = (oldposy -posy);
1017 tempposz = (oldposz -posz);
1018 if(((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16))) SCM(i, col1, string);
1019 else if(((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8))) SCM(i, col2, string);
1020 else if(((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4))) SCM(i, col3, string);
1021 else if(((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2))) SCM(i, col4, string);
1022 else if(((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) SCM(i, col5, string);
1023 }
1024 }
1025 }
1026 }
1027 return 1;
1028}
1029
1030stock Timers()
1031{
1032 SetTimer("thirtysecondupdate", 30000, 1);
1033 SetTimer("minuteupdate", 60000, 1);
1034 SetTimer("secondupdate", 1000, 1);
1035 SetTimer("fivesecondupdate", 1000, 1);
1036 return 1;
1037}
1038
1039stock player_save(playerid)
1040{
1041 Login[playerid] = false;
1042 new year, month, day, hour, minute, second, data[32];
1043 getdate(year, month, day);
1044 gettime(hour, minute, second);
1045 format(data, sizeof(data), "%02d.%02d.%d %02d:%02d", day, month, year, hour, minute);
1046 new fmt_qry[] = "UPDATE `accounts` SET `pSkin` = '%d', `pMoney` = '%d', `pLevel` = '%d', `pExp` = '%d', `pLastIp` = '%s', `pLastDate` = '%s' WHERE `pName` = '%s' LIMIT 1";
1047 new query[sizeof(fmt_qry) + MAX_PLAYER_NAME + 64];
1048 mysql_format(db_connect, query, sizeof(query), fmt_qry, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pExp], PlayerInfo[playerid][pIp], data, PlayerName(playerid));
1049 mysql_pquery(db_connect, query);
1050 return true;
1051
1052}
1053
1054stock AntiMoney()
1055{
1056 foreach(new i: Player)
1057 {
1058 if(PlayerInfo[i][pMoney] != GetPlayerMoney(i))
1059 {
1060 ResetPlayerMoney(i);
1061 GivePlayerMoney(i, PlayerInfo[i][pMoney]);
1062 }
1063 }
1064}
1065
1066stock set_player_data_to_default(playerid)
1067{
1068 PlayerInfo[playerid][pLevel] = 1;
1069 PlayerInfo[playerid][pExp] = 0;
1070 PlayerInfo[playerid][pMoney] = 0;
1071 SetPlayerScore(playerid, 1);
1072 PlayerInfo[playerid][pExpUp] = PlayerInfo[playerid][pLevel]*4;
1073 return true;
1074}
1075
1076stock show_rules(playerid)
1077{
1078 new string[1400];
1079 format(string, sizeof(string), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
1080 Rules1[0], Rules1[1], Rules1[2], Rules1[3], Rules1[4], Rules1[5], Rules1[6], Rules1[7], Rules1[8], Rules1[9], Rules1[10],
1081 Rules2[0], Rules2[1], Rules2[2], Rules2[3], Rules2[4], Rules2[5], Rules2[6], Rules2[7], Rules2[8]);
1082 SPD(playerid, 7, DSM, "Правила Сервера", string, "Далее", "");
1083}
1084
1085stock show_statistics(playerid)
1086{
1087 new stext[8];
1088 switch(PlayerInfo[playerid][pSex])
1089 {
1090 case 1: stext = "МужÑкой";
1091 case 2: stext = "ЖенÑкий";
1092 }
1093 static const fmt_str[] =
1094 "\n\
1095 {919191}Ðомер аккаунта:{617ABA}\t\t%d\n\
1096 {919191}ИмÑ:{617ABA}\t\t\t\t%s\n\
1097 {919191}Уровень:{617ABA}\t\t\t%i\n\
1098 {919191}Опыт:{617ABA}\t\t\t\t%i|%i\n\
1099 {919191}Деньги:{617ABA}\t\t\t%i$\n\
1100 {919191}Пол:{617ABA}\t\t\t\t%s\n\
1101 {919191}ЧиÑло pJob:{617ABA}\t\t\t\t%d\n";
1102 new string[sizeof(fmt_str) + 10 + MAX_PLAYER_NAME + 3 + 10 + 10 + 8];
1103 format (string, sizeof(string), fmt_str, PlayerInfo[playerid][pID], PlayerName(playerid), PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pExp], PlayerInfo[playerid][pExpUp], GetPlayerMoney(playerid), stext, PlayerInfo[playerid][pJob]);
1104 SPD(playerid, 21, DSM, "СтатиÑтика перÑонажа", string, "Готово", "");
1105}
1106
1107stock payday(playerid)
1108{
1109 PlayerInfo[playerid][pExp]++;
1110 if(PlayerInfo[playerid][pExp] == PlayerInfo[playerid][pExpUp])
1111 {
1112 PlayerInfo[playerid][pExp] = 0;
1113 PlayerInfo[playerid][pLevel]++;
1114 PlayerInfo[playerid][pExpUp] = PlayerInfo[playerid][pLevel]*4;
1115 SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
1116 return true;
1117 }
1118 return true;
1119}
1120// ======================== [ ÐŸÐ°Ð±Ð»Ð¸ÐºÑ ] ========================
1121
1122publics connect_player(playerid)
1123{
1124 new query[128];
1125 SCM(playerid, COLOR_LIGHTBLUE, "Добро пожаловать на проект StarLight Role Play!");
1126 mysql_format(db_connect, query, sizeof(query), "SELECT `pID` FROM `accounts` WHERE `pName` = '%s' LIMIT 1", PlayerName(playerid));
1127 mysql_tquery(db_connect, query, "check_registration", "ii", playerid, 0);
1128 return true;
1129}
1130
1131publics check_registration(playerid)
1132{
1133 if(cache_num_rows() < 1 ) show_registration(playerid);
1134 else show_login(playerid);
1135 return true;
1136}
1137
1138publics kick(playerid)
1139{
1140 Kick(playerid);
1141 return true;
1142}
1143
1144publics check_login(playerid)
1145{
1146 if(cache_num_rows() < 1 )
1147 {
1148 new string[128];
1149 if(GetPVarInt(playerid, "wrong_pass") == 2)
1150 {
1151 SCM (playerid, COLOR_RED, "Ð’Ñ‹ были кикнуты Ñ Ñервера за неверный ввод паролÑ\nÐ”Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð° введите /q(uit)");
1152 KickRak(playerid);
1153 }
1154 SetPVarInt(playerid, "wrong_pass", GetPVarInt(playerid, "wrong_pass")+1);
1155 if(GetPVarInt(playerid, "wrong_pass") < 3)
1156 {
1157 format(string, sizeof(string), "Внимание! Ð’Ñ‹ ввели неправильный пароль.\nУ Ð²Ð°Ñ Ð¾ÑталоÑÑŒ %d попыток\nИначе вы будете кикнуты.", 3 - GetPVarInt(playerid, "wrong_pass"));
1158 SCM(playerid, COLOR_RED, string);
1159 show_login(playerid);
1160 }
1161 }
1162 else
1163 {
1164 cache_get_value_name_int(0, "pReg", PlayerInfo[playerid][pReg]);
1165 if(PlayerInfo[playerid][pReg] == 0)
1166 {
1167 enter_email(playerid);
1168 }
1169 else
1170 {
1171 player_load(playerid);
1172 }
1173 }
1174 return true;
1175}
1176
1177publics thirtysecondupdate()
1178{
1179 return 1;
1180}
1181
1182publics secondupdate()
1183{
1184 return 1;
1185}
1186
1187publics fivesecondupdate()
1188{
1189 AntiMoney();
1190 return 1;
1191}
1192
1193publics minuteupdate()
1194{
1195 return 1;
1196}
1197
1198
1199publics PickUps()
1200{
1201 loaderspick = CreatePickup(1275, 23, 2397.9182, -2508.3752, 13.6483, -1);
1202 return 1;
1203}
1204
1205publics ThreeDTexts()
1206{
1207 Create3DTextLabel( "УÑтройÑтво на работу грузчика", 0x008080FF, 2397.9182, -2508.3752, 13.6483 + 0.5, 10, 0 );
1208 return 1;
1209}
1210
1211publics LogoTextdraws()
1212{
1213 Logotype[0] = TextDrawCreate(577.666564, 26.853322, "V");
1214 TextDrawLetterSize(Logotype[0], -0.531332, -2.745599);
1215 TextDrawAlignment(Logotype[0], 1);
1216 TextDrawColor(Logotype[0], 995004415);
1217 TextDrawSetShadow(Logotype[0], 1);
1218 TextDrawSetOutline(Logotype[0], 0);
1219 TextDrawBackgroundColor(Logotype[0], 255);
1220 TextDrawFont(Logotype[0], 1);
1221 TextDrawSetProportional(Logotype[0], 1);
1222 TextDrawSetShadow(Logotype[0], 1);
1223
1224 Logotype[1] = TextDrawCreate(572.333312, 11.173354, "-");
1225 TextDrawLetterSize(Logotype[1], 2.049331, 1.558930);
1226 TextDrawAlignment(Logotype[1], 1);
1227 TextDrawColor(Logotype[1], 995004415);
1228 TextDrawSetShadow(Logotype[1], 1);
1229 TextDrawSetOutline(Logotype[1], 0);
1230 TextDrawBackgroundColor(Logotype[1], 255);
1231 TextDrawFont(Logotype[1], 1);
1232 TextDrawSetProportional(Logotype[1], 1);
1233 TextDrawSetShadow(Logotype[1], 1);
1234
1235 Logotype[2] = TextDrawCreate(544.999816, 11.173354, "-");
1236 TextDrawLetterSize(Logotype[2], 1.817000, 1.536530);
1237 TextDrawAlignment(Logotype[2], 1);
1238 TextDrawColor(Logotype[2], 995004415);
1239 TextDrawSetShadow(Logotype[2], 1);
1240 TextDrawSetOutline(Logotype[2], 0);
1241 TextDrawBackgroundColor(Logotype[2], 255);
1242 TextDrawFont(Logotype[2], 1);
1243 TextDrawSetProportional(Logotype[2], 1);
1244 TextDrawSetShadow(Logotype[2], 1);
1245
1246 Logotype[3] = TextDrawCreate(549.332580, 1.839949, "St");
1247 TextDrawLetterSize(Logotype[3], 0.515999, 2.189866);
1248 TextDrawAlignment(Logotype[3], 1);
1249 TextDrawColor(Logotype[3], 995004415);
1250 TextDrawSetShadow(Logotype[3], 1);
1251 TextDrawSetOutline(Logotype[3], 0);
1252 TextDrawBackgroundColor(Logotype[3], 255);
1253 TextDrawFont(Logotype[3], 1);
1254 TextDrawSetProportional(Logotype[3], 1);
1255 TextDrawSetShadow(Logotype[3], 1);
1256
1257 Logotype[4] = TextDrawCreate(577.332824, 1.466628, "rLight");
1258 TextDrawLetterSize(Logotype[4], 0.515999, 2.189866);
1259 TextDrawAlignment(Logotype[4], 1);
1260 TextDrawColor(Logotype[4], 995004415);
1261 TextDrawSetShadow(Logotype[4], 1);
1262 TextDrawSetOutline(Logotype[4], 0);
1263 TextDrawBackgroundColor(Logotype[4], 255);
1264 TextDrawFont(Logotype[4], 1);
1265 TextDrawSetProportional(Logotype[4], 1);
1266 TextDrawSetShadow(Logotype[4], 1);
1267
1268 Logotype[5] = TextDrawCreate(604.333374, 11.173354, "-");
1269 TextDrawLetterSize(Logotype[5], 1.855333, 1.547729);
1270 TextDrawAlignment(Logotype[5], 1);
1271 TextDrawColor(Logotype[5], 995004415);
1272 TextDrawSetShadow(Logotype[5], 1);
1273 TextDrawSetOutline(Logotype[5], 0);
1274 TextDrawBackgroundColor(Logotype[5], 255);
1275 TextDrawFont(Logotype[5], 1);
1276 TextDrawSetProportional(Logotype[5], 1);
1277 TextDrawSetShadow(Logotype[5], 1);
1278 return true;
1279}
1280
1281// ======================== [ Команды ] ========================
1282
1283CMD:spawnlv(playerid)
1284{
1285 SetPlayerPosEx(playerid, 1685.0583, 1447.9601, 10.7702, 269.4320, 0, 0);
1286 return true;
1287}
1288ALT:mainmenu:mm;
1289CMD:mainmenu(playerid, params[])
1290{
1291 static const fmt_str[] = "{919191}СтатиÑтика перÑонажа\n{919191}ÐаÑтройки перÑонажа";
1292 new string[sizeof(fmt_str)];
1293 format(string, sizeof(string), fmt_str);
1294 SPD(playerid, 20, DSL, "Главное меню", string, "Далее", "Выйти");
1295 return true;
1296}
1297// ============= [ RolePlay - Команды ] ==============
1298
1299ALT:shout:s;
1300CMD:shout(playerid, params[])
1301{
1302 FloodCMD
1303 if(sscanf(params, "s[100]", params[0])) return SCM(playerid, COLOR_WHITE, "ИÑпользуйте: (/s)hout [текÑÑ‚]");
1304 if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
1305 {
1306 if(GetPVarInt(playerid, "mineanim") == 1) return 1;
1307 ApplyAnimation(playerid, "ON_LOOKERS", "shout_in", 1000.0, 0, 0, 0, 0, 0, 1);
1308 }
1309 new string[128];
1310 format(string, sizeof(string), "- %s[%d] кричит: %s!", PlayerName(playerid), playerid, params[0]);
1311 ProxDetector(30.0, playerid, string, 0xFFFFFFFF, 0xFFFFFFFF, 0xF5F5F5FF, 0xE6E6E6FF,0xB8B8B8FF);
1312 SetPlayerChatBubble(playerid, params[0], COLOR_YELLOW, 30.0, 10000);
1313 flood_cmd[playerid] = gettime() + 1;
1314 return 0;
1315}
1316
1317ALT:whisper:w;
1318CMD:whisper(playerid, params[])
1319{
1320 FloodCMD
1321 new string[128];
1322 if(sscanf(params, "s[100]", params[0])) return SCM(playerid, COLOR_WHITE, "ИÑпользуйте: (/w)hisper [текÑÑ‚]");
1323 format(string, sizeof(string), "- %s[%d] шепчет: %s", PlayerName(playerid), playerid, params[0]);
1324 ProxDetector(1.0, playerid, string, 0x6E6E6EAA, 0x6E6E6EAA, 0x6E6E6EAA, 0x6E6E6EAA, 0x6E6E6EAA);
1325 flood_cmd[playerid] = gettime() + 1;
1326 return 0;
1327}
1328
1329CMD:me(playerid, params[])
1330{
1331 FloodRPChat
1332 new string[128];
1333 if(sscanf(params,"s[100]",params[0])) return SCM(playerid, COLOR_WHITE, "ИÑпользуйте: /me [дейÑтвие]");
1334 format(string, sizeof(string), "%s[%d] %s", PlayerName(playerid), playerid, params[0]);
1335 ProxDetector(30.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
1336 SetPlayerChatBubble(playerid, params[0], 0xDD90FFFF, 30.0, 10000);
1337 flood_rpchat[playerid] = gettime() + 1;
1338 return true;
1339}
1340
1341CMD:do(playerid, params[])
1342{
1343 FloodRPChat
1344 new string[128];
1345 if(sscanf(params,"s[100]",params[0])) return SCM(playerid, COLOR_WHITE, "ИÑпользуйте: /do [дейÑтвие от 3-го лица]");
1346 format(string, sizeof(string), "(( %s[%d] )) {FF9900}%s", PlayerName(playerid), playerid, params[0]);
1347 ProxDetector(30.0, playerid, string, 0xFFFFFFAA, 0xFFFFFFAA, 0xFFFFFFAA, 0xFFFFFFAA, 0xFFFFFFAA);
1348 SetPlayerChatBubble(playerid, params[0], 0xFFFFFFAA, 30.0, 10000);
1349 flood_rpchat[playerid] = gettime() + 1;
1350 return true;
1351}
1352
1353CMD:try(playerid, params[])
1354{
1355 FloodRPChat
1356 new string[128], trying[32];
1357 if(sscanf(params,"s[100]",params[0])) return SCM(playerid, COLOR_WHITE, "ИÑпользуйте: /try [дейÑтвие]");
1358 new randomtry = random(2);
1359 if(randomtry == 0) trying = "{FF6600} [Ðеудачно]";
1360 else trying = "{63C600} [Удачно]";
1361 format(string, sizeof(string), "%s[%d] %s %s", PlayerName(playerid), playerid, params[0], trying);
1362 ProxDetector(30.0, playerid, string, 0xDD90FFAA, 0xDD90FFAA, 0xDD90FFAA, 0xDD90FFAA, 0xDD90FFAA);
1363 SetPlayerChatBubble(playerid, params[0], 0xDD90FFAA, 30.0, 10000);
1364 flood_rpchat[playerid] = gettime() + 1;
1365 return true;
1366}
1367
1368// =============== [ Ðдмин - Команды ] ===============
1369
1370CMD:sethp(playerid, params[])
1371{
1372 if(sscanf(params, "dd", params[0], params[1])) return SCM(playerid, COLOR_WHITE, "ИÑпользуйте: /sethp [id] [уровень здоровьÑ]");
1373 return SetPlayerHealth(params[0], params[1]);
1374}
1375
1376ALT:moderatormenu:mmenu;
1377CMD:moderatormenu(playerid, params[])
1378{
1379 static const fmt_str[] = "{919191}СпиÑок модераторов{617ABA}(1-6 lvl){919191}\n{919191}ПоÑтавить модератора\n{919191}ПовыÑить модератора\n{919191}Понизить модератора\n{919191}Выдать выговор модератору\n{919191}СнÑть модератора";
1380 new string[sizeof(fmt_str)];
1381 format(string, sizeof(string), fmt_str);
1382 SPD(playerid, 100, DSL, "Меню модераторов", string, "Далее", "Выйти");
1383 return true;
1384}
1385
1386ALT:supportmenu:smenu;
1387CMD:supportmenu(playerid, params[])
1388{
1389 static const fmt_str[] = "{919191}СпиÑок Ñаппортов\n{919191}ПоÑтавить Ñаппорта\n{919191}Выдать выговор Ñаппорту\n{919191}СнÑть Ñаппорта";
1390 new string[sizeof(fmt_str)];
1391 format(string, sizeof(string), fmt_str);
1392 SPD(playerid, 102, DSL, "Меню Ñаппортов", string, "Далее", "Выйти");
1393 return true;
1394}
1395
1396CMD:setmoney(playerid, params[])
1397{
1398 FloodCMD
1399 if(sscanf(params,"dd",params[0], params[1])) return SCM(playerid, COLOR_WHITE, "ИÑпользуйте: /setmoney [id] [Ñумма]");
1400 GivePlayerMoney(params[0], params[1]);
1401 return true;
1402}
1403
1404CMD:payday(playerid)
1405{
1406 FloodCMD
1407 payday(playerid);
1408 return true;
1409}