· 6 years ago · Apr 29, 2019, 02:20 PM
1#include <a_samp>
2#include <a_mysql>
3#include <streamer>
4#include <zcmd>
5#include <sscanf2>
6
7#define WORLD_LOGIN 5
8
9//kolorki cmd
10
11//CZAT GLOBLANY
12
13#define COLOR_RED 0xEC0029FF
14#define COLOR_LIGHT_GREY 0xC0C0C0FF
15#define COLOR_BLACK 0x000000FF
16#define COLOR_PINKY 0xFF80FFFF
17#define COLOR_YELLOW 0xFFFF00FF
18#define COLOR_ORANGE 0xFF8000FF
19//KOMENDA DO
20
21#define COLOR_PURPLE_DARK 0x8080C0FF
22#define COLOR_MORSKI 0x408080FF
23main(){}
24
25native WP_Hash(buffer[], len, const str[]);
26//Forwardy
27forward bool:IsStrValid(const string[]);
28
29//Ustawienia
30#define MONEY_MONEY_START 6500
31#define PRESSED(%O) \
32//Dialogi
33#define REGISTER1_DIALOG 0
34#define LOGIN_DIALOG 1
35#define REGISTER2_DIALOG 2
36#define REGISTER3_DIALOG 3
37
38//Definicje
39#define SKRYPT_NAME "Najlepszy Polski Serwer"
40#define SKRYPT_VER "V1.0.0"
41#define INFO_STRING "{008080}[INFO]{C0C0C0}: "
42#define ERROR_STRING "{FF0000}[BÅÄ„D]{800000}: "
43
44#define MAX_ENTRACES 100
45
46#define GENDER_MALE 0
47#define GENDER_FEMALE 1
48
49#define MAX_BRAMY 10
50new brama[MAX_BRAMY];
51new bool:OtwartaCzyZamknieta[MAX_BRAMY];
52
53 //textdrawy
54new Text:SkinSelector_Title;
55new Text:SkinSelector_Right;
56new Text:SkinSelector_Left;
57new Text:SkinSelector_Accept;
58new Text:pasekstanu;
59new Text:czas;
60new Text:data;
61new Text:skinnr;
62new Text:loginscreen;
63new Text:loginbutton;
64new Text:registerbutton;
65
66//eNUMY
67enum DataPlayer
68{
69 bool:LoggedIn,
70 bool:ShowMouse,
71 bool:IsFreezed,
72 bool:FirstSpawn,
73 Cache:Cache_ID,
74 UID,
75 Password[129],
76 Age,
77 Lvl,
78 Gender,
79 IDSkin,
80 Money,
81 AdminLV,
82 Float:LastPos[4],
83 Linterior,
84 LVW,
85 Float:HP,
86 Float:Armour,
87
88 //Wybierałka
89 SelectedIDSkin
90};
91
92new entranceindex;
93enum EntranceData
94{
95 bool:e_freeze,
96 Float:e_posx,
97 Float:e_posy,
98 Float:e_posz,
99 Float:e_rotation,
100 e_interior,
101 e_vw,
102 e_conid
103};
104new Entrance[MAX_ENTRACES][EntranceData];
105
106new Player[MAX_PLAYERS][DataPlayer];
107new MySQL:SQL_ID;
108 //Zmienne Globalne
109new Skins_Male[][] = {20001, 20002, 20003, 20004, 20009, 20010, 20011, 20012, 20013, 20014, 20015, 20017, 0, 1, 2, 3, 4, 5, 6, 7, 8, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 57, 58, 59, 60, 61, 62, 66, 67, 68, 70, 71, 72, 73, 74, 78, 79, 80, 81, 82, 83, 84, 86, 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, 132, 133, 134, 135, 136, 137, 142, 143, 144, 146, 147, 149, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 200, 202, 203, 204, 206, 208, 209, 210, 212, 213, 220, 221, 222, 223, 227, 228, 229, 230, 234, 235, 236, 239, 240, 241, 242, 247, 248, 249, 250, 252, 253, 254, 255, 258, 259, 260, 261, 262, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 299, 300, 301, 302, 303, 304, 305, 310, 311}; //Facety
110new Skins_Female[][] = { 20005, 20006, 20007,20008, 20016, 10, 11, 12, 13, 31, 38, 39, 40, 41, 53, 54, 55, 56, 63, 64, 65,69,75, 76, 77, 85, 87, 88, 89, 90, 91, 92, 93, 129, 130, 131,138, 139, 140, 141, 145, 148, 150, 151, 152, 157, 169, 172, 178, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 205, 207, 211, 214, 215, 216, 217, 218, 219, 224, 225, 226, 231, 232, 233, 237, 238, 243, 244, 245, 246, 251, 256, 257, 263, 298, 306, 307, 308, 309}; //Babsztyle
111
112public OnGameModeInit()
113{
114 UsePlayerPedAnims();
115 DestroyAllDynamicObjects();
116 printf("Gamemode %s %s ® by Kreto Wystartował", SKRYPT_NAME, SKRYPT_VER);
117 AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
118 if(MySQL_Init())
119 {
120 //Wczytywanie
121 MySQL_SetUpTables();
122 CreateGlobalTD();
123
124 //Timer
125 SetTimer("SecondUpdate", 1000, true);
126
127 //Ustawienia
128 DisableInteriorEnterExits();
129 EnableStuntBonusForAll(false);
130 SetGameModeText("Najlepszy Polski Serwer. Zapraszamy");
131
132 //mapicon
133
134 CreateDynamicMapIcon(2324.3040, -1135.8479, 1051.3047, 37, 0, 0, 0, -1, 500, MAPICON_GLOBAL, -1, 0);
135
136
137 //Wejścia/Wyjścia
138 ConnectEntrances(
139 CreateEntrance("UrzÄ…d Miasta w Los Santos", 1219.2979, -1812.3729, 16.5938, 177.8039, 0, 0, -1, 62, false),
140 CreateEntrance("Urząd Miasta w Los Santos - Wyjście", 384.80864,173.804992,1008.382812, 90.0, 3, 1, -1, -1, false));
141
142 ConnectEntrances(
143 CreateEntrance("UrzÄ…d Miasta w San Fierro", -2765.3870, 375.6902, 6.3359, 269.3221, 0, 0, -1, 61, false),
144 CreateEntrance("Urząd Miasta w San Fierro - Wyjście", 384.80864,173.804992,1008.382812, 90.0, 3, 2, -1, -1, false));
145
146 ConnectEntrances(
147 CreateEntrance("UrzÄ…d Miasta w Las Venturas", 2633.6101, 1823.1554, 11.0161, 80.6707, 0, 0,-1, 58, false),
148 CreateEntrance("Urząd Miasta w Las Venturas - Wyjście", 384.80864,173.804992,1008.382812, 90.0, 3, 3, -1, -1, false));
149
150 printf("Gamemode %s %s ® by Kreto działa\n", SKRYPT_NAME, SKRYPT_VER);
151 }
152 else
153 {
154 print("Brak połączenia z bazą danych.");
155 }
156 StworzBrame();
157 return 1;
158}
159
160public OnPlayerFinishedDownloading(playerid, virtualworld)
161{
162 if(GetPlayerVirtualWorld(playerid) == WORLD_LOGIN)
163 {
164 TextDrawShowForPlayer(playerid, loginscreen);
165 TextDrawShowForPlayer(playerid, loginbutton);
166 TextDrawShowForPlayer(playerid, registerbutton);
167 ClearPlayerChat(playerid);
168 SetSpawnInfo(playerid, NO_TEAM, 0, 1248.2993,-1563.6338,12.6017, 186.4331, 0, 0, 0, 0, 0, 0);
169 }
170 return 1;
171}
172
173public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
174{
175 if(newkeys & KEY_SECONDARY_ATTACK)
176 {
177 if(!IsPlayerInAnyVehicle(playerid))
178 {
179 if(Player[playerid][IsFreezed] == false)
180 {
181 new p_vw = GetPlayerVirtualWorld(playerid);
182 new p_int = GetPlayerInterior(playerid);
183 for(new i; i < entranceindex; i++)
184 {
185 if(IsPlayerInRangeOfPoint(playerid, 1.0, Entrance[i][e_posx],Entrance[i][e_posy],Entrance[i][e_posz]) && Entrance[i][e_interior] == p_int && Entrance[i][e_vw] == p_vw)
186 {
187 new conid = Entrance[i][e_conid];
188 SetPlayerPos(playerid, Entrance[conid][e_posx],Entrance[conid][e_posy], Entrance[conid][e_posz]);
189 SetPlayerFacingAngle(playerid, Entrance[conid][e_rotation]);
190 SetPlayerInterior(playerid, Entrance[conid][e_interior]);
191 SetPlayerVirtualWorld(playerid, Entrance[conid][e_vw]);
192 SetCameraBehindPlayer(playerid);
193 if(Entrance[conid][e_freeze])
194 FreezePlayer(playerid, 3000, "Wczytywanie");
195 break;
196 }
197 }
198 }
199 }
200
201 }
202 if(newkeys & KEY_YES)
203 {
204 for(new i; i < MAX_BRAMY; i++)
205 {
206 new Float:pos[3];
207 GetDynamicObjectPos(i, pos[0], pos[1], pos[2]);
208
209 if(IsPlayerInRangeOfPoint(playerid, 15.0, pos[0], pos[1], pos[2]))
210 {
211 if(!IsDynamicObjectMoving(i))
212 {
213 if(OtwartaCzyZamknieta[i] == true)
214 {
215 MoveDynamicObject(i, pos[0], pos[1], pos[2]+8.0, 6.0, -7.8, 2.9, 24.7);
216 GameTextForPlayer(playerid, "~y~brama ~w~closed", 3000, 6);
217 OtwartaCzyZamknieta[i] = false;
218 }
219 else
220 {
221 MoveDynamicObject(i, pos[0], pos[1], pos[2]-8.0, 6.0, -27.8, 2.9, 24.7);
222 GameTextForPlayer(playerid, "~p~brama ~g~open", 3000, 6);
223 OtwartaCzyZamknieta[i] = true;
224 }
225
226 }
227 break;
228 }
229 }
230 }
231 return 1;
232}
233
234
235
236public OnPlayerText(playerid, text[])
237{
238 new message[258];
239 format(message, sizeof message, "%s [%i] {FFFF00}mówi: {FFFFFF}%s", PlayerName(playerid), playerid, text);
240 SendClientMessageInRange(playerid, COLOR_ORANGE, 1550.0, message);
241 return 0;
242}
243
244public OnGameModeExit()
245{
246 mysql_close(SQL_ID);
247 UsunBramy();
248 return 1;
249}
250
251
252public OnPlayerRequestClass(playerid, classid)
253{
254 SpawnPlayer(playerid);
255 return 1;
256}
257
258public OnPlayerConnect(playerid)
259{
260 SetPlayerVirtualWorld(playerid, WORLD_LOGIN);
261 return 1;
262}
263
264public OnPlayerDisconnect(playerid, reason)
265{
266 new query[258];
267 if(Player[playerid][LoggedIn])
268 {
269 SaveAccount(playerid);
270 mysql_format(SQL_ID, query, sizeof query, "UPDATE players_accounts SET lastonline = NOW() WHERE uid = %i", Player[playerid][UID]);
271 mysql_tquery(SQL_ID, query);
272 }
273 ResetPlayerData(playerid);
274 return 1;
275}
276
277public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
278{
279 switch(dialogid)
280 {
281 case LOGIN_DIALOG: //Login playersa
282 {
283 if(response)
284 {
285 if(strlen(inputtext) && IsStrValid(inputtext))
286 {
287 new buff[129], query[258];
288 WP_Hash(buff, 129, inputtext);
289 if(strcmp(Player[playerid][Password], buff, true) == 0)
290 {
291 // Hasło poprawne
292 AssignPlayerData(playerid); // odczyt z bazy danych
293 Player[playerid][LoggedIn] = true;
294 Player[playerid][FirstSpawn] = true;
295 ResetPlayerMoney(playerid);
296 GivePlayerMoney(playerid, Player[playerid][Money]);
297 SetPlayerScore(playerid, Player[playerid][Lvl]);
298 SetSpawnInfo(playerid, NO_TEAM, Player[playerid][IDSkin], 1248.2993,-1563.6338,12.6017, 186.4331, 0, 0, 0, 0, 0, 0);
299 SetPlayerInterior(playerid, 12);
300 TogglePlayerControllable(playerid, 1);
301 SpawnPlayer(playerid);
302 ClearPlayerChat(playerid);
303 SendClientMessage(playerid, -1, INFO_STRING"Logowanie udane. Życzymy pomyślnej gry !");
304 new ip[18];
305 GetPlayerIp(playerid, ip, 18);
306 mysql_format(SQL_ID, query, sizeof query, "UPDATE players_accounts SET lastip = '%s', lastonline = NOW() WHERE uid = %i", ip, Player[playerid][UID]);
307 mysql_tquery(SQL_ID, query);
308 }
309 else
310 {
311 // hasło błędne
312 ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_PASSWORD, "Logowanie", "Znaleźliśmy rejestrację Twojego konta. \n\tPodaj hasło aby zagrać.", "Logowanie", "Opuść Serwer");
313 SendClientMessage(playerid, -1, ERROR_STRING"Hasło nieprawidłowe. Spróbuj ponownie!");
314 }
315 //nic nie wpisane
316 }
317 else
318 {
319 ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_PASSWORD, "Logowanie", "Znaleźliśmy rejestrację Twojego konta. \n\tPodaj hasło aby zagrać.", "Logowanie", "Opuść Serwer");
320 SendClientMessage(playerid, -1, ERROR_STRING"Nie wprowadzono hasła! Spróbuj ponownie!");
321 }
322 }
323 else KickEX(playerid);
324 }
325 case REGISTER3_DIALOG: // Rejestracja wiek
326 {
327 if(response)
328 {
329 if(IsNumeric(inputtext) && strlen(inputtext) == 2 && strval(inputtext) >= 13 && strval(inputtext) <= 30 )
330 {
331 Player[playerid][Age] = strval(inputtext);
332 Player[playerid][Age] = strval(inputtext);
333 SetPlayerPos(playerid, 2324.3662, -1148.7382, 1050.7101);
334 SetPlayerInterior(playerid, 12);
335 SetPlayerFacingAngle(playerid, 359.6589);
336 InterpolateCameraPos(playerid, 2324.4150, -1138.6611, 1051.4922, 2324.3513, -1144.7060, 1050.7031, 5000, CAMERA_CUT);
337 InterpolateCameraLookAt(playerid, 2324.3662, -1148.7382, 1050.7101, 2324.3513, -1144.7360, 1050.7031, 5000, CAMERA_CUT);
338 Player[playerid][SelectedIDSkin] = 0;
339 new sskin = Player[playerid][SelectedIDSkin];
340 if(Player[playerid][Gender] == GENDER_MALE)
341 {
342 SetPlayerSkin(playerid, Skins_Male[sskin][0]);
343 Player[playerid][IDSkin] = Skins_Male[sskin][0];
344 }
345 else
346 {
347 SetPlayerSkin(playerid, Skins_Female[sskin][0]);
348 Player[playerid][IDSkin] = Skins_Female[sskin][0];
349 }
350 TextDrawHideForPlayer(playerid, loginscreen);
351 TextDrawHideForPlayer(playerid, loginbutton);
352 TextDrawHideForPlayer(playerid, registerbutton);
353 TextDrawShowForPlayer(playerid, SkinSelector_Title);
354 TextDrawShowForPlayer(playerid, skinnr);
355 TextDrawShowForPlayer(playerid, SkinSelector_Accept);
356 TextDrawShowForPlayer(playerid, SkinSelector_Right);
357 TextDrawShowForPlayer(playerid, SkinSelector_Left);
358 }
359 else
360 {
361 ShowPlayerDialog(playerid, REGISTER3_DIALOG, DIALOG_STYLE_INPUT, "Rejestracja", "Podaj swój wiek", "Akceptuj", "Opuść Serwer");
362 SendClientMessage(playerid, -1, ERROR_STRING"Żeby zagrać musisz mieć 13-30 lat!");
363 }
364 }
365 else KickEX(playerid);
366 }
367 case REGISTER2_DIALOG: // Rejestracja wybór Gender
368 { TextDrawShowForPlayer(playerid, loginscreen);
369 TextDrawShowForPlayer(playerid, loginbutton);
370 TextDrawShowForPlayer(playerid, registerbutton);
371 Player[playerid][Gender] = response;
372 ShowPlayerDialog(playerid, REGISTER3_DIALOG, DIALOG_STYLE_INPUT, "Rejestracja", "Podaj swój wiek", "Akceptuj", "Opuść Serwer");
373 }
374 case REGISTER1_DIALOG: //zAKÅADNIE KONTA
375 {
376 if(response)
377 {
378 if(strlen(inputtext) >= 8 && IsStrValid(inputtext))
379 {
380 WP_Hash(Player[playerid][Password], 129, inputtext);
381 ShowPlayerDialog(playerid, REGISTER2_DIALOG, DIALOG_STYLE_MSGBOX, "Rejestracja", "Wybierz swoją przynależność sexualną.", "Kobieta", "Mężczyzna");
382 }
383 else
384 { TextDrawShowForPlayer(playerid, loginscreen);
385 TextDrawShowForPlayer(playerid, loginbutton);
386 TextDrawShowForPlayer(playerid, registerbutton);
387 ShowPlayerDialog(playerid, REGISTER1_DIALOG, DIALOG_STYLE_PASSWORD, "REJESTRACJA", "Aby zagrać na serwerze, prosimy stwórz konto. \n\tHasło proszę wpisać poniżej", "Akceptuj", "Anuluj");
388 SendClientMessage(playerid, -1, ERROR_STRING"Hasło powinno zawierać min. 8 zanków, nie może zawierać przerw ani znaków specjalnych!!");
389 }
390 }
391 else KickEX(playerid);
392 }
393 }
394 return 0;
395}
396
397public OnPlayerClickTextDraw(playerid, Text:clickedid)
398{
399 if(clickedid == loginbutton)
400 {
401 new ip[18], query[256];
402 GetPlayerIp(playerid, ip, 18);
403 mysql_format(SQL_ID, query, sizeof query, "SELECT * FROM players_accounts WHERE Login = '%s' LIMIT 1", PlayerName(playerid));
404 mysql_tquery(SQL_ID, query, "OnAccountCheck", "iss", playerid, ip, PlayerName(playerid));
405 }
406
407 if(clickedid == registerbutton)
408 {
409 new ip[18], query[256];
410 GetPlayerIp(playerid, ip, 18);
411 mysql_format(SQL_ID, query, sizeof query, "SELECT * FROM players_accounts WHERE Login = '%s' LIMIT 1", PlayerName(playerid));
412 mysql_tquery(SQL_ID, query, "OnAccountCheck", "iss", playerid, ip, PlayerName(playerid));
413 }
414
415 if(clickedid == SkinSelector_Right) //Wybor postaci nastepna postac
416 {
417 if(Player[playerid][Gender] == GENDER_MALE) //Mezczyzni
418 {
419 if(Player[playerid][SelectedIDSkin] == (sizeof Skins_Male - 1))
420 Player[playerid][SelectedIDSkin] = 0;
421 else
422 Player[playerid][SelectedIDSkin]++;
423 new sskin = Player[playerid][SelectedIDSkin];
424 SetPlayerSkin(playerid, Skins_Male[sskin][0]);
425 Player[playerid][IDSkin] = Skins_Male[sskin][0];
426 }
427 else //Kobiety
428 {
429 if(Player[playerid][SelectedIDSkin] == (sizeof Skins_Female - 1))
430 Player[playerid][SelectedIDSkin] = 0;
431 else
432 Player[playerid][SelectedIDSkin]++;
433 new sskin = Player[playerid][SelectedIDSkin];
434 SetPlayerSkin(playerid, Skins_Female[sskin][0]);
435 Player[playerid][IDSkin] = Skins_Female[sskin][0];
436 }
437 }
438 if(clickedid == SkinSelector_Left) //Wybor postaci poprzednia postac
439 {
440 if(Player[playerid][Gender] == GENDER_MALE) //Mezczyzni
441 {
442 if(Player[playerid][SelectedIDSkin] == 0)
443 Player[playerid][SelectedIDSkin] = (sizeof Skins_Male - 1);
444 else
445 Player[playerid][SelectedIDSkin]--;
446 new sskin = Player[playerid][SelectedIDSkin];
447 SetPlayerSkin(playerid, Skins_Male[sskin][0]);
448 Player[playerid][IDSkin] = Skins_Male[sskin][0];
449 }
450 else //Kobiety
451 {
452 if(Player[playerid][SelectedIDSkin] == 0)
453 Player[playerid][SelectedIDSkin] = (sizeof Skins_Female - 1);
454 else
455 Player[playerid][SelectedIDSkin]--;
456 new sskin = Player[playerid][SelectedIDSkin];
457 SetPlayerSkin(playerid, Skins_Female[sskin][0]);
458 Player[playerid][IDSkin] = Skins_Female[sskin][0];
459 }
460 }
461 if(clickedid == SkinSelector_Accept)
462 {
463 TextDrawHideForPlayer(playerid, SkinSelector_Title);
464 TextDrawHideForPlayer(playerid, skinnr);
465 TextDrawHideForPlayer(playerid, SkinSelector_Accept);
466 TextDrawHideForPlayer(playerid, SkinSelector_Right);
467 TextDrawHideForPlayer(playerid, SkinSelector_Left);
468 TextDrawHideForPlayer(playerid, loginscreen);
469 TextDrawHideForPlayer(playerid, loginbutton);
470 TextDrawHideForPlayer(playerid, registerbutton);
471 CreateAccount(playerid);
472 TogglePlayerSpectating(playerid, false);
473 SetCameraBehindPlayer(playerid);
474 TogglePlayerControllable(playerid, true);
475 }
476 return 1;
477}
478public OnPlayerUpdate(playerid)
479{
480
481 return 1;
482}
483public OnPlayerSpawn(playerid)
484{
485 if(Player[playerid][LoggedIn] == false)
486 {
487 // nie zalogowany
488 SetPlayerSkin(playerid, GetRandomSkin());
489 SetPlayerInterior(playerid, 12);
490 SetPlayerPos(playerid, 2324.3040, -1135.8479, 1051.3047);
491 SetPlayerFacingAngle(playerid, 180.2658);
492 SetPlayerVirtualWorld(playerid, 50 + playerid);
493 SetPlayerCameraPos(playerid, 2324.5247, -1138.4045, 1050.4990);
494 SetPlayerCameraLookAt(playerid, 2324.3040, -1135.8479, 1051.3047);
495 TogglePlayerControllable(playerid, false);
496 ShowPlayerMouse(playerid, true);
497 }
498 else
499 {
500 //zalogowany
501 if(Player[playerid][FirstSpawn] && Player[playerid][LastPos] != 0)
502 {
503 SetPlayerPos(playerid, Player[playerid][LastPos][0], Player[playerid][LastPos][1], Player[playerid][LastPos][2]);
504 SetPlayerFacingAngle(playerid, Player[playerid][LastPos][3]);
505 SetPlayerInterior(playerid, Player[playerid][Linterior]);
506 SetPlayerVirtualWorld(playerid, Player[playerid][LVW]);
507 SetPlayerHealth(playerid, Player[playerid][HP]);
508 SetPlayerArmour(playerid, Player[playerid][Armour]);
509 }
510 else
511 {
512 SetPlayerInterior(playerid, 0);
513 SetPlayerVirtualWorld(playerid, 0);
514 }
515 SetPlayerSkin(playerid, Player[playerid][IDSkin]);
516 TogglePlayerControllable(playerid, true);
517 SetCameraBehindPlayer(playerid);
518 ShowPlayerMouse(playerid, false);
519 Player[playerid][FirstSpawn] = false;
520 TextDrawHideForPlayer(playerid, loginscreen);
521 TextDrawHideForPlayer(playerid, loginbutton);
522 TextDrawHideForPlayer(playerid, registerbutton);
523 TogglePlayerSpectating(playerid, false);
524 SetCameraBehindPlayer(playerid);
525 TogglePlayerControllable(playerid, true);
526 }
527 return 1;
528}
529
530//CALLBACK MYSQL
531
532forward OnAccountCreate(playerid);
533public OnAccountCreate(playerid)
534{
535 SendClientMessage(playerid, -1, INFO_STRING"Gratuluję! Twoje Konto zostało pomyślnie stworzone.Życzymy udanej gry, Administracja serwera.");
536 SpawnPlayer(playerid);
537 return 1;
538}
539
540forward OnAccountCheck(playerid, ip[], name[]);
541public OnAccountCheck (playerid, ip[], name[])
542{
543 if(!IsPlayerConnected(playerid))
544 return 1;
545 new tmpip[18];
546 GetPlayerIp(playerid, tmpip, 18);
547 if(strcmp(ip, tmpip, true) != 0 && strcmp(name, PlayerName(playerid)) != 0)
548 return KickEX(playerid);
549 if(cache_num_rows() > 0)
550 {
551 //konto odnalezione
552 cache_get_value(0, "password", Player[playerid][Password], 129);
553 Player[playerid][Cache_ID] = cache_save();
554 ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_PASSWORD, "Logowanie", "Znaleźliśmy rejestrację Twojego konta. \n\tPodaj hasło aby zagrać.", "Logowanie", "Opuść Serwer");
555 }
556 else
557 {
558 //Konton nie odnalezione
559 ShowPlayerDialog(playerid, REGISTER1_DIALOG, DIALOG_STYLE_PASSWORD, "REJESTRACJA", "Aby zagrać na serwerze, prosimy stwórz konto. \n\tHasło proszę wpisać poniżej", "Akceptuj", "Anuluj");
560 }
561 return 1;
562}
563
564stock IsNumeric(const string[])
565{
566 for (new i = 0, j = strlen(string); i < j; i++)
567 {
568 if (string[i] > '9' || string[i] < '0') return 0;
569 }
570 return 1;
571}
572
573stock bool:IsStrValid(const string[])
574{
575 new num;
576 new len = strlen(string);
577 for(new i; i < len; i++)
578 switch(string[i])
579 {
580 case 'A'..'Z':num++;
581 case 'a'..'z':num++;
582 case '0'..'9':num++;
583 }
584 if(num == len) return true;
585 else return false;
586}
587
588//Timery
589
590
591forward UnFreezePlayer(playerid);
592public UnFreezePlayer(playerid)
593{
594 Player[playerid][IsFreezed] = false;
595 TogglePlayerControllable(playerid, true);
596 return 1;
597}
598
599forward DelayKick(playerid);
600public DelayKick(playerid)
601 return Kick(playerid);
602
603forward SecondUpdate();
604public SecondUpdate()
605{
606 for(new playerid, j = GetPlayerPoolSize(); playerid <= j; playerid++)
607 {
608 if(IsPlayerConnected(playerid))
609 {
610 if(Player[playerid][ShowMouse])
611 {
612 ShowPlayerMouse(playerid, true);
613 }
614 }
615 }
616 return 1;
617}
618
619
620 //CMD
621CMD:ooc(playerid, params[])
622{
623 new message[128], string[192];
624 if(sscanf(params, "s[128]", message)) SendClientMessage(playerid, -1, "{008040}UŻYJ: /OOC [Wiadomość dla czatu globalnego]");
625 else
626 {
627 format(string, sizeof string, "OOC | %s [%i]: %s", PlayerName(playerid), playerid, message);
628 SendClientMessageToAll(COLOR_PINKY, string);
629 }
630 return 1;
631}
632
633
634CMD:krzycz(playerid, params[])
635{
636 new message[128], string[192];
637 if(sscanf(params, "s[128]", message)) SendClientMessage(playerid, -1, "{FF8040}UŻYJ: /krzycz [Wiadomość]");
638 else
639 {
640 format(string, sizeof string, "%s [%i] krzczy! : %s", PlayerName(playerid), playerid, message);
641 SendClientMessageInRange(playerid, COLOR_LIGHT_GREY, 35.0, string);
642 }
643 return 1;
644}
645
646
647CMD:me(playerid, params[])
648{
649 new message[128], string[192];
650 if(sscanf(params, "s[128]", message)) SendClientMessage(playerid, -1, "{80FF80}UŻYJ: /me[Czynność]");
651 else
652 {
653 format(string, sizeof string, "* %s %s", PlayerName(playerid), message);
654 SendClientMessageInRange(playerid, COLOR_PURPLE_DARK, 60.0, string);
655 }
656 return 1;
657}
658
659
660
661
662CMD:do(playerid, params[])
663{
664 new message[128], string[192];
665 if(sscanf(params, "s[128]", message)) SendClientMessage(playerid, -1, "{804040}UŻYJ: /do[Opis Sytuacji]");
666 else
667 {
668 format(string, sizeof string, "[%i] ( %s )", playerid, message);
669 SendClientMessageInRange(playerid, COLOR_MORSKI, 80.0, string);
670 }
671 return 1;
672}
673
674
675
676//STOCKI
677
678stock StworzBrame()
679{
680 brama[0] = CreateDynamicObject(2990, 1003.76, -643.771, 124.317, 1.0, 0.5, 29.4, -1, -1, -1, STREAMER_OBJECT_SD, STREAMER_OBJECT_DD, -1, 0);
681 return 1;
682}
683
684stock UsunBramy()
685{
686 for(new i; i < sizeof brama; i++)
687 DestroyDynamicObject(i);
688 return 1;
689}
690
691stock SendClientMessageInRange(playerid, color, Float:range, text[])
692{
693 new Float:x, Float:y, Float:z;
694 GetPlayerPos(playerid, x, y, z);
695 for(new i, j = GetPlayerPoolSize(); i <= j; i++)
696 {
697 if(IsPlayerConnected(i))
698 {
699 if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
700 {
701 if(IsPlayerInRangeOfPoint(i, range, x, y, z))
702 {
703 SendClientMessage(i, color, text);
704 }
705 }
706 }
707 }
708 return 1;
709}
710
711
712stock ConnectEntrances(id1, id2)
713{
714 Entrance[id1][e_conid] = id2;
715 Entrance[id2][e_conid] = id1;
716 return 1;
717}
718
719stock FreezePlayer(playerid, interval, text[])
720{
721 new string[128];
722 format(string, sizeof string, "~p~%s", text);
723 TogglePlayerControllable(playerid, false);
724 SetTimerEx("UnFreeze", interval, false, "i", playerid);
725 GameTextForPlayer(playerid, string, interval, 6);
726 Player[playerid][IsFreezed] = true;
727 return 1;
728}
729
730
731stock CreateEntrance(const name[], Float:x, Float:y, Float:z, Float:rotacja, interior, virtualworld, pickupid = -1, mapiconid = -1, bool:freezeplayer = false)
732{
733 new string[128];
734 new entid =entranceindex;
735 Entrance[entid][e_posx] = x;
736 Entrance[entid][e_posy] = y;
737 Entrance[entid][e_posz] = z;
738 Entrance[entid][e_rotation] = rotacja;
739 Entrance[entid][e_interior] = interior;
740 Entrance[entid][e_vw] = virtualworld;
741 Entrance[entid][e_freeze] = freezeplayer;
742 if(pickupid == -1)
743 {
744 pickupid = 1318;
745 if(mapiconid != -1)
746 CreateDynamicMapIcon(x, y, z, mapiconid, 0, virtualworld, interior, -1, 800, MAPICON_GLOBAL, -1, 0);
747 CreateDynamicPickup(pickupid, 1, x, y, z, virtualworld, interior);
748 format(string,sizeof string, "{F3DC3A}%s\n{FFFFFF}Aby wejść wciśnij : {D34BF5}ENTER", name);
749 CreateDynamic3DTextLabel(string, -1, x, y, z, 15, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, virtualworld, interior, -1, 15);
750 entranceindex++;
751 }
752 return entid;
753}
754
755stock GetRandomSkin()
756{
757 new rgender = random(2);
758 if(rgender == 1)
759 {
760 new rand = random(sizeof Skins_Male);
761 return Skins_Male[rand][0];
762 }
763 else if(rgender == 0)
764 {
765 new rand = random(sizeof Skins_Female);
766 return Skins_Female[rand][0];
767 }
768 return 0;
769}
770
771
772stock KickEX(playerid, delay = 1000)
773 return SetTimerEx("DelayKick", delay, false, "i", playerid);
774
775stock AssignPlayerData(playerid)
776{
777 cache_set_active(Player[playerid][Cache_ID]);
778
779 cache_get_value_int(0, "uid", Player[playerid][UID]);
780 cache_get_value_int(0, "IDSkina", Player[playerid][IDSkin]);
781 cache_get_value_int(0, "money", Player[playerid][Money]);
782 cache_get_value_int(0, "gender", Player[playerid][Gender]);
783 cache_get_value_int(0, "age", Player[playerid][Age]);
784 cache_get_value_int(0, "lvl", Player[playerid][Lvl]);
785 cache_get_value_int(0, "admin_lv", Player[playerid][AdminLV]);
786
787 cache_get_value_float(0, "lastposx",Player[playerid][LastPos][0]);
788 cache_get_value_float(0, "lastposy",Player[playerid][LastPos][1]);
789 cache_get_value_float(0, "lastposz",Player[playerid][LastPos][2]);
790 cache_get_value_float(0, "lastposrot",Player[playerid][LastPos][3]);
791 cache_get_value_int(0, "linterior",Player[playerid][Linterior]);
792 cache_get_value_int(0, "lvw",Player[playerid][LVW]);
793 cache_get_value_float(0, "hp",Player[playerid][HP]);
794 cache_get_value_float(0, "armour",Player[playerid][Armour]);
795
796 cache_delete(Player[playerid][Cache_ID]);
797 Player[playerid][Cache_ID] = MYSQL_INVALID_CACHE;
798 return 1;
799}
800
801stock ResetPlayerData(playerid)
802{
803 if(cache_is_valid(Player[playerid][Cache_ID]))
804 {
805 cache_delete(Player[playerid][Cache_ID]);
806 Player[playerid][Cache_ID] = MYSQL_INVALID_CACHE;
807 }
808 static const null_players[DataPlayer];
809 Player[playerid] = null_players;
810 return 1;
811}
812
813stock PlayerName(playerid)
814{
815 new name[MAX_PLAYER_NAME];
816 GetPlayerName(playerid, name, sizeof name);
817 return name;
818}
819
820forward ShowPlayerMouse(playerid, bool:show);
821public ShowPlayerMouse(playerid, bool:show)
822{
823 if(show)
824 {
825 SelectTextDraw(playerid, 0xFF0000FF);
826 Player[playerid][ShowMouse] = true;
827 }
828 else
829 {
830 CancelSelectTextDraw(playerid);
831 Player[playerid][ShowMouse] = false;
832 }
833 return 1;
834}
835
836stock ClearPlayerChat(playerid)
837{
838 for(new i; i < 15; i++)
839 SendClientMessage(playerid, -1, " ");
840 return 1;
841}
842
843 stock SaveAccount(playerid)
844 {
845 new query[258];
846 new Float:tempPos[4], Float:hp, Float:armour;
847 GetPlayerHealth(playerid, hp);
848 GetPlayerArmour(playerid, armour);
849 GetPlayerPos(playerid, tempPos[0], tempPos[1], tempPos[2]);
850 GetPlayerFacingAngle(playerid, tempPos[3]);
851 if(hp > 100 && !IsPlayerAdmin(playerid)) hp = 100;
852 if(armour > 100) armour = 100;
853 mysql_format(SQL_ID, query, sizeof query, "UPDATE players_accounts SET money =%i, IDSkina = %i, lvl = %i, lastposx = %f, lastposy = %f, lastposz = %f, \
854 lastposrot = %f, linterior = %i, lvw = %i, hp = %f, armour = %f WHERE uid = %i",
855 GetPlayerMoney(playerid),
856 Player[playerid][IDSkin],
857 GetPlayerScore(playerid),
858 tempPos[0], tempPos[1], tempPos[2], tempPos[3],
859 GetPlayerInterior(playerid),
860 GetPlayerVirtualWorld(playerid),
861 hp,armour,
862 Player[playerid][UID]);
863 mysql_tquery(SQL_ID, query);
864 return 1;
865 }
866
867 stock CreateAccount(playerid)
868{
869 new query[258], string[258];
870 strcat(query, "INSERT INTO players_accounts(");
871 //
872 strcat(query, "Login, ");
873 strcat(query, "password, ");
874 strcat(query, "IDSkina, ");
875 strcat(query, "age, ");
876 strcat(query, "gender, ");
877 strcat(query, "money");
878 //
879 strcat(query, ")VALUES(");
880 //
881 format(string, 258, "'%s',",PlayerName(playerid));
882 strcat(query,string);
883 format(string, 258, "'%s',",Player[playerid][Password]);
884 strcat(query,string);
885 format(string, 258, "'%i',",Player[playerid][IDSkin]);
886 strcat(query,string);
887 format(string, 258, "'%i',",Player[playerid][Age]);
888 strcat(query,string);
889 format(string, 258, "'%i',",Player[playerid][Gender]);
890 strcat(query,string);
891 format(string, 258, "'%i'",MONEY_MONEY_START);
892 strcat(query,string);
893 //
894 strcat(query,")");
895 mysql_tquery(SQL_ID, query, "OnAccountCreate", "i", playerid);
896 return 1;
897}
898
899stock MySQL_SetUpTables ()
900{
901 mysql_tquery(SQL_ID, " CREATE TABLE IF NOT EXISTS `Players Accounts` ( \
902 `uid` INT(11) NOT NULL AUTO_INCREMENT, \
903 `Login` TEXT NOT NULL COLLATE 'utf8_polish_ci', \
904 `password` TEXT NOT NULL COLLATE 'utf8_polish_ci', \
905 `ID Skina` INT(11) NOT NULL, \
906 `money` INT(11) NOT NULL DEFAULT '0', \
907 `gender` INT(11) NOT NULL, \
908 `age` INT(11) NOT NULL, \
909 `lvl` INT(11) NOT NULL DEFAULT '1', \
910 `admin lv` INT(11) NOT NULL DEFAULT '0', \
911 `lastip` TEXT NOT NULL COLLATE 'utf8_polish_ci', \
912 `lastonline` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, \
913 `createdate` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, \
914 PRIMARY KEY (`uid`))");
915 return 1;
916}
917
918stock MySQL_Init()
919{
920 mysql_log();
921 SQL_ID = mysql_connect_file("mysql.ini");
922 if(SQL_ID == MYSQL_INVALID_HANDLE ||mysql_errno(SQL_ID) != 0)
923 {
924 print("[MYSQL - BLAD] Nie można było połączyć się z bazą danych! Serwer wyłączony ..!");
925 SendRconCommand("exit");
926 return 0;
927 }
928 print("[MYSQL] Połączenie z bazą danych zostało nawiązane!");
929 return 1;
930}
931
932// Stock TD
933
934stock CreateGlobalTD()
935{
936 SkinSelector_Title = TextDrawCreate(232.000000, -5.000000, "mdl-1001:skin");
937 TextDrawFont(SkinSelector_Title, 4);
938 TextDrawLetterSize(SkinSelector_Title, 0.600000, 2.000000);
939 TextDrawTextSize(SkinSelector_Title, 187.000000, 102.500000);
940 TextDrawSetOutline(SkinSelector_Title, 1);
941 TextDrawSetShadow(SkinSelector_Title, 0);
942 TextDrawAlignment(SkinSelector_Title, 1);
943 TextDrawColor(SkinSelector_Title, -1);
944 TextDrawBackgroundColor(SkinSelector_Title, 255);
945 TextDrawBoxColor(SkinSelector_Title, 50);
946 TextDrawUseBox(SkinSelector_Title, 1);
947 TextDrawSetProportional(SkinSelector_Title, 1);
948 TextDrawSetSelectable(SkinSelector_Title, 0);
949
950 SkinSelector_Right = TextDrawCreate(420.000000, 287.000000, "mdl-1001:prawo");
951 TextDrawFont(SkinSelector_Right, 4);
952 TextDrawLetterSize(SkinSelector_Right, 0.600000, 2.000000);
953 TextDrawTextSize(SkinSelector_Right, 172.000000, 75.000000);
954 TextDrawSetOutline(SkinSelector_Right, 1);
955 TextDrawSetShadow(SkinSelector_Right, 0);
956 TextDrawAlignment(SkinSelector_Right, 1);
957 TextDrawColor(SkinSelector_Right, -1);
958 TextDrawBackgroundColor(SkinSelector_Right, 255);
959 TextDrawBoxColor(SkinSelector_Right, 50);
960 TextDrawUseBox(SkinSelector_Right, 1);
961 TextDrawSetProportional(SkinSelector_Right, 1);
962 TextDrawSetSelectable(SkinSelector_Right, 1);
963
964 SkinSelector_Left = TextDrawCreate(112.000000, 285.000000, "mdl-1001:lewo");
965 TextDrawFont(SkinSelector_Left, 4);
966 TextDrawLetterSize(SkinSelector_Left, 0.600000, 2.000000);
967 TextDrawTextSize(SkinSelector_Left, 172.000000, 75.000000);
968 TextDrawSetOutline(SkinSelector_Left, 1);
969 TextDrawSetShadow(SkinSelector_Left, 0);
970 TextDrawAlignment(SkinSelector_Left, 1);
971 TextDrawColor(SkinSelector_Left, -1);
972 TextDrawBackgroundColor(SkinSelector_Left, 255);
973 TextDrawBoxColor(SkinSelector_Left, 50);
974 TextDrawUseBox(SkinSelector_Left, 1);
975 TextDrawSetProportional(SkinSelector_Left, 1);
976 TextDrawSetSelectable(SkinSelector_Left, 1);
977
978 SkinSelector_Accept = TextDrawCreate(286.000000, 271.000000, "mdl-1001:wybierz");
979 TextDrawFont(SkinSelector_Accept, 4);
980 TextDrawLetterSize(SkinSelector_Accept, 0.600000, 2.000000);
981 TextDrawTextSize(SkinSelector_Accept, 133.500000, 99.000000);
982 TextDrawSetOutline(SkinSelector_Accept, 1);
983 TextDrawSetShadow(SkinSelector_Accept, 0);
984 TextDrawAlignment(SkinSelector_Accept, 1);
985 TextDrawColor(SkinSelector_Accept, -1);
986 TextDrawBackgroundColor(SkinSelector_Accept, 255);
987 TextDrawBoxColor(SkinSelector_Accept, 50);
988 TextDrawUseBox(SkinSelector_Accept, 1);
989 TextDrawSetProportional(SkinSelector_Accept, 1);
990 TextDrawSetSelectable(SkinSelector_Accept, 1);
991
992
993 skinnr = TextDrawCreate(429.000000, 20.000000, "0");
994 TextDrawFont(skinnr, 3);
995 TextDrawLetterSize(skinnr, 0.941666, 4.449998);
996 TextDrawTextSize(skinnr, 400.000000, 17.000000);
997 TextDrawSetOutline(skinnr, 1);
998 TextDrawSetShadow(skinnr, 0);
999 TextDrawAlignment(skinnr, 1);
1000 TextDrawColor(skinnr, -1);
1001 TextDrawBackgroundColor(skinnr, 255);
1002 TextDrawBoxColor(skinnr, 50);
1003 TextDrawUseBox(skinnr, 0);
1004 TextDrawSetProportional(skinnr, 1);
1005 TextDrawSetSelectable(skinnr, 0);
1006
1007 pasekstanu = TextDrawCreate(451.000000, 422.000000, "ID:_0__PING:_14___XP:_150/1840___LVL:_15");
1008 TextDrawFont(pasekstanu, 3);
1009 TextDrawLetterSize(pasekstanu, 0.299998, 1.649999);
1010 TextDrawTextSize(pasekstanu, 12.000000, 640.000000);
1011 TextDrawSetOutline(pasekstanu, 0);
1012 TextDrawSetShadow(pasekstanu, 0);
1013 TextDrawAlignment(pasekstanu, 2);
1014 TextDrawColor(pasekstanu, -16776961);
1015 TextDrawBackgroundColor(pasekstanu, 852308735);
1016 TextDrawBoxColor(pasekstanu, 101);
1017 TextDrawUseBox(pasekstanu, 1);
1018 TextDrawSetProportional(pasekstanu, 1);
1019 TextDrawSetSelectable(pasekstanu, 0);
1020
1021 data = TextDrawCreate(584.000000, 3.000000, "00.00.0000");
1022 TextDrawFont(data, 0);
1023 TextDrawLetterSize(data, 0.374998, 1.599997);
1024 TextDrawTextSize(data, 400.000000, 17.000000);
1025 TextDrawSetOutline(data, 0);
1026 TextDrawSetShadow(data, 0);
1027 TextDrawAlignment(data, 2);
1028 TextDrawColor(data, -585851804);
1029 TextDrawBackgroundColor(data, 255);
1030 TextDrawBoxColor(data, 50);
1031 TextDrawUseBox(data, 0);
1032 TextDrawSetProportional(data, 1);
1033 TextDrawSetSelectable(data, 0);
1034
1035 czas = TextDrawCreate(577.000000, 20.000000, "00:00");
1036 TextDrawFont(czas, 2);
1037 TextDrawLetterSize(czas, 0.454166, 2.199999);
1038 TextDrawTextSize(czas, 400.000000, 17.000000);
1039 TextDrawSetOutline(czas, 2);
1040 TextDrawSetShadow(czas, 0);
1041 TextDrawAlignment(czas, 2);
1042 TextDrawColor(czas, -1);
1043 TextDrawBackgroundColor(czas, 255);
1044 TextDrawBoxColor(czas, 50);
1045 TextDrawUseBox(czas, 0);
1046 TextDrawSetProportional(czas, 1);
1047 TextDrawSetSelectable(czas, 0);
1048
1049 loginscreen = TextDrawCreate(0.000000, -2.000000, "mdl-1000:logowanie samp");
1050 TextDrawFont(loginscreen, 4);
1051 TextDrawLetterSize(loginscreen, 0.600000, 2.000000);
1052 TextDrawTextSize(loginscreen, 641.500000, 453.500000);
1053 TextDrawSetOutline(loginscreen, 1);
1054 TextDrawSetShadow(loginscreen, 0);
1055 TextDrawAlignment(loginscreen, 1);
1056 TextDrawColor(loginscreen, -1);
1057 TextDrawBackgroundColor(loginscreen, 255);
1058 TextDrawBoxColor(loginscreen, 50);
1059 TextDrawUseBox(loginscreen, 1);
1060 TextDrawSetProportional(loginscreen, 1);
1061 TextDrawSetSelectable(loginscreen, 0);
1062
1063 loginbutton = TextDrawCreate(121.000000, 219.000000, "mdl-1000:loginbutton");
1064 TextDrawFont(loginbutton, 4);
1065 TextDrawLetterSize(loginbutton, 0.600000, 2.000000);
1066 TextDrawTextSize(loginbutton, 130.500000, 84.000000);
1067 TextDrawSetOutline(loginbutton, 1);
1068 TextDrawSetShadow(loginbutton, 0);
1069 TextDrawAlignment(loginbutton, 1);
1070 TextDrawColor(loginbutton, -1);
1071 TextDrawBackgroundColor(loginbutton, 255);
1072 TextDrawBoxColor(loginbutton, 50);
1073 TextDrawUseBox(loginbutton, 1);
1074 TextDrawSetProportional(loginbutton, 1);
1075 TextDrawSetSelectable(loginbutton, 1);
1076
1077 registerbutton = TextDrawCreate(162.000000, 269.000000, "mdl-1000:registerbutton");
1078 TextDrawFont(registerbutton, 4);
1079 TextDrawLetterSize(registerbutton, 0.600000, 2.000000);
1080 TextDrawTextSize(registerbutton, 128.000000, 91.500000);
1081 TextDrawSetOutline(registerbutton, 1);
1082 TextDrawSetShadow(registerbutton, 0);
1083 TextDrawAlignment(registerbutton, 1);
1084 TextDrawColor(registerbutton, -1);
1085 TextDrawBackgroundColor(registerbutton, 255);
1086 TextDrawBoxColor(registerbutton, 50);
1087 TextDrawUseBox(registerbutton, 1);
1088 TextDrawSetProportional(registerbutton, 1);
1089 TextDrawSetSelectable(registerbutton, 1);
1090 return 1;
1091}