Advertisement
RogerGomesCosta

Gamemode upt 3

Apr 9th, 2014
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 15.39 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                           "R.S Race"
  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,
  52.     Logged,
  53.     pSkin,
  54.     pMoney,
  55.     pName[24],
  56.     pFile[100],
  57.     Float:pX,
  58.     Float:pY,
  59.     Float:pZ,
  60.     Float:pA,
  61.     pInterior
  62. }
  63. new PlayerInfo[MAX_PLAYER][PLAYER_INFO];
  64.  
  65. enum Vehicles
  66. {
  67.     VehCreate
  68.     VehID;
  69.     VehName[50],
  70.     VehSpoiler,
  71.     VehHood,
  72.     VehRoof,
  73.     VehSideskirt,
  74.     VehLamps,
  75.     VehNitro,
  76.     VehExhaust,
  77.     VehWheels,
  78.     VehStereo,
  79.     VehHydraulics,
  80.     VehFB,
  81.     VehRB,
  82.     VehVR,
  83.     VehVL
  84.     Float:VehX,
  85.     Float:VehY,
  86.     Float:VehZ,
  87.     Float:VehA
  88. }
  89. new ServerVehicles[500][Vehicles];
  90.  
  91. native WP_Hash(buffer[], len, const str[]);
  92.  
  93. public OnGameModeInit()
  94. {
  95.     SetGameModeText("Los Santos F.R.");
  96.     DisableInteriorEnterExits();
  97.     DisableNameTagLOS(); // Jogadores não podem ver atraves das paredes...
  98.     ShowNameTags(1);
  99.     ShowPlayerMarkers(2);
  100.     ManualVehicleEngineAndLights();
  101.     UsePlayerPedAnims();
  102.     AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
  103.  
  104.     AmmuPickup = CreatePickup(355, 1, 2447.3491, -1979.7495, 13.5539, 0);
  105.  
  106.     CreateTextdraws();
  107.     CreateVehicles();
  108.    
  109.     SetTimer("OnVehicleUpdate", 2000, true);
  110.     return true;
  111. }
  112.  
  113. forward CreateVehicles();
  114. public CreateVehicles()
  115. {
  116.     for(new i = 0; i < 500; i++)
  117.     {
  118.         new file[100];
  119.         format(file, sizeof file, "RS-RACE/Vehicles/Vehicle%d", i);
  120.         if(INI_Exist(file))
  121.         {
  122.             INI_Open(file);
  123.             ServerVehicles[i][VehID] = INI_ReadInt("Model");
  124.             ServerVehicles[i][VehSpoiler] = INI_ReadInt("Spoiler");
  125.             ServerVehicles[i][VehHood] = INI_ReadInt("Hood");
  126.             ServerVehicles[i][VehRoof] = INI_ReadInt("Roof");
  127.             ServerVehicles[i][VehSideskirt] = INI_ReadInt("Sideskirt");
  128.             ServerVehicles[i][VehLamps] = INI_ReadInt("Lamps");
  129.             ServerVehicles[i][VehNitro] = INI_ReadInt("Nitro");
  130.             ServerVehicles[i][VehExhaust] = INI_ReadInt("Exhaust");
  131.             ServerVehicles[i][VehWheels] = INI_ReadInt("Wheels");
  132.             ServerVehicles[i][VehStereo] = INI_ReadInt("Stereo");
  133.             ServerVehicles[i][VehHydraulics] = INI_ReadInt("Hydraulics");
  134.             ServerVehicles[i][VehFB] = INI_ReadInt("FB");
  135.             ServerVehicles[i][VehRB] = INI_ReadInt("RB");
  136.             ServerVehicles[i][VehVR] = INI_ReadInt("VR");
  137.             ServerVehicles[i][VehVL] = INI_ReadInt("VL");
  138.             ServerVehicles[i][VehX] = INI_ReadFloat("PosX");
  139.             ServerVehicles[i][VehY] = INI_ReadFloat("PosY");
  140.             ServerVehicles[i][VehZ] = INI_ReadFloat("PosZ");
  141.             ServerVehicles[i][VehA] = INI_ReadFloat("PosA");
  142.  
  143.             ServerVehicles[i][VehCreate] = CreateVehicle(ServerVehicles[i][VehID], ServerVehicles[i][VehX], ServerVehicles[i][VehY], ServerVehicles[i][VehZ], ServerVehicles[i][VehA], -1, -1, 0);
  144.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehSpoiler]);
  145.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehHood]);
  146.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehRoof]);
  147.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehSideskirt]);
  148.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehLamps);
  149.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehNitro]);
  150.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehExhaust]);
  151.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehWheels]);
  152.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehStereo]);
  153.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehHydraulics]);
  154.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehFB]);
  155.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehRB]);
  156.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehVR]);
  157.             AddVehicleComponent(ServerVehicles[i][VehCreate], ServerVehicles[i][VehVL]);
  158.             INI_Close();
  159.         }
  160.     }
  161. }
  162.  
  163.  
  164. forward CreateTextdraws();
  165. public CreateTextdraws()
  166. {
  167.     // Box preta com transparência cobrindo a tela
  168.     txtBox = TextDrawCreate(322.000000, -3.000000, "New Textdraw");
  169.     TextDrawAlignment(txtBox, 2);
  170.     TextDrawBackgroundColor(txtBox, 255);
  171.     TextDrawFont(txtBox, 1);
  172.     TextDrawLetterSize(txtBox, 0.500000, 52.300003);
  173.     TextDrawColor(txtBox, -1);
  174.     TextDrawSetOutline(txtBox, 0);
  175.     TextDrawSetProportional(txtBox, 1);
  176.     TextDrawSetShadow(txtBox, 1);
  177.     TextDrawUseBox(txtBox, 1);
  178.     TextDrawBoxColor(txtBox, 112);
  179.     TextDrawTextSize(txtBox, 30.000000, 652.000000);
  180.     TextDrawSetSelectable(txtBox, 0);
  181.     // Mensagem de SE FODEO na tela ao morrer...
  182.     txtDeath = TextDrawCreate(317.000000, 189.000000, "~r~~h~SE FODEO");
  183.     TextDrawAlignment(txtDeath, 2);
  184.     TextDrawBackgroundColor(txtDeath, 255);
  185.     TextDrawFont(txtDeath, 3);
  186.     TextDrawLetterSize(txtDeath, 0.690000, 2.399999);
  187.     TextDrawColor(txtDeath, -16776961);
  188.     TextDrawSetOutline(txtDeath, 1);
  189.     TextDrawSetProportional(txtDeath, 1);
  190.     TextDrawSetSelectable(txtDeath, 0);
  191.     //
  192.     txtModeName = TextDrawCreate(582.000000, 425.000000, "LOs SAntos 2013");
  193.     TextDrawAlignment(txtModeName, 2);
  194.     TextDrawBackgroundColor(txtModeName, 255);
  195.     TextDrawFont(txtModeName, 0);
  196.     TextDrawLetterSize(txtModeName, 0.230000, 1.100000);
  197.     TextDrawColor(txtModeName, 255);
  198.     TextDrawSetOutline(txtModeName, 0);
  199.     TextDrawSetProportional(txtModeName, 1);
  200.     TextDrawSetShadow(txtModeName, 40);
  201.     TextDrawSetSelectable(txtModeName, 0);
  202.     //
  203.     txtDate = TextDrawCreate(582.000000, 436.000000, "18/09/2013 - 14:30");
  204.     TextDrawAlignment(txtDate, 2);
  205.     TextDrawBackgroundColor(txtDate, 255);
  206.     TextDrawFont(txtDate, 1);
  207.     TextDrawLetterSize(txtDate, 0.230000, 1.100000);
  208.     TextDrawColor(txtDate, -1);
  209.     TextDrawSetOutline(txtDate, 0);
  210.     TextDrawSetProportional(txtDate, 1);
  211.     TextDrawSetShadow(txtDate, 40);
  212.     TextDrawSetSelectable(txtDate, 0);
  213.     //
  214.     txtVehDistrict = TextDrawCreate(581.000000, 404.000000, "Turismo");
  215.     TextDrawAlignment(txtVehDistrict, 2);
  216.     TextDrawBackgroundColor(txtVehDistrict, 255);
  217.     TextDrawFont(txtVehDistrict, 1);
  218.     TextDrawLetterSize(txtVehDistrict, 0.219999, 1.200000);
  219.     TextDrawColor(txtVehDistrict, -1);
  220.     TextDrawSetOutline(txtVehDistrict, 0);
  221.     TextDrawSetProportional(txtVehDistrict, 1);
  222.     TextDrawSetShadow(txtVehDistrict, 100);
  223.     TextDrawSetSelectable(txtVehDistrict, 0);
  224.     //
  225.     for(new i = 0; i < MAX_PLAYER; i++)
  226.     {
  227.         txtInfoPlayer[i] = TextDrawCreate(320.000000, 123.000000, "Assalto Completo");
  228.         TextDrawAlignment(txtInfoPlayer[i], 2);
  229.         TextDrawBackgroundColor(txtInfoPlayer[i], 255);
  230.         TextDrawFont(txtInfoPlayer[i], 3);
  231.         TextDrawLetterSize(txtInfoPlayer[i], 0.370000, 2.099998);
  232.         TextDrawColor(txtInfoPlayer[i], -65281);
  233.         TextDrawSetOutline(txtInfoPlayer[i], 0);
  234.         TextDrawSetProportional(txtInfoPlayer[i], 1);
  235.         TextDrawSetShadow(txtInfoPlayer[i], 1);
  236.         TextDrawSetSelectable(txtInfoPlayer[i], 0);
  237.         //
  238.         txtInfoPlayer2[i] = TextDrawCreate(320.000000, 146.000000, "Dinheiro adquirido: R$500~n~Vezes que assaltou a Ammunation: 30");
  239.         TextDrawAlignment(txtInfoPlayer2[i], 2);
  240.         TextDrawBackgroundColor(txtInfoPlayer2[i], 255);
  241.         TextDrawFont(txtInfoPlayer2[i], 1);
  242.         TextDrawLetterSize(txtInfoPlayer2[i], 0.189999, 1.099997);
  243.         TextDrawColor(txtInfoPlayer2[i], -1);
  244.         TextDrawSetOutline(txtInfoPlayer2[i], 0);
  245.         TextDrawSetProportional(txtInfoPlayer2[i], 1);
  246.         TextDrawSetShadow(txtInfoPlayer2[i], 1);
  247.         TextDrawSetSelectable(txtInfoPlayer2[i], 0);
  248.     }
  249. }
  250.  
  251. public OnPlayerConnect(playerid)
  252. {
  253.     Itter_Add(TotalPlayers, playerid);
  254.  
  255.     new name[20] , str[128];
  256.     GetPlayerName(playerid, name, sizeof(name));
  257.     format(PlayerInfo[playerid][pName], 20, name);
  258.  
  259.     format(PlayerInfo[playerid][pFile], 100, "LSFR/Accounts/%s.ini", name);
  260.     if(INI_Exist(PlayerInfo[playerid][pFile]))
  261.     {
  262.         PlayerInfo[playerid][Registered] = 1;
  263.         PlayerInfo[playerid][Logged] = 0;
  264.         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");
  265.     }
  266.     else
  267.     {
  268.         PlayerInfo[playerid][Registered] = 0;
  269.         PlayerInfo[playerid][Logged] = 0;
  270.         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");
  271.     }
  272.  
  273.     SendClientMessage(playerid, ColourWhite, " ");
  274.     SendClientMessage(playerid, ColourGold, "Los Santos {FFFFFF}Free Roam + Deathmatch");
  275.     SendClientMessage(playerid, ColourWhite, "Servidor ''baseado'' no GTA Online (GTA 5)");
  276.     SendClientMessage(playerid, ColourWhite, " ");
  277.  
  278.     GivePlayerMoney(playerid, 99999999999);
  279.  
  280.     format(str, sizeof str, "* %s (ID:%d) entrou no servidor.", name, playerid);
  281.     SendClientMessageToAll(ColourYellow, str);
  282.  
  283.     return true;
  284. }
  285.  
  286. public OnPlayerDisconnect(playerid, reason)
  287. {
  288.     Itter_Remove(TotalPlayers, playerid);
  289.     new posStr[100];
  290.     GetPlayerPos(playerid, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ]);
  291.     GetPlayerFacingAngle(playerid, PlayerInfo[playerid][pA]);
  292.     format(posStr, sizeof posStr, "%f %f %f %f", PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ], PlayerInfo[playerid][pA]);
  293.  
  294.     new name[20], str[128], reasonStr[20];
  295.     GetPlayerName(playerid, name, sizeof(name));
  296.     switch(reason)
  297.     {
  298.         case 0: reasonStr = "Crash";
  299.         case 1: reasonStr = "Quit";
  300.         case 2: reasonStr = "Kick/Ban";
  301.     }
  302.     format(str, sizeof str, "* %s (ID:%d) saiu do servidor (%s).", name, playerid, reasonStr);
  303.     SendClientMessageToAll(ColourYellow, str);
  304.  
  305.     PlayerInfo[playerid][pInterior] = GetPlayerInterior(playerid);
  306.  
  307.     INI_Open(PlayerInfo[playerid][pFile]);
  308.     INI_WriteString("Position", posStr);
  309.     INI_WriteInt("Money", PlayerInfo[playerid][pMoney]);
  310.     INI_WriteInt("Skin", PlayerInfo[playerid][pSkin]);
  311.     INI_WriteInt("Interior", PlayerInfo[playerid][pInterior]);
  312.     INI_Save();
  313.     INI_Close();
  314.     return true;
  315. }
  316.  
  317. public OnPlayerRequestClass(playerid, classid)
  318. {
  319.     if(PlayerInfo[playerid][Logged] == 1)
  320.     {
  321.         SetPlayerInterior(playerid, 3);
  322.         SetPlayerPos(playerid, 349.0453,193.2271,1014.1797);
  323.         SetPlayerFacingAngle(playerid, 286.25);
  324.         SetPlayerCameraPos(playerid, 352.9164,194.5702,1014.1875);
  325.         SetPlayerCameraLookAt(playerid, 349.0453,193.2271,1014.1797);
  326.     }
  327.     else
  328.     {
  329.         TogglePlayerSpectating(playerid, true);
  330.     }
  331.     return false;
  332. }
  333.  
  334. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  335. {
  336.     if(dialogid == Dialogo_Register)
  337.     {
  338.         if(!response) Kick(playerid);
  339.         else
  340.         {
  341.             new file[100], pass[130];
  342.             format(file, sizeof file, "LSFR/Accounts/%s.ini", PlayerInfo[playerid][pName]);
  343.             WP_Hash(pass, sizeof(pass), inputtext);
  344.             INI_Open(file);
  345.             INI_WriteString("Password", pass);
  346.             INI_WriteInt("Registered", 1);
  347.             INI_Save();
  348.             INI_Close();
  349.             PlayerInfo[playerid][Registered] = 0;
  350.             PlayerInfo[playerid][Logged] = 1;
  351.             SendClientMessage(playerid, ColourWhite, "* Conta cadastrada.");
  352.             PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  353.             SetSpawnInfo(playerid, NO_TEAM, 0, 1722.7843,-1713.9490,13.5114,181.5285, 24, 100, 0, 0, 0, 0);
  354.         }
  355.     }
  356.     else if(dialogid == Dialogo_Login)
  357.     {
  358.         if(!response) Kick(playerid);
  359.         else
  360.         {
  361.             new file[100], pass[130], enpass[130], pos[100];
  362.  
  363.             format(file, sizeof file, "LSFR/Accounts/%s.ini", PlayerInfo[playerid][pName]);
  364.             INI_Open(file);
  365.             WP_Hash(enpass, sizeof(enpass), inputtext);
  366.             INI_ReadString(pass, "Password");
  367.             if(strcmp(enpass, pass, true) == 0)
  368.             {
  369.                 SendClientMessage(playerid, ColourWhite, "* Conta autenticada.");
  370.                 PlayerInfo[playerid][Registered] = 1;
  371.                 PlayerInfo[playerid][Logged] = 1;
  372.                 INI_ReadString(pos, "Position");
  373.                 PlayerInfo[playerid][pSkin] = INI_ReadInt("Skin");
  374.                 PlayerInfo[playerid][pMoney] = INI_ReadInt("Money");
  375.                 PlayerInfo[playerid][pInterior] = INI_ReadInt("Interior");
  376.                 sscanf(pos, "ffff", PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ], PlayerInfo[playerid][pA]);
  377.                 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);
  378.             }
  379.             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");
  380.             INI_Close();
  381.         }
  382.     }
  383.     return true;
  384. }
  385.  
  386. public OnPlayerRequestSpawn(playerid)
  387. {
  388.     if(PlayerInfo[playerid][Logged] == 0) return false;
  389.     else
  390.     {
  391.         SetPlayerInterior(playerid, PlayerInfo[playerid][pInterior]);
  392.  
  393.         TextDrawShowForPlayer(playerid, txtDate);
  394.         TextDrawShowForPlayer(playerid, txtModeName);
  395.  
  396.         SetPlayerMapIcon(playerid, 0, 2447.3491, -1979.7495, 13.5539, 18, 0, 1); // Ammunation Emmet
  397.         SetPlayerMapIcon(playerid, 1, 1178.7625, -1324.0050, 14.1361, 22, 0, 1); // Hospital
  398.     }
  399.  
  400.     return true;
  401. }
  402.  
  403. public OnPlayerDeath(playerid, killerid, reason)
  404. {
  405.     new Float:posD[3], Float:posK[3];
  406.     GetPlayerPos(playerid, posD[0], posD[1], posD[2]);
  407.  
  408.     if(killerid != INVALID_PLAYER_ID)
  409.     {
  410.         GetPlayerPos(killerid, posK[0], posK[1], posK[2]);
  411.         SetPlayerCameraPos(playerid, posK[0], posK[1], posK[2]+10);
  412.         SetPlayerCameraLookAt(playerid, posD[0], posD[1], posD[2], CAMERA_MOVE);
  413.     }
  414.     else
  415.     {
  416.         SetPlayerCameraPos(playerid, posD[0], posD[1]+3, posD[2]+10);
  417.         SetPlayerCameraLookAt(playerid, posD[0], posD[1], posD[2], CAMERA_MOVE);
  418.     }
  419.  
  420.     TextDrawShowForPlayer(playerid, txtDeath);
  421.     TextDrawShowForPlayer(playerid, txtBox);
  422.  
  423.     SetSpawnInfo(playerid, NO_TEAM, PlayerInfo[playerid][pSkin], 1178.7625, -1324.0050, 14.1361, 272.1870, 0, 0, 0, 0, 0, 0);
  424.  
  425.     PlayAudioStreamForPlayer(playerid, "https://79qvtg.blu.livefilestore.com/y2mzWvJRHmwRE66vBZrLdNBHbTwsAZR2uIHTmTBc71o8LZvCEl02z00OVC7ogzV7JipNmysAaJG4WbHCpjaG2KJdlLyun8WWWW_LBxIA8jqS6A/GTA.5.SOUND.DEATH.(2).ogg",  posD[0], posD[1], posD[2], 10.0, 1);
  426.  
  427.     return 1;
  428. }
  429.  
  430. public OnPlayerPickUpPickup(playerid, pickupid)
  431. {
  432.     return 1;
  433. }
  434.  
  435. zcmd:savecar(playerid,params[])
  436. {
  437.     if(IsPlayerInAnyVehicle(playerid))
  438.     {
  439.         spoiler = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), CARMODTYPE_SPOILER);
  440.         hood = GetVehicleComponentInSlot(GetPlayerVehicleID(playerid), CARMODTYPE_HOOD);
  441.     }
  442.     return true;
  443. }
  444.  
  445. zcmd:loadcar(playerid,params[])
  446. {
  447.     if(IsPlayerInAnyVehicle(playerid))
  448.     {
  449.         AddVehicleComponent(GetPlayerVehicleID(playerid), spoiler);
  450.         AddVehicleComponent(GetPlayerVehicleID(playerid), hood);
  451.     }
  452.     return true;
  453. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement