Ako u svakoj komandi primjerice, koristim string za obican tekst (poruka igracu) - new string;... i naravno, ako skripta ima nekih 200 komandi, onda se u svakoj toj komandi radi novi string koji zauzima memoriju...
Dali bi se moglo napraviti jedan global string (na vrh skripte new gstring;) koji bi sluzio samo za format i SCM (slanje poruka) igracu unutar svih komandi (da ne moram na vrh svake komande raditi novi string).
To bi ustedjelo memoriju, a mene zanima dali se to moze napraviti da normalno radi tj. da se stringovi ne pomjesaju ili nesto takvo ..
- Pitanje za iskusnije 🙂
Zaključano
[Savjet] Local ili Global string?
918
pregleda
15
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
pre 13 godina
Sad sam bas testirao to(zanimalo me) i radi.Sad ne znam kako ce se ponasati na mnogo komandi ali na 2 radi xD
pre 13 godina
možeš i globalni, ali pazi da ne koristiš u nekoj funkciji taj isti...
pr:
new globalniString;
komanda☹️) {//nebitna sintaksa ovdje, vrijedi za bilo koji sistem komandi pa sam zato ovako napisao
globalniString = "BLA";
promjeni();
printf(globalniString);// PRINTAT ĆE "Ha Ha" i to nije ono što si htio jer si koristio globalni još jednom pa npr kod mysql threada možeš napravit
}
stock promijeni() {
globalniString = "Ha ha";
}
Dobar naÄin programiranja:
-ne koristi globalne stringove za viÅ¡e lokalnih funkcija jer kad tad ćeÅ¡ dobiti neoÄekivan obrat jer ćeÅ¡ taj isti string u medjuvremenu promijeniti u nekoj funkciji
pr:
new globalniString;
komanda☹️) {//nebitna sintaksa ovdje, vrijedi za bilo koji sistem komandi pa sam zato ovako napisao
globalniString = "BLA";
promjeni();
printf(globalniString);// PRINTAT ĆE "Ha Ha" i to nije ono što si htio jer si koristio globalni još jednom pa npr kod mysql threada možeš napravit
}
stock promijeni() {
globalniString = "Ha ha";
}
Dobar naÄin programiranja:
-ne koristi globalne stringove za viÅ¡e lokalnih funkcija jer kad tad ćeÅ¡ dobiti neoÄekivan obrat jer ćeÅ¡ taj isti string u medjuvremenu promijeniti u nekoj funkciji
pre 13 godina
Meni nije potrebno u funkcijama... ja zelim samo oko podrucja komandi, i to samo oko ispisivanja poruka igracu...
Primjer (u dcmdu):
Dali bi to moglo proci?
Logicno je ako koristim global string u funkciji, a funkciju u komandi u kojoj se koristi global string .. da se moze poklopit i da ne ispisuje sto treba pisat .. 😐
Primjer (u dcmdu):
new gstring;
dcmd_prvakomanda(playerid, params[])
{
format(gstring, 128, "Ova komanda se zove %s.", "/prvakomanda");
SCM(gstring, COLOR_WHITE, string);
return 1;
}
dcmd_drugakomanda(playerid, params[])
{
format(gstring, 128, "Ova komanda se zove %s.", "/drugakomanda");
SCM(gstring, COLOR_WHITE, string);
return 1;
}Dali bi to moglo proci?
Logicno je ako koristim global string u funkciji, a funkciju u komandi u kojoj se koristi global string .. da se moze poklopit i da ne ispisuje sto treba pisat .. 😐
pre 13 godina
Vrabac wrote on June 22, 2012, 7:36 pm:
Ako ga formatiraÅ¡ pravilno ne možeÅ¡ pogrijeÅ¡it! Dosta će ti smanjit veliÄinu u globalu. Ako ga koristiÅ¡ iznad svih callbackova, greÅ¡ke ti mogu stvarat includovi koji imaju istu deklarisanu varijablu..
nikad to ne možeÅ¡ biti siguran, Å¡ta se ti sjećaÅ¡ Å¡ta si programirao u kodu prije 2 mjeseca... to je užasno loÅ¡ naÄin programiranja...
FireMan wrote on June 22, 2012, 10:11 pm:
Oprostite sto tu pitam ali dali ja mogu odredit tip varijable npr int nesto ili float nestodrugo jer mi je nekako neprirodno pisat new 😄
nije ti to C, C++, Java, itd da tako odredjujes varijable, tip odredjujes prije ili poslije imenovanja varijable, a new oznacava kreiranje nove varijable...
pre 13 godina
Dude wrote on June 22, 2012, 7:36 pm:
Ako ga formatiraÅ¡ pravilno ne možeÅ¡ pogrijeÅ¡it! Dosta će ti smanjit veliÄinu u globalu. Ako ga koristiÅ¡ iznad svih callbackova, greÅ¡ke ti mogu stvarat includovi koji imaju istu deklarisanu varijablu..
nikad to ne možeÅ¡ biti siguran, Å¡ta se ti sjećaÅ¡ Å¡ta si programirao u kodu prije 2 mjeseca... to je užasno loÅ¡ naÄin programiranja...
Pa kada formatiraš string, direktno ga formatiraš iznad funkcije koja je u vezi sa tim stringom, ne ubacuješ nikakve funkcije između i ne može bit greška. U ovom tvom primjeru, koja je svrha formatiranja ispred pozivanja funkcije, kada ti je to nebitno?
Dude wrote on June 22, 2012, 6:05 pm:
možeš i globalni, ali pazi da ne koristiš u nekoj funkciji taj isti...
pr:
new globalniString;
komanda☹️) {//nebitna sintaksa ovdje, vrijedi za bilo koji sistem komandi pa sam zato ovako napisao
globalniString = "BLA";
promjeni();
printf(globalniString);// PRINTAT ĆE "Ha Ha" i to nije ono što si htio jer si koristio globalni još jednom pa npr kod mysql threada možeš napravit
}
stock promijeni() {
globalniString = "Ha ha";
}
pr:
new globalniString;
komanda☹️) {//nebitna sintaksa ovdje, vrijedi za bilo koji sistem komandi pa sam zato ovako napisao
globalniString = "BLA";
promjeni();
printf(globalniString);// PRINTAT ĆE "Ha Ha" i to nije ono što si htio jer si koristio globalni još jednom pa npr kod mysql threada možeš napravit
}
stock promijeni() {
globalniString = "Ha ha";
}
pre 13 godina
Vrabac wrote on June 22, 2012, 7:36 pm:
Ako ga formatiraÅ¡ pravilno ne možeÅ¡ pogrijeÅ¡it! Dosta će ti smanjit veliÄinu u globalu. Ako ga koristiÅ¡ iznad svih callbackova, greÅ¡ke ti mogu stvarat includovi koji imaju istu deklarisanu varijablu..
nikad to ne možeÅ¡ biti siguran, Å¡ta se ti sjećaÅ¡ Å¡ta si programirao u kodu prije 2 mjeseca... to je užasno loÅ¡ naÄin programiranja...
Pa kada formatiraš string, direktno ga formatiraš iznad funkcije koja je u vezi sa tim stringom, ne ubacuješ nikakve funkcije između i ne može bit greška. U ovom tvom primjeru, koja je svrha formatiranja ispred pozivanja funkcije, kada ti je to nebitno?
Dude wrote on June 22, 2012, 6:05 pm:
možeš i globalni, ali pazi da ne koristiš u nekoj funkciji taj isti...
pr:
new globalniString;
komanda☹️) {//nebitna sintaksa ovdje, vrijedi za bilo koji sistem komandi pa sam zato ovako napisao
globalniString = "BLA";
promjeni();
printf(globalniString);// PRINTAT ĆE "Ha Ha" i to nije ono što si htio jer si koristio globalni još jednom pa npr kod mysql threada možeš napravit
}
stock promijeni() {
globalniString = "Ha ha";
}
pr:
new globalniString;
komanda☹️) {//nebitna sintaksa ovdje, vrijedi za bilo koji sistem komandi pa sam zato ovako napisao
globalniString = "BLA";
promjeni();
printf(globalniString);// PRINTAT ĆE "Ha Ha" i to nije ono što si htio jer si koristio globalni još jednom pa npr kod mysql threada možeš napravit
}
stock promijeni() {
globalniString = "Ha ha";
}
lega nikad ti neces biti programer jer mislis da je pawn kod nesto sto je reprezentativno... prvo pravilo dobrog programiranj jeste da uvije, ali bas uvijek zakljucas varijable lokalno i da ih tako koristis ako je to moguce, to je najbolji primjer kod OOP, koje koriste danas svi važniji programski jezici koji imaju i definiranje varijabli kao takve, da ne bude pogrešaka...
private $varijabla;//php primjer, varijabla je zakljucana unutar klase i mozes dobiti njezinu vrijednost samo preko funkcije kocu ces napraviti, direktno ti nije dospuna
VrijednostVarijable() { return $varijabla; }
ovo o Äemu ti priÄaj je direktno programiranje liniju za linijom pa tako neces pogrijesiti, ali to je od koda, ima ga previse i brze nikad nece raditi od rada sa funkcijama koje ces napraviti...
znaci o cemu ja tu pricam, programiranje je NLRP, lik kopira tonu koda pod svaki case slucaj u switchu, premda je kod gotovo indentican, samo recimo printa drugaciji tekst... goreg programiranja/skriptanja vec dugo nisam vidio...
Kad programiras uvijek gledas da minimaliziras kod i da gdje je moguce napravise funkcije koje ces pozivati vise puta, brzina je jednaka, a zauzece memorije je puno manje, ali opet napominjem radom sa varijablama lokalno... sreća je vaÅ¡a Å¡to je samp single threaded, jer bi bilo teÅ¡kog sranja s takvim radom, a ovdje je najbolji naÄin takvog sranja rada s istim stringom unutar threada u mysql pluginu...
pre 13 godina
Dude wrote on June 23, 2012, 10:54 am:
lega nikad ti neces biti programer jer mislis da je pawn kod nesto sto je reprezentativno... prvo pravilo dobrog programiranj jeste da uvije, ali bas uvijek zakljucas varijable lokalno i da ih tako koristis ako je to moguce, to je najbolji primjer kod OOP, koje koriste danas svi važniji programski jezici koji imaju i definiranje varijabli kao takve, da ne bude pogrešaka...
private $varijabla;//php primjer, varijabla je zakljucana unutar klase i mozes dobiti njezinu vrijednost samo preko funkcije kocu ces napraviti, direktno ti nije dospuna
VrijednostVarijable() { return $varijabla; }
ovo o Äemu ti priÄaj je direktno programiranje liniju za linijom pa tako neces pogrijesiti, ali to je od koda, ima ga previse i brze nikad nece raditi od rada sa funkcijama koje ces napraviti...
znaci o cemu ja tu pricam, programiranje je NLRP, lik kopira tonu koda pod svaki case slucaj u switchu, premda je kod gotovo indentican, samo recimo printa drugaciji tekst... goreg programiranja/skriptanja vec dugo nisam vidio...
Kad programiras uvijek gledas da minimaliziras kod i da gdje je moguce napravise funkcije koje ces pozivati vise puta, brzina je jednaka, a zauzece memorije je puno manje, ali opet napominjem radom sa varijablama lokalno... sreća je vaÅ¡a Å¡to je samp single threaded, jer bi bilo teÅ¡kog sranja s takvim radom, a ovdje je najbolji naÄin takvog sranja rada s istim stringom unutar threada u mysql pluginu...
private $varijabla;//php primjer, varijabla je zakljucana unutar klase i mozes dobiti njezinu vrijednost samo preko funkcije kocu ces napraviti, direktno ti nije dospuna
VrijednostVarijable() { return $varijabla; }
ovo o Äemu ti priÄaj je direktno programiranje liniju za linijom pa tako neces pogrijesiti, ali to je od koda, ima ga previse i brze nikad nece raditi od rada sa funkcijama koje ces napraviti...
znaci o cemu ja tu pricam, programiranje je NLRP, lik kopira tonu koda pod svaki case slucaj u switchu, premda je kod gotovo indentican, samo recimo printa drugaciji tekst... goreg programiranja/skriptanja vec dugo nisam vidio...
Kad programiras uvijek gledas da minimaliziras kod i da gdje je moguce napravise funkcije koje ces pozivati vise puta, brzina je jednaka, a zauzece memorije je puno manje, ali opet napominjem radom sa varijablama lokalno... sreća je vaÅ¡a Å¡to je samp single threaded, jer bi bilo teÅ¡kog sranja s takvim radom, a ovdje je najbolji naÄin takvog sranja rada s istim stringom unutar threada u mysql pluginu...
Upravu si! Cilj i jest minimizacija koda i njegova dinamiÄnost. Pravljenje includova i povezivanje u php-u je ekvivalentnost pravljenju callbackova koje ces uvezat u pawnu. To si upravu i razumijem te. Jednu globalnu varijablu, kako si reko, je besmisleno pravit, ali minimizirat sa 10 stringovnih varijabli na jednu je globalno minimizacija koda?? Ako ćeÅ¡ imat 20 funkcija pod "OnPlayerCommandText" i za svaku ćeÅ¡ kreirat posebno novi string(koji ćeÅ¡ editovat u ispisu), bolje je da se kreira jedna varijabla, koja će se formatirat? Mislim da je njeg zanimalo to, direktno za komande, da napravi globalni string koji će upotrebljavat samo kada su komande u pitanju i njihov ispis.
pre 13 godina
Vrabac wrote on June 23, 2012, 10:54 am:
lega nikad ti neces biti programer jer mislis da je pawn kod nesto sto je reprezentativno... prvo pravilo dobrog programiranj jeste da uvije, ali bas uvijek zakljucas varijable lokalno i da ih tako koristis ako je to moguce, to je najbolji primjer kod OOP, koje koriste danas svi važniji programski jezici koji imaju i definiranje varijabli kao takve, da ne bude pogrešaka...
private $varijabla;//php primjer, varijabla je zakljucana unutar klase i mozes dobiti njezinu vrijednost samo preko funkcije kocu ces napraviti, direktno ti nije dospuna
VrijednostVarijable() { return $varijabla; }
ovo o Äemu ti priÄaj je direktno programiranje liniju za linijom pa tako neces pogrijesiti, ali to je od koda, ima ga previse i brze nikad nece raditi od rada sa funkcijama koje ces napraviti...
znaci o cemu ja tu pricam, programiranje je NLRP, lik kopira tonu koda pod svaki case slucaj u switchu, premda je kod gotovo indentican, samo recimo printa drugaciji tekst... goreg programiranja/skriptanja vec dugo nisam vidio...
Kad programiras uvijek gledas da minimaliziras kod i da gdje je moguce napravise funkcije koje ces pozivati vise puta, brzina je jednaka, a zauzece memorije je puno manje, ali opet napominjem radom sa varijablama lokalno... sreća je vaÅ¡a Å¡to je samp single threaded, jer bi bilo teÅ¡kog sranja s takvim radom, a ovdje je najbolji naÄin takvog sranja rada s istim stringom unutar threada u mysql pluginu...
private $varijabla;//php primjer, varijabla je zakljucana unutar klase i mozes dobiti njezinu vrijednost samo preko funkcije kocu ces napraviti, direktno ti nije dospuna
VrijednostVarijable() { return $varijabla; }
ovo o Äemu ti priÄaj je direktno programiranje liniju za linijom pa tako neces pogrijesiti, ali to je od koda, ima ga previse i brze nikad nece raditi od rada sa funkcijama koje ces napraviti...
znaci o cemu ja tu pricam, programiranje je NLRP, lik kopira tonu koda pod svaki case slucaj u switchu, premda je kod gotovo indentican, samo recimo printa drugaciji tekst... goreg programiranja/skriptanja vec dugo nisam vidio...
Kad programiras uvijek gledas da minimaliziras kod i da gdje je moguce napravise funkcije koje ces pozivati vise puta, brzina je jednaka, a zauzece memorije je puno manje, ali opet napominjem radom sa varijablama lokalno... sreća je vaÅ¡a Å¡to je samp single threaded, jer bi bilo teÅ¡kog sranja s takvim radom, a ovdje je najbolji naÄin takvog sranja rada s istim stringom unutar threada u mysql pluginu...
Upravu si! Cilj i jest minimizacija koda i njegova dinamiÄnost. Pravljenje includova i povezivanje u php-u je ekvivalentnost pravljenju callbackova koje ces uvezat u pawnu. To si upravu i razumijem te. Jednu globalnu varijablu, kako si reko, je besmisleno pravit, ali minimizirat sa 10 stringovnih varijabli na jednu je globalno minimizacija koda?? Ako ćeÅ¡ imat 20 funkcija pod "OnPlayerCommandText" i za svaku ćeÅ¡ kreirat posebno novi string(koji ćeÅ¡ editovat u ispisu), bolje je da se kreira jedna varijabla, koja će se formatirat? Mislim da je njeg zanimalo to, direktno za komande, da napravi globalni string koji će upotrebljavat samo kada su komande u pitanju i njihov ispis.
opet krivo govoris, nikad ali bas nikad ne radis sa globalnom varijablom...
kod OOP se takav nacin niti ne koristi, a niti jednu ozbiljniju aplikaciju proceduralnim danas vise neces moc napravit...
pre 13 godina
Dude wrote on June 23, 2012, 12:28 pm:
opet krivo govoris, nikad ali bas nikad ne radis sa globalnom varijablom...
kod OOP se takav nacin niti ne koristi, a niti jednu ozbiljniju aplikaciju proceduralnim danas vise neces moc napravit...
kod OOP se takav nacin niti ne koristi, a niti jednu ozbiljniju aplikaciju proceduralnim danas vise neces moc napravit...
Iskusni si, ne proturjeÄim ti se. Ali zar ovo Å¡to ja govorim nije apstraktna klasa OOP-a ?
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava