Jump to content

Search the Community

Showing results for tags 'housesystem'.

  • Search By Tags

    Oddělujte čárkami
  • Search By Author

Content Type


Fórum

  • Obecné
    • Všeobecné
    • Všechno možné
  • Programování
    • Poradna
    • Návody
    • Tvorba
    • Hledám programátora
  • Herní oblast
    • Poradna
    • Jak na to?
    • Herní kontext
    • Herní zážitky
    • Komunita
  • Grafika
    • Poradna
    • Návody
    • Tvorba
  • Ostatní
    • Hardware a software
    • Hledám/nabízím
    • Archiv
    • 3D Tisk

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Web


Facebook


Jabber


Skype


Steam


Twitter


Github


Pastebin

Found 3 results

  1. AkelGP

    hledám HouseSystem

    Čus, potřeboval bych na svůj server HS s garáží.. Nikde jsem nic nenašel hledal jsem všude ale furt nic.. Hoďte mi do komentářů prosím nějaké odkazy.. Nejlepši by bylo kdyby to bylo pouze .amx bez žádných pluginů, může to být i s .pwn . Děkuji předem. PS.: Ještě bych poprosil k tomu návod Čau. ------------- AkelGP
  2. MULTISAVE V JEDNOM SOUBORU ***** Na tenhle návod mě přivedl Ewwe s jeho problémem ohledně ukládání domů a vozidel... Kdo neví o co jde, tak Ewwe se snažil ukládat ve 2 souborech domy a vozidla. Akorát problém nastal v tom, že se načítaly domy ale nikoliv vozidla. Existuje takový trik jak se vyhnout tomuhle celému složitému ukládání... stačí pak načítat jediný soubor bez nutnosti formátovat cestu, a to za pomocí iterate a tagů v y_ini. Jelikož tag je v souborech nic více než jen poznámka, jde toho šikovně využití a nemusíme se bát, že se nám budou blbě načítat údaje, když jich tam budeme mít moc(jak mi někdo tvrdil, že se mu to děje). A naštěstí i poznámka lze zjistit, takže jak jsem říkal, jde to velice široce využít. Ukážeme si, jak vytvořit ukládání do takové formy: A furt je to v jednom souboru. Nemusíme načítat extra hodnoty, nemusíme nějak složitě zjišťovat cestu, stačí jenom povolit načítání tagů a to je vše. Začneme deklarováním proměnných. Budeme je potřebovat, abychom věděli, do čeho načtené údaje dát: #include <YSI_Data\y_iterate> #include <YSI_Storage\y_ini> enum eHouseInfo { HouseName[MAX_HOUSE_NAME + 1], HouseName[MAX_PLAYER_NAME + 1], bool: HouseLock, HouseVeh0, HouseVeh1, HouseVeh2, Float: HouseXPos, Float: HouseYPos, Float: HouseZPos } new HouseInfo[MAX_HOUSES][eHouseInfo]; A následně i iterátor, do kterého budeme přidávat id domů, které se budou načítat: new Iterator: House<MAX_HOUSES>; Teď, nejlepší na přidávání domů je si udělat fci. Vyhnu se detailům jako textlabel, některé podmínky... To si tam může pak přidat každý individuálně: stock AddHouse(const sHouseName[MAX_HOUSE_NAME+1], const sHouseOwner[], Float:fhX, Float:fhY, Float:fhZ, bool:bLock, ...) { Jelikož používáme iterate, nemusíme zjišťovat počet vytvořených domů... můžeme to jednoduše rovnou přes to zjistit, a to počtem přiřazených hodnot: if (Iter_Count(House) == MAX_HOUSES) A tady přichází ta novinka. Nemusíme přidávat nějaké housecount, nemusíme zjišťovat jestli je volno... můžeme na to využít fci, která nám zjistí nejbližší volné "id domu". new House_ID = Iter_Free(House); A nyni stačí jen přiřadit hodnoty(nesmíme samozřejmě zapomenout přiřadit do iterátoru i samotné id) HouseInfo[House_ID][HouseName] = sHouseName; HouseInfo[House_ID][HouseName] = sHouseOwner; HouseInfo[House_ID][HouseLock] = bLock; HouseInfo[House_ID][HouseXPos] = fhX; HouseInfo[House_ID][HouseYPos] = fhY; HouseInfo[House_ID][HouseZPos] = fhZ; new INI: Soubor = INI_Open("Houses.txt"); INI_SetTag(Soubor, sprintf("House%i", House_ID)); INI_WriteString(Soubor, "HouseName", HouseInfo[House_ID][HouseName]); INI_WriteString(Soubor, "HouseOwner", HouseInfo[House_ID][HouseName]); INI_WriteBool(Soubor, "HouseX", HouseInfo[House_ID][HouseLock]); INI_WriteFloat(Soubor, "HouseX", HouseInfo[House_ID][HouseXPos]); INI_WriteFloat(Soubor, "HouseY", HouseInfo[House_ID][HouseYPos]); INI_WriteFloat(Soubor, "HouseZ", HouseInfo[House_ID][HouseZPos]); INI_Close(Soubor); Iter_Add(House, House_ID); return (true); } Takže ano, prakticky normální ukládání. A teď k načítání... to bude to zajímavější. Protože pracujeme s tagem a v tagu je jen slovo House a číslo, tak právě z toho musíme vytáhnout čistě jenom to číslo. Což pro zběhlejší to není takový problém, ale i pro ty další vám ukážu jak na to. Nejdříve si extrahujeme do stringu sString jen to dané číslo: forward NahratData(tag[], name[], value[]); /* Všimněte si argumentu tag[] */ public NahratData(tag[], name[], value[]) { new sString[14]; strmid(sString, tag, 5, strlen(tag)); Nadále to číslo konvertujeme jako číslo: new House_ID = strval(sString); To je všechno... a už jenom načteme: INI_String("HouseName", HouseInfo[House_ID][HouseName]); INI_String("HouseOwner", HouseInfo[House_ID][HouseName]); INI_Bool("HouseX", HouseInfo[House_ID][HouseLock]); INI_Float("HouseX", HouseInfo[House_ID][HouseXPos]); INI_Float("HouseY", HouseInfo[House_ID][HouseYPos]); Iter_Add(House, House_ID); /* UPOZORNĚNÍ! Fce nesmí být na konci. jelikož jeho spec. návratová hodnota může ukončit celé načítání! */ INI_Float("HouseZ", HouseInfo[House_ID][HouseZPos]); return (false); } A nakonec ten samotný soubor načteme. Jak jsem již říkal: cestu nějak nemusíme formátovat, a nepotřebujeme extra hodnoty, stačí jenom načíst, a povolit načítání tagů: public OnGameModeInit() { INI_ParseFile("Houses.txt", "NahratData", .bPassTag = true); return (true); } Doporučuji pak vyčistit po ukončení scriptu(gamemodu) iterátor: Iter_Clear(House); A aby to nebylo málo, tak za pomocí iterátorů můžeme i zjistit, zda to dané id u kterého stojí hráč patří k domům: if (Iter_Contain(House, House_ID)) return (true); ODKAZY Doporučuji používat sprintf. Velice užitečná věcička: http://forum.sa-mp.com/showpost 612 Kdyby někdo nepochopil, jak se s tím pracuje... tak jsem tuhle vychytávku používal hodně často, například u přidávání adminů do /admins pastebin.com/qZV5evSz PODĚKOVÁNÍ xhunterx za radu s tímto trikem.
  3. v pawnu som zacatecnik a potrebujem prevest Easy QWER House System z pwn do amx ale nejde mi tio protoze to hlasi C:\Users\ACER\Downloads\HouseSystem.pwn(21) : fatal error 100: cannot read from file: "DOF2.pwn"
×
×
  • Create New...