Ucitavanje objekata

Započeo Levu, Avgust 14, 2019, 13:39:05 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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!

exDeveloper | Generation, Zara Gaming, Meanwhile |
"If nobody hates you, you're doing something wrong."


Citat: TheP4vO poslato Jul 29, 2014, 20:42:16 POSLE PODNE
Glasao sam ali ovo je vrlo [cenzura]o svima je favorit neprikosloveni levu :D

fino objasnjeno

TIIIIIRRRRRRUUUUUU RIIIIIIIIIIIIIIIII RUUUUUUUUUUUUU


Good job man  8)

One And Only
Old Member
Since AVGUST 2013. :)
GAME OVER - SCRIPTING
SINCE 2009 - 2020

Napokon normalan i koristan tut, a ne kako napraviti /askq i /cc.. gj :)


Hvala svima.

exDeveloper | Generation, Zara Gaming, Meanwhile |
"If nobody hates you, you're doing something wrong."


Citat: TheP4vO poslato Jul 29, 2014, 20:42:16 POSLE PODNE
Glasao sam ali ovo je vrlo [cenzura]o svima je favorit neprikosloveni levu :D


Odlicno  8)




Give Honor To The One Who Deserve It





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 😁
My tutorials: y_inline & y_dialog, Ternary Operator, y_flooding, y_bit, samp-logger, Pawn Plus I Deo ( Dynamic Strings ), Map Zones, TextDraw Buttons, y_iterate, easyDialog, samp-plugin-timerfix
My includes: TextDraw Buttons


Respect: Bunta, Vedran, Ivan Bagarić, Itz.Yansi, Rade Ćurić (ni ja ne verujem)
Biggest respect goes to: ADRFranklin


Citat: Vodka PlayObožavam te "skriptere" koji probleme rešavaju tako što menjaju mod svaka 2 dana, tako će sigurno naučiti.
Neko im nacrta u temi Å¡ta treba uraditi, al' ne vredi nisu svi za skriptanje.

Citat: Levu poslato Avgust 14, 2019, 13:39:05 POSLE PODNE
Svakodnevno skoro dobijem bar jedno pitanje za ucitavanje objekata...

Tipican influenser Levu xD
Pasting code from the Internet into production code is like chewing gum found in the street.

Also known as:Marshall Bleach Newton




Lepo si obljasnio   :)
Muka mi je kada neko preko svake mere sere o kako mrzim pozere