Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2014-11-17, 14:00


kazami

Pawner/PTG






Wiek: 27
Na forum: 4596 dni
Posty: 405
Nick w MP: adi888

Piwa: 43

Respekt: 76,3

Ostrzeżeń: 80%
Witam ostatnio troszk? bawi? si? nad systemem dom?w. Ucz? si? gernelanie jak to zrobi?.

Mam taki kod na stworzenie domu

Pawn

dom[iddomu] += 1;
                new Float:pos[3];
                GetPlayerPos(playeridpos[0], pos[1], pos[2]);
                CreateDynamicPickup(12731pos[0], pos[1], pos[2], 0);
                new file[200];
                format(file,sizeof(file),"/Domy/Dom%i.ini",dom[iddomu]);
                DOF2_CreateFile(file);
                DOF2_SetFloat(file"wejsciex"pos[0]);
                DOF2_SetFloat(file"wejsciey"pos[1]);
                DOF2_SetFloat(file"wejsciez"pos[2]);
                DOF2_SaveFile();
                new string[200];
                format(string,sizeof(string),"{00FF00}PTG: {A0A0A0}Stworzono Dom, id: {FFFF00}%i, {A0A0A0}cena: {00FF00}%i$",dom[iddomu],strval(inputtext));
                SendClientMessage(playeridCzerwonystring);
                new string2[200];
                format(string2sizeof(string2), "DOM\nCena: %i$\nID: %i\nUzyj: /dom aby kupic",strval(inputtext), dom[iddomu]);
                CreateDynamic3DTextLabel(string2Niebieskipos[0], pos[1], pos[2], 30.0);
                dom[domcena] = strval(inputtext);
                CreateDynamicMapIcon(pos[0], pos[1], pos[2], 31, -1, -1, -1, -1);


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? :)

Wszystko jest robione w DOF2.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-11-17, 16:53


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
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.)

Kod:

new s[24];
format(s, 24, "wejsciex_%d", id_domu);
DOF2_SetFloat(file, s, pos[0]);


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.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-11-17, 18:44


Dero

www.polishRPG.pl






Wiek: 31
Na forum: 4539 dni
Posty: 11
Nick w MP: Richard Schroetter

Piwa: 12

Respekt: 74

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.

enum Twojanazwa{
Float:in_x;
Float:in_y;
Float:in_z;
Float:out_x;
[...]
owner,
locked,
desc[64]
}

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.

UID|in_x|in_y[...]
UID|in_x|in_y[...]
UID|in_x|in_y[...]

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?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-11-18, 16:02


kazami

Pawner/PTG






Wiek: 27
Na forum: 4596 dni
Posty: 405
Nick w MP: adi888

Piwa: 43

Respekt: 76,3

Ostrzeżeń: 80%
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 ;/

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-11-18, 21:49


Dero

www.polishRPG.pl






Wiek: 31
Na forum: 4539 dni
Posty: 11
Nick w MP: Richard Schroetter

Piwa: 12

Respekt: 74

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).

Podpis
I'll do what I can to be a confident wreck.
Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-11-19, 07:51


kazami

Pawner/PTG






Wiek: 27
Na forum: 4596 dni
Posty: 405
Nick w MP: adi888

Piwa: 43

Respekt: 76,3

Ostrzeżeń: 80%
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 ;)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-11-19, 18:21


Iggy

#admin






Wiek: 26
Na forum: 4596 dni
Posty: 3469
Nick w MP: Iggy

Piwa: 1716

Respekt: 915
Respekt: 915Respekt: 915


   Administrator: Admin ma zawsze rację | REGULAMIN FORUM | REKLAMA/VIP | .

Problem zosta? rozwi?zany - temat zostaje zamkni?ty.




Postaw piwo autorowi tego posta
 

 
Tagi: system :: domow
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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
Dodaj temat do Ulubionych
Wersja do druku