Witam ostatnio troszk? bawi? si? nad systemem dom?w. Ucz? si? gernelanie jak to zrobi?.
Mam taki kod na stworzenie domu
I teraz do was pytanie jak zrobi? potem wczytanie tego domu ? Czy ka?dy dom stworzony musi by? zapisany oddzielnie tak jak ja zrobi?em dom1 , dom2 ipt.
czy wszystko da rad? w jednym pliku ?
Bo tak jak ja zrobi?em to potem b?dzie problem z wczytaniem wszystkich dom?w
Za pomoc piwa + respekt , chodzi mi o to ?eby kto? mi wyja?ni? , naprowadzi? mnie jak to zrobi?
Da rad? w jednym pliku, ale nie widz? sensu. Dlaczego mia?by by? problem z wczytaniem wszystkich dom?w? Nie widz? r??nicy. Je?li koniecznie chcesz w jednym pliku, to musisz umie?ci? id domu w ka?dej informacji (pozycja x, y, z itp.)
I tak za ka?dym razem to formatowa?. Te? masz dziwny spos?b przechowywania uID domu - nie potrzeba do tego enuma, wystarczy zwyk?a prosta zmienna globalna.
Najlepszym sposobem na tworzenie systemu jest enumerator, gwarantuje porz?dek danych. Przy tworzeniu jakiegokolwiek systemu najpierw trzeba zadba? o struktur? danych. W og?le jestem zwolennikiem zapisu poprzez baz? danych, ale skoro naprawd? musisz u?ywa? plik?w...
Tw?j enum zosta? zrobiony w z?y spos?b - obejmuje tylko jeden dom. Czy ty naprawd? chcesz ka?demu domowi robi? dom2, dom3, dom4? Nie lepiej tablic? wielowymiarow? (dok?adniej 2)?
Ale podstaw? jest struktura. Ka?dy system drzwi potrzebuje takich warto?ci:
- pozycja x, y, z, interior, virtual world miejsca wchodzenia
- i to samo dla miejsca wychodzenia
- a tak?e: cena drzwi, w?a?ciciel, typ w?a?ciciela / og?lny typ budynku gdy chcesz mie? system biznes?w od razu (dobre do podpinania pod system frakcji), oraz stan, czy dom jest zamkni?ty, czy otwarty. No i opis domu.
Wobec tego tworzymy tablic? asocjacyjn? enumeratorem.
I teraz tablica wielowymiarowa:
new iInfo[1024][Twojanazwa];
Indeks tablicy, czyli tu liczba 1024 (maks. ilo?? dom?w, polecam sobie jednak definicj? zrobi?, przyda si? do p?tel) b?dzie jednocze?nie UID domu. Je?li chodzi o zapis i wczyt, to ja od trzech lat nie robi?em niczego na plikach, tylko na bazie, bo jest to dla mnie kompletnie przestarza?e (aczkolwiek czasem i szybsze od bazy danych, zale?y od pingu i czy jest na localho?cie, zapytania asynchroniczne itede, itepe). Skoro NAPRAWD? musisz korzysta? z plik?w (a przerzucenie si? na mysql nie boli, a jest to du?o prostsza metoda zapisu), to zapisuj ka?dy dom w jednej linijce i wszystko w jednym pliku.
Teraz tworz?c dom po prostu wprowadzaj te warto?ci do tablicy a jednocze?nie zapisuj w plikach. Potem pozostanie Ci wczytywanie p?telk? while, gdzie jej zmienna b?dzie UID domu a jednocze?nie indeksem. Nast?pnie pozostanie Ci tylko napisa? komendy wej?cia / wyj?cia (prosta p?tla for, je?li gracz w pobli?u to brejk, zmie? pozycj?, vw i interior i return) i do obs?ugi / kupna domu.
W pe?ni dynamiczny system dom?w gotowy, ale polecam pisa? od razu w jednej tablicy wraz z biznesami i budynkami publicznymi. Taki system og?lnie jest do napisania w 15 minut.
Czyli tak jak m?wi? - zmie? w og?le alokacj? pami?ci na dwuwymiarow? asocjacyjn? tabliczk? i skoro nie rozumiesz zapisu do plik?w, to nie pr?buj go zrozumie?, tylko bierz si? za majesjuela. Jak co?, to pisz w tym temacie, pomog?.
No okey domki mam ogarni?t? ale mam problem z interiorami jak je robi? ? Id interioru da? do pliku z domem ? Czy oddzielny folder Interiory i tam jako? to robi?. Nie mam poj?cia ;/
Interiory z funkcji SetPlayerInterior. Do pliku z domem jak najbardziej. Podstawowe wn?trza GTA s? ju? w grze, tylko w?a?nie w innych interiorach (co? podobnego do virtual worlda, z tym, ?e bez widocznych obiekt?w i efekt?w pogody).
aha czyli daje interiory do pliku z domem i na wej?ciu SetPlayerInterior(playerid, dom[id][interior]); SetPlayerPos(playerid, dom[id][intx], dom[id][inty], dom[id][intz]); tak ?
[ Dodano: 2014-11-19, 18:01 ]
Temat do zamkni?cia ;] System ju? napisa?em dzi?ki za pomoc
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach