Random coord


Započeo Nure, Januar 08, 2019, 20:57:27 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Jel zna neko kako da napravim random 6 coordinata, i kad kuca /drift imam vec odradjeno sve samo mi jo sto treba..
Npr kad to kuca da mu se neka od tih 6 random coordinata pokaze i kad stigne na neku od tih coorda da mu se stavi jedna coordinata koju ja zelim zatim kad to pokupi opet neka od tih 6 coorda i tako 10 puta...?

Dio skripte: [ pawn ]vaš odgovor[ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): link slike

Ides ovako napravis prvo new za random cp-ove
new Float:ElegyRand[4][3] =
{
        {X,Y,Z},
        {X,Y,Z},
        {X,Y,Z},
        {X,Y,Z}
};
I sad kod cmd ili gdje vec zelis da mu se zapocne radnja stavis
new elegy = random(sizeof(ElegyRand));
SetPlayerCheckpoint(playerid, ElegyRand[elegy][0], ElegyRand[elegy][1],ElegyRand[elegy][2], 2.0):
(I ovdje dodas varijablu koju si definisao na vrhu skripte za taj drift ako nisi onda mozes dodati npr. new PoceoDrift[MAX_PLAYERS];
I sada kod cmd gdje pocinje drift dodas
PoceoDrift[playerid] = 1;
Onda kod OnPlayerEnterCheckPoint dodas
If(PoceoDrift = 1)
{
    Ovdje tvoj cp koji zelis ili opet random
}
If(ako je u pitanju tvoj cp dodas IsPlayerInRangeOfPoint(X Y Z)
ako nije onda kod ovog gore cpa dodas PoceoDrift[playerid] = 2;
I posle isti princip kao za ovo gore samo sto umjesto 1 stavis 2 i msm da je to to
I  ako bude imalo gresaka javi jer sam pisao preko telefona

Sve sam super odradio i kad pokupim taj random checkpoint setam moj checkpoint i stavim to
if(ElegyDrift[playerid] == 1 && CID >= velegy[0] && CID <= velegy[3])
{
     // I tu mu seta checkpoint onaj moj ne random
     ElegyDrift[playerid] = 2; 
}
I posle dole if player range of point i tu stavim ovaj cp sto sam iznad setao 
i ispod mu opet stavim random cp 
i ovde ElegyDrift[playerid]  = 2;

Tako sam otprilike uradio i kad stanem na ovaj moj default cp sto sam stavio ne random pokupi mi sva 3 cp-a od jednom i pise pokupili ste cp1 pokupili ste cp2 pokupili ste cp3
A meni treba 1 da pokupi pa random da mu se seta pa opet taj default cp pa opet random a meni pokupi sva 3 default checkpointa od jednom
[ Default cp zovem ovaj cp sto ja stavljam a  ne random ]

Hmmm.... Zanimljivo
Aj posalji to sve i gdje pocinje drift i onplayerenercheckpoint

Citat: AdzoXx poslato Januar 09, 2019, 19:41:16 POSLE PODNE
Hmmm.... Zanimljivo
Aj posalji to sve i gdje pocinje drift i onplayerenercheckpoint
@AdzoXx
CMD:drift(playerid, params[])
{
    #pragma unused params
    if(UlogovanProvera[playerid] == 0) return Server(playerid,"Moras se ulogovati da bi koristio ovu komandu!");
	if(ElegyDrift[playerid] != 0) return Server(playerid,"Vec driftas!");
	{
		Server(playerid,"Poceli ste drift!");
		new Elegyy = random(sizeof(ElegyDrift));
		SetPlayerCheckpoint(playerid, ElegyDrift[Elegyy][0], ElegyDrift[Elegyy][1], ElegyDrift[Elegyy][2], 3.0);
		ElegyDrift[playerid] = 1;
	}
    return 1;
}
//On player enter cp elegy drift
	if(ElegyDrift[playerid] == 1)
	{
            SetPlayerCheckpoint(playerid, 1086.8444,-1858.0018,13.5547, 5.0);
		    Server(playerid, "CP 1!");
		    ElegyDrift[playerid] = 2;
	}
    if(ElegyDrift[playerid] == 2)
	{
		if(IsPlayerInRangeOfPoint(playerid, 5.0, 1086.8444,-1858.0018,13.5547))
		{
		    Server(playerid, "Novi CP postavljen");
		    new Elegyy = random(sizeof(ElegyDrift));
		    SetPlayerCheckpoint(playerid, ElegyDrift[Elegyy][0], ElegyDrift[Elegyy][1], ElegyDrift[Elegyy][2], 3.0);
		    ElegyDrift[playerid] = 3;
		}
	}
	if(ElegyDrift[playerid] == 3)
	{
		    Server(playerid, "CP 2");
		    SetPlayerCheckpoint(playerid, 1086.8444,-1858.0018,13.5547, 5.0);
		    ElegyDrift[playerid] = 4;
	}
	if(ElegyDrift[playerid] == 4)
	{
		if(IsPlayerInRangeOfPoint(playerid, 5.0, 1086.8444,-1858.0018,13.5547))
		{
		    Server(playerid, "Novi CP postavljen");
		    new Elegyy = random(sizeof(ElegyDrift));
		    SetPlayerCheckpoint(playerid, ElegyDrift[Elegyy][0], ElegyDrift[Elegyy][1], ElegyDrift[Elegyy][2], 3.0);
		    ElegyDrift[playerid] = 5;
		}
	}
    if(ElegyDrift[playerid] == 5)
	{
		    Server(playerid, "CP 3");
			SetPlayerCheckpoint(playerid, 1086.8444,-1858.0018,13.5547, 5.0);
			ElegyDrift[playerid] = 6;
    }
	if(ElegyDrift[playerid] == 6)
	{
		if(IsPlayerInRangeOfPoint(playerid, 5.0, 1086.8444,-1858.0018,13.5547))
		{
		    Server(playerid, "Sada idite na zadnji cp");
		    new Elegyy = random(sizeof(ElegyDrift));
		    SetPlayerCheckpoint(playerid, ElegyDrift[Elegyy][0], ElegyDrift[Elegyy][1], ElegyDrift[Elegyy][2], 3.0);
		    ElegyDrift[playerid] = 0;
		}
	}

Citat: Nure poslato Januar 09, 2019, 21:49:38 POSLE PODNE
@AdzoXx
CMD:drift(playerid, params[])
{
    #pragma unused params
    if(UlogovanProvera[playerid] == 0) return Server(playerid,"Moras se ulogovati da bi koristio ovu komandu!");
	if(ElegyDrift[playerid] != 0) return Server(playerid,"Vec driftas!");
	{
		Server(playerid,"Poceli ste drift!");
		new Elegyy = random(sizeof(ElegyDrift));
		SetPlayerCheckpoint(playerid, ElegyDrift[Elegyy][0], ElegyDrift[Elegyy][1], ElegyDrift[Elegyy][2], 3.0);
		ElegyDrift[playerid] = 1;
	}
    return 1;
}
//On player enter cp elegy drift
	if(ElegyDrift[playerid] == 1)
	{
            SetPlayerCheckpoint(playerid, 1086.8444,-1858.0018,13.5547, 5.0);
		    Server(playerid, "CP 1!");
		    ElegyDrift[playerid] = 2;
	}
    if(ElegyDrift[playerid] == 2)
	{
		if(IsPlayerInRangeOfPoint(playerid, 5.0, 1086.8444,-1858.0018,13.5547))
		{
		    Server(playerid, "Novi CP postavljen");
		    new Elegyy = random(sizeof(ElegyDrift));
		    SetPlayerCheckpoint(playerid, ElegyDrift[Elegyy][0], ElegyDrift[Elegyy][1], ElegyDrift[Elegyy][2], 3.0);
		    ElegyDrift[playerid] = 3;
		}
	}
	if(ElegyDrift[playerid] == 3)
	{
		    Server(playerid, "CP 2");
		    SetPlayerCheckpoint(playerid, 1086.8444,-1858.0018,13.5547, 5.0);
		    ElegyDrift[playerid] = 4;
	}
	if(ElegyDrift[playerid] == 4)
	{
		if(IsPlayerInRangeOfPoint(playerid, 5.0, 1086.8444,-1858.0018,13.5547))
		{
		    Server(playerid, "Novi CP postavljen");
		    new Elegyy = random(sizeof(ElegyDrift));
		    SetPlayerCheckpoint(playerid, ElegyDrift[Elegyy][0], ElegyDrift[Elegyy][1], ElegyDrift[Elegyy][2], 3.0);
		    ElegyDrift[playerid] = 5;
		}
	}
    if(ElegyDrift[playerid] == 5)
	{
		    Server(playerid, "CP 3");
			SetPlayerCheckpoint(playerid, 1086.8444,-1858.0018,13.5547, 5.0);
			ElegyDrift[playerid] = 6;
    }
	if(ElegyDrift[playerid] == 6)
	{
		if(IsPlayerInRangeOfPoint(playerid, 5.0, 1086.8444,-1858.0018,13.5547))
		{
		    Server(playerid, "Sada idite na zadnji cp");
		    new Elegyy = random(sizeof(ElegyDrift));
		    SetPlayerCheckpoint(playerid, ElegyDrift[Elegyy][0], ElegyDrift[Elegyy][1], ElegyDrift[Elegyy][2], 3.0);
		    ElegyDrift[playerid] = 0;
		}
	}

Cek ili ja slabo vidim ili sta tebi pod svaki setplayercp iste koordinate?

new Float:StartX,Float:StartY,Float:StartZ;
new Float:FinishX,Float:FinishY,Float:FinishZ;
new BrojCPa[MAX_PLAYERS];




CMD:test123(playerid)
{
	StartX=1544.6580,StartY=-1020.7138,StartZ=23.4860;
 	FinishX=1230.1984,FinishY=-929.8712,FinishZ=42.1185;
 	BrojCPa[playerid] = 1;
	return 1;
}
 
 
 
public OnPlayerEnterCheckpoint(playerid)
{
	if(IsPlayerInRangeOfPoint(playerid,5.0,StartX,StartY,StartZ)&&BrojCPa[playerid]==1)
 	{
    	DisablePlayerCheckpoint(playerid);
		SetPlayerCheckpoint(playerid,FinishX,FinishY,FinishZ,20.0);
		BrojCPa[playerid] = 2;
		SendClientMessage(playerid,-1,"Prosao si prvi checkpoint,dodji do drugog i zavrsi event!");
  	}
   	else if(IsPlayerInRangeOfPoint(playerid,5.0,FinishX,FinishY,FinishZ)&&BrojCPa[playerid]==2)
    {
     	DisablePlayerCheckpoint(playerid);
		BrojCPa[playerid] = 0;
		SendClientMessage(playerid,-1,"Zavrsio si event!");
  	}
	return 1;
}
69

Citat: youngdeal poslato Januar 09, 2019, 22:19:21 POSLE PODNE
new Float:StartX,Float:StartY,Float:StartZ;
new Float:FinishX,Float:FinishY,Float:FinishZ;
new BrojCPa[MAX_PLAYERS];




CMD:test123(playerid)
{
	StartX=1544.6580,StartY=-1020.7138,StartZ=23.4860;
 	FinishX=1230.1984,FinishY=-929.8712,FinishZ=42.1185;
 	BrojCPa[playerid] = 1;
	return 1;
}
 
 
 
public OnPlayerEnterCheckpoint(playerid)
{
	if(IsPlayerInRangeOfPoint(playerid,5.0,StartX,StartY,StartZ)&&BrojCPa[playerid]==1)
 	{
    	DisablePlayerCheckpoint(playerid);
		SetPlayerCheckpoint(playerid,FinishX,FinishY,FinishZ,20.0);
		BrojCPa[playerid] = 2;
		SendClientMessage(playerid,-1,"Prosao si prvi checkpoint,dodji do drugog i zavrsi event!");
  	}
   	else if(IsPlayerInRangeOfPoint(playerid,5.0,FinishX,FinishY,FinishZ)&&BrojCPa[playerid]==2)
    {
     	DisablePlayerCheckpoint(playerid);
		BrojCPa[playerid] = 0;
		SendClientMessage(playerid,-1,"Zavrsio si event!");
  	}
	return 1;
}

Ne kap,pisem gore treba mi random coorde i 1 coord koju stavljam posle svake te random


Citat: Nure poslato Januar 10, 2019, 16:28:51 POSLE PODNE
Neko?
A ovo gore sto si poslao jesu li ti sve koordinate iste ili si ih stavio samo za primjer?

Citat: AdzoXx poslato Januar 10, 2019, 17:04:35 POSLE PODNE
A ovo gore sto si poslao jesu li ti sve koordinate iste ili si ih stavio samo za primjer?
ma to sam uzo prvu iz savedpositions.txt posto cu tek da pravim rutu