Szerző Téma: Kocsi rendszer  (Megtekintve 1216 alkalommal)

Nem elérhető Buttings

  • 575
  • Lord of the Seven Kingdoms
    • Profil megtekintése
Kocsi rendszer
« Dátum: 2014. február 25. - 18:36:47 »
0 Show voters
Sziasztok. Akarok csinálni egy vehetõ kocsi rendszert és nem tudom hogy hogy tudnám azt lekérdezni hogy a jármû megvehetõ-e vagy sem. Ha ebben tudtok segiteni nagyon megköszönném:D

Nem elérhető TheDon

  • 159
    • Profil megtekintése
Kocsi rendszer
« Válasz #1 Dátum: 2014. február 25. - 20:13:03 »
+1 Show voters
Helló!
A lényeg annyi, hogy akár TXT-be, akár MySQL-be mented a kocsikat, legyen egy olyan logikai (Boolean) változó a kocsihoz, aminek értékül tudod adni, hogy \'true\' (vagy \'1\'), ha eladó, vagy \'false\' (vagy \'0\'), ha nem eladó.
Vagyis:
 
new bool:Elado;
Elado = true; // vagy Elado = 1;
Elado = false; // vagy Elado = 0;

 
Ha ez megvan, akkor jöhet az, hogy minden kocsihoz hozzá kell adni ezt a változót. Ezt megtehetjük enumerációval (enum).
Ez azért jó, mert a modban 1 változót írsz, de több kocsihoz, és több változóval a benne.
Például:
 
enum kocsiInfo { id, modell, elado, ar }; // lehet több is benne, ez csak bemutató
new Kocsi[MAX_CARS][kocsiInfo]; // Ha a MAX_CARS-t használod akkor elõtte azt definiáld egy makróban. (például: #define MAX_CARS 500)

 
Itt is az a lényeg, hogy az enum elõrébb legyen a Kocsi változónál. Máskülönben nem fog mûködni.
És ha ez is meg van, akkor jöhet a kocsi elado értékének változtatása.
Így:
 
Kocsi[vehicleid][elado] = true; // a vehicleid az a kocsi játékon belüli id-jét jelöli. ezzel most eladó az autó
Kocsi[vehicleid][elado] = false; // ezzel pedig már nem eladó

 
Összefoglalva ami kell:
 
#define MAX_CARS 500 // csak ha még nincs
enum kocsiInfo { id, modell, elado }; // ezt lehet még bõvíteni
new Kocsi[MAX_CARS][kocsiInfo];

 
Remélem tudtam ezzel segíteni. (Elnézést, ha túlságosan szájbarágósan írtam, de azt akartam, ha valaki olyan is tudni akarja ezt, aki nem ért hozzá, az is megértse.)
Ha nem érthetõ akkor kérlek szólj!
További jó Scriptelést!
The Don

Nem elérhető Buttings

  • 575
  • Lord of the Seven Kingdoms
    • Profil megtekintése
Kocsi rendszer
« Válasz #2 Dátum: 2014. február 25. - 20:26:08 »
0 Show voters
Köszi szépen,és mégegy. Azt hogyan lehet megcsinálni hogyha nem az övé a kocsi akkor kidobja belõle? Köszi mégegyszer,sokat segitettél:D

Nem elérhető TheDon

  • 159
    • Profil megtekintése
Kocsi rendszer
« Válasz #3 Dátum: 2014. február 25. - 20:32:53 »
0 Show voters
Idézetet írta: Буттингс date=1393356368\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46737\" data-ipsquote-contentclass=\"forums_Topic
Köszi mégegyszer,sokat segitettél:D
Igazán szívesen.
Azt is hasonlóan tudod megoldani. Kell egy tulajdonos enum a Kocsi változón belül.
 
enum kocsiInfo { id, modell, elado, tulaj[31] };

 
És utána, amikor  a kocsiba beszállt az illetõ, akkor megnézed, hogy a Kocsi[vehicleid][tulaj] értéke egyezik-e a beszállt játékossal. Ezt persze érdemes stringbe rakni, azárt van ott a [31] a tulaj után. 30 karakter a név és +1 a lezáró karakter. (Ezt most nem magyarázom, el ha érdekel a fórumon le van írva, ha nem akkor írhatsz nekem is errõl, de most nem fontos.)
Ezt egy sima strcmp() függvénnyel megteheted.
Amennyiben nem egyezik, akkor a RemovePlayerFromVehicle() függvénnyel ki tudod szedni.
Ha szeretnéd részletesebben, akkor írj.
The Don
« Utoljára szerkesztve: 2014. február 25. - 20:34:30 írta TheDon »

Nem elérhető Buttings

  • 575
  • Lord of the Seven Kingdoms
    • Profil megtekintése
Kocsi rendszer
« Válasz #4 Dátum: 2014. február 25. - 20:43:17 »
0 Show voters
És hogy szedem ki a TXT bõl az adatokat? Vagyis honnan fogom tudni h melyikbõl kell kiszedni?

Nem elérhető TheDon

  • 159
    • Profil megtekintése
Kocsi rendszer
« Válasz #5 Dátum: 2014. február 25. - 20:48:56 »
0 Show voters
A file kezelésre itt a Topik: LINK
Az, hogy melyikbõl kell kiszedni, azt úgy kéne, hogy mindegyik txt-bõl beolvastatod az adatot, és lemented az elõzõleg írt módszerrel. Utána már minden menni fog, úgy ahogy leírtam az elõbb.

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Kocsi rendszer
« Válasz #6 Dátum: 2014. február 26. - 07:49:37 »
0 Show voters
Idézetet írta: TheDon date=1393356773\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46737\" data-ipsquote-contentclass=\"forums_Topic

Köszi mégegyszer,sokat segitettél:D
Igazán szívesen.
Azt is hasonlóan tudod megoldani. Kell egy tulajdonos enum a Kocsi változón belül.
 
enum kocsiInfo { id, modell, elado, tulaj[31] };

 
És utána, amikor  a kocsiba beszállt az illetõ, akkor megnézed, hogy a Kocsi[vehicleid][tulaj] értéke egyezik-e a beszállt játékossal. Ezt persze érdemes stringbe rakni, azárt van ott a [31] a tulaj után. 30 karakter a név és +1 a lezáró karakter. (Ezt most nem magyarázom, el ha érdekel a fórumon le van írva, ha nem akkor írhatsz nekem is errõl, de most nem fontos.)
Ezt egy sima strcmp() függvénnyel megteheted.
Amennyiben nem egyezik, akkor a RemovePlayerFromVehicle() függvénnyel ki tudod szedni.
Ha szeretnéd részletesebben, akkor írj.
The Don
 
[/quote]
 
#define MAX_PLAYER_NAME                     (24)

 
forrás: a_samp.inc
az a 30+1 az 20+1 akar lenni, legalábbis az elõzõ verzióban (0.3d) annyi volt a limit...
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal