-
Posts
65 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
News
Documentation
Posts posted by 2pacs
-
-
Deci hai sa mai explic odata:
Am facut exact ca in tutorial si exact ce mi-ai dat tu in problema precedenta care nu functiona scriptul... acum nu mi se salveaza toti kilometri parcursi, se salveaza doar un sfert din intreg.
-
Eu l-am facut doar sa se salveze intr-o variabila, ca poate cineva vrea sa il salveze intr-un sistem de vehicule pe mysql sau pe ini si este alegerea lui.
Problema mea este ca mi se salveaza doar un sfert din cat am parcurs cu masina(ex: 1 din 3) si intrebarea mea este cum pot face sa se salveze 3 din 3?
Asta vreau eu sa ii dau de cap.
-
-
Ok, sper ca poate stie el ceva...
-
Nu am gasit nimic, masina care fac proba este una de factiune.. o merge doar pe cele personale??
-
Pai am folosit comanda exit in consola, s-a inchis si vad ca acum s-au salvat kilometri... nu toti dar din 20 de kilometri s-au salvat 14...
kilometrii nu ii salvez nicaieri in ini si nici nu stiu unde se salveaza..
-
Poti sa stergi acele printf-uri de la km_counter. Le salvezi kilometrii undeva in MySQL?
Daca nu, atunci mai mergi cu masina si cand vrei sa inchizi server-ul scrie in consola comanda "exit" si vezi iar.
Serverul este pe ini, dar de ce nu se salva cand dadeam "X" la server si se salveaza cu "exit" ?
PS. Din cate vad nu este nici o problema... deci se poate da TC.
-
Problemă întâlnită (descriere):Merg cu masina 10-20 Kilometrii dar imi salveaza doar 3km dupa restart sau oprirea serverului.
Ero(area / rile) / warning-(ul / urile):-
Liniile de cod / sursa / script-ul:mai jos
Imagini / Video (optional):-
Aţi încercat să rezolvaţi singur?:Nu am stiut unde ar trebui sa ma uit.[pawn]new LastCar[MAX_PLAYERS];[/pawn]
[pawn]new Float:VehicleKM[MAX_VEHICLES];
new Float:X1[MAX_VEHICLES];
new Float:Y1[MAX_VEHICLES];
new Float:Z1[MAX_VEHICLES];
new Float:X2[MAX_VEHICLES];
new Float:Y2[MAX_VEHICLES];
new Float:Z2[MAX_VEHICLES];
new timerkm[MAX_VEHICLES];
[/pawn][pawn]forward km_counter(vehicleid);
public km_counter(vehicleid)
{
//inlocuim valorile noi cu cele vechi
printf("#Debug 1: %f %f %f", X1[vehicleid], Y1[vehicleid], Z1[vehicleid]);
X1[vehicleid] = X2[vehicleid];
Y1[vehicleid] = Y2[vehicleid];
Z1[vehicleid] = Z2[vehicleid];
printf("#Debug 2: %f %f %f", X2[vehicleid], Y2[vehicleid], Z2[vehicleid]);
//stocam noile valori
GetVehiclePos(vehicleid, X2[vehicleid], Y2[vehicleid], Z2[vehicleid]);
printf("#Debug 3: %f %f %f", X2[vehicleid], Y2[vehicleid], Z2[vehicleid]);
//calculam distanta dintre cele doua punce vehciul punct si cel nou
X1[vehicleid] -= X2[vehicleid];
Y1[vehicleid] -= Y2[vehicleid];
Z1[vehicleid] -= Z2[vehicleid];
printf("#Debug 4: %f %f %f", X1[vehicleid], Y1[vehicleid], Z1[vehicleid]);
//acum il transformam in kilometrii(deoarece distanta este in metrii) impartind la 1000.0
VehicleKM[vehicleid] += floatsqroot((X1[vehicleid]*X1[vehicleid])+(Y1[vehicleid]*Y1[vehicleid])+(Z1[vehicleid]*Z1[vehicleid])) / 1000.0;
printf("#Debug 5: %f | %f", VehicleKM[vehicleid], floatsqroot((X1[vehicleid]*X1[vehicleid])+(Y1[vehicleid]*Y1[vehicleid])+(Z1[vehicleid]*Z1[vehicleid])) / 1000.0);
return 1;
}[/pawn][pawn]if(newstate == PLAYER_STATE_DRIVER)
{
LastCar[playerid] = GetPlayerVehicleID(playerid);
}
if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
{
timerkm[vehicleid] = SetTimerEx("km_counter", 1000, 1, "d", vehicleid);//pornim acel timer care masoara kilometrii parcursi
}
if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT )
{
KillTimer(timerkm[LastCar[playerid]]);
format(string, sizeof(string), "Vehiculul are in total %d kilometrii parcursi", floatround(VehicleKM[LastCar[playerid]], floatround_ceil));//afisam cati kilometrii are parcursi
SendClientMessage(playerid, -1, string);
} [/pawn]- 1
-
Multumesc. Se poate da Tc.
-
Am facut un drum din LS pana in LV.
Ar trebuii sa merg mai mult?
Inainte sa pun acest debugging aveam si aici modificat / 1000.0; schimbasem cu 1.0... cu gandul ca poate nu merg destul dar tot nu se schimba
-
-
am urcat aici logul, dar dupa ce l-am adaugat la 30 de secunde serverul mi s-a inchis automat.
-
Pai nu ai pus tu bine mesajul.
Ii dau eu de cap pana la urma la treaba cu mesajul, dar am mers cu masina din LS pana in capat in LV si tot pe 0 kilometri imi aparea.
edit.
Am modificat eu putin scriptul poate fii din cauza asta??
[pawn]new Float:VehicleKM[MAX_VEHICLES];
new Float:X1[MAX_VEHICLES];
new Float:Y1[MAX_VEHICLES];
new Float:Z1[MAX_VEHICLES];
new Float:X2[MAX_VEHICLES];
new Float:Y2[MAX_VEHICLES];
new Float:Z2[MAX_VEHICLES];
new timerkm[MAX_VEHICLES];[/pawn]
[pawn]forward km_counter(vehicleid);
public km_counter(vehicleid)
{
//inlocuim valorile noi cu cele vechi
X1[vehicleid] = X2[vehicleid];
Y1[vehicleid] = Y2[vehicleid];
Z1[vehicleid] = Z2[vehicleid];
//stocam noile valori
GetVehiclePos(vehicleid, X2[vehicleid], Y2[vehicleid], Z2[vehicleid]);
//calculam distanta dintre cele doua punce vehciul punct si cel nou
X1[vehicleid] -= X2[vehicleid];
Y1[vehicleid] -= Y2[vehicleid];
Z1[vehicleid] -= Z2[vehicleid];
//acum il transformam in kilometrii(deoarece distanta este in metrii) impartind la 1000.0
VehicleKM[vehicleid] += floatsqroot((X1[vehicleid]*X1[vehicleid])+(Y1[vehicleid]*Y1[vehicleid])+(Z1[vehicleid]*Z1[vehicleid])) / 1000.0;
}[/pawn]
-
Ok, acum nu mai primesc nici o eroare... dar acest text imi apare cand ma dau jos din masina, cum fac sa imi apara cand intru in ea??
[pawn]format(string, sizeof(string), "Vehiculul are in total %d kilometrii parcursi",VehicleKM[vehicleid]);[/pawn]
edit. am mers cu o masina a unei factiuni din ls pana in capat in lv si tot 0 km imi arata.
-
Pai unde ar trebui sa o pun mai exact?
-
Acum primesc eroarea asta:
[pawn] error 033: array must be indexed (variable "X1")[/pawn]
[pawn]63816 - VehicleKM[vehicleid] += floatsqroot((X1*X1)+(Y1*Y1)+(Z1*Z1)) / 1000.0;[/pawn]
-
Problemă întâlnită (descriere):Am incercat sa fac primesc erorile astea.
Ero(area / rile) / warning-(ul / urile):-
Liniile de cod / sursa / script-ul:-
Imagini / Video (optional):-
Aţi încercat să rezolvaţi singur?:nu reusesc.Primesc cate o eroare din asta la fiecare:
[pawn]error 010: invalid function or declaration
___________________________________
Float:x1[MAX_VEHICLES],
Float:y1[MAX_VEHICLES],
Float:z1[MAX_VEHICLES],
Float:x2[MAX_VEHICLES],
Float:y2[MAX_VEHICLES],
Float:z2[MAX_VEHICLES],[/pawn][pawn]error 017: undefined symbol "x1"
--------------------------------------------
x1[vehicleid] = x2; AICI EROAREA
y1[vehicleid] = y2;
z1[vehicleid] = z2;[/pawn] -
ok, se poate da tc.
-
Nu imi apare nimic... doar de la crashdetect imi apare.
-
[pawn]new gLastDriver[302];[/pawn]
[pawn]if(HireCar[playerid] != 299){gLastDriver[HireCar[playerid]] = 300;gCarLock[HireCar[playerid]] = 0;UnLockCar(HireCar[playerid]);if(reason != 0){SetVehicleToRespawn(HireCar[playerid]);}}[/pawn]
[pawn]if(GangCar[playerid] != 512){gLastDriver[GangCar[playerid]] = 520;gCarLock[GangCar[playerid]] = 0;UnLockCar(GangCar[playerid]);}[/pawn]
[pawn]if (gLastCar[playerid] > 0)
{
gLastDriver[gLastCar[playerid]] = 300;
if(PlayerInfo[playerid][pPhousekey] != gLastCar[playerid]-1)
{
gCarLock[gLastCar[playerid]] = 0;
UnLockCar(gLastCar[playerid]);
}
}[/pawn][pawn] if(oldcar != 301)
{
if((housecar != oldcar && oldcar != 0) && (HireCar[playerid] != oldcar && newcar != housecar))
{
if(gLastDriver[oldcar] == playerid && oldcar != newcar)
{
gLastDriver[oldcar] = 300;
gCarLock[oldcar] = 0;
UnLockCar(oldcar);
}
}
}[/pawn][pawn]if(IsAnOwnableCar(newcar))
{
if(CarInfo[newcar][cOwned]==1)
{
format(string,sizeof(string),"Vehicle bought to %s",CarInfo[newcar][cOwner]);
SendClientMessage(playerid, COLOR_BLUE, string);
}
}
gLastCar[playerid] = newcar;
gLastDriver[newcar] = playerid;
}[/pawn][pawn]public CarInit()
{
for(new c = 1; c < 254; c++)
{
gLastDriver[c] = 299;
}
gLastDriver[301]=255;
return 1;
}[/pawn]Edit !
Am sters din public charcheck astea:
[pawn]for(new c = 1; c < 400; c++)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new level = PlayerInfo[pJackSkill]
if (level >= 401)
{
SetVehicleParamsForPlayer(c, i, 0, 0);
}
}
}
if (gLastDriver[c] == 301)
{
}
if (gLastDriver[c] >= 300)
{
gLastDriver[c]++;[/pawn]Nu mai primesc nimic in server_log de la ele, dar... acum cand folosesc comanda "/vama" primesc astea:
[pawn][17:04:52] [debug] Run time error 4: "Array index out of bounds"
[17:04:52] [debug] Accessing element at index 14 past array upper bound 10
[17:04:52] [debug] AMX backtrace:
[17:04:52] [debug] #0 00002f30 in public ExtortionSBiz (0x0000000e, 0x00000032) from facut.amx
[17:04:52] [debug] #1 0023cc5c in public OnPlayerCommandText (0x00000000, 0x00b41d90) from facut.amx[/pawn]Aici am comanda :
-
L-am adaugat... dar cum se foloseste ca nu-mi dau seama... l-am adaugat la OnPlayerCommandText
-
Acum merge... si nu am mai modificat nimic.
-
Doar aici o mai gasesc.
[pawn]public CarInit()
{
for(new c = 1; c < 254; c++)
{
gLastDriver[c] = 299;
}
gLastDriver[301]=255;
return 1;
}[/pawn] -
La sfarsit dupa [pawn]else
{
SendClientMessage(playerid, COLOR_WHITE, "Nu esti la vama.");
return 1;
}[/pawn]
pune return 1;
degeaba... la fel imi face.
Problema script.
in Arhivă probleme
Posted
Sunt foarte sigur, eu nu am facut nimic... am facut exact ca in tutorial nimic in plus.