Svakodnevno skoro dobijem bar jedno pitanje za ucitavanje objekata, jednu od najprostijih stvari zapravo. Uglavnom ljudi mapu koju dobiju od mapera ubace u mod i onda se pitaju zasto se lose ucitava...
Kad bi pogledali native CDO videli bi par zanimljivih i bitnih stvari:
[pawn]CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_OBJECT_SD, Float:drawdistance = STREAMER_OBJECT_DD, areaid = -1, priority = 0)[/pawn]
streamdistance - distanca sa koje se objekat stream od strane samog plugina
drawdistance - distanca sa koje ce igrac videti taj objekat
priority - najbitniji argument koji vecina vas ne koristi, jer ni ne zna sve argumente... Sluzi za prioritet streamovanja jednostavno, uvek ce se objekat sa visim prioritetom streamovati pre onog sa nizim. Npr objekat sa prioritetom 1 ce se stream pre svih onih sa 0, objekat sa prioritetom 2 pre svih onih sa 1. Dakle najvisi prioritet ce izbaciti iz streama neki objekat sa najnizim i on ce se prvi ucitati.
Sa ovim iznad mozemo toliko dobro da rasporedimo ucitavanje, ako dobro podesimo prioritete i distance, da nam za podove vise ni ne treba CreateObject format, vec CDO.
E sad se sigurno pitate da li trebate svaki objekat posebno da podesavate... Bilo bi dobro kad bi toliko posvetili paznju i odradili to, ali ja cu ovde da vam predstavim jednu caku koja ce svakako da vam odradi posao, a na vama je samo u funkcijama da dodajete IDeve objekata po zelji. Napravicemo funkciju koja ce na osnovu ID-a objekta sama da odradi dobar posao... Pa da krenemo.
Prvo pravimo funkcije u koje grupisemo ID-eve objekata, ja cu napraviti srednje i velike, a vi mozete koje god hocete...
[pawn]
velikiObjekti( id ) {// pod velike objekte smatram zgrade
switch( id ) {// switchujemo id objekta
case 7584, 8395, 9901, 6863: return true;// za ove IDeve vracamo true
}
return false;//ako ne spada tu vracamo false
}
srednjiObjekti( id ) {// ovde stavite npr neke vece objekte koje bi zeleli da se ucitavaju bolje nakon prvih tj nakon zgrada npr
switch( id ) {// switchujemo id objekta
case 18981, 19377, 18766: return true;// za ove IDeve vracamo true
}
return false;//ako ne spada tu vracamo false
}
// pravimo nasu fju preko koje dodeljujemo vrednosti za distance i prioritete i nju cemo koristiti u buducnosti za mape
levu_CreateDynamicObject( objid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 300.0, Float:drawdistance = 300.0, areaid = -1, priority = 0 )
{
if( velikiObjekti( objid ) ) {//proveravamo da li je objekat veliki tj da li je zgrada u ovom slucaju, ako jeste njemu stavljamo najvise distance i prioritet
streamdistance = 800.0;
drawdistance = 800.0;
priority = 8;
}
else if( srednjiObjekti( objid ) ) {// proveravamo da li je objekat srednji i stavljamo mu manji prioritet i distanec od velikih, ali vece od default vrednosti
streamdistance = 500.0;
drawdistance = 500.0;
priority = 6;
}
// sve ostalo znaci da su mali objekti tipa cvece i tako dalje i njima ostavljamo default vrednosti 300.0, 300.0 i nulti prioritet
return CreateDynamicObject( objid, x, y, z, rx, ry, rz, worldid, interiorid, playerid, streamdistance, drawdistance, areaid, priority ); //returnamo CDO sa nasim vrednostima
}
[/pawn]
NAPOMENE:
Ja sam stavio samo par IDeva objekata za primere, vi dopunjavajte po svojoj potrebi.
Podove takodje nisam stavljao jer tu variraju mnogo IDevi. Podove bar mozete sami da podesite direktno u CDO sa argumentima jer ih ima malo, njima najvisi prioritet obavezno ako zelite bez CO da radite!
fino objasnjeno
Bravo !
Good job man 8)
Napokon normalan i koristan tut, a ne kako napraviti /askq i /cc.. gj :)
Korisno. Svaka Äast ;)
Hvala svima.
Citat: mumitza. poslato Avgust 14, 2019, 19:41:56 POSLE PODNE
Napokon normalan i koristan tut, a ne kako napraviti /askq i /cc.. gj :)
Odlicno 8)
Ja sam se zainterevosao dosta vise za native od kada sam doÅ¡ao u dodir sa YSI paketom i PawnPlusom, na primer svaki library moraÅ¡ da prilagodiÅ¡ u PawnPlus-u, jeste dosadno ali je u isto vreme zabavno jer ucis neÅ¡to novo, iskren cu biti da ne bude ponovo "ja sam najpemtniji" ali ja od kada koristim Sublime (2god) pratim parametre, jer ja kreiram funkciju tako Å¡to napisem PoÄetak imena i uradim auto complete pomoću syntaxe i svali argument posebno popunim i onda bude greÅ¡ke bez ðŸ˜
Citat: Levu poslato Avgust 14, 2019, 13:39:05 POSLE PODNE
Svakodnevno skoro dobijem bar jedno pitanje za ucitavanje objekata...
Tipican influenser Levu xD
Lepo si obljasnio :)