Search the Community
Showing results for tags 'file'.
-
pomoc Poraďte mi prosím jak načíst z .txt souboru pickupy do proměnný
Dominik Rozporka posted a question in Herní (SA:MP, CS apod.)
Čau poraďte mi prosím jak načíst z domy.txt souboru pickupy do proměnný soubor domy.txt má 350 řádků představuju si to v tý proměnný tak že by to bylo v poli prostě že: new domy[350] a já nevim jak si to ulehčit než psát furt tohle: domy[0]=CreatePickup(1273, 1, 2056.461669, 2665.161621, 10.820312, -1); domy[1]=CreatePickup(1273, 1, 2036.993774, 2664.174316, 10.820312, -1); a tak dále........... proto to chci ze souboru načíst každý samotný příkaz do polí. dole je ten soubor domy.txt jo a hlavně aby se ty pickupy zoobrazili ve hře jak to mám teda udělat? domy.txt -
Toto je len ukážka použitia môjho includu na prácu so súbormi. Ak ho ešte nemáš, sťahuj tu. *Sťahuj tú verziu, ktorá má 7.3 KB! Preskočím tú časť, kde vysvetlujem, že môj includ je určený na používanie ini súborov. Všetko sa dá nájsť v linku na jeho stiahnutie. Zoznam funkcií v include je tu: Asi treba bližšie vysvetliť zapisovacie funkcie, pretože ten posledný argument je netradičný (na urýchlenie skriptu). Ukážem použitie pri zapisovaní a čítaní nejakého desatinného čísla. //Posledný argument určuje, že či už bol predtým tento údaj zapísaný VytvoritSubor("TEST.TXT"); ZapisatFloat("TEST.TXT","G",float:9.80665,false); // Posledný argument je false, pretože predtým tam daný riadok ("G") nebol printf("Gravitačná konštanta je rovná '%f'.",PrecitatFloat("TEST.TXT","G")); ZapisatFloat("TEST.TXT","G",float:1.56789,true); // Už existuje riadok "G", takže použijem posledný argument true printf("Gravitačná konštanta sa určite nerovná '%f'.",PrecitatFloat("TEST.TXT","G")); Tak a teraz keď som vysvetlil daný argument, môžem urobiť rovno registračný systém, na tom ukážem ostatné funkcie. #include <a_samp> #include <Súbory> #include <zcmd> new bool:Prihlaseny[MAX_PLAYERS]; public OnPlayerConnect(playerid) { SendClientMessage(playerid,0xFF0000FF,"Použi /prihlasit heslo"); Prihlaseny[playerid] = false; } public OnPlayerDisconnect(playerid) { if(Prihlaseny[playerid] == true) { ZapisatFloat(SuborHraca(playerid),"HP",float:GetPlayerHealth(playerid),true); ZapisatInt(SuborHraca(playerid),"Cash",GetPlayerMoney(playerid),true); } } public OnPlayerSpawn(playerid) { if (!Prihlaseny[playerid]) { Kick(playerid); } } command(prihlasit,playerid,params[]) { if(!isnull(params)) { if (ExistujeSubor(SuborHraca(playerid))) { if (!strcmp(params,PrecitatString(SuborHraca(playerid),"Heslo"))) { Prihlaseny[playerid] = true; SpawnPlayer(playerid); //PlayerClassy dúfam máš SetPlayerHealth(playerid,PrecitatFloat(SuborHraca(playerid),"HP")); GivePlayerMoney(playerid,PrecitatInt(SuborHraca(playerid),"Cash")); } else return SendClientMessage(playerid,0xFF0000FF,"Zlé heslo."); } else return SendClientMessage(playerid,0xFF0000FF,"Musíš sa najprv /registrovat"); } return SendClientMessage(playerid,0xFF0000FF,"Musíš použiť /prihlasit heslo"); } command(registrovat,playerid,params[]) { if (!ExistujeSubor(SuborHraca(playerid)) && !isnull(params)) { VytvoritSubor(SuborHraca(playerid)); ZapisatString(SuborHraca(playerid),"Heslo",params,false); ZapisatFloat(SuborHraca(playerid),"HP",float:100.0,false); ZapisatInt(SuborHraca(playerid),"Cash",10,false); return SendClientMessage(playerid,0xFFFFFFFF,"Použi /prihlasit heslo"); } return SendClientMessage(playerid,0xFF0000FF,"/prihlasit heslo"); } SuborHraca(playerid) { new Meno[MAX_PLAYER_NAME]; new string[sizeof(Meno)+6]; GetPlayerName(playerid,Meno,MAX_PLAYER_NAME); format(string,sizeof(string),"%s.ini",Meno); return string; } Ten systém nie je bohviečo, no na získanie nápadu to stačí... Takisto je to netestované, keďže nemám GTA .