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
Rand coord po 100ti put
480
pregleda
4
postova
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;
}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