Balkan SA:MP

San Andreas Multiplayer - www.sa-mp.com => Tutorijali u vezi SA-MPa => Temu započeo: Levu poslato Avgust 14, 2019, 13:39:05 POSLE PODNE

Naslov: Ucitavanje objekata
Poruka od: Levu poslato Avgust 14, 2019, 13:39:05 POSLE PODNE
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!
Naslov: Odg: Ucitavanje objekata
Poruka od: Fqris poslato Avgust 14, 2019, 14:14:40 POSLE PODNE
fino objasnjeno
Naslov: Odg: Ucitavanje objekata
Poruka od: jebem Lanmiu mamu poslato Avgust 14, 2019, 14:32:21 POSLE PODNE
Bravo !
Naslov: Odg: Ucitavanje objekata
Poruka od: xLanmi poslato Avgust 14, 2019, 19:10:08 POSLE PODNE
Good job man  8)
Naslov: Odg: Ucitavanje objekata
Poruka od: Muma poslato Avgust 14, 2019, 19:41:56 POSLE PODNE
Napokon normalan i koristan tut, a ne kako napraviti /askq i /cc.. gj :)
Naslov: Odg: Ucitavanje objekata
Poruka od: itzbekam poslato Avgust 14, 2019, 22:37:51 POSLE PODNE
Korisno. Svaka čast  ;)
Naslov: Odg: Ucitavanje objekata
Poruka od: Levu poslato Avgust 16, 2019, 14:27:48 POSLE PODNE
Hvala svima.
Naslov: Odg: Ucitavanje objekata
Poruka od: m u m i poslato Avgust 16, 2019, 14:51:47 POSLE PODNE
Citat: mumitza. poslato Avgust 14, 2019, 19:41:56 POSLE PODNE
Napokon normalan i koristan tut, a ne kako napraviti /askq i /cc.. gj :)
Naslov: Odg: Ucitavanje objekata
Poruka od: imnaithan poslato Avgust 21, 2019, 01:00:24 PRE PODNE
Odlicno  8)
Naslov: Odg: Ucitavanje objekata
Poruka od: Osamu Dazai poslato Avgust 21, 2019, 01:05:20 PRE PODNE
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 😁
Naslov: Odg: Ucitavanje objekata
Poruka od: BitchLasagnazz poslato Oktobar 04, 2019, 19:00:00 POSLE PODNE
Citat: Levu poslato Avgust 14, 2019, 13:39:05 POSLE PODNE
Svakodnevno skoro dobijem bar jedno pitanje za ucitavanje objekata...

Tipican influenser Levu xD
Naslov: Odg: Ucitavanje objekata
Poruka od: .: Vule :. poslato Oktobar 22, 2019, 12:50:12 POSLE PODNE
Lepo si obljasnio   :)