Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Includes
- #include <a_samp>
- #include <SII>
- //#define MODE_NAME "MEUMODE"
- #include <YSI\y_races>
- #include <sscanf2>
- #include <YSI\y_iterate>
- #include <zcmd>
- // Definições
- #file "SA RS Tuning"
- #define MAX_PLAYER 30
- #define COLOR_RED 0xBB0000FF
- #define COLOR_WHITE 0xFFFFFFFF
- #define COLOR_GOLD 0xFFD700FF
- #define COLOR_BLUE 0x2587CEFF
- #define COLOR_GRAY 0xDDDDDDFF
- #define COLOR_GREEN 0x366718FF
- #define COLOR_RED 0xBB0000FF
- #define COLOR_PURPLE 0x895BD9FF
- #define COLOR_YELLOW 0xFAA505FF
- #define DIALOG_REGISTER 1
- #define DIALOG_LOGIN 2
- #define DIALOG_ENGINE 3
- #define DIALOG_MODSHOP 4
- #define DIALOG_MODSHOP2 5
- #define DIALOG_MODSHOP3 6
- #define DIALOG_WORKSHOP 200
- #define DIALOG_WORKSHOPH 201
- #define DIALOG_WORKSHOP_COLOR 202
- #define DIALOG_CARS 300
- #define DIALOG_TEXT_NO_EFFECT 400
- #define DIALOG_HELP 7001
- #define DIALOG_COMMANDS 7002
- #define RGB_COLOR_WHITE "{FFFFFF}"
- #define RGB_COLOR_GOLD "{FFD700}"
- #define BYTES_PER_CELL 4
- native IsValidVehicle(vehicleid);
- main()
- {
- print("\n* San Andreas R.S. Tuning");
- print("# Iniciado em 2014");
- print("@ Criado por Roger Gomes Costa\n");
- }
- // --------------------------------------------
- // ---------- Definindo novas variáveis/funções
- // - VARIÁVEIS [DIALOGS]
- static g_szHelpDialog[] = #RGB_COLOR_GOLD"\
- AJUDA\n\n\
- "RGB_COLOR_WHITE"/ajuda - Mostra esta mensagem de ajuda.\n\
- /comandos - Mostra a lista de comandos do servidor.\n\
- /reportar [id/nome] [mensagem] - Reporta um jogador à equipe do servidor.\n\
- /tutorial - Mostra o tutorial do servidor.";
- static g_szCommandsDialog[] = #RGB_COLOR_GOLD"\
- COMANDOS\n\n\
- "RGB_COLOR_WHITE"/races - Lista de corridas disponíveis no servidor\n\
- /openedraces - Lista de corridas abertas no servidor\n\
- /openrace [id] - Abre uma corrida para que você e outros jogadores possam entrar\n\
- /race [slot] - Entra em uma corrida\n";
- static g_szCommandsDialog1[] = "/leave - Sai da corrida atual (se estiver em uma)\n\
- /tuning - Abre menu de tuning (se estiver na oficina)\n\
- /trancar /destrancar - Tranca e destranca veículo\n\
- /motor - Liga/Desliga o veículo\n\
- /lights - Acende/Apaga os faróis do veículo\n\
- /mycars - Localizar determinado veículo\n\
- /skin - Altera a sua skin\n\
- /construtor - Construir sua própria corrida";
- static sz_CmdAdmins[] = RGB_COLOR_GOLD"COMANDOS DE ADMINISTRADORES\n\n\
- "RGB_COLOR_WHITE"/dardinheiro /setardinheiro /expulsar /encerrarcorrida\n\
- /setarcolete /setarvida /forcarcomando";
- new Text:txtModeName, Text:txtDate, Text:txtVehDistrict;
- new Text:BoasVindas, Text:BoasVindas2;
- new Text:StartRaceTxt;
- new Text:RaceEndInfo, Text:RaceEndInfo2;
- new Text:TextVeh1;
- new Text:TextVeh2;
- new Text:TextVeh3;
- new Text:TextVeh1Name;
- new Text:TextVeh2Name;
- new Text:TextVeh3Name;
- new Text:TextVehBox;
- new Text:TextVehInfo;
- enum PLAYER_INFO
- {
- bool:Registered,
- bool:Logged,
- pSkin,
- playermoney,
- pName[24],
- pFile[100],
- Float:pX,
- Float:pY,
- Float:pZ,
- Float:pA,
- pInterior,
- pGPS,
- pDM,
- pRaceID,
- pWeapon[13],
- pAmmo[13],
- pTutorial
- }
- new PlayerInfo[MAX_PLAYER][PLAYER_INFO];
- enum Vehicles
- {
- VehID,
- VehOwner[24],
- VehName[50],
- VehKeys[100],
- VehPlate[10],
- VehSpoiler,
- VehHood,
- VehRoof,
- VehSideskirt,
- VehLamps,
- VehNitro,
- VehExhaust,
- VehWheels,
- VehStereo,
- VehHydraulics,
- VehFB,
- VehRB,
- VehVR,
- VehVL,
- Float:VehX,
- Float:VehY,
- Float:VehZ,
- Float:VehA,
- VehColor1,
- VehColor2,
- VehPaintjob,
- Text3D:VehText,
- VehStatus,
- VehEngine,
- VehLights,
- VehAlarm,
- VehDoors,
- VehBonnet,
- VehBoot,
- VehObjective,
- bool:VehLocked,
- VehDoorsArmour,
- VehTiresArmour,
- VehLightsArmour,
- VehPanelsArmour,
- VehHealth
- }
- new ServerVehicles[500][Vehicles];
- new VehCreate[500] = {-1, ...};
- new VehProhibiteds[] =
- {
- 406,
- 407,
- 408,
- 416,
- 417,
- 425,
- 432,
- 441,
- 444,
- 447,
- 449,
- 464,
- 465,
- 469,
- 476,
- 501,
- 537,
- 538,
- 544,
- 548,
- 553,
- 563,
- 564,
- 569,
- 570,
- 577,
- 590,
- 591,
- 592,
- 593,
- 594,
- 601,
- 606,
- 607,
- 608,
- 610,
- 611
- };
- new VehicleNames[212][] = {
- {"Landstalker"}, {"Bravura"}, {"Buffalo"}, {"Linerunner"}, {"Perrenial"}, {"Sentinel"}, {"Dumper"},
- {"Firetruck"}, {"Trashmaster"}, {"Stretch"}, {"Manana"}, {"Infernus"}, {"Voodoo"}, {"Pony"}, {"Mule"},
- {"Cheetah"}, {"Ambulance"}, {"Leviathan"}, {"Moonbeam"}, {"Esperanto"}, {"Taxi"}, {"Washington"},
- {"Bobcat"}, {"Mr Whoopee"}, {"BF Injection"}, {"Hunter"}, {"Premier"}, {"Enforcer"}, {"Securicar"},
- {"Banshee"}, {"Predator"}, {"Bus"}, {"Rhino"}, {"Barracks"}, {"Hotknife"}, {"Trailer 1"}, {"Previon"},
- {"Coach"}, {"Cabbie"}, {"Stallion"}, {"Rumpo"}, {"RC Bandit"}, {"Romero"}, {"Packer"}, {"Monster"},
- {"Admiral"}, {"Squalo"}, {"Seasparrow"}, {"Pizzaboy"}, {"Tram"}, {"Trailer 2"}, {"Turismo"},
- {"Speeder"}, {"Reefer"}, {"Tropic"}, {"Flatbed"}, {"Yankee"}, {"Caddy"}, {"Solair"}, {"Berkley's RC Van"},
- {"Skimmer"}, {"PCJ-600"}, {"Faggio"}, {"Freeway"}, {"RC Baron"}, {"RC Raider"}, {"Glendale"}, {"Oceanic"},
- {"Sanchez"}, {"Sparrow"}, {"Patriot"}, {"Quad"}, {"Coastguard"}, {"Dinghy"}, {"Hermes"}, {"Sabre"},
- {"Rustler"}, {"ZR-350"}, {"Walton"}, {"Regina"}, {"Comet"}, {"BMX"}, {"Burrito"}, {"Camper"}, {"Marquis"},
- {"Baggage"}, {"Dozer"}, {"Maverick"}, {"News Chopper"}, {"Rancher"}, {"FBI Rancher"}, {"Virgo"}, {"Greenwood"},
- {"Jetmax"}, {"Hotring"}, {"Sandking"}, {"Blista Compact"}, {"Police Maverick"}, {"Boxville"}, {"Benson"},
- {"Mesa"}, {"RC Goblin"}, {"Hotring Racer A"}, {"Hotring Racer B"}, {"Bloodring Banger"}, {"Rancher"},
- {"Super GT"}, {"Elegant"}, {"Journey"}, {"Bike"}, {"Mountain Bike"}, {"Beagle"}, {"Cropdust"}, {"Stunt"},
- {"Tanker"}, {"Roadtrain"}, {"Nebula"}, {"Majestic"}, {"Buccaneer"}, {"Shamal"}, {"Hydra"}, {"FCR-900"},
- {"NRG-500"}, {"HPV1000"}, {"Cement Truck"}, {"Tow Truck"}, {"Fortune"}, {"Cadrona"}, {"FBI Truck"},
- {"Willard"}, {"Forklift"}, {"Tractor"}, {"Combine"}, {"Feltzer"}, {"Remington"}, {"Slamvan"},
- {"Blade"}, {"Freight"}, {"Streak"}, {"Vortex"}, {"Vincent"}, {"Bullet"}, {"Clover"}, {"Sadler"},
- {"Firetruck LA"}, {"Hustler"}, {"Intruder"}, {"Primo"}, {"Cargobob"}, {"Tampa"}, {"Sunrise"}, {"Merit"},
- {"Utility"}, {"Nevada"}, {"Yosemite"}, {"Windsor"}, {"Monster A"}, {"Monster B"}, {"Uranus"}, {"Jester"},
- {"Sultan"}, {"Stratum"}, {"Elegy"}, {"Raindance"}, {"RC Tiger"}, {"Flash"}, {"Tahoma"}, {"Savanna"},
- {"Bandito"}, {"Freight Flat"}, {"Streak Carriage"}, {"Kart"}, {"Mower"}, {"Duneride"}, {"Sweeper"},
- {"Broadway"}, {"Tornado"}, {"AT-400"}, {"DFT-30"}, {"Huntley"}, {"Stafford"}, {"BF-400"}, {"Newsvan"},
- {"Tug"}, {"Trailer 3"}, {"Emperor"}, {"Wayfarer"}, {"Euros"}, {"Hotdog"}, {"Club"}, {"Freight Carriage"},
- {"Trailer 3"}, {"Andromada"}, {"Dodo"}, {"RC Cam"}, {"Launch"}, {"Police Car (LSPD)"}, {"Police Car (SFPD)"},
- {"Police Car (LVPD)"}, {"Police Ranger"}, {"Picador"}, {"S.W.A.T. Van"}, {"Alpha"}, {"Phoenix"}, {"Glendale"},
- {"Sadler"}, {"Luggage Trailer A"}, {"Luggage Trailer B"}, {"Stair Trailer"}, {"Boxville"}, {"Farm Plow"},
- {"Utility Trailer"}
- };
- enum Races
- {
- // Carregar
- RaceName[30],
- RaceStart[100],
- RaceType,
- RacePrice,
- RaceWorld,
- RaceInterior,
- RaceLaps,
- RaceReward,
- // While
- bool:RaceOpen,
- RaceTotal,
- RaceCurrent,
- Race1, Race1Name[20],
- Race2, Race2Name[20],
- Race3, Race3Name[20],
- Race4, Race4Name[20],
- bool:RaceExist
- }
- new RaceCreate[100];
- new RaceCreate1[100];
- new RaceInfo[100][Races];
- new RaceCPPos[100][50][100]; // 100 corridas, 30 cps, 100 tamanho da string
- new RaceSTPos[100][20][100]; // 100 corridas, 30 cps, 100 tamanho da string
- native WP_Hash(buffer[], len, const str[]);
- forward CheckMoney();
- // stock GetPlayerNameEx(playerid) - Retorna o nome do jogador
- stock GetPlayerNameEx(playerid)
- {
- new szName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, szName, MAX_PLAYER_NAME);
- return szName;
- }
- #define GetPlayerName GetPlayerNameEx
- stock PlayAudioForAll(audioid)
- {
- foreach(Player, i)
- {
- PlayerPlaySound(i, audioid, 0.0, 0.0, 0.0);
- }
- return true;
- }
- // stock SendClientMessageEx(playerid, color, fstring[], {Float, _}:...) - Envia uma mensagem formatada para o jogador
- stock SendClientMessageEx(playerid, color, fstring[], {Float, _}:...)
- {
- static const STATIC_ARGS = 3;
- new n = (numargs() - STATIC_ARGS) * BYTES_PER_CELL;
- if(n)
- {
- new message[144], arg_start, arg_end;
- #emit CONST.alt fstring
- #emit LCTRL 5
- #emit ADD
- #emit STOR.S.pri arg_start
- #emit LOAD.S.alt n
- #emit ADD
- #emit STOR.S.pri arg_end
- do
- {
- #emit LOAD.I
- #emit PUSH.pri
- arg_end -= BYTES_PER_CELL;
- #emit LOAD.S.pri arg_end
- }
- while(arg_end > arg_start);
- #emit PUSH.S fstring
- #emit PUSH.C 144
- #emit PUSH.ADR message
- n += BYTES_PER_CELL * 3;
- #emit PUSH.S n
- #emit SYSREQ.C format
- n += BYTES_PER_CELL;
- #emit LCTRL 4
- #emit LOAD.S.alt n
- #emit ADD
- #emit SCTRL 4
- return SendClientMessage(playerid, color, message);
- } else
- return SendClientMessage(playerid, color, fstring);
- }
- // stock SendClientMessageToAllEx(color, fstring[], {Float, _}:...) - Envia uma mensagem formatada para todos os jogadores
- stock SendClientMessageToAllEx(color, fstring[], {Float, _}:...)
- {
- #if defined DEBUG_MODE
- #if !defined DEBUG_NO_FUNCTIONS
- printf("[DEBUG] stock SendClientMessageToAllEx(color #%x, fstring '%s')", color, fstring);
- #endif
- #endif
- static const STATIC_ARGS = 2;
- new n = (numargs() - STATIC_ARGS) * BYTES_PER_CELL;
- if(n)
- {
- new message[144], arg_start, arg_end;
- #emit CONST.alt fstring
- #emit LCTRL 5
- #emit ADD
- #emit STOR.S.pri arg_start
- #emit LOAD.S.alt n
- #emit ADD
- #emit STOR.S.pri arg_end
- do
- {
- #emit LOAD.I
- #emit PUSH.pri
- arg_end -= BYTES_PER_CELL;
- #emit LOAD.S.pri arg_end
- }
- while(arg_end > arg_start);
- #emit PUSH.S fstring
- #emit PUSH.C 144
- #emit PUSH.ADR message
- n += BYTES_PER_CELL * 3;
- #emit PUSH.S n
- #emit SYSREQ.C format
- n += BYTES_PER_CELL;
- #emit LCTRL 4
- #emit LOAD.S.alt n
- #emit ADD
- #emit SCTRL 4
- return SendClientMessageToAll(color, message);
- } else
- return SendClientMessageToAll(color, fstring);
- }
- #define SendClientMessage SendClientMessageEx
- #define SendClientMessageToAll SendClientMessageToAllEx
- stock SetPlayerPosEx(playerid, Float: x, Float: y, Float: z, Float: a, interior, virtualworld, bool: bTeleportVehicle = true)
- {
- if(!IsPlayerConnected(playerid))
- return false;
- new iVehicleID = GetPlayerVehicleID(playerid);
- new iPlayerSeat = GetPlayerVehicleSeat(playerid);
- if(bTeleportVehicle && IsPlayerInAnyVehicle(playerid))
- {
- SetVehiclePos(iVehicleID, x, y, z);
- SetVehicleZAngle(iVehicleID, a);
- SetVehicleVirtualWorld(iVehicleID, virtualworld);
- LinkVehicleToInterior(iVehicleID, interior);
- }
- SetPlayerPosFindZ(playerid, x, y, z);
- SetPlayerFacingAngle(playerid, a);
- SetPlayerInterior(playerid, interior);
- SetPlayerVirtualWorld(playerid, virtualworld);
- if(bTeleportVehicle)
- PutPlayerInVehicle(playerid, iVehicleID, iPlayerSeat);
- return true;
- }
- // stock TimestampToDate(timestamp) - Converte uma timestamp para o formato DD/MM/AA HH:MM:SS
- stock TimestampToDate(timestamp)
- {
- new year = 1970, day = 0, month = 0, hour = UTC_TIMEZONE, mins = 0, sec = 0;
- new days_of_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- new returnstring[32];
- while(timestamp > 31622400)
- {
- timestamp -= 31536000;
- if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp -= 86400;
- year++;
- }
- if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )
- days_of_month[1] = 29;
- else
- days_of_month[1] = 28;
- while(timestamp > 86400)
- {
- timestamp -= 86400, day++;
- if(day==days_of_month[month]) day = 0, month++;
- }
- while(timestamp > 60)
- {
- timestamp -= 60, mins++;
- if( mins == 60) mins=0, hour++;
- }
- sec = timestamp;
- format(returnstring, 31, "%02d/%02d/%d %02d:%02d:%02d", day+1, month+1, year, hour, mins, sec);
- return returnstring;
- }
- public OnGameModeInit()
- {
- SetTimer("OnVehicleUpdate", 1000*10, true);
- SetTimer("OnServerUpdate", 1000, true);
- Langs_AddLanguage("PT", "Brasil");
- SetGameModeText("SA Race");
- //DisableInteriorEnterExits();
- DisableNameTagLOS();
- ManualVehicleEngineAndLights();
- //UsePlayerPedAnims();
- AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
- //object(billbrdlan2_05) (1)
- //object(billbrdlan2_05) (2)
- //object(billbrdlan2_05) (3)
- //object(billbrdlan2_05) (4)
- new objecttext = CreateObject(4731,1725.4000000,-1637.2000000,44.0000000,0.0000000,0.2500000,210.2500000); //object(vgwestbillbrd1) (1)
- SetObjectMaterialText(objecttext, "SHOPPING", 0, OBJECT_MATERIAL_SIZE_512x256, "Mongolian Baiti", 115, 1, 0xFFEAEAEA, 0, 1);
- new objecttext1 = CreateObject(4731,1774.2000000,-1660.3000000,21.2000000,0.0000000,0.2470000,335.7450000);
- SetObjectMaterialText(objecttext1, "B A N C O", 0, OBJECT_MATERIAL_SIZE_512x256, "Mongolian Baiti", 120, 1, 0xFFEAEAEA, 0, 1);
- new objecttext2 = CreateObject(4731,1555.8000000,-1675.5000000,19.0000000,0.0000000,0.0000000,300.2450000);
- SetObjectMaterialText(objecttext2, " L.S.P.D", 0, OBJECT_MATERIAL_SIZE_512x256, "Mongolian Baiti", 20, 1, 0xFFFFFFFF, 0, 1);
- new objecttext3 = CreateObject(4731,1481.2000000,-1750.8000000,29.3000000,0.0000000,0.0000000,210.2500000);
- SetObjectMaterialText(objecttext3, "\n\nTRIBUNAL", 0, OBJECT_MATERIAL_SIZE_512x256, "Mongolian Baiti", 60, 1, 0xFFEAEAEA, 0, 1);
- CreateTextdraws();
- CreateVehicles();
- LoadRaces();
- return true;
- }
- forward LoadRaces();
- public LoadRaces()
- {
- for(new i = 0; i < 100; i++)
- {
- new file[100];
- format(file, sizeof file, "RS-RACE/Races/Race%d.ini", i);
- if(SII_Exist(file))
- {
- SII_Open(file);
- SII_ReadString(RaceInfo[i][RaceName], "Name", 30);
- RaceInfo[i][RaceType] = SII_ReadInt("Type");
- RaceInfo[i][RaceReward] = SII_ReadInt("Reward");
- //RaceInfo[i][RacePrice] = SII_ReadInt("Price");
- //RaceInfo[i][RaceInterior] = SII_ReadInt("Interior");
- //RaceInfo[i][RaceLaps] = SII_ReadInt("Laps");
- for(new k = 0; k < 50; k++)
- {
- new line[50];
- format(line, sizeof line, "CP_%d", k);
- SII_ReadString(RaceCPPos[i][k], line, 100);
- }
- for(new j = 0; j < 20; j++)
- {
- new line[50];
- format(line, sizeof line, "ST_%d", j);
- SII_ReadString(RaceSTPos[i][j], line, 100);
- }
- SII_Close();
- RaceInfo[i][RaceExist] = true;
- RaceInfo[i][RaceOpen] = false;
- }
- }
- }
- forward CreateVehicles();
- public CreateVehicles()
- {
- new total;
- for(new i = 1; i < 500; i++)
- {
- new file[100];
- format(file, sizeof file, "RS-RACE/Vehicles/Vehicle%d.ini", i);
- if(SII_Exist(file))
- {
- SII_Open(file);
- SII_ReadString(ServerVehicles[i][VehOwner], "Owner", 24);
- SII_ReadString(ServerVehicles[i][VehKeys], "Keys", 100);
- SII_ReadString(ServerVehicles[i][VehPlate], "Plate", 10);
- ServerVehicles[i][VehID] = SII_ReadInt("Model");
- ServerVehicles[i][VehSpoiler] = SII_ReadInt("Spoiler");
- ServerVehicles[i][VehHood] = SII_ReadInt("Hood");
- ServerVehicles[i][VehRoof] = SII_ReadInt("Roof");
- ServerVehicles[i][VehSideskirt] = SII_ReadInt("Sideskirt");
- ServerVehicles[i][VehLamps] = SII_ReadInt("Lamps");
- ServerVehicles[i][VehNitro] = SII_ReadInt("Nitro");
- ServerVehicles[i][VehExhaust] = SII_ReadInt("Exhaust");
- ServerVehicles[i][VehWheels] = SII_ReadInt("Wheels");
- ServerVehicles[i][VehStereo] = SII_ReadInt("Stereo");
- ServerVehicles[i][VehHydraulics] = SII_ReadInt("Hydraulics");
- ServerVehicles[i][VehFB] = SII_ReadInt("FB");
- ServerVehicles[i][VehRB] = SII_ReadInt("RB");
- ServerVehicles[i][VehVR] = SII_ReadInt("VR");
- ServerVehicles[i][VehVL] = SII_ReadInt("VL");
- ServerVehicles[i][VehX] = SII_ReadFloat("PosX");
- ServerVehicles[i][VehY] = SII_ReadFloat("PosY");
- ServerVehicles[i][VehZ] = SII_ReadFloat("PosZ");
- ServerVehicles[i][VehA] = SII_ReadFloat("PosA");
- ServerVehicles[i][VehPaintjob] = SII_ReadInt("Paintjob");
- ServerVehicles[i][VehColor1] = SII_ReadInt("Color1");
- ServerVehicles[i][VehColor2] = SII_ReadInt("Color2");
- ServerVehicles[i][VehTiresArmour] = SII_ReadInt("TiresArmour");
- ServerVehicles[i][VehDoorsArmour] = SII_ReadInt("DoorsArmour");
- ServerVehicles[i][VehPanelsArmour] = SII_ReadInt("PanelsArmour");
- ServerVehicles[i][VehLightsArmour] = SII_ReadInt("LightsArmour");
- ServerVehicles[i][VehHealth] = SII_ReadInt("Health");
- SII_Close();
- VehCreate[i] = CreateVehicle(ServerVehicles[i][VehID], ServerVehicles[i][VehX], ServerVehicles[i][VehY], ServerVehicles[i][VehZ], ServerVehicles[i][VehA], ServerVehicles[i][VehColor1], ServerVehicles[i][VehColor2], -1);
- if(ServerVehicles[i][VehPaintjob] != -1)ChangeVehiclePaintjob(VehCreate[i], ServerVehicles[i][VehPaintjob]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehSpoiler]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehHood]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehRoof]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehSideskirt]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehLamps]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehNitro]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehExhaust]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehWheels]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehStereo]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehHydraulics]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehFB]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehRB]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehVR]);
- AddVehicleComponent(VehCreate[i], ServerVehicles[i][VehVL]);
- ServerVehicles[i][VehLocked] = true;
- SetVehicleHealth(VehCreate[i], ServerVehicles[i][VehHealth]);
- SetVehicleNumberPlate(VehCreate[i], ServerVehicles[i][VehOwner]);
- SetVehicleParamsForPlayer(VehCreate[i], i, 0, 0);
- SetVehicleParamsEx(VehCreate[i], 0, 0, 0, 0, 0, 0, 0);
- ServerVehicles[i][VehStatus] = 0;
- //SetVehicleToRespawn(i);
- total++;
- printf("%s", ServerVehicles[i][VehOwner]);
- }
- }
- printf("* Veículos: %d", total);
- }
- public OnPlayerUpdate(playerid)
- {
- // Se eu estiver em uma corrida...
- if(PlayerInfo[playerid][pRaceID] > -1)
- {
- foreach(Player, i)
- {
- // Jogadores que estiverem na mesma corrida que eu...
- if(PlayerInfo[i][pRaceID] == PlayerInfo[playerid][pRaceID])
- {
- SetPlayerMarkerForPlayer(playerid, i, 0xCAFF70FF);
- }
- // Jogadores que estiverem em corrida, mas não a mesma que eu...
- if(PlayerInfo[i][pRaceID] != -1 && PlayerInfo[i][pRaceID] != PlayerInfo[playerid][pRaceID])
- {
- new Float:ppos[3];
- GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
- // Se tiver próximo...
- if(IsPlayerInRangeOfPoint(i, 50.0, ppos[0], ppos[1], ppos[2]))
- SetPlayerMarkerForPlayer(playerid, i, 0x6E8B3FF);
- }
- // Jogadores que não estiverem em corridas...
- if(PlayerInfo[i][pRaceID] == -1)
- {
- new Float:ppos[3];
- GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
- // Se tiver próximo...
- if(IsPlayerInRangeOfPoint(i, 50.0, ppos[0], ppos[1], ppos[2]))
- SetPlayerMarkerForPlayer(playerid, i, 0x666666FF);
- else
- SetPlayerMarkerForPlayer(playerid, i, GetPlayerColor(i) & 0xFFFFFF00);
- }
- }
- }
- else if(PlayerInfo[playerid][pRaceID] == -1)
- {
- foreach(Player, i)
- {
- if(PlayerInfo[i][pRaceID] > -1)
- SetPlayerMarkerForPlayer(playerid, i, 0x6E8B3FF);
- else
- SetPlayerMarkerForPlayer(playerid, i, 0x666666FF);
- }
- }
- return true;
- }
- forward OnServerUpdate();
- public OnServerUpdate()
- {
- new year, month, day, hour, minute, second, str[50];
- getdate(year, month, day);
- gettime(hour, minute, second);
- format(str, sizeof str, "%02d/%02d/%d %02d:%02d", day, month, year, hour, minute);
- TextDrawSetString(txtDate, str);
- }
- forward OnVehicleUpdate();
- public OnVehicleUpdate()
- {
- print("<log> veículos salvos!");
- for(new i = 1; i < 500; i++)
- {
- if(VehCreate[i] != -1)
- {
- if(ServerVehicles[i][VehStatus] != 1)
- {
- new file[100], panels,doors,lights,tires, vehicleId = VehCreate[i];
- GetVehicleDamageStatus(VehCreate[i], panels, doors, lights, tires);
- GetVehiclePos(VehCreate[i], ServerVehicles[i][VehX], ServerVehicles[i][VehY], ServerVehicles[i][VehZ]);
- GetVehicleZAngle(VehCreate[i], ServerVehicles[i][VehA]);
- format(file, sizeof file, "RS-RACE/Vehicles/Vehicle%d.ini", i);
- ServerVehicles[vehicleId][VehSpoiler] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_SPOILER);
- ServerVehicles[vehicleId][VehHood] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_HOOD);
- ServerVehicles[vehicleId][VehRoof] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_ROOF);
- ServerVehicles[vehicleId][VehSideskirt] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_SIDESKIRT);
- ServerVehicles[vehicleId][VehLamps] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_LAMPS);
- ServerVehicles[vehicleId][VehNitro] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_NITRO);
- ServerVehicles[vehicleId][VehExhaust] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_EXHAUST);
- ServerVehicles[vehicleId][VehWheels] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_WHEELS);
- ServerVehicles[vehicleId][VehStereo] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_STEREO);
- ServerVehicles[vehicleId][VehHydraulics] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_HYDRAULICS);
- ServerVehicles[vehicleId][VehFB] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_FRONT_BUMPER);
- ServerVehicles[vehicleId][VehRB] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_REAR_BUMPER);
- ServerVehicles[vehicleId][VehVR] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_VENT_RIGHT);
- ServerVehicles[vehicleId][VehVL] = GetVehicleComponentInSlot(vehicleId, CARMODTYPE_VENT_LEFT);
- SII_Open(file);
- SII_WriteInt("Spoiler", ServerVehicles[vehicleId][VehSpoiler]);
- SII_WriteInt("Hood", ServerVehicles[vehicleId][VehHood]);
- SII_WriteInt("Roof", ServerVehicles[vehicleId][VehRoof]);
- SII_WriteInt("Sideskirt", ServerVehicles[vehicleId][VehSideskirt]);
- SII_WriteInt("Lamps", ServerVehicles[vehicleId][VehLamps]);
- SII_WriteInt("Nitro", ServerVehicles[vehicleId][VehNitro]);
- SII_WriteInt("Exhaust", ServerVehicles[vehicleId][VehExhaust]);
- SII_WriteInt("Wheels", ServerVehicles[vehicleId][VehWheels]);
- SII_WriteInt("Stereo", ServerVehicles[vehicleId][VehStereo]);
- SII_WriteInt("Hydraulics", ServerVehicles[vehicleId][VehHydraulics]);
- SII_WriteInt("FB", ServerVehicles[vehicleId][VehFB]);
- SII_WriteInt("RB", ServerVehicles[vehicleId][VehRB]);
- SII_WriteInt("VR", ServerVehicles[vehicleId][VehVR]);
- SII_WriteInt("VL", ServerVehicles[vehicleId][VehVL]);
- SII_WriteInt("Panel", panels);
- SII_WriteInt("Doors", doors);
- SII_WriteInt("Lights", lights);
- SII_WriteInt("Tires", tires);
- SII_WriteFloat("PosX", ServerVehicles[i][VehX]);
- SII_WriteFloat("PosY", ServerVehicles[i][VehY]);
- SII_WriteFloat("PosZ", ServerVehicles[i][VehZ]);
- SII_WriteFloat("PosA", ServerVehicles[i][VehA]);
- SII_WriteInt("Color1", ServerVehicles[i][VehColor1]);
- SII_WriteInt("Color2", ServerVehicles[i][VehColor2]);
- SII_WriteInt("Paintjob", ServerVehicles[i][VehPaintjob]);
- SII_WriteString("Plate", ServerVehicles[i][VehPlate]);
- SII_WriteInt("Health", ServerVehicles[i][VehHealth]);
- SII_WriteInt("DoorsArmour", ServerVehicles[i][VehDoorsArmour]);
- SII_WriteInt("LightsArmour", ServerVehicles[i][VehLightsArmour]);
- SII_WriteInt("PanelsArmour", ServerVehicles[i][VehPanelsArmour]);
- SII_WriteInt("TiresArmour", ServerVehicles[i][VehPanelsArmour]);
- SII_Save();
- SII_Close();
- }
- }
- }
- }
- forward CreateTextdraws();
- public CreateTextdraws()
- {
- txtModeName = TextDrawCreate(582.000000, 425.000000, "SA Tuning");
- TextDrawAlignment(txtModeName, 2);
- TextDrawBackgroundColor(txtModeName, 255);
- TextDrawFont(txtModeName, 0);
- TextDrawLetterSize(txtModeName, 0.230000, 1.100000);
- TextDrawColor(txtModeName, 255);
- TextDrawSetOutline(txtModeName, 0);
- TextDrawSetProportional(txtModeName, 1);
- TextDrawSetShadow(txtModeName, 40);
- TextDrawSetSelectable(txtModeName, 0);
- //
- txtDate = TextDrawCreate(582.000000, 436.000000, "18/09/2013 - 14:30");
- TextDrawAlignment(txtDate, 2);
- TextDrawBackgroundColor(txtDate, 255);
- TextDrawFont(txtDate, 1);
- TextDrawLetterSize(txtDate, 0.230000, 1.100000);
- TextDrawColor(txtDate, -1);
- TextDrawSetOutline(txtDate, 0);
- TextDrawSetProportional(txtDate, 1);
- TextDrawSetShadow(txtDate, 40);
- TextDrawSetSelectable(txtDate, 0);
- //
- txtVehDistrict = TextDrawCreate(581.000000, 404.000000, "Turismo");
- TextDrawAlignment(txtVehDistrict, 2);
- TextDrawBackgroundColor(txtVehDistrict, 255);
- TextDrawFont(txtVehDistrict, 1);
- TextDrawLetterSize(txtVehDistrict, 0.219999, 1.200000);
- TextDrawColor(txtVehDistrict, -1);
- TextDrawSetOutline(txtVehDistrict, 0);
- TextDrawSetProportional(txtVehDistrict, 1);
- TextDrawSetShadow(txtVehDistrict, 100);
- TextDrawSetSelectable(txtVehDistrict, 0);
- BoasVindas = TextDrawCreate(320.000000, 123.000000, "San Andreas Street Racing");
- TextDrawAlignment(BoasVindas, 2);
- TextDrawBackgroundColor(BoasVindas, 255);
- TextDrawFont(BoasVindas, 0);
- TextDrawLetterSize(BoasVindas, 0.749998, 2.499999);
- TextDrawColor(BoasVindas, 128);
- TextDrawSetOutline(BoasVindas, 0);
- TextDrawSetProportional(BoasVindas, 1);
- TextDrawSetShadow(BoasVindas, 2);
- TextDrawSetSelectable(BoasVindas, 0);
- BoasVindas2 = TextDrawCreate(325.000000, 146.000000, "TENHA UM BOM JOGO!");
- TextDrawAlignment(BoasVindas2, 2);
- TextDrawBackgroundColor(BoasVindas2, -65281);
- TextDrawFont(BoasVindas2, 0);
- TextDrawLetterSize(BoasVindas2, 0.360000, 1.299998);
- TextDrawColor(BoasVindas2, 255);
- TextDrawSetOutline(BoasVindas2, 0);
- TextDrawSetProportional(BoasVindas2, 1);
- TextDrawSetShadow(BoasVindas2, 0);
- TextDrawSetSelectable(BoasVindas2, 0);
- StartRaceTxt = TextDrawCreate(320.000000, 397.000000, " ");
- TextDrawAlignment(StartRaceTxt, 2);
- TextDrawBackgroundColor(StartRaceTxt, 255);
- TextDrawFont(StartRaceTxt, 2);
- TextDrawLetterSize(StartRaceTxt, 0.199998, 1.399998);
- TextDrawColor(StartRaceTxt, -16776961);
- TextDrawSetOutline(StartRaceTxt, 1);
- TextDrawSetProportional(StartRaceTxt, 1);
- TextDrawSetSelectable(StartRaceTxt, 0);
- RaceEndInfo = TextDrawCreate(12.000000, 431.000000, "INFO");
- TextDrawBackgroundColor(RaceEndInfo, 255);
- TextDrawFont(RaceEndInfo, 1);
- TextDrawLetterSize(RaceEndInfo, 0.330000, 1.600000);
- TextDrawColor(RaceEndInfo, -65281);
- TextDrawSetOutline(RaceEndInfo, 0);
- TextDrawSetProportional(RaceEndInfo, 1);
- TextDrawSetShadow(RaceEndInfo, 50);
- TextDrawSetSelectable(RaceEndInfo, 0);
- RaceEndInfo2 = TextDrawCreate(48.000000, 432.000000, " ");
- TextDrawBackgroundColor(RaceEndInfo2, 255);
- TextDrawFont(RaceEndInfo2, 2);
- TextDrawLetterSize(RaceEndInfo2, 0.210000, 1.399999);
- TextDrawColor(RaceEndInfo2, -1);
- TextDrawSetOutline(RaceEndInfo2, 1);
- TextDrawSetProportional(RaceEndInfo2, 1);
- TextDrawSetSelectable(RaceEndInfo2, 0);
- TextVehBox = TextDrawCreate(250.000000, -1.000000, "New Textdraw");
- TextDrawAlignment(TextVehBox, 2);
- TextDrawBackgroundColor(TextVehBox, 255);
- TextDrawFont(TextVehBox, 1);
- TextDrawLetterSize(TextVehBox, 0.500000, 50.000000);
- TextDrawColor(TextVehBox, -1);
- TextDrawSetOutline(TextVehBox, 0);
- TextDrawSetProportional(TextVehBox, 1);
- TextDrawSetShadow(TextVehBox, 1);
- TextDrawUseBox(TextVehBox, 1);
- TextDrawBoxColor(TextVehBox, 0x000000FF);
- TextDrawTextSize(TextVehBox, 0.000000, 827.000000);
- TextDrawSetSelectable(TextVehBox, 0);
- TextVeh1 = TextDrawCreate(85.000000, 175.000000, "CLOVER");
- TextDrawBackgroundColor(TextVeh1, -256);
- TextDrawFont(TextVeh1, 5);
- TextDrawLetterSize(TextVeh1, 0.500000, 1.000000);
- TextDrawColor(TextVeh1, -1);
- TextDrawSetOutline(TextVeh1, 0);
- TextDrawSetProportional(TextVeh1, 1);
- TextDrawSetShadow(TextVeh1, 1);
- TextDrawUseBox(TextVeh1, 1);
- TextDrawBoxColor(TextVeh1, -256);
- TextDrawTextSize(TextVeh1, 150.000000, 125.000000);
- TextDrawSetPreviewModel(TextVeh1, 542);
- TextDrawSetPreviewRot(TextVeh1, -16.000000, 0.000000, -55.000000, 0.800000);
- TextDrawSetSelectable(TextVeh1, 1);
- TextVeh2 = TextDrawCreate(249.000000, 175.000000, "496");
- TextDrawBackgroundColor(TextVeh2, -256);
- TextDrawFont(TextVeh2, 5);
- TextDrawLetterSize(TextVeh2, 0.500000, 1.000000);
- TextDrawColor(TextVeh2, -1);
- TextDrawSetOutline(TextVeh2, 0);
- TextDrawSetProportional(TextVeh2, 1);
- TextDrawSetShadow(TextVeh2, 1);
- TextDrawUseBox(TextVeh2, 1);
- TextDrawBoxColor(TextVeh2, 65535);
- TextDrawTextSize(TextVeh2, 150.000000, 125.000000);
- TextDrawSetPreviewModel(TextVeh2, 496);
- TextDrawSetPreviewRot(TextVeh2, -16.000000, 0.000000, -55.000000, 0.899999);
- TextDrawSetSelectable(TextVeh2, 1);
- TextVeh3 = TextDrawCreate(416.000000, 175.000000, "SUNSIRE");
- TextDrawBackgroundColor(TextVeh3, -256);
- TextDrawFont(TextVeh3, 5);
- TextDrawLetterSize(TextVeh3, 0.500000, 1.000000);
- TextDrawColor(TextVeh3, -1);
- TextDrawSetOutline(TextVeh3, 0);
- TextDrawSetProportional(TextVeh3, 1);
- TextDrawSetShadow(TextVeh3, 1);
- TextDrawUseBox(TextVeh3, 1);
- TextDrawBoxColor(TextVeh3, 65535);
- TextDrawTextSize(TextVeh3, 150.000000, 125.000000);
- TextDrawSetPreviewModel(TextVeh3, 550);
- TextDrawSetPreviewRot(TextVeh3, -16.000000, 0.000000, -55.000000, 0.850000);
- TextDrawSetSelectable(TextVeh3, 1);
- TextVehInfo = TextDrawCreate(330.000000, 174.000000, "Escolha seu veiculo para iniciar");
- TextDrawAlignment(TextVehInfo, 2);
- TextDrawBackgroundColor(TextVehInfo, 255);
- TextDrawFont(TextVehInfo, 2);
- TextDrawLetterSize(TextVehInfo, 0.419999, 1.600000);
- TextDrawColor(TextVehInfo, -1);
- TextDrawSetOutline(TextVehInfo, 1);
- TextDrawSetProportional(TextVehInfo, 1);
- TextDrawSetSelectable(TextVehInfo, 0);
- TextVeh1Name = TextDrawCreate(158.000000, 236.000000, "Clover");
- TextDrawAlignment(TextVeh1Name, 2);
- TextDrawBackgroundColor(TextVeh1Name, 255);
- TextDrawFont(TextVeh1Name, 2);
- TextDrawLetterSize(TextVeh1Name, 0.259999, 1.399999);
- TextDrawColor(TextVeh1Name, -1);
- TextDrawSetOutline(TextVeh1Name, 0);
- TextDrawSetProportional(TextVeh1Name, 1);
- TextDrawSetShadow(TextVeh1Name, 1);
- TextDrawSetSelectable(TextVeh1Name, 0);
- TextVeh2Name = TextDrawCreate(341.000000, 236.000000, "BLISTA");
- TextDrawAlignment(TextVeh2Name, 2);
- TextDrawBackgroundColor(TextVeh2Name, 255);
- TextDrawFont(TextVeh2Name, 2);
- TextDrawLetterSize(TextVeh2Name, 0.259999, 1.399999);
- TextDrawColor(TextVeh2Name, -1);
- TextDrawSetOutline(TextVeh2Name, 0);
- TextDrawSetProportional(TextVeh2Name, 1);
- TextDrawSetShadow(TextVeh2Name, 1);
- TextDrawSetSelectable(TextVeh2Name, 0);
- TextVeh3Name = TextDrawCreate(501.000000, 236.000000, "Sunrise");
- TextDrawAlignment(TextVeh3Name, 2);
- TextDrawBackgroundColor(TextVeh3Name, 255);
- TextDrawFont(TextVeh3Name, 2);
- TextDrawLetterSize(TextVeh3Name, 0.259999, 1.399999);
- TextDrawColor(TextVeh3Name, -1);
- TextDrawSetOutline(TextVeh3Name, 0);
- TextDrawSetProportional(TextVeh3Name, 1);
- TextDrawSetShadow(TextVeh3Name, 1);
- TextDrawSetSelectable(TextVeh3Name, 0);
- }
- public OnPlayerConnect(playerid)
- {
- SendDeathMessage(INVALID_PLAYER_ID, playerid, 200);
- SetPlayerColor(playerid, 0xFFFFFFFF);
- PlayerInfo[playerid][pGPS] = -1;
- PlayerInfo[playerid][Registered] = false;
- PlayerInfo[playerid][Logged] = false;
- format(PlayerInfo[playerid][pFile], 100, "RS-RACE/Accounts/%s.ini", GetPlayerName(playerid));
- if(SII_Exist(PlayerInfo[playerid][pFile]))
- {
- PlayerInfo[playerid][Registered] = true;
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFD700}CONTA CADASTRADA", "{FFFFFF}Informe a senha dessa conta:", "Logar", "Sair");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{FFD700}CONTA NÃO CADASTRADA", "{FFFFFF}Digite uma nova senha para está conta:", "Cadastrar", "Sair");
- }
- PlayerInfo[playerid][pRaceID] = -1;
- ResetPlayerMoney(playerid);
- TextDrawShowForPlayer(playerid, BoasVindas);
- TextDrawShowForPlayer(playerid, BoasVindas2);
- return true;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SendDeathMessage(INVALID_PLAYER_ID, playerid, 201);
- new posStr[100];
- GetPlayerPos(playerid, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ]);
- GetPlayerFacingAngle(playerid, PlayerInfo[playerid][pA]);
- format(posStr, sizeof posStr, "%f %f %f %f", PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ], PlayerInfo[playerid][pA]);
- PlayerInfo[playerid][pInterior] = GetPlayerInterior(playerid);
- new line[25], line2[25];
- new weapon[13], ammo[13];
- SII_Open(PlayerInfo[playerid][pFile]);
- SII_WriteString("Position", posStr);
- SII_WriteInt("Money", PlayerInfo[playerid][playermoney]);
- SII_WriteInt("Skin", PlayerInfo[playerid][pSkin]);
- SII_WriteInt("Interior", PlayerInfo[playerid][pInterior]);
- for(new i = 0; i < 13; i++)
- {
- GetPlayerWeaponData(playerid, i, weapon[i], ammo[i]);
- format(line, sizeof line, "WeaponSlot%d", i);
- SII_WriteInt(line, weapon[i]);
- format(line2, sizeof line2, "WeaponSlotAmmo%d", i);
- SII_WriteInt(line2, ammo[i]);
- }
- SII_Save();
- SII_Close();
- return true;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- if(PlayerInfo[playerid][Logged] == false && PlayerInfo[playerid][Registered] == true) ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFD700}CONTA CADASTRADA", "{FFFFFF}Informe a senha dessa conta:", "Logar", "Sair");
- //else if(PlayerInfo[playerid][Registered] == 0) ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "{FFD700}CONTA NÃO CADASTRADA", "{FFFFFF}Digite uma nova senha para está conta:", "Cadastrar", "Sair");
- SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
- SetPlayerInterior(playerid, PlayerInfo[playerid][pInterior]);
- SetPlayerPos(playerid, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ]);
- SetPlayerFacingAngle(playerid, PlayerInfo[playerid][pA]);
- SetPlayerCameraPos(playerid, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY]+3.5, PlayerInfo[playerid][pZ]+10.0);
- SetPlayerCameraLookAt(playerid, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ]);
- TogglePlayerControllable(playerid, 0);
- return true;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_TEXT_NO_EFFECT:
- {
- if(response)
- {
- if(PlayerInfo[playerid][pTutorial] == 1) // Carros
- {
- // Próximo dialogo: carros
- new sz_Dialog1[] = RGB_COLOR_GOLD"VEÍCULOS\n\n"RGB_COLOR_WHITE"Cada jogador ao se registrar, pode escolher 1 veículo dentre 3 pré-definidos: Clover, Blista ou Sunrise.\n\
- Esse será seu veículo de início. Com ele você poderá entrar em corridas para ganhar dinheiro, tunar em uma das garagens de tuning, e participar de eventos.\n";
- new sz_Dialog2[] = "É importante que você cuide do seu veículo; Não o deixe destrancado, e nem deixe estacionado pelas ruas.\n\
- Seu veículo fica salvo no local onde você o deixou, e seus tunings também ficam salvos.";
- new sz_Dialog[1000];
- strcat(sz_Dialog, sz_Dialog1);
- strcat(sz_Dialog, sz_Dialog2);
- PlayerInfo[playerid][pTutorial] = 2;
- ShowPlayerDialog(playerid, DIALOG_TEXT_NO_EFFECT, DIALOG_STYLE_MSGBOX, RGB_COLOR_GOLD"TUTORIAL", sz_Dialog, "P. PÁGINA", "");
- }
- else if(PlayerInfo[playerid][pTutorial] == 2) // Armas
- {
- new sz_Dialog[] = RGB_COLOR_GOLD"ARMAS\n\n\
- "RGB_COLOR_WHITE"Você pode comprar as suas armas normalmente nas Ammunations, e elas ficarão salvas caso você saia\
- do servidor.\n Armas especiais como: sniper, granada, etc.. só poderão ser compradas pelo mercado negro.";
- PlayerInfo[playerid][pTutorial] = 0;
- ShowPlayerDialog(playerid, DIALOG_TEXT_NO_EFFECT, DIALOG_STYLE_MSGBOX, RGB_COLOR_GOLD"TUTORIAL", sz_Dialog, "P. PÁGINA", "");
- }
- }
- }
- case DIALOG_REGISTER:
- {
- if(!response) Kick(playerid);
- else
- {
- new file[100], pass[130];
- format(file, sizeof file, "RS-RACE/Accounts/%s.ini", GetPlayerName(playerid));
- WP_Hash(pass, sizeof(pass), inputtext);
- SII_Open(file);
- SII_WriteString("Password", pass);
- SII_WriteInt("Registered", 1);
- SII_Save();
- SII_Close();
- PlayerInfo[playerid][Logged] = true;
- TextDrawHideForPlayer(playerid, BoasVindas);
- TextDrawHideForPlayer(playerid, BoasVindas2);
- SendClientMessage(playerid, COLOR_WHITE, "[SERVER] Sua conta foi cadastrada com sucesso!");
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- PlayerInfo[playerid][pX] = 1722.7843;
- PlayerInfo[playerid][pY] = -1713.9490;
- PlayerInfo[playerid][pZ] = 13.5114;
- PlayerInfo[playerid][pA] = 181.5285;
- PlayerInfo[playerid][pInterior] = 0;
- PlayerInfo[playerid][pSkin] = 0;
- for(new i = 0; i < 13; i++)
- {
- PlayerInfo[playerid][pWeapon][i] = 0;
- PlayerInfo[playerid][pAmmo][i] = 0;
- }
- new sz_Dialog[] = #RGB_COLOR_GOLD"REGRAS DO SERVIDOR\n\n\
- "RGB_COLOR_WHITE"1. Proibido o uso de qualquer tipo de cheater;\n\
- 2. Proibido se aproveitar de qualquer bug do gamemode;\n\
- 3. Proibido ofensas a outros jogadores;\n\
- 4. Ao sair do servidor, deixa seu veículo estacionado em garagens, car parking, etc;\n\
- 5. ...";
- PlayerInfo[playerid][pTutorial] = 1;
- ShowPlayerDialog(playerid, DIALOG_TEXT_NO_EFFECT, DIALOG_STYLE_MSGBOX, RGB_COLOR_GOLD"TUTORIAL", sz_Dialog, "P. PÁGINA", "");
- }
- }
- case DIALOG_LOGIN:
- {
- if(!response) Kick(playerid);
- else
- {
- new file[100], pass[130], enpass[130], pos[100];
- format(file, sizeof file, "RS-RACE/Accounts/%s.ini", GetPlayerName(playerid));
- SII_Open(file);
- WP_Hash(enpass, sizeof(enpass), inputtext);
- SII_ReadString(pass, "Password");
- if(strcmp(enpass, pass, true) == 0)
- {
- TextDrawHideForPlayer(playerid, BoasVindas);
- TextDrawHideForPlayer(playerid, BoasVindas2);
- SendClientMessage(playerid, COLOR_WHITE, "[SERVER] Sua conta foi autenticada com sucesso!");
- PlayerInfo[playerid][Registered] = true;
- PlayerInfo[playerid][Logged] = true;
- SII_ReadString(pos, "Position");
- PlayerInfo[playerid][pSkin] = SII_ReadInt("Skin");
- PlayerInfo[playerid][playermoney] = SII_ReadInt("Money");
- PlayerInfo[playerid][pInterior] = SII_ReadInt("Interior");
- new line[25], line2[25];
- for(new i = 0; i < 13; i++)
- {
- format(line, sizeof line, "WeaponSlot%d", i);
- PlayerInfo[playerid][pWeapon][i] = SII_ReadInt(line);
- printf("SLOT: %d ARMA: %d", i, PlayerInfo[playerid][pWeapon][i]);
- format(line2, sizeof line2, "WeaponSlotAmmo%d", i);
- PlayerInfo[playerid][pAmmo][i] = SII_ReadInt(line2);
- printf("SLOT: %d AMMO: %d", i, PlayerInfo[playerid][pAmmo][i]);
- }
- sscanf(pos, "ffff", PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ], PlayerInfo[playerid][pA]);
- //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);
- }
- else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, RGB_COLOR_GOLD"CONTA CADASTRADA", RGB_COLOR_WHITE"Digite a senha dessa conta:", "Logar", "Sair");
- SII_Close();
- }
- }
- case DIALOG_ENGINE:
- {
- if(response)
- {
- new i = GetPlayerVehicleID(playerid);
- SetVehicleParamsEx(i, ServerVehicles[i][VehEngine] = 1, ServerVehicles[i][VehLights], ServerVehicles[i][VehAlarm], ServerVehicles[i][VehDoors] = 0, ServerVehicles[i][VehBonnet], ServerVehicles[i][VehBoot], ServerVehicles[i][VehObjective]);
- SendClientMessage(playerid, COLOR_GOLD, "* Seu veículo está ligado!");
- }
- }
- case DIALOG_WORKSHOP:
- {
- if(response)
- {
- //Aumentar Health\nBlindar Portas\nBlindar Paineis\nBlindar Rodas\nBlindar Luzes\nPintura
- if(listitem == 0) // Aumentar Health
- {
- ShowPlayerDialog(playerid, DIALOG_WORKSHOPH, DIALOG_STYLE_LIST, "L.S. MOD SHOP", "+500 Health (R$1500)\n+1000 Health (R$2500)\n+2000 Health (R$5000)", "Comprar", "Voltar");
- }
- else if(listitem == 1) // Blindar Portas
- {
- if(GetPlayerMoney(playerid) > 3000)
- {
- ServerVehicles[GetPlayerVehicleID(playerid)][VehDoorsArmour] = 1;
- SendClientMessage(playerid, COLOR_GOLD, "* Você blindou as portas do seu veículo!");
- GivePlayerMoney(playerid, -3000);
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "* Você não tem dinheiro suficiente!");
- }
- }
- else if(listitem == 2) // Blindar Paineis
- {
- if(GetPlayerMoney(playerid) > 4000)
- {
- ServerVehicles[GetPlayerVehicleID(playerid)][VehPanelsArmour] = 1;
- SendClientMessage(playerid, COLOR_GOLD, "* Você blindou os painéis do seu veículo!");
- GivePlayerMoney(playerid, -4000);
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "* Você não tem dinheiro suficiente!");
- }
- }
- else if(listitem == 3) // Blindar Rodas
- {
- if(GetPlayerMoney(playerid) > 5000)
- {
- ServerVehicles[GetPlayerVehicleID(playerid)][VehTiresArmour] = 1;
- SendClientMessage(playerid, COLOR_GOLD, "* Você blindou as rodas do seu veículo!");
- GivePlayerMoney(playerid, -5000);
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "* Você não tem dinheiro suficiente!");
- }
- }
- else if(listitem == 4)
- {
- if(GetPlayerMoney(playerid) > 3000)
- {
- ServerVehicles[GetPlayerVehicleID(playerid)][VehLightsArmour] = 1;
- SendClientMessage(playerid, COLOR_GOLD, "* Você blindou as luzes do seu veículo!");
- GivePlayerMoney(playerid, -3000);
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "* Você não tem dinheiro suficiente!");
- }
- }
- else if(listitem == 5)
- {
- if(GetPlayerMoney(playerid) > 2500)
- {
- ShowPlayerDialog(playerid, DIALOG_WORKSHOP_COLOR, DIALOG_STYLE_INPUT, "L.S. MOD SHOP", "Selecione o ID das cores (128 a 255).\nVocê pode conferir todas as cores no link abaixo:\nhttp://wiki.sa-mp.com/wiki/Vehicle_Color_IDs\nExemplo: 222 1", "Pintar", "Voltar");
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "* Você não tem dinheiro suficiente!");
- }
- }
- else if(listitem == 6)
- {
- if(GetPlayerMoney(playerid) > 100)
- {
- RepairVehicle(GetPlayerVehicleID(playerid));
- SetVehicleHealth(GetPlayerVehicleID(playerid), ServerVehicles[GetPlayerVehicleID(playerid)][VehHealth]);
- GivePlayerMoney(playerid, -100);
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "* Você não tem dinheiro suficiente!");
- }
- }
- }
- }
- case DIALOG_WORKSHOPH:
- {
- if(response)
- {
- // 1500 Health (R$1500)\n2000 Health (R$2500)\n3000 Health (R$5000)
- if(listitem == 0)
- {
- if(ServerVehicles[GetPlayerVehicleID(playerid)][VehHealth] < 1500)
- {
- if(GetPlayerMoney(playerid) > 1500)
- {
- SendClientMessage(playerid, COLOR_GOLD, "* Você fez um upgrade na resistência do seu veículo (1500 health | 1000 = padrão)");
- RepairVehicle(GetPlayerVehicleID(playerid));
- ServerVehicles[GetPlayerVehicleID(playerid)][VehHealth] = 1500;
- SetVehicleHealth(GetPlayerVehicleID(playerid), 1500);
- GivePlayerMoney(playerid, -1500);
- }
- else SendClientMessage(playerid, COLOR_RED, "* Você não tem dinheiro suficiente!");
- } else SendClientMessage(playerid, COLOR_RED, "* A vida desse veículo já é maior que 1500!");
- }
- else if(listitem == 1)
- {
- if(ServerVehicles[GetPlayerVehicleID(playerid)][VehHealth] < 2000)
- {
- if(GetPlayerMoney(playerid) > 2500)
- {
- SendClientMessage(playerid, COLOR_GOLD, "* Você fez um upgrade na resistência do seu veículo (2000 health | 1000 = padrão)");
- RepairVehicle(GetPlayerVehicleID(playerid));
- ServerVehicles[GetPlayerVehicleID(playerid)][VehHealth] = 2000;
- SetVehicleHealth(GetPlayerVehicleID(playerid), 2000);
- GivePlayerMoney(playerid, -2500);
- }
- else SendClientMessage(playerid, COLOR_RED, "* Você não tem dinheiro suficiente!");
- } else SendClientMessage(playerid, COLOR_RED, "* A vida desse veículo já é maior que 2000!");
- }
- else if(listitem == 2)
- {
- if(ServerVehicles[GetPlayerVehicleID(playerid)][VehHealth] < 3000)
- {
- if(GetPlayerMoney(playerid) > 5000)
- {
- SendClientMessage(playerid, COLOR_GOLD, "* Você fez um upgrade na resistência do seu veículo (3000 health | 1000 = padrão)");
- RepairVehicle(GetPlayerVehicleID(playerid));
- ServerVehicles[GetPlayerVehicleID(playerid)][VehHealth] = 3000;
- SetVehicleHealth(GetPlayerVehicleID(playerid), 3000);
- GivePlayerMoney(playerid, -5000);
- }
- else SendClientMessage(playerid, COLOR_RED, "* Você não tem dinheiro suficiente!");
- } else SendClientMessage(playerid, COLOR_RED, "* A vida desse veículo já é maior que 3000!");
- }
- } else ShowPlayerDialog(playerid, DIALOG_WORKSHOP, DIALOG_STYLE_LIST, RGB_COLOR_GOLD"OFICINA DE TUNING", RGB_COLOR_WHITE"Aumentar Resistência\nBlindar Portas\t\t\tR$3000\nBlindar Paineis\t\t\tR$3000\nBlindar Rodas\t\t\tR$3000\nBlindar Luzes\t\t\tR$3000\nPintura\t\t\tR$2500\nReparar Veículo\t\t\tR$100", "Escolher", "Sair");
- }
- case DIALOG_WORKSHOP_COLOR:
- {
- if(response)
- {
- new cID, cID2;
- if(sscanf(inputtext, "dd", cID,cID2)) SendClientMessage(playerid, COLOR_RED, "* Digite os id da cor1 e cor2.");
- else
- {
- GivePlayerMoney(playerid, -2500);
- ChangeVehicleColor(GetPlayerVehicleID(playerid), cID, cID2);
- ServerVehicles[GetPlayerVehicleID(playerid)][VehColor1] = cID;
- ServerVehicles[GetPlayerVehicleID(playerid)][VehColor2] = cID2;
- }
- }
- else ShowPlayerDialog(playerid, DIALOG_WORKSHOP, DIALOG_STYLE_LIST, "L.S. MODSHOP", "Aumentar Resistência\t\t\t\t\t\t\t\nBlindar Portas\t\t\t\t\t\t\tR$3000\nBlindar Paineis\t\t\t\t\t\t\tR$3000\nBlindar Rodas\t\t\t\t\t\t\tR$3000\nBlindar Luzes\t\t\t\t\t\t\tR$3000\nPintura\t\t\t\t\t\t\tR$2500\nReparar Veículo\t\t\t\t\t\t\tR$100", "Escolher", "Sair");
- }
- case DIALOG_CARS:
- {
- if(response)
- {
- new id;
- if(sscanf(inputtext, "d", id)) SendClientMessage(playerid, COLOR_RED, "* Digite o ID do seu veículo.");
- else
- {
- if(strcmp(GetPlayerName(playerid), ServerVehicles[id][VehOwner], false) == 0)
- {
- new Float:vPos[3];
- GetVehiclePos(id, vPos[0], vPos[1], vPos[2]);
- SetPlayerMapIcon(playerid, 99, vPos[0], vPos[1], vPos[2], 55, 0xFFFFFFFF, 1);
- PlayerInfo[playerid][pGPS] = id;
- } else SendClientMessage(playerid, COLOR_RED, "* Digite o ID do seu veículo.");
- }
- }
- }
- }
- return true;
- }
- // public OnPlayerRequestSpawn(playerid) - Jogador solicita spawn na seleção de classes
- public OnPlayerRequestSpawn(playerid)
- {
- if(!PlayerInfo[playerid][Logged] || PlayerInfo[playerid][pTutorial] > 0)
- return false;
- else
- {
- TextDrawShowForPlayer(playerid, txtDate);
- TextDrawShowForPlayer(playerid, txtModeName);
- if(PlayerInfo[playerid][Registered] == false)
- {
- SetPlayerInterior(playerid, PlayerInfo[playerid][pInterior]);
- SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
- SetPlayerPos(playerid, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ]+3.5);
- TogglePlayerControllable(playerid, false);
- SetPlayerHealth(playerid, 9999999999);
- TextDrawShowForPlayer(playerid, TextVeh1);
- TextDrawShowForPlayer(playerid, TextVeh2);
- TextDrawShowForPlayer(playerid, TextVeh3);
- TextDrawShowForPlayer(playerid, TextVeh1Name);
- TextDrawShowForPlayer(playerid, TextVeh2Name);
- TextDrawShowForPlayer(playerid, TextVeh3Name);
- TextDrawShowForPlayer(playerid, TextVehBox);
- TextDrawShowForPlayer(playerid, TextVehInfo);
- SelectTextDraw(playerid, 0xFFFFFF50);
- }
- else
- {
- SetPlayerInterior(playerid, PlayerInfo[playerid][pInterior]);
- SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
- TogglePlayerControllable(playerid, 1);
- SetPlayerPos(playerid, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ]+2.5);
- }
- }
- return true;
- }
- public OnPlayerClickTextDraw(playerid, Text:clickedid)
- {
- new Float:ppos[4];
- GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
- GetPlayerFacingAngle(playerid, ppos[3]);
- if(clickedid == TextVeh1)
- {
- SendClientMessage(playerid, COLOR_WHITE, "[SERVER] Você selecionou o veículo Clover!");
- TextDrawHideForPlayer(playerid, TextVeh1);
- TextDrawHideForPlayer(playerid, TextVeh2);
- TextDrawHideForPlayer(playerid, TextVeh3);
- TextDrawHideForPlayer(playerid, TextVeh1Name);
- TextDrawHideForPlayer(playerid, TextVeh2Name);
- TextDrawHideForPlayer(playerid, TextVeh3Name);
- TextDrawHideForPlayer(playerid, TextVehBox);
- TextDrawHideForPlayer(playerid, TextVehInfo);
- CancelSelectTextDraw(playerid);
- SetPlayerHealth(playerid, 100);
- for(new i = 1; i < 500; i++)
- {
- if(VehCreate[i] == -1)
- {
- new file[100];
- format(file, sizeof file, "RS-RACE/Vehicles/Vehicle%d.ini", i);
- if(!SII_Exist(file))
- {
- SII_Open(file);
- SII_WriteString("Owner", GetPlayerName(playerid));
- SII_WriteInt("Model", 542);
- SII_WriteInt("Spoiler", -1);
- SII_WriteInt("Hood", -1);
- SII_WriteInt("Roof", -1);
- SII_WriteInt("Sideskirt", -1);
- SII_WriteInt("Lamps", -1);
- SII_WriteInt("Nitro", -1);
- SII_WriteInt("Exhaust", -1);
- SII_WriteInt("Wheels", -1);
- SII_WriteInt("Stereo", -1);
- SII_WriteInt("Hydraulics", -1);
- SII_WriteInt("FB", -1);
- SII_WriteInt("RB", -1);
- SII_WriteInt("VR", -1);
- SII_WriteInt("VL", -1);
- SII_WriteFloat("PosX", ppos[0]);
- SII_WriteFloat("PosY", ppos[1]);
- SII_WriteFloat("PosZ", ppos[2]);
- SII_WriteFloat("PosA", ppos[3]);
- SII_WriteInt("Health", 1000);
- SII_WriteInt("DoorsArmour", 0);
- SII_WriteInt("TiresArmour", 0);
- SII_WriteInt("PanelsArmour", 0);
- SII_WriteInt("LightsArmour", 0);
- SII_Save();
- SII_Close();
- VehCreate[i] = CreateVehicle(542, ppos[0], ppos[1], ppos[2], ppos[3], -1, -1, -1);
- SetVehicleNumberPlate(VehCreate[i], GetPlayerName(playerid));
- PutPlayerInVehicle(playerid, VehCreate[i], 0);
- ServerVehicles[VehCreate[i]][VehHealth] = 1000;
- //Itter_Add(TotalVehicles, VehCreate[i]);
- SetVehicleParamsEx(VehCreate[i], 1, 1, 0, 0, 0, 0, 0);
- break;
- }
- }
- }
- }
- if(clickedid == TextVeh2)
- {
- SendClientMessage(playerid, COLOR_WHITE, "[SERVER] Você selecionou o veículo Blista!");
- TextDrawHideForPlayer(playerid, TextVeh1);
- TextDrawHideForPlayer(playerid, TextVeh2);
- TextDrawHideForPlayer(playerid, TextVeh3);
- TextDrawHideForPlayer(playerid, TextVeh1Name);
- TextDrawHideForPlayer(playerid, TextVeh2Name);
- TextDrawHideForPlayer(playerid, TextVeh3Name);
- TextDrawHideForPlayer(playerid, TextVehBox);
- TextDrawHideForPlayer(playerid, TextVehInfo);
- CancelSelectTextDraw(playerid);
- SetPlayerHealth(playerid, 100);
- for(new i = 1; i < 500; i++)
- {
- if(VehCreate[i] == -1)
- {
- new file[100];
- format(file, sizeof file, "RS-RACE/Vehicles/Vehicle%d.ini", i);
- if(!SII_Exist(file))
- {
- SII_Open(file);
- SII_WriteString("Owner", GetPlayerName(playerid));
- SII_WriteInt("Model", 496);
- SII_WriteInt("Spoiler", -1);
- SII_WriteInt("Hood", -1);
- SII_WriteInt("Roof", -1);
- SII_WriteInt("Sideskirt", -1);
- SII_WriteInt("Lamps", -1);
- SII_WriteInt("Nitro", -1);
- SII_WriteInt("Exhaust", -1);
- SII_WriteInt("Wheels", -1);
- SII_WriteInt("Stereo", -1);
- SII_WriteInt("Hydraulics", -1);
- SII_WriteInt("FB", -1);
- SII_WriteInt("RB", -1);
- SII_WriteInt("VR", -1);
- SII_WriteInt("VL", -1);
- SII_WriteFloat("PosX", ppos[0]);
- SII_WriteFloat("PosY", ppos[1]);
- SII_WriteFloat("PosZ", ppos[2]);
- SII_WriteFloat("PosA", ppos[3]);
- SII_WriteInt("Health", 1000);
- SII_WriteInt("DoorsArmour", 0);
- SII_WriteInt("TiresArmour", 0);
- SII_WriteInt("PanelsArmour", 0);
- SII_WriteInt("LightsArmour", 0);
- SII_Save();
- SII_Close();
- VehCreate[i] = CreateVehicle(496, ppos[0], ppos[1], ppos[2], ppos[3], -1, -1, -1);
- SetVehicleNumberPlate(VehCreate[i], GetPlayerName(playerid));
- PutPlayerInVehicle(playerid, VehCreate[i], 0);
- ServerVehicles[VehCreate[i]][VehHealth] = 1000;
- //Itter_Add(TotalVehicles, VehCreate[i]);
- SetVehicleParamsEx(VehCreate[i], 1, 1, 0, 0, 0, 0, 0);
- break;
- }
- }
- }
- }
- if(clickedid == TextVeh3)
- {
- SendClientMessage(playerid, COLOR_WHITE, "[SERVER] Você selecionou o veículo Sunrise!");
- TextDrawHideForPlayer(playerid, TextVeh1);
- TextDrawHideForPlayer(playerid, TextVeh2);
- TextDrawHideForPlayer(playerid, TextVeh3);
- TextDrawHideForPlayer(playerid, TextVeh1Name);
- TextDrawHideForPlayer(playerid, TextVeh2Name);
- TextDrawHideForPlayer(playerid, TextVeh3Name);
- TextDrawHideForPlayer(playerid, TextVehBox);
- TextDrawHideForPlayer(playerid, TextVehInfo);
- CancelSelectTextDraw(playerid);
- SetPlayerHealth(playerid, 100);
- for(new i = 1; i < 500; i++)
- {
- if(VehCreate[i] == -1)
- {
- new file[100];
- format(file, sizeof file, "RS-RACE/Vehicles/Vehicle%d.ini", i);
- if(!SII_Exist(file))
- {
- SII_Open(file);
- SII_WriteString("Owner", GetPlayerName(playerid));
- SII_WriteInt("Model", 550);
- SII_WriteInt("Spoiler", -1);
- SII_WriteInt("Hood", -1);
- SII_WriteInt("Roof", -1);
- SII_WriteInt("Sideskirt", -1);
- SII_WriteInt("Lamps", -1);
- SII_WriteInt("Nitro", -1);
- SII_WriteInt("Exhaust", -1);
- SII_WriteInt("Wheels", -1);
- SII_WriteInt("Stereo", -1);
- SII_WriteInt("Hydraulics", -1);
- SII_WriteInt("FB", -1);
- SII_WriteInt("RB", -1);
- SII_WriteInt("VR", -1);
- SII_WriteInt("VL", -1);
- SII_WriteFloat("PosX", ppos[0]);
- SII_WriteFloat("PosY", ppos[1]);
- SII_WriteFloat("PosZ", ppos[2]);
- SII_WriteFloat("PosA", ppos[3]);
- SII_WriteInt("Health", 1000);
- SII_WriteInt("DoorsArmour", 0);
- SII_WriteInt("TiresArmour", 0);
- SII_WriteInt("PanelsArmour", 0);
- SII_WriteInt("LightsArmour", 0);
- SII_Save();
- SII_Close();
- VehCreate[i] = CreateVehicle(550, ppos[0], ppos[1], ppos[2], ppos[3], -1, -1, -1);
- SetVehicleNumberPlate(VehCreate[i], GetPlayerName(playerid));
- PutPlayerInVehicle(playerid, VehCreate[i], 0);
- ServerVehicles[VehCreate[i]][VehHealth] = 1000;
- //Itter_Add(TotalVehicle, VehCreate[i]);
- SetVehicleParamsEx(VehCreate[i], 1, 1, 0, 0, 0, 0, 0);
- break;
- }
- }
- }
- }
- return 1;
- }
- public OnVehicleDamageStatusUpdate(vehicleid, playerid)
- {
- #pragma unused playerid
- new panels, doors, lights, tires;
- for(new i = 0; i < 500; i++)
- {
- if(vehicleid == VehCreate[i])
- {
- GetVehicleDamageStatus(VehCreate[i], panels, doors, lights, tires);
- if(ServerVehicles[VehCreate[i]][VehDoorsArmour] == 1) doors = encode_doors(0, 0, 0, 0, 0, 0); // fix all doors //fell off - (4, 4, 4, 4, 0, 0)
- if(ServerVehicles[VehCreate[i]][VehPanelsArmour] == 1) panels = encode_panels(0, 0, 0, 0, 0, 0, 0); // fix all panels //fell off - (3, 3, 3, 3, 3, 3, 3)
- if(ServerVehicles[VehCreate[i]][VehTiresArmour] == 1) tires = encode_tires(0, 0, 0, 0); // fix all tires
- if(ServerVehicles[VehCreate[i]][VehLightsArmour] == 1) lights = encode_lights(0, 0, 0, 0); // fix all lights
- UpdateVehicleDamageStatus(VehCreate[i], panels, doors, lights, tires);
- }
- }
- return 1;
- }
- encode_tires(tire1, tire2, tire3, tire4) return tire1 | (tire2 << 1) | (tire3 << 2) | (tire4 << 3);
- encode_panels(flp, frp, rlp, rrp, windshield, front_bumper, rear_bumper)
- {
- return flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (front_bumper << 20) | (rear_bumper << 24);
- }
- encode_doors(bonnet, boot, driver_door, passenger_door, behind_driver_door, behind_passenger_door)
- {
- #pragma unused behind_driver_door
- #pragma unused behind_passenger_door
- return bonnet | (boot << 8) | (driver_door << 16) | (passenger_door << 24);
- }
- encode_lights(light1, light2, light3, light4)
- {
- return light1 | (light2 << 1) | (light3 << 2) | (light4 << 3);
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- GetPlayerPos(playerid, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ]);
- GetPlayerFacingAngle(playerid, PlayerInfo[playerid][pA]);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SetPlayerPos(playerid, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ]+2.5);
- SetPlayerFacingAngle(playerid, PlayerInfo[playerid][pA]);
- TogglePlayerControllable(playerid, 1);
- for(new i = 0; i < 13; i++) GivePlayerWeapon(playerid, PlayerInfo[playerid][pWeapon][i], PlayerInfo[playerid][pAmmo][i]);
- return true;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- ServerVehicles[vehicleid][VehColor1] = color1;
- ServerVehicles[vehicleid][VehColor2] = color2;
- return true;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- ServerVehicles[vehicleid][VehPaintjob] = paintjobid;
- return true;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- ServerVehicles[vehicleid][VehStatus] = 1;
- return true;
- }
- public OnVehicleSpawn(vehicleid)
- {
- new i = vehicleid;
- SetVehiclePos(vehicleid, ServerVehicles[vehicleid][VehX], ServerVehicles[vehicleid][VehY], ServerVehicles[vehicleid][VehZ]);
- SetVehicleZAngle(vehicleid, ServerVehicles[vehicleid][VehA]);
- ChangeVehicleColor(vehicleid, ServerVehicles[vehicleid][VehColor1], ServerVehicles[vehicleid][VehColor2]);
- ChangeVehiclePaintjob(vehicleid, ServerVehicles[vehicleid][VehPaintjob]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehSpoiler]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehHood]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehRoof]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehSideskirt]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehLamps]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehNitro]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehExhaust]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehWheels]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehStereo]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehHydraulics]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehFB]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehRB]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehVR]);
- AddVehicleComponent(vehicleid, ServerVehicles[vehicleid][VehVL]);
- //SetVehicleNumberPlate(vehicleid, ServerVehicles[vehicleid][VehPlate]);
- ServerVehicles[vehicleid][VehStatus] = 0;
- SetVehicleParamsEx(vehicleid, ServerVehicles[i][VehEngine], ServerVehicles[i][VehLights], ServerVehicles[i][VehAlarm], ServerVehicles[i][VehDoors], ServerVehicles[i][VehBonnet], ServerVehicles[i][VehBoot], ServerVehicles[i][VehObjective]);
- return true;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
- {
- new i = GetPlayerVehicleID(playerid);
- GetVehicleParamsEx(i, ServerVehicles[i][VehEngine], ServerVehicles[i][VehLights], ServerVehicles[i][VehAlarm], ServerVehicles[i][VehDoors], ServerVehicles[i][VehBonnet], ServerVehicles[i][VehBoot], ServerVehicles[i][VehObjective]);
- if(ServerVehicles[i][VehEngine] == 0) ShowPlayerDialog(playerid, DIALOG_ENGINE, 0, "{FFD700}SA Tuning", "{FFFFFF}Deseja ligar o veículo?\nUse também o comando /motor para ligar/desligar.", "Ligar", "Não");
- }
- return 1;
- }
- //-----------------------------------/ Y_Race Sistem
- public OnPlayerFinishRace(playerid, race, position, prize, time)
- {
- new Float:X, Float:Y, Float:Z, Float:A, Float:vX, Float:vY, Float:vZ;
- GetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
- GetVehicleZAngle(GetPlayerVehicleID(playerid), A);
- GetVehicleVelocity(GetPlayerVehicleID(playerid), vX, vY, vZ);
- for(new k = 0; k < 100; k++)
- {
- if(race == RaceCreate[k])
- {
- new raceid = RaceCreate1[RaceCreate[k]];
- SendClientMessageToAll(COLOR_GOLD, "");
- SendClientMessageToAll(COLOR_GOLD, "CORRIDA: %s", RaceInfo[raceid][RaceName]);
- SendClientMessageToAll(-1, "%d COLOCADO: %s", position, GetPlayerName(playerid));
- SendClientMessageToAll(COLOR_GOLD, "");
- if(position == 1)
- {
- format(RaceInfo[raceid][Race1Name], 20, "%s", GetPlayerName(playerid));
- GivePlayerMoney(playerid, RaceInfo[raceid][RaceReward]);
- SendClientMessageToAll(COLOR_WHITE, "[RACE] %s terminou a corrida '%s' em 1st e ganhou $%d", GetPlayerName(playerid), RaceInfo[raceid][RaceName], RaceInfo[raceid][RaceReward]);
- }
- else if(position == 2)
- {
- format(RaceInfo[raceid][Race2Name], 20, "%s", GetPlayerName(playerid));
- GivePlayerMoney(playerid, floatround(RaceInfo[raceid][RaceReward]/2));
- SendClientMessageToAll(COLOR_WHITE, "[RACE] %s terminou a corrida '%s' em 2nd e ganhou $%d", GetPlayerName(playerid), RaceInfo[raceid][RaceName], floatround(RaceInfo[raceid][RaceReward]/2));
- }
- else if(position == 3)
- {
- format(RaceInfo[raceid][Race3Name], 20, "%s", GetPlayerName(playerid));
- GivePlayerMoney(playerid, floatround(RaceInfo[raceid][RaceReward]/3));
- SendClientMessageToAll(COLOR_WHITE, "[RACE] %s terminou a corrida '%s' em 3st e ganhou $%d", GetPlayerName(playerid), RaceInfo[raceid][RaceName], floatround(RaceInfo[raceid][RaceReward]/3));
- }
- else if(position >= 4 || position <= 8)
- {
- GivePlayerMoney(playerid, floatround(RaceInfo[raceid][RaceReward]/6));
- SendClientMessageToAll(COLOR_WHITE, "[RACE] %s terminou a corrida '%s' em %d colocado e ganhou $%d", GetPlayerName(playerid), RaceInfo[raceid][RaceName], position, floatround(RaceInfo[raceid][RaceReward]/6));
- }
- else if(position >= 9)
- {
- GivePlayerMoney(playerid, floatround(RaceInfo[raceid][RaceReward]/9));
- SendClientMessageToAll(COLOR_WHITE, "[RACE] %s terminou a corrida '%s' em %d colocado e ganhou $%d", GetPlayerName(playerid), RaceInfo[raceid][RaceName], position, floatround(RaceInfo[raceid][RaceReward]/9));
- }
- break;
- }
- }
- return true;
- }
- public OnPlayerExitRace(playerid, race)
- {
- //SetVehicleToRespawn(GetPlayerVehicleID(playerid));
- for(new i = 0; i < 100; i++)
- {
- if(race == RaceCreate[i])
- {
- new raceid = RaceCreate1[RaceCreate[i]];
- RaceInfo[raceid][RaceCurrent]--;
- PlayerInfo[playerid][pRaceID] = -1;
- SendClientMessageToAll(COLOR_WHITE, "[RACE] %s saiu da corrida '%s'", GetPlayerName(playerid), RaceInfo[raceid][RaceName]);
- break;
- }
- }
- return true;
- }
- public OnRaceEnd(race)
- {
- new raceid, str[128];
- for(new k = 0; k < 100; k++)
- {
- if(race == RaceCreate[k])
- {
- raceid = RaceCreate1[RaceCreate[k]];
- SendClientMessageToAll(COLOR_GOLD, "[RACE] A corrida '%s' terminou.", RaceInfo[raceid][RaceName]);
- foreach(Player, i)
- {
- if(PlayerInfo[i][pRaceID] == raceid)
- {
- PlayerInfo[i][pRaceID] = -1;
- }
- }
- break;
- }
- }
- format(str, sizeof str, "Corrida: %s 1st: %s 2nd: %s 3rd: %s", RaceInfo[raceid][RaceName], RaceInfo[raceid][Race1Name], RaceInfo[raceid][Race2Name], RaceInfo[raceid][Race3Name]);
- TextDrawSetString(RaceEndInfo2, str);
- TextDrawShowForAll(RaceEndInfo);
- TextDrawShowForAll(RaceEndInfo2);
- format(RaceInfo[raceid][Race1Name], 20, "None");
- format(RaceInfo[raceid][Race2Name], 20, "None");
- format(RaceInfo[raceid][Race3Name], 20, "None");
- RaceInfo[raceid][RaceOpen] = false;
- SetTimerEx("HideTextDraw", 6000, false, "d", 0);
- return true;
- }
- forward StartRace(race);
- public StartRace(race)
- {
- for(new k = 0; k < 100; k++)
- {
- if(race == RaceCreate[k])
- {
- new raceid = RaceCreate1[RaceCreate[k]];
- if(RaceInfo[raceid][RaceCurrent] >= 1)
- {
- SendClientMessageToAll(COLOR_GOLD, "[RACE] A corrida '%s' vai começar. Preparados?", RaceInfo[raceid][RaceName]);
- Race_Start(RaceCreate[k]);
- }
- else
- {
- RaceInfo[race][RaceOpen] = false;
- RaceInfo[race][RaceCurrent] = 0;
- RaceInfo[race][RaceTotal] = 0;
- foreach(Player, i)
- {
- if(PlayerInfo[i][pRaceID] == race)
- {
- PlayerInfo[i][pRaceID] = -1;
- Race_SetPlayer(race, i, false);
- }
- }
- }
- break;
- }
- }
- return true;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- if(strcmp(ServerVehicles[vehicleid][VehOwner], GetPlayerName(forplayerid), false) == 0)
- {
- SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 0);
- }
- else
- {
- if(ServerVehicles[vehicleid][VehLocked] == true) SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
- else if(ServerVehicles[vehicleid][VehLocked] == false) SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 0);
- }
- return true;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return true;
- }
- forward HideTextDraw(textid);
- public HideTextDraw(textid)
- {
- if(textid == 1)
- {
- TextDrawHideForAll(StartRaceTxt);
- }
- else if(textid == 0)
- {
- TextDrawHideForAll(RaceEndInfo);
- TextDrawHideForAll(RaceEndInfo2);
- }
- }
- //-----------------------------------/ Comandos
- /*
- zcmd:createrace(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) SendClientMessage(playerid, COLOR_RED, "* Você precisa ser administrador ou ter autorização.");
- else if(PlayerInfo[playerid][CRaceStatus] > 0) SendClientMessage(playerid, COLOR_RED, "* Você já está criando uma corrida.");
- else
- {
- PlayerInfo[playerid][CRaceStatus] = 1;
- ShowPlayerDialog(playerid, DialogRaceType, 2, "<SA Race> Qual o tipo de corrida?", "Ponto a Ponto\nConvencional", "Avançar", "Cancelar");
- }
- return true;
- }
- */
- zcmd:admcmds(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid))
- return false;
- ShowPlayerDialog(playerid, DIALOG_TEXT_NO_EFFECT, DIALOG_STYLE_MSGBOX, RGB_COLOR_GOLD"COMANDOS", sz_CmdAdmins, "OK", "");
- return true;
- }
- zcmd:tutorial(playerid, params[])
- {
- new sz_Dialog[] = #RGB_COLOR_GOLD"REGRAS DO SERVIDOR\n\n\
- "RGB_COLOR_WHITE"1. Proibido o uso de qualquer tipo de cheater;\n\
- 2. Proibido se aproveitar de qualquer bug do gamemode;\n\
- 3. Proibido ofensas a outros jogadores;\n\
- 4. Proibido deixar veículos no meio da rua;\n\
- 5. ...";
- PlayerInfo[playerid][pTutorial] = 1;
- ShowPlayerDialog(playerid, DIALOG_TEXT_NO_EFFECT, DIALOG_STYLE_MSGBOX, RGB_COLOR_GOLD"TUTORIAL", sz_Dialog, "PROX. PÁG", "");
- return true;
- }
- zcmd:creditos(playerid, params[])
- {
- new sz_Dialog[] = RGB_COLOR_GOLD"\t\t\tCRÉDITOS DO GAMEMODE\n\n\
- "RGB_COLOR_WHITE"Roger Costa - Programador e Proprietário\n\
- Paulo Mu - Programador e Proprietário\n\
- Felipe (Play 4 Life RPG) - Garoto que testa o mode com a gente -q\n\
- Wagner Bender - Emo que testa o mode com a gente também -q";
- ShowPlayerDialog(playerid, DIALOG_TEXT_NO_EFFECT, DIALOG_STYLE_MSGBOX, RGB_COLOR_GOLD"CRÉDITOS", sz_Dialog, "OK", "");
- return true;
- }
- zcmd:reportar(playerid, params[])
- {
- new report[50], admins;
- if(sscanf(params, "s[50]", report)) SendClientMessage(playerid, COLOR_RED, "[COMANDO] Use '/reportar [mensagem]'");
- else
- {
- foreach(Player, i)
- {
- if(IsPlayerAdmin(i))
- {
- admins++;
- GameTextForPlayer(i, "~w~~h~~h~NOVO REPORT~w~OLHE O CHAT", 3000, 3);
- PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
- SendClientMessageEx(i, -1, "[REPORT] %s(id%d): %s", GetPlayerNameEx(playerid), playerid, report);
- }
- }
- if(admins == 0) SendClientMessage(playerid, COLOR_RED, "[ERRO] Não há nenhum administrador online.");
- else SendClientMessage(playerid, COLOR_GREEN, "[REPORT] Seu report foi enviado com sucesso!");
- }
- return true;
- }
- // zcmd:ajuda(playerid, params[]) - Mostra um índice de ajuda para o jogador
- zcmd:ajuda(playerid, params[])
- {
- return ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_MSGBOX, RGB_COLOR_GOLD"AJUDA", g_szHelpDialog, "FECHAR", ""), true;
- }
- // zcmd:comandos(playerid, params[]) - Mostra a lista de comandos do servidor
- zcmd:comandos(playerid, params[])
- {
- strcat(g_szCommandsDialog, g_szCommandsDialog1);
- return ShowPlayerDialog(playerid, DIALOG_COMMANDS, DIALOG_STYLE_MSGBOX, RGB_COLOR_GOLD"COMANDOS", g_szCommandsDialog, "FECHAR", ""), true;
- }
- // zcmd:comandos(playerid, params[]) - Comete suicídio
- zcmd:kill(playerid, params[])
- {
- SendClientMessageToAll(COLOR_GRAY, "[JOGADOR] %s se suicidou. (/kill)", GetPlayerName(playerid));
- SetPlayerHealth(playerid, 0.0);
- return true;
- }
- zcmd:race(playerid, params[])
- {
- new raceid;
- if(PlayerInfo[playerid][pRaceID] > -1) SendClientMessage(playerid, COLOR_RED, "* Você já está em uma corrida.");
- else if(sscanf(params, "d", raceid)) SendClientMessage(playerid, COLOR_RED, "* Modafoca, use /race <id>");
- else if(!RaceInfo[raceid][RaceOpen]) SendClientMessage(playerid, COLOR_RED, "* Essa corrida não está aberta.");
- else if(RaceInfo[raceid][RaceCurrent] >= 20) SendClientMessage(playerid, COLOR_RED, "* Corrida já está cheia!");
- else if(PlayerInfo[playerid][pDM] > 0) SendClientMessage(playerid, COLOR_RED, "* Você está em um deathmatch.");
- else
- {
- RaceInfo[raceid][RaceTotal]++;
- RaceInfo[raceid][RaceCurrent]++;
- PlayerInfo[playerid][pRaceID] = raceid;
- Race_SetPlayer(RaceCreate[raceid], playerid, true);
- SendClientMessageToAll(COLOR_GOLD, "[RACE] %s entrou na corrida '%s'. Para entrar, digite /race %d", GetPlayerName(playerid), RaceInfo[raceid][RaceName], raceid);
- }
- return true;
- }
- zcmd:exit(playerid, params[])
- {
- if(!Race_GetPlayerRace(playerid)) SendClientMessage(playerid, COLOR_RED, "* Você não está em uma corrida.");
- else
- {
- Race_SetPlayer(Race_GetPlayerRace(playerid), playerid, false);
- }
- return true;
- }
- zcmd:openrace(playerid, params[])
- {
- new raceid;
- if(PlayerInfo[playerid][pRaceID] > -1) SendClientMessage(playerid, COLOR_RED, "* Você já está em uma corrida.");
- else if(sscanf(params, "d", raceid)) SendClientMessage(playerid, COLOR_RED, "* Modafoca, use /openrace <id>");
- else if(RaceInfo[raceid][RaceOpen]) SendClientMessage(playerid, COLOR_RED, "* Essa corrida já está aberta.");
- else
- {
- new str[128];
- RaceInfo[raceid][RaceOpen] = true;
- SendClientMessageToAll(COLOR_GOLD, "[RACE] %s abriu a corrida '%s'. Para entrar, digite /race %d", GetPlayerName(playerid), RaceInfo[raceid][RaceName], raceid);
- SendClientMessageToAll(COLOR_GOLD, "[RACE] A CORRIDA SE INICIA EM 1 MINUTO!");
- PlayAudioForAll(1057);
- //---- CreateRace
- RaceCreate[raceid] = Race_Create();
- RaceCreate1[RaceCreate[raceid]] = raceid;
- //---- Laps
- Race_SetLaps(RaceCreate[raceid], RaceInfo[raceid][RaceLaps]);
- //---- Price
- Race_SetEntry(RaceCreate[raceid], 0);
- //---- Checkpoints
- for(new j = 0; j < 50; j++)
- {
- if(strlen(RaceCPPos[raceid][j]) > 0)
- {
- new Float:r_pos[3];
- sscanf(RaceCPPos[raceid][j], "fff", r_pos[0], r_pos[1], r_pos[2]);
- Race_AddCheckpoint(RaceCreate[raceid], r_pos[0], r_pos[1], r_pos[2]);
- }
- }
- //---- Grid
- for(new j = 0; j < 20; j++)
- {
- if(strlen(RaceSTPos[raceid][j]) > 0)
- {
- new Float:r_pos[4];
- sscanf(RaceSTPos[raceid][j], "ffff", r_pos[0], r_pos[1], r_pos[2], r_pos[3]);
- Race_AddStart(RaceCreate[raceid], r_pos[0], r_pos[1], r_pos[2], r_pos[3]);
- }
- }
- TextDrawShowForAll(StartRaceTxt);
- format(str, sizeof str, "~g~A corrida ~w~%s ~g~foi aberta~n~Digite ~w~/race %d ~g~para entrar!", RaceInfo[raceid][RaceName], raceid);
- TextDrawSetString(StartRaceTxt, str);
- SetTimerEx("HideTextDraw", 6000, false, "d", 1);
- SetTimerEx("StartRace", 1000*20, false, "d", RaceCreate[raceid]);
- PlayAudioForAll(1057);
- }
- return true;
- }
- // zcmd:dardinheiro(playerid, params[]) - Dá a quantia de dinheiro para o jogador
- zcmd:dardinheiro(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid))
- return false;
- new iPlayerID;
- new iAmount;
- if(sscanf(params, "ui", iPlayerID, iAmount))
- return SendClientMessage(playerid, COLOR_PURPLE, "[COMANDO] Use '/dardinheiro [id/jogador] [quantidade]'.");
- if(!IsPlayerConnected(iPlayerID))
- return SendClientMessage(playerid, COLOR_RED, "[ERRO] Jogador desconectado/inválido.");
- SendClientMessageToAll(COLOR_BLUE, "[ADMIN] %s deu $%d à %s.", GetPlayerName(playerid), iAmount, GetPlayerName(iPlayerID));
- GivePlayerMoney(iPlayerID, iAmount);
- return true;
- }
- // zcmd:setardinheiro(playerid, params[]) - Seta o dinheiro de um jogador para o valor especificado
- zcmd:setardinheiro(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid))
- return false;
- new iPlayerID;
- new iAmount;
- if(sscanf(params, "ui", iPlayerID, iAmount))
- return SendClientMessage(playerid, COLOR_PURPLE, "[COMANDO] Use '/setardinheiro [id/jogador] [quantia]'.");
- if(!IsPlayerConnected(iPlayerID))
- return SendClientMessage(playerid, COLOR_RED, "[ERRO] Jogador desconectado/inválido.");
- SendClientMessageToAll(COLOR_BLUE, "[ADMIN] %s setou o dinheiro de %s para $%d.", GetPlayerName(playerid), GetPlayerName(iPlayerID), iAmount);
- SetPlayerMoney(iPlayerID, iAmount);
- return true;
- }
- // zcmd:setarcolete(playerid, params[]) - Seta o colete de um jogador para o valor especificado
- zcmd:setarcolete(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid))
- return false;
- new iPlayerID;
- new Float:fArmour;
- if(sscanf(params, "uf", iPlayerID, fArmour))
- return SendClientMessage(playerid, COLOR_PURPLE, "[COMANDO] Use '/setarcolete [id/jogador] [colete (0-100)]'.");
- if(!IsPlayerConnected(iPlayerID))
- return SendClientMessage(playerid, COLOR_RED, "[ERRO] Jogador desconectado/inválido.");
- if(fArmour < 0.0 || fArmour > 100.0)
- return SendClientMessage(playerid, COLOR_RED, "[ERRO] Digite um valor de 0 a 100.");
- SetPlayerArmour(iPlayerID, fArmour);
- SendClientMessageToAll(COLOR_BLUE, "[ADMIN] %s setou o colete de %s para %.1f.", GetPlayerName(playerid), GetPlayerName(iPlayerID), fArmour);
- return true;
- }
- // zcmd:setarvida(playerid, params[]) - Seta a vida de um jogador para o valor especificado
- zcmd:setarvida(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid))
- return false;
- new iPlayerID;
- new Float:fHealth;
- if(sscanf(params, "uf", iPlayerID, fHealth))
- return SendClientMessage(playerid, COLOR_PURPLE, "[COMANDO] Use '/setarvida [id/jogador] [vida (0-100)]'.");
- if(!IsPlayerConnected(iPlayerID))
- return SendClientMessage(playerid, COLOR_RED, "[ERRO] Jogador desconectado/inválido.");
- if(fHealth < 0.0 || fHealth > 100.0)
- return SendClientMessage(playerid, COLOR_RED, "[ERRO] Digite um valor de 0 a 100.");
- SetPlayerHealth(iPlayerID, fHealth);
- SendClientMessageToAll(COLOR_BLUE, "[ADMIN] %s setou a vida do(a) %s para %.1f.", GetPlayerName(playerid), GetPlayerName(iPlayerID), fHealth);
- return true;
- }
- zcmd:vehicle(playerid, params[])
- {
- new vehid;
- if(!IsPlayerAdmin(playerid)) return false;
- else if(sscanf(params, "d", vehid)) SendClientMessage(playerid, COLOR_PURPLE, "* Modafoca, use /vehicle <id>");
- else if(vehid < 400 || vehid > 611) SendClientMessage(playerid, COLOR_RED, "* Modafoca, é só id 400 ao 611.");
- else if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, COLOR_RED, "* ERROR");
- else
- {
- for(new i = 0; i < sizeof VehProhibiteds; i++) if(vehid == VehProhibiteds[i]) return SendClientMessage(playerid, COLOR_RED, "* Modafoca, é só id 400 ao 611.");
- new Float:ppos[4];
- GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
- GetPlayerFacingAngle(playerid, ppos[3]);
- for(new i = 1; i < 500; i++)
- {
- if(VehCreate[i] == -1)
- {
- new file[100];
- format(file, sizeof file, "RS-RACE/Vehicles/Vehicle%d.ini", i);
- if(!SII_Exist(file))
- {
- SII_Open(file);
- SII_WriteString("Owner", GetPlayerName(playerid));
- SII_WriteInt("Model", vehid);
- SII_WriteInt("Spoiler", -1);
- SII_WriteInt("Hood", -1);
- SII_WriteInt("Roof", -1);
- SII_WriteInt("Sideskirt", -1);
- SII_WriteInt("Lamps", -1);
- SII_WriteInt("Nitro", -1);
- SII_WriteInt("Exhaust", -1);
- SII_WriteInt("Wheels", -1);
- SII_WriteInt("Stereo", -1);
- SII_WriteInt("Hydraulics", -1);
- SII_WriteInt("FB", -1);
- SII_WriteInt("RB", -1);
- SII_WriteInt("VR", -1);
- SII_WriteInt("VL", -1);
- SII_WriteFloat("PosX", ppos[0]);
- SII_WriteFloat("PosY", ppos[1]);
- SII_WriteFloat("PosZ", ppos[2]);
- SII_WriteFloat("PosA", ppos[3]);
- SII_WriteFloat("Health", 1000);
- SII_Save();
- SII_Close();
- VehCreate[i] = CreateVehicle(vehid, ppos[0], ppos[1], ppos[2], ppos[3], -1, -1, -1);
- PutPlayerInVehicle(playerid, VehCreate[i], 0);
- ServerVehicles[VehCreate[i]][VehHealth] = 1000;
- ServerVehicles[VehCreate[i]][VehID] = vehid;
- format(ServerVehicles[VehCreate[i]][VehOwner], 24, "%s", GetPlayerName(playerid));
- break;
- }
- }
- }
- }
- return true;
- }
- zcmd:motor(playerid, params[])
- {
- if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == 0)
- {
- new vehID = GetPlayerVehicleID(playerid);
- //GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
- if(ServerVehicles[GetPlayerVehicleID(playerid)][VehEngine] == 0)
- {
- SetVehicleParamsEx(GetPlayerVehicleID(playerid), ServerVehicles[vehID][VehEngine] = 1, ServerVehicles[vehID][VehLights], ServerVehicles[vehID][VehAlarm], ServerVehicles[vehID][VehDoors], ServerVehicles[vehID][VehBonnet], ServerVehicles[vehID][VehBoot], ServerVehicles[vehID][VehObjective]);
- SendClientMessage(playerid, COLOR_GOLD, "[SERVER] Veículo ligado!");
- }
- else
- {
- SetVehicleParamsEx(GetPlayerVehicleID(playerid), ServerVehicles[vehID][VehEngine] = 0, ServerVehicles[vehID][VehLights], ServerVehicles[vehID][VehAlarm], ServerVehicles[vehID][VehDoors], ServerVehicles[vehID][VehBonnet], ServerVehicles[vehID][VehBoot], ServerVehicles[vehID][VehObjective]);
- SendClientMessage(playerid, COLOR_GOLD, "[SERVER] Veículo desligado!");
- }
- }
- else SendClientMessage(playerid, COLOR_RED, "[ERRO] Você precisa estar de motorista pra ligar o veículo.");
- return true;
- }
- zcmd:lights(playerid, params[])
- {
- if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == 0)
- {
- new vehID = GetPlayerVehicleID(playerid);
- //GetVehicleParamsEx(GetPlayerVehicleID(playerid), ServerVehicles[vehID][VehEngine], ServerVehicles[vehID][VehLights], ServerVehicles[vehID][VehAlarm], ServerVehicles[vehID][VehDoors], ServerVehicles[vehID][VehBonnet], ServerVehicles[vehID][VehBoot], ServerVehicles[vehID][VehObjective]);
- if(ServerVehicles[vehID][VehLights] == 0)
- {
- SetVehicleParamsEx(GetPlayerVehicleID(playerid), ServerVehicles[vehID][VehEngine], ServerVehicles[vehID][VehLights] =1, ServerVehicles[vehID][VehAlarm], ServerVehicles[vehID][VehDoors], ServerVehicles[vehID][VehBonnet], ServerVehicles[vehID][VehBoot], ServerVehicles[vehID][VehObjective]);
- SendClientMessage(playerid, COLOR_GOLD, "[SERVER] Faróis aceso!");
- }
- else
- {
- SetVehicleParamsEx(GetPlayerVehicleID(playerid), ServerVehicles[vehID][VehEngine], ServerVehicles[vehID][VehLights] = 0, ServerVehicles[vehID][VehAlarm], ServerVehicles[vehID][VehDoors], ServerVehicles[vehID][VehBonnet], ServerVehicles[vehID][VehBoot], ServerVehicles[vehID][VehObjective]);
- SendClientMessage(playerid, COLOR_GOLD, "[SERVER] Faróis apagados!");
- }
- }
- else SendClientMessage(playerid, COLOR_RED, "[ERRO] Você precisa estar de motorista pra acender os faróis o veículo.");
- return true;
- }
- /*zcmd:plate(playerid, params[])
- {
- new pstr[10];
- if(!IsPlayerInAnyVehicle(playerid) || GetPlayerVehicleSeat(playerid) != 0) SendClientMessage(playerid, COLOR_RED, "* Modafoca, use /plate <texto>");
- else if(sscanf(params, "s[10]", pstr)) SendClientMessage(playerid, COLOR_RED, "* Modafoca, use /plate <texto>");
- else if(strlen(pstr) < 1 || strlen(pstr) > 8) SendClientMessage(playerid, COLOR_RED, "* No máximo 8 digitos.");
- else
- {
- new vehID = GetPlayerVehicleID(playerid), str[100];
- SetVehicleNumberPlate(vehID, pstr);
- format(ServerVehicles[vehID][VehPlate], 10, pstr);
- format(str, sizeof str, "* Placa alterada (%s)", ServerVehicles[vehID][VehPlate]);
- SendClientMessage(playerid, COLOR_GOLD, str);
- ServerVehicles[vehID][VehStatus] = 1;
- GetVehiclePos(vehID, ServerVehicles[vehID][VehX], ServerVehicles[vehID][VehY], ServerVehicles[vehID][VehZ]);
- GetVehicleZAngle(vehID, ServerVehicles[vehID][VehA]);
- //GetVehicleParamsEx(vehID, ServerVehicles[vehID][VehEngine], ServerVehicles[vehID][VehLights], ServerVehicles[vehID][VehAlarm], ServerVehicles[vehID][VehDoors], ServerVehicles[vehID][VehBonnet], ServerVehicles[vehID][VehBoot], ServerVehicles[vehID][VehObjective]);
- SetVehicleToRespawn(vehID);
- }
- return true;
- }
- */
- zcmd:destrancar(playerid, params[])
- {
- if(!IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, COLOR_RED, "[ERRO] Você precisa estar em um veículo!");
- else if(strcmp(ServerVehicles[GetPlayerVehicleID(playerid)][VehOwner], GetPlayerName(playerid), false) != 0) SendClientMessage(playerid, COLOR_RED, "[ERRO] Esse carro não é seu para trancá-lo!");
- {
- SendClientMessage(playerid, COLOR_GOLD, "[SERVER] Veículo destrancado!");
- ServerVehicles[GetPlayerVehicleID(playerid)][VehLocked] = false;
- foreach(new i : Player)
- {
- if(i != playerid)
- {
- SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid), i, 0, 0);
- }
- }
- }
- return true;
- }
- zcmd:trancar(playerid, params[])
- {
- if(!IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, COLOR_RED, "[ERRO] Você precisa estar em um veículo!");
- else if(strcmp(ServerVehicles[GetPlayerVehicleID(playerid)][VehOwner], GetPlayerName(playerid), false) != 0) SendClientMessage(playerid, COLOR_RED, "[ERRO] Esse carro não é seu para trancá-lo!");
- {
- SendClientMessage(playerid, COLOR_GOLD, "[SERVER] Veículo trancado!");
- ServerVehicles[GetPlayerVehicleID(playerid)][VehLocked] = true;
- foreach(new i : Player)
- {
- if(i != playerid)
- {
- SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid), i, 0, 1);
- }
- }
- }
- return true;
- }
- zcmd:mycars(playerid, params[])
- {
- new str[500];
- if(PlayerInfo[playerid][pGPS] != -1)
- {
- PlayerInfo[playerid][pGPS] = -1;
- RemovePlayerMapIcon(playerid, 99);
- return true;
- }
- for(new i = 1; i < 500; i++)
- {
- if(VehCreate[i] != -1)
- {
- if(strcmp(GetPlayerName(playerid), ServerVehicles[i][VehOwner], false) == 0)
- {
- new str2[128];
- format(str2, sizeof str2, "{FFFFFF}%s (ID: %d)\n", VehicleNames[ServerVehicles[i][VehID] - 400], i);
- strcat(str, str2);
- }
- }
- }
- if(strlen(str))
- {
- strcat(str, "{333333}Selecione o ID do seu carro para localizar:");
- ShowPlayerDialog(playerid, DIALOG_CARS, DIALOG_STYLE_INPUT, RGB_COLOR_GOLD"SEUS VEÍCULOS", str, "Localizar", "");
- }
- else SendClientMessage(playerid, COLOR_RED, "[ERRO] Você não tem nenhum carro pra localizar, pobre!");
- return true;
- }
- zcmd:skin(playerid, params[])
- {
- if(sscanf(params, "d", PlayerInfo[playerid][pSkin])) SendClientMessage(playerid, COLOR_PURPLE, "[COMANDO] Use '/skin [id]'");
- else
- {
- SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
- SendClientMessage(playerid, COLOR_GOLD, "[SERVER] Sua skin foi alterada.");
- }
- return true;
- }
- zcmd:tuning(playerid, params[])
- {
- if(!IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, COLOR_RED, "[ERRO] Você não está em um veículo!");
- else if(strcmp(ServerVehicles[GetPlayerVehicleID(playerid)][VehOwner], GetPlayerName(playerid), false) != 0) SendClientMessage(playerid, COLOR_RED, "[ERRO] Esse carro não é seu para tuná-lo.");
- else if(!IsPlayerInRangeOfPoint(playerid, 10.0, 1523.7592,-1470.9032,9.5000)) SendClientMessage(playerid, COLOR_RED, "[ERRO] Você não está na garagem de tuning!");
- else
- {
- ShowPlayerDialog(playerid, DIALOG_WORKSHOP, DIALOG_STYLE_LIST, RGB_COLOR_GOLD"OFICINA DE TUNING", RGB_COLOR_WHITE"Aumentar Resistência\nBlindar Portas\t\t\tR$3000\nBlindar Paineis\t\t\tR$3000\nBlindar Rodas\t\t\tR$3000\nBlindar Luzes\t\t\tR$3000\nPintura\t\t\tR$2500\nReparar Veículo\t\t\tR$100", "Escolher", "Sair");
- }
- return true;
- }
- zcmd:money(playerid, params[])
- {
- GivePlayerMoney(playerid, 500000);
- return true;
- }
- forward AntiCheat();
- public AntiCheat()
- {
- foreach(new i : Player)
- {
- //SendClientMessage(i, -1, "[DEBUG] GetPlayerMoney(%d) = $%d | PlayerInfo[%d][playerMoney] = $%d", i, GetPlayerMoney(i), i, PlayerInfo[i][playerMoney]);
- if(GetPlayerMoney(i) > PlayerInfo[i][playermoney])
- {
- SendClientMessageToAll(COLOR_RED, "[ANTICHEAT] %s usou money hack!", GetPlayerName(i));
- ResetPlayerMoney(i);
- GivePlayerMoney(i, PlayerInfo[i][playermoney]);
- }
- else
- PlayerInfo[i][playermoney] = GetPlayerMoney(i);
- }
- return true;
- }
- // - [FUNÇÕES DE DINHEIRO]
- // stock GetPlayerMoneyEx(playerid) - Retorna a quantia de dinheiro que o jogador possui em mãos
- stock GetPlayerMoneyEx(playerid)
- return PlayerInfo[playerid][playermoney];
- // stock GivePlayerMoneyEx(playerid, amount) - Dá uma quantida especificad de dinheiro para o jogador
- stock GivePlayerMoneyEx(playerid, amount)
- {
- PlayerInfo[playerid][playermoney] = PlayerInfo[playerid][playermoney] + amount;
- GivePlayerMoney(playerid, amount);
- }
- // stock ResetPlayerMoneyEx(playerid) - Reseta o dinheiro do jogador
- stock ResetPlayerMoneyEx(playerid)
- {
- PlayerInfo[playerid][playermoney] = 0;
- ResetPlayerMoney(playerid);
- }
- // stock SetPlayerMoneyEx(playerid, amount) - Seta o dinheiro de o jogador para a quantia especificada
- stock SetPlayerMoney(playerid, amount)
- {
- PlayerInfo[playerid][playermoney] = amount;
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, amount);
- }
- #define GetPlayerMoney GetPlayerMoneyEx
- #define GivePlayerMoney GivePlayerMoneyEx
- #define ResetPlayerMoney ResetPlayerMoneyEx
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement