Advertisement
Guest User

REGISTRO/LOGIN - NYFT

a guest
Jan 21st, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.35 KB | None | 0 0
  1. #include <a_samp>
  2. #include <DOF2>
  3.  
  4. //
  5.  
  6. #define DIALOG_REGISTRO 1
  7. #define DIALOG_LOGIN 2
  8. #define DIALOG_SEXO 3
  9.  
  10. //
  11.  
  12. enum P_INFO
  13. {
  14. Nome[21],
  15. Senha[17],
  16.  
  17. bool:Logado,
  18.  
  19. Float:upX, // Última Pos X
  20. Float:upY, // Última Pos Y
  21. Float:upZ, // Última Pos Z
  22. Float:upA // Última Pos A
  23. };
  24.  
  25. new Player[MAX_PLAYERS][P_INFO];
  26.  
  27. main(){}
  28.  
  29. public OnGameModeInit()
  30. {
  31. SetGameModeText("REGISTRO/LOGIN");
  32. return 1;
  33. }
  34.  
  35. public OnGameModeExit()
  36. {
  37. DOF2::Exit();
  38. return 1;
  39. }
  40.  
  41. public OnPlayerRequestClass(playerid, classid)
  42. {
  43. if(!DOF2::FileExists(Conta(playerid)))
  44. {
  45. new DIALOG[120];
  46.  
  47. format(DIALOG, sizeof(DIALOG), "{3CB371}Usuário: {FFFFFF}%s\n\nInsira uma senha para registrar-se:", Player[playerid][Nome]);
  48. ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FF4500}Registro", DIALOG, "Registrar", "Sair");
  49. }
  50. else if(DOF2::FileExists(Conta(playerid)))
  51. {
  52. new DIALOG[150];
  53.  
  54. format(DIALOG, sizeof(DIALOG), "{3CB371}Usuário: {FFFFFF}%s\n\nInsira uma senha para logar-se:", Player[playerid][Nome]);
  55. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FF4500}Login", DIALOG, "Logar", "Sair");
  56. }
  57. return 1;
  58. }
  59.  
  60. public OnPlayerConnect(playerid)
  61. {
  62. GetPlayerName(playerid, Player[playerid][Nome], 20);
  63. return 1;
  64. }
  65.  
  66. public OnPlayerDisconnect(playerid, reason)
  67. {
  68. SalvarConta(playerid);
  69. return 1;
  70. }
  71.  
  72. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  73. {
  74. if(dialogid == DIALOG_REGISTRO)
  75. {
  76. if(!response)
  77. {
  78. Kick(playerid);
  79. return 1;
  80. }
  81. if(!(4 <= strlen(inputtext) <= 16))
  82. {
  83. new DIALOG[150];
  84.  
  85. format(DIALOG, sizeof(DIALOG), "{3CB371}Usuário: {FFFFFF}%s\n\nInsira uma senha para registrar-se:\n\n* Insira uma senha entre 4 a 16 caracteres", Player[playerid][Nome]);
  86. ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FF4500}Registro", DIALOG, "Registrar", "Sair");
  87. return 1;
  88. }
  89. format(Player[playerid][Senha], 16, inputtext);
  90.  
  91. DOF2::CreateFile(Conta(playerid));
  92. DOF2::SetString(Conta(playerid), "Senha", Player[playerid][Senha]);
  93. DOF2::SetInt(Conta(playerid), "Dinheiro", GivePlayerMoney(playerid, 1000));
  94. DOF2::SetInt(Conta(playerid), "Level", SetPlayerScore(playerid, 0));
  95. DOF2::SetInt(Conta(playerid), "Skin", SetPlayerSkin(playerid, 0));
  96.  
  97. DOF2::SetFloat(Conta(playerid), "X", Player[playerid][upX] = 1958.3783);
  98. DOF2::SetFloat(Conta(playerid), "Y", Player[playerid][upY] = 1343.1572);
  99. DOF2::SetFloat(Conta(playerid), "Z", Player[playerid][upZ] = 15.3746);
  100. DOF2::SetFloat(Conta(playerid), "A", Player[playerid][upA] = 270.0000);
  101. DOF2::SaveFile();
  102.  
  103. /* --------------- */
  104.  
  105. ShowPlayerDialog(playerid, DIALOG_SEXO, DIALOG_STYLE_MSGBOX, "{FF4500}Sexualidade", "{FFFFFF}Informe sua sexualidade abaixo:", "Masculino", "Feminino");
  106. }
  107. if(dialogid == DIALOG_SEXO)
  108. {
  109. if(response)
  110. {
  111. SetSpawnInfo(playerid, 0, 60, Player[playerid][upX], Player[playerid][upY], Player[playerid][upZ], Player[playerid][upA], 0, 0, 0, 0, 0, 0);
  112. Player[playerid][Logado] = true;
  113. SetCameraBehindPlayer(playerid);
  114. SpawnPlayer(playerid);
  115. }
  116. else
  117. {
  118. SetSpawnInfo(playerid, 0, 56, Player[playerid][upX], Player[playerid][upY], Player[playerid][upZ], Player[playerid][upA], 0, 0, 0, 0, 0, 0);
  119. Player[playerid][Logado] = true;
  120. SetCameraBehindPlayer(playerid);
  121. SpawnPlayer(playerid);
  122. }
  123. }
  124. if(dialogid == DIALOG_LOGIN)
  125. {
  126. if(!response)
  127. {
  128. Kick(playerid);
  129. return 1;
  130. }
  131. if(!strlen(inputtext))
  132. {
  133. new DIALOG[120];
  134.  
  135. format(DIALOG, sizeof(DIALOG), "{3CB371}Usuário: {FFFFFF}%s\n\nInsira uma senha para logar-se:", Player[playerid][Nome]);
  136. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FF4500}Login", DIALOG, "Logar", "Sair");
  137. return 1;
  138. }
  139. format(Player[playerid][Senha], 16, DOF2::GetString(Conta(playerid), "Senha"));
  140.  
  141. if(!strcmp(inputtext, Player[playerid][Senha], true))
  142. {
  143. GivePlayerMoney(playerid, DOF2::GetInt(Conta(playerid), "Dinheiro"));
  144. SetPlayerScore(playerid, DOF2::GetInt(Conta(playerid), "Level"));
  145. SetPlayerSkin(playerid, DOF2::GetInt(Conta(playerid), "Skin"));
  146.  
  147. Player[playerid][upX] = DOF2::GetFloat(Conta(playerid), "X");
  148. Player[playerid][upY] = DOF2::GetFloat(Conta(playerid), "Y");
  149. Player[playerid][upZ] = DOF2::GetFloat(Conta(playerid), "Z");
  150. Player[playerid][upA] = DOF2::GetFloat(Conta(playerid), "A");
  151.  
  152. /* --------------- */
  153.  
  154. SetSpawnInfo(playerid, 0, GetPlayerSkin(playerid), Player[playerid][upX], Player[playerid][upY], Player[playerid][upZ], Player[playerid][upA], 0, 0, 0, 0, 0, 0);
  155. Player[playerid][Logado] = true;
  156. SetCameraBehindPlayer(playerid);
  157. SpawnPlayer(playerid);
  158. }
  159. else
  160. {
  161. new DIALOG[150];
  162.  
  163. format(DIALOG, sizeof(DIALOG), "{3CB371}Usuário: {FFFFFF}%s\n\nInsira uma senha para logar-se:\n\n* Senha incorreta", Player[playerid][Nome]);
  164. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FF4500}Login", DIALOG, "Logar", "Sair");
  165. }
  166. }
  167. return 1;
  168. }
  169.  
  170. //
  171.  
  172. SalvarConta(playerid)
  173. {
  174. if(DOF2::FileExists(Conta(playerid)) && Player[playerid][Logado])
  175. {
  176. GetPlayerPos(playerid, Player[playerid][upX], Player[playerid][upY], Player[playerid][upZ]);
  177. GetPlayerFacingAngle(playerid, Player[playerid][upA]);
  178.  
  179. DOF2::SetInt(Conta(playerid), "Dinheiro", GetPlayerMoney(playerid));
  180. DOF2::SetInt(Conta(playerid), "Level", GetPlayerScore(playerid));
  181. DOF2::SetInt(Conta(playerid), "Skin", GetPlayerSkin(playerid));
  182.  
  183. DOF2::SetFloat(Conta(playerid), "X", Player[playerid][upX]);
  184. DOF2::SetFloat(Conta(playerid), "Y", Player[playerid][upY]);
  185. DOF2::SetFloat(Conta(playerid), "Z", Player[playerid][upZ]);
  186. DOF2::SetFloat(Conta(playerid), "A", Player[playerid][upA]);
  187. DOF2::SaveFile();
  188.  
  189. //
  190.  
  191. Player[playerid][Logado] = false;
  192. Player[playerid][upX] = 0.0;
  193. Player[playerid][upY] = 0.0;
  194. Player[playerid][upZ] = 0.0;
  195. Player[playerid][upA] = 0.0;
  196. }
  197. return 1;
  198. }
  199.  
  200. Conta(playerid)
  201. {
  202. new file[40];
  203. format(file, sizeof(file), "Contas/%s.ini", Player[playerid][Nome]);
  204. return file;
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement