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

Wysłany: 2012-11-17, 09:29


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Tworze system salonu na klawisze no i jak nacisn? raz prawy klawisz to mi tworzy 2 pojazdy. Jak zrobi? zmienn? kt?ra bd. odpowiedzialna za tworzenie 1 pojazdu? W dodatku nie mam poj?cia jak zrobi? aby z tablicy wybiera?o auta po kolei? Potrzebuje jakiej? p?tli? Tablica wygl?da tak:

Kod:

#define MAX_TDCARS 9
new TooDorsCars[MAX_TDCARS][4] =
{
{1, 401, 60000, "Bravura"}, // Bravura
{2, 410, 30000, "Manana"}, // Manana
{3, 412, 45000, "Voodoo"}, // Voodoo
{4, 419, 45000, "Esperanto"}, // Esperanto
{5, 422, 35000, "Bobcat"}, // Bobek
{6, 424, 60000, "BF Injection"}, // BF Injection
{7, 436, 35000, "Previon"}, // Previon
{8, 439, 40000, "Stalion"}, // Stalion
{9, 474, 40000, "Hermes"} // Hermes
};


A tutaj kod odpowiedzialny w?a?nie za tworzenie pojazdu:
Kod:

new Keys, ud, lr;
GetPlayerKeys(playerid, Keys, ud, lr); // Up Down, Left Right

if(BuyingCar[playerid] == 0) // Dwu drzwiowe
{
if(lr > 0)
{

}
else if(lr < 0)
{

}

}
else if(BuyingCar[playerid] == 1) // Cztero drzwiowe
{
if(lr > 0)
{

}
else if(lr < 0)
{

}
}
else if(BuyingCar[playerid] == 2) // Sportoffe
{
if(lr > 0)
{

}
else if(lr < 0)
{

}
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-17, 10:58


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Jak chcesz robi? tworzenie pojazdu na klawisz, to r?b to w callbacku OnPlayerKeyStateChange - funkcja GetPlayerKeys jako? u mnie zawsze bugowa?a.

Co do wybierania pojazd?w po kolei z tablicy robisz normaln? p?tl?, p??niej tylko w odpowiedni argument wpisujesz warto?? z p?tli

Kod:

for(new i; i < MAX_TDCARS; i++)
{
printf("%d", TooDorsCars[i][1]);
}


Wyprintuje odpowiednio id pojazdu: 401, 410, 412, 419 itd. Jak chcesz pobra? inne dane zamiast 1 wpisujesz inny argument z tablicy (2 - cena pojazdu, 3 - nazwa pojazdu etc.)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-17, 11:14


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Edit: // Dzia?a. Z?y klawisz ustawiony :P .

Po za tym jest jeden problem poniewa? jak zrobi? CreateVehicle(TooDoorsCars[i], ...);[/code] To mi stworzy wszystkie pojazdy z tablic. Testowa?em na konsoli. Raz nacisn??em to wszystkie ID mi si? wy?wietli?y:
Kod:


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-17, 12:30


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Jak w p?tli dasz tworzenie pojazdu, to utworzy wszystkie - oczywiste. Musisz z p?tli sobie wybra? jaki? numerek, nie wiem jakim sposobem to robisz - tworzysz zmienn? i w niej wybierasz jak?? cyfr? z p?tli

Kod:

new a = -1;
for(new i; i < MAX_TDCARS; i++)
{
a = i;
//Mo?esz da? tutaj break, ale wtedy i wyniesie 0 - musisz jakie? warunki da? czy co? - nie wiem jakim sposobem wybierasz id pojazdu
}
CreateVehicle(TooDoorsCars[a], ...);


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-17, 13:16


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

No w?a?nie nie mam ?adnego sposobu, chcia?em zrobi? co? takiego ?eby p?tla i zwi?ksza?a si? co jeden czyli np. i = 0 to wtedy tworzy pojazd 0 i potem i++ zwi?ksza si? no i wtedy: i = 1. Z ka?dym naci?ni?ciem klawisza "i" si? podnosi o 1. Nie mam poj?cia w?a?nie jak to zrobi?. My?la?em o zrobieniu ze struktur? if ale co? mi to nie wychodzi?o.

Kod:

new i;
i = 0;
i++;
printf("Wykonanie %d", i);


[ Dodano: 2012-11-17, 13:40 ]
Gdy gracz wpisze komende /cars, zmienia mu si? pozycja kamery itd. No i gracz wybiera dwu-drzwiowe to mu si? spawnuje przed kamer? pojazd (w innym vw) i potem jak naci?nie przycisk w prawo to ten pojazd si? usuwa i tworzy si? nast?pny z tablicy. Z u?yciem tego:


Kod:

new vehicle = CreateVehicle(model, x, y, z, rot, color1, color2);
SetVehicleVirtualWorld( vehicle , World);


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-17, 14:19


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
G?ra

Kod:

new pojazd[50];


Tam, gdzie gracz przesuwa pojazdy

Kod:

pojazd[playerid]++; //je?li przesun?? w prawo, jak w lewo zamieniasz ++ na --
CreateVehicle(TooDorsCars[pojazd[playerid]][1]);


Nie testowany kod, ale sprawd? - najwy?ej p??niej si? edytnie.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-17, 14:29


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Dzi?ki CombaT, trzeba tylko logicznie pomy?le?. Ja wymy?li?em takie co?:

Kod:

if(newkeys & 128)
{
new str[128];
if(JakasZmienna == -1)
{
JakasZmienna ++;
print("Dodanie zmiennej");
}
else if(JakasZmienna >= 0)
{
JakasZmienna ++;

format(str, sizeof(str), "Wykonanie: %d", JakasZmienna);
SendClientMessage(playerid, COLOR_RED, str);

printf("Wykonanie %d", JakasZmienna);

if(JakasZmienna == MAX_TDCARS)
{
SendClientMessage(playerid, COLOR_GREEN, "*****?o cie k****? Zaczynamy od 0!");
JakasZmienna = -1;
}

}
}
I si? spisuje :P .


No, po testach nie?le, spisuje si? :) . Jednak?e teraz jak zrobi? DestroyVehicle? Bo ze zmian? pojazdu stary zostaje i tworzy nowy :D . Timmer albo co? takiego?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-17, 14:53


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
G?ra

Kod:

new car[50];


Tam, gdzie gracz dostaje pojazd

Kod:

car[playerid] = AddStaticVehicle(...);


Usuwanie

Kod:

DestroyVehicle(car[playerid]);


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-17, 14:59


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

?le mnie rozumiesz. Ja to mam tak, ?e po naci?ni?ciu klawisza tworzy si? kolejny pojazd z tego:
Kod:

CreateVehicle(TooDoorsCars[Vehicle[playerid]][1], -1657.297485, 1211.862670, 13.250390, 87.11, -1, -1, -1);
No i jak ustawi?em
Kod:

DestroyVehicle(TooDoorsCars[Vehicle[playerid]][1]);
to w?a?nie zero reakcji ze strony skryptu. To mo?e timera tu ustawi? kt?ry by np. za 1 sek. usun?? pojazd?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-17, 15:03


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Patrz: TooDoorsCars[Vehicle[playerid]][1] - to jest model pojazdu, nie id pojazdu. Musisz przypisa? dany pojazd do tablicy gracza, p??niej go usuwasz.

Kod:

car[playerid] = CreateVehicle(TooDoorsCars[Vehicle[playerid]][1], -1657.297485, 1211.862670, 13.250390, 87.11, -1, -1, -1);

DestroyVehicle(car[playerid]);


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-17, 17:55


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

// Edit: Czy da si? to jako? zaokr?gli?? W sensie ?e jak
Kod:

Vehicle[playerid] = 38
to zmienia t? warto?? na zerow?. Zrobi?em co? takiego:

Kod:


if(newkeys & 16384)
{
new str[128];
if(Vehicle[playerid] >= 0)
{
Vehicle[playerid] ++;

DestroyVehicle(UserVeh[playerid]);
UserVeh[playerid] = CreateVehicle(TooDoorsCars[Vehicle[playerid]][1], -1657.297485, 1211.862670, 13.250390, 87.11, -1, -1, -1);

format(str, sizeof(str), "Wykonanie: %d", Vehicle[playerid]);
SendClientMessage(playerid, COLOR_RED, str);

if(Vehicle[playerid] >> 38)
{
Vehicle[playerid] = 0;

DestroyVehicle(UserVeh[playerid]);
UserVeh[playerid] = CreateVehicle(TooDoorsCars[Vehicle[playerid]][1], -1657.297485, 1211.862670, 13.250390, 87.11, -1, -1, -1);
}
}

}


No i pojazdy wychodz? po za skale czyli jak mam 38 to dam strza?k? w prawo to pojazd si? niszczy ale nic si? nie dzieje.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-17, 19:01


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Spr?buj w warunku da? tak

Kod:

if(newkeys & 16384 && Vehicle[playerid] != 38)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-18, 20:41


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Wszystko pi?knie ?miga ale jest jeden problem. Mianowicie nadpisuje dane innemu graczu przez tak? o to funkcje:
Kod:

PlayerStats[playerid][Car] ++;
W takim sensie ?e jak gracz wejdzie na serwa kupi 2 pojazdy wyjdzie, wejdzie nowy gracz co nie mia? konta wyjdzie to w pliku ma Cars = 2 a powinie mie? 0. W czym tkwi problem?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-18, 20:48


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

Wafelowski, w OnPlayerConnect :
Kod:


PlayerStats[playerid][Car] = 0;


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-11-18, 20:53


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

No w?a?nie ustawi?bym tak jednak?e jest taki problem, ?e to odpowiada za to ile gracz ju? kupi? pojazd?w i je?eli
Kod:

PlayerStats[playerid][Car] = 2
to wi?cej kupi? nie mo?e. Dodam, ?e ustawia mi
Kod:

PlayerStats[playerid][Car] ...
po wyj?ciu z serwa na ilo?? kt?ry gracz wcze?niej kupi?.


Daje ca?y kod:
Kod:


Postaw piwo autorowi tego posta
 

 
Tagi: salon :: pojazdów.
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » [INNE] Salon pojazdów. 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