How to make the checkpoint appear for everyone?
#1

Hey,

How do i make the starting checkpoint appear for everyone? because it only appears for the first player who joins. say i went on and went to the start the checkpoint would be there but if i joined again and went to the start both players would be there but only the first player could see the starting checkpoint.

Code:

Код:
//-------------------------------------------
//      Script by Pghpunkid's
//    Auto Race Creator Program V1.3
//     Need Help? http://rsc.us.to
//-------------------------------------------
//      Terms and Agreements
//-------------------------------------------
//By using this script you agree to these terms
//and agreements:

//You may alter the produced script to enhance
//the playability, however, changed made to
//claim work as your own is strictly prohibited.
//Feel free to distribute your compiled script
//however,give credit the actual author, Pghpunkid.

//if you agree to these terms and agreements,
//remove the '//' before #include <a_samp>

#include <a_samp>
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_LAVENDER 0xFF00FFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTBLUEA 0xB5EAFCAA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_TEAL 0x3BAAC2AA
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
forward CheckpointUpdate();
forward GPRaceCountdown();
forward GPTimer();
forward SaveTimes();
forward LoadTimes();
forward UpdateList(playerid,TimeRec);
new Mototime[MAX_PLAYERS] =0;
new Motocountdown[MAX_PLAYERS] =-1;
new MotoGP[MAX_PLAYERS] = 0;
new MotoGate[MAX_PLAYERS]=0;
#define MAX_POINTS 1
#define MAX_RACE_POINTS 11
#define TT_START 0
enum kinfo{
  Driver[24],
  Time
}
#define CARS 212
new vehicleNames[CARS][] = {
"Landstalker",
"Bravura",
"Buffalo; ",
"Linerunner",
"Pereniel",
"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",
"Previon",
"Coach",
"Cabbie",
"Stallion",
"Rumpo",
"RC Bandit",
"Romero",
"Packer",
"Monster",
"Admiral",
"Squalo",
"Seasparrow",
"Pizzaboy",
"Tram",
"Trailer",
"Turismo",
"Speeder",
"Reefer",
"Tropic",
"Flatbed",
"Yankee",
"Caddy",
"Solair",
"Berkley's RC Van",
"Skimmer",
"PCJ600",
"Faggio",
"Freeway",
"RC Baron",
"RC Raider",
"Glendale",
"Oceanic",
"Sanchez",
"Sparrow",
"Patriot",
"Quad",
"Coastguard",
"Dinghy",
"Hermes",
"Sabre",
"Rustler",
"ZR3 50",
"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",
"Hotring Racer",
"Bloodring Banger",
"Rancher",
"Super GT",
"Elegant",
"Journey",
"Bike",
"Mountain Bike",
"Beagle",
"Cropdust",
"Stunt",
"Tanker",
"RoadTrain",
"Nebula",
"Majestic",
"Buccaneer",
"Shamal",
"Hydra",
"FCR900",
"NRG500",
"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",
"Hustler",
"Intruder",
"Primo",
"Cargobob",
"Tampa",
"Sunrise",
"Merit",
"Utility",
"Nevada",
"Yosemite",
"Windsor",
"Monster",
"Monster",
"Uranus",
"Jester",
"Sultan",
"Stratum",
"Elegy",
"Raindance",
"RC Tiger",
"Flash",
"Tahoma",
"Savanna",
"Bandito",
"Freight",
"Trailer",
"Kart",
"Mower",
"Duneride",
"Sweeper",
"Broadway",
"Tornado",
"AT400",
"DFT30",
"Huntley",
"Stafford",
"BF400",
"Newsvan",
"Tug",
"Trailer",
"Emperor",
"Wayfarer",
"Euros",
"Hotdog",
"Club",
"Trailer",
"Trailer",
"Andromada",
"Dodo",
"RC Cam",
"Launch",
"Police Car",
"Police Car",
"Police Car",
"Ranger",
"Picador",
"S.W.A.T.Van",
"Alpha",
"Phoenix",
"Glendale",
"Sadler",
"Luggage Trailer",
"Luggage Trailer",
"Stair Trailer",
"Boxville",
"Farm Plow",
"Utility Trailer"
};
new KartHS[5][kinfo];
new playerCheckpoint[MAX_PLAYERS];
new Float:checkpoints[MAX_POINTS][3] = {
{4192.583007, 456.919891, 58.587448}
};
new Float:racecheckpoints[MAX_RACE_POINTS][3] = {
{4191.351562, 108.300598, 58.582279},
{ 4206.308593, -186.144470, 58.580924},
{ 4170.175292, -492.184265, 58.527824},
{ 3911.944580, -714.132995, 58.517517},
{ 3595.278564, -799.867065, 58.404663},
{ 3609.519775, -622.319274, 58.279624},
{ 3982.698486, -402.702514, 58.116100},
{ 4039.540527, -128.838943, 57.899887},
{ 4015.868408, 318.762695, 60.112438},
{ 4052.764404, 663.182678, 58.553028},
{ 4189.874023, 610.855590, 58.582946}
};
new checkpointType[MAX_POINTS] = {
  TT_START
};
public OnFilterScriptInit()
{
  print("\n Mode:Nascar - Created using Pghpunkids Script Creator.\n");
  SetTimer("CheckpointUpdate",1000,1);
  SetTimer("GPRaceCountdown",1000,1);
  SetTimer("GPTimer",1000,1);
  for(new t=0; t<5; t++)
  {
    strmid(KartHS[t][Driver], "None", 0, strlen("None"), 24);
    KartHS[t][Time]=100000;
  }
  if(!fexist("NascarTimes.cfg"))
    SaveTimes();
  LoadTimes();
  return 1;
}
public SaveTimes()
{
  print("[race] Nascar Times Saved.");
  new File: hFile = fopen("NascarTimes.cfg", io_write);
  if (hFile)
  {
    for(new t= 0; t<5; t++)
    {
      new var[32];
      format(var, 32, "%s\n",KartHS[t][Driver]);fwrite(hFile, var);
      format(var, 32, "%d\n",KartHS[t][Time]);fwrite(hFile, var);
    }
  }
  fclose(hFile);
  return 1;
}
public LoadTimes()
{
  print("[race] Times Loaded.");
  new File: file = fopen("Times.cfg", io_read);
  if (file)
  {
    new valtmp[128];
    for(new t=0; t<5; t++)
    {
      fread(file, valtmp);strmid(KartHS[t][Driver], valtmp, 0, strlen(valtmp)-1, 128);DelPrint(valtmp);
      fread(file, valtmp);KartHS[t][Time] = strval(valtmp);DelPrint(valtmp);
    }
  }
  return 1;
}
public OnPlayerDisconnect(playerid,reason)
{
  MotoGP[playerid] =0;
  Mototime[playerid] =0;
  return 1;
}
public OnFilterScriptExit()
{
  return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
  if (strcmp("/Join", cmdtext, true, 10) == 0)
  {
    if(getCheckpointType(playerid)!=TT_START)
    {
      SendClientMessage(playerid,COLOR_GREEN,"You must be at the starting location.");
      return 1;
    }
    if(!IsVehicle(playerid))
    {
      new fstr[255];
      format(fstr,sizeof(fstr),"You must be in a %s to participate in this.",vehicleNames[494-400]);
      SendClientMessage(playerid,COLOR_GREEN,fstr);
      return 1;
    }
    SendClientMessage(playerid, COLOR_GREEN,"Starting..");
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid,0);
    Motocountdown[playerid] = 6;
    SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[0][0],racecheckpoints[0][1],racecheckpoints[0][2],racecheckpoints[1][0],racecheckpoints[1][1],racecheckpoints[1][2],10);
    return 1;
  }
  if (strcmp("/Times", cmdtext, true, 10) == 0)
  {
    new kstring[255];
    SendClientMessage(playerid,COLOR_GREEN,"Top 5 Times:");
    for(new z=0; z<5; z++)
    {
      new sec = KartHS[z][Time]%60;
      new mins = (KartHS[z][Time]/60)%60;
      if (strcmp("None",KartHS[z][Driver], true, 10) == 0)
      {
        if(z==0)
          SendClientMessage(playerid,COLOR_GREY,"-No Times Recorded Yet-");
        if(z>0)
          SendClientMessage(playerid,COLOR_GREY,"-End Of Time Sheet-");
        return 1;
      }
      if(strcmp("None",KartHS[z][Driver], true,10) != 0)
      {
        if(sec > 9) {format(kstring,sizeof(kstring),"%d. %s - %d:%d",z+1,KartHS[z][Driver],mins,sec);}
        if(sec < 9) {format(kstring,sizeof(kstring),"%d. %s - %d:0%d",z+1,KartHS[z][Driver],mins,sec);}
        SendClientMessage(playerid,COLOR_GREY,kstring);
      }
    }
    return 1;
  }
  return 0;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
  new sec = Mototime[playerid]%60;
  new mins = (Mototime[playerid]/60)%60;

  if(MotoGP[playerid] == 1)
  {
    MotoGate[playerid]++;
    new on‌e = MAX_RACE_POINTS-1;
    new two = MAX_RACE_POINTS;
    if(MotoGate[playerid] < one)
    {
      SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[MotoGate[playerid]][0],racecheckpoints[MotoGate[playerid]][1],racecheckpoints[MotoGate[playerid]][2],racecheckpoints[MotoGate[playerid]+1][0],racecheckpoints[MotoGate[playerid]+1][1],racecheckpoints[MotoGate[playerid]+1][2],10);
      
    }
    if(MotoGate[playerid] == one)
    {
      SetPlayerRaceCheckpoint(playerid,1,racecheckpoints[MotoGate[playerid]][0],racecheckpoints[MotoGate[playerid]][1],racecheckpoints[MotoGate[playerid]][2],racecheckpoints[0][0],racecheckpoints[0][1],racecheckpoints[0][2],10);
    }
    if(MotoGate[playerid] == two)
    {
      new TimeRec;
      new Timestr[255];
      new driver[24];
      GetPlayerName(playerid,driver,sizeof(driver));
      format(Timestr,sizeof(Timestr),"%s finished the Nascar in %d Mins, %d Seconds.",driver,mins,sec);
      SendClientMessageToAll(COLOR_YELLOW,Timestr);
      SendClientMessage(playerid,COLOR_WHITE,"You can view the Top 5 Times with /Nascar-Times.");
      printf(Timestr);
      TimeRec=Mototime[playerid];
      MotoGP[playerid] = 0;
      MotoGate[playerid] = 0;
      Mototime[playerid]=0;
      UpdateList(playerid,TimeRec);
    }
  }
  return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
  if(getCheckpointType(playerid)==TT_START)
  {
    if(IsVehicle(playerid) == 1)
    {
      SendClientMessage(playerid,COLOR_GREEN,"You can use /Join to start.");
      return 1;
    }
    if(IsVehicle(playerid) == 0)
    {
      SendClientMessage(playerid,COLOR_GREEN,"You must be in a Hotring Racer to participate!");
      return 1;
    }
  }
  return 1;
}

stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
  new Float:oldposx, Float:oldposy, Float:oldposz;
  new Float:tempposx, Float:tempposy, Float:tempposz;
  GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  tempposx = (oldposx -x);
  tempposy = (oldposy -y);
  tempposz = (oldposz -z);
  if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  {
    return 1;
  }
  return 0;
}
public UpdateList(playerid, TimeRec)
{
  new driver[24];
  GetPlayerName(playerid,driver,sizeof(driver));
  if(KartHS[0][Time] > TimeRec)
  {
    KartHS[4][Time] = KartHS[3][Time];
    strmid(KartHS[4][Driver],KartHS[3][Driver],0,sizeof(driver),24);
    KartHS[3][Time] = KartHS[2][Time];
    strmid(KartHS[3][Driver],KartHS[2][Driver],0,sizeof(driver),24);
    KartHS[2][Time] = KartHS[1][Time];
    strmid(KartHS[2][Driver],KartHS[1][Driver],0,sizeof(driver),24);
    KartHS[1][Time] = KartHS[0][Time];
    strmid(KartHS[1][Driver],KartHS[0][Driver],0,sizeof(driver),24);
    KartHS[0][Time] = TimeRec;
    strmid(KartHS[0][Driver],driver,0,sizeof(driver),24);
    GameTextForPlayer(playerid,"~w~ 1st",5000,3);
  }
  else if(KartHS[1][Time] > TimeRec)
  {
    KartHS[4][Time] = KartHS[3][Time];
    strmid(KartHS[4][Driver],KartHS[3][Driver],0,sizeof(driver),24);
    KartHS[3][Time] = KartHS[2][Time];
    strmid(KartHS[3][Driver],KartHS[2][Driver],0,sizeof(driver),24);
    KartHS[2][Time] = KartHS[1][Time];
    strmid(KartHS[2][Driver],KartHS[1][Driver],0,sizeof(driver),24);
    KartHS[1][Time] = TimeRec;
    strmid(KartHS[1][Driver],driver,0,sizeof(driver),24);
    GameTextForPlayer(playerid,"Your time was 2nd overall!",5000,3);
  }
  else if(KartHS[2][Time] > TimeRec)
  {
    KartHS[4][Time] = KartHS[3][Time];
    strmid(KartHS[4][Driver],KartHS[3][Driver],0,sizeof(driver),24);
    KartHS[3][Time] = KartHS[2][Time];
    strmid(KartHS[3][Driver],KartHS[2][Driver],0,sizeof(driver),24);
    KartHS[2][Time] = TimeRec;
    strmid(KartHS[2][Driver],driver,0,sizeof(driver),24);
    GameTextForPlayer(playerid,"Your time was 3rd overall!",5000,3);
  }
  else if(KartHS[3][Time] > TimeRec)
  {
    KartHS[4][Time] = KartHS[3][Time];
    strmid(KartHS[4][Driver],KartHS[3][Driver],0,sizeof(driver),24);
    KartHS[3][Time] = TimeRec;
    strmid(KartHS[3][Driver],driver,0,sizeof(driver),24);
    GameTextForPlayer(playerid,"Your time was 4th overall!",5000,3);
  }
  else if(KartHS[4][Time] > TimeRec)
  {
    KartHS[4][Time] = TimeRec;
    strmid(KartHS[4][Driver],driver,0,sizeof(driver),24);
    GameTextForPlayer(playerid,"Your time was 5th overall!",5000,3);
  }
  SaveTimes();
  LoadTimes();
  return 1;
}
public CheckpointUpdate()
{
  for(new i; i<MAX_PLAYERS; i++)
  {
    if(MotoGP[i] == 1)
    {
      for(new j=0; j < 1; j++) {
        if(PlayerToPoint(25,i,checkpoints[j][0],checkpoints[j][1],checkpoints[j][2])) {
          if(playerCheckpoint[i]!=j) {
            SetPlayerCheckpoint(i, checkpoints[j][0],checkpoints[j][1],checkpoints[j][2],5);
            playerCheckpoint[i] = j;
          }
        } else {
          if(playerCheckpoint[i]==j) {
            playerCheckpoint[i] = 999;
          }
        }
      }
    }
  }
}
stock IsVehicle(playerid)
{
  new model = GetPlayerVehicleID(playerid);
  model = GetVehicleModel(model);
  if(model == 494)
    return 1;
  else
    return 0;
}
stock getCheckpointType(playerID) {
  if(playerCheckpoint[playerID] != 999)
    return checkpointType[playerCheckpoint[playerID]];
  else return -1;
}

public GPRaceCountdown()
{
  for(new x=0; x<MAX_PLAYERS; x++)
  {
    if(Motocountdown[x] > 0)
    {
      new time[3];
      Motocountdown[x]--;
      format(time,sizeof(time),"%d",Motocountdown[x]);
      GameTextForPlayer(x,time,1200,3);
    }
    if(Motocountdown[x] == 0)
    {
      GameTextForPlayer(x,"GO!",1200,3);
      TogglePlayerControllable(x,1);
      Motocountdown[x]--;
      Mototime[x]=0;
      MotoGP[x]=1;
    }
  }
}
stock DelPrint(string1[])
{
  strmid(string1, string1, 0, strlen(string1)-1, 255);
  printf("%s", string1);
  return 1;
}
public OnPlayerConnect(playerid)
{
  MotoGP[playerid] = 0;
  Mototime[playerid] = 0;
  return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if (MotoGP[playerid] == 1 && (newstate == 1 && oldstate == 2))
    {
        new name[24];
        new fstr[255];
        GetPlayerName(playerid,name,sizeof(name));
        format(fstr,sizeof(fstr),"%s has failed the test",name);
        SendClientMessageToAll(COLOR_WHITE,fstr);
        MotoGP[playerid] = 0;
        MotoGate[playerid] = 0;
        Mototime[playerid]=0;
    }
    return 1;
}
Please help me

Thank You
Reply
#2

.
Reply
#3

Wow Sampiscool123 thnx for the help.....it really worked
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)