Započeo |Pacino
•4. Mar. 2011.• Zaključano[TuT]YINI - YSI
3,582
pregleda
9
postova
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
123
Postovi:
8
Teme:
Pridružio se:Feb. 2011
4. Mar. 2011.
YINI[y_ini.inc]
Ovo je jedan od dijelova YSI skupa includova i datoteka koji mozete preuzeti
ovdje. Sam YINI ne mozete sami pronaci, tako da je jedina opcija preuzimanje citave kolekcije includova!
Ovaj sistem citanja/pisanja datoteka je do sada najbrzi koji je ikada kreiran ( kako tvrdi njegov autor - Y_Less).
Preporucljivo ga je koristiti kod spremanja acc-ova, kuca, bizova i drugih vrsta datoteka!
U sljedecem dijelu tutorijala objacnicu vam neke osnovne funkcije YINI sistema, i naravno objasniti zasto bas njega ( Puno je brzi od Dini-a i SII-a ) :
Komande su veoma slicne onima u Dini-u!
Koristenje:
Ako zelite da koristite ovaj sistem na vrhu skripte dodajte (podrazumjeva da ste skinuli ovaj paket i ubacili ga u svoj include folder):
#include Dini sistem otvara datoteku svaki put kad trazi neku vrijednost otvara datoteku radi te 1 vrijednosti, pa zatvara datoteku, pa je opet otvara kad bude potrebno... YINI za razliku od Dini-a otvara datoteku jednom i ocita sve vrijednosti odmah, i to je ono sto ga cini drugacijim i boljim!
CITANJE
Zamislite Dini kod:
gA = dini_Get("datoteka.ini", "c");
gB = dini_Get("datoteka.ini", "b");
gC = dini_Get("datoteka.ini", "a");I ove vrijednosti:
a = 10
b = 67
c = 42Dini bi otvorio datoteku po 1 za svaku vrijednost ( znaci 3 puta otvara datoteku i 3 puta zatvora i tako iznova... )
Yini bi ipak otvorio ovu datoteku samo jednom i ocitao sve podatke odmah.
Ovako bi izgledao Yini kod:
INI:myini[](name[], value[])
{
INI_String("a", gA);
INI_String("b", gB);
INI_String("c", gC);
return 0; // returna 0 - obavezno
}
Sintaksa jeste duza, ali se isplati pisati malo duzi kod, pogotovo ako je brzina u pitanju. Yini koristi callback da ucita datoteke umjesto da cita svaku vrijednost pojedinacno ( Dini ).
PISANJE/ SPREMANJE
Nacin pisanja je veoma slican kao kod Dini-a... Ipak dok Dini otvara file za svaku vrijednost posebno, Yini pise vise vrijednosti odjednom!
Yini sintaksa:
new INI:ini = INI_Open("datoteka.ini");
INI_WriteString(ini, "Ime", "Pacino");
INI_WriteInt(ini, "Poeni", pPoeni);
INI_WriteFloat(ini, "HP", health);
INI_Close(ini);
BRISANJE
Takodjer mozete brisati vrijednosti i unose iz datoteke!
new INI:ini = INI_Open("datoteka.ini");
INI_RemoveEntry(ini, "Ime");
INI_Close(ini);
Ovo ce obrisati “Ime†unos iz datoteke! Brisanja mogu biti kombinirana sa pisanjem!
new INI:ini = INI_Open("datoteka.ini");
INI_WriteString(ini, "Ime", "Pacino");
INI_WriteInt(ini, "Poeni", pPoeni);
INI_RemoveEntry(ini, "Ime");
INI_WriteFloat(ini, "HP", health);
INI_Close(ini); TAGOVI/NASLOVI
Jedna od mogucnosti kojih nema u Dini-u je postavljanje/unosenje naslova u Yini datoteci!
HP = 24.68
pozicija = 1234.2345
HP = 100
pozicija = -1234.2334
Ovo omogucuje spremanje vise stvari u jedan file!
Citanje:
Da biste citali samo vrijednosti pod koristite sintaksu:
INI:filename(name[], value[])
{
INI_Float("HP", health);
if (!strcmp(name, "pozicija") && !sscanf(value, "fff", gX, gY, gZ))
{
return;
}
}
Funkcija:
INI:filename[naslov/tag](name[], value[])
{
}
Pisanje:
Da biste unijeli naslov jednostavno koristite sintaksu:
new INI:ini = INI_Open("datoteka.ini");
INI_SetTag(ini, "SERVER");
INI_WriteString(ini, "Ime", "Pacino");
INI_WriteInt(ini, "Poeni", pPoeni);
INI_Close(ini);
FUNKCIJE:
INI_Int
name[] – Ime INI vrijednosti.
variable – Varijabla koju sprema.
• INI:filename(name[], value[])// Obavezno stavljati name [] i value []
{
INI_Int("Nivo", pNivo);
}
• INI_Float
name[] - Ime INI vrijednosti.
variable - Varijabla koju treba spremiti.
Sprema Float vrijednost.
• INI_Hex
name[] - Ime INI vrijednosti.
variable - Varijabla koju treba spremiti.
Sprema HEX ( heksadecimalnu ) vrijednost – npr. boja u pawnu.
• INI_Bin
name[] - Ime INI vrijednosti.
variable - Varijabla koju treba spremiti.
Sprema broj u formatu 0b1001101 (binarni).
• INI_Bool
name[] - Ime INI vrijednosti.
variable - Varijabla koju treba spremiti.
Sprema vrijednost kao Boolean (true/false).
• INI_String
name[] - Ime INI vrijednosti.
variable - Varijabla koju treba spremiti.
length – Duzina arraya.
Sprema array u postavljenoj duzini!
• INI_Load
filename[] – Datoteka za ucitavanje.
bool:bExtra – Slanje dodatnih informacija (true/false).
extra – Dodatne informacije za poslati.
bLocal – Poziva lokalne funkcije umjesto globalnih.
Ucitava cijelu datoteku! Sve osim imena datoteke je opcijonalno.
• INI_Open
filename[] – INI datoteka za ucitavanje.
Ucitava .ini datoteku za ucitavanje! Returna sa tag tipom: "INI:".
• INI_Close
INI:file – INI datoteka za zatvoriti.
Zatvara trenutno otvorenu datoteku.
• INI_SetTag
INI:file - INI datoteka za izmjene.
tag[] – Ime taga/naslova u datoteci.
Postavlja . Dodatne vrijednosti se pisu ispod ovoga.
• INI_RemoveEntry
INI:file - INI datoteka za izmjene.
name[] – Za ukloniti.
Uklanja unos iz date datoteke.
• INI_WriteString
INI:file - INI datoteka za izmjene.
name[] – Ime unosa.
data[] - Unos.
Pise string u ini datoteku.
• INI_WriteInt
INI:file - INI datoteka za izmjene.
name[] - Ime unosa.
data – Vrijednost unosa.
Pise integer u trenutnu ini datoteku.
• INI_WriteHex
INI:file - INI datoteka za izmjene.
name[] - Ime unosa.
data - Vrijednost unosa.
Pise na ini datoteku hex (heksadecimalnu) vrijednost – npr. boja: (0x1F182).
• INI_WriteBool
INI:file - INI datoteka za izmjene.
name[] - Ime unosa.
data - Boolean vrijednost.
Pise bool vrijednost na datu ini datoteku.
• INI_WriteBin
INI:file - INI datoteka za izmjene.
name[] - Ime unosa.
data – Vrijednost unosa.
Pise na ini datoteku binarnu vrijednost – npr. (0b1001010).
• INI_WriteFloat
INI:file - INI datoteka za izmjene.
name[] – Ime unosta.
Float:data - Float vrijednost.
accuracy – Brojevi poslije , u vrijednosti.
Ostale funkcije kao: INI_ParseFile ; remoteFormat nisu toliko bitne za vas!
LATENCIJE
Usporedbe latencija izmedju Dini-a, SII i Yini-a. Ovo je ucitavanje preko 40000 vrijednosti srednje velicine!
dini: 63810 – Preko 1 minute
yini: 1564 – Preko 1 SEKUNDE
yini kao dini 1: 6009 – Preko 6 sekundi
yini kao dini 2: 91159 – Oko jedan i pol minut
SII: 52807Dini – iako veoma popularan je zapravo 45 puta sporiji od Yini-a.
Konacni rezultati:
yini: 1564
dini: 63810
emu : 27297
SII: 52807Preuzeto sa SA:MP foruma! I da, jesam kopirao sam neke dijelove, ali sam htio da vam pojednostavim neke stvari, posto je to YSI napisao u jeziku “vise matematike “ 😄
Ovo je moj prvi tut, zato bez zamjerki 😛
[
4. Mar. 2011.
INI:myini[](name[], value[])
{
INI_String("a", gA);
INI_String("b", gB);
INI_String("c", gC);
return 0; // returna 0 - obavezno
}
Malo sam gledao,evo jedna zamjerka.. 😛
//return 0,a ne returna... 😛
to je mala sala...xd
svaka cast...dobar tut... 😉
Crime Lord
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
241 / 250 XP
Početnik(0)
868
Postovi:
16
Teme:
Pridružio se:Apr. 2009
4. Mar. 2011.
nije YSI pravio, vec Y_Less, a cijeli library se zove YSI(Y_Less's Script Includes)...
drugo, YINI nije najbrzi sistem pisanja u fileove vec je to fwrite na osnovi kojeg i sam YSI pise u filevove pa je naravno sporiji za otprilike nekih 30-40%, barem sam ja dosao do takvih podataka testirajuci...
drugo, YINI nije najbrzi sistem pisanja u fileove vec je to fwrite na osnovi kojeg i sam YSI pise u filevove pa je naravno sporiji za otprilike nekih 30-40%, barem sam ja dosao do takvih podataka testirajuci...
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
123
Postovi:
8
Teme:
Pridružio se:Feb. 2011
4. Mar. 2011.
Quote
nije YSI pravio, vec Y_Less, a cijeli library se zove YSI(Y_Less's Script Includes)...
drugo, YINI nije najbrzi sistem pisanja u fileove vec je to fwrite na osnovi kojeg i sam YSI pise u filevove pa je naravno sporiji za otprilike nekih 30-40%, barem sam ja dosao do takvih podataka testirajuci...
drugo, YINI nije najbrzi sistem pisanja u fileove vec je to fwrite na osnovi kojeg i sam YSI pise u filevove pa je naravno sporiji za otprilike nekih 30-40%, barem sam ja dosao do takvih podataka testirajuci...
Ama znam, nego ja sam rekao najbrzi sistem koji je kreiran, pod tim se ne podrazumjeva fwrite.
7. Mar. 2011.
Smanji font, izbaci iz center,boje su lose...
6/10 za izgled Tutoriala
7/10 za Tutorial jer si samo preuzeo i preveo
EDIT: Ako se razume neko u Y_Ini, nek mi objasni nesto...
Krenuo sam raditi ownership za aute, ok to mi je stock za spremanje tih vozila
E sad me zanima kako da uradim stock za loadvehicle tj da ucitava vozilo, treba mi objasnjenje kako da napravim da cita iz neke datoteke neki red, naprimer taj model i to sve
6/10 za izgled Tutoriala
7/10 za Tutorial jer si samo preuzeo i preveo
EDIT: Ako se razume neko u Y_Ini, nek mi objasni nesto...
stock SaveVehicle(vehicle, filename)
{
new
iniid,
INI:File;
File = INI_Open(iniid);
INI_WriteInt(iniid, "Model", carData);
INI_Float(iniid, "XSpawn", carData);
INI_Float(iniid, "YSpawn", carData);
INI_Float(iniid, "ZSpawn", carData);
INI_Float(iniid, "AngleSpawn", carData);
INI_WriteInt(iniid, "Color1", carData);
INI_WriteInt(iniid, "Color2", carData);
INI_WriteInt(iniid, "RespawnTime", carData);
INI_WriteString(iniid, "Owner", carData);
INI_Close(iniid);
}Krenuo sam raditi ownership za aute, ok to mi je stock za spremanje tih vozila
E sad me zanima kako da uradim stock za loadvehicle tj da ucitava vozilo, treba mi objasnjenje kako da napravim da cita iz neke datoteke neki red, naprimer taj model i to sve
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,519
Postovi:
30
Teme:
Pridružio se:Jun 2010
7. Mar. 2011.
INI:filename[](vehicle, name[], value[]) // filename zamijeni s nazivom svoje datoteke ( npr. ako ti datoteka zove vehicle.ini, ti napises vehicle umjesto filename )
{
if(!strcmp(name, "Model")) carData = strval(value);
else if(!strcmp(name, "XSpawn")) carData = floatstr(value);
// Model i XSpawn zamjenis s trazenom informacijom
}
stock LoadVehicle(vehicle)
{
INI_Load("filename.ini", true, vehicle); // Tu ide ime datoteke gdje ti se spremaju informacije
return 1;
}
Enforcer
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
235
Postovi:
61
Teme:
Pridružio se:Jan. 2011
10. Mar. 2011.
skinuo sam YSI skup includova, i sad me zanima koji include moram koristiti, sto se tice spremanja acc-ova i toga?? jer vidim da ih ima puno...Hvala
Crime Lord
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
934
Postovi:
102
Teme:
Pridružio se:Jul 2010
10. Mar. 2011.
Quote from March 10, 2011, 8:43 pm:
skinuo sam YSI skup includova, i sad me zanima koji include moram koristiti, sto se tice spremanja acc-ova i toga?? jer vidim da ih ima puno...Hvala
Sve zajedno stavis u pawno --> scriptfiles --> stavis taj folder, ucitas gm i dodas #include , i dalje pravis sta hoces 😄
PS. Svi su medjusobno povezani zato moras staviti folder 😄
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava