[Savet] Stock

1. Jun 2014. Zaključano
415
pregleda
15
postova
Rudimental
5
OG Legend
1. Jun 2014.
O kakvom savjetu se radi: Stock ili Public
Detaljan opis savjeta: Potreban mi je jedan savet u vezi ovoga, cuo sam da je Stock za neke stvari bolji od Publica, malo sam i prosao kroz google medjutim nisam nasao ono sto mene bas zanima za ovo a ono sto mene zanima jeste to da ja sada imam u glavi da ne pravim Publice za neke moje stvari vec da radim to sa Stock. E sada u velikoj sam dilemi dali u Stock mogu da idu bukvalno sve stvari... Recimo dali je on namenjen za nesto malo linija u njemu i ako sam procitao da dosta toga moze da se slobodno stavi u njega. Znaci sad dali ja da za sve sto pravim radim u Stocku ili samo nesto da ide u Stock a nesto u Public ?
Komentar: /
James_SmithXDl
6
OG Legend
1. Jun 2014.
procitaj ovo
http://wiki.sa-mp.com/wiki/Stocks
http://wiki.sa-mp.com/wiki/Public_functions
taft
5
Underboss
1. Jun 2014.
stock nije bolji od public-a i sl. - stock je prefix koji zaobilazi upozorenja kompajlera da se ta funkcija nigdje u kodu ne koristi (praktički, stock prefix je u 90% slučajeva bespotreban, bolji je od public vrste funkcije jer u argumentima funkcije može imati default vrijednosti (početnu vrijednost), i onda to može pomoći uvijek kada ne moraš unositi određen argument/e u funkciju, ali to isto često nije potrebno

public logika je naslijeđena iz objektno orijentalnog programiranja i znači da se metodi odnosno u pawnu, funkciji može pristupiti s bilo koje pozicije, a u pawnu bi to bilo iz bilo koje skripte, recimo kada radiš include skriptu i sada želiš da korisnici tvog include-a ima callback neki koji nešto radi, ta funkcija mora biti public vrste jer se iz skripte u kojoj će se koristiti mogućnosti tog include-a pristupa datoteku s kodom includea...

znači, bolji način ne postoji... sve koristiš po potrebi, a ako način ispuni tvoje potrebe onda je bolji od načina koji ne bi to ispunio,kada bi uzeli prosjek jedne procedure ili algoritma najčešće bi ovakava izgled funkcije ispunio sve potrebe

funkcija()
{
}

jednostavno,bez prefiksa
denis_lapi
5
Godfather
1. Jun 2014.
Evo probacu i ja da objasnim.
Stock- On ti sluzi za opozivanje u nekom odrednjenom trenutku koji je propisan nekom komandom. Znaci on nije stalno aktivan vec se pokrece po potrebi i pod odredjenoj naredbi.
Primer:

stock ObrisiChat(playerid)
{
for(new i=0;i<=10;i++)
{
  SCM(playerid,-1,"");
}
return 1;
}
////////////////
CMD:cc(playerid, params[])
{
ObrisiChat(playerid);
return 1;
}

Public-Public=Javnost. On je stalno aktivan, i ne zavisi od pokreranja igraca, znaci uvek radi i samo je pitanje kada ce ga igrac koristiti i "uci" u njega. Primer ti je pustanje muzike na loginu. Znaci cim si se logovao on ti pusta muziku, ali dokle to traje? Trajalo bi u nedogled da ga ti u nekoj situaciju (publicu) nisi ugasio. Stock-om ga ne bi mogao ugasiti jer on cega na opozivanje, ali public je javan i ne ceka da se opozove vec uvek radi, s toga ubacio bi gasenje muzike u OnPlayerSpawn.
Moras malo da se pustis u mastu i da kroz neke eksperimente uocis razliku. Ja sam ti ovako slikovito opisao, ali probaj sam i videces..
Rudimental
5
OG Legend
1. Jun 2014.
Ti si mi sad Denise jos i najbolje objasnio, nego sta sa tajmerom njega da koristim u publicu ili stocku ?
denis_lapi
5
Godfather
1. Jun 2014.
U publicu. Sad cu da ti objasnim. Kao sto sam i rekao stock ceka na opozivanje, i sada koja je sustina koristiti timer u stocku ObrisiChat(playerid) ako on nije opozvan. Nema logike. A kada bi recimo radio na primer neki sistem koju se pokrece nakon nekoliko sekundi posle komande, ti bi morao da ga uradis u publicu jer ce on pokrenuti niz radnji.
Da ti bude jasnije. Stock ti je kao precica i skracenica. Zasto bi svuda kucao SCM po 10 puta da bi obrisao chat, kada mozes da stavis u stck i da ga sano opozivas po potrebi. A Public je aktivan stalno, ali zavisi od uslova unutar njega sta ce on raditi.
Rudimental
5
OG Legend
1. Jun 2014.
Aha, sada su mi neke stvari dosta jasnije 😄 nego jos jedno pitanje sigurno znas sta rade publici poput SearchingHit, ExtortionBiz, SetPlayerCriminal.
Sad me zanima jel publice poput navedenih mogu da radim isto u stocku ili ovako nesto treba ipak da ostane kao public ?
Johnâ„¢
5
Godfather
1. Jun 2014.
â–… â–† â–ˆ Zyzz â–ˆ â–† â–… wrote on June 1, 2014, 8:58 pm:
Aha, sada su mi neke stvari dosta jasnije 😄 nego jos jedno pitanje sigurno znas sta rade publici poput SearchingHit, ExtortionBiz, SetPlayerCriminal.
Sad me zanima jel publice poput navedenih mogu da radim isto u stocku ili ovako nesto treba ipak da ostane kao public ?


Stock. U principu sve funkcije su ti stock ili još bolje da nemaju nikakav prefix osim kad koristiš timere ili tak još neke stvari koje zahtjevaju public funkciju.
denis_lapi
5
Godfather
1. Jun 2014.
Ajde da se nadovezem na ExtortionBiz. Predpostavljsm da se Biz  dnosi na biznise. Ne, msm ne bi trebalo raditi ih u stocku jer se oni stalno updatuju tj. stalno stvaraju neke promene koje sa stockom nemas gde da smestis jer biznis u pawno ne znaci nista te on ne moze da podrzi update preko stock. Ne mogu ovako da ti objasnim, moras da cackas i ekperimentises. Jednostavno stock mora da ima pokretac, a public je sam pokretac..
Rudimental
5
OG Legend
1. Jun 2014.
Malo me zbunjuje to "pokretac" za primer ExtortionBiz to mu je u koliko neki igrac ima reket na firmi pa da dobija odredjen novac od ulaza, i sada ovo se pokrece samo u koliko neki igrac udje u firmu jel to znaci da bi moglo da bude u stoku jer se pokrece samo kada neko ulazi u firmu ili da ipak ostane kao public, jeste da smaram ali jbg trudim se da skontam od prilike sve kako i sta da ne bi pravio neke greske bezveze.
Johnâ„¢
5
Godfather
1. Jun 2014.
Denis_Lapi wrote on June 1, 2014, 9:11 pm:
Ajde da se nadovezem na ExtortionBiz. Predpostavljsm da se Biz  dnosi na biznise. Ne, msm ne bi trebalo raditi ih u stocku jer se oni stalno updatuju tj. stalno stvaraju neke promene koje sa stockom nemas gde da smestis jer biznis u pawno ne znaci nista te on ne moze da podrzi update preko stock. Ne mogu ovako da ti objasnim, moras da cackas i ekperimentises. Jednostavno stock mora da ima pokretac, a public je sam pokretac..


Ti si djelomično u pravu. Govoriš da bi se public funkcije trebale koristit samo kao trigger za neki određeni event šta je pogrešno. Public funkcije se koriste samo kod timera ili nekih posebnih slučaja u kojem sam PAWN zahtjeva da je funkcija public, u svim ostalim slučajevima se koristi stock ili normalna funkcija bez prefixa.

Uzmimo za primjer ExtortionBiz. Ta funkcija služi da kad igrač uđe u neku firmu da mu naplati ulaz. To znači da bi se trebala pozvat kad igrač uđe u firmu, odnosno unutar OnPlayerKeyStateChange ili OnPlayerCommandText callbacka (ovisno kako je u modu napravljen ulaz u firme). A poziv funkcije izgleda jednostavno ovako (ne znam točno sve argumente, tako da je ovo samo za primjer):
// ostatak koda u callbacku je prije ovog
ExtortionBiz(playerid, bizID);


I tu nema apsolutno nikakve potrebe za public funkcijom.
denis_lapi
5
Godfather
1. Jun 2014.
A kom ces publicu posle pokrenuti stock kada ne postoji public koji prepoznaje biznis? Mozda mozes preko komande ako se ulazi u biznis preko nje, paa da ubacis stock, ali logicno je po mene raditi u public jer je on pokretac niza aktivnosti. Ne znam kako da ti objasnim, ziv razgovor bi bio mnogo laksi. U ovakvim sllucajevima crtanje mnogo pomaze. Eksperimentisi i videces..
Rudimental
5
OG Legend
1. Jun 2014.
Nista ljudi hvala vam pomogli ste mi mnogo ostalo je na meni kao sto kazes da eksperimentisem 😄 moze LOCK
Johnâ„¢
5
Godfather
1. Jun 2014.
Denis_Lapi wrote on June 1, 2014, 9:31 pm:
A kom ces publicu posle pokrenuti stock kada ne postoji public koji prepoznaje biznis? Mozda mozes preko komande ako se ulazi u biznis preko nje, paa da ubacis stock, ali logicno je po mene raditi u public jer je on pokretac niza aktivnosti. Ne znam kako da ti objasnim, ziv razgovor bi bio mnogo laksi. U ovakvim sllucajevima crtanje mnogo pomaze. Eksperimentisi i videces..


Pa napraviš funkciju preko koje dobiješ ID najbliže igračeve firme (recimo: GetPlayerNearBiz) i taj ID pošalješ ExtortionBiz. Public funkcije nije dobro koristiti bilo šta osim za ono šta su predviđene.

Vince lijepo objasnio: http://forum.sa-mp.com/showpost.php?p=3041201&postcount=3
Također možeš potražit neke Y_Lessove postove u kojim govori da je besmisleno koristiti public funkcije za ono za šta nisu predviđene.
denis_lapi
5
Godfather
1. Jun 2014.
Slazem se sa tobom Joey. Ovaj poslednji vitat koji si postavio se odnosi na Zyzz-a nego smo objavili post u isto vreme pa su nam se musljenja poklopila tj. moj upit njemu sa tvojom konstatacijom. Razumem sta hoces da kazes.

Lock na zahtev autora

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha