Advertisement
Nyft_

Salvar armas DOF2 ~NYFT

May 4th, 2022 (edited)
750
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include a_samp
  2. #include dof2
  3. #include sscanf2
  4. #include pawn.cmd
  5. #include <YSI_Coding\y_va>
  6.  
  7. main(){}
  8.  
  9. public OnGameModeExit()
  10. {
  11.     DOF2::Exit();
  12.     return 1;
  13. }
  14.  
  15. GetPlayerNamef(playerid)
  16. {
  17.     new name[MAX_PLAYER_NAME];
  18.     GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  19.     return name;
  20. }
  21.  
  22. GetWeaponNamef(weaponid)
  23. {
  24.     new name[16];
  25.     GetWeaponName(weaponid, name, 16);
  26.     return name;
  27. }
  28.  
  29. playerFile(playerid)
  30. {
  31.     new file[MAX_PLAYER_NAME + 16];
  32.     format(file, sizeof(file), "Contas/%s.ini", GetPlayerNamef(playerid));
  33.     return file;
  34. }
  35.  
  36. IsPlayerArmed(playerid)
  37. {
  38.     new weapons[2];
  39.  
  40.     for(new i; i < 13; i++)
  41.     {
  42.         GetPlayerWeaponData(playerid, i, weapons[0], weapons[1]);
  43.  
  44.         if(weapons[0] != 0)
  45.             return 1;
  46.     }
  47.     return 0;
  48. }
  49.  
  50. CMD:armar(playerid, params[])
  51. {
  52.     if(!IsPlayerAdmin(playerid))
  53.         return SendClientMessage(playerid, -1, "* Você não tem permissão.");
  54.  
  55.     new id, weaponid, ammo;
  56.  
  57.     if(sscanf(params, "uii", id, weaponid, ammo))
  58.         return SendClientMessage(playerid, -1, "* /armar (id) (arma-id) (munição)");
  59.        
  60.     if(!IsPlayerConnected(id))
  61.         return SendClientMessage(playerid, -1, "* ID inválido.");
  62.  
  63.     if(!(1 <= weaponid <= 46))
  64.         return SendClientMessage(playerid, -1, "* Arma inválida.");
  65.  
  66.     if(ammo <= 0)
  67.         return SendClientMessage(playerid, -1, "* Munição inválida.");
  68.  
  69.     GivePlayerWeapon(id, weaponid, ammo);
  70.     va_SendClientMessage(playerid, -1, "* Você armou o jogador %s com a arma %s com %i de munição.", GetPlayerNamef(id), GetWeaponNamef(weaponid), ammo);
  71.     return 1;
  72. }
  73. CMD:salvar(playerid)
  74. {
  75.     if(!IsPlayerArmed(playerid))
  76.         return SendClientMessage(playerid, -1, "* Você não possui nenhuma arma.");
  77.  
  78.     new weapons[2], weapStr[16];
  79.    
  80.     if(!DOF2::FileExists(playerFile(playerid)))
  81.         DOF2::CreateFile(playerFile(playerid));
  82.  
  83.     for(new i; i < 13; i++)
  84.     {
  85.         GetPlayerWeaponData(playerid, i, weapons[0], weapons[1]);
  86.  
  87.         if(weapons[0] != 0)
  88.         {
  89.             format(weapStr, sizeof(weapStr), "arma-%i", i);
  90.             DOF2::SetInt(playerFile(playerid), weapStr, weapons[0]);
  91.  
  92.             format(weapStr, sizeof(weapStr), "munição-%i", i);
  93.             DOF2::SetInt(playerFile(playerid), weapStr, weapons[1]);
  94.         }
  95.     }
  96.     DOF2::SaveFile();
  97.     SendClientMessage(playerid, -1, "* Você salvou todas as suas armas em sua conta.");
  98.     return 1;
  99. }
  100. CMD:carregar(playerid)
  101. {
  102.     if(!DOF2::FileExists(playerFile(playerid)))
  103.         return SendClientMessage(playerid, -1, "* Você não tem armas para carregar.");
  104.        
  105.     new weapStr[10], ammoStr[16];
  106.  
  107.     for(new i; i < 13; i++)
  108.     {
  109.         format(weapStr, sizeof(weapStr), "arma-%i", i);
  110.         format(ammoStr, sizeof(ammoStr), "munição-%i", i);
  111.         GivePlayerWeapon(playerid, DOF2::GetInt(playerFile(playerid), weapStr), DOF2::GetInt(playerFile(playerid), ammoStr));
  112.     }
  113.     SendClientMessage(playerid, -1, "* Você carregou todas as armas salvas em sua conta.");
  114.     return 1;
  115. }
Advertisement
RAW Paste Data Copied
Advertisement