Advertisement
Guest User

new.pwn

a guest
Jul 31st, 2017
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.01 KB | None | 0 0
  1. // This is a comment
  2. // uncomment the line below if you want to write a filterscript
  3. //#define FILTERSCRIPT
  4.  
  5. #include <a_samp>
  6. #include <a_mysql>
  7.  
  8. #define MYSQL_HOST "localhost"
  9. #define MYSQL_USER "root"
  10. #define MYSQL_DATABASE "sa-mp"
  11. #define MYSQL_PASSWORD ""
  12.  
  13. #define NAME_SERVER "Test Role Play"//?? ????? 20 ????????
  14. #define cRED FF0000
  15. #define cGREEN 008000
  16.  
  17. forward UploadPlayerAccountNumber(playerid);
  18. forward UploadPlayerAccount(playerid);
  19. forward FindPlayerInTable(playerid);
  20.  
  21. new Text:TD_RegSpawn[17];
  22. new ChangeSkinReg[MAX_PLAYERS];
  23. new SkinRegMen[] ={
  24. 79,137,200,230,78,212
  25. };
  26. new SkinRegMale[] ={
  27. 193,90,40,55
  28. };
  29. new Float:gChangeSkin[0][4] = {
  30. {222.3489,-8.5845,1002.2109,266.7302}
  31. };
  32.  
  33.  
  34. new MySQL:mysql_connect_ID;
  35.  
  36. enum e_PLAYER_INFO
  37. {
  38. pID,
  39. pName[MAX_PLAYER_NAME],
  40. pPassword[31],
  41. pEmail[50],
  42. pRefferal[24],
  43. pGender,
  44. pRace,
  45. pLevel,
  46. pSkin
  47. };
  48. new pInfo[MAX_PLAYERS][e_PLAYER_INFO];
  49.  
  50. enum e_DIALOG_IDs
  51. {
  52. DIALOG_NONE = 0,
  53. DIALOG_REGISTER,
  54. DIALOG_LOGIN,
  55. DIALOG_ENTER_PASSWORD,
  56. DIALOG_ENTER_EMAIL,
  57. DIALOG_ENTER_REFFERAL,
  58. DIALOG_ENTER_GENDER,
  59. DIALOG_ENTER_RASSA,
  60. DOP_DIALOG_ENTER_RASSA,
  61. DOP2_DIALOG_ENTER_RASSA
  62. };
  63.  
  64. enum e_REG_INFO
  65. {
  66. Password[32],
  67. Email[50],
  68. Ref[24],
  69. Gender,
  70. Rassa,
  71. Skin
  72. }
  73. new PlayerRegInfo[MAX_PLAYERS][e_REG_INFO];
  74.  
  75. #if defined FILTERSCRIPT
  76.  
  77. public OnFilterScriptInit()
  78. {
  79. print("\n--------------------------------------");
  80. print(" Blank Filterscript by your name here");
  81. print("--------------------------------------\n");
  82. return 1;
  83. }
  84.  
  85. public OnFilterScriptExit()
  86. {
  87. return 1;
  88. }
  89.  
  90. #else
  91.  
  92. main()
  93. {
  94. print("\n----------------------------------");
  95. print(" Blank Gamemode by your name here");
  96. print("----------------------------------\n");
  97. }
  98.  
  99. #endif
  100.  
  101. public OnGameModeInit()
  102. {
  103. mysql_connect_ID = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE);
  104. LoadTextDraw();
  105. return 1;
  106. }
  107.  
  108. public OnGameModeExit()
  109. {
  110. mysql_close(mysql_connect_ID);
  111. return 1;
  112. }
  113.  
  114. public OnPlayerRequestClass(playerid, classid)
  115. {
  116. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  117. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  118. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  119. return 1;
  120. }
  121.  
  122. public OnPlayerConnect(playerid)
  123. {
  124. GetPlayerName(playerid, pInfo[playerid][pName], MAX_PLAYER_NAME);
  125. new query_string[49 + MAX_PLAYER_NAME - 4];
  126. format(query_string, sizeof(query_string), "SELECT * FROM `accounts` WHERE `Name` = '%s'", pInfo[playerid][pName]);
  127. mysql_tquery(mysql_connect_ID, query_string, "FindPlayerInTable","i", playerid);
  128. return 1;
  129. }
  130.  
  131. public OnPlayerDisconnect(playerid, reason)
  132. {
  133. RemovePlayerInfo(playerid);
  134. return 1;
  135. }
  136.  
  137. public OnPlayerSpawn(playerid)
  138. {
  139. return 1;
  140. }
  141.  
  142. public OnPlayerDeath(playerid, killerid, reason)
  143. {
  144. return 1;
  145. }
  146.  
  147. public OnVehicleSpawn(vehicleid)
  148. {
  149. return 1;
  150. }
  151.  
  152. public OnVehicleDeath(vehicleid, killerid)
  153. {
  154. return 1;
  155. }
  156.  
  157. public OnPlayerText(playerid, text[])
  158. {
  159. return 1;
  160. }
  161.  
  162. public OnPlayerCommandText(playerid, cmdtext[])
  163. {
  164. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  165. {
  166. // Do something here
  167. return 1;
  168. }
  169. return 0;
  170. }
  171.  
  172. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  173. {
  174. return 1;
  175. }
  176.  
  177. public OnPlayerExitVehicle(playerid, vehicleid)
  178. {
  179. return 1;
  180. }
  181.  
  182. public OnPlayerStateChange(playerid, newstate, oldstate)
  183. {
  184. return 1;
  185. }
  186.  
  187. public OnPlayerEnterCheckpoint(playerid)
  188. {
  189. return 1;
  190. }
  191.  
  192. public OnPlayerLeaveCheckpoint(playerid)
  193. {
  194. return 1;
  195. }
  196.  
  197. public OnPlayerEnterRaceCheckpoint(playerid)
  198. {
  199. return 1;
  200. }
  201.  
  202. public OnPlayerLeaveRaceCheckpoint(playerid)
  203. {
  204. return 1;
  205. }
  206.  
  207. public OnRconCommand(cmd[])
  208. {
  209. return 1;
  210. }
  211.  
  212. public OnPlayerRequestSpawn(playerid)
  213. {
  214. return 1;
  215. }
  216.  
  217. public OnObjectMoved(objectid)
  218. {
  219. return 1;
  220. }
  221.  
  222. public OnPlayerObjectMoved(playerid, objectid)
  223. {
  224. return 1;
  225. }
  226.  
  227. public OnPlayerPickUpPickup(playerid, pickupid)
  228. {
  229. return 1;
  230. }
  231.  
  232. public OnVehicleMod(playerid, vehicleid, componentid)
  233. {
  234. return 1;
  235. }
  236.  
  237. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  238. {
  239. return 1;
  240. }
  241.  
  242. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  243. {
  244. return 1;
  245. }
  246.  
  247. public OnPlayerSelectedMenuRow(playerid, row)
  248. {
  249. return 1;
  250. }
  251.  
  252. public OnPlayerExitedMenu(playerid)
  253. {
  254. return 1;
  255. }
  256.  
  257. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  258. {
  259. return 1;
  260. }
  261.  
  262. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  263. {
  264. return 1;
  265. }
  266.  
  267. public OnRconLoginAttempt(ip[], password[], success)
  268. {
  269. return 1;
  270. }
  271.  
  272. public OnPlayerUpdate(playerid)
  273. {
  274. return 1;
  275. }
  276.  
  277. public OnPlayerStreamIn(playerid, forplayerid)
  278. {
  279. return 1;
  280. }
  281.  
  282. public OnPlayerStreamOut(playerid, forplayerid)
  283. {
  284. return 1;
  285. }
  286.  
  287. public OnVehicleStreamIn(vehicleid, forplayerid)
  288. {
  289. return 1;
  290. }
  291.  
  292. public OnVehicleStreamOut(vehicleid, forplayerid)
  293. {
  294. return 1;
  295. }
  296.  
  297. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  298. {
  299. case DIALOG_REGISTER:
  300. {
  301. if(response)
  302. {
  303. switch(listitem)
  304. {
  305. case 0: ShowPlayerDialog(playerid, DIALOG_ENTER_PASSWORD, 1, "Регистрация | Введите пароль:", "{FFFFFF}Введите пароль:\n", "Далее", "Назад");
  306. case 1: ShowPlayerDialog(playerid, DIALOG_ENTER_EMAIL, 1, "Регистрация | Введите email:","{FFFFFF}Введите email:\n", "Далее", "Назад");
  307. case 2: ShowPlayerDialog(playerid, DIALOG_ENTER_REFFERAL, 1, "Регистрация | Введите реферал:","{FFFFFF}Введите имя друга:\n", "Далее", "Назад");
  308. case 3: ShowPlayerDialog(playerid, DIALOG_ENTER_GENDER, 2, "Регистрация | Выбор пола:","{4582A1}- {FFFFFF}Мужчина\n{4582A1}- {FFFFFF}Женщина\n", "Далее", "Назад");
  309. case 4: ShowPlayerDialog(playerid, DIALOG_ENTER_RASSA, 2, "Регистрация | Выбор расы:","{4582A1}- {FFFFFF}Афроамереканец\n{4582A1}- {FFFFFF}Европеец\n{4582A1}- {FFFFFF}Азиат\n", "Далее", "Назад");
  310. case 5:
  311. {
  312. new rand = random(sizeof(gChangeSkin));
  313. SetPlayerPos(playerid, gChangeSkin[rand][0], gChangeSkin[rand][1], gChangeSkin[rand][2]); // Warp the player
  314. SetPlayerFacingAngle(playerid, gChangeSkin[rand][3]);
  315. SetPlayerCameraPos(playerid, gChangeSkin[rand][0] + 3, gChangeSkin[rand][1], gChangeSkin[rand][2]);
  316. SetPlayerCameraLookAt(playerid, gChangeSkin[rand][0], gChangeSkin[rand][1], gChangeSkin[rand][2]);
  317. SetPlayerInterior(playerid, 5);
  318. ChangeSkinReg[playerid] = 0;
  319. SetPlayerSkin(playerid, 79);
  320. SetPlayerVirtualWorld(playerid, playerid+1);
  321. for(new i; i < sizeof(TD_RegSpawn); i++) TextDrawShowForPlayer(playerid, TD_RegSpawn[i]);
  322. TextDrawHideForPlayer(playerid, TD_RegSpawn[5]);
  323. TextDrawHideForPlayer(playerid, TD_RegSpawn[6]);
  324. TextDrawSetString(TD_RegSpawn[15], "Select");
  325. SelectTextDraw(playerid, 0x2641FEAA);
  326. return 1;
  327. }
  328. case 6:
  329. {
  330. new password[32], email[50];
  331. format(password, sizeof(password), "%s", PlayerRegInfo[playerid][Password]);
  332. format(email, sizeof(email), "%s", PlayerRegInfo[playerid][Email]);
  333. new gender = PlayerRegInfo[playerid][Gender];
  334. new race = PlayerRegInfo[playerid][Rassa];
  335. new skin = PlayerRegInfo[playerid][Skin];
  336.  
  337. if(password[0] != EOS && email[0] != EOS && gender && race && skin)
  338. {
  339. if(PlayerRegInfo[playerid][Ref]) format(PlayerRegInfo[playerid][Ref], 24, "no");
  340. CreateNewAccount(playerid, password);
  341. }
  342. else SendClientMessage(playerid, -1, "Ошибка регистрации код 1");
  343. }
  344. }
  345. }
  346. return 1;
  347. }
  348. case DIALOG_LOGIN:
  349. {
  350. new login_string[117+20];
  351. if(!strlen(inputtext))
  352. {
  353. format(login_string,sizeof(login_string),"\
  354. {FFFFFF}Добро пожаловать на {AA3333}"NAME_SERVER"\n\
  355. {FFFFFF}Персонаж с ником {AA3333}%s{FFFFFF} зарегистрирован. \n\
  356. Используйте пароль:\n\
  357. ", pInfo[playerid][pName]);
  358. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "{AA3333}Авторизация", login_string, "Вход", "Выход");
  359. return 1;
  360. }
  361. if(!strcmp(pInfo[playerid][pPassword], inputtext))
  362. {
  363. new query_string[49+MAX_PLAYER_NAME];
  364. format(query_string, sizeof(query_string), "SELECT * FROM `accounts` WHERE `Name` = '%s'", pInfo[playerid][pName]);
  365. mysql_tquery(mysql_connect_ID, query_string, "UploadPlayerAccount","i", playerid);
  366. }
  367. return 1;
  368. }
  369. case DIALOG_ENTER_PASSWORD:
  370. {
  371. if(response)
  372. {
  373. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_ENTER_PASSWORD, 1, "Регистрация | Введите пароль:", "{FFFFFF}Введите пароль:\n", "Далее", "Назад");
  374. else if(strlen(inputtext) < 4 || strlen(inputtext) > 30)
  375. {
  376. ShowPlayerDialog(playerid, DIALOG_ENTER_PASSWORD, 1, "\
  377. Регистрация | Введите пароль:", "\
  378. {AFAFAF}* Введены неверные символы, либо пароль слишком длинный\n\
  379. {FFFFFF}Введите пароль:\n", "\
  380. Далее", "Назад"
  381. );
  382. return 1;
  383. }
  384. for(new i = strlen(inputtext)-1; i != -1; i--)
  385. {
  386. switch(inputtext[i])
  387. {
  388. case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue;
  389. default: return ShowPlayerDialog(playerid, DIALOG_ENTER_PASSWORD, 1, "\
  390. Регистрация | Введите пароль:", "\
  391. {AFAFAF}* Введены неверные символы, либо пароль слишком длинный\n\
  392. {FFFFFF}Введите пароль:\n", "\
  393. Далее", "Назад"
  394. );
  395. }
  396. }
  397. format(PlayerRegInfo[playerid][Password],30,"%s",inputtext);
  398. CheckRegistration(playerid);
  399. }
  400. else
  401. {
  402. CheckRegistration(playerid);
  403. }
  404. return 1;
  405. }
  406. case DIALOG_ENTER_EMAIL:
  407. {
  408. if(response)
  409. {
  410. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_ENTER_EMAIL, 1, "Регистрация | Введите email:","{FFFFFF}Введите email:\n", "Далее", "Назад");
  411. else if(strfind(inputtext, "@", true) == -1 || strfind(inputtext, ".", true) == -1) return ShowPlayerDialog(playerid, DIALOG_ENTER_EMAIL, 1, "Регистрация | Введите email:","{FFFFFF}Введите email:\n", "Далее", "Назад");
  412. format(PlayerRegInfo[playerid][Email],30,"%s",inputtext);
  413. CheckRegistration(playerid);
  414. }
  415. else
  416. {
  417. CheckRegistration(playerid);
  418. }
  419. return 1;
  420. }
  421. case DIALOG_ENTER_REFFERAL:
  422. {
  423. if(response)
  424. {
  425. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_ENTER_REFFERAL, 1, "Регистрация | Введите реферал:","{FFFFFF}Введите имя друга:\n", "Далее", "Назад");
  426. format(PlayerRegInfo[playerid][Ref],30,"%s",inputtext);
  427. CheckRegistration(playerid);
  428. }
  429. else
  430. {
  431. CheckRegistration(playerid);
  432. }
  433. return 1;
  434. }
  435. case DIALOG_ENTER_GENDER:
  436. {
  437. if(response)
  438. {
  439. switch(listitem)
  440. {
  441. case 0: PlayerRegInfo[playerid][Gender] = 1;
  442. case 1: PlayerRegInfo[playerid][Gender] = 2;
  443. }
  444. CheckRegistration(playerid);
  445. }
  446. else
  447. {
  448. CheckRegistration(playerid);
  449. }
  450. return 1;
  451. }
  452. case DIALOG_ENTER_RASSA:
  453. {
  454. if(response)
  455. {
  456. switch(listitem)
  457. {
  458. case 0: PlayerRegInfo[playerid][Rassa] = 1;
  459. case 1: PlayerRegInfo[playerid][Rassa] = 2;
  460. case 2: PlayerRegInfo[playerid][Rassa] = 3;
  461. }
  462. CheckRegistration(playerid);
  463. }
  464. else
  465. {
  466. CheckRegistration(playerid);
  467. }
  468. return 1;
  469. }
  470. case DOP_DIALOG_ENTER_RASSA:
  471. {
  472. if(response)
  473. {
  474. switch(listitem)
  475. {
  476. case 0:
  477. {
  478. new listitems[] = "\
  479. {ffffff}При выборе этой расы Вы:\n\
  480. {"#cGREEN"}Сможете {ffffff}вступить в следующее фракции:\n\
  481. - Полиция\n\
  482. - Центральный госпиталь\n\
  483. - Правительство\n\
  484. - Армия\n\
  485. - Grove Street Gang\n\
  486. - The Ballas Gang\n\
  487. - Los-Santos Radio\n\
  488. - FBI\n\n\
  489. {"#cRED"}НЕ сможете {ffffff}вступить в следующее фракции:\n\
  490. - Los Santos Vagos Gang\n\
  491. - El Coronas Gang\n\
  492. - The Rifa Gang\n\
  493. - LCN\n\
  494. - La Eme\n\
  495. - Triada\n\n\
  496. Вы действительно хотите выбрать эту расу?\
  497. ";
  498. ShowPlayerDialog(playerid, DOP2_DIALOG_ENTER_RASSA, 1, "Афроамереканец", listitems, "Да","Назад");
  499. }
  500. case 1:
  501. {
  502. new listitems[] = "\
  503. {ffffff}При выборе этой расы Вы:\n\
  504. {"#cGREEN"}Сможете {ffffff}вступить в следующее фракции:\n\
  505. - Полиция\n\
  506. - Центральный госпиталь\n\
  507. - Правительство\n\
  508. - Армия\n\
  509. - Los Santos Vagos Gang\n\
  510. - El Coronas Gang\n\
  511. - The Rifa Gang\n\
  512. - Los-Santos Radio\n\
  513. - FBI\n\n\
  514. - LCN\n\
  515. - La Eme\n\
  516. {"#cRED"}НЕ сможете {ffffff}вступить в следующее фракции:\n\
  517. - Grove Street Gang\n\
  518. - The Ballas Gang\n\
  519. - Triada\n\n\
  520. Вы действительно хотите выбрать эту расу?\
  521. ";
  522. ShowPlayerDialog(playerid, DOP2_DIALOG_ENTER_RASSA, 1, "Европеец", listitems, "Да","Назад");
  523. }
  524. case 2:
  525. {
  526. new listitems[] = "\
  527. {ffffff}При выборе этой расы Вы:\n\
  528. {"#cGREEN"}Сможете {ffffff}вступить в следующее фракции:\n\
  529. - Правительство\n\
  530. - Армия\n\
  531. - Triada\n\n\
  532. {"#cRED"}НЕ сможете {ffffff}вступить в следующее фракции:\n\
  533. - Полиция\n\
  534. - Центральный госпиталь\n\
  535. - FBI\n\n\
  536. - Grove Street Gang\n\
  537. - The Ballas Gang\n\
  538. - Los Santos Vagos Gang\n\
  539. - El Coronas Gang\n\
  540. - The Rifa Gang\n\
  541. - LCN\n\
  542. - La Eme\n\
  543. Вы действительно хотите выбрать эту расу?\
  544. ";
  545. ShowPlayerDialog(playerid, DOP2_DIALOG_ENTER_RASSA, 1, "Азиат", listitems, "Да","Назад");
  546. }
  547. }
  548. CheckRegistration(playerid);
  549. }
  550. else
  551. {
  552. ShowPlayerDialog(playerid, DIALOG_ENTER_RASSA, 2, "\
  553. Регистрация | Выбор расы:","\
  554. 4582A1}- {FFFFFF}Афроамереканец\n\
  555. {4582A1}- {FFFFFF}Европеец\n\
  556. {4582A1}- {FFFFFF}Азиат\n", "\
  557. Далее", "Назад"
  558. );
  559. PlayerRegInfo[playerid][Rassa] = 0;
  560. }
  561. return 1;
  562. }
  563. case DOP2_DIALOG_ENTER_RASSA:
  564. {
  565. return CheckRegistration(playerid);
  566. }
  567. return 1;
  568. }
  569.  
  570. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  571. {
  572. return 1;
  573. }
  574. public UploadPlayerAccountNumber(playerid) pInfo[playerid][pID] = cache_insert_id();
  575.  
  576. public UploadPlayerAccount(playerid)
  577. {
  578. cache_get_value_name_int(0, "ID", pInfo[playerid][pID]);
  579. SendClientMessage(playerid, 0xFFFFFF00, "Вы успешно авторизировались!");
  580. SpawnPlayer(playerid);
  581. return 1;
  582. }
  583.  
  584. public FindPlayerInTable(playerid)
  585. {
  586. new rows;
  587. cache_get_row_count(rows);
  588.  
  589. if(!rows)
  590. {
  591. CheckRegistration(playerid);
  592. }
  593. else
  594. {
  595. new login_string[117 + 20 + MAX_PLAYER_NAME];
  596. format(login_string,sizeof(login_string),"\
  597. {FFFFFF}Добро пожаловать на {AA3333}"NAME_SERVER"\n\
  598. {FFFFFF}Персонаж с ником {AA3333}%s{FFFFFF} зарегистрирован. \n\
  599. Используйте пароль:\n\
  600. ",pInfo[playerid][pName]);
  601. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "{AA3333}Авторизация", login_string, "Вход", "Выход");
  602. cache_get_value_name(0, "password", pInfo[playerid][pPassword], 31);
  603. }
  604. return 1;
  605. }
  606. public OnPlayerClickTextDraw(playerid, Text:clickedid);
  607. {
  608. if(clickedid == TD_RegSpawn[8])//NEXT
  609. {
  610. if(PlayerRegInfo[playerid][Gender] == 1)
  611. {
  612. ChangeSkinReg[playerid]++;
  613. if(ChangeSkinReg[playerid] >= sizeof(SkinRegMen))//последний скин [М]
  614. {
  615. ChangeSkinReg[playerid] = 0;
  616. }
  617. SetPlayerSkin(playerid,SkinRegMen[ChangeSkinReg[playerid]]);
  618. }
  619. else
  620. {
  621. ChangeSkinReg[playerid]++;
  622. if(ChangeSkinReg[playerid] >= sizeof(SkinRegMale))//последний скин [Ж]
  623. {
  624. ChangeSkinReg[playerid] = 0;
  625. }
  626. SetPlayerSkin(playerid,SkinRegMale[ChangeSkinReg[playerid]]);
  627. }
  628. return 1;
  629. }
  630. if(clickedid == TD_RegSpawn[9])//BACK
  631. {
  632. if(PlayerRegInfo[playerid][Gender] == 1)
  633. {
  634. ChangeSkinReg[playerid]--;
  635. if(ChangeSkinReg[playerid] <= 0)//последний скин [М]
  636. {
  637. ChangeSkinReg[playerid] = sizeof(SkinRegMen)-1;
  638. }
  639. SetPlayerSkin(playerid,SkinRegMen[ChangeSkinReg[playerid]]);
  640. }
  641. else
  642. {
  643. ChangeSkinReg[playerid]--;
  644. if(ChangeSkinReg[playerid] <= 0)//последний скин [Ж]
  645. {
  646. ChangeSkinReg[playerid] = sizeof(SkinRegMale)-1;
  647. }
  648. SetPlayerSkin(playerid,SkinRegMale[ChangeSkinReg[playerid]]);
  649. }
  650. return 1;
  651. }
  652. if(clickedid == TD_RegSpawn[13])//SELECT
  653. {
  654. PlayerRegInfo[playerid][Skin] = GetPlayerSkin(playerid);
  655. for(new i; i < sizeof(TD_RegSpawn); i++) TextDrawHideForPlayer(playerid,TD_RegSpawn[i]);
  656. CancelSelectTextDraw(playerid);
  657. CheckRegistration(playerid);
  658. }
  659. if(clickedid == TD_RegSpawn[14])//EXIT
  660. {
  661. for(new i; i < sizeof(TD_RegSpawn); i++) TextDrawHideForPlayer(playerid,TD_RegSpawn[i]);
  662. CancelSelectTextDraw(playerid);
  663. CheckRegistration(playerid);
  664. }
  665. return 1;`
  666. }
  667. stock LoadTextDraw()
  668. {
  669. TD_RegSpawn[0] = TextDrawCreate(266.000091, 342.081542, "LD_SPAC:white");
  670. TextDrawLetterSize(TD_RegSpawn[0], 0.000000, 0.000000);
  671. TextDrawTextSize(TD_RegSpawn[0], 126.000000, 47.000000);
  672. TextDrawAlignment(TD_RegSpawn[0], 1);
  673. TextDrawColor(TD_RegSpawn[0], 202116607);
  674. TextDrawSetShadow(TD_RegSpawn[0], 0);
  675. TextDrawSetOutline(TD_RegSpawn[0], 0);
  676. TextDrawBackgroundColor(TD_RegSpawn[0], 255);
  677. TextDrawFont(TD_RegSpawn[0], 4);
  678. TextDrawSetProportional(TD_RegSpawn[0], 0);
  679. TextDrawSetShadow(TD_RegSpawn[0], 0);
  680.  
  681. TD_RegSpawn[1] = TextDrawCreate(266.000000, 335.444183, "LD_SPAC:white");
  682. TextDrawLetterSize(TD_RegSpawn[1], 0.000000, 0.000000);
  683. TextDrawTextSize(TD_RegSpawn[1], 126.000000, 10.000000);
  684. TextDrawAlignment(TD_RegSpawn[1], 1);
  685. TextDrawColor(TD_RegSpawn[1], 286331391);
  686. TextDrawSetShadow(TD_RegSpawn[1], 0);
  687. TextDrawSetOutline(TD_RegSpawn[1], 0);
  688. TextDrawBackgroundColor(TD_RegSpawn[1], 255);
  689. TextDrawFont(TD_RegSpawn[1], 4);
  690. TextDrawSetProportional(TD_RegSpawn[1], 0);
  691. TextDrawSetShadow(TD_RegSpawn[1], 0);
  692.  
  693. TD_RegSpawn[2] = TextDrawCreate(294.333312, 335.185089, "Choose Person");
  694. TextDrawLetterSize(TD_RegSpawn[2], 0.209665, 0.977778);
  695. TextDrawAlignment(TD_RegSpawn[2], 1);
  696. TextDrawColor(TD_RegSpawn[2], -1);
  697. TextDrawSetShadow(TD_RegSpawn[2], 0);
  698. TextDrawSetOutline(TD_RegSpawn[2], 0);
  699. TextDrawBackgroundColor(TD_RegSpawn[2], 255);
  700. TextDrawFont(TD_RegSpawn[2], 2);
  701. TextDrawSetProportional(TD_RegSpawn[2], 1);
  702. TextDrawSetShadow(TD_RegSpawn[2], 0);
  703.  
  704. TD_RegSpawn[3] = TextDrawCreate(325.666595, 349.962799, "LD_SPAC:white");
  705. TextDrawLetterSize(TD_RegSpawn[3], 0.000000, 0.000000);
  706. TextDrawTextSize(TD_RegSpawn[3], 61.000000, 10.000000);
  707. TextDrawAlignment(TD_RegSpawn[3], 1);
  708. TextDrawColor(TD_RegSpawn[3], -1);
  709. TextDrawSetShadow(TD_RegSpawn[3], 0);
  710. TextDrawSetOutline(TD_RegSpawn[3], 0);
  711. TextDrawBackgroundColor(TD_RegSpawn[3], 255);
  712. TextDrawFont(TD_RegSpawn[3], 4);
  713. TextDrawSetProportional(TD_RegSpawn[3], 0);
  714. TextDrawSetShadow(TD_RegSpawn[3], 0);
  715.  
  716. TD_RegSpawn[4] = TextDrawCreate(268.000030, 350.118469, "choose skin:");
  717. TextDrawLetterSize(TD_RegSpawn[4], 0.197666, 1.015110);
  718. TextDrawAlignment(TD_RegSpawn[4], 1);
  719. TextDrawColor(TD_RegSpawn[4], -1);
  720. TextDrawSetShadow(TD_RegSpawn[4], 0);
  721. TextDrawSetOutline(TD_RegSpawn[4], 0);
  722. TextDrawBackgroundColor(TD_RegSpawn[4], 255);
  723. TextDrawFont(TD_RegSpawn[4], 2);
  724. TextDrawSetProportional(TD_RegSpawn[4], 1);
  725. TextDrawSetShadow(TD_RegSpawn[4], 0);
  726.  
  727. TD_RegSpawn[5] = TextDrawCreate(268.000061, 362.562927, "stoimost:");
  728. TextDrawLetterSize(TD_RegSpawn[5], 0.197666, 1.015110);
  729. TextDrawAlignment(TD_RegSpawn[5], 1);
  730. TextDrawColor(TD_RegSpawn[5], -1);
  731. TextDrawSetShadow(TD_RegSpawn[5], 0);
  732. TextDrawSetOutline(TD_RegSpawn[5], 0);
  733. TextDrawBackgroundColor(TD_RegSpawn[5], 255);
  734. TextDrawFont(TD_RegSpawn[5], 2);
  735. TextDrawSetProportional(TD_RegSpawn[5], 1);
  736. TextDrawSetShadow(TD_RegSpawn[5], 0);
  737.  
  738. TD_RegSpawn[6] = TextDrawCreate(312.333343, 362.562866, "$15000");
  739. TextDrawLetterSize(TD_RegSpawn[6], 0.193665, 1.023406);
  740. TextDrawAlignment(TD_RegSpawn[6], 1);
  741. TextDrawColor(TD_RegSpawn[6], 1453748223);
  742. TextDrawSetShadow(TD_RegSpawn[6], 0);
  743. TextDrawSetOutline(TD_RegSpawn[6], 0);
  744. TextDrawBackgroundColor(TD_RegSpawn[6], 255);
  745. TextDrawFont(TD_RegSpawn[6], 2);
  746. TextDrawSetProportional(TD_RegSpawn[6], 1);
  747. TextDrawSetShadow(TD_RegSpawn[6], 0);
  748.  
  749. TD_RegSpawn[7] = TextDrawCreate(325.999969, 350.377868, "LD_SPAC:white");
  750. TextDrawLetterSize(TD_RegSpawn[7], 0.000000, 0.000000);
  751. TextDrawTextSize(TD_RegSpawn[7], 60.299999, 9.000000);
  752. TextDrawAlignment(TD_RegSpawn[7], 1);
  753. TextDrawColor(TD_RegSpawn[7], 202116607);
  754. TextDrawSetShadow(TD_RegSpawn[7], 0);
  755. TextDrawSetOutline(TD_RegSpawn[7], 0);
  756. TextDrawBackgroundColor(TD_RegSpawn[7], 255);
  757. TextDrawFont(TD_RegSpawn[7], 4);
  758. TextDrawSetProportional(TD_RegSpawn[7], 0);
  759. TextDrawSetShadow(TD_RegSpawn[7], 0);
  760.  
  761. TD_RegSpawn[8] = TextDrawCreate(326.000274, 350.377838, "LD_SPAC:white");
  762. TextDrawLetterSize(TD_RegSpawn[8], 0.000000, 0.000000);
  763. TextDrawTextSize(TD_RegSpawn[8], 10.000000, 9.000000);
  764. TextDrawAlignment(TD_RegSpawn[8], 1);
  765. TextDrawColor(TD_RegSpawn[8], 880286207);
  766. TextDrawSetShadow(TD_RegSpawn[8], 0);
  767. TextDrawSetOutline(TD_RegSpawn[8], 0);
  768. TextDrawBackgroundColor(TD_RegSpawn[8], 255);
  769. TextDrawFont(TD_RegSpawn[8], 4);
  770. TextDrawSetProportional(TD_RegSpawn[8], 0);
  771. TextDrawSetShadow(TD_RegSpawn[8], 0);
  772. TextDrawSetSelectable(TD_RegSpawn[8], true);
  773.  
  774. TD_RegSpawn[9] = TextDrawCreate(376.333526, 350.377838, "LD_SPAC:white");
  775. TextDrawLetterSize(TD_RegSpawn[9], 0.000000, 0.000000);
  776. TextDrawTextSize(TD_RegSpawn[9], 10.000000, 9.000000);
  777. TextDrawAlignment(TD_RegSpawn[9], 1);
  778. TextDrawColor(TD_RegSpawn[9], 880286207);
  779. TextDrawSetShadow(TD_RegSpawn[9], 0);
  780. TextDrawSetOutline(TD_RegSpawn[9], 0);
  781. TextDrawBackgroundColor(TD_RegSpawn[9], 255);
  782. TextDrawFont(TD_RegSpawn[9], 4);
  783. TextDrawSetProportional(TD_RegSpawn[9], 0);
  784. TextDrawSetShadow(TD_RegSpawn[9], 0);
  785. TextDrawSetSelectable(TD_RegSpawn[9], true);
  786. TextDrawSetSelectable(TD_RegSpawn[9], true);
  787.  
  788. TD_RegSpawn[10] = TextDrawCreate(349.333221, 349.288818, "195");
  789. TextDrawLetterSize(TD_RegSpawn[10], 0.179000, 1.015110);
  790. TextDrawAlignment(TD_RegSpawn[10], 1);
  791. TextDrawColor(TD_RegSpawn[10], -1);
  792. TextDrawSetShadow(TD_RegSpawn[10], 0);
  793. TextDrawSetOutline(TD_RegSpawn[10], 0);
  794. TextDrawBackgroundColor(TD_RegSpawn[10], 255);
  795. TextDrawFont(TD_RegSpawn[10], 2);
  796. TextDrawSetProportional(TD_RegSpawn[10], 1);
  797. TextDrawSetShadow(TD_RegSpawn[10], 0);
  798.  
  799. TD_RegSpawn[11] = TextDrawCreate(327.333374, 349.703735, "<");
  800. TextDrawLetterSize(TD_RegSpawn[11], 0.243332, 1.031703);
  801. TextDrawAlignment(TD_RegSpawn[11], 1);
  802. TextDrawColor(TD_RegSpawn[11], -1);
  803. TextDrawSetShadow(TD_RegSpawn[11], 0);
  804. TextDrawSetOutline(TD_RegSpawn[11], 0);
  805. TextDrawBackgroundColor(TD_RegSpawn[11], 255);
  806. TextDrawFont(TD_RegSpawn[11], 3);
  807. TextDrawSetProportional(TD_RegSpawn[11], 1);
  808. TextDrawSetShadow(TD_RegSpawn[11], 0);
  809.  
  810. TD_RegSpawn[12] = TextDrawCreate(379.000274, 349.288879, ">");
  811. TextDrawLetterSize(TD_RegSpawn[12], 0.252999, 1.069036);
  812. TextDrawAlignment(TD_RegSpawn[12], 1);
  813. TextDrawColor(TD_RegSpawn[12], -1);
  814. TextDrawSetShadow(TD_RegSpawn[12], 0);
  815. TextDrawSetOutline(TD_RegSpawn[12], 0);
  816. TextDrawBackgroundColor(TD_RegSpawn[12], 255);
  817. TextDrawFont(TD_RegSpawn[12], 3);
  818. TextDrawSetProportional(TD_RegSpawn[12], 1);
  819. TextDrawSetShadow(TD_RegSpawn[12], 0);
  820.  
  821. TD_RegSpawn[13] = TextDrawCreate(268.333435, 376.096191, "LD_SPAC:white");
  822. TextDrawLetterSize(TD_RegSpawn[13], 0.000000, 0.000000);
  823. TextDrawTextSize(TD_RegSpawn[13], 58.000000, 10.000000);
  824. TextDrawAlignment(TD_RegSpawn[13], 1);
  825. TextDrawColor(TD_RegSpawn[13], 817045247);
  826. TextDrawSetShadow(TD_RegSpawn[13], 0);
  827. TextDrawSetOutline(TD_RegSpawn[13], 0);
  828. TextDrawBackgroundColor(TD_RegSpawn[13], 255);
  829. TextDrawFont(TD_RegSpawn[13], 4);
  830. TextDrawSetProportional(TD_RegSpawn[13], 0);
  831. TextDrawSetShadow(TD_RegSpawn[13], 0);
  832. TextDrawSetSelectable(TD_RegSpawn[13], true);
  833.  
  834. TD_RegSpawn[14] = TextDrawCreate(331.333374, 376.096130, "LD_SPAC:white");
  835. TextDrawLetterSize(TD_RegSpawn[14], 0.000000, 0.000000);
  836. TextDrawTextSize(TD_RegSpawn[14], 58.000000, 10.000000);
  837. TextDrawAlignment(TD_RegSpawn[14], 1);
  838. TextDrawColor(TD_RegSpawn[14], -350347521);
  839. TextDrawSetShadow(TD_RegSpawn[14], 0);
  840. TextDrawSetOutline(TD_RegSpawn[14], 0);
  841. TextDrawBackgroundColor(TD_RegSpawn[14], 255);
  842. TextDrawFont(TD_RegSpawn[14], 4);
  843. TextDrawSetProportional(TD_RegSpawn[14], 0);
  844. TextDrawSetShadow(TD_RegSpawn[14], 0);
  845. TextDrawSetSelectable(TD_RegSpawn[14], true);
  846.  
  847. TD_RegSpawn[15] = TextDrawCreate(281.666656, 376.666656, "Buying");
  848. TextDrawLetterSize(TD_RegSpawn[15], 0.209665, 0.824295);
  849. TextDrawAlignment(TD_RegSpawn[15], 1);
  850. TextDrawColor(TD_RegSpawn[15], -1);
  851. TextDrawSetShadow(TD_RegSpawn[15], 0);
  852. TextDrawSetOutline(TD_RegSpawn[15], 0);
  853. TextDrawBackgroundColor(TD_RegSpawn[15], 255);
  854. TextDrawFont(TD_RegSpawn[15], 2);
  855. TextDrawSetProportional(TD_RegSpawn[15], 1);
  856. TextDrawSetShadow(TD_RegSpawn[15], 0);
  857.  
  858. TD_RegSpawn[16] = TextDrawCreate(350.666625, 376.666564, "Exit");
  859. TextDrawLetterSize(TD_RegSpawn[16], 0.209665, 0.824295);
  860. TextDrawAlignment(TD_RegSpawn[16], 1);
  861. TextDrawColor(TD_RegSpawn[16], -1);
  862. TextDrawSetShadow(TD_RegSpawn[16], 0);
  863. TextDrawSetOutline(TD_RegSpawn[16], 0);
  864. TextDrawBackgroundColor(TD_RegSpawn[16], 255);
  865. TextDrawFont(TD_RegSpawn[16], 2);
  866. TextDrawSetProportional(TD_RegSpawn[16], 1);
  867. TextDrawSetShadow(TD_RegSpawn[16], 0);
  868. }
  869.  
  870.  
  871. stock Random(min, max)
  872. {
  873. new a = random(max - min) + min;
  874. return a;
  875. }
  876. stock RemovePlayerInfo(playerid)
  877. {
  878. //String
  879. pInfo[playerid][pID] = 0;
  880.  
  881. PlayerRegInfo[playerid][Gender] = 0;
  882. PlayerRegInfo[playerid][Rassa] = 0;
  883. PlayerRegInfo[playerid][Skin] = 0;
  884.  
  885. ChangeSkinReg[playerid] = 0;
  886.  
  887. //String
  888. pInfo[playerid][pName][0] = EOS;
  889. pInfo[playerid][pPassword][0] = EOS;
  890.  
  891. PlayerRegInfo[playerid][Password][0] = EOS;
  892. PlayerRegInfo[playerid][Email][0] = EOS;
  893. PlayerRegInfo[playerid][Ref][0] = EOS;
  894. //Float
  895. return 1;
  896. }
  897. stock CreateNewAccount(playerid, password[])
  898. {
  899. new query_string[125+MAX_PLAYER_NAME-4+30+50+24+1+1+3];
  900.  
  901. format(query_string, sizeof(query_string), "\
  902. INSERT INTO\
  903. `accounts`\
  904. (`Name`, `Password`, `Email`, `Refferal`, `Gender`, `Race`, `Skin`)\
  905. VALUES\
  906. ('%s', '%s', '%s', '%s', '%d', '%d', '%d')\
  907. ",pInfo[playerid][pName], password, PlayerRegInfo[playerid][Email],PlayerRegInfo[playerid][Ref],PlayerRegInfo[playerid][Gender],PlayerRegInfo[playerid][Rassa],PlayerRegInfo[playerid][Skin]);
  908. mysql_tquery(mysql_connect_ID, query_string, "UploadPlayerAccountNumber", "i", playerid);
  909. print(query_string);
  910. if(pInfo[playerid][pLevel] == 0)
  911. {
  912. AccWriteInt(pInfo[playerid][pName],"Level", 1);
  913. SetPlayerScore(playerid,pInfo[playerid][pLevel]);
  914. format(query_string, sizeof(query_string), "Аккаунт %s успешно зарегистрирован. Администрация желает Вам приятной игры!", pInfo[playerid][pName]);
  915. SendClientMessage(playerid, 0xFFFFFF00, query_string);
  916. for(new i; i < sizeof(TD_RegSpawn); i++) TextDrawHideForPlayer(playerid,TD_RegSpawn[i]);
  917. CancelSelectTextDraw(playerid);
  918. SpawnPlayer(playerid);
  919. }
  920. return 1;
  921. }
  922.  
  923. AccWriteInt(nick[],namestr[],intr)
  924. {
  925. new query_string[54+(MAX_PLAYER_NAME-4)+22];
  926. format(query_string, sizeof(query_string), "UPDATE `accounts` SET `%s` = '%d' WHERE BINARY `Name` = '%s'",namestr,intr,nick);
  927. mysql_query(mysql_connect_ID, query_string, false);
  928. return 1;
  929. }
  930. AccWriteFloat(nick[],namestr[],Float:intr)
  931. {
  932. new query_string[54+(MAX_PLAYER_NAME-4)+26];
  933. format(query_string, sizeof(query_string), "UPDATE `accounts` SET `%s` = '%f' WHERE BINARY `Name` = '%s'",namestr,intr,nick);
  934. mysql_query(mysql_connect_ID, query_string, false);
  935. return 1;
  936. }
  937. AccWriteString(nick[],namestr[],intr[])
  938. {
  939. new query_string[54+(MAX_PLAYER_NAME-4)+35];
  940. format(query_string, sizeof(query_string), "UPDATE `accounts` SET `%s` = '%s' WHERE BINARY `Name` = '%s'",namestr,intr,nick);
  941. mysql_query(mysql_connect_ID, query_string, false);
  942. return 1;
  943. }
  944. stock CheckRegistration(playerid)
  945. {
  946. new register_string[64+74+50+30+39+51+35+31+1000];
  947. new password[31],email[50],refer[24];
  948.  
  949. format(password, sizeof(password), "%s", PlayerRegInfo[playerid][Password]);
  950. format(email, sizeof(email), "%s", PlayerRegInfo[playerid][Email]);
  951. format(refer, sizeof(refer), "%s", PlayerRegInfo[playerid][Ref]);
  952.  
  953. new skin = PlayerRegInfo[playerid][Skin];
  954. new race = PlayerRegInfo[playerid][Rassa];
  955. new gender = PlayerRegInfo[playerid][Gender];
  956.  
  957. new check_race[25],check_gender[20];
  958. switch(gender)
  959. {
  960. case 1: format(check_gender, sizeof(check_gender), "{4582A1}Мужской");
  961. case 2: format(check_gender, sizeof(check_gender), "{4582A1}Женский");
  962. default: format(check_gender, sizeof(check_gender), "{AA3333}Не выбран");
  963. }
  964. switch(race)
  965. {
  966. case 1: format(check_race, sizeof(check_race), "{4582A1}Афроамереканец");
  967. case 2: format(check_race, sizeof(check_race), "{4582A1}Европеец");
  968. case 3: format(check_race, sizeof(check_race), "{4582A1}Азиат");
  969. default: format(check_race, sizeof(check_race), "{AA3333}Не выбрана");
  970. }
  971.  
  972. format(register_string, sizeof(register_string), "{FFFFFF}Пароль: %s%s\n{FFFFFF}", (strlen(password) > 1) ? ("{4582A1}") : ("{AA3333}"),(strlen(password) > 1) ? (password) : ("Не задан"));
  973. format(register_string, sizeof(register_string), "%sПочта: %s%s\n{FFFFFF}", register_string, (strlen(email) > 1) ? ("{4582A1}") : ("{AA3333}"),(strlen(email) > 1) ? (email) : ("Не задан"));
  974. format(register_string, sizeof(register_string), "%sРеферал: %s%s\n{FFFFFF}", register_string, (strlen(refer) > 1) ? ("{4582A1}") : ("{AA3333}"),(strlen(refer) > 1) ? (refer) : ("Не задан"));
  975. format(register_string, sizeof(register_string), "%sПол: %s%s\n{FFFFFF}", register_string, (strlen(check_gender) > 1) ? ("{4582A1}") : ("{AA3333}"),(strlen(check_gender) > 1) ? (check_gender) : ("Не Выбран"));
  976. format(register_string, sizeof(register_string), "%sНациональность: %s%s\n{FFFFFF}", register_string, (check_race) ? ("{4582A1}") : ("{AA3333}"),(strlen(check_race) > 1) ? (check_race) : ("Не Выбрана"));
  977. format(register_string, sizeof(register_string), "%sВнешность: %s\n{FFFFFF}",register_string, (skin) ? ("{4582A1}Выбрана") : ("{AA3333}"));
  978.  
  979. if(strlen(password) > 1 && strlen(email) > 1 && gender && race && skin) format(register_string, sizeof(register_string), "%s{4582A1}Продолжить регистрацию\n", register_string);
  980. else format(register_string, sizeof(register_string), "%s{AA3333}Продолжить регистрацию\n", register_string);
  981.  
  982. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_LIST, "{FFFFFF}Регистрация на {AA3333}"NAME_SERVER"",register_string, "Далее", "Отмена");
  983. return true;
  984. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement