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

Wysłany: 2022-04-18, 23:31


Anulator







Wiek: 26
Na forum: 3438 dni
Posty: 23
Nick w MP: Deyw_



Respekt: 40

Zrobi?em prosty system poboru paliwa na bazie float. Co? jest jednak nie tak i nak?ada si? rzeczywista liczba paliwa oraz jaka? liczba na minusie. W debugu wygl?da to mniej wi?cej tak: https://imgur.com/uka74VS

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-04-19, 07:08


rufijok







Wiek: 27
Na forum: 3685 dni
Posty: 54
Nick w MP: [STK]Slasher

Piwa: 240

Respekt: 75,3

pokaz kod

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-04-19, 09:59


Anulator







Wiek: 26
Na forum: 3438 dni
Posty: 23
Nick w MP: Deyw_



Respekt: 40

Najpierw zrobi?em timer
Kod:


FuelGet[playerid] = SetTimerEx("GetFuel", 2200, true, "i", playerid);


Ten kawa?ek kodu powinien odpowiada? za to
Kod:


public GetFuel(playerid) {
for(new i; i < MAX_VEHICLES; i++) {
if(IsPlayerInAnyVehicle(playerid)) {
if(vehStats[i][UID] == i) {
new engine, lights, alarm, doors, bonnet, boot, objective;
if(GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective)) {
if(engine == 1) {
if(vehStats[i][fuel] > 0) {

new Speed;
Speed = GetVehicleSpeed(i);

if(Speed <= 5) { FuelF[i] -= 0.10; }
if(Speed > 5 && Speed <= 10) { FuelF[i] -= 0.15; }
if(Speed > 10 && Speed <= 30) { FuelF[i] -= 0.20; }
if(Speed > 30 && Speed <= 50) { FuelF[i] -= 0.25; }
if(Speed > 50 && Speed <= 70) { FuelF[i] -= 0.30; }
if(Speed > 70 && Speed <= 100) { FuelF[i] -= 0.35; }
if(Speed > 100) { FuelF[i] -= 0.40; }

printf("%.1f", FuelF[i]);
}
}
}
}
}
}
return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-04-19, 11:20


rufijok







Wiek: 27
Na forum: 3685 dni
Posty: 54
Nick w MP: [STK]Slasher

Piwa: 240

Respekt: 75,3

tablica FuelF i vehStats[i][fuel] chyba robia to samo, cos namieszales za duzo.
wywalilem FuelF, do tego petla z autami jest zbedna, wystarczy skorzystac z funkcji sprawdzania id auta, do tego te porownanie
Kod:

if(vehStats[i][UID] == i) {

nie wiem do czego sluzy, wywalilem to

koniec koncow na kolanie klejone, ale powinno dzialac:
Kod:


public GetFuel(playerid) {
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
new vid = GetPlayerVehicleID(playerid);
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
if(engine == 1) {
if(vehStats[vid][fuel] > 0) {
new Speed = GetVehicleSpeed(vid);

if(Speed <= 5) { vehStats[vid][fuel] -= 0.10; }
if(Speed > 5 && Speed <= 10) { vehStats[vid][fuel] -= 0.15; }
if(Speed > 10 && Speed <= 30) { vehStats[vid][fuel] -= 0.20; }
if(Speed > 30 && Speed <= 50) { vehStats[vid][fuel] -= 0.25; }
if(Speed > 50 && Speed <= 70) { vehStats[vid][fuel] -= 0.30; }
if(Speed > 70 && Speed <= 100) { vehStats[vid][fuel] -= 0.35; }
if(Speed > 100) { vehStats[vid][fuel] -= 0.40; }

printf("%.1f", vehStats[vid][fuel]);
}
}
}
return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-04-19, 11:57


Anulator







Wiek: 26
Na forum: 3438 dni
Posty: 23
Nick w MP: Deyw_



Respekt: 40

B??d niestety dalej wyst?puje :/

Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-04-19, 12:06


rufijok







Wiek: 27
Na forum: 3685 dni
Posty: 54
Nick w MP: [STK]Slasher

Piwa: 240

Respekt: 75,3

ten skrypt to nie jest zadna filozofia, wiec musisz to zle implementowac, najwazniejsze abys:
przy tworzeniu auta ustawil jakas tam ilosc paliwa czyli np gdy juz masz wszystkie auta to robisz petle i powiedzmy
vehStats[i][fuel] = 100.0;

i pozniej juz ten timer bedzie paliwo odejmowal jesli bedziesz w aucie odpalonym jako kierowca.

jesli faktycznie nadal wypluwa konsola dokladnie to samo to wez tego printa zmien na
Kod:

printf("%d %d %.1f", playerid, vid, vehStats[vid][fuel]);


i wtedy pokaz konsolke

---
no i oczywiscie jako ze robisz ten timer pod kazdego gracza zamiast 1 duzego timera na wszystkich graczy to nie zapominaj go zbijac gdy gracz wychodzi z serwera bo inaczej beda ci sie powielac

Postaw piwo autorowi tego posta
 

 
Tagi: nakładanie :: wartości
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