PARTNERI:
-UPOZORENJE-

Samo registrovani članovi mogu da vide/koriste forum u celini.
Prijavite se ili registrujte nalog na Balkan SA-MP forumu.


Autor Tema: [Tutorial] Ucitavanje objekata  (Pročitano 669 puta)

0 članova i 1 gost pregledaju ovu temu.

Van mreže Levu

Ucitavanje objekata
« 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:


Pawno Code: [Izaberi]
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)
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...

Pawno Code: [Izaberi]
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
}
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!
"If nobody hates you, you're doing something wrong."

Glasao sam ali ovo je vrlo [cenzura]o svima je favorit neprikosloveni levu :D
 
Korisnici koji su se zahvalili: .mumitza, [GH] Terza, Fqris, RomaNN, Aggressive, dwayer torreto.

Van mreže Fqris

Odg: Ucitavanje objekata
« Odgovor #1 poslato: Avgust 14, 2019, 14:14:40 posle podne »
fino objasnjeno
Citat
"imam ljubicastu krv jer ne poticem sa zemlje"
 

Van mreže Ivkov1c.

Odg: Ucitavanje objekata
« Odgovor #2 poslato: Avgust 14, 2019, 14:32:21 posle podne »
Bravo !
- INSTAGRAM -

@ivkov1c
 

Na mreži LANMY.pwN

Odg: Ucitavanje objekata
« Odgovor #3 poslato: Avgust 14, 2019, 19:10:08 posle podne »
Good job man  8)

 

Van mreže .mumitza

  • Ne treba vjerovati ljudima s kojima smo se tek sprijateljili, a koji pokazuju da smo im draži od njihovih starih prijatelja – tako će se ponaÅ¡ati i s nama kada steknu nove prijatelje.
  • Godfather
  • *
  • Poruke: 10107
  • Broj zahvalnica: 738
  • Pol: Žena
  • xP
Odg: Ucitavanje objekata
« Odgovor #4 poslato: Avgust 14, 2019, 19:41:56 posle podne »
Napokon normalan i koristan tut, a ne kako napraviti /askq i /cc.. gj :)
 

Van mreže itzbekam

Odg: Ucitavanje objekata
« Odgovor #5 poslato: Avgust 14, 2019, 22:37:51 posle podne »
Korisno. Svaka čast  ;)
 

Van mreže Levu

Odg: Ucitavanje objekata
« Odgovor #6 poslato: Avgust 16, 2019, 14:27:48 posle podne »
Hvala svima.
"If nobody hates you, you're doing something wrong."

Glasao sam ali ovo je vrlo [cenzura]o svima je favorit neprikosloveni levu :D
 

Van mreže mumixd

Odg: Ucitavanje objekata
« Odgovor #7 poslato: Avgust 16, 2019, 14:51:47 posle podne »
Napokon normalan i koristan tut, a ne kako napraviti /askq i /cc.. gj :)
al nocas hocu tebi dosta mi je pakla <3
 

Na mreži imnaithan

Odg: Ucitavanje objekata
« Odgovor #8 poslato: Avgust 21, 2019, 01:00:24 pre podne »
Odlicno  8)
- DeeJay -

Give Honor To The One Who Deserve It
Citat

Maloumni debil, dovoljno mu ime govori "baka prase", na sranjima je gradio kanal. To je ono što voli danjašnja generacija koja izrasta uz farme, parove i tome slična sranja.  -  #DraGoN

 

Van mreže Osamu Dazai

Odg: Ucitavanje objekata
« Odgovor #9 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 😁
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 Play
Obož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.
 

Van mreže BitchLasagna

Odg: Ucitavanje objekata
« Odgovor #10 poslato: Oktobar 04, 2019, 19:00:00 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.