Advertisement
Vict9r

Sistema - Criar sala com senha

Jul 15th, 2021
808
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.90 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf> // Mude para o nome da sua variavel
  4.  
  5. enum ARInfo
  6. {
  7. Password,
  8. QuantMax,
  9. Quant,
  10. Arma,
  11. Float:PosX,
  12. Float:PosY,
  13. Float:PosZ,
  14. bool:ArenaAti
  15. }
  16. new ArenasInfo[MAX_PLAYERS][ARInfo];
  17. new String[255];
  18. new Arena[MAX_PLAYERS];
  19.  
  20.  
  21. main()
  22. {
  23. print("\n--------------------------------------\n");
  24. print("By:Vict9r\n");
  25. print("Sistema de Arena Privada 1.0 \n");
  26. print("--------------------------------------\n");
  27. }
  28.  
  29.  
  30. public OnPlayerConnect(playerid)
  31. {
  32. ArenasInfo[playerid][Password] = 0;
  33. ArenasInfo[playerid][QuantMax] = 0;
  34. ArenasInfo[playerid][Quant] = 0;
  35. ArenasInfo[playerid][Arma] = 0;
  36. ArenasInfo[playerid][ArenaAti] = false;
  37. Arena[playerid] = -1;
  38. return 1;
  39. }
  40. public OnPlayerSpawn(playerid)
  41. {
  42. if(Arena[playerid] >= 0)
  43. {
  44. SetPlayerVirtualWorld(playerid, Arena[playerid]);
  45. SetPlayerPos(playerid, ArenasInfo[Arena[playerid]][PosX], ArenasInfo[Arena[playerid]][PosY], ArenasInfo[Arena[playerid]][PosZ]);
  46. GivePlayerWeapon(playerid, ArenasInfo[Arena[playerid]][Arma], 500);
  47. }
  48. return 1;
  49. }
  50. CMD:criararena(playerid, params[])
  51. {
  52. new MaxPlayers,WeaponID,Pass;
  53. if(sscanf(params,"iii",MaxPlayers, WeaponID,Pass)) return SendClientMessage(playerid,-1,"/criararena [Quantidade de Jogadores] [ID ARMA] [SENHA DA SALA]");
  54. if(ArenasInfo[playerid][ArenaAti] == true) return SendClientMessage(playerid,-1,"{FE2E2E} Erro - {FFFFFF} Voce ja possue uma arena criada!. /deletearena");
  55. ArenasInfo[playerid][Password] = Pass;
  56. ArenasInfo[playerid][QuantMax] = MaxPlayers;
  57. ArenasInfo[playerid][Quant] = 1;
  58. ArenasInfo[playerid][Arma] = WeaponID;
  59. ArenasInfo[playerid][ArenaAti] = true;
  60. new Float:X, Float:Y, Float:Z;
  61. GetPlayerPos(playerid, X, Y, Z);
  62. ArenasInfo[playerid][PosX] = X;
  63. ArenasInfo[playerid][PosY] = Y;
  64. ArenasInfo[playerid][PosZ] = Z;
  65. SetPlayerVirtualWorld(playerid, playerid);
  66. Arena[playerid] = playerid;
  67. format(String,sizeof(String),"{BF00FF}(%s) {FFFFFF} Criou arena com senha. (Quantidade de Jogadores Maximo: %i | ID Weapon: %i)",PlayerName(playerid),MaxPlayers, WeaponID);
  68. SendClientMessageToAll(-1, String);
  69. return 1;
  70. }
  71. CMD:enterarena(playerid, params[])
  72. {
  73. new playeID,Pass;
  74. if(sscanf(params,"ii",playeID,Pass)) return SendClientMessage(playerid,-1,"/enterarena [ID DO JOGADOR] [SENHA DA SALA]");
  75. if(ArenasInfo[playeID][Password] != Pass) return SendClientMessage(playerid,-1,"{FE2E2E} Erro - {FFFFFF} Voce coloco a senha errada!!.");
  76. if(ArenasInfo[playeID][ArenaAti] == false) return SendClientMessage(playerid,-1,"{FE2E2E} Erro - {FFFFFF} Esse jogador nao possue uma arena criada!.");
  77. if(ArenasInfo[playeID][Quant] >= ArenasInfo[playeID][QuantMax]) return SendClientMessage(playerid,-1,"{FE2E2E} Erro - {FFFFFF} Quantidade maxima atingida!.");
  78. SetPlayerVirtualWorld(playerid, playeID);
  79. SetPlayerPos(playerid, ArenasInfo[playeID][PosX], ArenasInfo[playeID][PosY], ArenasInfo[playeID][PosZ]);
  80. Arena[playerid] = playeID;
  81. ArenasInfo[playeID][Quant] ++;
  82. GivePlayerWeapon(playerid, ArenasInfo[playeID][Arma], 500);
  83. format(String,sizeof(String),"{BF00FF}(%s) {FFFFFF} Entro na arena do jogador %s. (Quantidade de Jogadores: %i | ID Weapon: %i)",PlayerName(playerid),PlayerName(playeID),ArenasInfo[playeID][Quant], ArenasInfo[playeID][Arma]);
  84. SendClientMessageToAll(-1, String);
  85. return 1;
  86. }
  87. CMD:exitarena(playerid)
  88. {
  89. if(ArenasInfo[Arena[playerid]][ArenaAti] == false) return SendClientMessage(playerid,-1,"{FE2E2E} Erro - {FFFFFF} Esse jogador nao possue uma arena criada!.");
  90. SetPlayerVirtualWorld(playerid, 0);
  91. ArenasInfo[Arena[playerid]][Quant] --;
  92. format(String,sizeof(String),"{BF00FF}(%s) {FFFFFF} Saiu da arena do jogador %s. (Quantidade de Jogadores: %i | ID Weapon: %i)",PlayerName(playerid),PlayerName(Arena[playerid]),ArenasInfo[Arena[playerid]][Quant], ArenasInfo[Arena[playerid]][Arma]);
  93. SendClientMessageToAll(-1, String);
  94. Arena[playerid] = -1;
  95. return 1;
  96. }
  97.  
  98. CMD:deletearena(playerid)
  99. {
  100. if(ArenasInfo[playerid][ArenaAti] == false) return SendClientMessage(playerid,-1,"{FE2E2E} Erro - {FFFFFF} Voce nao possue uma arena criada!. /criararena");
  101. ArenasInfo[playerid][Password] = 0;
  102. ArenasInfo[playerid][QuantMax] = 0;
  103. ArenasInfo[playerid][Quant] = 0;
  104. ArenasInfo[playerid][Arma] = 0;
  105. ArenasInfo[playerid][ArenaAti] = false;
  106. Arena[playerid] = -1;
  107. format(String,sizeof(String),"{BF00FF}(%s) {FFFFFF} Deleto sua arena com senha.",PlayerName(playerid));
  108. SendClientMessageToAll(-1, String);
  109. for(new i; i != GetPlayerPoolSize(); ++i) // Pra quem tiver na casa
  110. {
  111. if(Arena[i] == playerid)
  112. {
  113. Arena[i] = -1;
  114. SetPlayerVirtualWorld(i, 0);
  115. SpawnPlayer(i);
  116. }
  117. }
  118. return 1;
  119. }
  120.  
  121.  
  122. stock PlayerName(playerid) {
  123. new nome[MAX_PLAYER_NAME];
  124. GetPlayerName(playerid,nome,100);
  125. return nome;
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement