Bebras prieš 9 metus
Ciklai!
// Nebūtinas, bet patogiau
enum E_DEGALU_PYLIMO_VIETOS {
Float:PosX,
Float:PosY,
Float:PosZ,
};
// Tai yra pickup koordinačių sąrašas, kiek viena eilutė - naujas pickup
new const DegaluPickupVietos[][E_DEGALU_PYLIMO_VIETOS ] = {
-2030.0308,159.0452,28.8359,
-1326.7206,2686.8091,50.0625,
-1327.7534,2681.2141,50.0625,
-1328.5377,2675.7964,50.0625,
-1328.9054,2670.2896,50.0625
};
// Masyvas skirtas pickup ID laikyti
new DegaluPickup[sizeof DegaluPickupVietos ];
public OnGameModeInit()
{
for(new i = 0; i < sizeof DegaluPickupVietos; i++)
{
DegaluPickup[ i ] = CreatePickup(1650, 2, DegaluPickupVietos[ PosX ], DegaluPickupVietos[ PosY ], DegaluPickupVietos[ PosZ ]);
}
}
O OnPlayerPickUpPickup
gali patikrinti taip:
public OnPlayerPickUpPickup(playerid, pickupid)
{
for(new i = 0; i < sizeof DegaluPickupVietos; i++)
{
if(pickupid == DegaluPickupVietos[ i ])
{
// Jei esame čia, reiškia tai degalų pickup.
}
}
}
O pridedant naujus pickup vienintelis kodas kuris keisis tai masyve prisidės dar vieną eilutė.
P.S. kodas gali nesikompiliuoti nes rašiau čia, su juo norėjau parodyti tik idėją.
Daugiau apie ciklus gali rasti čia, Wiki bei ieškodamas internete rasi daug informacijos.
Bebras prieš 9 metus
Paragon
, eh? Kad toks temos pavadinimas apskritai nieko nepasako apie tai. Kiek supratau tai žaidimas? Tai toks trumpas pavadinimas reikštų kad žadi visiškai viską apie žaidimą aprašyti temoje?
Bebras prieš 9 metus
@naikintojas jis nėra būtina, o visuose cikluose gali naudoti sizeof eKanalizokai
arba sizeof(eKanalizokai)
tai gražins pirmosios dimensijos(eilučių) skaičių.
Bebras prieš 9 metus
new eKanalizokai[ MAX_KANALIZOKU ][Kanalizokai]
Pagal tai, turi būti 22 eilutės ir 8 stulpeliai. Pas tave yra tik 7. Bet savaime suprantama kad 3D teksto etiketės ID tu iš anksto žinoti negali, todėl siūlyčiau jį perkelti į savo masyvą, t.y. new Text3D:Kanalizacijos3D[MAX_KANALIZOKU];
Taip pat norėčiau paminėti kad kai iš karto duodi reikšmes masyvui, eilučių skaičių gali palikti tuščią, kompiliatorius ir pats moka skaičiuoti.