Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <sscanf2>
- #include <zcmd>
- #define MAX_RACES 100
- #define MAX_CHECKPOINTS 50
- #define MAX_RACE_PLAYERS 10
- enum
- {
- DIALOG_NEXT = 1520,
- DIALOG_MENU = 1521,
- DIALOG_NAME = 1522,
- DIALOG_VEHICLE = 1523,
- DIALOG_TYPE = 1525,
- DIALOG_TIME = 1526,
- DIALOG_ROUND = 1527,
- DIALOG_SAVE = 1528,
- DIALOG_RACES = 1529,
- DIALOG_DATA = 1530
- }
- enum rdata
- {
- name[128],
- vehicle,
- type,
- typee[128],
- round,
- time,
- angle,
- allcp
- }
- enum cpdata
- {
- Float:X,
- Float:Y,
- Float:Z
- }
- new checkpoint[MAX_RACES][MAX_CHECKPOINTS][cpdata];
- new race[MAX_RACES][rdata];
- new raceid;
- new cpid;
- new rcpid[MAX_PLAYERS];
- new car[MAX_RACES];
- new care[MAX_VEHICLES];
- new RaceStarted;
- new car2;
- new getround[MAX_PLAYERS];
- new DisableJoin;
- new win;
- new RaceTimer;
- new cvalue[MAX_PLAYERS];
- new ctimer[MAX_PLAYERS];
- new rname[128],rtime,rround,rveh,rtype,rallcp,rangle;
- new Float:rcpx[MAX_CHECKPOINTS],Float:rcpy[MAX_CHECKPOINTS],Float:rcpz[MAX_CHECKPOINTS];
- new jracers;
- new bool:RaceEditor;
- new goback[MAX_PLAYERS];
- new ccc;
- 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"}
- };
- public OnFilterScriptInit()
- {
- raceid = 0;
- win = 1;
- cpid = 1;
- RaceEditor = false;
- return 1;
- }
- CMD:createrace(playerid)
- {
- if(GetPVarInt(playerid,"TakeCP") == 1) return SendClientMessage(playerid,-1,"Valaki már használja ezt a vesenykészítő módot!");
- ShowPlayerDialog(playerid,DIALOG_NEXT,DIALOG_STYLE_MSGBOX,"Verseny készítés:","Itt versenyt készíthetsz!\nHa befejezted a /race paranccsal tudod elindítani!","Folytatás","Mégse");
- return 1;
- }
- CMD:launchrace(playerid)
- {
- new string[128],str[128],c = 0;
- new File:rlist = fopen("Races.list", io_read);
- if(!fexist("Races.list")) return printf("Nincs telepítve a szerver mappájába a Races.list fájlt!");
- while(fread(rlist, string))
- {
- strdel(string,strlen(string)-2,strlen(string));
- format(str,sizeof(str),"%s%s\n",str,string);
- c++;
- }
- fclose(rlist);
- ShowPlayerDialog(playerid,DIALOG_RACES,DIALOG_STYLE_LIST,"Versenyek:",str,"Választ","Mégsem");
- return 1;
- }
- CMD:joinrace(playerid)
- {
- if(DisableJoin == 1) return SendClientMessage(playerid,-1,"Már a verseny elindult!");
- if(RaceStarted == 0) return SendClientMessage(playerid,-1,"Jelenleg egy verseny sincs elindítva!");
- if(jracers == MAX_RACE_PLAYERS) return SendClientMessage(playerid,-1,"Tele van ez a verseny!");
- else if(GetPVarInt(playerid,"PlayerJoined") == 1) return SendClientMessage(playerid,-1,"Már csatlakoztál a versenyhez!");
- else
- {
- SetPVarInt(playerid,"PlayerJoined",1);
- SetPVarInt(playerid,"PlayerSor",jracers);
- SendClientMessage(playerid,-1,"Csatlakoztál egy versenyhez!");
- jracers++;
- }
- return 1;
- }
- CMD:leaverace(playerid)
- {
- SetPVarInt(playerid,"PlayerJoined",0);
- SendClientMessage(playerid,-1,"Kiléptél a versenyből!");
- DestroyVehicle(care[playerid]);
- jracers--;
- if(jracers < 2)
- {
- RaceStarted = 0;
- jracers = 0;
- KillTimer(RaceTimer);
- for(new i;i<MAX_VEHICLES;i++) DestroyVehicle(care[i]);
- SendClientMessageToAll(-1,"Sajnos nem lett elég jelentkező, így a verseny nem indul el!");
- }
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_RACES:
- {
- if(response)
- {
- if(RaceStarted == 1)return SendClientMessage(playerid,-1,"{f01313}HIBA! Már egy verseny elindult!");
- new str[128],string[128],strex[128],stre[128],c = 0,cs = 0,cpc = 0;
- new File:rlist = fopen("Races.list", io_read);
- if(!fexist("Races.list")) return printf("HIBA: Races.list nem található");
- while(fread(rlist, strex))
- {
- strdel(strex,strlen(strex)-2,strlen(strex));
- if(cs == listitem)
- {
- format(str,sizeof(str),"Races/%s.race",strex);
- format(rname,sizeof(rname),"%s",strex);
- }
- cs++;
- }
- fclose(rlist);
- new File:frace = fopen(str, io_read);
- if(!fexist(str)) return printf("HIBA: NEM TALÁLHATÓ A FILE!");
- while(fread(frace, string))
- {
- if(c == 0)
- {
- sscanf(string, "p<|>ddddddf",rtype,rround,rveh,rallcp,rtime,rangle,rangle);
- }
- else
- {
- sscanf(string, "p<|>fff",rcpx[cpc],rcpy[cpc],rcpz[cpc]);
- cpc++;
- }
- c++;
- }
- fclose(frace);
- format(stre,sizeof(stre),"Verseny név: %s\nEllenőrzőpontok száma: %d\nVerseny típusa: %d\nKörök száma: %d\nJármű: %s\nVerseny ideje: %d",rname,rallcp,rtype,rround,VehicleNames[rveh-400],rtime);
- ShowPlayerDialog(playerid,DIALOG_DATA,DIALOG_STYLE_MSGBOX,"Verseny adatok",stre,"Indítás","Vissza");
- }
- }
- case DIALOG_DATA:
- {
- if(response)
- {
- new pname[MAX_PLAYER_NAME],string[256];
- GetPlayerName(playerid,pname,sizeof(pname));
- format(string,sizeof(string),"{2dcf27}%s {ffffff}elindította a {3097c7}%s {ffffff}nevű versenyt, ami {ff0000}30 másodperc múlva kezdődik!",pname,rname);
- SendClientMessageToAll(-1,string);
- SendClientMessageToAll(-1,"{2dcf27}INFO: {ffffff}A {ff0000}/joinrace {ffffff}paranccsal tudsz jelentkezni a versenyre!");
- SetTimer("StartedRace",30000,0);
- RaceStarted = 1;
- }
- }
- case DIALOG_NEXT:
- {
- if(response)
- {
- if(RaceEditor == true) return SendClientMessage(playerid,-1,"Valaki már használja a versenykészítő módot!");
- RaceEditor = false;
- ShowPlayerDialog(playerid,DIALOG_NAME,DIALOG_STYLE_INPUT,"Név","Kérlek add meg a verseny nevét","Megad","");
- raceid++;
- }
- }
- case DIALOG_NAME:
- {
- if(!response) ShowPlayerDialog(playerid,DIALOG_NAME,DIALOG_STYLE_INPUT,"Név","Kérlek add meg a verseny nevét","Megad","");
- if(response)
- {
- new string[64],str[128];
- format(str,sizeof(str),"%s",inputtext);
- race[raceid][name] = str;
- if(fexist("Races.list"))
- {
- new File:rlist = fopen("Races.list", io_read);
- while(fread(rlist, string))
- {
- strdel(string,sizeof(string)-2,sizeof(string));
- if(strcmp(string,race[raceid][name], true) == 0) return ShowPlayerDialog(playerid,DIALOG_NAME,DIALOG_STYLE_INPUT,"Név","{f01313}HIBA: már létezik ez a név. Adj meg egy másikat!","Megad","");
- }
- fclose(rlist);
- }
- ShowPlayerDialog(playerid,DIALOG_VEHICLE,DIALOG_STYLE_INPUT,"Jármű","Add meg a jármű nevét vagy az id-jét.","Megad","Vissza");
- }
- }
- case DIALOG_VEHICLE:
- {
- if(!response) return ShowPlayerDialog(playerid,DIALOG_NAME,DIALOG_STYLE_INPUT,"Név","Kérlek add meg a verseny nevét","Megad","");
- if(response)
- {
- if(!IsNumeric(inputtext)) car[raceid] = GetVehicleModelIDFromName(inputtext);
- else car[raceid] = strval(inputtext);
- if(car[raceid] < 400 || car[raceid] > 611) return ShowPlayerDialog(playerid,DIALOG_VEHICLE,DIALOG_STYLE_INPUT,"Jármű","{f01313}HIBA! A jármű nem létezik! Próbáld újra.","Megad","Vissza");
- race[raceid][vehicle] = car[raceid];
- ShowPlayerDialog(playerid,DIALOG_TYPE,DIALOG_STYLE_LIST,"Add meg a típusát","Normál\nRepülő mód","Választ","Vissza");
- }
- }
- case DIALOG_TYPE:
- {
- if(!response) return ShowPlayerDialog(playerid,DIALOG_VEHICLE,DIALOG_STYLE_LIST,"Add meg a típusát","Normál\nRepülő mód","Választ","Vissza");
- if(response)
- {
- ShowPlayerDialog(playerid,DIALOG_TIME,DIALOG_STYLE_INPUT,"Idő","Hány perces legyen a verseny?","Megad","Vissza");
- if(listitem == 0)
- {
- new str[128];
- format(str,sizeof(str),"Normál");
- race[raceid][typee] = str;
- race[raceid][type] = 0;
- }
- if(listitem == 1)
- {
- new str[128];
- format(str,sizeof(str),"Repülő mód");
- race[raceid][typee] = str;
- race[raceid][type] = 3;
- }
- }
- }
- case DIALOG_TIME:
- {
- if(!response) return ShowPlayerDialog(playerid,DIALOG_TYPE,DIALOG_STYLE_INPUT,"Idő","Hány perces legyen a verseny?","Megad","Vissza");
- if(response)
- {
- race[raceid][time] = strval(inputtext);
- ShowPlayerDialog(playerid,DIALOG_ROUND,DIALOG_STYLE_INPUT,"Idő","Add meg a körök számát!","Megad","Vissza");
- }
- }
- case DIALOG_ROUND:
- {
- if(!response)return ShowPlayerDialog(playerid,DIALOG_TIME,DIALOG_STYLE_INPUT,"Idő","Add meg a körök számát!","Megad","Vissza");
- if(response)
- {
- new Float:gX,Float:gY,Float:gZ;
- race[raceid][round] = strval(inputtext);
- SetPVarInt(playerid,"TakeCP",1);
- GetPlayerPos(playerid,gX,gY,gZ);
- car2 = CreateVehicle(race[raceid][vehicle],gX,gY,gZ,0,1,1,60);
- PutPlayerInVehicle(playerid,car2,0);
- cpid = 1;
- SendClientMessage(playerid,-1,"Rakd le az ellenőrzőpontokat a Bal egérgomb segítségével!");
- SendClientMessage(playerid,-1,"Ha végeztél nyomd meg a \"+\" gombot!");
- }
- }
- case DIALOG_SAVE:
- {
- RaceEditor = false;
- if(!response)return SendClientMessage(playerid,-1,"A versenyt nem sikerült lementeni!");
- if(response)
- {
- new string[128],str[128],str2[1700];
- format(string,sizeof(string),"%s\r\n",race[raceid][name]);
- format(str,sizeof(str),"Races/%s.race",race[raceid][name]);
- new File:rlist = fopen("Races.list", io_append);
- new File:rfile = fopen(str, io_write);
- if(!fexist("Races.list")) fcreate("Races.list");
- format(str2,sizeof(str2),"%d|%d|%d|%d|%d|%f\r\n",race[raceid][type],race[raceid][round],race[raceid][vehicle],race[raceid][allcp],race[raceid][time],race[raceid][angle]);
- fcreate(str);
- for(new i;i<=race[raceid][allcp];i++)
- {
- if(i == 0) continue;
- format(str2,sizeof(str2),"%s%f|%f|%f|\r\n",str2,checkpoint[raceid][i][X],checkpoint[raceid][i][Y],checkpoint[raceid][i][Z]);
- }
- fwrite(rfile,str2);
- fwrite(rlist,string);
- fclose(rfile);
- fclose(rlist);
- SendClientMessage(playerid,-1,"A Verseny el lett mentve!");
- }
- }
- }
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(GetPVarInt(playerid,"TakeCP") == 1)
- {
- new Float:rX,Float:rY,Float:rZ;
- GetPlayerPos(playerid,rX,rY,rZ);
- if(IsKeyJustDown(KEY_FIRE,newkeys,oldkeys))
- {
- if(cpid == 1)
- {
- new Float:Angle;
- SendClientMessage(playerid,-1,"{20d62f}Start Lerakva");
- checkpoint[raceid][cpid][X] = rX;
- checkpoint[raceid][cpid][Y] = rY;
- checkpoint[raceid][cpid][Z] = rZ;
- SetPlayerCheckpoint(playerid,rX,rY,rZ,7.5);
- GetPlayerFacingAngle(playerid,Angle);
- Angle = race[raceid][angle];
- cpid++;
- }
- else
- {
- if(cpid == MAX_CHECKPOINTS-2)
- {
- SendClientMessage(playerid,-1,"Elérted a max ellenőrzőpont limitet!");
- SendClientMessage(playerid,-1,"{20d62f}Cél lerakva!");
- checkpoint[raceid][cpid][X] = rX;
- checkpoint[raceid][cpid][Y] = rY;
- checkpoint[raceid][cpid][Z] = rZ;
- DestroyVehicle(car2);
- race[raceid][allcp] = cpid;
- new string[128];
- SetPVarInt(playerid,"TakeCP",0);
- format(string,sizeof(string),"Név: %s\nTípus: %s\nKör: %d\nJármű: %s\nEllenőrzőpontok: %d db\nVersenyidő: %d perc\n\nElszeretnéd menteni a versenyt?",race[raceid][name],race[raceid][typee],race[raceid][round],VehicleNames[car[raceid]-400],cpid,race[raceid][time]);
- ShowPlayerDialog(playerid,DIALOG_SAVE,DIALOG_STYLE_MSGBOX,"Mentés",string,"Igen","Nem");
- cpid = 1;
- DisablePlayerCheckpoint(playerid);
- }
- else
- {
- new str[50];
- format(str,sizeof(str),"{20d62f}%d. ellenőrzőpont lerakva!",cpid);
- SendClientMessage(playerid,-1,str);
- checkpoint[raceid][cpid][X] = rX;
- checkpoint[raceid][cpid][Y] = rY;
- checkpoint[raceid][cpid][Z] = rZ;
- SetPlayerCheckpoint(playerid,rX,rY,rZ,7.5);
- }
- cpid++;
- }
- }
- if(IsKeyJustDown(KEY_SUBMISSION,newkeys,oldkeys))
- {
- if(cpid < 3)
- {
- SendClientMessage(playerid,-1,"{ff0009}Kevés ellenőrzőpont!");
- }
- else
- {
- SendClientMessage(playerid,-1,"{20d62f}Cél lerakva!");
- checkpoint[raceid][cpid][X] = rX;
- checkpoint[raceid][cpid][Y] = rY;
- checkpoint[raceid][cpid][Z] = rZ;
- DestroyVehicle(car2);
- race[raceid][allcp] = cpid;
- new string[128];
- SetPVarInt(playerid,"TakeCP",0);
- format(string,sizeof(string),"Név: %s\nTípus: %s\nKör: %d\nJármű: %s\nCheckPointok: %d db\nVersenyidő: %d perc\n\nElszeretnéd menteni a versenyt?",race[raceid][name],race[raceid][typee],race[raceid][round],VehicleNames[car[raceid]-400],cpid,race[raceid][time]);
- ShowPlayerDialog(playerid,DIALOG_SAVE,DIALOG_STYLE_MSGBOX,"Mentés",string,"Igen","Nem");
- cpid = 1;
- DisablePlayerCheckpoint(playerid);
- }
- }
- }
- }
- GetVehicleModelIDFromName(vname[])
- {
- for(new i = 0; i < 211; i++)
- {
- if ( strfind(VehicleNames[i], vname, true) != -1 )
- return i + 400;
- }
- return -1;
- }
- stock IsNumeric(string[])
- {
- for (new i = 0, j = strlen(string);
- i < j; i++)
- {
- if (string[i] > '9' || string[i] < '0')
- return 0;
- }
- return 1;
- }
- IsKeyJustDown(key, newkeys, oldkeys)
- {
- if((newkeys & key) && !(oldkeys & key)) return 1;
- return 0;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- rcpid[playerid]++;
- if(rcpid[playerid] == rallcp-1)
- {
- if(rtype == 0)
- {
- return SetPlayerRaceCheckpoint(playerid,1,rcpx[rcpid[playerid]],rcpy[rcpid[playerid]],rcpz[rcpid[playerid]],rcpx[rcpid[playerid]+1],rcpy[rcpid[playerid]+1],rcpz[rcpid[playerid]+1],8.0);
- }
- else if(rtype == 3)
- {
- return SetPlayerRaceCheckpoint(playerid,4,rcpx[rcpid[playerid]],rcpy[rcpid[playerid]],rcpz[rcpid[playerid]],rcpx[rcpid[playerid]+1],rcpy[rcpid[playerid]+1],rcpz[rcpid[playerid]+1],8.0);
- }
- }
- if(rcpid[playerid] == rallcp)
- {
- new wname[MAX_PLAYER_NAME],string[128];
- GetPlayerName(playerid,wname,sizeof(wname));
- if(rround > 1)
- {
- if(rround != getround[playerid])
- {
- format(string,sizeof(string),"{20d62f}%s {ffffff}ért be {ff0000}legelsőnek {ffffff}a célba! Jutalma {1253fa}500$.",wname);
- rcpid[playerid] = 0;
- getround[playerid]++;
- SetPlayerRaceCheckpoint(playerid,0,rcpx[rcpid[playerid]],rcpy[rcpid[playerid]],rcpz[rcpid[playerid]],rcpx[rcpid[playerid]+1],rcpy[rcpid[playerid]+1],rcpz[rcpid[playerid]+1],8.0);
- return 0;
- }
- }
- if(win == 0)
- {
- format(string,sizeof(string),"{20d62f}%s {ffffff}ért be {ff0000}legelsőnek {ffffff}a célba! Jutalma {1253fa}500$.",wname);
- GivePlayerMoney(playerid,500);
- SendClientMessageToAll(-1,string);
- DestroyVehicle(care[playerid]);
- SetPVarInt(playerid,"JoinedPlayer",0);
- DisablePlayerRaceCheckpoint(playerid);
- jracers--;
- win++;
- }
- else if(win == 1)
- {
- format(string,sizeof(string),"{20d62f}%s {ffffff}ért be {ff0000}másodiknak {ffffff}a célba! Jutalma {1253fa}100$.",wname);
- SendClientMessageToAll(-1,string);
- DestroyVehicle(care[playerid]);
- GivePlayerMoney(playerid,100);
- DestroyVehicle(care[playerid]);
- SetPVarInt(playerid,"JoinedPlayer",0);
- DisablePlayerRaceCheckpoint(playerid);
- jracers--;
- win++;
- }
- else
- {
- format(string,sizeof(string),"{20d62f}%s {ffffff}beért a célba! Helyezése: {ff0000}%d.",wname,win+1);
- SendClientMessageToAll(-1,string);
- DestroyVehicle(care[playerid]);
- SetPVarInt(playerid,"JoinedPlayer",0);
- DisablePlayerRaceCheckpoint(playerid);
- jracers--;
- win++;
- }
- getround[playerid] = 0;
- }
- else
- {
- SetPlayerRaceCheckpoint(playerid,rtype,rcpx[rcpid[playerid]],rcpy[rcpid[playerid]],rcpz[rcpid[playerid]],rcpx[rcpid[playerid]+1],rcpy[rcpid[playerid]+1],rcpz[rcpid[playerid]+1],8.0);
- }
- if(ccc == 0)
- {
- if(jracers == 0)
- {
- SendClientMessageToAll(-1,"A Verseny véget ért!");
- RaceStarted = 0;
- DisableJoin = 0;
- KillTimer(RaceTimer);
- for(new i;i<MAX_PLAYERS;i++) rcpid[i] = 0;
- for(new i;i<MAX_PLAYERS;i++) SetPVarInt(i,"PlayerJoined",0);
- jracers = 0;
- rallcp = 0;
- ccc++;
- }
- }
- return 1;
- }
- forward StartedRace();
- public StartedRace()
- {
- if(jracers < 0)
- {
- SendClientMessageToAll(-1,"Sajnos nem lett elég jelentkező, így a verseny elmarad!");
- RaceStarted = 0;
- for(new i;i<MAX_PLAYERS;i++) SetPVarInt(i,"PlayerJoined",0);
- jracers = 0;
- return 0;
- }
- DisableJoin = 1;
- RaceTimer = SetTimer("RaceeTimer",rtime*60000,0);
- for(new i;i<=MAX_RACE_PLAYERS;i++)
- {
- if(GetPVarInt(i,"PlayerJoined") == 1)
- {
- SendClientMessage(i,-1,"A Verseny kezdődik!");
- rcpid[i] = 0;
- win = 0;
- getround[i] = 0;
- SetPlayerRaceCheckpoint(i,0,rcpx[rcpid[i]],rcpy[rcpid[i]],rcpz[rcpid[i]],rcpx[rcpid[i]+1],rcpy[rcpid[i]+1],rcpz[rcpid[i]+1],8.0);
- if(GetPVarInt(i,"PlayerSor") == 0)
- {
- SetPlayerPos(i,rcpx[0],rcpy[0],rcpz[0]);
- rcpx[0] += (4 * floatsin(-rangle, degrees));
- rcpy[0] += (4 * floatcos(-rangle, degrees));
- care[i] = CreateVehicle(rveh,rcpx[0],rcpy[0],rcpz[0],rangle,0,0,0);
- }
- if(GetPVarInt(i,"PlayerSor") == 1)
- {
- SetPlayerPos(i,rcpx[0],rcpy[0],rcpz[0]);
- rcpx[0] += (4 * floatsin(-rangle, degrees));
- rcpy[0] += (-8 * floatcos(-rangle, degrees));
- care[i] = CreateVehicle(rveh,rcpx[0],rcpy[0],rcpz[0],rangle,0,0,0);
- }
- if(GetPVarInt(i,"PlayerSor") == 2)
- {
- SetPlayerPos(i,rcpx[0],rcpy[0],rcpz[0]);
- rcpx[0] += (10 * floatsin(-rangle, degrees));
- rcpy[0] += (4 * floatcos(-rangle, degrees));
- care[i] = CreateVehicle(rveh,rcpx[0],rcpy[0],rcpz[0],rangle,0,0,0);
- }
- if(GetPVarInt(i,"PlayerSor") == 3)
- {
- SetPlayerPos(i,rcpx[0],rcpy[0],rcpz[0]);
- rcpx[0] += (10 * floatsin(-rangle, degrees));
- rcpy[0] += (-8 * floatcos(-rangle, degrees));
- care[i] = CreateVehicle(rveh,rcpx[0],rcpy[0],rcpz[0],rangle,0,0,0);
- }
- if(GetPVarInt(i,"PlayerSor") == 4)
- {
- SetPlayerPos(i,rcpx[0],rcpy[0],rcpz[0]);
- rcpx[0] += (16 * floatsin(-rangle, degrees));
- rcpy[0] += (4 * floatcos(-rangle, degrees));
- care[i] = CreateVehicle(rveh,rcpx[0],rcpy[0],rcpz[0],rangle,0,0,0);
- }
- if(GetPVarInt(i,"PlayerSor") == 5)
- {
- SetPlayerPos(i,rcpx[0],rcpy[0],rcpz[0]);
- rcpx[0] += (16 * floatsin(-rangle, degrees));
- rcpy[0] += (-8 * floatcos(-rangle, degrees));
- care[i] = CreateVehicle(rveh,rcpx[0],rcpy[0],rcpz[0],rangle,0,0,0);
- }
- if(GetPVarInt(i,"PlayerSor") == 6)
- {
- SetPlayerPos(i,rcpx[0],rcpy[0],rcpz[0]);
- rcpx[0] += (22 * floatsin(-rangle, degrees));
- rcpy[0] += (4 * floatcos(-rangle, degrees));
- care[i] = CreateVehicle(rveh,rcpx[0],rcpy[0],rcpz[0],rangle,0,0,0);
- }
- if(GetPVarInt(i,"PlayerSor") == 7)
- {
- SetPlayerPos(i,rcpx[0],rcpy[0],rcpz[0]);
- rcpx[0] += (22 * floatsin(-rangle, degrees));
- rcpy[0] += (-8 * floatcos(-rangle, degrees));
- care[i] = CreateVehicle(rveh,rcpx[0],rcpy[0],rcpz[0],rangle,0,0,0);
- }
- if(GetPVarInt(i,"PlayerSor") == 8)
- {
- SetPlayerPos(i,rcpx[0],rcpy[0],rcpz[0]);
- rcpx[0] += (28 * floatsin(-rangle, degrees));
- rcpy[0] += (4 * floatcos(-rangle, degrees));
- care[i] = CreateVehicle(rveh,rcpx[0],rcpy[0],rcpz[0],rangle,0,0,0);
- }
- if(GetPVarInt(i,"PlayerSor") == 9)
- {
- SetPlayerPos(i,rcpx[0],rcpy[0],rcpz[0]);
- rcpx[0] += (28 * floatsin(-rangle, degrees));
- rcpy[0] += (-8 * floatcos(-rangle, degrees));
- care[i] = CreateVehicle(rveh,rcpx[0],rcpy[0],rcpz[0],rangle,0,0,0);
- }
- PutPlayerInVehicle(i,care[i],0);
- TogglePlayerControllable(i,0);
- SetTimerEx("Delay",5000,0,"i",i);
- }
- }
- return 1;
- }
- forward RaceeTimer();
- public RaceeTimer()
- {
- SendClientMessageToAll(-1,"A Verseny véget ért!");
- RaceStarted = 0;
- DisableJoin = 0;
- KillTimer(RaceTimer);
- for(new i;i<MAX_PLAYERS;i++)
- {
- rcpid[i] = 0;
- DestroyVehicle(care[i]);
- SetPVarInt(i,"PlayerJoined",0);
- }
- jracers = 0;
- rallcp = 0;
- ccc++;
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- if(GetPVarInt(playerid,"JoinedPlayer") == 1)
- {
- goback[playerid] = SetTimerEx("GoBack",10000,0,"i",playerid);
- }
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid)
- {
- if(GetPVarInt(playerid,"JoinedPlayer") == 1)
- {
- KillTimer(goback[playerid]);
- }
- return 1;
- }
- forward GoBack(playerid);
- public GoBack(playerid)
- {
- KillTimer(goback[playerid]);
- SetPVarInt(playerid,"PlayerJoined",0);
- SendClientMessage(playerid,-1,"Kiestél a versenyből!");
- DestroyVehicle(care[playerid]);
- jracers--;
- if(jracers < 2)
- {
- RaceStarted = 0;
- jracers = 0;
- KillTimer(RaceTimer);
- for(new i;i<MAX_VEHICLES;i++) DestroyVehicle(care[i]);
- SendClientMessageToAll(-1,"Sajnos nem lett elég jelentkező, így a verseny elmarad!");
- }
- return 1;
- }
- forward Delay(playerid);
- public Delay(playerid)
- {
- cvalue[playerid] = 5;
- ctimer[playerid] = SetTimerEx("cou_down",1000,1,"i",playerid);
- return 1;
- }
- forward cou_down(playerid);
- public cou_down(playerid)
- {
- new str[128];
- if(cvalue[playerid] == 0)
- {
- TogglePlayerControllable(playerid,1);
- KillTimer(ctimer[playerid]);
- return GameTextForPlayer(playerid,"~g~GO!",4000,3);
- }
- else
- {
- format(str,sizeof(str),"~r~%d",cvalue);
- GameTextForPlayer(playerid,str,4000,3);
- }
- cvalue[playerid]--;
- return 1;
- }
- forward fcreate(filename[]);
- public fcreate(filename[])
- {
- if (fexist(filename)){return false;}
- new File:fhandle = fopen(filename,io_write);
- fclose(fhandle);
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement