Advertisement
RogerGomesCosta

Gamemode Tuning

Apr 8th, 2014
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 12.72 KB | None | 0 0
  1. // Includes
  2. #include <a_samp>
  3. #include <SII>
  4. #include <sscanf2>
  5. #include <foreach>
  6. #include <YSI/y_timers>
  7. #include <zcmd>
  8.  
  9.  
  10. // Definições
  11. #file                           "LS Free Roam"
  12.  
  13. #define MAX_PLAYER              30
  14.  
  15. #define ColourBlue              0x2693FFFF
  16. #define ColourRed               0xFF2626FF
  17. #define ColourYellow            0xFFFF4DFF
  18. #define ColourPink              0xFF73FFFF
  19. #define ColourGreen             0x26FF26FF
  20. #define ColourWhite             0xFFFFFFFF
  21. #define ColourGold              0xFFD700FF
  22.  
  23. #define FOREACH_NO_PLAYERS
  24. #define FOREACH_NO_BOTS
  25.  
  26. #define Dialogo_Register        1
  27. #define Dialogo_Login           2
  28.  
  29.  
  30. main()
  31. {
  32.     print("\n* L.S.R.S. - Los Santos Free Roam");
  33.     print("# Iniciado em 13/03/2013");
  34.     print("@ Criado por Roger Gomes Costa\n");
  35. }
  36.  
  37.  
  38. // --------------------------------------------
  39. // ---------- Definindo novas variáveis/funções
  40.  
  41. new Iterator:TotalPlayers<MAX_PLAYER>;
  42.  
  43. new Text:txtDeath, Text:txtBox, Text:txtModeName, Text:txtDate, Text:txtVehDistrict;
  44. new Text:txtInfoPlayer[MAX_PLAYERS], Text:txtInfoPlayer2[MAX_PLAYER];
  45.  
  46. new AmmuPickup;
  47. new bool:PlayerDialog[MAX_PLAYER];
  48.  
  49. enum PLAYER_INFO
  50. {
  51.     Registered, Logged, pSkin, pMoney, pName[24], pFile[100], Float:pX, Float:pY, Float:pZ, Float:pA, pInterior
  52. }
  53. new PlayerInfo[MAX_PLAYER][PLAYER_INFO];
  54.  
  55. enum Vehicles
  56. {
  57.     VehID;
  58.     VehName[50],
  59.     VehSpoiler,
  60.     VehHood,
  61.     VehRoof,
  62.     VehSideskirt,
  63.     VehLamps,
  64.     VehNitro,
  65.     VehExhaust,
  66.     VehWheels,
  67.     VehStereo,
  68.     VehHydraulics,
  69.     VehFB,
  70.     VehRB,
  71.     VehVR,
  72.     VehVL
  73. }
  74. new PlayerVehicle[MAX_PLAYERS][3][Vehicles];
  75.  
  76. native WP_Hash(buffer[], len, const str[]);
  77.  
  78. public OnGameModeInit()
  79. {
  80.     SetGameModeText("Los Santos F.R.");
  81.     DisableInteriorEnterExits();
  82.     DisableNameTagLOS(); // Jogadores não podem ver atraves das paredes...
  83.     ShowNameTags(1);
  84.     SetNameTagDrawDistance(10.0);
  85.     ShowPlayerMarkers(2);
  86.     //LimitPlayerMarkerRadius(10.0);
  87.     LimitGlobalChatRadius(10.0);
  88.     UsePlayerPedAnims();
  89.     AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
  90.    
  91.     AmmuPickup = CreatePickup(355, 1, 2447.3491, -1979.7495, 13.5539, 0);
  92.    
  93.     CreateTextdraws();
  94.     return true;
  95. }
  96.  
  97. forward CreateTextdraws();
  98. public CreateTextdraws()
  99. {
  100.     // Box preta com transparência cobrindo a tela
  101.     txtBox = TextDrawCreate(322.000000, -3.000000, "New Textdraw");
  102.     TextDrawAlignment(txtBox, 2);
  103.     TextDrawBackgroundColor(txtBox, 255);
  104.     TextDrawFont(txtBox, 1);
  105.     TextDrawLetterSize(txtBox, 0.500000, 52.300003);
  106.     TextDrawColor(txtBox, -1);
  107.     TextDrawSetOutline(txtBox, 0);
  108.     TextDrawSetProportional(txtBox, 1);
  109.     TextDrawSetShadow(txtBox, 1);
  110.     TextDrawUseBox(txtBox, 1);
  111.     TextDrawBoxColor(txtBox, 112);
  112.     TextDrawTextSize(txtBox, 30.000000, 652.000000);
  113.     TextDrawSetSelectable(txtBox, 0);
  114.     // Mensagem de SE FODEO na tela ao morrer...
  115.     txtDeath = TextDrawCreate(317.000000, 189.000000, "~r~~h~SE FODEO");
  116.     TextDrawAlignment(txtDeath, 2);
  117.     TextDrawBackgroundColor(txtDeath, 255);
  118.     TextDrawFont(txtDeath, 3);
  119.     TextDrawLetterSize(txtDeath, 0.690000, 2.399999);
  120.     TextDrawColor(txtDeath, -16776961);
  121.     TextDrawSetOutline(txtDeath, 1);
  122.     TextDrawSetProportional(txtDeath, 1);
  123.     TextDrawSetSelectable(txtDeath, 0);
  124.     //
  125.     txtModeName = TextDrawCreate(582.000000, 425.000000, "LOs SAntos 2013");
  126.     TextDrawAlignment(txtModeName, 2);
  127.     TextDrawBackgroundColor(txtModeName, 255);
  128.     TextDrawFont(txtModeName, 0);
  129.     TextDrawLetterSize(txtModeName, 0.230000, 1.100000);
  130.     TextDrawColor(txtModeName, 255);
  131.     TextDrawSetOutline(txtModeName, 0);
  132.     TextDrawSetProportional(txtModeName, 1);
  133.     TextDrawSetShadow(txtModeName, 40);
  134.     TextDrawSetSelectable(txtModeName, 0);
  135.     //
  136.     txtDate = TextDrawCreate(582.000000, 436.000000, "18/09/2013 - 14:30");
  137.     TextDrawAlignment(txtDate, 2);
  138.     TextDrawBackgroundColor(txtDate, 255);
  139.     TextDrawFont(txtDate, 1);
  140.     TextDrawLetterSize(txtDate, 0.230000, 1.100000);
  141.     TextDrawColor(txtDate, -1);
  142.     TextDrawSetOutline(txtDate, 0);
  143.     TextDrawSetProportional(txtDate, 1);
  144.     TextDrawSetShadow(txtDate, 40);
  145.     TextDrawSetSelectable(txtDate, 0);
  146.     //
  147.     txtVehDistrict = TextDrawCreate(581.000000, 404.000000, "Turismo");
  148.     TextDrawAlignment(txtVehDistrict, 2);
  149.     TextDrawBackgroundColor(txtVehDistrict, 255);
  150.     TextDrawFont(txtVehDistrict, 1);
  151.     TextDrawLetterSize(txtVehDistrict, 0.219999, 1.200000);
  152.     TextDrawColor(txtVehDistrict, -1);
  153.     TextDrawSetOutline(txtVehDistrict, 0);
  154.     TextDrawSetProportional(txtVehDistrict, 1);
  155.     TextDrawSetShadow(txtVehDistrict, 100);
  156.     TextDrawSetSelectable(txtVehDistrict, 0);
  157.     //
  158.     for(new i = 0; i < MAX_PLAYER; i++)
  159.     {
  160.         txtInfoPlayer[i] = TextDrawCreate(320.000000, 123.000000, "Assalto Completo");
  161.         TextDrawAlignment(txtInfoPlayer[i], 2);
  162.         TextDrawBackgroundColor(txtInfoPlayer[i], 255);
  163.         TextDrawFont(txtInfoPlayer[i], 3);
  164.         TextDrawLetterSize(txtInfoPlayer[i], 0.370000, 2.099998);
  165.         TextDrawColor(txtInfoPlayer[i], -65281);
  166.         TextDrawSetOutline(txtInfoPlayer[i], 0);
  167.         TextDrawSetProportional(txtInfoPlayer[i], 1);
  168.         TextDrawSetShadow(txtInfoPlayer[i], 1);
  169.         TextDrawSetSelectable(txtInfoPlayer[i], 0);
  170.         //
  171.         txtInfoPlayer2[i] = TextDrawCreate(320.000000, 146.000000, "Dinheiro adquirido: R$500~n~Vezes que assaltou a Ammunation: 30");
  172.         TextDrawAlignment(txtInfoPlayer2[i], 2);
  173.         TextDrawBackgroundColor(txtInfoPlayer2[i], 255);
  174.         TextDrawFont(txtInfoPlayer2[i], 1);
  175.         TextDrawLetterSize(txtInfoPlayer2[i], 0.189999, 1.099997);
  176.         TextDrawColor(txtInfoPlayer2[i], -1);
  177.         TextDrawSetOutline(txtInfoPlayer2[i], 0);
  178.         TextDrawSetProportional(txtInfoPlayer2[i], 1);
  179.         TextDrawSetShadow(txtInfoPlayer2[i], 1);
  180.         TextDrawSetSelectable(txtInfoPlayer2[i], 0);
  181.     }
  182. }
  183.  
  184. public OnPlayerConnect(playerid)
  185. {
  186.     Itter_Add(TotalPlayers, playerid);
  187.    
  188.     new name[20] , str[128];
  189.     GetPlayerName(playerid, name, sizeof(name));
  190.     format(PlayerInfo[playerid][pName], 20, name);
  191.    
  192.     format(PlayerInfo[playerid][pFile], 100, "LSFR/Accounts/%s.ini", name);
  193.     if(INI_Exist(PlayerInfo[playerid][pFile]))
  194.     {
  195.         PlayerInfo[playerid][Registered] = 1;
  196.         PlayerInfo[playerid][Logged] = 0;
  197.         ShowPlayerDialog(playerid, Dialogo_Login, DIALOG_STYLE_PASSWORD, "{FFD700}Los Santos Free Roam", "{FFFFFF}Esta conta já está registrada no servidor, favor informar a senha:", "Logar", "Sair");
  198.     }
  199.     else
  200.     {
  201.         PlayerInfo[playerid][Registered] = 0;
  202.         PlayerInfo[playerid][Logged] = 0;
  203.         ShowPlayerDialog(playerid, Dialogo_Register, DIALOG_STYLE_PASSWORD, "{FFD700}Los Santos Free Roam", "{FFFFFF}Está conta não está cadastrada no servidor, informe uma senha:", "Cadastrar", "Sair");
  204.     }
  205.  
  206.     SendClientMessage(playerid, ColourWhite, " ");
  207.     SendClientMessage(playerid, ColourGold, "Los Santos {FFFFFF}Free Roam + Deathmatch");
  208.     SendClientMessage(playerid, ColourWhite, "Servidor ''baseado'' no GTA Online (GTA 5)");
  209.     SendClientMessage(playerid, ColourWhite, " ");
  210.    
  211.     GivePlayerMoney(playerid, 99999999999);
  212.    
  213.     format(str, sizeof str, "* %s (ID:%d) entrou no servidor.", name, playerid);
  214.     SendClientMessageToAll(ColourYellow, str);
  215.    
  216.     return true;
  217. }
  218.  
  219. public OnPlayerDisconnect(playerid, reason)
  220. {
  221.     Itter_Remove(TotalPlayers, playerid);
  222.     new posStr[100];
  223.     GetPlayerPos(playerid, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ]);
  224.     GetPlayerFacingAngle(playerid, PlayerInfo[playerid][pA]);
  225.     format(posStr, sizeof posStr, "%f %f %f %f", PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ], PlayerInfo[playerid][pA]);
  226.  
  227.     new name[20], str[128], reasonStr[20];
  228.     GetPlayerName(playerid, name, sizeof(name));
  229.     switch(reason)
  230.     {
  231.         case 0: reasonStr = "Crash";
  232.         case 1: reasonStr = "Quit";
  233.         case 2: reasonStr = "Kick/Ban";
  234.     }
  235.     format(str, sizeof str, "* %s (ID:%d) saiu do servidor (%s).", name, playerid, reasonStr);
  236.     SendClientMessageToAll(ColourYellow, str);
  237.    
  238.     PlayerInfo[playerid][pInterior] = GetPlayerInterior(playerid);
  239.    
  240.     INI_Open(PlayerInfo[playerid][pFile]);
  241.     INI_WriteString("Position", posStr);
  242.     INI_WriteInt("Money", PlayerInfo[playerid][pMoney]);
  243.     INI_WriteInt("Skin", PlayerInfo[playerid][pSkin]);
  244.     INI_WriteInt("Interior", PlayerInfo[playerid][pInterior]);
  245.     INI_Save();
  246.     INI_Close();
  247.     return true;
  248. }
  249.  
  250. public OnPlayerRequestClass(playerid, classid)
  251. {
  252.     if(PlayerInfo[playerid][Logged] == 1)
  253.     {
  254.         SetPlayerInterior(playerid, 3);
  255.         SetPlayerPos(playerid, 349.0453,193.2271,1014.1797);
  256.         SetPlayerFacingAngle(playerid, 286.25);
  257.         SetPlayerCameraPos(playerid, 352.9164,194.5702,1014.1875);
  258.         SetPlayerCameraLookAt(playerid, 349.0453,193.2271,1014.1797);
  259.     }
  260.     else
  261.     {
  262.         TogglePlayerSpectating(playerid, true);
  263.     }
  264.     return false;
  265. }
  266.  
  267. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  268. {
  269.     if(dialogid == Dialogo_Register)
  270.     {
  271.         if(!response) Kick(playerid);
  272.         else
  273.         {
  274.             new file[100], pass[130];
  275.             format(file, sizeof file, "LSFR/Accounts/%s.ini", PlayerInfo[playerid][pName]);
  276.             WP_Hash(pass, sizeof(pass), inputtext);
  277.             INI_Open(file);
  278.             INI_WriteString("Password", pass);
  279.             INI_WriteInt("Registered", 1);
  280.             INI_Save();
  281.             INI_Close();
  282.             PlayerInfo[playerid][Registered] = 0;
  283.             PlayerInfo[playerid][Logged] = 1;
  284.             SendClientMessage(playerid, ColourWhite, "* Conta cadastrada.");
  285.             PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  286.             SetSpawnInfo(playerid, NO_TEAM, 0, 1722.7843,-1713.9490,13.5114,181.5285, 24, 100, 0, 0, 0, 0);
  287.         }
  288.     }
  289.     else if(dialogid == Dialogo_Login)
  290.     {
  291.         if(!response) Kick(playerid);
  292.         else
  293.         {
  294.             new file[100], pass[130], enpass[130], pos[100];
  295.  
  296.             format(file, sizeof file, "LSFR/Accounts/%s.ini", PlayerInfo[playerid][pName]);
  297.             INI_Open(file);
  298.             WP_Hash(enpass, sizeof(enpass), inputtext);
  299.             INI_ReadString(pass, "Password");
  300.             if(strcmp(enpass, pass, true) == 0)
  301.             {
  302.                 SendClientMessage(playerid, ColourWhite, "* Conta autenticada.");
  303.                 PlayerInfo[playerid][Registered] = 1;
  304.                 PlayerInfo[playerid][Logged] = 1;
  305.                 INI_ReadString(pos, "Position");
  306.                 PlayerInfo[playerid][pSkin] = INI_ReadInt("Skin");
  307.                 PlayerInfo[playerid][pMoney] = INI_ReadInt("Money");
  308.                 PlayerInfo[playerid][pInterior] = INI_ReadInt("Interior");
  309.                 sscanf(pos, "ffff", PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ], PlayerInfo[playerid][pA]);
  310.                 SetSpawnInfo(playerid, NO_TEAM, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ], PlayerInfo[playerid][pA], 24, 100, 0, 0, 0, 0);
  311.             }
  312.             else ShowPlayerDialog(playerid, Dialogo_Login, DIALOG_STYLE_PASSWORD, "{FFD700}Los Santos Free Roam", "{FFFFFF}Esta conta já está registrada no servidor, favor informar a senha:", "Logar", "Sair");
  313.             INI_Close();
  314.         }
  315.     }
  316.     return true;
  317. }
  318.  
  319. public OnPlayerRequestSpawn(playerid)
  320. {
  321.     if(PlayerInfo[playerid][Logged] == 0) return false;
  322.     else
  323.     {
  324.         SetPlayerInterior(playerid, PlayerInfo[playerid][pInterior]);
  325.  
  326.         TextDrawShowForPlayer(playerid, txtDate);
  327.         TextDrawShowForPlayer(playerid, txtModeName);
  328.  
  329.         SetPlayerMapIcon(playerid, 0, 2447.3491, -1979.7495, 13.5539, 18, 0, 1); // Ammunation Emmet
  330.         SetPlayerMapIcon(playerid, 1, 1178.7625, -1324.0050, 14.1361, 22, 0, 1); // Hospital
  331.     }
  332.    
  333.     return true;
  334. }
  335.  
  336. public OnPlayerDeath(playerid, killerid, reason)
  337. {
  338.     new Float:posD[3], Float:posK[3];
  339.     GetPlayerPos(playerid, posD[0], posD[1], posD[2]);
  340.  
  341.     if(killerid != INVALID_PLAYER_ID)
  342.     {
  343.         GetPlayerPos(killerid, posK[0], posK[1], posK[2]);
  344.         SetPlayerCameraPos(playerid, posK[0], posK[1], posK[2]+10);
  345.         SetPlayerCameraLookAt(playerid, posD[0], posD[1], posD[2], CAMERA_MOVE);
  346.     }
  347.     else
  348.     {
  349.         SetPlayerCameraPos(playerid, posD[0], posD[1]+3, posD[2]+10);
  350.         SetPlayerCameraLookAt(playerid, posD[0], posD[1], posD[2], CAMERA_MOVE);
  351.     }
  352.  
  353.     TextDrawShowForPlayer(playerid, txtDeath);
  354.     TextDrawShowForPlayer(playerid, txtBox);
  355.    
  356.     SetSpawnInfo(playerid, NO_TEAM, PlayerInfo[playerid][pSkin], 1178.7625, -1324.0050, 14.1361, 272.1870, 0, 0, 0, 0, 0, 0);
  357.  
  358.     PlayAudioStreamForPlayer(playerid, "https://79qvtg.blu.livefilestore.com/y2mzWvJRHmwRE66vBZrLdNBHbTwsAZR2uIHTmTBc71o8LZvCEl02z00OVC7ogzV7JipNmysAaJG4WbHCpjaG2KJdlLyun8WWWW_LBxIA8jqS6A/GTA.5.SOUND.DEATH.(2).ogg",  posD[0], posD[1], posD[2], 10.0, 1);
  359.  
  360.     return 1;
  361. }
  362.  
  363. public OnPlayerPickUpPickup(playerid, pickupid)
  364. {
  365.     return 1;
  366. }
  367.  
  368. zcmd:savecar(playerid,params[])
  369. {
  370.     if(IsPlayerInAnyVehicle(playerid))
  371.     {
  372.         spoiler = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), CARMODTYPE_SPOILER);
  373.         hood = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), CARMODTYPE_HOOD);
  374.     }
  375.     return true;
  376. }
  377.  
  378. zcmd:loadcar(playerid,params[])
  379. {
  380.     if(IsPlayerInAnyVehicle(playerid))
  381.     {
  382.         AddVehicleComponent(GetPlayerVehicleID(playerid), spoiler);
  383.         AddVehicleComponent(GetPlayerVehicleID(playerid), hood);
  384.     }
  385.     return true;
  386. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement