Rand coord po 100ti put

Započeo Nure
13. Jan. 2019. Zaključano
480
pregleda
4
postova
Nure
4
Enforcer
13. Jan. 2019.
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
Rax_King
5
Godfather
13. Jan. 2019.

// Napravis array u kome ces smjestiti koordinate drifta
static const Float: drift_coordinates[] {
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 }
};

// Ovaj array ces koristiti da znas na kom je CPu igrac trenutno - odnosno u koji cp treba da "udje"
static player_drift_cp = { -1, ... };

CMD:drift(playerid, params[]) {
// Biras random index iz arraya drift_coordinates
new const random_idx = random(sizeof drift_coordinates);

// Postavljas CP igracu iz arraya drift_coordinates i indexa random_idx
SetPlayerRaceCheckpoint(playerid, 2, drift_coordinates,  drift_coordinates,  drift_coordinates, 0.0, 0.0, 0.0, 5.0)
player_drift_cp = random_idx;
return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid) {
// Ako je igrac u drift modu (koji se aktivira kada kucas /drift)
if (player_drift_cp != -1) {
// Uzimas mu koji drift cp treba da uzme
new const curr_drift_cp = player_drift_cp;

// Ako je usao u RaceCP i blizu je CPa koji treba da uzme (ovo sam uradio zbog citera koji mogu da salju sync CP)
if (IsPlayerInRangeOfPoint(playerid, 5.0, drift_coordinates,  drift_coordinates,  drift_coordinates)) {
// Dodjeljujes mu novi index iz arraya drift_coordinates
new random_idx = random(sizeof drift_coordinates);

// Ovo sam uradio kako ti se ne bi jedan CP ponovio 2 puta
// Jednostavno prevedeno: dok je random_idx jednak curr_drift_cp biras novi random_idx
while(random_idx == curr_drift_cp) random_idx = random(sizeof drift_coordinates);

// Zatim mu opet postavljas novi race checkpoint
SetPlayerRaceCheckpoint(playerid, 2, drift_coordinates,  drift_coordinates,  drift_coordinates, 0.0, 0.0, 0.0, 5.0)
player_drift_cp = random_idx;
}
}

return 1;
}
Nure
4
Enforcer
13. Jan. 2019.
da znam,samo sto sam ja hteo da kad pokupi taj random cp da mu se seta jedan cp koji ja zelim neku coordinatu i kad pokupi tu coordinatu koju sam ja zeleo da mu opet seta random.
Rax_King
5
Godfather
14. Jan. 2019.

public OnPlayerEnterRaceCheckpoint(playerid) {
// Ako je igrac u drift modu (koji se aktivira kada kucas /drift)
if (player_drift_cp != -1) {
// Uzimas mu koji drift cp treba da uzme
new const curr_drift_cp = player_drift_cp;

// Ako je sadasnji drift cp id veci ili jednak drift_coordinates array size (u tvom slucaju 6)
if (curr_drift_cp >= sizeof drift_coordinates) {
// Dodjeljujes mu novi index iz arraya drift_coordinates
new random_idx = random(sizeof drift_coordinates),
arr_size = sizeof drift_coordinates;

// Ovo sam uradio kako ti se ne bi jedan CP ponovio 2 puta
// Jednostavno prevedeno: dok je random_idx jednak curr_drift_cp biras novi random_idx
while(random_idx == curr_drift_cp - arr_size) random_idx = random(sizeof drift_coordinates);

// Zatim mu opet postavljas novi race checkpoint
SetPlayerRaceCheckpoint(playerid, 2, drift_coordinates,  drift_coordinates, drift_coordinates, 0.0, 0.0, 0.0, 5.0)
player_drift_cp = random_idx;
}
// Ako je usao u RaceCP i blizu je CPa koji treba da uzme (ovo sam uradio zbog citera koji mogu da salju sync CP)
else if (IsPlayerInRangeOfPoint(playerid, 5.0, drift_coordinates,  drift_coordinates,  drift_coordinates)) {
// Postavljas taj tvoj CP koji hoces da pokupi
SetPlayerRaceCheckpoint(playerid, 2, TvojCP_X,  TvojCP_Y, TvojCP_Z, 0.0, 0.0, 0.0, 5.0)
// I ovde sam da ne bi imao 2 bespotrebne varijable napravio malo mozganja ali ako imas matematiku >1 skonataces
player_drift_cp += sizeof drift_coordinates;
}
}

return 1;
}

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha