#include #include #include #define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xE52525AA //#define COLOR_RED 0xAA3333AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_WHITE 0xFFFFFFAA #define PocketMoney 50000 // Amount player recieves on spawn. #define INACTIVE_PLAYER_ID 255 #define GIVECASH_DELAY 5000 // Time in ms between /givecash commands. #define NUMVALUES 4 forward MoneyGrubScoreUpdate(); forward Givecashdelaytimer(playerid); //forward GrubModeReset(); forward SetPlayerRandomSpawn(playerid); forward SetupPlayerForClassSelection(playerid); forward GameModeExitFunc(); #define MAX_RACES_ID 10 #define MAX_CHECKPOINTS 256 new RACEADMIN_PASS[256] = "test"; new racename[MAX_RACES_ID][256]; new freeraceidcheck[MAX_RACES_ID]; new driver1id[MAX_RACES_ID] = -1; new driver2id[MAX_RACES_ID] = -1; new drivercheck[MAX_RACES_ID] =1; new playerraceid[MAX_PLAYERS] = -1; new PlayerRaceStatus[MAX_PLAYERS] = -1; new Float: RCPx[MAX_CHECKPOINTS][MAX_RACES_ID]; new Float: RCPy[MAX_CHECKPOINTS][MAX_RACES_ID]; new Float: RCPz[MAX_CHECKPOINTS][MAX_RACES_ID]; new Float: RCPx2[MAX_CHECKPOINTS][MAX_RACES_ID]; new Float: RCPy2[MAX_CHECKPOINTS][MAX_RACES_ID]; new Float: RCPz2[MAX_CHECKPOINTS][MAX_RACES_ID]; new prizemoney[MAX_RACES_ID]; new maxCP[MAX_RACES_ID]; //new Float: RSangle[MAX_RACES_ID]; //new Float: RSangle2[MAX_RACES_ID]; new raceidtimer = -1; new startcheck[MAX_RACES_ID] = 0; new nameofrace[256]; new racecreation; new raceadminid = -1; //------------------------------------------------------------------------------------------------------ new CashScoreOld; new iSpawnSet[MAX_PLAYERS]; new Float:gRandomPlayerSpawns[10][3] = { {2494.8337,-1687.3263,13.5147}, {2095.3533,-1145.2101,26.5929}, {1685.2394,-2102.5601,13.5543}, {2730.9685,-1831.5707,11.4745}, {-2158.0928,655.7538,52.3707}, {-2627.2009,1407.8497,7.0938}, {-1586.2576,40.5064,17.3358}, {2297.0176,2451.3623,10.8203}, {2193.4041,1676.9398,12.3672}, {213.2122,1876.4629,13.1400} }; new Float:gCopPlayerSpawns[10][3] = { {2494.8337,-1687.3263,13.5147}, {2095.3533,-1145.2101,26.5929}, {1685.2394,-2102.5601,13.5543}, {2730.9685,-1831.5707,11.4745}, {-2158.0928,655.7538,52.3707}, {-2627.2009,1407.8497,7.0938}, {-1586.2576,40.5064,17.3358}, {2297.0176,2451.3623,10.8203}, {2193.4041,1676.9398,12.3672}, {213.2122,1876.4629,13.1400} }; //Round code stolen from mike's Manhunt :P //new gRoundTime = 3600000; // Round time - 1 hour //new gRoundTime = 1200000; // Round time - 20 mins //new gRoundTime = 900000; // Round time - 15 mins //new gRoundTime = 600000; // Round time - 10 mins //new gRoundTime = 300000; // Round time - 5 mins //new gRoundTime = 120000; // Round time - 2 mins //new gRoundTime = 60000; // Round time - 1 min new gActivePlayers[MAX_PLAYERS]; new gLastGaveCash[MAX_PLAYERS]; new playerColors[100] = { 0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,0xEE82EEFF,0xFFD720FF, 0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF, 0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF, 0x275222FF,0xF09F5BFF,0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF, 0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,0x4B8987FF, 0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF, 0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF, 0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF, 0x9F945CFF,0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF, 0x3FE65CFF }; new playerTransparentColors[100] = { 0xFF8C1300,0xC715FF00,0x20B2AA00,0xDC143C00,0x6495ED00,0xf0e68c00,0x77889900,0xFF149300,0xF4A46000,0xEE82EE00,0xFFD72000, 0x8b451300,0x4949A000,0x148b8b00,0x14ff7f00,0x556b2f00,0x0FD9FA00,0x10DC2900,0x53408100,0x0495CD00,0xEF6CE800,0xBD34DA00, 0x247C1B00,0x0C8E5D00,0x635B0300,0xCB7ED300,0x65ADEB00,0x5C1ACC00,0xF2F85300,0x11F89100,0x7B39AA00,0x53EB1000,0x54137D00, 0x27522200,0xF09F5B00,0x3D0A4F00,0x22F76700,0xD6303400,0x9A698000,0xDFB93500,0x3793FA00,0x90239D00,0xE9AB2F00,0xAF2FF300, 0x057F9400,0xB9851900,0x388EEA00,0x02815100,0xA5504300,0x0DE01800,0x93AB1C00,0x95BAF000,0x36997600,0x18F71F00,0x4B898700, 0x491B9E00,0x829DC700,0xBCE63500,0xCEA6DF00,0x20D4AD00,0x2D74FD00,0x3C1C0D00,0x12D6D400,0x48C00000,0x2A51E200,0xE3AC1200, 0xFC42A800,0x2FC82700,0x1A30BF00,0xB740C200,0x42ACF500,0x2FD9DE00,0xFAFB7100,0x05D1CD00,0xC471BD00,0x94436E00,0xC1F7EC00, 0xCE79EE00,0xBD1EF200,0x93B7E400,0x3214AA00,0x184D3B00,0xAE4B9900,0x7E49D700,0x4C436E00,0xFA24CC00,0xCE76BE00,0xA04E0A00, 0x9F945C00,0xDCDE3D00,0x10C9C500,0x70524D00,0x0BE47200,0x8A2CD700,0x6152C200,0xCF72A900,0xE5933800,0xEEDC2D00,0xD8C76200, 0x3FE65C00 }; //------------------------------------------------------------------------------------------------------ main() { print("\n----------------------------------"); print(" Racing Mode 0.2b\n"); print(" and Money Grub "); print("----------------------------------\n"); } //------------------------------------------------------------------------------------------------------ public MoneyGrubScoreUpdate() { new CashScore; new name[MAX_PLAYER_NAME]; //new string[256]; for(new i=0; i CashScoreOld) { CashScoreOld = CashScore; //format(string, sizeof(string), "$$$ %s is now in the lead $$$", name); //SendClientMessageToAll(COLOR_YELLOW, string); } } } } //------------------------------------------------------------------------------------------------------ /*public GrubModeReset() { for(new i=0; i 966) { SendPlayerFormattedText(playerid," Сначала выйди отсюда...",0); SendPlayerFormattedText(playerid,"Get outta here first...",0); } else if(IsPlayerInAnyVehicle(playerid)) { new car; car = GetPlayerVehicleID(playerid); SetVehiclePos(car,2460.8638,-1687.4751,13.5334); SetVehicleZAngle(car,270.0000); SetPlayerFacingAngle(playerid,270.0000); SendPlayerFormattedText(playerid," Добро пожаловать в Лос Сантос!",0); SendPlayerFormattedText(playerid,"Welcome to Los Santos!",0); } else { SetPlayerPos(playerid,2460.8638,-1687.4751,13.5334); SetPlayerFacingAngle(playerid,270.0000); SetCameraBehindPlayer(playerid); SendPlayerFormattedText(playerid," Добро пожаловать в Лос сантос!",0); SendPlayerFormattedText(playerid,"Welcome to Los Santos!",0); }return 1; } if(strcmp(cmd, "/sanf", true) == 0) { new Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z); if(z > 966) { SendPlayerFormattedText(playerid," Сначала выйди отсюда...",0); SendPlayerFormattedText(playerid,"Get outta here first...",0); } else if(IsPlayerInAnyVehicle(playerid)) { new car; car = GetPlayerVehicleID(playerid); SetVehiclePos(car,-2016.7544,153.5285,27.6990); SetVehicleZAngle(car,270.0000); SetPlayerFacingAngle(playerid,270.0000); SendPlayerFormattedText(playerid," Добро пожаловать в Cан Фиерро!",0); SendPlayerFormattedText(playerid,"Welcome to San Fierro!",0); } else { SetPlayerPos(playerid,-2016.7544,153.5285,27.6990); SetPlayerFacingAngle(playerid,270.0000); SetCameraBehindPlayer(playerid); SendPlayerFormattedText(playerid," Добро пожаловать в Сан Фиерро!",0); SendPlayerFormattedText(playerid,"Welcome to San Fierro!",0); }return 1; } if(strcmp(cmd, "/lv", true) == 0) { new Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z); if(z > 966) { SendPlayerFormattedText(playerid," Сначала выйди отсюда...",0); SendPlayerFormattedText(playerid,"Get outta here first...",0); } else if(IsPlayerInAnyVehicle(playerid)) { new car; car = GetPlayerVehicleID(playerid); SetVehiclePos(car,2028.0686,1011.4006,10.8203); SetVehicleZAngle(car,270.0000); SetPlayerFacingAngle(playerid,270.0000); SendPlayerFormattedText(playerid," Добро пожаловать в Лас Вентурас!",0); SendPlayerFormattedText(playerid,"Welcome to Las Venturas!",0); } else { SetPlayerPos(playerid,2028.0686,1011.4006,10.8203); SetPlayerFacingAngle(playerid,270.0000); SetCameraBehindPlayer(playerid); SendPlayerFormattedText(playerid," Добро пожаловать в Лас Вентурас!",0); SendPlayerFormattedText(playerid,"Welcome to Las Venturas!",0); }return 1; } if(strcmp(cmd, "/invisible", true) == 0) { SetPlayerColor(playerid, playerTransparentColors[playerid]); SendClientMessage(playerid, COLOR_WHITE, " Tы невидимка!"); return 1; } else if(strcmp(cmd, "/visible", true) == 0) { SetPlayerColor(playerid, playerColors[playerid]); SendClientMessage(playerid, COLOR_GREEN, " Теперь ты видемый!"); return 1; } if (strcmp(cmdtext, "/health", true)==0 && IsPlayerAdmin(playerid)==1) { if(GetPlayerMoney(playerid) > 1){ GivePlayerMoney(playerid, GetPlayerMoney(playerid) + 1); SetPlayerHealth(playerid,100); } else{ SendClientMessage(playerid,COLOR_RED," Не достаточно денег."); } return 1; } if (strcmp(cmdtext, "/sound", true) == 0) { new Float:X; new Float:Y; new Float:Z; GetPlayerPos(playerid, X, Y, Z); PlayerPlaySound(playerid,1147, X, Y, Z); return 1; } if(strcmp(cmdtext,"/clearchat",true)==0 && IsPlayerAdmin(playerid)==1) // Chat window is gone, fomg! { SendClientMessage(playerid,COLOR_GREY," "); SendClientMessage(playerid,COLOR_GREY," "); SendClientMessage(playerid,COLOR_GREY," "); SendClientMessage(playerid,COLOR_GREY," "); SendClientMessage(playerid,COLOR_GREY," "); SendClientMessage(playerid,COLOR_GREY," "); SendClientMessage(playerid,COLOR_GREY," "); SendClientMessage(playerid,COLOR_GREY," "); SendClientMessage(playerid,COLOR_GREY," "); SendClientMessage(playerid,COLOR_GREY," "); return 1; } if (strcmp(cmdtext, "/lock", true)==0) { if(IsPlayerInAnyVehicle(playerid)) { new State=GetPlayerState(playerid); if(State!=PLAYER_STATE_DRIVER) { SendClientMessage(playerid,0xFFFF00AA," Ты не водитель."); return 1; } new i; for(i=0;i= 0){ PlayerJoinRace(playerid,racenametoid(name)); } } }else{ SendClientMessage(playerid, COLOR_RED, " Неправельное имя гонки!"); } return 1; } if(strcmp(cmd, "/test", true) == 0) { return 1; } if(strcmp(cmd, "/raceadmin", true) == 0) { new pass[256]; pass = strtok(cmdtext, idx); if(checktext(pass,RACEADMIN_PASS)){ if(raceadminid == -1){ raceadminid = playerid; }else{SendClientMessage(playerid, COLOR_RED, "Another race admin is now here, you cant use race admin functions now!");} }else{SendClientMessage(playerid, COLOR_RED, "Ты не админ!");} return 1; } if(raceadminid == playerid){ if(strcmp(cmd, "/createrace", true) == 0) { if(racecreation == 0){ new name[256]; nameofrace = name; name = strtok(cmdtext, idx); if(!fexist(name)){ new File: file = fopen(name,io_readwrite); nameofrace = name; racecreation = 1; SendClientMessage(playerid, COLOR_WHITE, " Введите /setprize [money] для указания выйгрыша "); fclose(file); }else{SendClientMessage(playerid, COLOR_RED, " Такая гонка уже существует попробуй ввести другое название!!");} }else{ SendClientMessage(playerid, COLOR_RED, " Создание гонки уже началось!"); } return 1; } if(strcmp(cmd, "/setprize", true) == 0) { if(racecreation == 1){ new money[256]; money = strtok(cmdtext, idx); new File: file = fopen(nameofrace,io_append); //new test[256]; format(money,sizeof(money),"%s \n",money); racecreation = 2; fwrite(file,money); fclose(file); SendClientMessage(playerid, COLOR_WHITE, " Укажите стартовую позицию 1 водителя!( /savecp )"); }else{ SendClientMessage(playerid, COLOR_RED, " Вы не указали выйгрыш!"); } return 1; } if(strcmp(cmd, "/savecp", true) == 0) { if(racecreation == 2){ new position[256]; new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); format(position,sizeof(position),"%f %f %f ",x,y,z); new File: file = fopen(nameofrace,io_append); fwrite(file,position); fclose(file); SendClientMessage(playerid, COLOR_GREEN, " Стартовая позиция 1 игрока сохранена!!!"); SendClientMessage(playerid, COLOR_GREEN, position); racecreation = 3; }else if(racecreation == 3){ new position[256]; new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); format(position,sizeof(position),"%f %f %f\n",x,y,z); new File: file = fopen(nameofrace,io_append); fwrite(file,position); fclose(file); SendClientMessage(playerid, COLOR_GREEN, " Стартовая позиция 2 игрока сохранена!!!"); SendClientMessage(playerid, COLOR_WHITE, " Введите /finish чтобы закончить создание гонки."); SendClientMessage(playerid, COLOR_GREEN, position); racecreation = 4; }else if(racecreation == 4){ new position[256]; new Float:x, Float:y, Float:z; GetPlayerPos(playerid,x,y,z); format(position,sizeof(position),"%f %f %f\n",x,y,z); new File: file = fopen(nameofrace,io_append); fwrite(file,position); fclose(file); SendClientMessage(playerid, COLOR_GREEN, " Чекпойнт сохранён!!!"); SendClientMessage(playerid, COLOR_GREEN, position); } return 1; } if(strcmp(cmd, "/finish", true) == 0) { nameofrace[0] = 0; nameofrace[1] = 0; nameofrace[2] = 0; nameofrace[3] = 0; racecreation = 0; SendClientMessage(playerid, COLOR_GREEN, " Создание гонки завершено!!!"); return 1; } } if(strcmp(cmd, "/help", true) == 0) { SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0); SendPlayerFormattedText(playerid,"Raicing all over San andreas.",0); SendPlayerFormattedText(playerid," Введите /commands чтобы подробнее узнать о командах.", 0); SendPlayerFormattedText(playerid," Введите /commandsadmins если вы админ :).", 0); SendPlayerFormattedText(playerid," Введите /XCOMMANDS чтобы узнать о системе админестрации.",0); SendPlayerFormattedText(playerid," Введите /raceinfo чтобы подробнее узнать о гонках",0); SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0); return 1; } if(strcmp(cmd, "/raceinfo", true) == 0) { SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0); SendPlayerFormattedText(playerid," Введите /startrace (название гонки) чтобы начать гонку .",0); SendPlayerFormattedText(playerid," Всего есть 18 гонок",0); SendPlayerFormattedText(playerid," lscs, lscanals, lssf, lvur, lvairport, megasprint,.",0); SendPlayerFormattedText(playerid," sels, sfairport, sfbridge, sfbridge2, sflsl, sflvl, sfur.",0); SendPlayerFormattedText(playerid," cont, clip, fr, rl, race.",0); SendPlayerFormattedText(playerid," Также админ может создовать новые гонки.",0); SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0); return 1; } if(strcmp(cmd, "/Commandsadmins", true) == 0) { SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0); SendPlayerFormattedText(playerid," Введите /clearchat для очистки чата .",0); SendPlayerFormattedText(playerid," Введите /health для востановления здоровья",0); SendPlayerFormattedText(playerid," Введите /raceadmin прежде чем создовать свою гонку.",0); SendPlayerFormattedText(playerid," Введите /createrace чтобы создать свою гонку.",0); SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0); return 1; } if(strcmp(cmd, "/Commands", true) == 0) { SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0); SendPlayerFormattedText(playerid," Введите /lock или /unlock чтобы открыть или закрыть двери.",0); SendPlayerFormattedText(playerid," Введите /away чтобы предупредить всех о том что вы отошли",0); SendPlayerFormattedText(playerid," Введите /back чтобы все знали что вы вернулись.",0); SendPlayerFormattedText(playerid," Введите /sound чтобы бибикнуть",0); SendPlayerFormattedText(playerid," Введите /givecash чтобы послать деньги",0); SendPlayerFormattedText(playerid," Введите /invisible или /visible чтобу стать невидемым/видемым",0); SendPlayerFormattedText(playerid," Введите /teleports чтобы узнать о командах телепорта", 0); SendPlayerFormattedText(playerid," Введите /me для указания того что вы делайте ",0); SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0); return 1; } if(strcmp(cmd, "/teleports", true) == 0) { SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0); SendPlayerFormattedText(playerid," Введите /ls чтобы попасть в Лос Сантос",0); SendPlayerFormattedText(playerid," Введите /sanf чтобы попасть в Сан Фиерро",0); SendPlayerFormattedText(playerid," Введите /lv чтобы попасть в Лас Вентурас",0); SendPlayerFormattedText(playerid," Введите /bigfall чтобы упасть с 500 футовой высоты над вашим текущим местоположением", 0); SendPlayerFormattedText(playerid," ---------------------------------------------------------.",0); return 1; } if(strcmp(cmd, "/givecash", true) == 0) { new tmp[256]; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, " Пример: /givecash [playerid] [amount]"); return 1; } giveplayerid = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, " Пример: /givecash [playerid] [amount]"); return 1; } moneys = strval(tmp); //printf("givecash_command: %d %d",giveplayerid,moneys); if (IsPlayerConnected(giveplayerid)) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); playermoney = GetPlayerMoney(playerid); if (moneys > 0 && playermoney >= moneys) { GivePlayerMoney(playerid, (0 - moneys)); GivePlayerMoney(giveplayerid, moneys); format(string, sizeof(string), " Вы отправили %s(игроку: %d), $%d.", giveplayer,giveplayerid, moneys); SendClientMessage(playerid, COLOR_YELLOW, string); format(string, sizeof(string), " Вы получили $%d от %s(player: %d).", moneys, sendername, playerid); SendClientMessage(giveplayerid, COLOR_YELLOW, string); printf("%s(playerid:%d) отправил %d к %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid); } else { SendClientMessage(playerid, COLOR_YELLOW, "Неправильное число."); } } else { format(string, sizeof(string), "%d не играет.", giveplayerid); SendClientMessage(playerid, COLOR_YELLOW, string); } return 1; } // PROCESS OTHER COMMANDS return 0; } //------------------------------------------------------------------------------------------------------ public OnPlayerSpawn(playerid) { GivePlayerMoney(playerid, PocketMoney); SetPlayerInterior(playerid,0); SetPlayerRandomSpawn(playerid); SetPlayerColor(playerid, playerColors[playerid]); return 1; } public SetPlayerRandomSpawn(playerid) { if (iSpawnSet[playerid] == 1) { new rand = random(sizeof(gCopPlayerSpawns)); SetPlayerPos(playerid, gCopPlayerSpawns[rand][0], gCopPlayerSpawns[rand][1], gCopPlayerSpawns[rand][2]); // Warp the player SetPlayerFacingAngle(playerid, 270.0); } else if (iSpawnSet[playerid] == 0) { new rand = random(sizeof(gRandomPlayerSpawns)); SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); // Warp the player } return 1; } //------------------------------------------------------------------------------------------------------ public OnPlayerDeath(playerid, killerid, reason) { new playercash; if(killerid == INVALID_PLAYER_ID) { SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); ResetPlayerMoney(playerid); } else { SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); playercash = GetPlayerMoney(playerid); if (playercash > 0) { GivePlayerMoney(killerid, playercash); ResetPlayerMoney(playerid); } else { } } return 1; } /* public OnPlayerDeath(playerid, killerid, reason) { haxed by teh mike new name[MAX_PLAYER_NAME]; new string[256]; new deathreason[20]; new playercash; GetPlayerName(playerid, name, sizeof(name)); GetWeaponName(reason, deathreason, 20); if (killerid == INVALID_PLAYER_ID) { switch (reason) { case WEAPON_DROWN: { format(string, sizeof(string), "*** %s drowned.)", name); } default: { if (strlen(deathreason) > 0) { format(string, sizeof(string), "*** %s died. (%s)", name, deathreason); } else { format(string, sizeof(string), "*** %s died.", name); } } } } else { new killer[MAX_PLAYER_NAME]; GetPlayerName(killerid, killer, sizeof(killer)); if (strlen(deathreason) > 0) { format(string, sizeof(string), "*** %s killed %s. (%s)", killer, name, deathreason); } else { format(string, sizeof(string), "*** %s killed %s.", killer, name); } } SendClientMessageToAll(COLOR_RED, string); { playercash = GetPlayerMoney(playerid); if (playercash > 0) { GivePlayerMoney(killerid, playercash); ResetPlayerMoney(playerid); } else { } } return 1; }*/ //------------------------------------------------------------------------------------------------------ public OnPlayerRequestClass(playerid, classid) { if(classid == 0 || classid == 1 || classid == 2 || classid == 3 || classid == 4 || classid == 5 || classid == 6) { iSpawnSet[playerid] = 1; } else { iSpawnSet[playerid] = 0; } SetupPlayerForClassSelection(playerid); return 1; } public SetupPlayerForClassSelection(playerid) { SetPlayerInterior(playerid,14); SetPlayerPos(playerid,258.4893,-41.4008,1002.0234); SetPlayerFacingAngle(playerid, 270.0); SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234); SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234); } public GameModeExitFunc() { GameModeExit(); } public OnGameModeInit() { SetGameModeText("Racing script 0.2b"); ShowPlayerMarkers(1); ShowNameTags(1); // Player Class's AddPlayerClassEx(0,105,2494.8337,-1687.3263,13.5147,0.0,24,500,31,500,29,180); // Grove AddPlayerClassEx(1,102,2095.3533,-1145.2101,26.5929,90.0,24,500,31,500,29,180); // Ballas AddPlayerClassEx(2,114,1685.2394,-2102.5601,13.5543,180.0,24,500,31,500,29,180); // Varrios AddPlayerClassEx(3,108,2730.9685,-1831.5707,11.4745,170.0,24,500,31,500,29,180); // Vagos AddPlayerClassEx(4,117,-2158.0928,655.7538,52.3707,270.0,24,500,31,500,29,180); // Triad AddPlayerClassEx(5,173,-2627.2009,1407.8497,7.0938,230.0,24,500,31,500,29,180); // Rifa AddPlayerClassEx(6,121,-1586.2576,40.5064,17.3358,315.0,24,500,31,500,29,180); // Da Nang Boy AddPlayerClassEx(7,280,2297.0176,2451.3623,10.8203,100.0,24,500,31,500,29,180); // Police AddPlayerClassEx(8,163,2193.4041,1676.9398,12.3672,90.0,24,500,31,500,29,180); // Leones AddPlayerClassEx(9,287,213.2122,1876.4629,13.1406,0.0,24,500,31,500,29,180); // Millitary // Car Spawns // Vehicle Spawn //groove AddStaticVehicle(402,2085.5286,-1194.5800,23.6004,92.4156,5,5); // AddStaticVehicle(411,2511.0706,-1672.3441,13.2267,345.0,16,16); // 1 AddStaticVehicle(411,2473.3000,-1697.2832,13.2442,359.3442,16,16); // AddStaticVehicle(412,2443.6106,-1645.0681,13.1968,179.0919,16,16); // AddStaticVehicle(412 ,2404.0142,-1642.5394,13.2739,180.2181,16,16); // AddStaticVehicle(415,2426.5190,-1638.3356,13.1819,221.4290,16,16); // AddStaticVehicle(415,2298.3774,-1634.5178,14.3418,208.8871,16,16); // AddStaticVehicle(429,2271.6147,-1643.1346,15.0188,178.4411,16,16); // AddStaticVehicle(429,2236.7881,-1637.3652,15.2593,159.2014,16,16); // AddStaticVehicle(434,2329.0554,-1677.3839,14.1475,270.0533,16,16); // AddStaticVehicle(451,2377.1003,-1927.9526,13.7334,359.7440,16,16); // 10 AddStaticVehicle(451,2172.5720,-1670.4357,15.4233,309.3615,16,16); // AddStaticVehicle(471,2062.3091,-1903.2581,13.8960,179.5883,16,16); // AddStaticVehicle(474,2096.3545,-1800.1742,13.7376,89.3299,16,16); // AddStaticVehicle(477,2067.6787,-1694.2869,13.9012,270.2635,16,16); // AddStaticVehicle(481,1936.4944,-1571.7502,13.9427,182.1543,16,16); // AddStaticVehicle(508,2015.5929,-1707.5674,13.1719,88.5278,16,16); // AddStaticVehicle(522,2530.7070,-2008.3711,13.1720,118.3724,16,16); // AddStaticVehicle(541,2434.6963,-2100.4607,13.1714,28.8492,16,16); // AddStaticVehicle(567,2610.8259,-2238.2141,13.1653,57.4003,16,16); // AddStaticVehicle(602,2721.3938,-2405.7874,13.0860,87.4526,16,16); // 20 // Ballas AddStaticVehicle(402,1954.2985,-1157.3312,20.7493,90.9907,5,5); // 1 AddStaticVehicle(411,1996.5847,-1275.1052,23.5567,179.3485,5,5); // AddStaticVehicle(415,2085.5286,-1194.5800,23.6004,92.4156,5,5); // AddStaticVehicle(415,2083.8167,-1170.0155,24.1319,89.3909,5,5); // AddStaticVehicle(429,2051.3804,-1121.5339,24.2937,179.4293,5,5); // AddStaticVehicle(451,2089.4873,-1261.0068,23.7729,90.3048,5,5); // AddStaticVehicle(451,2102.5933,-1274.5662,25.2724,179.5892,5,5); // AddStaticVehicle(461,2096.1055,-1316.5856,24.4537,359.2013,5,5); // AddStaticVehicle(467,2137.4973,-1282.4109,24.7203,178.2747,5,5); // AddStaticVehicle(471,2196.7434,-1284.2579,24.0714,180.9758,5,5); // 10 AddStaticVehicle(477,2225.9309,-1328.8036,23.7662,152.6810,5,5); // AddStaticVehicle(480,1998.2502,-1317.3085,22.0014,179.2567,5,5); // AddStaticVehicle(481,1877.8019,-1362.2816,14.4224,179.6212,5,5); // AddStaticVehicle(481,2391.5991,-1487.5693,23.5483,270.6651,5,5); // AddStaticVehicle(481,2315.9009,-1530.2844,25.0639,301.2186,5,5); // AddStaticVehicle(508,2322.6960,-1450.9675,20.7251,358.7891,5,5); // AddStaticVehicle(522,2189.9624,-1465.7899,25.2609,268.9864,5,5); // AddStaticVehicle(602,2130.8291,-1491.5183,23.5330,359.6362,5,5); // AddStaticVehicle(602,2350.1077,-1595.9366,22.9965,0.9656,5,5); // AddStaticVehicle(603,1903.6066,-1625.6567,13.1416,270.5156,5,5); // 20 // Varrios AddStaticVehicle(402,1834.7645,-1871.5505,13.0475,1.0172,7,7); // 1 AddStaticVehicle(411,1798.0601,-1933.3829,13.0546,359.7202,7,7); // AddStaticVehicle(411,1732.6206,-1750.9635,13.6074,267.5924,7,7); // AddStaticVehicle(412 ,1792.4584,-1864.0472,13.6666,0.8031,7,7); // AddStaticVehicle(412 ,1911.4008,-1766.0862,13.4751,0.2203,7,7); // AddStaticVehicle(429,1981.0421,-1995.0359,13.6463,0.3472,7,7); // AddStaticVehicle(434,1931.2611,-2067.3394,13.6392,90.2177,7,7); // AddStaticVehicle(434,1906.7015,-2018.9614,13.6392,358.9063,7,7); // AddStaticVehicle(451,1762.1198,-2061.4263,13.6944,254.9939,7,7); // AddStaticVehicle(451,1794.2716,-2120.7271,13.6463,359.0607,7,7); // 10 AddStaticVehicle(461,1772.9528,-2098.3706,13.6392,179.7007,7,7); // AddStaticVehicle(467,1724.7622,-2099.6172,13.6391,180.0192,7,7); // AddStaticVehicle(471,1664.7994,-2114.5186,13.6392,296.0936,7,7); // AddStaticVehicle(474,1560.4167,-2251.0444,13.6399,90.8489,7,7); // AddStaticVehicle(535,1539.6766,-2361.4814,13.6470,1.0724,7,7); // AddStaticVehicle(549,1134.1930,-2037.1962,69.1001,0.6951,7,7); // AddStaticVehicle(567,1556.6239,-1790.2694,13.6393,359.7568,7,7); // AddStaticVehicle(602,1698.6650,-2094.2361,13.3177,179.4747,7,7); // AddStaticVehicle(603,1705.3331,-2128.8706,13.3178,0.0861,7,7); // AddStaticVehicle(603,1938.6859,-2086.4724,13.3335,270.1394,7,7); // 20 // Vagos AddStaticVehicle(402,2657.6633,-1797.0994,8.9251,271.8175,6,6); // 1 AddStaticVehicle(411,2663.4729,-1834.2184,8.9390,291.0778,6,6); // AddStaticVehicle(412 ,2706.8704,-1843.4850,9.1205,158.9486,6,6); // AddStaticVehicle(429,2742.7363,-1875.9182,9.2649,0.9980,6,6); // AddStaticVehicle(434,2776.1387,-1839.1733,9.3994,201.1358,6,6); // AddStaticVehicle(461,2810.1821,-1822.3431,9.5494,88.2246,6,6); // AddStaticVehicle(467,2831.4692,-1694.8787,9.6282,72.9313,6,6); // AddStaticVehicle(467,2813.0349,-1671.3529,9.5649,179.1280,6,6); // AddStaticVehicle(471,2821.5540,-1548.5160,10.8163,90.3384,6,6); // AddStaticVehicle(474,2804.3892,-1441.3856,16.1357,193.6773,6,6); // 10 AddStaticVehicle(477,2805.7202,-1439.5631,39.9404,178.7636,6,6); // AddStaticVehicle(508,2757.9182,-1944.3907,13.4466,273.2907,6,6); // AddStaticVehicle(541,2784.8477,-2021.0326,13.4535,1.1056,6,6); // AddStaticVehicle(541,2750.9260,-2080.4844,12.4514,32.4752,6,6); // AddStaticVehicle(549,2754.2859,-1378.8489,36.7298,88.1615,6,6); // AddStaticVehicle(567,2705.0115,-1275.7405,57.7801,314.7381,6,6); // AddStaticVehicle(602,2752.9253,-1176.8792,69.2986,90.4589,6,6); // AddStaticVehicle(602,2325.5049,-1243.6862,22.3965,269.6014,6,6); // AddStaticVehicle(603,2147.5706,-1180.7007,23.7146,269.5149,6,6); // AddStaticVehicle(603,2161.3853,-1144.2428,24.6890,90.1475,6,6); // 20} // Triad AddStaticVehicle(402,-2160.0520,650.0266,51.9848,358.2317,0,0); // 1 AddStaticVehicle(411,-2125.1897,658.6256,52.1969,93.7947,0,0); // AddStaticVehicle(429,-2153.9395,716.6980,69.2896,181.0278,0,0); // AddStaticVehicle(461,-2153.8486,584.8267,37.3381,359.0038,0,0); // AddStaticVehicle(471,-2183.1584,606.8737,34.8929,74.3181,0,0); // AddStaticVehicle(475,-2212.4238,617.7517,34.8911,178.3585,0,0); // AddStaticVehicle(508,-2206.5601,679.3579,49.1646,180.4676,0,0); // AddStaticVehicle(522,-2207.2734,628.1985,49.1653,356.9910,0,0); // AddStaticVehicle(522,-2095.6738,713.7725,69.2896,178.4648,0,0); // AddStaticVehicle(589,-1980.7981,429.1391,24.7095,2.1240,0,0); // 10 AddStaticVehicle(589,-2307.1941,729.4024,49.1707,90.1823,0,0); // AddStaticVehicle(541,-2131.5771,181.9307,34.9184,271.3169,0,0); // AddStaticVehicle(558,-2035.8506,174.5800,28.5630,357.8284,0,0); // AddStaticVehicle(558,-1949.2273,258.8652,40.7774,63.3550,0,0); // AddStaticVehicle(559,-1944.9830,271.7980,40.7773,132.4681,0,0); // AddStaticVehicle(559,-1950.9312,259.8246,35.1973,54.3575,0,0); // AddStaticVehicle(560,-1966.3383,137.8016,27.4163,90.8835,0,0); // AddStaticVehicle(562,-2264.9558,192.5807,34.8911,89.8525,0,0); // AddStaticVehicle(562,-2410.9897,329.2556,34.6958,147.6938,0,0); // AddStaticVehicle(565,-2057.7781,228.8418,35.3034,183.4980,0,0); // 20 // Rifa AddStaticVehicle(402,-2645.7764,1332.9199,6.8967,270.0864,10,10); // 1 AddStaticVehicle(411,-2645.1843,1379.2682,6.9466,269.6435,10,10); // AddStaticVehicle(429,-2617.3955,1345.4285,6.9771,0.7234,10,10); // AddStaticVehicle(434,-2518.1426,1396.4653,6.9693,268.2816,10,10); // AddStaticVehicle(461,-2473.8054,1314.4774,15.0398,267.7490,10,10); // AddStaticVehicle(461,-2522.1428,1229.4055,37.2101,215.0523,10,10); // AddStaticVehicle(471,-2512.7444,1205.4371,37.2037,269.7688,10,10); // AddStaticVehicle(471,-2568.2361,1146.5933,55.5084,159.7118,10,10); // AddStaticVehicle(475,-2668.4382,1467.5214,6.9693,270.3562,10,10); // AddStaticVehicle(506,-2899.9768,1161.7345,13.2521,271.9518,10,10); // 10 AddStaticVehicle(602,-2894.6367,1070.1356,31.4620,269.7186,10,10); // AddStaticVehicle(402,-2818.9644,1075.5442,27.5257,1.7581,10,10); // AddStaticVehicle(402,-2805.2976,1170.3589,18.9165,263.0057,10,10); // AddStaticVehicle(411,-2153.6038,1227.4850,33.7500,270.1483,10,10); // AddStaticVehicle(411,-1979.8710,1225.9148,31.4663,95.0639,10,10); // AddStaticVehicle(415,-1856.4308,1426.0594,6.9981,172.7177,10,10); // AddStaticVehicle(415,-1703.9082,1370.6780,6.9968,45.0552,10,10); // AddStaticVehicle(439,-1661.2917,1214.0145,7.0675,282.0697,10,10); // AddStaticVehicle(439,-1661.8395,1210.0150,21.1563,313.3948,10,10); // AddStaticVehicle(439,-1706.6305,1221.6804,29.8920,357.0593,10,10); // 20 // Da Nang Boy AddStaticVehicle(402,-1593.6578,49.8185,17.0948,313.4933,3,3); // 1 AddStaticVehicle(411,-1577.4628,33.7017,17.0947,7.0116,3,3); // AddStaticVehicle(429,-1482.4243,141.9665,18.7734,89.8411,3,3); // AddStaticVehicle(434,-1515.2684,108.0434,17.0948,56.5748,3,3); // AddStaticVehicle(461,-1544.9886,124.6858,3.3922,133.1510,3,3); // AddStaticVehicle(471,-1624.3514,146.0115,-7.3935,135.0009,3,3); // AddStaticVehicle(522,-1705.3956,2.7556,3.3892,325.6536,3,3); // AddStaticVehicle(522,-1718.8303,14.4570,3.4317,284.7556,3,3); // AddStaticVehicle(589,-1671.8347,-7.8881,3.3903,45.7057,3,3); // AddStaticVehicle(589,-1693.5857,-36.1624,3.3928,42.6544,3,3); // 10 AddStaticVehicle(560,-1688.9467,-105.4865,3.3934,40.7605,3,3); // AddStaticVehicle(402,-1721.3584,-122.7660,3.3869,45.1083,3,3); // AddStaticVehicle(411,-1678.9474,422.2829,7.0178,134.4716,3,3); // AddStaticVehicle(415,-1528.9432,486.5542,7.0178,1.4889,3,3); // AddStaticVehicle(589,-1839.8505,-12.8696,14.9558,269.2632,3,3); // AddStaticVehicle(589,-1764.1281,-170.6011,3.3929,325.5325,3,3); // AddStaticVehicle(565,-1811.7833,-139.7660,6.0912,1.8642,3,3); // AddStaticVehicle(565,-1883.6063,-201.3599,15.8763,268.8539,3,3); // AddStaticVehicle(475,-1975.2935,174.3101,27.5253,89.2328,3,3); // AddStaticVehicle(475,-1918.4534,295.7694,40.8842,177.4945,3,3); // 20 // Police AddStaticVehicle(402,2282.4290,2442.5703,10.4082,358.8146,0,1); // 1 AddStaticVehicle(411,2256.2878,2477.8113,10.4081,178.1515,0,1); // AddStaticVehicle(415,2201.4097,2471.6169,10.4081,175.0816,0,1); // AddStaticVehicle(415,2385.4373,2469.3020,10.4094,178.5469,0,1); // AddStaticVehicle(429,2360.9275,2398.4810,10.4074,359.6178,0,1); // AddStaticVehicle(439,2414.0205,2392.3489,10.4057,270.2823,0,1); // AddStaticVehicle(439,2127.0518,2371.6733,10.4080,139.1733,0,1); // AddStaticVehicle(471,2192.0410,2502.4272,10.3987,181.3236,0,1); // AddStaticVehicle(475,2298.8450,2460.0020,2.8499,271.5228,0,1); // AddStaticVehicle(522,2268.1130,2473.3088,2.8606,355.0423,0,1); // 10 AddStaticVehicle(560,2229.2988,2462.2476,-7.8635,231.4320,0,1); // AddStaticVehicle(560,2277.2761,2473.2703,-7.8767,357.2464,0,1); // AddStaticVehicle(402,2314.0347,2355.4065,10.4337,131.0480,0,1); // AddStaticVehicle(402,2444.4609,2289.9016,10.5885,89.5112,0,1); // AddStaticVehicle(411,2437.6101,2376.2678,10.5893,177.7538,0,1); // AddStaticVehicle(415,2509.7583,2512.6001,10.5907,90.8923,0,1); // AddStaticVehicle(522,2460.3118,2529.4822,21.6433,357.6746,0,1); // AddStaticVehicle(522,2525.1323,2368.4497,3.9789,269.7834,0,1); // AddStaticVehicle(471,2057.4485,2479.6035,10.7113,178.4415,0,1); // AddStaticVehicle(471,2104.6890,2404.6619,15.0107,272.0666,0,1); // 20 // Leones AddStaticVehicle(402,2187.5835,1676.1075,11.0024,178.8692,11,11); // 1 AddStaticVehicle(411,2310.2605,1686.6750,10.4764,184.1916,11,11); // AddStaticVehicle(415,2289.5957,1563.7983,10.4767,220.9178,11,11); // AddStaticVehicle(429,2171.1326,1568.4297,10.4766,91.4295,11,11); // AddStaticVehicle(439,2074.5515,1679.6116,10.3282,2.6004,11,11); // AddStaticVehicle(471,2117.8235,1790.2472,10.3282,334.5344,11,11); // AddStaticVehicle(542,2207.8320,1787.4207,10.4766,2.1320,11,11); // AddStaticVehicle(542,2167.6982,1800.0840,10.4767,179.2204,11,11); // AddStaticVehicle(402,2148.7410,1812.5338,10.4767,243.1523,11,11); // 10 AddStaticVehicle(402,1872.1656,1989.4192,7.2509,181.1361,11,11); // AddStaticVehicle(402,2103.5046,2066.3633,10.4767,91.0233,11,11); // AddStaticVehicle(402,1945.6732,2067.5676,10.4766,359.7643,11,11); // AddStaticVehicle(411,2104.0540,2079.1438,10.4767,90.9541,11,11); // AddStaticVehicle(411,2000.6991,1540.4050,13.2656,2.2410,11,11); // AddStaticVehicle(411,2208.1553,1287.0316,10.5000,38.4213,11,11); // AddStaticVehicle(415,2331.9812,1412.1627,10.4999,91.5221,11,11); // AddStaticVehicle(562,2299.0894,1517.5955,16.8984,181.0582,11,11); // 20 AddStaticVehicle(562,2039.5123,1008.9386,10.3516,179.3720,11,11); // AddStaticVehicle(477,2162.3015,1019.4582,10.5000,90.0848,11,11); // AddStaticVehicle(508,2131.4783,1142.2301,13.1878,61.0067,11,11); // 25 // Military AddStaticVehicle(402,204.0224,1862.7463,13.2329,0.9529,123,123); // 1 AddStaticVehicle(411,221.9049,1854.7625,13.0017,83.6844,123,123); // AddStaticVehicle(429,216.5410,1912.5264,17.7330,95.5712,123,123); // AddStaticVehicle(429,126.6014,1876.4489,17.9283,356.7805,123,123); // AddStaticVehicle(439,164.4103,1831.9124,17.7404,225.7463,123,123); // AddStaticVehicle(439,270.0884,1883.8903,17.5680,72.2450,123,123); // AddStaticVehicle(471,280.4372,1821.1965,17.7330,89.3907,123,123); // AddStaticVehicle(542,14.5672,1744.1843,17.6592,93.9979,123,123); // AddStaticVehicle(542,291.2132,1821.4076,17.7330,2.4985,123,123); // AddStaticVehicle(402,283.1913,1953.3414,17.7330,333.3184,123,123); // 10 AddStaticVehicle(402 ,279.4525,1988.9608,17.7329,324.2308,123,123); // AddStaticVehicle(411,281.4107,2023.1282,17.7329,315.1505,123,123); // AddStaticVehicle(411,183.8120,2079.2166,22.7346,220.4417,123,123); // AddStaticVehicle(415,282.6017,1794.1698,17.7329,280.7184,123,123); // AddStaticVehicle(562,104.6859,1934.9310,18.5766,161.0107,123,123); // AddStaticVehicle(562,-84.5359,1221.1758,19.5479,179.1635,123,123); // AddStaticVehicle(477,-44.5122,1166.5894,19.3618,359.5399,123,123); // AddStaticVehicle(461,-22.9767,2329.5803,23.9429,306.8320,123,123); // AddStaticVehicle(508,323.2498,2541.0837,16.6129,181.9801,123,123); // AddStaticVehicle(508,292.4670,2539.1501,16.6250,181.6758,123,123); // 20 SetTimer("MoneyGrubScoreUpdate", 1000, 1); //SetTimer("GameModeExitFunc", gRoundTime, 0); return 1; } public SendPlayerFormattedText(playerid, const str[], define) { new tmpbuf[256]; format(tmpbuf, sizeof(tmpbuf), str, define); SendClientMessage(playerid, 0xFFFF00AA, tmpbuf); } public SendAllFormattedText(playerid, const str[], define) { new tmpbuf[256]; format(tmpbuf, sizeof(tmpbuf), str, define); SendClientMessageToAll(0xFFFF00AA, tmpbuf); } strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; } //RACE TOOLS split(const strsrc[], strdest[][], delimiter) { new i, li; new aNum; new len; while(i <= strlen(strsrc)){ if(strsrc[i]==delimiter || i==strlen(strsrc)){ len = strmid(strdest[aNum], strsrc, li, i, 128); strdest[aNum][len] = 0; li = i+1; aNum++; } i++; } return 1; } public Freadstr (filename[] , stringnum ) { new File: fo = fopen(filename,io_read); new filebuf[256]; new loops; while (loops < stringnum){ fread(fo, filebuf); loops = loops +1; } return filebuf; } public checktext(text1[],text2[]){ new maxsize = 256; new i; new sost =1; new b = 0; while(i < maxsize , sost != 0, b == 0, i < 250){ if(text1[i] == 0, text2[i] == 0 ){b = 1; } if(text1[i] == text2[i]){ i++; }else{ sost = 0; i = 250; } } return sost; } public racenametoid(name[]){ new id; //new sost; while((!checktext(name,racename[id]))&&(id <= 9)){ id++; } return id; } public StartNewRace(name[256]){ new sost =1; new id; while((freeraceidcheck[id] != 0)&&(id<=9)){ id++; } if(id >= 9){ id = -1; sost = 0;} if((freeraceidcheck[id] == 0)&&(sost == 1)){ racename[id] = name; new text[256]; format(text, sizeof(text), "Race started '' %s ''",name); SendClientMessageToAll( COLOR_GREEN,text); freeraceidcheck[id] = 1; } new line = 1; while(line <= 256){ new linebuf[256]; linebuf = Freadstr(name,line); if(linebuf[0]== 0 ){ maxCP[id] = line - 2; line = 257;} else if(line == 1){ prizemoney[id] = strval(linebuf); } else{ new splitbuf[10][256]; split(linebuf, splitbuf, ' '); RCPx[line - 1][id] = floatstr(splitbuf[0]); RCPy[line - 1][id] = floatstr(splitbuf[1]); RCPz[line - 1][id] = floatstr(splitbuf[2]); if(line == 2){ RCPx2[line - 1][id] = floatstr(splitbuf[3]); RCPy2[line - 1][id] = floatstr(splitbuf[4]); RCPz2[line - 1][id] = floatstr(splitbuf[5]); } } line++; SendClientMessage(0, COLOR_GREEN, "line readed!"); } return id; } public PlayerJoinRace(playerid,raceid2){ switch(drivercheck[raceid2]){ case 1:{driver1id[raceid2] = playerid; SendClientMessage(playerid, COLOR_GREEN, "You join the race!"); drivercheck[raceid2] = 2; playerraceid[playerid] = raceid2; PlayerRaceStatus[playerid] = 0; UpdatePlayerRaceCP(playerid,playerraceid[playerid]); } case 2:{driver2id[raceid2] = playerid; drivercheck[raceid2] =-1; SendClientMessage(playerid, COLOR_GREEN, "You join the race!"); playerraceid[playerid] = raceid2; PlayerRaceStatus[playerid] = 0; UpdatePlayerRaceCP(playerid,playerraceid[playerid]); } case -1:{SendClientMessage(playerid, COLOR_RED, "This race has already started!You can`t join it!");} } } public OnPlayerEnterCheckpoint(playerid){ if(playerraceid[playerid] != -1){ if(IsPlayerInAnyVehicle(playerid)){ UpdatePlayerRaceCP(playerid,playerraceid[playerid]); printf("Player id %s enter race checkpoint!",playerid); }else{SendClientMessage(playerid, COLOR_RED, "You must be in a vehicle!");} } } new filebuf2[256]; public Freadstr2 (filename[] , stringnum ) { new File: fo = fopen(filename,io_read); //new somevariable[256]; new loops; while (loops < stringnum){ fread(fo, filebuf2); loops = loops +1; } } public UpdatePlayerRaceCP(playerid,raceid){ if(PlayerRaceStatus[playerid] == 0){ if(driver1id[raceid] == playerid){ SetPlayerCheckpoint(playerid,RCPx[1][raceid],RCPy[1][raceid],RCPz[1][raceid],5.0); PlayerRaceStatus[playerid] ++; } if(driver2id[raceid] == playerid){ SetPlayerCheckpoint(playerid,RCPx2[1][raceid],RCPy2[1][raceid],RCPz2[1][raceid],5.0); PlayerRaceStatus[playerid] ++; } } else if(PlayerRaceStatus[playerid]== 1){ SetPlayerCheckpoint(playerid,RCPx[PlayerRaceStatus[playerid] +1][raceid],RCPy[PlayerRaceStatus[playerid] +1 ][raceid],RCPz[PlayerRaceStatus[playerid] + 1][raceid],10.0); PlayerRaceStatus[playerid] ++; if(startcheck[raceid] == 0){SendClientMessage(playerid, COLOR_GREEN, "Waiting for opponent."); TogglePlayerControllable(playerid,0); startcheck[raceid] = 1; } else if(startcheck[raceid] == 1){ TogglePlayerControllable(playerid,0); SetTimer("StartRace",2500,0); raceidtimer = raceid; } } else if((PlayerRaceStatus[playerid] > 1)&&(PlayerRaceStatus[playerid] < maxCP[raceid])){ SetPlayerCheckpoint(playerid,RCPx[PlayerRaceStatus[playerid] +1][raceid],RCPy[PlayerRaceStatus[playerid] +1 ][raceid],RCPz[PlayerRaceStatus[playerid] + 1][raceid],10.0); PlayerRaceStatus[playerid] ++; } else if(PlayerRaceStatus[playerid] == maxCP[raceid]){ GivePlayerMoney(playerid,prizemoney[raceid]); DisablePlayerCheckpoint(driver1id[raceid]); DisablePlayerCheckpoint(driver2id[raceid]); if(playerid == driver1id[raceid]){ GameTextForPlayer(driver1id[raceid],"YOU WIN!",500,5); GameTextForPlayer(driver2id[raceid],"YOU LOSE!",500,5); } if(playerid == driver2id[raceid]){ GameTextForPlayer(driver2id[raceid],"YOU WIN!",500,5); GameTextForPlayer(driver1id[raceid],"YOU LOSE!",500,5); } PlayerRaceStatus[driver1id[raceid]] = -1; PlayerRaceStatus[driver2id[raceid]] = -1; playerraceid[driver1id[raceid]] = -1; playerraceid[driver2id[raceid]] = -1; racename[raceid][0] = 0; racename[raceid][1] = 0; racename[raceid][2] = 0; racename[raceid][3] = 0; racename[raceid][4] = 0; racename[raceid][5] = 0; racename[raceid][6] = 0; racename[raceid][7] = 0; racename[raceid][8] = 0; racename[raceid][9] = 0; racename[raceid][10] = 0; racename[raceid][11] = 0; racename[raceid][12] = 0; racename[raceid][13] = 0; freeraceidcheck[raceid] = 0; driver1id[raceid] = -1; driver2id[raceid] = -1; drivercheck[raceid] =1; prizemoney[raceid] = 0; maxCP[raceid] = 0; raceidtimer = -1; startcheck[raceid] = 0; } return 1; } public StartRace(){ if(startcheck[raceidtimer] == 1){ GameTextForPlayer(driver1id[raceidtimer],"3",500,5); GameTextForPlayer(driver2id[raceidtimer],"3",500,5); startcheck[raceidtimer] = 2; SetTimer("StartRace",2000,0); }else if(startcheck[raceidtimer] == 2){ GameTextForPlayer(driver1id[raceidtimer],"2",500,5); GameTextForPlayer(driver2id[raceidtimer],"2",500,5); startcheck[raceidtimer] = 3; SetTimer("StartRace",2000,0); }else if(startcheck[raceidtimer] == 3){ GameTextForPlayer(driver1id[raceidtimer],"1",500,5); GameTextForPlayer(driver2id[raceidtimer],"1",500,5); startcheck[raceidtimer] = 4; SetTimer("StartRace",2000,0); }else if(startcheck[raceidtimer] == 4){ GameTextForPlayer(driver1id[raceidtimer],"GO!",500,5); GameTextForPlayer(driver2id[raceidtimer],"GO!",500,5); TogglePlayerControllable(driver1id[raceidtimer],1); TogglePlayerControllable(driver2id[raceidtimer],1); raceidtimer = -1; } }