Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #define MAX_RACES 50
- #define MAX_RACE_CP 50
- /* nepřidávat */
- stock IsPlayerInArea(playerid, Float:minx1, Float:maxx1, Float:miny1, Float:maxy1)
- {
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x, y, z);
- if (x > minx1 && x < maxx1 && y > miny1 && y < maxy1) return 1;
- return 0;
- }
- stock Jmeno(playerid)
- {
- new p[MAX_PLAYER_NAME];
- GetPlayerName(playerid,p,MAX_PLAYER_NAME);
- return p;
- }
- // -----------------------------------------------
- enum RACE_INFO
- {
- race_name[50],
- race_zakladatel[MAX_PLAYER_NAME],
- Float:race_x,
- Float:race_y,
- Float:race_x1,
- Float:race_y1,
- race_zone,
- race_players,
- bool:race_started,
- bool:race_timer,
- konecne_cislo
- };
- /*enum RACE_CP_INFO
- {
- Float:rcp_X,
- Float:rcp_Y,
- Float:rcp_Z
- };*/
- new RaceInfo[MAX_RACES][RACE_INFO];
- new Float:rcp_X[MAX_RACES][MAX_RACE_CP];
- new Float:rcp_Y[MAX_RACES][MAX_RACE_CP];
- new Float:rcp_Z[MAX_RACES][MAX_RACE_CP];
- new PlayerInRace[MAX_RACES][MAX_PLAYERS];
- new RaceCount = 0;
- new RaceCpCount[MAX_RACES];
- new PlayerCPc[MAX_RACES][MAX_PLAYERS];
- forward RaceTimerTest();
- forward RaceStart(race_id);
- forward RaceOdpocet(race_id);
- forward CreateRace(const r_name[], Float:rz_x, Float:rz_y, Float:rz_x1, Float:rz_y1);
- forward SetRaceCheckpoint(race_id, Float:cpX, Float:cpY, Float:cpZ);
- public RaceStart(race_id)
- {
- for(new i=0; i< MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(PlayerInRace[race_id][i] == 1 && RaceInfo[race_id][race_started] == false && RaceInfo[race_id][race_timer] == true)
- {
- if(RaceInfo[race_id][race_players] /*>*/== 1)
- {
- /*if(RaceInfo[race_id][race_timer] == 3)
- {
- }else{
- TogglePlayerControllable(i, false);
- }*/
- RaceInfo[race_id][race_started] = true;
- //new numberse = RaceCpCount[race_id];
- /*SetPlayerRaceCheckpoint(i, 0, RaceCpInfo[race_id][numberse*0][rcp_X], RaceCpInfo[race_id][numberse*0][rcp_Y], RaceCpInfo[race_id][numberse*0][rcp_Z], RaceCpInfo[race_id][numberse*0+1][rcp_X], RaceCpInfo[race_id][numberse*0+1][rcp_Y], RaceCpInfo[race_id][numberse*0+1][rcp_Z],5);
- RaceCpCount[race_id] = 1;*/
- PlayerCPc[race_id][i] = 0;
- new cp = PlayerCPc[race_id][i];
- DisablePlayerRaceCheckpoint(i);
- SetPlayerRaceCheckpoint(i, 0, rcp_X[race_id][cp], rcp_Y[race_id][cp], rcp_Z[race_id][cp], rcp_X[race_id][cp+1], rcp_Y[race_id][cp+1], rcp_Z[race_id][cp+1],5);
- PlayerCPc[race_id][i] ++;
- }else{
- SendClientMessage(i, -1, "Závod byl zrušen kvůli nízké účasti");
- RaceInfo[race_id][race_players] = 0;
- GivePlayerMoney(i, 200);
- PlayerInRace[race_id][i] = 0;
- }
- }
- }
- }
- return true;
- }
- public CreateRace(const r_name[], Float:rz_x, Float:rz_y, Float:rz_x1, Float:rz_y1)
- {
- if(RaceCount < MAX_RACES)
- {
- RaceInfo[RaceCount][race_x] = rz_x;
- RaceInfo[RaceCount][race_y] = rz_y;
- RaceInfo[RaceCount][race_x1] = rz_x1;
- RaceInfo[RaceCount][race_y1] = rz_y1;
- format(RaceInfo[RaceCount][race_name], 50, "%s", r_name);
- format(RaceInfo[RaceCount][race_zakladatel], MAX_PLAYER_NAME, "Zadny");
- RaceInfo[RaceCount][race_zone] = GangZoneCreate(rz_x, rz_y, rz_x1, rz_y1);
- RaceCount ++;
- }else printf("\n\nRACE -------- > Byl prekrocen maximalni pocet zavodu %d, bylo vytvoreno %d < --------");
- return true;
- }
- public SetRaceCheckpoint(race_id, Float:cpX, Float:cpY, Float:cpZ)
- {
- new numberse = RaceCpCount[race_id];
- rcp_X[race_id][numberse] = cpX;
- rcp_Y[race_id][numberse] = cpY;
- rcp_Z[race_id][numberse] = cpZ;
- RaceCpCount[race_id] ++;
- RaceInfo[race_id][konecne_cislo] = RaceCpCount[race_id];
- return true;
- }
- public RaceTimerTest()
- {
- for(new i=0; i< MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- new race_string[256];
- for(new ra=0; ra< RaceCount; ra++)
- {
- if(IsPlayerInArea(i, RaceInfo[ra][race_x], RaceInfo[ra][race_x1], RaceInfo[ra][race_y], RaceInfo[ra][race_y1]))
- {
- if(RaceInfo[ra][race_started] == true) return GameTextForPlayer(i, "ZAVOD JIZ BYL ODSTARTOVAN", 1000, 5);
- if(RaceInfo[ra][race_players] == 0)
- {
- if(IsPlayerInAnyVehicle(i))
- {
- if(PlayerInRace[ra][i] == 0){
- for(new t=0; t< 9; t++) SendClientMessage(i, -1, " ");
- // -------------- |
- SendClientMessage(i, 0xFF0000FF, " [ RACE ]");
- SendClientMessage(i, -1, " ");
- // ----------------------------- |
- SendClientMessage(i, 0xFF8000FF, " Právě se nacházíte v {FF0000}Závodní{FF8000} zóně.");
- format(race_string, sizeof(race_string), " Závod '' %s '' aktuálně má 0 účastníků ..", RaceInfo[ra][race_name]);
- SendClientMessage(i, 0xFF0080FF, race_string);
- SendClientMessage(i, 0xFF8000FF, " Pokud chcete tento závod založit, stiskněte '' {FF0000}L.ALT{FF8000} '', zápisné je 200$");
- // ----------------------------- |
- SendClientMessage(i, -1, " ");
- SendClientMessage(i, 0xFF0000FF, " [ RACE ]");
- }
- }else{
- if(PlayerInRace[ra][i] == 0){
- for(new t=0; t< 9; t++) SendClientMessage(i, -1, " ");
- // -------------- |
- SendClientMessage(i, 0xFF0000FF, " [ RACE ]");
- SendClientMessage(i, -1, " ");
- // ----------------------------- |
- SendClientMessage(i, 0xFF8000FF, " Právě se nacházíte v {FF0000}Závodní{FF8000} zóně.");
- format(race_string, sizeof(race_string), " Závod '' %s '' aktuálně má 0 účastníků ..", RaceInfo[ra][race_name]);
- SendClientMessage(i, 0xFF0080FF, race_string);
- SendClientMessage(i, 0xFF8000FF, " Tento závod založit nemůžete, protože nejste ve vozidle ....");
- // ----------------------------- |
- SendClientMessage(i, -1, " ");
- SendClientMessage(i, 0xFF0000FF, " [ RACE ]");
- }
- }
- // -----------------------------------------------------
- }else if(RaceInfo[ra][race_players] != 0)
- {
- if(IsPlayerInAnyVehicle(i))
- {
- if(PlayerInRace[ra][i] == 0){
- for(new t=0; t< 9; t++) SendClientMessage(i, -1, " ");
- // -------------- |
- SendClientMessage(i, 0xFF0000FF, " [ RACE ");
- SendClientMessage(i, -1, " ");
- // ----------------------------- |
- SendClientMessage(i, 0xFF8000FF, " Právě se nacházíte v {FF0000}Závodní{FF8000} zóně.");
- format(race_string, sizeof(race_string), " Závod '' %s '' je aktivní, má %d účastníků a jeho zakladatel je %s ..", RaceInfo[ra][race_name], RaceInfo[ra][race_players], RaceInfo[ra][race_zakladatel]);
- SendClientMessage(i, 0xFF0080FF, race_string);
- SendClientMessage(i, 0xFF8000FF, " Pokud se chcete do tohoto závodu připojit stiskněte '' {FF0000}L.ALT{FF8000} '', zápisné je 200$");
- // ----------------------------- |
- SendClientMessage(i, -1, " ");
- SendClientMessage(i, 0xFF0000FF, " [ RACE ");
- }
- }else
- {
- if(PlayerInRace[ra][i] == 0){
- for(new t=0; t< 9; t++) SendClientMessage(i, -1, " ");
- // -------------- |
- SendClientMessage(i, 0xFF0000FF, " [ RACE ");
- SendClientMessage(i, -1, " ");
- // ----------------------------- |
- SendClientMessage(i, 0xFF8000FF, " Právě se nacházíte v {FF0000}Závodní{FF8000} zóně.");
- format(race_string, sizeof(race_string), " Závod '' %s '' je aktivní, má %d účastníků a jeho zakladatel je %s ..", RaceInfo[ra][race_name], RaceInfo[ra][race_players], RaceInfo[ra][race_zakladatel]);
- SendClientMessage(i, 0xFF0080FF, race_string);
- SendClientMessage(i, 0xFF8000FF, " Do tohoto závodu se připojit nemůžete, protože nejste ve vozidle ....");
- // ----------------------------- |
- SendClientMessage(i, -1, " ");
- SendClientMessage(i, 0xFF0000FF, " [ RACE ");
- }
- }
- }
- }else{
- if(RaceInfo[ra][race_started] != true){
- if(strcmp(Jmeno(i), RaceInfo[ra][race_zakladatel], false) == 0)
- {
- for(new all=0; all< MAX_PLAYERS; all++)
- {
- if(PlayerInRace[ra][i] == 1)
- {
- GivePlayerMoney(all, 200);
- RaceInfo[ra][race_players] = 0;
- PlayerInRace[ra][all] = 0;
- RaceInfo[ra][race_timer] = false;
- SendClientMessage(all, -1, "Závod byl zrušen, zakladatel opustil Race zónu !");
- }
- }
- format(RaceInfo[ra][race_zakladatel], MAX_PLAYER_NAME, "Neni");
- }
- else if(PlayerInRace[ra][i] == 1 && RaceInfo[ra][race_started] == false)
- {
- GivePlayerMoney(i, 200);
- RaceInfo[ra][race_players] --;
- PlayerInRace[ra][i] = 0;
- SendClientMessageToAll(-1, " ");
- format(race_string, sizeof(race_string), " [ RACE ] Hráč %s [ID:%d] se odpojil od závodu '' %s '' , byli mu vráceny peníze ze zápisného ( 200$ ) !", Jmeno(i), i, RaceInfo[ra][race_name]);
- SendClientMessageToAll(0xFF0080FF, race_string);
- SendClientMessageToAll(-1, " ");
- }}
- }
- }
- }
- }
- return true;
- }
- public RaceOdpocet(race_id)
- {
- return true;
- }
- public OnFilterScriptInit()
- {
- print("\n\n\n--------------------------------------");
- print(" RACE_SCRIPT_BY_AVEST-X");
- print("--------------------------------------\n");
- SetTimer("RaceTimerTest", 1012, true);
- CreateRace("MountChiland Race", -2402.0532,-2229.2290, -2363.5325,-2169.7222);
- SetRaceCheckpoint(0, -2327.3811,-2175.1597,36.7472);
- SetRaceCheckpoint(0, -2234.3284,-2117.4915,68.0157);
- SetRaceCheckpoint(0, -2100.9314,-1894.8044,109.1182);
- SetRaceCheckpoint(0, -2193.1943,-2015.0443,119.0259);
- SetRaceCheckpoint(0, -2534.7107,-2069.0212,127.5429);
- SetRaceCheckpoint(0, -2741.0298,-1875.4073,139.9702);
- SetRaceCheckpoint(0, -2766.4487,-1577.7751,140.8025);
- SetRaceCheckpoint(0, -2752.9265,-1401.8600,141.1142);
- SetRaceCheckpoint(0, -2569.2939,-1143.3043,173.0608);
- SetRaceCheckpoint(0, -2609.2664,-1271.8868,217.7274);
- SetRaceCheckpoint(0, -2385.7439,-1337.8872,327.5127);
- SetRaceCheckpoint(0, -2578.9590,-1478.7751,358.5890);
- SetRaceCheckpoint(0, -2447.0854,-1411.0299,360.8648);
- SetRaceCheckpoint(0, -2204.2656,-1532.4340,360.3800);
- SetRaceCheckpoint(0, -2253.6057,-1490.7532,378.4095);
- SetRaceCheckpoint(0, -2469.3347,-1469.9465,389.6377);
- SetRaceCheckpoint(0, -2525.3755,-1668.2281,401.3145);
- SetRaceCheckpoint(0, -2452.8882,-1756.9316,421.1972);
- SetRaceCheckpoint(0, -2285.7986,-1756.0228,457.5406);
- SetRaceCheckpoint(0, -2311.7371,-1652.3560,483.2628);
- CreateRace("Vesnicka dlazba", -1931.7969,-2489.5261, -1893.0459,-2350.7678);
- SetRaceCheckpoint(1, -1814.2375,-2331.6802,36.2958);
- SetRaceCheckpoint(1, -1712.3586,-2304.6548,44.4098);
- SetRaceCheckpoint(1, -1673.4436,-2179.2861,35.0113);
- SetRaceCheckpoint(1, -1465.5701,-2159.7686,3.4617);
- SetRaceCheckpoint(1, -1323.2677,-2180.4919,21.5870);
- SetRaceCheckpoint(1, -1223.7097,-2335.4326,17.0684);
- SetRaceCheckpoint(1, -1005.2717,-2373.5967,63.7959);
- SetRaceCheckpoint(1, -914.0551,-2374.1660,53.8645);
- SetRaceCheckpoint(1, -795.2784,-2473.6218,77.7108);
- return true;
- }
- public OnFilterScriptExit()
- {
- return true;
- }
- public OnPlayerConnect(playerid)
- {
- for(new ra=0; ra< RaceCount; ra++) GangZoneShowForPlayer(playerid, RaceInfo[ra][race_zone], -1);
- return true;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- return true;
- }
- public OnPlayerSpawn(playerid)
- {
- return true;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return true;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return true;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return true;
- }
- public OnPlayerText(playerid, text[])
- {
- return true;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- return false;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return true;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return true;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return true;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return true;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return true;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- PlayerPlaySound(playerid, 1149, 0,0,0);
- for(new ra=0; ra< RaceCount; ra++)
- {
- if(PlayerCPc[ra][playerid] != RaceInfo[ra][konecne_cislo]-1 && PlayerCPc[ra][playerid] != RaceInfo[ra][konecne_cislo])
- {
- new cp = PlayerCPc[ra][playerid];
- DisablePlayerRaceCheckpoint(playerid);
- SetPlayerRaceCheckpoint(playerid, 0, rcp_X[ra][cp], rcp_Y[ra][cp], rcp_Z[ra][cp], rcp_X[ra][cp+1], rcp_Y[ra][cp+1], rcp_Z[ra][cp+1],5);
- PlayerCPc[ra][playerid] ++;
- }
- else if(PlayerCPc[ra][playerid] == RaceInfo[ra][konecne_cislo]-1)
- {
- new cp = PlayerCPc[ra][playerid];
- DisablePlayerRaceCheckpoint(playerid);
- SetPlayerRaceCheckpoint(playerid, 1, rcp_X[ra][cp], rcp_Y[ra][cp], rcp_Z[ra][cp], rcp_X[ra][cp+1], rcp_Y[ra][cp+1], rcp_Z[ra][cp+1],5);
- PlayerCPc[ra][playerid] ++;
- }
- else if(PlayerCPc[ra][playerid] == RaceInfo[ra][konecne_cislo])
- {
- new string[256];
- for(new i=0; i< MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(PlayerInRace[ra][i] == 1)
- {
- if(i != playerid)
- {
- SendClientMessage(i, -1, " ");
- format(string, sizeof(string), " [ RACE ] Závod %s jsi nevyhrál, první v cíli byl %s [ID:%d] ....", RaceInfo[ra][race_name], Jmeno(playerid), playerid);
- SendClientMessage(i, -1, string);
- }else{
- SendClientMessage(playerid, -1, " ");
- format(string, sizeof(string), " [ RACE ] Závod %s jsi vyhrál a stáváš se automatickým výtězem závodu, vyhráváš %d$ !", RaceInfo[ra][race_name], 200*RaceInfo[ra][race_players]);
- SendClientMessage(playerid, -1, string);
- GivePlayerMoney(playerid, 200*RaceInfo[ra][race_players]);
- }
- DisablePlayerRaceCheckpoint(i);
- PlayerInRace[ra][i] = 0;
- PlayerCPc[ra][i] = 0;
- format(RaceInfo[ra][race_zakladatel], MAX_PLAYER_NAME, "Neni");
- }
- RaceInfo[ra][race_players] = 0;
- }
- }
- }
- }
- return true;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return true;
- }
- public OnRconCommand(cmd[])
- {
- return true;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return true;
- }
- public OnObjectMoved(objectid)
- {
- return true;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return true;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return true;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return true;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return true;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return true;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return true;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return true;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return true;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys == KEY_FIRE && IsPlayerInAnyVehicle(playerid))
- {
- for(new ra=0; ra< RaceCount; ra++)
- {
- if(IsPlayerInArea(playerid, RaceInfo[ra][race_x], RaceInfo[ra][race_x1], RaceInfo[ra][race_y], RaceInfo[ra][race_y1]))
- {
- if(PlayerInRace[ra][playerid] == 0)
- {
- if(IsPlayerInAnyVehicle(playerid))
- {
- if(RaceInfo[ra][race_started] == false)
- {
- if(GetPlayerMoney(playerid) >= 200)
- {
- new race_string[256];
- if(RaceInfo[ra][race_players] == 0)
- {
- PlayerInRace[ra][playerid] = 1;
- GivePlayerMoney(playerid, -200);
- RaceInfo[ra][race_players] ++;
- SendClientMessageToAll(-1, " ");
- format(race_string, sizeof(race_string), " [ RACE ] Hráč %s [ID:%d] založil závod '' %s '', za minutu je závod ostartován !", Jmeno(playerid), playerid, RaceInfo[ra][race_name]);
- format(RaceInfo[ra][race_zakladatel], MAX_PLAYER_NAME, "%s", Jmeno(playerid));
- SendClientMessageToAll(0xFF0080FF, race_string);
- SendClientMessageToAll(-1, " ");
- RaceInfo[ra][race_timer] = true;
- SetTimerEx("RaceStart", 1000/**60*/, 0, "d", ra);
- }else{
- PlayerInRace[ra][playerid] = 1;
- GivePlayerMoney(playerid, -200);
- RaceInfo[ra][race_players] ++;
- SendClientMessageToAll(-1, " ");
- format(race_string, sizeof(race_string), " [ RACE ] Hráč %s [ID:%d] se připojil do závodu '' %s '' , Tento závod založil %s !", Jmeno(playerid), playerid, RaceInfo[ra][race_name], RaceInfo[ra][race_zakladatel]);
- SendClientMessageToAll(0xFF0080FF, race_string);
- SendClientMessageToAll(-1, " ");
- }
- }else GameTextForPlayer(playerid, "NEMATE NA ZAPISNE / ~r~200$~w~ !", 1000, 5);
- }else GameTextForPlayer(playerid, "~r~ZAVOD JIZ BYL ODSTARTOVAN !", 1000, 5);
- }else GameTextForPlayer(playerid, "~r~NEJSTE VE VOZIDLE !", 1000, 5);
- }else GameTextForPlayer(playerid, "~r~UZ JSTE PRIPOJEN V ZAVODE !", 1000, 5);
- }
- }
- }
- return true;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return true;
- }
- public OnPlayerUpdate(playerid)
- {
- return true;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return true;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return true;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return true;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return true;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- return true;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement