Právě je čtv 24. kvě 2012 1:07:04
Hosting WEDOS.cz
SLEVA 25% (slevový kód:PAWNO25)

Nejnovější témata:
[otázka] Kde spraviť mod ? od D4n09
[Ms 2012] NHL 2009 Remake od SweS
[HELP] stock & undefined symbol od WilliamKrizak
asus k8v-x od 7.Host
[HELP] Pickupy ! od AvestX

Vyzkoušejte antivirus ESET Smart Security 5

Vyhledat témata bez odpovědí | Zobrazit aktivní témata Zobrazit nové příspěvky | Zobrazit vaše příspěvky


Všechny časy jsou v UTC + 1 hodina [ Letní čas ]





Odeslat nové téma Odpovědět na téma  [ Příspěvků: 15 ] 
Autor Zpráva
PříspěvekNapsal: úte 08. bře 2011 20:01:29 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4559
Bydliště: Blava ne ?

Čaute, takže začnem. Určite všetci poznáte dini, dini vytvoril dracoblue, lepší pawnery hovoria že je to moc záťažový script pretože má veľa cyklov atď.
Existuje jednoduchší spôsob ako fwrite a užitočnejší. Volá sa y_ini. Vytvoril ho Y_less ktorý je jeden z najlepších pawnerov vôbec, ale je pravdepodobne aj tým, že jeho otec je programátor. Takže začneme ?

y_ini vs dini (aka y_ini v číslach)

Podrobil som dini a y_ini sériami testou, aby som zistil čo je rýchlejšie, optimalizovanejšie
.
Vytváranie súborov:
- Dal som dini vytvoriť 10 000 súborov a do každého zapísať 2x string, 2x číslo, 2x float, 2x bool. (to isté aj s y_ini). Časy vyšli:
dini = 133128 ms ! či je 133 sekúnd (taký čas trvalo vytvoriť 10 000 súborov a zapísať tam to čo som vyššie napísal)
y_ini = 17290 (neuveriteľné, 17 sekúnd trvalo vytvoriť 10 000 súborov !)

Zapisovanie:
- Dal som dini & y_ini zapísať 10 000x 1x string, 1x float, 1x číslo. y_ini to niečo trvalo (predsa iba 30 000 zápisov...) a dini prišlo po štvrťku a spadol server :D tak som dal cyklus iba na 1 000 ! (predsa 3 000 zápisov...) a aj tak spadlo u dini a tak som dal 100 !
dini = 1800 (kebyže hovoríme o tých 10 000 tak dáme 1800*100 čiže by to trvalo 180 000)
y_ini = 734 ( 734*100 = 73 400)
pozor všetko je v MS čiže ak chcete sekundy delte 1000 !


Zapisovanie


Podobne ako pri obyčajnom fwrite, musíme najprv súbor otvoriť,
Kód:
new INI:file = INI_Open("mojsubor.txt"); // nemusíte kontrolovať či existuje, ak neexistuje vytvorí ho automaticky a potom iba zapisujeme
zapisujeme čísla
INI_WriteInt(file, "Cislo", 587545);
INI_WriteInt(file, "HodnotaPremey", premena);
zapisujeme stringy
new string[30] = "chod spat";
INI_WriteString(file, "Name", "QWER");
INI_WriteString(file, "Name", string);
floaty
new Float:ftest = 45;
INI_WriteFloat(file, "Health", float( random(100)) );
INI_WriteFloat(file, "Armour", ftest);
booly
new bool:admin = true, bool:vip = false;
INI_WriteBool(file, "Admin", admin);
INI_WriteBool(file, "VIP", vip);
hex kódy
INI_WriteHex(file,"Color",GetPlayerColor(playerid)); // teda ak je v hex kóde... niesom si istý
binárny formát (sám nwm, ale videl som niečo také http://en.wikipedia.org/wiki/Binary_numeral_system)
INI_WriteBin
a nakoniec, ako pri fwrite, zavreme súbor

INI_Close(file);

Jednoduché že ?



Mazanie

Prečo keď hráč nemá dom tam musí mať House=0 ? Načo ? S y_ini môžete mazať riadky ako chcete ;) uvediem príklad

Kód:
v OnPlayerDisConnected Máme
new Float:armour;
GetPlayerArmour(playerid,armour);

new INI:file = INI_Open(Jmeno(playerid));
INI_WriteFloat(file, "Armour", armour);
a čo keď nemá vestu ? bude tam mať
Armour = 0
NIE !
if(armour == 0) INI_RemoveEntry(file, "Armour");
INI_Close(file);

Jednoduché nie ?


Čítanie

Toto je potrebnejšie ako mazanie, pretože načo zapisovať keď nevieme sa prečítať zapísané ?
U INI je to trošku zložitejšie (čítanie) ale keď sa to naučíte, zistíte ako to je jednoduché :D
vytvoríme si "public/stock" (INI: ) na prečítanie premenných zo súboru a to takto
INI:nazov[](name[],value[]){
...

return 0;
}
Toto je presne to očom hovorím, ono to vlastne vytvorí "stock" a po použití INI_Load(); to jednoducho prečíta
Názov npr. cofig alebo niečo podobné, ak chceme ukladať do "zlozka/subor" tak potom jednoducho INI:subor(..) a potom INI_Load("zlozka/subor.ini");
Tag(y) - vysvetlím v správny čas (nižšie :D)
parametre, môžete tam dať aj playerid ;) atď... všetko po poriadku ukážem

npr. budeme počítať počet pripojený na server
Kód:
new Pripojenych;

INI:connect[](name[],value[]){
INI_Int("Connect",Pripojenych);
return 0;
}

public OnPlayerConnected(playerid)
Pripojenych++;
}
OnGameModeExit(){
new INI:Subor = INI_Open("connect.txt");
INI_WriteInt(Subor,"Connect",Pripojenych);
INI_Close(Subor);
}
a potom OnGameModeInit
INI_Load("connect.txt");
printf("Server navštívilo %d hráčov",Pripojenych);

Zložité ? ale nie !
Teraz ide to zložitejšie, ale s mojou pomocou to určite zvládnete. Nebiť [b]Boban-ovmu
by mi to trvalo dlhšie, pochopiť to (ps. díky za preklad boban ;)). a
funkcia INI_Load je skrátená funkcia INI_PraseFile
Kód:
INI_PraseFile(filename[],tag[],bool:order,bool:data,playerid,bool:local,bool:PassTag);

filename = názov súboru npr. "config.txt"
tag = názov tagu npr. "ANTI-CHEAT"
order = vymeniť filename s tagom (opačné poradie :D že je tag prvý a filename druhý )
data = či má načítať aj ostatné data alebo iba tie v tom tágu
playerid = hráč, ktorému sa majú načíať data
local = wiki.sa-mp.com/wiki/CallLocalFunction a wiki.sa-mp.com/wiki/CallRemoteFunction
PassTag = či má odovzdať aj iné data

Ako načítať hráčove data ?
je viac možností, rovno všetko, alebo po TAG-och, čiže keď mu chcete načítať iba HOUSE tak mu načítate iba to ;). Super je v tom že ak máte externé hráčske účty tak pomocou y_ini & tag-ov môžete mať iba jeden hráčov súbor ("scriptfiles/nick.txt" a nie "scriptfiles/nick.txt , scriptfiles/houses/owners/nick.txt"). Takže začnime
ako prvé si vytvoríme ten náš "stock" (pre zmenu použijeme obyčajný forward)
Kód:
forward Houses(playerid,name[],value[]);

public Houses(playerid,name[],value[]){
if(!strcmp(name,"Money")) HouseMney[playerid] = strval(value); //strcmp sme použili pre kontrolu, či riadok existuje (ak neexistuje a načítate, spadne server) ale ak nepoužívate mazanie riadkov, strcmp použiť nemusíte
if(!strcmp(name,"Najomnik")) format(HouseOwner2[playerid],50,"%s",value);
...
}

a potom do loginu

new s[70];
format(s,70,"RW/%s.txt",PlayerName(playerid));
INI_PraseFile(s,"Houses",false,false,playerid);
s = cesta k súboru
Houses = Tag, ktorý sme si v hráčovom súbore vytvorili
false = nechceme vymeniť s & houses
false = nechceme načítať všetko v súbore
playerid = hráč, ktorému sa to má načítať





Tagy

Už som to tu pár krát spomenul, ale čo to je ?
Vďaka tagom môžete mať takéto hráčske súbory

Kód:

[Global]

Money = 5000
Skin = 249
X = ...
...

[Houses]

HouseId = 7
HouseMoney = 50000
HouseDrugs = 5

[Bank]

CardId = 564864
PIN = 6666
BankMoney = 5444444
...

skrátka TAG vám spraví váš text o "[ ]", a pomocou neho je to krajšie, a môžete to využiť. Napríklad môžete načítať iba TAG Bank (a jeho pridané hodnoty, v mojom prípade ide o CardId, PIN a BankMoney)

Ako vytvoriť tag ?
Je to jednoduché,

Kód:
new INI:subor = INI_Open("Config.txt");
INI_SetTag(subor, "AntiCheat");// vytvoríme TAG
INI_WriteInt(subor, "AntiSpam", 1);
INI_Close(subor);


a ako načítať TAG ?

Kód:
new AntiSpam
INI:config[Anticheat](name[], value[])
{
    INI_Int("AntiSpam", Antispam);// prečítame hodnotu
    return 0;
}
a potom iba
INI_Load("config.ini",false); //false = iba tag, nie cely súbor


[blink]DOWNLOAD[/blink]
http://www.y-less.com/YSI/YSI_1.0.zip
dajte do do pawno/icnludes
čiže budete mať
pawno/includes/YSI

To je všetko
Ďakujem za prečítanie, čoskoro urobím návod aj na registráciu cez y_ini
s pozdravom
QWER

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty.
"Pravda je ze ja jsem zacal delat pawn od 0.3a, ale ja jsem se neucil pawn podle wiki ale sam... " by Ceeker


Offline
 Profil  
PříspěvekNapsal: úte 08. bře 2011 20:04:51 
Moderátor
Moderátor
Uživatelský avatar
Registrován: čtv 11. čer 2009 12:47:03
Příspěvky: 2228

Nebliká ti to :P :D

Tohle už jsem 1x četl, takže už to ani nemusím číst znovu a stačí když k tomu řeknu asi takto: "Game over dini, y_ini is coming" :D
Pěkný tut

_________________
Obrázek


Offline
 Profil  
PříspěvekNapsal: úte 08. bře 2011 20:07:58 
Kendall Johnson "Kendl"
Kendall Johnson "Kendl"
Uživatelský avatar
Registrován: ned 28. zář 2008 13:02:11
Příspěvky: 2745
Bydliště: Dreadlands

Ani som nevedel že niečo také existuje :), dík za ukázanie niečoho nového, potom sa tomu pozriem bližšie na zúbok keď sa mi bude chcieť 10/10

P.S.: že si to urobil preto lebo som da ltut na dini...či? :D


Offline
 Profil  
PříspěvekNapsal: úte 08. bře 2011 20:09:55 

Hezký TUT 10/10.

Odteďka jedině y_ini :)


  
PříspěvekNapsal: úte 08. bře 2011 20:19:16 
Nováček
Nováček
Uživatelský avatar
Registrován: stř 03. úno 2010 16:29:29
Příspěvky: 29

pekne pekne, vyskusam to ci to zvladnem :) 10/10 veru x)

_________________
Admin a Developer projektu GTA-City, mód TruckWorld


Offline
 Profil  
PříspěvekNapsal: úte 08. bře 2011 20:22:44 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4559
Bydliště: Blava ne ?

y_ini je náročnejšie na pochopenie, ale potom to ide dobre ;)

Mattsy píše:
P.S.: že si to urobil preto lebo som da ltut na dini...či?

nie :D


existuje viac ini systémov ako len dini a y_ini existuje sii, dfile, Fini, DJson (dini v3), rFile (rýchlejšie ako y_ini, ale málo funkcii, a je to niečo ako dudb... (hráčove účty))

urobím asi registráciu... a dám sem tut/fs

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty.
"Pravda je ze ja jsem zacal delat pawn od 0.3a, ale ja jsem se neucil pawn podle wiki ale sam... " by Ceeker


Offline
 Profil  
PříspěvekNapsal: úte 08. bře 2011 20:24:57 
Kendall Johnson "Kendl"
Kendall Johnson "Kendl"
Uživatelský avatar
Registrován: ned 28. zář 2008 13:02:11
Příspěvky: 2745
Bydliště: Dreadlands

radšej FS, s toho viac pochopím ako z tutu :D


Offline
 Profil  
PříspěvekNapsal: úte 08. bře 2011 20:26:24 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4559
Bydliště: Blava ne ?

dokonca aj dFile je rýchlejšie ako y_ini ale zas treba použiť plugin :( a to vačšina sk/cz hostingov nedovoluje...

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty.
"Pravda je ze ja jsem zacal delat pawn od 0.3a, ale ja jsem se neucil pawn podle wiki ale sam... " by Ceeker


Offline
 Profil  
PříspěvekNapsal: úte 08. bře 2011 20:28:34 
Kendall Johnson "Kendl"
Kendall Johnson "Kendl"
Uživatelský avatar
Registrován: ned 28. zář 2008 13:02:11
Příspěvky: 2745
Bydliště: Dreadlands

Vytvoríme si vlastný systém a máme vyhraté "lol"

Veď toto ma štve aj na crazyhoste, že nemá pluginy :problem:


Offline
 Profil  
PříspěvekNapsal: úte 08. bře 2011 21:08:57 
Frank Tempenny
Frank Tempenny
Registrován: sob 10. led 2009 22:02:03
Příspěvky: 1615

nejlepsi je pouzivat zaklad tedy to na cem jsou vsechny tyhle includy pro zapisovani a cteni staveny
fopen fwrite fopen fclose
sice je to o neco slozitejsi ale za tu usporu to stoji protoze je to tak velka uspora ze je fakt lepsi si s tim tu praci dat.
includy sice praci ulehci ale tu praci za vas dela cpu ale to neustale zato takhle si to jednorazove promyslite a cpu se pak flaka :D

_________________
Poděkujte :
Daffymu za ukradení a zveřejnění rze6, rze7, rze7.3, rze7.4
Luk_assovi za cracknuti rze7.3 rze7.4 rze8
Crispemu za to že to luk_assovi zaplatil. A zveřejnil cracklou rze8
cz_dominik007 za to že zveřejnil craknutou rze7.3 rze7.4
Získání rze8 zatím neni úplně jasné bylo to z přestupu z cpor.eu na (stary) xel.cz

play.superparba.eu:7777
http://www.superparba.eu


Offline
 Profil  
PříspěvekNapsal: úte 08. bře 2011 21:25:04 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4559
Bydliště: Blava ne ?

aj ja ťa mám rád :D
ja som vedel že niekto niečo takéto trepne ;) ja viem ale toto je už na takej minimálnej hranici, že to skoro ani nieje rozdiel... (pre CPU)

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty.
"Pravda je ze ja jsem zacal delat pawn od 0.3a, ale ja jsem se neucil pawn podle wiki ale sam... " by Ceeker


Offline
 Profil  
PříspěvekNapsal: úte 08. bře 2011 21:46:15 
T - Bone Mendez
T - Bone Mendez
Uživatelský avatar
Registrován: sob 06. bře 2010 21:02:02
Příspěvky: 87
Bydliště: Porad klicky ne

Citace:
dajte do do pawno/icnludes
čiže budete mať
pawno/includes/YSI

Mam otazku ke mam v pawno/include uz zlozku YSI keru pouzivam na streamer ysi a hento sa vola tak isto co mam delat mam vsetky subory z toho vlozit do tej zlozky alebo zrusit ysi streamer ?

_________________
"study" Cim viac sa do toho kukam tym menej tomu chapem :D :D,ked si myslím že už chápem tak zistím,že nechápem ešte viac ako predtým

Život je pes :( ...ale pes je naj priatel človeka...škoda že sa to neda povedat aj o zivote :(:(...


Offline
 Profil  
PříspěvekNapsal: úte 08. bře 2011 21:48:25 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4559
Bydliště: Blava ne ?

YSI nieje len 1 inc... je to takzvaný YSI balík ktorý obsahuje asi 50 inc... prekopíruj to tam... ono to obsahuje aj y_objects

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty.
"Pravda je ze ja jsem zacal delat pawn od 0.3a, ale ja jsem se neucil pawn podle wiki ale sam... " by Ceeker


Offline
 Profil  
PříspěvekNapsal: stř 09. bře 2011 19:52:09 
T - Bone Mendez
T - Bone Mendez
Uživatelský avatar
Registrován: sob 06. bře 2010 21:02:02
Příspěvky: 87
Bydliště: Porad klicky ne

Sorry ze zas otravujem stym ale mam v tej zlozke co som stahol zlozky gamemodes a pawno mam obe dat do zlodky YSI v include alebo len obsah toho pricinka pawno ?

_________________
"study" Cim viac sa do toho kukam tym menej tomu chapem :D :D,ked si myslím že už chápem tak zistím,že nechápem ešte viac ako predtým

Život je pes :( ...ale pes je naj priatel človeka...škoda že sa to neda povedat aj o zivote :(:(...


Offline
 Profil  
PříspěvekNapsal: stř 09. bře 2011 20:02:35 
Carl Johnson "CJ"
Carl Johnson "CJ"
Uživatelský avatar
Registrován: čtv 29. led 2009 20:03:51
Příspěvky: 4559
Bydliště: Blava ne ?

iba tam skopíruj priečinok YSI do priečinku pawno...

_________________
Moja tvorba http://pastebin.com/u/PatchwerkQWER
Ak chceš byť lepší ako ja, a budeš sa snažiť budeš lepší ! Už len pri pomyslení na to, že si lepší než ja, ťa posunie dopredu. Ale nezabudni ! Musíš sa snažiť. A potom zistíš to, čo vie pár ľudí - že som lama a moje scripty sú nič oproti tomu, čo môžeš vytvoriť ty.
"Pravda je ze ja jsem zacal delat pawn od 0.3a, ale ja jsem se neucil pawn podle wiki ale sam... " by Ceeker


Offline
 Profil  
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 15 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


 Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na: