Skripta koju koristim: Moja skripta
Detaljan opis problema: Pa problem je kod spremanja, ne mogu skontat gdje je greska, crash detrctor izbacuje ovo
13:19:49] [debug] Server crashed while executing noviMod.amx
[13:19:49] [debug] AMX backtrace:
[13:19:49] [debug] #0 native fwrite () from samp03svr
[13:19:49] [debug] #1 005c5b50 in SaveMotor (i=169) at C:\Users\Cile\Desktop\UG\gamemodes\noviMod.pwn:93066
[13:19:49] [debug] #2 005743e8 in public OnDialogResponse (playerid=7, dialogid=133, response=1, listitem=7, inputtext[]=@02e5b124 "Kreiraj motocikl") at C:\Users\Cile\Desktop\UG\gamemodes\noviMod.pwn:85980
[13:19:49] [debug] Native backtrace:
i kada padne server, taj id motora sto gore pokazuje bude 0 byte znaci kao da ga obrise..
Dio skripte: pokazao sam gore povis
Neke slike/video za lakse dobivanje pomoci(neobavezno): /
pa provjeri ga jesil lijepo ga napisao taj dialog
Pa mislim da jesam
case 7://kreiraj
{
if(MInfo[i][Kreirano] == 0)
{
MInfo[i][Kreirano] = 1;
SCM(playerid,COLOR_GREEN," {B7FF00}[Motor] {FFFFFF}Motor kreiran!");
new Float:Poz[4];
GetPlayerPos(playerid, Poz[0], Poz[1], Poz[2]);
GetVehicleZAngle(GetPlayerVehicleID(playerid), Poz[3]);
MInfo[i][mhPozX] = Poz[0];
MInfo[i][mhPozY] = Poz[1];
MInfo[i][mhPozZ] = Poz[2];
MInfo[i][mhPozA] = Poz[3]+1.5;
D_SetPlayerPos(playerid, Poz[0]+2.5, Poz[1], Poz[2]);
if(odabraovozM[playerid] == 1)
{
MInfo[i][mownedvehicle1] = D_KreirajPokretnu(MInfo[i][mhModel], Poz[0], Poz[1], Poz[2], Poz[3]+1.5, MInfo[i][mhBoja1], MInfo[i][mhBoja2], 3000);
}
if(odabraovozM[playerid] == 2)
{
MInfo[i][mownedvehicle2] = D_KreirajPokretnu(MInfo[i][mhModel], Poz[0], Poz[1], Poz[2], Poz[3]+1.5, MInfo[i][mhBoja1], MInfo[i][mhBoja2], 3000);
}
if(odabraovozM[playerid] == 3)
{
MInfo[i][mownedvehicle3] = D_KreirajPokretnu(MInfo[i][mhModel], Poz[0], Poz[1], Poz[2], Poz[3]+1.5, MInfo[i][mhBoja1], MInfo[i][mhBoja2], 3000);
}
SaveMotor(i);
}
else
{
SCM(playerid,COLOR_GREEN," {B7FF00}[Motor Info] {C3C3C3}Vec si kupio motor i stvorio ga, ne mozes opet!");
return 1;
}
}
daj funkciju SaveMotor u njoj ti je problem.
Evo:
SaveMotor(i)
{
new string3[256];
new coordsstring[400];
format(string3, sizeof(string3), "iMotor/%d.ini", i);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
format(coordsstring, sizeof(coordsstring), "%d,%f,%f,%f,%f,%d,%d,%s,%d,%d,%d,%d,%d,%.1f,%s,%d\n",
MInfo[i][mhModel],
MInfo[i][mhPozX],
MInfo[i][mhPozY],
MInfo[i][mhPozZ],
MInfo[i][mhPozA],
MInfo[i][mhBoja1],
MInfo[i][mhBoja2],
MInfo[i][mhVlasnik],
MInfo[i][mhCena],
MInfo[i][mhImaVlasnika],
MInfo[i][mhProdat],
MInfo[i][mhZakljucan],
MInfo[i][Kreirano],
MInfo[i][mhGorivo],
MInfo[i][Tablica1],
MInfo[i][Tablica1T]);
hFile = fopen(string3, io_write);
fwrite(hFile, coordsstring);
fclose(hFile);
}
return 1;
}
SaveMotor(i)
{
new string3[256];
new coordsstring[400];
format(string3, sizeof(string3), "iMotor/%d.ini", i);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
format(coordsstring, sizeof(coordsstring), "%d,%f,%f,%f,%f,%d,%d,%s,%d,%d,%d,%d,%d,%.1f,%s,%d\n",
MInfo[i][mhModel],
MInfo[i][mhPozX],
MInfo[i][mhPozY],
MInfo[i][mhPozZ],
MInfo[i][mhPozA],
MInfo[i][mhBoja1],
MInfo[i][mhBoja2],
MInfo[i][mhVlasnik],
MInfo[i][mhCena],
MInfo[i][mhImaVlasnika],
MInfo[i][mhProdat],
MInfo[i][mhZakljucan],
MInfo[i][Kreirano],
MInfo[i][mhGorivo],
MInfo[i][Tablica1],
MInfo[i][Tablica1T]);
fwrite(hFile, coordsstring);
fclose(hFile);
}
return 1;
}
Pokusaj sa ovim...
Nema nikakve greske, javit cu se ako mi server opet padne zbog iste greske..
Mislim da je greska bila u ovome:
hFile = fopen(string3, io_write);
Treba koristiti:
File:hFile = fopen(string3, io_write);
Ali sam ja samo obrisao jer je vec gore na pocetku fajl otvoren.
Vidit cu ovo mi se desavalo svakih 5-6 sati da padne, i to nadje neki id motora i obori se server ne znam ni sam, pa cu provjerit hocel vise padat isto na spremanju..
Ugl hvala puno na pomoci
Citat: [UG]Cile poslato Januar 29, 2015, 17:32:06 POSLE PODNE
Vidit cu ovo mi se desavalo svakih 5-6 sati da padne, i to nadje neki id motora i obori se server ne znam ni sam, pa cu provjerit hocel vise padat isto na spremanju..
Ugl hvala puno na pomoci
Odradi nesto sto poziva funkciju Spremi(vozilo, motor sta je vec) i vidi jel ti izbacuje u crash detect.
Ako ti ne bude izbacilo nikakav crash a kasnije ti crashalo, napravi neki debug da vidis koje su ti te varijable koje se pokusavaju spremiti...
Najbolje bi bilo da pozoves taj dialog koji ti je gore izbacen u crash detectu..